:root{--bg:#080c1a;--card:hsla(0,0%,100%,.045);--card-border:hsla(0,0%,100%,.09);--text:#eef1fb;--muted:#8b93b8;--aqua:#4fd1e8;--pink:#f07ab0;--green:#55e6a5;--red:#ff7b7b;--amber:#ffcf7b;--violet:#8b7cf0;--radius:18px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);min-height:100vh;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(1200px 600px at 85% -10%,rgba(79,209,232,.14),transparent 60%),radial-gradient(900px 500px at -10% 15%,rgba(240,122,176,.1),transparent 55%),radial-gradient(800px 700px at 50% 110%,rgba(139,124,240,.1),transparent 60%)}main.hub{max-width:960px;margin:0 auto;padding:18px 16px 40px}.hub-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 14px}.hub-header h1{font-size:26px;margin:0;letter-spacing:-.02em}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);background:var(--card);border:1px solid var(--card-border);border-radius:999px;padding:4px 10px;white-space:nowrap}.chip strong{color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--red);flex:none}.dot.ok{background:var(--green);box-shadow:0 0 0 0 rgba(85,230,165,.5);animation:pulse-dot 2.5s infinite}@keyframes pulse-dot{0%{box-shadow:0 0 0 0 rgba(85,230,165,.45)}70%{box-shadow:0 0 0 7px rgba(85,230,165,0)}to{box-shadow:0 0 0 0 rgba(85,230,165,0)}}.card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:16px 18px}.card .lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px;display:flex;align-items:center;gap:6px}.big{font-size:36px;font-weight:750;line-height:1.05;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.big .sub{font-size:20px;font-weight:600}.big .sub,.hint{color:var(--muted)}.hint{font-size:12px;margin-top:5px}.grid{grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}.grid,.stack{display:grid;grid-gap:12px;gap:12px}.stack{margin-top:12px}.two-col{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:640px){.two-col{grid-template-columns:1fr}}.btn,button{background:hsla(0,0%,100%,.09);color:var(--text);border:1px solid hsla(0,0%,100%,.1);border-radius:11px;padding:9px 14px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:background .15s,transform .05s}.btn:hover,button:hover{background:hsla(0,0%,100%,.15)}.btn:active,button:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,rgba(79,209,232,.28),rgba(139,124,240,.28));border-color:rgba(79,209,232,.35)}.btn-primary:hover{background:linear-gradient(135deg,rgba(79,209,232,.4),rgba(139,124,240,.4))}.btn-danger{background:hsla(0,100%,74%,.14);border-color:hsla(0,100%,74%,.3)}.btn-danger:hover{background:hsla(0,100%,74%,.25)}.btn-sm{padding:5px 10px;font-size:12px;border-radius:9px}input,textarea{background:rgba(0,0,0,.35);color:var(--text);border:1px solid var(--card-border);border-radius:8px;padding:4px 6px;font-family:inherit;font-size:13px}input:focus,textarea:focus{outline:none;border-color:var(--aqua)}input.mini{width:52px;text-align:center}.bar{background:hsla(0,0%,100%,.08);height:9px;overflow:hidden}.bar,.bar>div{border-radius:6px}.bar>div{height:100%;background:linear-gradient(90deg,var(--aqua),var(--pink));transition:width .4s ease}.bar.warn>div{background:linear-gradient(90deg,var(--pink),var(--red))}.bar.thin{height:5px}.bar.thin>div{background:var(--aqua)}.alert-banner{background:linear-gradient(135deg,rgba(255,60,60,.22),hsla(0,100%,74%,.12));border:1px solid hsla(0,100%,70%,.45);border-radius:var(--radius);padding:14px 18px;font-weight:700;margin-bottom:12px;animation:banner-pulse 1.6s ease-in-out infinite}@keyframes banner-pulse{0%,to{border-color:hsla(0,100%,70%,.45)}50%{border-color:hsla(0,100%,70%,.9)}}.sched-row{display:flex;gap:10px;padding:6px 10px;border-radius:9px;margin:2px 0;font-size:14px;align-items:baseline}.sched-row .t{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted);flex:none}.sched-row.past{color:#5a6183}.sched-row.past .t{color:#454b6e}.sched-row.current{background:linear-gradient(135deg,rgba(79,209,232,.16),rgba(139,124,240,.14));border:1px solid rgba(79,209,232,.3);font-weight:700}.sched-row.current .t{color:var(--aqua)}.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.task-row{display:flex;align-items:center;gap:10px;padding:7px 2px;border-bottom:1px solid hsla(0,0%,100%,.05);font-size:14px}.task-row:last-child{border-bottom:none}.task-row.done .task-label{color:#5a6183;text-decoration:line-through}.task-label{flex:1 1;min-width:0;line-height:1.35}.task-check{width:26px;height:26px;min-width:26px;border-radius:50%;padding:0;justify-content:center;font-size:14px;color:var(--green);border:1.5px solid hsla(0,0%,100%,.25);background:transparent}.task-row.done .task-check{background:rgba(85,230,165,.15);border-color:var(--green)}.chip-btn{font-size:11px;padding:3px 9px;border-radius:999px;background:hsla(0,0%,100%,.07);border:1px solid var(--card-border);color:var(--muted);white-space:nowrap}.chip-btn.mine{background:rgba(79,209,232,.18);border-color:rgba(79,209,232,.4);color:var(--aqua)}.qr-box{display:flex;align-items:center;gap:14px}.qr-box img{width:108px;height:108px;flex:none}.tv .qr-box img{width:150px;height:150px}.log{font-size:12px;color:var(--muted)}.log>div{margin:3px 0}.log.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}main.hub.tv{max-width:1400px;font-size:19px}.tv .hub-header h1{font-size:38px}.tv .big{font-size:54px}.tv .big .sub{font-size:30px}.tv .chip{font-size:15px;padding:6px 14px}.tv .card .lbl{font-size:13px}.tv .hint{font-size:15px}.tv .sched-row{font-size:19px;padding:8px 12px}.tv .grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}