
:root{--bg:#f5f6f8;--card:#fff;--text:#17191c;--muted:#7d838c;--line:#e5e8ec;--accent:#2e7cf6;--soft:#eaf2ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}button,input,select,textarea{font:inherit}button{color:inherit}.app{max-width:1280px;margin:auto;padding:14px 14px 38px}.top{display:flex;align-items:center;justify-content:space-between;gap:10px}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;background:#e9edf2;border-radius:14px;min-width:310px}.tabs button{border:0;background:transparent;min-height:42px;border-radius:10px;font-weight:800;color:var(--muted)}.tabs .on{background:var(--card);color:var(--text);box-shadow:0 1px 5px #0001}.actions{display:flex;gap:7px}.primary,.secondary{min-height:42px;padding:0 13px;border-radius:12px;font-weight:800}.primary{border:0;background:var(--accent);color:#fff}.secondary{border:1px solid var(--line);background:var(--card)}.status{margin-top:9px;font-size:11px;color:var(--muted)}.status.live{color:#23744b}.status.offline{color:#a56a11}.nav{display:grid;grid-template-columns:44px 1fr 44px;gap:8px;align-items:center;margin-top:11px}.nav>button{border:1px solid var(--line);background:var(--card);border-radius:12px;min-height:44px;font-size:20px}.navC{text-align:center}.navC b{display:block}.navC span{font-size:12px;color:var(--muted)}.dateStrip{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:10px}.dateStrip button{border:1px solid transparent;background:transparent;border-radius:11px;min-height:56px;color:var(--muted);font-size:11px}.dateStrip button b{display:block;font-size:15px;color:var(--text);margin-top:4px}.dateStrip .sel{background:var(--soft);border-color:#bdd3ff}.summary{display:grid;grid-template-columns:1.25fr .75fr;gap:10px;margin-top:14px}.card{border:1px solid var(--line);background:var(--card);border-radius:16px;padding:13px}.eyebrow{font-size:11px;color:var(--muted);font-weight:800}.big{font-size:19px;font-weight:900;margin-top:4px}.small{font-size:12px;color:var(--muted);line-height:1.45;margin-top:5px}.section{margin-top:18px}.sectionHead{display:flex;justify-content:space-between;align-items:end;gap:8px;margin-bottom:8px}.sectionHead h3{font-size:17px;margin:0}.sectionHead span{font-size:12px;color:var(--muted)}.chips{display:flex;gap:7px;overflow:auto}.chip{flex:0 0 auto;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:9px 11px;font-size:12px}.timeline{position:relative;height:754px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--card)}.hour{position:absolute;left:0;right:0;border-top:1px solid #eceef1}.hl{position:absolute;left:0;top:-7px;width:48px;text-align:right;padding-right:8px;font-size:10px;color:var(--muted)}.axis{position:absolute;left:52px;top:0;bottom:0;width:1px;background:var(--line)}.layer{position:absolute;left:62px;right:0;top:0;bottom:0}.event{position:absolute;border:1px solid var(--line);border-left:4px solid var(--c);background:color-mix(in srgb,var(--c) 12%,white);border-radius:10px;padding:6px 7px;overflow:hidden;text-align:left}.event b{display:block;font-size:11px}.event span{display:block;font-size:10px;color:#626a73;margin-top:2px;line-height:1.25}.now{position:absolute;left:47px;right:0;height:2px;background:#ff4658;z-index:8}.now:before{content:"";position:absolute;left:0;top:-3px;width:8px;height:8px;border-radius:50%;background:#ff4658}.weekScroll{overflow:auto}.weekCanvas{position:relative;height:806px;min-width:780px;border:1px solid var(--line);background:var(--card);border-radius:15px;overflow:hidden}.weekHeader{position:absolute;top:0;left:58px;right:0;height:50px;display:grid;grid-template-columns:repeat(5,1fr);background:#f0f2f5;border-bottom:1px solid var(--line)}.wh{display:flex;align-items:center;justify-content:center;text-align:center;border-right:1px solid var(--line);font-size:11px;font-weight:900}.wh button{border:0;background:transparent;width:100%;height:100%}.weekBody{position:absolute;top:50px;left:0;right:0;bottom:0}.weekTimes{position:absolute;left:0;top:0;bottom:0;width:58px;background:#f7f8fa;border-right:1px solid var(--line)}.wt{position:absolute;width:58px;transform:translateY(-6px);padding-right:8px;text-align:right;font-size:10px;color:var(--muted)}.weekCols{position:absolute;left:58px;right:0;top:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr)}.dayCol{position:relative;border-right:1px solid var(--line)}.gridLine{position:absolute;left:0;right:0;border-top:1px solid #eceef1}.wEvent{position:absolute;border:1px solid var(--line);border-left:4px solid var(--c);background:color-mix(in srgb,var(--c) 12%,white);border-radius:8px;padding:5px;overflow:hidden;text-align:left}.wEvent b{display:block;font-size:10px}.wEvent span{display:block;font-size:9px;color:#626a73;margin-top:2px}.monthGrid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:15px;overflow:hidden;background:var(--card)}.mh{padding:8px 2px;text-align:center;font-size:11px;font-weight:800;color:var(--muted);background:#f0f2f5;border-right:1px solid var(--line)}.md{min-height:82px;border:0;border-top:1px solid var(--line);border-right:1px solid var(--line);background:var(--card);text-align:left;padding:6px}.md.today{background:var(--soft)}.dots{display:flex;gap:3px;flex-wrap:wrap;margin-top:8px}.dot{width:7px;height:7px;border-radius:50%;background:var(--c)}.modalBack{position:fixed;inset:0;background:#0007;display:none;align-items:flex-end;justify-content:center;padding:12px;z-index:50}.modalBack.show{display:flex}.modal{width:min(620px,100%);max-height:90vh;overflow:auto;background:var(--card);border-radius:18px;padding:16px}.modalTop{display:flex;justify-content:space-between;gap:10px}.modal h2{margin:4px 0 14px;font-size:20px}.close{border:1px solid var(--line);background:#f1f3f5;border-radius:10px;min-width:40px;min-height:40px}.form{display:grid;gap:10px}.form label{font-size:12px;color:var(--muted)}.form input,.form select,.form textarea{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:10px;background:#f8f9fb;color:var(--text);padding:10px;font-size:16px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.kv{display:grid;grid-template-columns:82px 1fr;gap:9px 12px;font-size:13px}.kv div:nth-child(odd){color:var(--muted)}.hidden{display:none!important}@media(max-width:699px){.app{padding:10px 10px 32px}.top{display:block}.actions{margin-top:8px}.actions>*{flex:1}.summary{grid-template-columns:1fr}.weekCanvas{min-width:760px}.md{min-height:62px}.row2{grid-template-columns:1fr}.tabs{min-width:0;width:100%}}@media(min-width:700px){.dateStrip{display:none}}
.authHidden{display:none!important}.authGate{min-height:100dvh;display:grid;place-items:center;padding:20px;background:linear-gradient(180deg,#f8fafc,#eef3f9)}.loginCard{width:min(420px,100%);border:1px solid var(--line);background:var(--card);border-radius:22px;padding:24px;box-shadow:0 18px 50px #20304014}.loginCard h1{margin:6px 0 8px;font-size:24px}.loginCard p{margin:0 0 18px;color:var(--muted);font-size:13px;line-height:1.5}.loginCard label{display:block;color:var(--muted);font-size:12px}.loginCard input{width:100%;margin:6px 0 12px;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:16px;background:#f8f9fb}.loginCard .primary{width:100%}.loginCard .primary:disabled{opacity:.6}.lockMark{font-size:26px;margin-bottom:10px}.loginError{min-height:20px;margin-top:10px;color:#b33a3a;font-size:12px}.privacyNote{margin-top:8px;color:var(--muted);font-size:11px;line-height:1.45}
