:root{color-scheme:light;--page: #f4f5f7;--surface: #ffffff;--surface-sunken: #f7f8fa;--surface-raised: #ffffff;--border: #e2e4e9;--border-strong: #cfd3db;--text: #16181d;--text-secondary: #5a6070;--text-muted: #868d9d;--text-on-accent: #ffffff;--chrome: #032d60;--chrome-text: #ffffff;--chrome-hover: rgba(255, 255, 255, .14);--accent: #2a78d6;--accent-hover: #1f63b8;--accent-soft: #eaf2fc;--viz-accent: #2a78d6;--viz-warn: #eda100;--viz-danger: #d03b3b;--viz-track: #e8eaef;--viz-context: #c3c8d2;--status-good: #0ca30c;--status-warning: #fab219;--status-serious: #ec835a;--status-critical: #d03b3b;--status-neutral: #868d9d;--status-good-soft: #e8f6e8;--status-warning-soft: #fdf4e0;--status-serious-soft: #fdeee7;--status-critical-soft: #fbeaea;--status-neutral-soft: #eef0f3;--radius: 10px;--radius-sm: 6px;--radius-pill: 999px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .04);--shadow-raised: 0 4px 12px rgba(16, 24, 40, .1);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}:root[data-theme=dark]{color-scheme:dark;--page: #14161b;--surface: #1c1f26;--surface-sunken: #181b21;--surface-raised: #232730;--border: #2d323d;--border-strong: #3d4351;--text: #f2f3f5;--text-secondary: #a8aebc;--text-muted: #79808f;--chrome: #0b1220;--chrome-hover: rgba(255, 255, 255, .1);--accent: #3987e5;--accent-hover: #5099f0;--accent-soft: #1b2b40;--viz-accent: #3987e5;--viz-warn: #c98500;--viz-danger: #e8556f;--viz-track: #2b303a;--viz-context: #4a505e;--status-good-soft: #102a10;--status-warning-soft: #2c2410;--status-serious-soft: #2e1f18;--status-critical-soft: #2e1616;--status-neutral-soft: #24282f;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--shadow-raised: 0 4px 14px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--page);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:20px}h2{font-size:15px}h3{font-size:13px}table{font-variant-numeric:tabular-nums}.page{padding:20px 24px 40px;max-width:1500px;margin:0 auto}.page-narrow{max-width:940px;margin:0}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:4px;flex-wrap:wrap}.page-sub{color:var(--text-secondary);font-size:13px;margin:0 0 20px;max-width:78ch}.page-sub-tight{margin-bottom:0}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:28px 0 10px}.grid{display:grid;gap:var(--space-3)}.grid-kpi{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.grid-card{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row-tight{display:flex;align-items:center;gap:6px}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:flex;flex-direction:column;gap:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card-tight{padding:12px 14px}.card-interactive{cursor:pointer;text-align:left;width:100%;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.card-interactive:hover{border-color:var(--border-strong);box-shadow:var(--shadow-raised);transform:translateY(-1px)}.card-interactive:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-status-good{border-left:3px solid var(--status-good)}.card-status-warning{border-left:3px solid var(--status-warning)}.card-status-serious{border-left:3px solid var(--status-serious)}.card-status-critical{border-left:3px solid var(--status-critical)}.card-status-neutral{border-left:3px solid var(--status-neutral)}.banner{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);border:1px solid var(--border);border-left:3px solid var(--status-neutral);border-radius:var(--radius);background:var(--surface);font-size:13px}.banner-error{border-left-color:var(--status-critical);background:var(--status-critical-soft)}.banner-icon{color:var(--status-critical);flex-shrink:0}.label{font-size:12px;color:var(--text-secondary)}.muted{color:var(--text-muted)}.mono{font-family:var(--font-mono);font-size:12px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nowrap{white-space:nowrap}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;font-size:13px;font-weight:500;transition:background .12s ease,border-color .12s ease;min-height:34px}.btn:hover:not(:disabled){background:var(--surface-sunken);border-color:var(--text-muted)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-sm{padding:4px 10px;font-size:12px;min-height:28px}.btn[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--text);font-weight:600}.segmented{display:inline-flex}.segmented>.btn{border-radius:0}.segmented>.btn+.btn{margin-left:-1px}.segmented>.btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.segmented>.btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.segmented>.btn[aria-pressed=true],.segmented>.btn:focus-visible{position:relative;z-index:1}.segmented-count{color:var(--text-muted);font-variant-numeric:tabular-nums}.btn-danger{color:var(--status-critical);border-color:var(--status-critical)}.btn-danger:hover:not(:disabled){background:var(--status-critical);border-color:var(--status-critical);color:#fff}.dialog .btn-danger{background:var(--status-critical);border-color:var(--status-critical);color:#fff}.dialog .btn-danger:hover:not(:disabled){background:#b53232;border-color:#b53232}.input{padding:7px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13px;width:100%;min-height:34px}.input:focus-visible{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.input-area{min-height:76px;resize:vertical;line-height:1.5}.checkbox{width:16px;height:16px;margin:0;accent-color:var(--accent);cursor:pointer}.checkbox:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.label-inline{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.filter-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.filter-bar .input{width:auto;min-width:150px}.filter-search{min-width:240px;flex:1 1 240px;max-width:360px}.filter-count{margin-left:auto;white-space:nowrap}.filter-key{font-family:var(--font-mono);font-size:11px;padding:1px 5px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-muted)}@media (max-width: 720px){.filter-key{display:none}.filter-search{max-width:none}.filter-count{margin-left:0}}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface-sunken)}.table thead th{position:sticky;top:0;z-index:2;background:var(--surface-sunken)}.table td{padding:9px 12px;font-size:13px;border-bottom:1px solid var(--border)}.table [data-align=right]{text-align:right;font-variant-numeric:tabular-nums}.table [data-align=center]{text-align:center}.cell-actions{text-align:right;white-space:nowrap}.cell-actions .btn+.btn{margin-left:var(--space-1)}.table tbody tr.is-editing td{background:var(--accent-soft)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--surface-sunken)}.table-wrap-spaced{margin-top:var(--space-3)}.table-foot{margin-top:var(--space-2)}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:auto;max-height:max(320px,calc(100vh - 260px));box-shadow:var(--shadow)}.empty{text-align:center;color:var(--text-muted);padding:40px 16px;font-size:13px}.empty-title{color:var(--text);font-size:14px;font-weight:600;margin-bottom:var(--space-2)}.empty-hint{max-width:52ch;margin:0 auto;line-height:1.5}.empty-hint .btn{margin-top:var(--space-3)}.viz-tip{position:fixed;z-index:50;pointer-events:none;background:var(--surface-raised);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-raised);padding:6px 9px;font-size:12px;white-space:nowrap}@media (max-width: 720px){.page{padding:16px 14px 32px}.grid-card{grid-template-columns:1fr}}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-pill);background:var(--surface-sunken);border:1px solid var(--border);color:var(--text-secondary);font-size:11px;font-weight:600;white-space:nowrap}.chip-accent{background:var(--accent-soft);border-color:transparent;color:var(--accent)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-pill);background:var(--status-neutral-soft);color:var(--text);font-size:12px;font-weight:600;line-height:1.6;white-space:nowrap}.badge-sm{gap:5px;padding:2px 8px;font-size:11px}.badge-icon{font-size:10px;color:var(--status-neutral)}.badge-sm .badge-icon{font-size:9px}.badge-good{background:var(--status-good-soft)}.badge-warning{background:var(--status-warning-soft)}.badge-serious{background:var(--status-serious-soft)}.badge-critical{background:var(--status-critical-soft)}.badge-neutral{background:var(--status-neutral-soft)}.badge-good .badge-icon{color:var(--status-good)}.badge-warning .badge-icon{color:var(--status-warning)}.badge-serious .badge-icon{color:var(--status-serious)}.badge-critical .badge-icon{color:var(--status-critical)}.badge-neutral .badge-icon{color:var(--status-neutral)}.rail{display:grid;gap:6px;align-content:start}.rail-item{display:grid;gap:6px;width:100%;text-align:left;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;cursor:pointer;color:inherit}.rail-item:hover{background:var(--surface-sunken)}.rail-item:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.rail-item[aria-current=true]{background:var(--accent-soft);border-color:var(--accent)}.split{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start}.split-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}@media (max-width: 900px){.split{grid-template-columns:1fr}}.log-line{display:grid;grid-template-columns:148px 92px minmax(0,1fr);gap:10px;padding:7px 12px;border-bottom:1px solid var(--border);align-items:start;font-size:12px}.log-line:last-child{border-bottom:none}.log-line:hover{background:var(--surface-sunken)}.log-msg{font-family:var(--font-mono);word-break:break-word;white-space:pre-wrap}.ci-log{margin:0;max-height:480px;overflow:auto;padding:10px 12px;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}@media (max-width: 720px){.log-line{grid-template-columns:1fr;gap:4px}}.app-shell{display:flex;flex-direction:column;min-height:100vh}.appbar{display:flex;align-items:center;gap:var(--space-3);height:52px;flex-shrink:0;padding:0 var(--space-4);background:var(--chrome);color:var(--chrome-text)}.appbar-brand{font-size:15px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.appbar-nav{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.appbar-nav::-webkit-scrollbar{display:none}.appbar-tab{display:inline-flex;align-items:center;gap:var(--space-1);padding:7px var(--space-3);border:none;border-radius:var(--radius-sm);background:transparent;color:inherit;cursor:pointer;font-size:13px;white-space:nowrap}.appbar-tab:hover{background:var(--chrome-hover)}.appbar-tab[aria-current=true]{background:var(--chrome-hover);font-weight:600}.appbar-tab .appbar-icon{opacity:.8}.appbar-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:5px 10px;min-height:30px;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-sm);background:transparent;color:inherit;cursor:pointer;font-size:12px;white-space:nowrap}.appbar-btn:hover{background:var(--chrome-hover);border-color:#ffffff73}.appbar-tab:focus-visible,.appbar-btn:focus-visible{outline:2px solid #ffffff;outline-offset:1px}.appbar-chip{background:var(--chrome-hover);border-color:transparent;color:inherit}.appbar-user{opacity:.85;max-width:22ch;overflow:hidden;text-overflow:ellipsis}.app-body{display:flex;flex:1;align-items:stretch;min-height:0}.app-main{flex:1;min-width:0}@media (max-width: 720px){.appbar{gap:var(--space-2);padding:0 var(--space-2)}.appbar-user,.appbar-chip{display:none}}.subnav{display:grid;gap:2px;width:208px;flex-shrink:0;padding:var(--space-3) var(--space-2);align-content:start;background:var(--surface);border-right:1px solid var(--border)}.subnav-item{display:block;width:100%;text-align:left;padding:7px 12px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:13px}.subnav-item:hover{background:var(--surface-sunken);color:var(--text)}.subnav-item[aria-current=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.subnav-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media (max-width: 860px){.app-body{flex-direction:column}.subnav{grid-auto-flow:column;grid-auto-columns:max-content;align-content:center;width:auto!important;overflow-x:auto;padding:var(--space-2);border-right:none!important;border-bottom:1px solid var(--border);scrollbar-width:none}.subnav::-webkit-scrollbar{display:none}.subnav-item{white-space:nowrap}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c106b;z-index:60;border:none;padding:0;cursor:default}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(480px,100vw);z-index:61;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-raised);display:flex;flex-direction:column;animation:drawer-in .16s ease-out}@keyframes drawer-in{0%{transform:translate(16px);opacity:0}to{transform:none;opacity:1}}@media (prefers-reduced-motion: reduce){.drawer{animation:none}}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border)}.drawer-body{padding:16px 18px;overflow-y:auto;flex:1}.drawer-foot{padding:12px 18px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:61;width:min(420px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-raised);padding:20px}.form-grid{display:grid;gap:var(--space-4)}.form-grid>label{display:grid;gap:var(--space-1)}.form-grid .label-inline{display:flex;gap:var(--space-2);align-items:center}.form-hint{font-size:11px;color:var(--text-muted)}.link-cell{display:block;max-width:100%;padding:0;border:none;background:none;color:var(--accent);font:inherit;font-weight:600;text-align:left;cursor:pointer}.link-cell:hover{text-decoration:underline}.link-cell:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.section-title{font-size:13px;margin:var(--space-5) 0 var(--space-2)}.ticket-text{margin:0;font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.thread{list-style:none;margin:0 0 var(--space-4);padding:0;display:grid;gap:var(--space-3)}.thread-item{padding-left:var(--space-3);border-left:2px solid var(--border)}.thread-comment{border-left-color:var(--accent)}.thread-head{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;font-size:13px}.thread-when{margin-left:auto}.thread-move{margin-top:var(--space-1)}.thread-compose{border-top:1px solid var(--border);padding-top:var(--space-4);display:grid;gap:var(--space-3)}.ask{margin-top:var(--space-4);display:grid;gap:var(--space-2)}.dialog-title{margin-bottom:var(--space-1)}.dialog-message{margin-bottom:var(--space-5)}.dialog-actions{justify-content:flex-end}.kv{display:grid;grid-template-columns:116px minmax(0,1fr);gap:8px 12px;align-items:baseline}.kv dt{font-size:12px;color:var(--text-secondary)}.kv dd{margin:0;font-size:13px;word-break:break-word}.skeleton{background:linear-gradient(90deg,var(--surface-sunken) 25%,var(--viz-track) 37%,var(--surface-sunken) 63%);background-size:400% 100%;animation:skeleton-sweep 1.4s ease infinite;border-radius:var(--radius-sm);height:14px}.skeleton-row+.skeleton-row{margin-top:var(--space-3)}.skeleton-card{height:96px;border-radius:var(--radius)}@keyframes skeleton-sweep{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}.card-interactive{transition:none}.card-interactive:hover{transform:none}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--viz-track);border-top-color:var(--accent);border-radius:50%;animation:spin .72s linear infinite;flex-shrink:0}.spinner-lg{width:22px;height:22px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2s}}.card-busy{position:relative}.card-busy>*:not(.card-busy-veil){opacity:.45}.card-busy-veil{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 55%,transparent)}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700;flex-shrink:0;text-transform:uppercase}.avatar-lg{width:46px;height:46px;font-size:15px}.people-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border);width:100%;background:transparent;border-left:none;border-right:none;border-top:none;text-align:left;cursor:pointer;color:inherit}.people-row:last-child{border-bottom:none}.people-row:hover{background:var(--surface-sunken)}.people-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
