:root{color-scheme:light;--page:#f9f9f7;--surface:#fcfcfb;--surface-2:#f2f2ef;--ink:#0b0b0b;--ink-2:#52514e;--muted:#898781;--grid:#e1e0d9;--axis:#c3c2b7;--line:#e4e3dc;--series-1:#3f45d6;--series-2:#e04a2e;--series-3:#0d9c93;--series-4:#e5960f;--series-other:#898781;--good:#0ca30c;--warning:#fab219;--serious:#ec835a;--critical:#d03b3b;--seq-100:#cde2fb;--seq-250:#86b6ef;--seq-400:#3987e5;--seq-550:#1c5cab;--seq-700:#0d366b;--radius:10px;--radius-sm:6px;--shadow:0 1px 2px hsla(0,0%,4%,.04),0 8px 24px hsla(0,0%,4%,.05);--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#232322;--ink:#fff;--ink-2:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--axis:#383835;--line:#2c2c2a;--series-1:#666dea;--series-2:#db5a36;--series-3:#0fa093;--series-4:#c08a0e;--shadow:0 1px 2px rgba(0,0,0,.5),0 8px 24px rgba(0,0,0,.4)}}:root[data-theme=dark]{color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#232322;--ink:#fff;--ink-2:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--axis:#383835;--line:#2c2c2a;--series-1:#666dea;--series-2:#db5a36;--series-3:#0fa093;--series-4:#c08a0e;--shadow:0 1px 2px rgba(0,0,0,.5),0 8px 24px rgba(0,0,0,.4)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--page);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.side{border-right:1px solid var(--line);background:var(--surface);padding:18px 14px;display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:hidden}.side-nav{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:4px;margin-right:-6px;padding-right:6px}.side-nav::-webkit-scrollbar{width:8px}.side-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 35%,transparent);border-radius:4px}.side-nav::-webkit-scrollbar-track{background:transparent}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px}.brand-mark{width:26px;height:26px;display:block;flex:none;--brand-ring:var(--ink)}.brand-word{color:var(--ink);margin-bottom:3px}.brand-name{font-weight:700;font-size:14.5px;letter-spacing:-.01em}.brand-sub{font-size:10.5px;letter-spacing:.08em;font-weight:600}.brand-sub,.nav-group{color:var(--muted);text-transform:uppercase}.nav-group{font-size:10px;font-weight:700;letter-spacing:.1em;padding:14px 8px 6px}.nav-item{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--radius-sm);color:var(--ink-2);font-weight:500;font-size:13px}.nav-item:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}.nav-item.active{background:color-mix(in srgb,var(--series-1) 12%,transparent);color:var(--ink);font-weight:600}.nav-item.active .dot{background:var(--series-1)}.nav-item .dot{width:5px;height:5px;border-radius:50%;background:var(--axis);flex:none}.side-foot{flex:none;padding-top:14px;margin-top:10px;border-top:1px solid var(--line);background:var(--surface)}.main{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:14px 26px;border-bottom:1px solid var(--line);background:var(--surface);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar h1{font-size:17px;margin:0;font-weight:650;letter-spacing:-.01em}.topbar .spacer{flex:1 1}.content{padding:22px 26px 60px;max-width:1500px}.autorefresh{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);white-space:nowrap}.ar-dot{width:6px;height:6px;border-radius:50%;background:var(--good);animation:arpulse 2.4s var(--ease) infinite}.ar-dot.paused{background:var(--warning);animation:none}@keyframes arpulse{0%,to{opacity:1}50%{opacity:.35}}.health{display:flex;gap:8px;align-items:center;font-size:11.5px;color:var(--ink-2)}.health .chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-weight:600}.health .chip.ok{color:var(--good);border-color:color-mix(in srgb,var(--good) 35%,transparent)}.health .chip.bad{color:var(--critical);border-color:color-mix(in srgb,var(--critical) 40%,transparent)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.tile .label{font-size:11px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.tile .value{font-size:27px;font-weight:700;letter-spacing:-.02em;margin-top:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tile .sub{font-size:11.5px;color:var(--ink-2);margin-top:4px}.tile .sub .up{color:var(--good);font-weight:650}.tile .sub .down{color:var(--critical);font-weight:650}.grid{display:grid;grid-gap:14px;gap:14px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card-head{display:flex;align-items:baseline;gap:10px;padding:14px 16px 8px}.card-head h2{font-size:13.5px;margin:0;font-weight:650}.card-head .hint{font-size:11.5px;color:var(--muted)}.card-head .spacer{flex:1 1}.card-body{padding:4px 16px 16px}.card-body.flush{padding:0}.legend{display:flex;flex-wrap:wrap;gap:12px;padding:2px 16px 10px}.legend .item{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-2)}.legend .swatch{width:9px;height:9px;border-radius:2px;flex:none}svg.chart{display:block;width:100%;height:auto;overflow:visible}svg.chart .grid-line{stroke:var(--grid);stroke-width:1}svg.chart .axis-line{stroke:var(--axis);stroke-width:1}svg.chart .tick{fill:var(--muted);font-size:10px;font-family:var(--sans)}svg.chart .dlabel{fill:var(--ink-2);font-size:10.5px;font-weight:600;font-family:var(--sans);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}svg.chart .mark{transition:opacity .12s}svg.chart .mark:hover{opacity:.78;cursor:default}.table-view{margin:0 16px 14px}.table-view summary{font-size:11.5px;color:var(--muted);cursor:pointer;padding:4px 0;font-weight:600}.table-view summary:hover{color:var(--ink)}table.data{width:100%;border-collapse:collapse;font-size:12.5px}table.data th{text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;background:var(--surface-2);position:-webkit-sticky;position:sticky;top:0}table.data td,table.data th{padding:9px 12px;border-bottom:1px solid var(--line)}table.data td{vertical-align:top}table.data tbody tr:hover{background:var(--surface-2)}table.data td.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.data .mono{font-family:var(--mono);font-size:11.5px;color:var(--ink-2)}table.data a{color:var(--series-1);font-weight:600}.scroll-x{overflow-x:auto}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:650;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);white-space:nowrap}.pill.good{color:var(--good);border-color:color-mix(in srgb,var(--good) 35%,transparent);background:color-mix(in srgb,var(--good) 10%,transparent)}.pill.warn{color:#8a5c00;border-color:color-mix(in srgb,var(--warning) 45%,transparent);background:color-mix(in srgb,var(--warning) 16%,transparent)}.pill.crit{color:var(--critical);border-color:color-mix(in srgb,var(--critical) 40%,transparent);background:color-mix(in srgb,var(--critical) 10%,transparent)}.pill.info{color:var(--series-1);border-color:color-mix(in srgb,var(--series-1) 35%,transparent);background:color-mix(in srgb,var(--series-1) 10%,transparent)}:root[data-theme=dark] .pill.warn{color:var(--warning)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pill.warn{color:var(--warning)}}.btn{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:600;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--series-1);border-color:var(--series-1);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--critical);border-color:color-mix(in srgb,var(--critical) 40%,transparent)}.btn.danger:hover{background:color-mix(in srgb,var(--critical) 10%,transparent)}.btn:disabled{opacity:.5;cursor:not-allowed}input.field,select.field{padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:12.5px;font-family:inherit}input.field:focus,select.field:focus{outline:2px solid var(--series-1);outline-offset:-1px}.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.empty{padding:34px 16px;text-align:center;color:var(--muted)}.empty,.note{font-size:12.5px}.note{border-left:3px solid var(--series-1);background:color-mix(in srgb,var(--series-1) 7%,transparent);padding:11px 14px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--ink-2);margin-bottom:14px}.note.warn{border-left-color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,transparent)}.note strong{color:var(--ink)}.kv{display:grid;grid-template-columns:150px 1fr;grid-gap:7px 14px;gap:7px 14px;font-size:12.5px}.kv dt{color:var(--muted);font-weight:600}.kv dd{color:var(--ink)}.kv dd,pre.raw{margin:0;word-break:break-word}pre.raw{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 13px;font-family:var(--mono);font-size:11.5px;line-height:1.55;white-space:pre-wrap;color:var(--ink-2);max-height:340px;overflow:auto}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:372px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}.login-card h1{font-size:19px;margin:16px 0 4px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.login-brand{display:flex;align-items:baseline;gap:9px;margin-bottom:16px;color:var(--ink)}.login-brand .brand-mark{width:34px;height:34px;flex:none;align-self:center;--brand-ring:var(--ink)}.login-sub{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.login-card p{color:var(--ink-2);font-size:12.5px;margin:0 0 20px}.login-card label{display:block;font-size:11.5px;font-weight:650;color:var(--ink-2);margin-bottom:6px}.login-card input{width:100%;margin-bottom:14px}.login-card .btn{width:100%;justify-content:center}.login-err{color:var(--critical);font-size:12px;margin:-6px 0 12px;font-weight:600}@media (max-width:900px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;overflow:visible;align-items:center}.side-nav{flex-direction:row;overflow-x:auto;overflow-y:visible;margin:0;padding:0}.side-foot{margin:0;padding:0;border:none}.nav-group{display:none}}.board-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.board{display:flex;gap:12px;align-items:flex-start;overflow-x:auto;padding-bottom:10px}.board-col{flex:0 0 274px;min-width:274px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:10px;min-height:140px;transition:border-color .12s,background .12s}.board-col.over{border-color:var(--series-1);background:color-mix(in srgb,var(--series-1) 8%,var(--surface-2))}.board-col-head{display:flex;align-items:center;gap:8px;padding:0 2px 9px}.board-count{margin-left:auto;font-size:11px;font-weight:700;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:1px 7px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.board-col-body{display:flex;flex-direction:column;gap:8px}.board-empty{font-size:11.5px;color:var(--muted);text-align:center;padding:16px 8px;border:1px dashed var(--line);border-radius:var(--radius-sm)}.tcard{background:var(--surface);border-left:1px solid var(--line);border:1px solid var(--line);border-left-width:3px;border-radius:var(--radius-sm);padding:10px 11px;cursor:-webkit-grab;cursor:grab;box-shadow:0 1px 2px rgba(0,0,0,.1)}.tcard:active{cursor:-webkit-grabbing;cursor:grabbing}.tcard:hover{border-color:color-mix(in srgb,var(--series-1) 45%,var(--line))}.tcard.overdue{border-left-color:var(--critical)}.tcard.busy{opacity:.55;pointer-events:none}.tcard-title{display:block;font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.35;margin-bottom:7px}.tcard-title:hover{color:var(--series-1);text-decoration:none}.tcard-meta{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.tcard-meta .sev{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:3px}.tcard-meta .sev.high{background:color-mix(in srgb,var(--critical) 18%,transparent);color:var(--critical)}.tcard-meta .sev.normal{background:color-mix(in srgb,var(--warning) 18%,transparent);color:#8a5c00}.tcard-meta .sev.low{background:color-mix(in srgb,var(--muted) 18%,transparent);color:var(--muted)}:root[data-theme=dark] .tcard-meta .sev.normal{color:var(--warning)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tcard-meta .sev.normal{color:var(--warning)}}.tcard-cat,.tcard-foot{font-size:10.5px;color:var(--muted)}.tcard-foot{display:flex;align-items:center;gap:6px}.tcard-foot .who{display:inline-flex;align-items:center;gap:5px}.tcard-foot .ava{width:17px;height:17px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:8.5px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--series-1),var(--series-3))}.tcard-chip{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:0 6px}.tcard-age,.tcard-chip{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tcard-actions{display:flex;gap:6px;align-items:center;margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}.tcard-actions .field{flex:1 1;font-size:11px;padding:4px 6px}.tcard-actions .btn{font-size:11px;padding:4px 8px}.tcard-assignee{font-size:10.5px;color:var(--series-1);font-weight:650;white-space:nowrap;max-width:90px;overflow:hidden;text-overflow:ellipsis}.viewtoggle{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.viewtoggle a{padding:6px 12px;font-size:12px;font-weight:600;color:var(--ink-2);background:var(--surface)}.viewtoggle a:hover{background:var(--surface-2);text-decoration:none}.viewtoggle a.on{background:var(--series-1);color:#fff}.issue-head{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}.issue-key{font-family:var(--mono);font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:1px 6px}.issue-title{font-size:19px;font-weight:650;margin:4px 0 0;letter-spacing:-.01em}.comment{display:flex;gap:10px;padding:12px 0;border-top:1px solid var(--line)}.comment:first-child{border-top:none}.comment .ava{width:28px;height:28px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--series-1),var(--series-3))}.comment.admin .ava{background:linear-gradient(135deg,var(--series-2),var(--series-4))}.comment.system .ava{background:var(--axis);color:var(--ink-2)}.comment-body{flex:1 1;min-width:0}.comment-who{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap;font-size:11.5px}.comment-who strong{font-size:12.5px}.comment-when{color:var(--muted);margin-left:auto;font-size:11px}.comment-text{font-size:12.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word;margin-top:5px}.comment.system .comment-text{color:var(--ink-2);font-style:italic}.comment.internal{background:color-mix(in srgb,var(--warning) 7%,transparent);border-radius:var(--radius-sm);padding:12px 11px}