:root{color-scheme:light;--page:#f9f9f7;--surface-1:#fcfcfb;--text-primary:#0b0b0b;--text-secondary:#52514e;--text-muted:#898781;--grid:#e1e0d9;--baseline:#c3c2b7;--border:rgba(11,11,11,0.1);--s-blue:#2a78d6;--s-aqua:#1baf7a;--s-neutral:#a3a29a;--status-critical:#d03b3b;--surface-2:#efeee8;--surface-hover:rgba(11,11,11,0.05)}@media (prefers-color-scheme:dark){:root:where(:not([data-theme=light])){color-scheme:dark;--page:#0d0d0d;--surface-1:#1a1a19;--text-primary:#ffffff;--text-secondary:#c3c2b7;--text-muted:#898781;--grid:#2c2c2a;--baseline:#383835;--border:rgba(255,255,255,0.1);--s-blue:#3987e5;--s-aqua:#199e70;--s-neutral:#6f6e68;--status-critical:#d03b3b;--surface-2:#2c2c2a;--surface-hover:rgba(255,255,255,0.07)}}:root[data-theme=dark]{color-scheme:dark;--page:#0d0d0d;--surface-1:#1a1a19;--text-primary:#ffffff;--text-secondary:#c3c2b7;--text-muted:#898781;--grid:#2c2c2a;--baseline:#383835;--border:rgba(255,255,255,0.1);--s-blue:#3987e5;--s-aqua:#199e70;--s-neutral:#6f6e68;--status-critical:#d03b3b;--surface-2:#2c2c2a;--surface-hover:rgba(255,255,255,0.07)}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--text-primary);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.5}.container{max-width:1100px;margin:0 auto;padding:24px 20px 64px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 24px}.page-title{font-size:22px;font-weight:700;margin:0 0 2px}.page-sub{color:var(--text-secondary);margin:0}.segmented{display:inline-flex;gap:2px;padding:2px;flex:none;background:var(--surface-2);border:1px solid var(--border);border-radius:10px}.segmented .tt-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);font:inherit;font-size:12.5px;line-height:1.4;cursor:pointer}.segmented .tt-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.segmented .tt-btn:focus-visible{outline:2px solid var(--s-blue);outline-offset:1px}.segmented .tt-btn[aria-pressed=true]{background:var(--surface-1);color:var(--text-primary);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.12)}@media (max-width:520px){.segmented .tt-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.segmented .tt-btn{padding:5px 9px}}.filter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 20px}.filter-field{display:inline-flex;align-items:center;gap:7px}.filter-field>span{color:var(--text-muted);font-size:12.5px}.filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface-1);color:var(--text-primary);border:1px solid var(--border);border-radius:8px;padding:6px 26px 6px 10px;font:inherit;font-size:12.5px;max-width:230px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 14px) 55%,calc(100% - 10px) 55%;background-size:4px 4px;background-repeat:no-repeat}.filter-select:focus-visible{outline:2px solid var(--s-blue);outline-offset:1px}.filter-note{color:var(--text-muted);font-size:12px;margin:8px 0 0}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:18px 20px;margin-bottom:20px}.card h2{font-size:15px;font-weight:700;margin:0 0 2px}.card .desc{color:var(--text-muted);font-size:12.5px;margin:0 0 14px}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px}@media (max-width:860px){.grid-2{grid-template-columns:1fr}}.legend{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 12px}.legend .item{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:12.5px}.legend .swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.tooltip{position:fixed;pointer-events:none;background:var(--surface-1);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.14);padding:8px 10px;font-size:12.5px;z-index:50;min-width:140px}.tooltip .t-title{font-weight:700;margin-bottom:4px}.tooltip .t-row{display:flex;justify-content:space-between;gap:14px;color:var(--text-secondary)}.tooltip .t-row b{color:var(--text-primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}details.table-view{margin-top:12px}details.table-view summary{cursor:pointer;color:var(--text-muted);font-size:12.5px}table.data{width:100%;border-collapse:collapse;margin-top:8px;font-size:12.5px}table.data td,table.data th{text-align:left;padding:5px 8px;border-bottom:1px solid var(--grid)}table.data td.num,table.data th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.overdue-chip{display:inline-flex;align-items:center;gap:4px;color:var(--status-critical);font-weight:700;font-size:12px}.metric-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin:0 0 16px}@media (max-width:720px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}.kpi{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.kpi-value{font-size:24px;font-weight:700;line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-label{color:var(--text-secondary);font-size:12.5px;margin-top:2px}.kpi-sub{color:var(--text-muted);font-size:12px;margin-top:1px}.gantt-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}.gantt-year{display:inline-flex;align-items:center;gap:8px}.gantt-year b{font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:58px;text-align:center}.gantt-year button{width:26px;height:26px;border:1px solid var(--border);border-radius:8px;background:var(--surface-1);color:var(--text-secondary);font:inherit;font-size:14px;line-height:1;cursor:pointer}.gantt-year button:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.gantt-year button:disabled{opacity:.35;cursor:default}.gantt-year button:focus-visible{outline:2px solid var(--s-blue);outline-offset:1px}.gantt-today-legend{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:12.5px}.gantt-today-legend .line{width:2px;height:12px;background:var(--status-critical);display:inline-block}.gantt-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.gantt-label{width:150px;min-width:150px;font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-track{position:relative;flex:1 1;height:22px}.gantt-months{margin-bottom:2px}.gantt-month{position:absolute;top:0;text-align:center;color:var(--text-muted);font-size:11px;white-space:nowrap;overflow:hidden}.gantt-gridline{position:absolute;top:0;bottom:0;width:1px;background:var(--grid)}.gantt-today{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--status-critical);z-index:2}.gantt-bar{position:absolute;top:3px;bottom:3px;min-width:4px;background:var(--s-blue);overflow:hidden;z-index:1;cursor:default}.gantt-bar.estimated{opacity:.75}.gantt-bar.overdue{box-shadow:inset 0 0 0 1.5px var(--status-critical)}.gantt-bar .fill{position:absolute;top:0;bottom:0;left:0;background:var(--s-aqua)}@media (max-width:640px){.gantt-label{width:90px;min-width:90px;font-size:12px}.gantt-month:nth-child(2n){visibility:hidden}}.state{color:var(--text-muted);padding:20px 0}.error{color:var(--status-critical)}.sprint-card{border:1px solid var(--grid);border-radius:10px;padding:12px 14px;margin-bottom:10px}.sprint-card .name{font-weight:700}.sprint-card .meta{color:var(--text-muted);font-size:12px;margin:2px 0 8px}.progress-track{height:8px;border-radius:4px;background:var(--grid);overflow:hidden}.progress-fill{height:100%;border-radius:4px;background:var(--s-aqua)}.sprint-card .pct{color:var(--text-secondary);font-size:12.5px;margin-top:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}ul.due-list{list-style:none;padding:0;margin:0}ul.due-list li{display:flex;gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--grid);font-size:13px}ul.due-list .key{color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}ul.due-list .sum{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ul.due-list .who{color:var(--text-secondary);white-space:nowrap}ul.due-list .due{color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}