:root{--bg: #070f1c;--bg-2: #0a1525;--bg-3: #0d1a2a;--panel: #111c2e;--panel-2: #1e2d45;--border: #253347;--border-2: #1e3a5f;--accent: #3b82f6;--text: #f1f5f9;--text-2: #e2e8f0;--muted: #94a3b8;--muted-2: #64748b;--amber: #f59e0b;--red: #ef4444;--green: #22c55e}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:DM Sans,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{width:232px;flex:0 0 232px;background:var(--bg-2);border-right:1px solid var(--border);padding:18px 12px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 14px}.brand-logo{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--accent),#1d4ed8);display:grid;place-items:center;font-weight:900;font-size:18px;color:#fff;box-shadow:0 0 18px #3b82f673}.brand-name{font-weight:900;font-size:18px;letter-spacing:-.5px}.brand-sub{font-size:11px;color:var(--muted-2);margin-top:1px}.nav-group-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted-2);padding:12px 10px 4px;font-weight:700}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--muted);font-weight:500;font-size:14px;cursor:pointer;transition:all .12s}.nav-item:hover{background:var(--panel);color:var(--text-2)}.nav-item.active{background:var(--panel-2);color:var(--text)}.nav-item .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5}.nav-item.active .dot{background:var(--accent);opacity:1}.nav-item.soon{opacity:.45}.nav-item .soon-tag{margin-left:auto;font-size:9px;color:var(--muted-2);border:1px solid var(--border);border-radius:5px;padding:1px 5px}.sidebar-foot{margin-top:auto;padding:10px 8px;border-top:1px solid var(--border)}.sidebar-foot .email{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-foot button{margin-top:8px}.main{flex:1;min-width:0;padding:28px 34px 60px}.page-head{margin-bottom:22px}.page-title{font-size:26px;font-weight:900;letter-spacing:-.6px;margin:0}.page-sub{color:var(--muted);font-size:14px;margin-top:4px}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:20px}.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px}.card h3{margin:0 0 14px;font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}.card h3 .count{color:var(--muted-2);font-weight:500;font-size:13px}.stat .stat-num{font-size:32px;font-weight:900;letter-spacing:-1px}.stat .stat-label{color:var(--muted);font-size:13px;margin-top:2px}.stat .stat-accent{color:var(--accent)}.list{display:flex;flex-direction:column;gap:2px}.row{display:flex;align-items:center;gap:12px;padding:9px 8px;border-radius:8px}.row:hover{background:var(--bg-3)}.row .r-main{min-width:0;flex:1}.row .r-title{font-size:14px;color:var(--text-2);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .r-sub{font-size:12px;color:var(--muted-2);margin-top:1px}.row .r-when{font-size:12px;color:var(--muted);flex:0 0 auto}.pill{font-size:10px;text-transform:uppercase;letter-spacing:.5px;padding:2px 7px;border-radius:6px;font-weight:700;background:var(--bg-3);color:var(--muted);border:1px solid var(--border);flex:0 0 auto}.avatar{width:30px;height:30px;border-radius:8px;flex:0 0 auto;background:var(--panel-2);display:grid;place-items:center;font-weight:700;font-size:13px;color:var(--accent)}.btn{font-family:inherit;font-weight:700;font-size:13px;border-radius:8px;padding:9px 14px;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--text-2);transition:all .12s}.btn:hover{border-color:var(--border-2)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:#2563eb}.btn:disabled{opacity:.5;cursor:default}.muted{color:var(--muted)}.empty{color:var(--muted-2);font-size:13px;padding:8px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:380px;text-align:center}.login-card .brand-logo{width:52px;height:52px;margin:0 auto 16px;font-size:26px}.login-card h1{font-size:24px;font-weight:900;margin:0 0 4px}.login-card p{color:var(--muted);font-size:14px;margin:0 0 22px}.login-card input{width:100%;font-family:inherit;font-size:15px;padding:12px 14px;border-radius:10px;margin-bottom:12px;background:var(--bg-3);border:1px solid var(--border);color:var(--text)}.login-card input:focus{outline:none;border-color:var(--accent)}.login-card .btn-primary{width:100%;padding:12px}.login-note{font-size:13px;margin-top:16px}.login-note.ok{color:var(--green)}.login-note.err{color:var(--red)}.wx-card{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.wx-now{display:flex;align-items:center;gap:16px}.wx-icon{font-size:46px;line-height:1}.wx-temp{font-size:40px;font-weight:900;letter-spacing:-1.5px;line-height:1}.wx-desc{color:var(--text-2);font-size:14px;margin-top:4px}.wx-loc{color:var(--muted-2);font-size:12px;margin-top:2px}.wx-days{display:flex;gap:8px}.wx-day{text-align:center;background:var(--bg-3);border:1px solid var(--border);border-radius:10px;padding:10px 12px;min-width:62px}.wx-day-name{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.wx-day-ic{font-size:22px;margin:4px 0}.wx-day-hl{font-size:13px;font-weight:700}.cal-group{margin-bottom:12px}.cal-day{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--accent);font-weight:700;padding:6px 0 2px}.cal-time{flex:0 0 66px;font-size:12px;color:var(--muted);font-weight:600}.todo-add{display:flex;gap:8px;margin-bottom:12px}.todo-add input{flex:1;font-family:inherit;font-size:14px;padding:9px 12px;border-radius:8px;background:var(--bg-3);border:1px solid var(--border);color:var(--text)}.todo-add input:focus{outline:none;border-color:var(--accent)}.todo-row{cursor:pointer}.todo-row input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent);flex:0 0 auto}@media (max-width: 720px){.shell{flex-direction:column}.sidebar{width:100%;flex:none;height:auto;position:static;flex-direction:row;overflow-x:auto;gap:4px;border-right:none;border-bottom:1px solid var(--border);padding:10px}.brand,.nav-group-label,.sidebar-foot{display:none}.nav-item{padding:8px 12px;white-space:nowrap}.nav-item.soon{display:none}.main{padding:20px 16px 40px}}
