:root{color-scheme:dark;--brand-core-blue: #020028;--brand-signal-violet: #941fc2;--brand-protocol-purple: #51128a;--brand-secure-green: #0ad1a8;--brand-cipher-silver: #c8c9d4;--bg: var(--brand-core-blue);--surface-1: #08073a;--surface-2: #0e0c48;--surface-3: #16135a;--surface-sunken: #03021f;--line: #221f66;--line-strong: #36318a;--overlay: rgb(1 0 20 / 72%);--text: #ecedf3;--text-secondary: var(--brand-cipher-silver);--text-muted: #9496af;--text-on-accent: #01241d;--text-on-sign: #ffffff;--accent: var(--brand-secure-green);--accent-hover: #2fe3bd;--accent-soft: rgb(10 209 168 / 14%);--sign: #b356da;--sign-fill: var(--brand-signal-violet);--sign-fill-hover: #a52fd4;--sign-soft: rgb(148 31 194 / 18%);--sign-deep: var(--brand-protocol-purple);--ok: var(--brand-secure-green);--ok-soft: rgb(10 209 168 / 14%);--info: #7fa8ff;--info-soft: rgb(127 168 255 / 14%);--warn: #f2b33d;--warn-soft: rgb(242 179 61 / 14%);--serious: #ff8a4c;--serious-soft: rgb(255 138 76 / 15%);--critical: #ff5c7a;--critical-soft: rgb(255 92 122 / 15%);--offline: #6e7090;--series-1: #3987e5;--series-2: #d95926;--series-3: #9085e9;--chart-grid: #1e1b5c;--chart-axis: #7c7e9c;--font-sans: "Arial Nova", Arial, "Helvetica Neue", Helvetica, sans-serif;--font-mono: "JetBrains Mono", "Cascadia Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-base: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 26px;--fs-3xl: 34px;--lh-tight: 1.2;--lh-base: 1.45;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--r-xs: 3px;--r-sm: 4px;--r-md: 6px;--r-lg: 10px;--r-pill: 999px;--nav-w: 232px;--nav-w-collapsed: 60px;--topbar-h: 52px;--content-max: 1600px;--focus: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--ease: cubic-bezier(.2, .7, .2, 1);--t-fast: .12s;--t-med: .22s;--shadow-modal: 0 24px 64px rgb(0 0 0 / 55%), 0 0 0 1px var(--line-strong)}:root[data-theme=light]{color-scheme:light;--bg: #f3f3f8;--surface-1: #ffffff;--surface-2: #f6f6fb;--surface-3: #ececf5;--surface-sunken: #e9e9f2;--line: #dcdce8;--line-strong: #c3c3d6;--overlay: rgb(2 0 40 / 45%);--text: #0b0a2e;--text-secondary: #3b3c5c;--text-muted: #5f6080;--accent: #067a63;--accent-hover: #05634f;--accent-soft: rgb(6 122 99 / 12%);--text-on-accent: #ffffff;--sign: #7a16a3;--sign-fill: #7f1aa8;--sign-fill-hover: #6a1290;--sign-soft: rgb(148 31 194 / 10%);--ok: #067a63;--ok-soft: rgb(6 122 99 / 12%);--info: #2457c5;--info-soft: rgb(36 87 197 / 10%);--warn: #8a5a00;--warn-soft: rgb(201 133 0 / 14%);--serious: #b34400;--serious-soft: rgb(217 89 38 / 12%);--critical: #c0123a;--critical-soft: rgb(192 18 58 / 10%);--offline: #7d7f98;--series-1: #2a78d6;--series-2: #eb6834;--series-3: #4a3aa7;--chart-grid: #e2e2ec;--chart-axis: #6b6d88;--shadow-modal: 0 24px 64px rgb(2 0 40 / 25%), 0 0 0 1px var(--line)}@media (prefers-reduced-motion: reduce){:root{--t-fast: 0ms;--t-med: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;line-height:var(--lh-tight);font-weight:700;letter-spacing:-.01em}h1{font-size:var(--fs-xl)}h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-base)}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:var(--font-mono);font-size:.92em}button,input,select,textarea{font:inherit;color:inherit}:focus{outline:none}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-sm)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--sp-2);top:-40px;z-index:100;padding:var(--sp-2) var(--sp-3);background:var(--accent);color:var(--text-on-accent);border-radius:var(--r-sm);font-weight:700}.skip-link:focus{top:var(--sp-2)}.shell{display:grid;grid-template-columns:var(--nav-w) minmax(0,1fr);grid-template-rows:var(--topbar-h) auto minmax(0,1fr);grid-template-areas:"nav top" "nav banner" "nav main";height:100%}.nav{grid-area:nav;display:flex;flex-direction:column;background:var(--surface-1);border-right:1px solid var(--line);min-height:0}.nav-brand{display:flex;align-items:center;gap:var(--sp-2);height:var(--topbar-h);padding:0 var(--sp-4);border-bottom:1px solid var(--line);color:var(--text)}.nav-brand:hover{text-decoration:none}.brand-mark{flex:none}.brand-word{display:flex;flex-direction:column;line-height:1.05}.brand-word strong{font-size:var(--fs-base);letter-spacing:.01em}.brand-word span{font-size:var(--fs-xs);color:var(--text-muted)}.nav-scroll{overflow-y:auto;padding:var(--sp-3) var(--sp-2);flex:1}.nav-group+.nav-group{margin-top:var(--sp-4)}.nav-group-title{font-size:var(--fs-xs);color:var(--text-muted);padding:0 var(--sp-3) var(--sp-1)}.nav-link{display:flex;align-items:center;gap:var(--sp-3);height:34px;padding:0 var(--sp-3);color:var(--text-secondary);border-radius:var(--r-md);font-size:var(--fs-md);position:relative}.nav-link:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-link.active{background:var(--surface-3);color:var(--text)}.nav-link.active:before{content:"";position:absolute;left:-8px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.nav-link .count{margin-left:auto;font-size:var(--fs-xs);min-width:20px;text-align:center;padding:1px 6px;border-radius:var(--r-pill);background:var(--surface-3);color:var(--text-secondary)}.nav-link .count.sign{background:var(--sign-soft);color:var(--sign)}.nav-link .count.crit{background:var(--critical-soft);color:var(--critical)}.nav-foot{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--line);font-size:var(--fs-xs);color:var(--text-muted)}.topbar{grid-area:top;display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-5);border-bottom:1px solid var(--line);background:var(--bg);min-width:0}.topbar-tenant{display:flex;flex-direction:column;min-width:0;line-height:1.15}.topbar-tenant strong{font-size:var(--fs-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-tenant span{font-size:var(--fs-xs);color:var(--text-muted)}.topbar-spacer{flex:1}.topbar-chips{display:flex;align-items:center;gap:var(--sp-2)}.btn.menu-btn{display:none}.banner-area{grid-area:banner}.shell.is-demo .topbar{padding-right:72px}.client-cell{white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}.main{grid-area:main;overflow-y:auto;min-width:0}.page{padding:var(--sp-5) var(--sp-6) var(--sp-10);max-width:var(--content-max)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap}.page-head .sub{color:var(--text-muted);font-size:var(--fs-md);margin-top:var(--sp-1)}.page-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center}.demo-ribbon{position:fixed;z-index:60;top:18px;right:-42px;transform:rotate(45deg);width:160px;text-align:center;padding:3px 0;background:var(--warn);color:#241600;font-weight:700;font-size:var(--fs-xs);letter-spacing:.12em;pointer-events:none;box-shadow:0 2px 8px #00000059}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:32px;padding:0 var(--sp-3);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface-2);color:var(--text);font-size:var(--fs-md);font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--text-muted)}.btn:disabled,.btn.disabled{opacity:.45;cursor:not-allowed}label.btn:focus-within{box-shadow:var(--focus)}.btn svg{flex:none}.btn-sm{height:26px;padding:0 var(--sp-2);font-size:var(--fs-sm);gap:6px}.btn-lg{height:40px;padding:0 var(--sp-5);font-size:var(--fs-base)}.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-sign{background:var(--sign-fill);border-color:var(--sign-fill);color:var(--text-on-sign)}.btn-sign:hover:not(:disabled){background:var(--sign-fill-hover);border-color:var(--sign-fill-hover)}.btn-danger{color:var(--critical);border-color:color-mix(in srgb,var(--critical) 45%,transparent);background:transparent}.btn-danger:hover:not(:disabled){background:var(--critical-soft);border-color:var(--critical)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:transparent}.btn-icon{width:32px;padding:0}.btn-icon.btn-sm{width:26px}.input,.select,.textarea{height:32px;padding:0 var(--sp-3);background:var(--surface-sunken);border:1px solid var(--line-strong);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-md);min-width:0}.textarea{height:auto;padding:var(--sp-2) var(--sp-3);resize:vertical;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{border-color:var(--accent)}.select{padding-right:var(--sp-6);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 15px) 14px,calc(100% - 10px) 14px;background-size:5px 5px;background-repeat:no-repeat}.search{position:relative;display:inline-flex;align-items:center}.search svg{position:absolute;left:9px;color:var(--text-muted);pointer-events:none}.search .input{padding-left:30px}.field{display:flex;flex-direction:column;gap:6px}.field>label,.field-label{font-size:var(--fs-sm);color:var(--text-secondary);font-weight:600}.field .hint{font-size:var(--fs-xs);color:var(--text-muted)}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-4)}.check{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-md);cursor:pointer}.check input{accent-color:var(--accent);width:15px;height:15px}.panel{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-lg);min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);min-height:46px}.panel-head h2{font-size:var(--fs-base)}.panel-head .meta{font-size:var(--fs-sm);color:var(--text-muted)}.panel-body{padding:var(--sp-4)}.panel-body.flush{padding:0}.grid{display:grid;gap:var(--sp-4)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stack{display:flex;flex-direction:column;gap:var(--sp-4)}.row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}.small{font-size:var(--fs-sm)}.xsmall{font-size:var(--fs-xs)}.nowrap{white-space:nowrap}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.num{font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:700;white-space:nowrap;background:var(--surface-3);color:var(--text-secondary);border:1px solid transparent}.badge svg{flex:none}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.serious{background:var(--serious-soft);color:var(--serious)}.badge.critical{background:var(--critical-soft);color:var(--critical)}.badge.sign{background:var(--sign-soft);color:var(--sign)}.badge.outline{background:transparent;border-color:var(--line-strong)}.tag{display:inline-flex;height:20px;align-items:center;padding:0 7px;border-radius:var(--r-pill);border:1px solid var(--line-strong);color:var(--text-secondary);font-size:var(--fs-xs)}.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 var(--sp-3);border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-1);font-size:var(--fs-sm);color:var(--text-secondary);white-space:nowrap}.chip strong{color:var(--text);font-weight:600}.chip.ok svg{color:var(--ok)}.chip.warn{border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.chip.warn svg{color:var(--warn)}.chip.critical{border-color:color-mix(in srgb,var(--critical) 45%,transparent)}.chip.critical svg{color:var(--critical)}button.chip{cursor:pointer}button.chip:hover{background:var(--surface-2)}.dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block;background:var(--offline)}.dot.online{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}.dot.offline{background:var(--offline)}.dot.pending{background:var(--warn)}.dot.retired{background:transparent;border:1.5px solid var(--offline)}.meter{display:flex;align-items:center;gap:var(--sp-2);min-width:92px}.meter-track{flex:1;height:6px;background:var(--surface-3);border-radius:3px;overflow:hidden}.meter-fill{height:100%;border-radius:3px;background:var(--accent)}.meter-fill.warn{background:var(--warn)}.meter-fill.critical{background:var(--critical)}.meter-val{font-size:var(--fs-xs);color:var(--text-secondary);width:32px;text-align:right;font-variant-numeric:tabular-nums}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-md)}.table th{position:sticky;top:0;z-index:1;text-align:left;font-weight:600;font-size:var(--fs-sm);color:var(--text-muted);padding:var(--sp-2) var(--sp-3);background:var(--surface-1);border-bottom:1px solid var(--line);white-space:nowrap}.table th button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.table th button:focus-visible{box-shadow:var(--focus);border-radius:var(--r-xs)}.table th[aria-sort] button{color:var(--text)}.table td{padding:9px var(--sp-3);border-bottom:1px solid var(--line);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr.clickable{cursor:pointer}.table tbody tr.clickable:hover td,.table tbody tr.selected td{background:var(--surface-2)}.table .col-check{width:36px}.table .right{text-align:right}.host-cell{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.host-cell a,.host-cell strong{color:var(--text);font-weight:600}.host-cell .os{color:var(--text-muted);flex:none}.tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--line);margin-bottom:var(--sp-4);overflow-x:auto}.tab{all:unset;cursor:pointer;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-md);font-weight:600;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:inline-flex;gap:6px;align-items:center}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.tab:focus-visible{box-shadow:inset var(--focus)}.segmented{display:inline-flex;align-self:flex-start;border:1px solid var(--line-strong);border-radius:var(--r-md);overflow:hidden}.segmented button{all:unset;cursor:pointer;padding:0 var(--sp-3);height:30px;display:inline-flex;align-items:center;font-size:var(--fs-sm);color:var(--text-secondary);font-weight:600}.segmented button+button{border-left:1px solid var(--line-strong)}.segmented button[aria-pressed=true]{background:var(--surface-3);color:var(--text)}.segmented button:focus-visible{box-shadow:inset var(--focus)}.kv{margin:0;display:grid;grid-template-columns:minmax(110px,max-content) 1fr;gap:7px var(--sp-4);font-size:var(--fs-md)}.kv dt{color:var(--text-muted)}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}.stat{padding:var(--sp-4);display:flex;flex-direction:column;gap:6px}.stat-label{font-size:var(--fs-sm);color:var(--text-secondary);display:flex;align-items:center;gap:6px}.stat-value{font-size:var(--fs-3xl);font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}.stat-foot{font-size:var(--fs-sm);color:var(--text-muted);display:flex;gap:var(--sp-3);flex-wrap:wrap}.stat-foot .em{color:var(--text);font-weight:600}a.stat{color:inherit;border-radius:var(--r-lg)}a.stat:hover{text-decoration:none;background:var(--surface-2)}.banner{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-6);font-size:var(--fs-md);border-bottom:1px solid var(--line)}.banner.sign{background:linear-gradient(90deg,var(--sign-soft),transparent 70%)}.banner.sign>svg{color:var(--sign)}.banner.ok{background:linear-gradient(90deg,var(--ok-soft),transparent 70%)}.banner.ok>svg{color:var(--ok)}.banner.warn{background:linear-gradient(90deg,var(--warn-soft),transparent 70%)}.banner.warn>svg{color:var(--warn)}.banner.critical{background:linear-gradient(90deg,var(--critical-soft),transparent 70%)}.banner.critical>svg{color:var(--critical)}.banner .grow{flex:1;min-width:0}.callout{display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);font-size:var(--fs-md)}.callout>svg{flex:none;margin-top:2px}.callout.warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 35%,transparent)}.callout.warn>svg{color:var(--warn)}.callout.critical{background:var(--critical-soft);border-color:color-mix(in srgb,var(--critical) 40%,transparent)}.callout.critical>svg{color:var(--critical)}.callout.ok{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 35%,transparent)}.callout.ok>svg{color:var(--ok)}.callout.sign{background:var(--sign-soft);border-color:color-mix(in srgb,var(--sign) 40%,transparent)}.callout.sign>svg{color:var(--sign)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-2);padding:var(--sp-10) var(--sp-4);color:var(--text-secondary)}.empty svg{color:var(--text-muted)}.empty h3{color:var(--text)}.empty p{max-width:46ch;font-size:var(--fs-md)}.skel{background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:skel 1.4s ease-in-out infinite;border-radius:var(--r-sm)}@keyframes skel{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion: reduce){.skel{animation:none}}.pre{margin:0;padding:var(--sp-3);background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--r-md);font-family:var(--font-mono);font-size:var(--fs-sm);line-height:1.55;overflow:auto;max-height:360px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-secondary)}.pre.err{color:#ffb3c1}.toasts{position:fixed;right:var(--sp-4);bottom:var(--sp-4);z-index:200;display:flex;flex-direction:column;gap:var(--sp-2);width:min(380px,calc(100vw - 32px))}.toast{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-4);background:var(--surface-2);border:1px solid var(--line-strong);border-left:3px solid var(--info);border-radius:var(--r-md);box-shadow:0 10px 30px #0006;font-size:var(--fs-md);animation:toast-in var(--t-med) var(--ease)}.toast.ok{border-left-color:var(--ok)}.toast.error{border-left-color:var(--critical)}.toast.warn{border-left-color:var(--warn)}.toast .grow{flex:1;min-width:0}.toast strong{display:block}.toast .code{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}.modal{background:var(--surface-1);border-radius:var(--r-lg);box-shadow:var(--shadow-modal);width:min(560px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;animation:modal-in var(--t-med) var(--ease)}.modal.wide{width:min(760px,100%)}.modal-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--line)}.modal-head h2{flex:1;font-size:var(--fs-lg)}.modal-body{padding:var(--sp-5);overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--line);flex-wrap:wrap}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}.sign-modal{border-top:3px solid var(--sign-fill)}.sign-head-icon{width:36px;height:36px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--sign-soft);color:var(--sign);flex:none}.sign-title small{display:block;font-size:var(--fs-sm);color:var(--text-muted);font-weight:400;margin-top:2px}.sign-what{font-size:var(--fs-xl);font-weight:700;line-height:1.25;margin-bottom:var(--sp-4)}.sign-what .muted{font-weight:400}.sign-grid{margin:0;display:grid;grid-template-columns:120px 1fr;gap:10px var(--sp-4);font-size:var(--fs-md)}.sign-grid dt{color:var(--text-muted)}.sign-grid dd{margin:0;min-width:0}.sign-targets{display:flex;flex-direction:column;gap:4px;max-height:148px;overflow-y:auto}.sign-target{display:flex;gap:var(--sp-2);align-items:baseline}.sign-target strong{font-weight:600}.sign-params{display:grid;grid-template-columns:max-content 1fr;gap:2px var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-sm)}.sign-params span:nth-child(odd){color:var(--text-muted)}.sign-section{margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px dashed var(--line-strong)}.sigs{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.sig-slot{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 var(--sp-3);border-radius:var(--r-md);border:1px dashed var(--line-strong);font-size:var(--fs-sm);color:var(--text-muted)}.sig-slot.done{border-style:solid;border-color:color-mix(in srgb,var(--ok) 50%,transparent);color:var(--text);background:var(--ok-soft)}.sig-slot.done svg{color:var(--ok)}.sig-slot.you{border-color:var(--sign);color:var(--sign)}.fingerprint{display:grid;grid-template-columns:repeat(16,1fr);gap:2px;width:100%;max-width:320px}.fingerprint span{aspect-ratio:1;border-radius:2px}.verify-row{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.verified{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-pill);background:var(--ok-soft);color:var(--ok);font-weight:700;font-size:var(--fs-sm)}.verifying{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:var(--fs-sm)}.touch{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);text-align:center;padding:var(--sp-6) 0 var(--sp-2)}.touch-ring{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:var(--sign-soft);color:var(--sign);position:relative}.touch-ring:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%;border:2px solid var(--sign);opacity:0;animation:pulse 1.6s var(--ease) infinite}@keyframes pulse{0%{opacity:.7;transform:scale(.9)}to{opacity:0;transform:scale(1.25)}}@media (prefers-reduced-motion: reduce){.touch-ring:after{animation:none;opacity:.4}}.countdown{font-variant-numeric:tabular-nums;font-weight:600}.countdown.low{color:var(--warn)}.countdown.gone{color:var(--critical)}.login{min-height:100%;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr)}.login-art{position:relative;overflow:hidden;padding:var(--sp-10);display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(1200px 600px at 10% 110%,rgb(81 18 138 / 55%),transparent 60%),radial-gradient(800px 500px at 90% -10%,rgb(148 31 194 / 25%),transparent 60%),var(--brand-core-blue);border-right:1px solid var(--line)}.login-art svg.lattice{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.55}.login-art>*{position:relative}.login-tagline{font-size:clamp(32px,4.2vw,56px);font-weight:700;letter-spacing:-.025em;line-height:1.04;max-width:12ch}.login-lede{color:var(--text-secondary);max-width:46ch;margin-top:var(--sp-4);font-size:var(--fs-lg)}.login-panel{display:flex;align-items:center;justify-content:center;padding:var(--sp-8) var(--sp-6);background:var(--surface-1)}.login-card{width:min(360px,100%);display:flex;flex-direction:column;gap:var(--sp-5)}.login-card h1{font-size:var(--fs-2xl)}.provider-btn{width:100%;justify-content:flex-start;height:46px;gap:var(--sp-3)}.provider-btn .grow{flex:1;text-align:left}.chart-box{height:200px}.chart-legend{display:flex;gap:var(--sp-4);font-size:var(--fs-sm);color:var(--text-secondary);flex-wrap:wrap}.chart-legend i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}.chart-tip{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);box-shadow:0 8px 20px #0006}.chart-tip .t{color:var(--text-muted);margin-bottom:4px}.chart-tip .r{display:flex;gap:var(--sp-3);justify-content:space-between}.chart-tip .r i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px}.session-frame{display:flex;flex-direction:column;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;min-height:0}.session-bar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--surface-1);border-bottom:1px solid var(--line);flex-wrap:wrap;min-height:46px}.session-bar .grow{flex:1}.session-body{position:relative;flex:1;min-height:0}.term-host{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--sp-2) var(--sp-3)}.term-host .xterm{height:100%}.session-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);background:#03021fe0;text-align:center;padding:var(--sp-6);z-index:2}.session-overlay p{max-width:50ch;color:var(--text-secondary)}.desk-stage{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#000}.desk-stage canvas{max-width:100%;max-height:100%;image-rendering:auto;outline:none}.desk-stage canvas.interactive{cursor:crosshair}.desk-stage:fullscreen{background:#000}.readout{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted);display:flex;gap:var(--sp-3)}.file-row-icon{color:var(--text-muted)}.file-row-icon.dir{color:var(--info)}.crumbs{display:flex;align-items:center;gap:2px;flex-wrap:wrap;font-size:var(--fs-md)}.crumbs button{all:unset;cursor:pointer;padding:2px 6px;border-radius:var(--r-sm);color:var(--text-secondary)}.crumbs button:hover{background:var(--surface-2);color:var(--text)}.crumbs button:focus-visible{box-shadow:var(--focus)}.crumbs button[aria-current=page]{color:var(--text);font-weight:600}.transfer{display:flex;flex-direction:column;gap:4px;padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--line);font-size:var(--fs-sm)}.transfer-row{display:flex;gap:var(--sp-3);align-items:center}.e2e-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:var(--r-sm);background:var(--ok-soft);color:var(--ok);font-size:var(--fs-xs);font-weight:700;white-space:nowrap;border:1px solid color-mix(in srgb,var(--ok) 35%,transparent)}.e2e-badge code{font-family:var(--font-mono);font-weight:400;color:var(--text-secondary);letter-spacing:.02em}.e2e-flag{font-weight:600;color:var(--info);border-left:1px solid color-mix(in srgb,var(--ok) 35%,transparent);padding-left:6px}.e2e-flag.warn{color:var(--warn)}.e2e-flag.ok{color:var(--ok)}.e2e-flag svg{vertical-align:-1px}@media (max-width: 640px){.e2e-badge{height:auto;min-height:22px;flex-wrap:wrap;white-space:normal;padding:3px 8px;max-width:100%}.e2e-flag{border-left:0;padding-left:0}}.first-use{display:flex;align-items:center;gap:var(--sp-2);padding:6px var(--sp-3);font-size:var(--fs-sm);background:var(--info-soft);color:var(--text);border-bottom:1px solid var(--line);flex-wrap:wrap}.first-use>svg{color:var(--info);flex:none}.first-use code.fp{font-size:var(--fs-md);letter-spacing:.04em;color:var(--text);font-weight:700}.e2e-note{display:inline-flex;align-items:center;gap:6px;color:var(--ok);font-weight:700;font-size:var(--fs-sm)}.session-overlay.security-stop{background:#280410f0;border:2px solid var(--critical);border-radius:var(--r-lg)}.session-overlay.security-stop h2{color:#fff;max-width:34ch}.session-overlay.security-stop p{color:#f3d6dc;max-width:62ch}.session-overlay.security-stop code{color:#f3d6dc}.session-overlay .stop-icon{color:var(--critical);display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--critical-soft)}.fp-compare{display:grid;grid-template-columns:auto auto;gap:6px 16px;text-align:left;margin:0;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:#00000059}.fp-compare dt{color:#f3d6dc;font-size:var(--fs-sm)}.fp-compare dd{margin:0;color:#fff;font-size:var(--fs-md);letter-spacing:.04em}.locked{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);text-align:center;padding:var(--sp-6)}.locked p{max-width:58ch;color:var(--text-secondary)}.locked .lock-ring{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--sign-soft);color:var(--sign)}.key-drop{display:inline-flex;align-items:center;gap:var(--sp-2)}.key-status{display:grid;grid-template-columns:auto 1fr;gap:6px var(--sp-4);align-items:baseline;margin:0}.key-status dt{color:var(--text-muted);font-size:var(--fs-sm)}.key-status dd{margin:0}.player-bar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--surface-1);border-top:1px solid var(--line);flex-wrap:wrap}.player-bar input[type=range]{flex:1;min-width:160px;accent-color:var(--accent)}.editor{display:grid;grid-template-columns:auto 1fr;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-sunken);overflow:hidden}.editor-gutter{padding:var(--sp-3) var(--sp-2);text-align:right;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--fs-sm);line-height:20px;-webkit-user-select:none;user-select:none;border-right:1px solid var(--line);background:var(--surface-1);overflow:hidden;white-space:pre;min-width:44px}.editor textarea{all:unset;padding:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-sm);line-height:20px;white-space:pre;overflow:auto;-moz-tab-size:4;tab-size:4;min-height:360px;color:var(--text)}.editor textarea:focus-visible{box-shadow:inset 0 0 0 1px var(--accent)}.editor textarea[readonly]{color:var(--text-secondary)}.list{list-style:none;margin:0;padding:0}.list>li{display:flex;gap:var(--sp-3);align-items:center;padding:10px var(--sp-4);border-bottom:1px solid var(--line);min-width:0}.list>li:last-child{border-bottom:none}.list>li .grow{flex:1;min-width:0}.forge{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3)}.forge-card{position:relative;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-1);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);min-height:230px;transition:border-color var(--t-med) var(--ease),background var(--t-med) var(--ease),opacity var(--t-med) var(--ease)}.forge-card.idle{opacity:.55}.forge-card.running{border-color:var(--line-strong)}.forge-card.refused{border-color:color-mix(in srgb,var(--critical) 55%,transparent);background:linear-gradient(180deg,var(--critical-soft),var(--surface-1) 55%)}.forge-card.accepted{border-color:color-mix(in srgb,var(--ok) 60%,transparent);background:linear-gradient(180deg,var(--ok-soft),var(--surface-1) 55%)}.forge-card.unexpected{border-color:var(--warn)}.forge-step{font-size:var(--fs-xs);color:var(--text-muted);font-weight:700}.forge-card h3{font-size:var(--fs-lg)}.forge-card p{font-size:var(--fs-md);color:var(--text-secondary)}.forge-verdict{margin-top:auto;display:flex;align-items:center;gap:var(--sp-2);font-weight:700;font-size:var(--fs-lg)}.forge-card.refused .forge-verdict{color:var(--critical)}.forge-card.accepted .forge-verdict{color:var(--ok)}.forge-reason{font-family:var(--font-mono);font-size:var(--fs-sm);padding:4px 8px;border-radius:var(--r-sm);background:var(--surface-sunken);color:var(--text);align-self:flex-start}.stamp{animation:stamp .42s var(--ease)}@keyframes stamp{0%{transform:scale(1.6);opacity:0}60%{transform:scale(.95);opacity:1}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.stamp{animation:none}}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spin{animation:none}}.diff-add{color:var(--ok)}.diff-del{color:var(--critical)}.diff-chg{color:var(--warn)}.copyblock{position:relative}.copyblock .pre{padding-right:48px}.copyblock .btn{position:absolute;top:6px;right:6px}@media (max-width: 1280px){.grid-4,.forge{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1100px){:root{--nav-w: var(--nav-w-collapsed)}.nav-brand .brand-word,.nav-link .label,.nav-group-title,.nav-foot,.nav-link .count{display:none}.nav-brand,.nav-link{justify-content:center;padding:0}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.hide-md{display:none!important}}@media (max-width: 760px){.shell{grid-template-columns:minmax(0,1fr);grid-template-areas:"top" "banner" "main"}.nav{position:fixed;z-index:120;inset:0 auto 0 0;width:248px;transform:translate(-100%);transition:transform var(--t-med) var(--ease)}.nav.open{transform:none;box-shadow:var(--shadow-modal)}.nav.open .brand-word,.nav.open .nav-link .label,.nav.open .nav-group-title,.nav.open .nav-link .count,.nav.open .nav-foot{display:revert}.nav.open .nav-link{justify-content:flex-start;padding:0 var(--sp-3)}.nav.open .nav-brand{justify-content:flex-start;padding:0 var(--sp-4)}.btn.menu-btn{display:inline-flex}.topbar{padding:0 var(--sp-3)}.topbar-chips .chip-hide-sm{display:none}.page{padding:var(--sp-4) var(--sp-4) var(--sp-8)}.banner{padding:var(--sp-2) var(--sp-4);flex-wrap:wrap}.grid-2,.grid-3,.grid-4,.forge{grid-template-columns:minmax(0,1fr)}.hide-sm{display:none!important}.login{grid-template-columns:1fr}.login-art{min-height:260px;padding:var(--sp-6);border-right:none;border-bottom:1px solid var(--line)}.sign-grid{grid-template-columns:1fr;gap:2px}.sign-grid dd{margin-bottom:var(--sp-2)}.demo-ribbon{top:12px;right:-50px}}.nav-scrim{display:none}@media (max-width: 760px){.nav-scrim.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;background:var(--overlay)}}.show-sm-only{display:none}@media (max-width: 760px){.show-sm-only{display:block}}.alert-actions{display:flex;justify-content:flex-end;gap:4px;flex-wrap:nowrap}@media (max-width: 760px){.alert-actions{flex-direction:column;align-items:stretch}.alert-actions .select{width:92px!important}select.show-sm-only{display:inline-block}}.trust-gate{min-height:100%;display:grid;place-items:center;padding:var(--sp-6) var(--sp-4)}.trust-gate-card{width:min(720px,100%);gap:var(--sp-4)}.trust-gate.stop .trust-gate-card{border:2px solid var(--critical);border-radius:var(--r-lg);padding:var(--sp-6);background:#2804108c}.big-fp{display:flex;flex-wrap:wrap;gap:10px 18px;font-family:var(--font-mono);font-size:30px;font-weight:700;letter-spacing:.06em;color:var(--text)}.big-fp span{padding:2px 10px;border-radius:var(--r-sm);background:var(--surface-sunken);border:1px solid var(--line-strong)}@media (max-width: 640px){.big-fp{font-size:22px;gap:8px 10px}}.trust-steps{margin:0;padding-left:18px;display:grid;gap:4px}.fp-compare.light{background:var(--surface-sunken);border:1px solid var(--line)}.fp-compare.light dt{color:var(--text-muted)}.fp-compare.light dd{color:var(--text)}.trust-badge{white-space:nowrap}.trust-badge.pending{color:var(--text-muted)}.trust-row{display:flex;align-items:flex-start;gap:var(--sp-2);flex-wrap:wrap}.secret-warning{border-width:2px}.grant-steps{display:flex;gap:var(--sp-2);flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-muted)}.grant-steps .on{color:var(--text);font-weight:700}.grant-steps .done{color:var(--ok)}.section-gap{height:var(--sp-5)}
