:root{--font:"Inter",-apple-system,"Segoe UI",Roboto,sans-serif;--radius:14px;--radius-sm:9px;--shadow:0 1px 3px rgba(16,24,40,.06),0 1px 2px rgba(16,24,40,.04);--green:#16a34a;--yellow:#d97706;--red:#dc2626;--transition:background-color .25s ease,color .25s ease,border-color .25s ease}[data-theme=light]{--bg:#f3f5f9;--bg-card:#ffffff;--bg-soft:#eef1f6;--bg-hover:#f8fafc;--text:#0f172a;--text-2:#475569;--text-3:#94a3b8;--border:#e2e8f0;--accent:#2563eb;--accent-soft:#eff6ff;--green-soft:#ecfdf3;--yellow-soft:#fffaeb;--red-soft:#fef3f2}[data-theme=dark]{--bg:#0c1118;--bg-card:#151c26;--bg-soft:#1c2532;--bg-hover:#1a2330;--text:#e6edf6;--text-2:#9fb0c3;--text-3:#5d6f84;--border:#233042;--accent:#4f8df9;--accent-soft:#16243c;--green:#2dd47b;--yellow:#f5a623;--red:#f4564e;--green-soft:#102a1d;--yellow-soft:#2c2210;--red-soft:#2f1614;--shadow:0 1px 3px rgba(0,0,0,.35)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.45;transition:var(--transition)}.wrap{max-width:1480px;margin:0 auto;padding:0 20px 60px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:var(--bg-card);border-bottom:1px solid var(--border);transition:var(--transition)}.topbar-inner{max-width:1480px;margin:0 auto;padding:12px 20px 0;gap:16px;flex-wrap:wrap}.logo,.topbar-inner{display:flex;align-items:center}.logo{gap:10px;font-weight:700;font-size:17px}.logo-mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--accent),#7c3aed);display:grid;place-items:center;color:#fff;font-size:16px;font-weight:800}.logo small{display:block;font-weight:500;font-size:11px;color:var(--text-3)}.topbar .spacer{flex:1 1}.topbar .date-now{color:var(--text-2);font-size:13px}.health{display:flex;gap:7px;align-items:center;padding:6px 12px;border-radius:99px;font-size:12.5px;font-weight:600}.health,.theme-toggle{background:var(--bg-soft)}.theme-toggle{border:1px solid var(--border);color:var(--text);width:38px;height:38px;border-radius:10px;cursor:pointer;font-size:17px;display:grid;place-items:center;transition:var(--transition)}.theme-toggle:hover{background:var(--bg-hover);border-color:var(--accent)}.nav{max-width:1480px;margin:0 auto;padding:6px 20px 8px;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a{color:var(--text-2);text-decoration:none;font-size:13px;font-weight:500;padding:6px 12px;border-radius:9px;white-space:nowrap}.nav a:hover{background:var(--bg-soft);color:var(--text)}section{margin-top:34px;scroll-margin-top:110px}.sec-head{display:flex;align-items:baseline;gap:12px;margin-bottom:14px;flex-wrap:wrap}.sec-head h2{font-size:19px;font-weight:700}.sec-head .sub{color:var(--text-3);font-size:13px}.kpi-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(218px,1fr))}.kpi{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:15px 17px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:var(--transition)}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--border)}.kpi.green:before{background:var(--green)}.kpi.yellow:before{background:var(--yellow)}.kpi.red:before{background:var(--red)}.kpi .label{font-size:12.5px;color:var(--text-2);font-weight:500;display:flex;align-items:center;gap:6px}.kpi .value{font-size:23px;font-weight:750;margin-top:5px;letter-spacing:-.3px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi .hint{font-size:12px;color:var(--text-3);margin-top:4px}.kpi .delta{font-size:12.5px;font-weight:650;margin-top:4px}.delta.up{color:var(--green)}.delta.down{color:var(--red)}.delta.warn{color:var(--yellow)}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}.dot.green{background:var(--green)}.dot.yellow{background:var(--yellow)}.dot.red{background:var(--red);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(220,38,38,.45)}70%{box-shadow:0 0 0 7px rgba(220,38,38,0)}to{box-shadow:0 0 0 0 rgba(220,38,38,0)}}.grid{display:grid;grid-gap:14px;gap:14px}.grid.cols-2{grid-template-columns:1fr 1fr}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-23{grid-template-columns:2fr 1fr}.grid.cols-32{grid-template-columns:1.4fr 1fr}@media (max-width:1100px){.grid.cols-2,.grid.cols-23,.grid.cols-3,.grid.cols-32{grid-template-columns:1fr}}.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);transition:var(--transition);min-width:0}.panel h3{font-size:14.5px;font-weight:700;margin-bottom:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.panel h3 .badge{margin-left:auto}.chart-box{position:relative;height:280px}.chart-box.tall{height:330px}.chart-box.short{height:215px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:650;padding:3px 9px;border-radius:99px;white-space:nowrap}.badge.green{background:var(--green-soft);color:var(--green)}.badge.yellow{background:var(--yellow-soft);color:var(--yellow)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.neutral{background:var(--bg-soft);color:var(--text-2)}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3);font-weight:650;padding:7px 10px}td,th{border-bottom:1px solid var(--border)}td{padding:8.5px 10px;vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--bg-hover)}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}td .name{font-weight:600}.bar-cell{display:flex;align-items:center;gap:8px}.bar{height:6px;border-radius:3px;background:var(--accent);opacity:.85;min-width:3px;flex:none}.task-list{list-style:none;display:flex;flex-direction:column;gap:9px}.task{display:flex;gap:11px;align-items:flex-start;padding:11px 13px;border-radius:var(--radius-sm);background:var(--bg-soft);border:1px solid transparent;transition:var(--transition)}.task:hover{border-color:var(--border)}.task .dot{margin-top:5px}.task .who{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--accent)}.task .text{font-size:13px;margin-top:2px}.task .deadline{margin-left:auto;flex:none;font-size:11.5px;color:var(--text-3);font-weight:600;padding-top:3px}.progress-track{height:6px;border-radius:3px;background:var(--bg-soft);margin-top:8px;overflow:hidden}.progress-fill{height:100%;border-radius:3px;background:var(--accent)}.action-item{padding:12px 0;border-bottom:1px solid var(--border)}.action-item:first-child{padding-top:0}.action-item:last-child{border-bottom:none;padding-bottom:0}.action-item .effect{font-size:12.5px;color:var(--text-2);margin-top:4px}.stat-row{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px dashed var(--border);font-size:13px}.stat-row:last-child{border-bottom:none}.stat-row .v{font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.ai-panel{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(160deg,var(--accent-soft),var(--bg-card) 55%);padding:18px;box-shadow:var(--shadow)}.ai-panel h3{display:flex;align-items:center;gap:8px;font-size:14.5px;margin-bottom:12px}.ai-msg{font-size:13.5px;line-height:1.6;white-space:pre-wrap}.ai-footer{margin-top:12px;font-size:11.5px;color:var(--text-3);display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ai-btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text);padding:7px 14px;border-radius:9px;cursor:pointer;font-family:var(--font);font-size:13px;font-weight:600;transition:var(--transition)}.ai-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.ai-btn:disabled{opacity:.55;cursor:wait}footer{margin-top:50px;padding-top:18px;border-top:1px solid var(--border);color:var(--text-3);font-size:12px;display:flex;gap:14px;flex-wrap:wrap}@media (max-width:700px){.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.kpi .value{font-size:19px}.topbar-inner{gap:10px}}