:root{color-scheme:light;--bg: #f3f5f8;--panel: #ffffff;--line: #dde2ea;--line-soft: #edf0f4;--ink: #141821;--ink-2: #4b5466;--muted: #5e6779;--accent: #3346d3;--accent-hover: #2433a8;--accent-soft: #ebeeff;--on-accent: #ffffff;--good: #157a3e;--good-soft: #e3f4ea;--on-good: #ffffff;--bad: #c02b2b;--bad-soft: #fce8e8;--bad-line: #f0c4c4;--on-bad: #ffffff;--warn: #9a5a00;--warn-soft: #fff3dc;--nav: #141821;--nav-active: #262c3a;--nav-text: #c9d0dc;--nav-dim: #9aa4b5;--nav-line: #2a3141;--nav-strong: #ffffff;--nav-accent: #8f9bff;--switch-off: #9aa3b2;--knob: #ffffff;--input-line: #c9d0dc;--input-bg: #ffffff;--overlay: rgba(20, 24, 33, .45);--shadow: 0 12px 32px rgba(20, 24, 33, .18);--font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace}:root[data-theme=dark]{color-scheme:dark;--bg: #0e1116;--panel: #161a21;--line: #2a303b;--line-soft: #20252e;--ink: #e7eaf0;--ink-2: #b3bbc9;--muted: #98a2b3;--accent: #8f9bff;--accent-hover: #aab3ff;--accent-soft: #232848;--on-accent: #0b0e24;--good: #4dc487;--good-soft: #132a1e;--on-good: #06180d;--bad: #ff7a7a;--bad-soft: #351a1c;--bad-line: #5c2c2f;--on-bad: #1f0505;--warn: #f2b65a;--warn-soft: #33260f;--nav: #0a0c10;--nav-active: #1e232e;--nav-text: #c9d0dc;--nav-dim: #8e98aa;--nav-line: #1e232e;--nav-strong: #ffffff;--switch-off: #4f5768;--knob: #ffffff;--input-line: #3a4250;--input-bg: #11151b;--overlay: rgba(0, 0, 0, .6);--shadow: 0 12px 32px rgba(0, 0, 0, .5)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0e1116;--panel: #161a21;--line: #2a303b;--line-soft: #20252e;--ink: #e7eaf0;--ink-2: #b3bbc9;--muted: #98a2b3;--accent: #8f9bff;--accent-hover: #aab3ff;--accent-soft: #232848;--on-accent: #0b0e24;--good: #4dc487;--good-soft: #132a1e;--on-good: #06180d;--bad: #ff7a7a;--bad-soft: #351a1c;--bad-line: #5c2c2f;--on-bad: #1f0505;--warn: #f2b65a;--warn-soft: #33260f;--nav: #0a0c10;--nav-active: #1e232e;--nav-text: #c9d0dc;--nav-dim: #8e98aa;--nav-line: #1e232e;--nav-strong: #ffffff;--switch-off: #4f5768;--knob: #ffffff;--input-line: #3a4250;--input-bg: #11151b;--overlay: rgba(0, 0, 0, .6);--shadow: 0 12px 32px rgba(0, 0, 0, .5)}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}#root{min-height:100vh}h1,h2,h3,p{margin:0}a{color:var(--accent)}a:hover{color:var(--accent-hover)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}code{font-family:var(--font-mono)}[hidden]{display:none!important}.mono{font-family:var(--font-mono)}.sans{font-family:var(--font-sans)!important;font-size:14px!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip{position:absolute;left:8px;top:-80px;z-index:100;padding:12px 16px;border-radius:8px;background:var(--panel);color:var(--ink);border:1px solid var(--line)}.skip:focus{top:8px}.small{font-size:13px}.tiny{font-size:12px}.text-14{font-size:14px}.strong{font-weight:600}.strong-500{font-weight:500}.block{display:block}.break{word-break:break-all}.nowrap{white-space:nowrap}.clip{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.h3{font-size:14px;font-weight:600}:root{--nav-w: 232px;--content-max: 1240px;--page-pad-x: 32px;--page-pad-top: 28px}.app{display:grid;grid-template-columns:var(--nav-w) minmax(0,1fr);min-height:100vh;min-height:100dvh;background:var(--bg)}.nav{position:sticky;top:0;align-self:start;height:100vh;height:100dvh;overflow-y:auto;background:var(--nav);color:var(--nav-text);padding:22px 12px 18px;display:flex;flex-direction:column;gap:22px}.nav :focus-visible{outline-color:var(--nav-strong)}.nav-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 10px}.nav-brand{display:flex;flex-direction:column;gap:2px;min-width:0}.nav-title{font-weight:600;font-size:17px;color:var(--nav-strong)}.nav-sub{font-family:var(--font-mono);font-size:11px;color:var(--nav-dim);letter-spacing:.08em;text-transform:uppercase}.nav-here,.nav-toggle{display:none}.nav-toggle{flex:none;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--nav-line);border-radius:8px;background:transparent;color:var(--nav-strong);font:500 14px var(--font-sans);cursor:pointer}.nav-toggle:hover{background:var(--nav-active)}.nav-toggle-icon{display:inline-flex;flex-direction:column;gap:3px;width:16px}.nav-toggle-icon span{display:block;height:2px;border-radius:1px;background:currentColor}.nav-panel{flex:1 1 auto;display:flex;flex-direction:column;gap:22px;min-height:0}.nav-groups{display:flex;flex-direction:column;gap:18px}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-group-label{padding:0 12px 4px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--nav-dim)}.nav-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.nav-link{position:relative;display:flex;align-items:center;min-height:40px;padding:8px 12px;border-radius:8px;color:var(--nav-text);text-decoration:none;font-size:14px}.nav-link:hover{color:var(--nav-strong);background:var(--nav-active)}.nav-link[aria-current=page],.nav-link.active{background:var(--nav-active);color:var(--nav-strong);font-weight:500}.nav-link[aria-current=page]:before,.nav-link.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 2px 2px 0;background:var(--nav-accent)}.nav-user{margin-top:auto;padding:12px 10px 0;border-top:1px solid var(--nav-line);display:flex;flex-direction:column;gap:2px}.nav-who{display:flex;flex-direction:column;gap:2px;padding-bottom:4px}.nav-name{font-size:13px;color:var(--nav-strong);font-weight:500;word-break:break-all}.nav-role{font-size:12px;color:var(--nav-dim)}.nav-theme{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--nav-dim)}.nav-theme .switch.on .switch-track{background:var(--accent)}.nav-btn{display:flex;align-items:center;min-height:40px;padding:0;border:none;background:none;color:var(--nav-dim);font-size:13px;text-align:left;cursor:pointer}.nav-btn:hover{color:var(--nav-strong);text-decoration:underline}.nav-btn:disabled{cursor:default}.main{min-width:0;padding:var(--page-pad-top) var(--page-pad-x) 56px}.main:focus{outline:none}.content{width:100%;max-width:var(--content-max);margin:0 auto;min-width:0}.banners{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.banners>.banner{margin-bottom:0}.page{display:flex;flex-direction:column;gap:24px;min-width:0}.page-dash{gap:28px}.banner{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:10px 14px;margin-bottom:16px;border-radius:8px;font-size:13px}.banner-bad{background:var(--bad-soft);color:var(--bad);border:1px solid var(--bad-line)}.banner-bad a{color:var(--bad)}.banner-warn{background:var(--warn-soft);color:var(--warn)}.boot{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.boot-box{max-width:420px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.boot-box p{color:var(--ink-2)}.page-head{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-start;justify-content:space-between}.page-head-back{flex:1 1 100%;margin:-8px 0 -10px}.page-back{display:inline-flex;align-items:center;gap:6px;min-height:36px;font-size:13px;text-decoration:none}.page-back:hover{text-decoration:underline}.page-head-text{flex:1 1 380px;display:flex;flex-direction:column;gap:6px;min-width:0}.page-head h1{font-size:26px;font-weight:600;letter-spacing:-.01em;line-height:1.2;overflow-wrap:anywhere}.page-head h1:focus{outline:none}.page-head p{font-size:14px;color:var(--ink-2);max-width:78ch}.head-actions{flex:0 1 auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end;max-width:100%;padding-top:2px}.mode-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:13px;color:var(--ink-2);margin-top:2px}.engine-state{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;min-width:0;display:flex;flex-direction:column}.card h2{font-size:17px;font-weight:600;line-height:1.3}.card-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.card-head-tall{padding:18px 20px}.card-head a{font-size:14px}.card-body{padding:20px;display:flex;flex-direction:column;gap:14px}.card-body.gap-16{gap:16px}.card-foot{padding:12px 20px 16px;font-size:13px;color:var(--ink-2);border-top:1px solid var(--line-soft)}.card-section{padding:16px 20px;border-bottom:1px solid var(--line-soft)}.head-row{display:flex;gap:10px;align-items:center;justify-content:space-between}.row-between{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.row-wrap{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.col-main{flex:2 1 520px}.col-aside{flex:1 1 300px}.col-list{flex:3 1 560px;min-width:0}.col-side{flex:2 1 380px}.col-half{flex:1 1 380px}.stack-14{display:flex;flex-direction:column;gap:14px}.stack-8{display:flex;flex-direction:column;gap:8px}.stats{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:14px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:6px;min-width:0}.stat-label{font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.stat-value{font-family:var(--font-mono);font-size:clamp(22px,2.2vw,30px);font-weight:500;line-height:1.2;overflow-wrap:anywhere}.stat-sub{font-size:13px;color:var(--ink-2);min-height:1.45em}a.stat-sub{color:var(--accent);align-self:flex-start}.table-scroll{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;color:var(--muted);font-size:12px;letter-spacing:.05em;text-transform:uppercase;font-weight:500;padding:12px;white-space:nowrap}.table td{padding:14px 12px;border-top:1px solid var(--line-soft);vertical-align:middle}.table th:first-child,.table td:first-child{padding-left:20px}.table th:last-child,.table td:last-child{padding-right:20px}.table-medium td{padding-top:12px;padding-bottom:12px}.table-compact th{padding-top:10px;padding-bottom:10px}.table-compact td{padding-top:11px;padding-bottom:11px}.td-mono{font-family:var(--font-mono);font-size:13px}.td-actions{text-align:right;white-space:nowrap}.table tr.row-confirm td,.table tr.row-manage td{border-top:none;padding-top:0;text-align:left}.table-scroll{container-type:inline-size}.table tr.row-confirm td>*,.table tr.row-manage td>*{position:sticky;left:20px;max-width:calc(100cqw - 40px)}.table tr.is-done td{color:var(--muted)}.cell-stack{display:flex;flex-direction:column;gap:2px}.cell-sub{font-size:12px;color:var(--muted)}.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.pill-fixed{flex:none;width:72px;text-align:center;padding-left:0;padding-right:0}.side{display:inline-block;padding:2px 8px;border-radius:6px;font-family:var(--font-mono);font-size:12px;font-weight:500}.tone-good{background:var(--good-soft);color:var(--good)}.tone-bad{background:var(--bad-soft);color:var(--bad)}.tone-warn{background:var(--warn-soft);color:var(--warn)}.tone-accent{background:var(--accent-soft);color:var(--accent)}.tone-neutral{background:var(--line-soft);color:var(--ink-2)}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-radius:8px;border:1px solid var(--input-line);background:var(--panel);color:var(--ink);font:500 14px var(--font-sans);line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:after{content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}.btn:hover{border-color:var(--muted)}a.btn:hover{color:var(--ink)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn[aria-busy=true]{cursor:progress;opacity:.85}.btn-sm{min-height:36px;padding:0 12px;font-size:13px}.btn-lg{min-height:44px;padding:0 18px;font-size:14px}.btn-xl{min-height:46px;padding:0 20px;font-size:15px}.btn-block{width:100%}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{border-color:var(--bad-line);color:var(--bad)}.btn-danger:hover{border-color:var(--bad)}.btn-danger-solid,.btn-danger-solid:hover{background:var(--bad);border-color:var(--bad);color:var(--on-bad)}.btn-good-solid,.btn-good-solid:hover{background:var(--good);border-color:var(--good);color:var(--on-good)}.btn-off{border-color:var(--switch-off)}.btn-kill{border-color:var(--bad);color:var(--bad)}.btn-link{min-height:36px;padding:0 4px;border:none;background:none;color:var(--accent);text-decoration:underline;font-weight:500}.btn-link:hover{color:var(--accent-hover)}.spinner{width:14px;height:14px;flex:none;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.row-gap{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.row-gap-6{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.justify-end{justify-content:flex-end}.inline-gap{display:flex;align-items:center;gap:10px}.inline-gap-8{display:flex;align-items:center;gap:8px}.switch{position:relative;flex:none;display:inline-flex;align-items:center;width:44px;height:44px;padding:0;border:none;border-radius:999px;background:transparent;cursor:pointer}.switch-track{position:relative;display:block;width:44px;height:26px;border-radius:999px;background:var(--switch-off);transition:background .15s}.switch.on .switch-track{background:var(--good)}.switch-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--knob);transition:left .15s}.switch.on .switch-knob{left:21px}.switch:focus-visible{outline:none}.switch:focus-visible .switch-track{outline:2px solid var(--accent);outline-offset:2px}.nav .switch:focus-visible .switch-track{outline-color:var(--nav-strong)}.switch:disabled{cursor:not-allowed}.switch:disabled .switch-track{opacity:.6}.switch.busy{cursor:progress}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.form{display:flex;flex-direction:column;gap:14px}.form-12{gap:12px}.form-row{display:flex;gap:10px}.grow-1{flex:1 1 0}.grow-3{flex:3 1 0}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,.label{font-size:13px;font-weight:500}.field-end{justify-content:flex-end}.input{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--input-line);border-radius:8px;background:var(--input-bg);color:var(--ink);font:400 14px var(--font-sans)}.input.mono{font-family:var(--font-mono)}select.input{padding:0 10px}textarea.input{padding:10px 12px;min-height:0;resize:vertical;font-size:13px;line-height:1.5}.input::placeholder{color:var(--muted);opacity:1}.input[aria-invalid=true]{border-color:var(--bad)}.input:disabled{opacity:.7;cursor:not-allowed}.input-sm{width:auto;min-height:36px;padding:0 8px;font-size:13px}.field-lg .input{font-size:15px}.hint{font-size:12px;color:var(--ink-2)}.field-error{font-size:12px;color:var(--bad)}.form-error{padding:10px 12px;border-radius:8px;background:var(--bad-soft);color:var(--bad);font-size:13px}.form-note{padding:10px 12px;border-radius:8px;background:var(--warn-soft);color:var(--warn);font-size:13px}.fieldset{margin:0;padding:0;border:none;min-width:0;display:flex;flex-direction:column;gap:8px}.fieldset.gap-10{gap:10px}.fieldset legend{font-size:13px;font-weight:500;padding:0;margin-bottom:8px}.seg{display:flex;gap:8px}.seg button{flex:1 1 0;min-width:0;min-height:44px;padding:0 8px;border-radius:8px;border:1px solid var(--input-line);background:var(--panel);color:var(--ink);font:500 13px var(--font-sans);cursor:pointer}.seg button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.inset{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:8px;background:var(--bg)}.warn-box{padding:10px 12px;border-radius:8px;background:var(--warn-soft);color:var(--warn);font-size:13px}.ok-box{padding:10px 12px;border-radius:8px;background:var(--good-soft);color:var(--good);font-size:13px}.code-inline{display:block;font-size:12px;color:var(--ink-2);word-break:break-all;white-space:pre-wrap}.code-block{min-width:0;max-width:100%;margin:0;padding:12px;border-radius:8px;background:var(--panel);border:1px solid var(--line);font-family:var(--font-mono);font-size:12px;overflow-x:auto;white-space:pre}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.span-all{grid-column:1 / -1}.checks{display:flex;flex-wrap:wrap;gap:4px 16px}.check{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14px;cursor:pointer}.check input{width:18px;height:18px;accent-color:var(--accent)}.search-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}.input-search{width:220px;min-height:40px;padding:0 10px;font-size:13px}.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.filters label{font-size:13px;color:var(--ink-2)}.sec-grid{display:flex;flex-wrap:wrap;gap:16px 20px;align-items:flex-start}.sec-a{flex:1 1 260px}.sec-b{flex:2 1 360px}.sec-c{flex-basis:100%;display:flex;flex-direction:column;gap:10px;align-items:flex-start}.confirm{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;justify-content:space-between;padding:14px 16px;border-radius:10px;border:1px solid var(--bad-line);background:var(--bad-soft)}.confirm-neutral{border-color:var(--line);background:var(--bg)}.confirm>p{flex:1 1 320px;font-size:14px;color:var(--ink);max-width:75ch}.confirm-actions{display:flex;flex-wrap:wrap;gap:8px}.confirm-error{flex-basis:100%}.reveal{display:flex;flex-direction:column;gap:10px;min-width:0;padding:14px;border-radius:8px;background:var(--bg);border:1px solid var(--accent)}.reveal-quiet{border-color:transparent}.reveal-title{font-size:14px}.reveal-row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.reveal-item{flex:1 1 200px;display:flex;flex-direction:column;gap:6px;min-width:0}.reveal-value{font-size:15px;word-break:break-all}.reveal-actions{display:flex;flex-wrap:wrap;gap:8px}.reveal-note{flex-basis:100%}.empty{padding:28px 20px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.empty strong{font-size:15px;font-weight:600}.empty p{color:var(--ink-2);font-size:14px;max-width:65ch}.card-body>.empty,.dialog-body>.empty{padding:8px 0}.loading{display:flex;align-items:center;gap:10px;padding:20px;font-size:14px;color:var(--ink-2)}.card-body>.loading,.inset .loading,.dialog-body>.loading{padding:4px 0}.error-line{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:16px 20px;padding:10px 12px;border-radius:8px;background:var(--bad-soft);color:var(--bad);font-size:13px}.card-body>.error-line,.inset .error-line,.dialog-body>.error-line{margin:0}.alert-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.alert-list li{padding:16px 20px;display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--line-soft)}.alert-list li:last-child{border-bottom:none}.alert-msg{font-size:14px}.srv{padding:18px 20px;gap:14px}.srv-top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.srv-switches{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center}.dl{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dl-2{grid-template-columns:repeat(2,minmax(0,1fr))}.dl>div{display:flex;flex-direction:column;gap:2px;min-width:0}.dl dt{font-size:12px;color:var(--muted)}.dl dd{margin:0;font-family:var(--font-mono);font-size:13px;overflow-wrap:anywhere}.setup{border-top:1px solid var(--line-soft);padding-top:16px;display:flex;flex-direction:column;gap:10px}.setup-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.setup-head h3{font-size:14px;font-weight:600}.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.step{display:flex;gap:10px;align-items:flex-start;font-size:13px}.step-state{flex:none;width:74px;text-align:center;padding:2px 0;border-radius:999px;font-size:11px;font-weight:500}.step-text{display:flex;flex-direction:column;gap:2px;min-width:0;padding-top:1px}.step-detail{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.logs{list-style:none;margin:0;padding:0;font-family:var(--font-mono);font-size:12px}.log-line{display:grid;grid-template-columns:auto 48px minmax(0,1fr);gap:10px;padding:6px 0;border-top:1px solid var(--line-soft)}.log-msg{overflow-wrap:anywhere;white-space:pre-wrap}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{position:relative;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--input-line);background:var(--panel);color:var(--ink);font:500 13px var(--font-sans);cursor:pointer}.chip:after{content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}.chip[aria-pressed=true]{background:var(--ink);color:var(--panel);border-color:var(--ink)}.results{border-top:1px solid var(--line-soft);padding-top:14px;display:flex;flex-direction:column;gap:8px}.result-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.result-list li{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.result-detail{flex:1 1 160px;min-width:0}.manage{display:flex;flex-direction:column;gap:14px;padding:16px;border-radius:10px;background:var(--bg)}.panel-login .reveal{background:var(--bg)}.alert-rows{list-style:none;margin:0;padding:0}.alert-rows li{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:14px 20px;border-top:1px solid var(--line-soft)}.alert-rows li:first-child{border-top:none}.alert-rows li.is-done .alert-text{color:var(--muted)}.alert-main{display:flex;gap:12px;align-items:center;min-width:0;flex:1 1 420px}.alert-text{font-size:14px;min-width:0;overflow-wrap:anywhere}a.btn-primary,a.btn-primary:hover{color:var(--on-accent)}.page-detail{gap:22px}.back-link{align-self:flex-start;display:inline-flex;align-items:center;min-height:44px;margin:-12px 0 -14px;font-size:13px;text-decoration:none}.back-link:hover{text-decoration:underline}.link-cell{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;margin-left:4px;white-space:nowrap}.meta-line{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:var(--ink-2);margin-top:2px}.head-note{max-width:40ch}.head-text{flex:1 1 320px;min-width:0}.h2-sm,.card .h2-sm{font-size:15px;font-weight:600}.text-ink-2{color:var(--ink-2)}.measure{max-width:80ch}.gap-16{gap:16px}.card-body.gap-18{gap:18px}.card-body.gap-20{gap:20px}.card-narrow{max-width:720px}.stack-10{display:flex;flex-direction:column;gap:10px}.fieldset-plain{margin:0;padding:0;border:none;min-width:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-row-wrap{flex-wrap:wrap;align-items:flex-end}.check-block{align-items:flex-start;padding:10px 0;min-height:44px}.check-block input{flex:none;margin-top:2px}.check-text{display:flex;flex-direction:column;gap:2px}.banner-flush{margin-bottom:0}.warn-box-inset{margin:16px 20px 0}.card-section-flush{border-bottom:none;padding-bottom:0}.input-select{width:auto;min-height:40px;font-size:14px}.input-search-sm{width:160px;min-height:36px}.break-any{overflow-wrap:anywhere}.nowrap-row{flex-wrap:nowrap}.tabs{display:flex;flex-wrap:nowrap;gap:4px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;box-shadow:inset 0 -1px 0 var(--line);-webkit-overflow-scrolling:touch}.tab{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:none;background:none;color:var(--ink-2);font:500 14px var(--font-sans);white-space:nowrap;cursor:pointer}.tab:hover{color:var(--ink)}.tab[aria-selected=true]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}.tab:focus-visible{outline-offset:-2px}.tab-count{display:inline-block;min-width:20px;padding:1px 7px;border-radius:999px;background:var(--line-soft);color:var(--ink-2);font:500 12px var(--font-mono);line-height:1.4;text-align:center}.table th.num,.table td.num{text-align:right}.table .arrow-col{padding-left:4px;padding-right:4px;color:var(--switch-off);width:1%}.table tr.th-group th{padding-top:12px;padding-bottom:4px;font-size:11px;letter-spacing:.08em;font-weight:600;color:var(--accent)}.table tr.th-group+tr th{padding-top:8px}.table-inline{width:auto}.table-inline th:first-child,.table-inline td:first-child{padding-left:0}.table-inline th:last-child,.table-inline td:last-child{padding-right:0}.table-inline td{padding-top:10px;padding-bottom:10px}.input-cell{width:150px;min-height:40px;font-size:13px}.input-cell-wide{width:190px}.input-num{width:110px;text-align:right}.table-note{padding:8px 0 0}.stats-compact .stat{flex-basis:180px;padding:16px 18px;gap:4px}.stats-compact .stat-value{font-size:clamp(20px,1.9vw,26px)}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.pill-wrap{white-space:normal;overflow-wrap:anywhere}.dropzone{border:1px dashed var(--switch-off);border-radius:10px;padding:18px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.dropzone.drag{border-color:var(--accent);background:var(--accent-soft)}.dropzone-text{flex:1 1 260px;min-width:0;overflow-wrap:anywhere}.note-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.confirm-body{flex-basis:100%;min-width:0}.confirm-type{flex:1 1 220px;max-width:320px}.detail-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}.detail-card{gap:10px;padding:18px 20px}.kv{margin:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:10px 12px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}.activity{list-style:none;margin:0;padding:0}.activity li{display:flex;gap:12px;padding:10px 20px;border-top:1px solid var(--line-soft);font-size:13px}.activity li:first-child{border-top:none}.act-time{flex:none}.act-level{flex:none;width:48px;font-size:11px;font-weight:500;padding-top:1px}.act-msg{min-width:0;overflow-wrap:anywhere}.sim-row{display:flex;flex-wrap:wrap;gap:8px}.sim-row .input{min-height:44px}.sim-qty{width:90px}.sim-client{width:110px}.sim-actions{display:flex;gap:8px}.sim-actions .btn{flex:1 1 0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;background:var(--overlay)}.overlay-drawer{justify-content:flex-end}.overlay-modal{align-items:center;justify-content:center;padding:16px}.dialog{background:var(--panel);color:var(--ink);box-shadow:var(--shadow);display:flex;flex-direction:column;min-width:0}.dialog:focus{outline:none}.dialog-drawer{width:min(640px,100vw);height:100%;max-height:100dvh;border-left:1px solid var(--line);animation:drawer-in .16s ease-out}.dialog-drawer.dialog-sm{width:min(480px,100vw)}.dialog-drawer.dialog-lg{width:min(880px,100vw)}@keyframes drawer-in{0%{transform:translate(32px);opacity:0}}.dialog-modal{width:min(440px,100%);max-height:calc(100vh - 32px);border-radius:12px}.dialog-modal.dialog-lg{width:min(640px,100%)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}.dialog-head-text{display:flex;flex-direction:column;gap:4px;min-width:0;padding-top:6px}.dialog-head h2{font-size:17px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}.dialog-desc{font-size:13px;color:var(--ink-2)}.dialog-body{flex:1 1 auto;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.dialog-foot{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;padding:14px 20px;border-top:1px solid var(--line)}.dialog-section{display:flex;flex-direction:column;gap:10px;padding-top:16px;border-top:1px solid var(--line-soft)}.dialog-section:first-child{padding-top:0;border-top:none}.dialog-section h3{font-size:14px;font-weight:600}.toasts{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;flex-direction:column;gap:8px;width:min(420px,calc(100vw - 32px));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:10px 8px 10px 14px;border-radius:10px;background:var(--panel);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);font-size:14px}.toast-dot{flex:none;width:8px;height:8px;margin-top:7px;border-radius:50%;background:var(--accent)}.toast-success .toast-dot{background:var(--good)}.toast-error{border-color:var(--bad-line)}.toast-error .toast-dot{background:var(--bad)}.toast-msg{flex:1 1 auto;padding-top:2px;min-width:0;overflow-wrap:anywhere}.toast-close{flex:none;width:32px;height:32px;border:none;border-radius:6px;background:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer}.toast-close:hover{color:var(--ink);background:var(--line-soft)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:48px 16px;background:var(--bg)}.login{width:100%;max-width:420px;display:flex;flex-direction:column;gap:24px}.login:focus{outline:none}.login-brand{display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center}.login-title{font-weight:600;font-size:22px}.login-sub{font-family:var(--font-mono);font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px;display:flex;flex-direction:column;gap:18px}.login-card h1{font-size:20px;font-weight:600}.login-foot{font-size:13px;color:var(--ink-2);text-align:center}.card-head-text{flex:1 1 240px;display:flex;flex-direction:column;gap:2px;min-width:0}.card-sub{font-size:13px;color:var(--ink-2)}.card-tools{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;justify-content:flex-end;min-width:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;max-width:880px;align-items:start}.form-grid>.span-all{grid-column:1 / -1}.form-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-start}.tab-body{display:flex;flex-direction:column;gap:20px;min-width:0}.switch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;max-width:880px}.dash-split{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:20px;align-items:start}.line-hold{min-height:24px}.meta-line .btn-link,.mode-line .btn-link,.warn-box .btn-link,.hint .btn-link{min-height:24px;padding:0 2px;font-size:inherit}.link-plain{color:inherit;text-decoration:none}.link-plain:hover{color:var(--accent);text-decoration:underline}.srv-head{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-start;justify-content:space-between}.srv-name{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;min-width:0}.srv-name h2{overflow-wrap:anywhere}.dl-5{grid-template-columns:repeat(5,minmax(0,1fr))}.srv-foot{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--line-soft)}.used-free{color:var(--muted);font-style:italic}.pool-search{width:220px}.fg-good{color:var(--good)}.fg-bad{color:var(--bad)}.fg-warn{color:var(--warn)}.fg-accent{color:var(--accent)}.fg-muted{color:var(--muted)}.fg-muted-2{color:var(--ink-2)}@media(max-width:1135px){.detail-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-cards>.detail-card:last-child:nth-child(odd){grid-column:1 / -1}.dash-split{grid-template-columns:minmax(0,1fr)}.dl-5{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1100px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1023px){.stats{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.stats>.stat:last-child:nth-child(odd){grid-column:1 / -1}}@media(max-width:799px){:root{--page-pad-x: 16px;--page-pad-top: 20px}.app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.nav{position:static;height:auto;overflow:visible;padding:8px 16px;gap:0}.nav-bar{padding:0;min-height:48px}.nav-sub{display:none}.nav-here{display:block;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:var(--nav-dim)}.nav-toggle{display:inline-flex}.nav-panel{display:none;padding:12px 0 8px}.nav.is-open .nav-panel{display:flex}.nav-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px 16px}.nav-link{min-height:44px}.nav-user{flex-direction:row;flex-wrap:wrap;align-items:center;gap:0 18px;margin-top:0;padding:10px 0 0}.nav-who{flex-basis:100%;flex-direction:row;gap:8px;align-items:baseline;padding:0}.nav-btn{min-height:44px}.page-head h1{font-size:23px}.dl,.dl-5{grid-template-columns:repeat(2,minmax(0,1fr))}.input-search{width:100%}.search-label{flex:1 1 100%}}@media(max-width:600px){.grid-3,.grid-2,.form-grid,.switch-grid,.detail-cards{grid-template-columns:minmax(0,1fr)}.detail-cards>.detail-card:last-child:nth-child(odd){grid-column:auto}.head-actions,.card-tools{flex:1 1 100%;justify-content:flex-start}.pool-search{flex:1 1 100%;width:100%}.stat{padding:14px 16px}.stat-label{font-size:11px}.activity li{flex-wrap:wrap;gap:4px 10px;padding-left:16px;padding-right:16px}.act-msg{flex-basis:100%}.warn-box-inset{margin-left:16px;margin-right:16px}.detail-card{padding-left:16px;padding-right:16px}.input-search-sm{width:100%}.confirm-type{max-width:none}.card-head,.card-head-tall,.card-body,.card-section,.card-foot,.srv,.dialog-head,.dialog-body,.dialog-foot{padding-left:16px;padding-right:16px}.table th:first-child,.table td:first-child{padding-left:16px}.table th:last-child,.table td:last-child{padding-right:16px}.table tr.row-confirm td>*,.table tr.row-manage td>*{left:16px;max-width:calc(100cqw - 32px)}.alert-list li{padding-left:16px;padding-right:16px}.login-card{padding:22px 18px}.seg{flex-wrap:wrap}.seg button{flex:1 1 120px}.confirm-actions{width:100%}.alert-main{flex-wrap:wrap;flex-basis:100%}.clip{max-width:180px}.dialog-drawer,.dialog-drawer.dialog-sm,.dialog-drawer.dialog-lg{width:100vw;border-left:none}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:1.6s}.dialog-drawer{animation:none}.switch-track,.switch-knob{transition:none}}.ids-link{display:inline-flex;align-items:center;min-height:28px;align-self:flex-start}.ids-create{display:flex;flex-direction:column;gap:18px;min-width:0}.ids-create .dialog-section .form-grid{max-width:none}.dialog-foot .ids-foot-note{flex:1 1 220px;min-width:0}.page-head.ids-head h1{overflow-wrap:anywhere}.ids-head-switch{display:inline-flex;align-items:center;gap:8px;min-height:44px}.ids-onoff{min-width:2.2em}.ids-blocked{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:10px;border:1px solid var(--bad-line);background:var(--bad-soft);color:var(--ink)}.ids-blocked strong{color:var(--bad)}.ids-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:20px;align-items:start;min-width:0}.ids-cards>.card{min-width:0}.ids-kv-pill{display:inline-flex}@media(max-width:600px){.ids-cards{gap:16px}}.proxy-switch-row{display:flex;align-items:center;gap:10px}.proxy-switch-text{display:flex;flex-direction:column;gap:2px;min-width:0}.ip-toggles{display:flex;flex-direction:column;gap:8px;min-width:0}.ip-toggles:focus{outline:2px solid var(--bad);outline-offset:4px;border-radius:8px}.ip-toggle-list{list-style:none;overflow-x:hidden;margin:0;padding:0;max-height:320px;overflow-y:auto;border:1px solid var(--line);border-radius:8px}.ip-toggle{display:flex;align-items:center;gap:10px;padding:4px 12px 4px 6px;border-bottom:1px solid var(--line-soft)}.ip-toggle:last-child{border-bottom:none}.ip-toggle.on{background:var(--accent-soft)}.ip-toggle-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;cursor:pointer}.ip-toggle-text .cell-sub{overflow-wrap:anywhere}.map-table tr.map-group th{padding-top:10px;padding-bottom:10px;border-top:1px solid var(--line);background:var(--bg);color:var(--ink-2);font-weight:600}.map-table tr.map-group-on th{color:var(--good)}.map-table tr.map-dirty>td:first-child{box-shadow:inset 3px 0 0 var(--warn)}.table.map-table td{vertical-align:top}.map-link{display:inline-flex;align-items:center;min-height:28px;font-family:var(--font-mono);font-size:13px;font-weight:500}.input.map-num{width:84px;text-align:right}.map-err{display:block;max-width:200px;margin-top:4px;font-size:12px;color:var(--bad);white-space:normal}.map-ovr-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.map-ovr-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px}.map-ovr-add{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.input.map-sym{width:130px}.input.map-sym-wide{width:180px}@media(max-width:600px){.input.map-sym,.input.map-sym-wide{width:100%;flex:1 1 140px}}.card-head.orders-head{align-items:flex-start}.orders-filters{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:12px 14px;align-items:flex-end;min-width:0}.orders-filter{display:flex;flex-direction:column;gap:4px;min-width:0}.orders-filter>label{font-size:13px;color:var(--ink-2)}.orders-filter .input{min-width:140px;max-width:260px}.orders-symbol{width:140px;text-transform:uppercase}.orders-symbol::placeholder{text-transform:none}.orders-filter-end{justify-content:flex-end}.table tr.row-failed td{background:var(--bad-soft);background:color-mix(in srgb,var(--bad-soft) 55%,transparent)}@media(max-width:600px){.orders-filter{flex:1 1 140px}.orders-filter .input{width:100%;min-width:0;max-width:none;min-height:44px}.orders-filter-end{flex:0 0 auto}}.pos-summary{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.pos-summary .pos-sum-btn{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 10px 0 4px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font:500 13px var(--font-sans);cursor:pointer}.pos-summary .pos-sum-text{padding-left:12px}.pos-summary .pos-sum-btn:after{content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}.pos-summary .pos-sum-btn:hover{border-color:var(--switch-off)}.pos-summary .pos-sum-btn[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.pos-summary .pos-sum-count{font-family:var(--font-mono);font-size:13px}.pos-filters{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center}.card-tools .pos-filters{justify-content:flex-end}.pos-filters .search-label{min-width:0;max-width:100%}.pos-filters select.input{flex:0 1 auto;min-width:0;max-width:260px}.table.table-pos tr.pos-row-diff>td{background:color-mix(in srgb,var(--warn-soft) 45%,transparent)}.table.table-pos tr.pos-row-diff>td.pos-diff{background:var(--warn-soft);box-shadow:inset 3px 0 0 var(--warn)}.table.table-pos .pos-reason{display:block;max-width:240px;white-space:normal;overflow-wrap:anywhere}.table.table-pos tfoot td,.table.table-pos tfoot th{border-top:2px solid var(--line);padding-top:12px;padding-bottom:14px;vertical-align:top;font-weight:600}.table.table-pos tfoot th{color:var(--ink);font-size:14px;letter-spacing:0;text-transform:none}.table.table-pos tfoot .cell-sub{font-weight:500}.confirm .pos-confirm-note{display:flex;flex-direction:column;gap:6px;font-size:14px;max-width:75ch}@media(max-width:600px){.card-section.pos-sum-section{padding-left:16px;padding-right:16px}.card-tools .pos-filters{justify-content:flex-start}.pos-filters select.input{flex:1 1 auto;max-width:none}}.upd-top{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.kv .btn-link{min-height:24px;padding:0 2px;font-size:inherit}.upd-window{font-size:13px}.upd-files{display:flex;flex-direction:column;gap:6px;min-width:0}.upd-file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:280px;overflow-y:auto;font-size:13px}.upd-file-list li{display:flex;gap:10px;align-items:baseline;min-width:0}.upd-kind{flex:none;width:70px;text-align:center;padding:1px 0;border-radius:999px;font-size:11px;font-weight:500}.upd-steps{padding:2px 0 6px}.upd-log{max-height:360px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.upd-note{white-space:pre-wrap;overflow-wrap:anywhere}a.pill-link{text-decoration:none}a.pill-link:hover{text-decoration:underline}@media(max-width:1023px){.upd-top{grid-template-columns:minmax(0,1fr)}}
