.shell-banners{gap:var(--s3);margin-bottom:var(--s4);flex-direction:column;display:flex}.shell-banners .banner>div:nth-child(2){flex:1;min-width:0;max-width:60ch}.shell-banners .banner>.hstack{flex:none;margin-left:auto}@media (width<=860px){.shell-banners .banner{flex-wrap:wrap}.shell-banners .banner>div:nth-child(2){flex:calc(100% - 40px)}.shell-banners .banner>.hstack{margin-left:32px}}:root{--bg:#eef0f5;--surface:#fff;--surface-2:#f5f6fa;--surface-3:#e7eaf1;--border:#dfe3eb;--border-strong:#cbd0d9;--fg:#10131a;--fg-2:#454c5a;--fg-3:#646c7c;--fg-inv:#fff;--accent:#2b4eff;--accent-hover:#1e3be6;--accent-fg:#fff;--accent-soft:#ecefff;--accent-text:#2440e0;--stamp:#ffc531;--ink:#10131a;--mark-bg:#2b4eff;--rail-bg:#0b0e1a;--rail-hover:#151a2b;--rail-active:#1e2438;--rail-border:#1b2032;--rail-fg:#b4bbcd;--rail-fg-strong:#fff;--rail-muted:#8a92a8;--route-bg:#0b0e1a;--route-fg:#c9cfdd;--route-fg-strong:#fff;--route-muted:#959db2;--route-rail:#2a3047;--route-track:#4361ff;--ok:#0f7a45;--ok-soft:#e6f6ec;--warn:#a15c00;--warn-soft:#fff3dc;--bad:#c8251d;--bad-soft:#fdebea;--bad-strong:#c8251d;--info:#2440e0;--info-soft:#ecefff;--violet:#6b3fd6;--violet-soft:#f1ecfd;--neutral:#565e6d;--neutral-soft:#eef0f3;--c1:#2b4eff;--c2:#12a36a;--c3:#e5484d;--c4:#f5a524;--c5:#8e6cf0;--c6:#94a0b4;--font-display:"Schibsted Grotesk", "Onest", ui-sans-serif, system-ui, sans-serif;--font-ui:"Onest", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--t-xs:.75rem;--t-sm:.8125rem;--t-md:.875rem;--t-lg:1rem;--t-xl:1.25rem;--t-2xl:1.625rem;--t-3xl:2.25rem;--t-4xl:3.5rem;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;--s16:64px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-full:999px;--shadow-1:0 1px 2px #10131a0f;--shadow-2:0 4px 16px -4px #10131a1f, 0 1px 3px #10131a0f;--shadow-3:0 24px 48px -12px #10131a47;--ring:0 0 0 3px #2b4eff47;--ease:cubic-bezier(.2, .7, .2, 1);--d-fast:.12s;--d-med:.2s;--sidebar-w:248px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a0c10;--surface:#111419;--surface-2:#171b22;--surface-3:#1f242d;--border:#232832;--border-strong:#333a46;--fg:#eceef2;--fg-2:#b2b8c4;--fg-3:#8a92a1;--fg-inv:#0a0c10;--mark-bg:#4361ff;--rail-bg:#06080e;--rail-hover:#10131d;--rail-active:#181c2a;--rail-border:#161a27;--route-bg:#121624;--route-rail:#2c3248;--accent:#4361ff;--accent-hover:#5672ff;--accent-fg:#fff;--accent-soft:#18204a;--accent-text:#8ea2ff;--ok:#3fd08a;--ok-soft:#0e2a1d;--warn:#f2b544;--warn-soft:#2d2210;--bad:#ff6b63;--bad-soft:#2e1514;--bad-strong:#c4302a;--info:#8ea2ff;--info-soft:#18204a;--violet:#b39bff;--violet-soft:#241a44;--neutral:#a3aab7;--neutral-soft:#1e232b;--c1:#4361ff;--c2:#3fd08a;--c3:#ff6b63;--c4:#f2b544;--c5:#a98dff;--c6:#5d6676;--shadow-1:0 1px 2px #0006;--shadow-2:0 6px 20px -6px #0009;--shadow-3:0 24px 60px -12px #000000b3;--ring:0 0 0 3px #5c78ff66;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0a0c10;--surface:#111419;--surface-2:#171b22;--surface-3:#1f242d;--border:#232832;--border-strong:#333a46;--fg:#eceef2;--fg-2:#b2b8c4;--fg-3:#8a92a1;--fg-inv:#0a0c10;--mark-bg:#4361ff;--rail-bg:#06080e;--rail-hover:#10131d;--rail-active:#181c2a;--rail-border:#161a27;--route-bg:#121624;--route-rail:#2c3248;--accent:#4361ff;--accent-hover:#5672ff;--accent-fg:#fff;--accent-soft:#18204a;--accent-text:#8ea2ff;--ok:#3fd08a;--ok-soft:#0e2a1d;--warn:#f2b544;--warn-soft:#2d2210;--bad:#ff6b63;--bad-soft:#2e1514;--bad-strong:#c4302a;--info:#8ea2ff;--info-soft:#18204a;--violet:#b39bff;--violet-soft:#241a44;--neutral:#a3aab7;--neutral-soft:#1e232b;--c1:#4361ff;--c2:#3fd08a;--c3:#ff6b63;--c4:#f2b544;--c5:#a98dff;--c6:#5d6676;--shadow-1:0 1px 2px #0006;--shadow-2:0 6px 20px -6px #0009;--shadow-3:0 24px 60px -12px #000000b3;--ring:0 0 0 3px #5c78ff66;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--fg);font:400 var(--t-md) / 1.5 var(--font-ui);-webkit-font-smoothing:antialiased}a{color:var(--accent-text);text-decoration:none}a:hover{text-underline-offset:2px;text-decoration:underline}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.015em;text-wrap:balance;color:var(--fg);margin:0}p{margin:0}code{font-family:var(--font-mono);font-size:.92em}.mono{font-family:var(--font-mono);font-size:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::selection{background:var(--accent-soft)}.num,td.num,.tabular{font-variant-numeric:tabular-nums}.muted{color:var(--fg-3)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.eyebrow{font:600 var(--t-xs) / 1 var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}.hstack{align-items:center;gap:var(--s2);display:flex}.vstack{gap:var(--s2);flex-direction:column;display:flex}.spacer{flex:1}.grid{gap:var(--s4);display:grid}.wrap{flex-wrap:wrap}svg.i{stroke-width:1.75px;flex:none;width:16px;height:16px}.btn{border-radius:var(--r-md);height:34px;font:500 var(--t-md) / 1 var(--font-ui);cursor:pointer;white-space:nowrap;transition:background var(--d-fast) var(--ease), border-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 14px;display:inline-flex;text-decoration:none!important}.btn:focus-visible{box-shadow:var(--ring);outline:none}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-primary:hover{background:var(--accent-hover)}.btn-ink{background:var(--fg);color:var(--fg-inv)}.btn-ink:hover{opacity:.9}.btn-secondary{background:var(--surface);color:var(--fg);border-color:var(--border-strong);box-shadow:var(--shadow-1)}.btn-secondary:hover{background:var(--surface-2)}.btn-ghost{color:var(--fg-2);background:0 0}.btn-ghost:hover{background:var(--surface-2);color:var(--fg)}.btn-danger{background:var(--bad-strong);color:#fff}.btn-danger:hover{filter:brightness(.94)}.btn-danger-ghost{color:var(--bad);border-color:var(--border-strong);background:0 0}.btn-danger-ghost:hover{background:var(--bad-soft)}.btn-sm{height:28px;font-size:var(--t-sm);border-radius:var(--r-sm);padding:0 10px}.btn-lg{height:44px;font-size:var(--t-lg);border-radius:var(--r-lg);padding:0 20px}.btn-icon{width:34px;padding:0}.btn-sm.btn-icon{width:28px}.btn[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn .spin{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.label{font:500 var(--t-sm) / 1.3 var(--font-ui);color:var(--fg)}.help{font-size:var(--t-xs);color:var(--fg-3)}.err{font-size:var(--t-xs);color:var(--bad);align-items:center;gap:4px;display:flex}.input,.select,.textarea{border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);width:100%;height:36px;color:var(--fg);font:400 var(--t-md) / 1.4 var(--font-ui);transition:border-color var(--d-fast), box-shadow var(--d-fast);padding:0 12px}.textarea{resize:vertical;height:auto;min-height:96px;padding:10px 12px}.input::placeholder,.textarea::placeholder{color:var(--fg-3)}.input:hover,.select:hover{border-color:var(--fg-3)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.input.is-invalid{border-color:var(--bad)}.input-group{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);align-items:center;display:flex;overflow:hidden}.input-group:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.input-group .input{border:0;box-shadow:none!important}.input-group .addon{color:var(--fg-3);font-size:var(--t-sm);white-space:nowrap;background:var(--surface-2);align-items:center;height:36px;padding:0 10px;display:flex}.input-group .addon:first-child{border-right:1px solid var(--border)}.input-group .addon:last-child{border-left:1px solid var(--border)}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23646C7C' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:32px}.check{cursor:pointer;font-size:var(--t-md);align-items:flex-start;gap:8px;display:inline-flex}.check input{width:16px;height:16px;accent-color:var(--accent);margin:2px 0 0}.switch{border-radius:var(--r-full);background:var(--border-strong);cursor:pointer;width:34px;height:20px;transition:background var(--d-fast);border:0;flex:none;padding:0;position:relative}.switch:after{content:"";width:16px;height:16px;box-shadow:var(--shadow-1);transition:transform var(--d-med) var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{transform:translate(14px)}.seg{border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border);padding:2px;display:inline-flex}.seg button{height:28px;color:var(--fg-2);font:500 var(--t-sm) / 1 var(--font-ui);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 10px}.seg button[aria-pressed=true]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-1)}.form-grid{gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.badge{border-radius:var(--r-full);height:22px;font:500 var(--t-xs) / 1 var(--font-ui);background:var(--neutral-soft);color:var(--neutral);white-space:nowrap;align-items:center;gap:6px;padding:0 8px;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge.plain:before{display:none}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.violet{background:var(--violet-soft);color:var(--violet)}.badge.pulse:before{animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.3}}.tag{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-2);height:22px;font:500 var(--t-xs) / 1 var(--font-mono);color:var(--fg-2);white-space:nowrap;align-items:center;padding:0 7px;display:inline-flex}.kbd{border:1px solid var(--border-strong);min-width:20px;height:20px;font:500 11px / 1 var(--font-mono);color:var(--fg-3);background:var(--surface);border-bottom-width:2px;border-radius:5px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);min-width:0}.panel-h{align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border-bottom:1px solid var(--border);min-height:48px;display:flex}.panel-h h2,.panel-h h3{font:600 var(--t-md) / 1.3 var(--font-ui);letter-spacing:0}.panel-b{padding:var(--s4)}.panel-f{padding:var(--s3) var(--s4);border-top:1px solid var(--border);gap:var(--s2);background:var(--surface-2);border-radius:0 0 var(--r-lg) var(--r-lg);justify-content:flex-end;align-items:center;display:flex}.divider{background:var(--border);border:0;height:1px;margin:0}.dl{font-size:var(--t-md);grid-template-columns:minmax(110px,max-content) 1fr;gap:10px 20px;display:grid}.dl dt{color:var(--fg-3)}.dl dd{overflow-wrap:anywhere;min-width:0;margin:0}.banner{gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-2);font-size:var(--t-md);align-items:flex-start;display:flex}.banner svg.i{margin-top:2px}.banner .banner-t{font-weight:600}.banner.info{background:var(--info-soft);border-color:color-mix(in srgb, var(--info) 25%, transparent)}.banner.info svg.i{color:var(--info)}.banner.warn{background:var(--warn-soft);border-color:color-mix(in srgb, var(--warn) 30%, transparent)}.banner.warn svg.i{color:var(--warn)}.banner.bad{background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 30%, transparent)}.banner.bad svg.i{color:var(--bad)}.banner.ok{background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 30%, transparent)}.banner.ok svg.i{color:var(--ok)}.table-wrap{overflow-x:auto}.table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--t-sm)}.table th{text-align:left;font:500 var(--t-xs) / 1 var(--font-ui);color:var(--fg-3);padding:10px var(--s4);border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;position:sticky;top:0}.table td{padding:10px var(--s4);border-bottom:1px solid var(--border);vertical-align:middle;color:var(--fg)}.table tr:last-child td{border-bottom:0}.table tbody tr.row-link{cursor:pointer}.table tbody tr.row-link:hover td{background:var(--surface-2)}.table td.num,.table th.num{text-align:right}.table .truncate{text-overflow:ellipsis;white-space:nowrap;max-width:280px;overflow:hidden}.table .sub{color:var(--fg-3);font-size:var(--t-xs)}.panel>.table-wrap .table th:first-child{border-top-left-radius:var(--r-lg)}.panel>.table-wrap .table th:last-child{border-top-right-radius:var(--r-lg)}.tabs{gap:var(--s5);border-bottom:1px solid var(--border);scrollbar-width:none;display:flex;overflow-x:auto}.tabs button,.tabs a{height:40px;color:var(--fg-3);font:500 var(--t-md) / 1 var(--font-ui);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:0 2px;display:inline-flex;position:relative;text-decoration:none!important}.tabs button:hover,.tabs a:hover,.tabs [aria-selected=true]{color:var(--fg)}.tabs [aria-selected=true]:after{content:"";background:var(--fg);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:0;right:0}.tabs .count{font:500 11px / 1 var(--font-mono);border-radius:var(--r-full);background:var(--surface-3);color:var(--fg-2);padding:3px 6px}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.meter{border-radius:var(--r-full);background:var(--surface-3);height:6px;overflow:hidden}.meter>span{background:var(--accent);border-radius:inherit;height:100%;display:block}.meter.warn>span{background:var(--warn)}.meter.bad>span{background:var(--bad)}.code{color:#d9dee8;border-radius:var(--r-lg);font:400 12.5px / 1.65 var(--font-mono);background:#0d1017;border:1px solid #1e2430;position:relative;overflow:hidden}.code pre{padding:var(--s4);margin:0;overflow-x:auto}.code .code-h{border-bottom:1px solid #1e2430;align-items:center;gap:4px;padding:6px 8px 0;display:flex}.code .code-h button{color:#8a93a6;height:30px;font:500 12px / 1 var(--font-ui);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 10px}.code .code-h button[aria-selected=true]{color:#fff;border-bottom-color:#ffc531}.code .copy{position:absolute;top:6px;right:8px}.code .copy .btn{color:#c4cad6;background:#1b2130;border-color:#2a3243}.tk-k{color:#ff8f7a}.tk-s{color:#9fe0a8}.tk-f{color:#8ea2ff}.tk-c{color:#8b94a9;font-style:italic}.tk-n{color:#ffc531}.tk-p{color:#c9a6ff}.inline-code{font:500 .86em / 1 var(--font-mono);background:var(--surface-2);border:1px solid var(--border);color:var(--fg);border-radius:5px;padding:2px 6px}.secret{align-items:center;gap:var(--s2);border-radius:var(--r-md);background:var(--surface-2);border:1px dashed var(--border-strong);font:500 var(--t-sm) / 1.3 var(--font-mono);overflow-wrap:anywhere;padding:10px 12px;display:flex}.overlay{z-index:50;padding:max(16px, env(safe-area-inset-left,0px));animation:fade var(--d-med) var(--ease);background:#0a0c107a;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--r-xl);border:1px solid var(--border);width:min(520px,100%);max-height:calc(100% - 32px);box-shadow:var(--shadow-3);animation:rise var(--d-med) var(--ease);overflow:auto}.modal-h{padding:var(--s5) var(--s5) 0;gap:var(--s3);align-items:flex-start;display:flex}.modal-h h2{font:600 var(--t-xl) / 1.3 var(--font-display)}.modal-b{padding:var(--s4) var(--s5) var(--s5);gap:var(--s4);flex-direction:column;display:flex}.modal-f{padding:var(--s4) var(--s5);border-top:1px solid var(--border);justify-content:flex-end;gap:var(--s2);background:var(--surface-2);border-radius:0 0 var(--r-xl) var(--r-xl);display:flex}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)scale(.98)}}.toasts{z-index:60;right:max(16px, env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:8px;display:flex;position:fixed}.toast{border-radius:var(--r-lg);background:var(--fg);min-width:260px;max-width:380px;color:var(--fg-inv);box-shadow:var(--shadow-3);font-size:var(--t-md);animation:rise var(--d-med) var(--ease);align-items:center;gap:10px;padding:12px 14px;display:flex}.toast .t-ok{color:#3fd08a}.toast .t-bad{color:#ff6b63}.menu{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);min-width:220px;box-shadow:var(--shadow-2);padding:6px;position:absolute}.menu button,.menu a{width:100%;height:32px;color:var(--fg);font:400 var(--t-md) / 1 var(--font-ui);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:0 8px;display:flex;text-decoration:none!important}.menu button:hover,.menu a:hover{background:var(--surface-2)}.menu .menu-l{padding:8px 8px 4px}.skel{background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface-3) 50%, var(--surface-2) 100%);background-size:200% 100%;border-radius:6px;height:12px;animation:1.4s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.steps{counter-reset:step;flex-direction:column;gap:0;display:flex}.step{gap:var(--s4);padding-bottom:var(--s6);grid-template-columns:32px 1fr;display:grid;position:relative}.step:before{content:"";background:var(--border);border-radius:2px;width:2px;position:absolute;top:34px;bottom:4px;left:15px}.step:last-child:before{display:none}.step-n{width:32px;height:32px;font:600 var(--t-sm) / 1 var(--font-mono);background:var(--surface);border:1px solid var(--border-strong);color:var(--fg-2);border-radius:50%;place-items:center;display:grid}.step.done .step-n{background:var(--ok);border-color:var(--ok);color:var(--fg-inv)}.step.done:before{background:var(--ok)}.step.current .step-n{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--ring)}.step-t{font:600 var(--t-lg) / 1.3 var(--font-ui);padding-top:5px}.avatar{width:28px;height:28px;font:600 11px / 1 var(--font-ui);color:#fff;background:var(--c5);border-radius:50%;flex:none;place-items:center;display:grid}.avatar.sq{border-radius:7px}.app{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100%;display:grid}.sidebar{gap:var(--s1);height:100dvh;padding:var(--s4) var(--s3);background:var(--rail-bg);color:var(--rail-fg);border-right:1px solid var(--rail-border);scrollbar-color:var(--rail-active) transparent;flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.brand{font:700 18px / 1 var(--font-display);letter-spacing:-.03em;color:var(--rail-fg-strong);align-items:center;gap:10px;padding:0 8px 16px;display:flex;text-decoration:none!important}.brand svg{flex:none}.team-switch{border:1px solid var(--rail-border);background:var(--rail-hover);border-radius:var(--r-md);cursor:pointer;width:100%;color:var(--rail-fg-strong);font:500 var(--t-md) / 1.2 var(--font-ui);text-align:left;transition:background var(--d-fast) var(--ease);align-items:center;gap:10px;padding:8px;display:flex}.team-switch:hover{background:var(--rail-active)}.team-switch .ts-meta{font-size:var(--t-xs);color:var(--rail-muted);font-weight:400}.modal .team-switch{background:var(--surface);border-color:var(--border);color:var(--fg)}.modal .team-switch:hover{background:var(--surface-2)}.modal .team-switch .ts-meta{color:var(--fg-3)}.nav{margin-top:var(--s2);flex-direction:column;gap:1px;display:flex}.nav-l{font:600 11px / 1 var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--rail-muted);padding:16px 10px 6px}.nav a{border-radius:var(--r-md);height:34px;color:var(--rail-fg);font:500 var(--t-md) / 1 var(--font-ui);transition:background var(--d-fast) var(--ease), color var(--d-fast) var(--ease);align-items:center;gap:10px;padding:0 10px;display:flex;position:relative;text-decoration:none!important}.nav a:hover{background:var(--rail-hover);color:var(--rail-fg-strong)}.nav a[aria-current=page]{background:var(--rail-active);color:var(--rail-fg-strong)}.nav a[aria-current=page] svg.i{color:var(--stamp)}.nav a:focus-visible{outline-color:var(--stamp)}.nav a .n-count{border-radius:var(--r-full);background:var(--accent);color:#fff;min-width:20px;height:18px;font:600 11px / 1 var(--font-ui);place-items:center;margin-left:auto;padding:0 6px;display:inline-grid}.nav a .n-lock{color:var(--rail-muted);margin-left:auto}.sidebar-foot{gap:var(--s2);padding-top:var(--s4);flex-direction:column;margin-top:auto;display:flex}.usage-mini{border-radius:var(--r-md);background:var(--rail-hover);border:1px solid var(--rail-border);font-size:var(--t-xs);color:var(--rail-muted);flex-direction:column;gap:8px;padding:12px;display:flex;text-decoration:none!important}.usage-mini .num{color:var(--rail-fg-strong)}.usage-mini .meter{background:var(--rail-active)}.usage-mini .meter>span{background:var(--stamp)}.main{flex-direction:column;min-width:0;display:flex}.topbar{top:env(safe-area-inset-top,0px);z-index:20;align-items:center;gap:var(--s3);height:56px;padding:0 var(--s8);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--border);display:flex;position:sticky}.crumbs{font-size:var(--t-md);color:var(--fg-3);white-space:nowrap;align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.crumbs a{color:var(--fg-3)}.crumbs a:hover{color:var(--fg)}.crumbs .here{color:var(--fg);text-overflow:ellipsis;font-weight:500;overflow:hidden}.search-btn{border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);width:260px;height:34px;color:var(--fg-3);font:400 var(--t-md) / 1 var(--font-ui);cursor:pointer;transition:border-color var(--d-fast) var(--ease);align-items:center;gap:8px;padding:0 8px 0 10px;display:flex}.search-btn:hover{border-color:var(--border-strong)}.search-btn .kbd{margin-left:auto}.content{padding:var(--s8) var(--s8) var(--s16);gap:var(--s8);flex-direction:column;width:100%;max-width:1320px;display:flex}.content.narrow{max-width:920px}.toolbar{gap:var(--s2);flex-wrap:wrap;align-items:center;display:flex}.toolbar .input-group{width:280px;max-width:100%}.filter-chip{border-radius:var(--r-md);border:1px dashed var(--border-strong);height:30px;color:var(--fg-2);font:500 var(--t-sm) / 1 var(--font-ui);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.filter-chip.on{background:var(--surface);color:var(--fg);border-style:solid}.filter-chip:hover{background:var(--surface-2)}.mobile-bar{display:none}.cols-2{gap:var(--s4);grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;display:grid}.cols-even{gap:var(--s4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.cols-3{gap:var(--s4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (width<=1080px){.cols-2,.cols-3{grid-template-columns:minmax(0,1fr)}}@media (width<=860px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:45;width:min(300px,86vw);transition:transform var(--d-med) var(--ease);box-shadow:var(--shadow-3);padding-top:calc(var(--s3) + env(safe-area-inset-top,0px));position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.app.nav-open .sidebar{transform:none}.scrim{z-index:44;background:#0a0c1066;position:fixed;inset:0}.mobile-bar{display:inline-flex}.topbar{padding:0 max(16px, env(safe-area-inset-right,0px)) 0 max(16px, env(safe-area-inset-left,0px))}.search-btn{justify-content:center;width:36px;padding:0}.search-btn span,.search-btn .kbd{display:none}.content{padding:var(--s4) max(16px, env(safe-area-inset-right,0px)) var(--s8) max(16px, env(safe-area-inset-left,0px));gap:var(--s5)}.cols-even{grid-template-columns:minmax(0,1fr)}.kpi{border-right:0;border-bottom:1px solid var(--border)}.page-h .actions{margin-left:0}.hide-sm{display:none!important}}.avatar{background-image:linear-gradient(#06080e7a,#06080e7a);font-size:11px}.banner.info .muted{color:color-mix(in oklab, var(--info) 40%, var(--fg))}.banner.warn .muted{color:color-mix(in oklab, var(--warn) 40%, var(--fg))}.banner.bad .muted{color:color-mix(in oklab, var(--bad) 40%, var(--fg))}.banner.ok .muted{color:color-mix(in oklab, var(--ok) 40%, var(--fg))}p,li,dd{text-wrap:pretty}.page-h{align-items:flex-end;gap:var(--s4) var(--s6);flex-wrap:wrap;display:flex}.page-h h1{font:700 clamp(1.625rem, 2.4vw, 2rem) / 1.08 var(--font-display);letter-spacing:-.03em}.page-h h1.mono,.modal-h h2.mono{font-family:var(--font-mono);letter-spacing:-.02em}.page-h p{color:var(--fg-2);text-wrap:pretty;max-width:62ch;margin-top:8px;font-size:.9375rem}.page-h .actions{gap:var(--s2);flex-wrap:wrap;margin-left:auto;display:flex}.section-h{align-items:baseline;gap:var(--s3);margin-top:var(--s2);display:flex}.section-h h2{font:650 1.0625rem / 1.3 var(--font-display);letter-spacing:-.01em}.section-h p{color:var(--fg-3);font-size:var(--t-sm)}.hop{white-space:nowrap;font:500 var(--t-sm) / 1 var(--font-ui);color:var(--fg-2);align-items:center;gap:10px;display:inline-flex}.hop-dots{align-items:center;gap:3px;height:14px;display:inline-flex}.hop-dots i{background:var(--border-strong);border-radius:50%;display:block}.hop-dots i:first-child{width:4px;height:4px}.hop-dots i:nth-child(2){width:5px;height:5px;margin-top:-4px}.hop-dots i:nth-child(3){width:6px;height:6px;margin-top:-4px}.hop-dots i:nth-child(4){width:10px;height:10px;margin-left:2px}.hop-dots i.on{background:var(--fg-2)}.hop-dots i.land{background:var(--stamp);box-shadow:inset 0 0 0 1px #10131a2e}.hop-dots i.bad{background:var(--bad)}.hop-dots i.warn{background:var(--warn)}.hop-dots i.hollow{box-shadow:inset 0 0 0 1.5px var(--border-strong);background:0 0}.hop-dots i.wait{box-shadow:inset 0 0 0 1.5px var(--warn);background:0 0}.hop.ok{color:var(--ok)}.hop.bad{color:var(--bad)}.hop.warn{color:var(--warn)}.hop.violet{color:var(--violet)}.hop.info{color:var(--info)}.hop .hop-l{color:inherit}.route{padding:var(--s6) var(--s6) var(--s5);background:var(--route-bg);color:var(--route-fg);border-radius:var(--r-xl);position:relative;overflow:hidden}.route-h{align-items:baseline;gap:var(--s3);flex-wrap:wrap;display:flex}.route-h h2{font:700 1.25rem / 1.2 var(--font-display);letter-spacing:-.02em;color:var(--route-fg-strong)}.route-h p{color:var(--route-muted);font-size:var(--t-sm)}.route-scroll{margin:var(--s5) calc(var(--s6) * -1) 0;padding:0 var(--s6) var(--s2);scrollbar-width:thin;overflow-x:auto}.route-line{grid-template-columns:repeat(var(--stops), minmax(130px, 1fr));min-width:calc(var(--stops) * 130px);display:grid;position:relative}.route-line:before{content:"";background:linear-gradient(90deg, var(--route-track) 0 0) no-repeat, var(--route-rail);background-size:var(--progress,100%) 100%, 100% 100%;transform-origin:0;height:2px;animation:.9s cubic-bezier(.16,1,.3,1) both route-draw;position:absolute;top:15px;left:8px;right:8px}.stop{padding-right:var(--s4);flex-direction:column;gap:6px;min-width:0;display:flex;position:relative}.stop-dot{z-index:1;width:var(--d,14px);height:var(--d,14px);margin-top:calc(16px - var(--d,14px) / 2);margin-bottom:calc(16px - var(--d,14px) / 2 + 6px);background:var(--route-fg-strong);box-shadow:0 0 0 4px var(--route-bg);animation:.5s cubic-bezier(.16,1,.3,1) both stop-in;animation-delay:calc(var(--i,0) * 90ms + .12s);border-radius:50%;position:relative}.stop.land .stop-dot{background:var(--stamp)}.stop-name{font:500 var(--t-sm) / 1.2 var(--font-ui);color:var(--route-muted)}.stop-val{font:700 1.75rem / 1 var(--font-display);letter-spacing:-.03em;color:var(--route-fg-strong);font-variant-numeric:lining-nums proportional-nums}.stop-rate{font:500 var(--t-xs) / 1.2 var(--font-mono);color:var(--route-muted)}.spur{border-left:1px dashed var(--route-rail);flex-direction:column;gap:4px;margin-top:8px;padding-left:12px;display:flex}.spur a,.spur span{font:500 var(--t-xs) / 1.3 var(--font-ui);color:var(--route-fg);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.spur a:hover{color:var(--route-fg-strong);text-decoration:underline}.spur .dot{width:7px;height:7px}@keyframes route-draw{0%{transform:scaleX(.04)}}@keyframes stop-in{0%{transform:scale(.4)}}.kpis{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0;display:grid;overflow:hidden}.kpi{padding:var(--s4) var(--s5);border-right:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label label""val spark""delta delta";align-items:end;gap:6px 12px;min-width:0;display:grid}.kpi:last-child{border-right:0}.kpi .k-label{font-size:var(--t-sm);color:var(--fg-2);grid-area:label;align-items:center;gap:6px;display:flex}.kpi .k-val{font:700 1.625rem / 1 var(--font-display);letter-spacing:-.03em;font-variant-numeric:lining-nums proportional-nums;grid-area:val}.kpi .k-spark{grid-area:spark;line-height:0}.kpi .k-delta{font-size:var(--t-xs);color:var(--fg-3);grid-area:delta}.kpi .k-delta.up{color:var(--ok)}.kpi .k-delta.down{color:var(--bad)}.empty{text-align:center;align-items:center;gap:var(--s3);padding:var(--s12) var(--s6);flex-direction:column;display:flex}.empty .empty-hop{width:120px;height:64px;color:var(--fg-3);margin-bottom:var(--s2)}.empty h3{font:650 1.0625rem / 1.3 var(--font-display);letter-spacing:-.01em}.empty p{color:var(--fg-2);text-wrap:pretty;max-width:46ch}.timeline{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.timeline li{grid-template-columns:26px minmax(0,1fr) auto;gap:12px;padding-bottom:20px;display:grid;position:relative}.timeline li:before{content:"";background:var(--border);border-radius:2px;width:2px;position:absolute;top:26px;bottom:0;left:12px}.timeline li:last-child:before{display:none}.timeline .tl-dot{background:var(--surface);width:26px;height:26px;box-shadow:inset 0 0 0 1.5px var(--border-strong);color:var(--fg-2);border-radius:50%;place-items:center;display:grid}.timeline .tl-dot svg.i{width:13px;height:13px}.timeline .tl-dot.ok{background:var(--stamp);box-shadow:none;color:#10131a}.timeline .tl-dot.bad{background:var(--bad);box-shadow:none;color:#fff}.timeline .tl-dot.info{background:var(--accent);box-shadow:none;color:#fff}.timeline .tl-dot.violet{background:var(--violet-soft);box-shadow:inset 0 0 0 1.5px var(--violet);color:var(--violet)}.timeline .tl-dot.warn{background:var(--warn-soft);box-shadow:inset 0 0 0 1.5px var(--warn);color:var(--warn)}.timeline .tl-t{font-weight:600}.timeline .tl-time{font:500 var(--t-xs) / 1.6 var(--font-mono);color:var(--fg-3);white-space:nowrap}.chart{width:100%;min-width:0;overflow-x:auto}.chart svg{width:auto;max-width:none;height:auto;display:block}.chart text{font-family:var(--font-ui)}.drawer-ov{z-index:50;animation:fade var(--d-med) var(--ease);background:#0a0c106b;position:fixed;inset:0}.drawer{z-index:51;background:var(--surface);border-left:1px solid var(--border);width:min(560px,100%);box-shadow:var(--shadow-3);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-right:env(safe-area-inset-right,0px);flex-direction:column;animation:.26s cubic-bezier(.16,1,.3,1) drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-h{align-items:flex-start;gap:var(--s3);padding:var(--s5) var(--s5) var(--s3);border-bottom:1px solid var(--border);display:flex}.drawer-h h2{font:650 1.125rem / 1.3 var(--font-display);letter-spacing:-.01em}.drawer-b{padding:var(--s5);gap:var(--s5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-f{justify-content:flex-end;gap:var(--s2);padding:var(--s3) var(--s5);border-top:1px solid var(--border);background:var(--surface-2);display:flex}@keyframes drawer-in{0%{opacity:0;transform:translate(32px)}}.modal.wide,.drawer.wide{width:min(760px,100%)}.radio-card{border:1px solid var(--border-strong);border-radius:var(--r-lg);background:var(--surface);cursor:pointer;transition:border-color var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease);grid-template-columns:18px minmax(0,1fr);gap:4px 12px;padding:14px;display:grid}.radio-card input{accent-color:var(--accent);width:16px;height:16px;margin:2px 0 0}.radio-card b{font-weight:600}.radio-card span{color:var(--fg-2);font-size:var(--t-sm);grid-column:2}.radio-card:has(input:checked){border-color:var(--accent);box-shadow:var(--ring)}.radio-card:has(input:disabled){opacity:.55;cursor:not-allowed}.set-row{align-items:center;gap:var(--s4);padding:var(--s4) 0;border-top:1px solid var(--border);display:flex}.set-row:first-child{border-top:0}.set-row>div{flex:1;min-width:0}.set-row b{font-weight:600;display:block}.set-row p{color:var(--fg-2);font-size:var(--t-sm);margin-top:2px}.switch[disabled]{opacity:.5;cursor:not-allowed}[data-tip]{position:relative}[data-tip]:hover:after,[data-tip]:focus-visible:after{content:attr(data-tip);z-index:30;border-radius:var(--r-sm);background:var(--fg);width:max-content;max-width:260px;color:var(--fg-inv);font:500 var(--t-xs) / 1.4 var(--font-ui);white-space:normal;text-align:left;pointer-events:none;padding:6px 9px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}details.disc{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}details.disc>summary{cursor:pointer;align-items:center;gap:8px;padding:12px 16px;font-weight:600;list-style:none;display:flex}details.disc>summary::-webkit-details-marker{display:none}details.disc>summary:after{content:"";border-right:1.5px solid var(--fg-3);border-bottom:1.5px solid var(--fg-3);width:8px;height:8px;transition:transform var(--d-fast) var(--ease);margin-left:auto;transform:rotate(45deg)}details.disc[open]>summary:after{transform:rotate(-135deg)}details.disc>:not(summary){padding:0 16px 16px}.table tbody tr[aria-selected=true] td{background:var(--accent-soft)}.filter-chip[aria-pressed=true]{background:var(--surface);color:var(--fg);border-style:solid}.banner .btn svg.i{color:inherit;margin-top:0}@media (width<=560px){.banner{flex-wrap:wrap}.banner>.btn{margin-left:28px}}[hidden]{display:none!important}::selection{background:color-mix(in srgb, var(--stamp) 55%, transparent);color:var(--fg)}input,textarea{caret-color:var(--accent)}html{scrollbar-color:var(--border-strong) transparent}*{scrollbar-width:thin}a{text-underline-offset:3px}@media (pointer:coarse){.btn{height:44px}.btn-sm{height:36px}.btn-icon{width:44px}.btn-sm.btn-icon{width:36px}.nav a{height:44px}.input,.select{height:44px;font-size:16px}.tabs button,.tabs a{height:44px}.seg button{height:36px}.switch{width:44px;height:26px}.switch:after{width:22px;height:22px}.switch[aria-checked=true]:after{transform:translate(18px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-property:color,background-color,border-color,outline-color,box-shadow,opacity!important;animation:none!important}}
