:root{--bg: #0a0e14;--surface: #10151d;--surface-hi: #161d27;--line: #1d2733;--line-soft: #151c25;--text: #c5cfdb;--text-dim: #66717f;--text-faint: #454f5c;--neutron: #4dd4e8;--neutron-dim: #2a7d8c;--pos: #3fd68c;--neg: #ff5f56;--warn: #e3a33c;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login{width:100%;max-width:330px}.login-brand{font-size:14px;font-weight:600;letter-spacing:.18em;margin-bottom:4px}.login-brand .cn{color:var(--neutron);letter-spacing:.3em;margin-left:8px}.login-sub{font-size:11px;color:var(--text-faint);letter-spacing:.08em;margin-bottom:26px}.field{margin-bottom:10px}.field label{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);margin-bottom:5px}input[type=text],input[type=password],input[type=number],select{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:2px;color:var(--text);font-family:var(--mono);font-size:13px;padding:9px 11px}input:focus{outline:none;border-color:var(--neutron-dim);background:var(--surface-hi)}button{font-family:var(--sans);font-size:12px;letter-spacing:.06em;padding:9px 16px;border-radius:2px;border:1px solid var(--line);background:var(--surface-hi);color:var(--text);cursor:pointer}button:hover{border-color:var(--neutron-dim);color:#fff}button.primary{width:100%;margin-top:8px;border-color:var(--neutron-dim);color:var(--neutron)}button.primary:hover{background:#4dd4e814}button.danger{border-color:#45242a;color:var(--neg)}button.danger:hover{background:#ff5f5614;border-color:var(--neg)}button:focus-visible,input:focus-visible{outline:2px solid var(--neutron);outline-offset:1px}button:disabled{opacity:.4;cursor:not-allowed}.topbar{flex-wrap:wrap;display:flex;align-items:center;gap:14px;padding:13px 22px;border-bottom:1px solid var(--line);background:var(--surface)}.brand{font-size:14px;font-weight:600;letter-spacing:.16em}.brand .cn{color:var(--neutron);letter-spacing:.3em;margin-left:9px;font-weight:500}.badge{font-family:var(--mono);font-size:10px;letter-spacing:.1em;padding:3px 7px;border:1px solid var(--line);border-radius:2px;color:var(--text-faint)}.topbar-actions{margin-left:auto;display:flex;gap:8px}.wrap{max-width:1080px;margin:0 auto;padding:26px 22px 60px}.section-head{display:flex;align-items:baseline;gap:14px;margin:0 0 6px}.section-head h2{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin:0}.section-note{font-size:12px;color:var(--text-dim);margin:0 0 16px;line-height:1.6}.params{width:100%;border-collapse:collapse;font-size:12.5px}.params thead th{font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);text-align:left;padding:0 10px 9px;border-bottom:1px solid var(--line)}.params td{padding:8px 10px;border-bottom:1px solid var(--line-soft);vertical-align:middle}.params tr:hover{background:var(--surface-hi)}.params .key{font-family:var(--mono);color:var(--neutron);white-space:nowrap}.params .val{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.params .desc{color:var(--text-dim);font-size:12px}.params .range{font-family:var(--mono);font-size:10.5px;color:var(--text-faint);white-space:nowrap}.group-row td{padding-top:18px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);border-bottom:1px solid var(--line)}.params tr.editing{background:var(--surface-hi)}.params tr.editing .key{color:var(--warn)}.params tr.edit-row td{background:var(--surface);border-left:2px solid var(--warn);padding:12px 14px}.edit-row input{width:120px;text-align:right;padding:6px 9px;font-size:12px}.edit-row .reason{text-align:left}.edit-row .hint{margin:8px 0 0}.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hint{font-size:11px;color:var(--warn)}.msg{padding:10px 14px;border-radius:2px;font-size:12px;margin-bottom:14px;border:1px solid var(--line);background:var(--surface)}.msg.ok{border-color:#1f4535;color:var(--pos)}.msg.err{border-color:#45242a;color:var(--neg)}.tabs{display:flex;gap:2px;margin-left:12px}.tab{border:1px solid transparent;background:transparent;color:var(--text-dim);padding:6px 13px;display:inline-flex;align-items:center;gap:7px}.tab:hover{color:var(--text);border-color:var(--line)}.tab.active{color:var(--neutron);border-color:var(--line);background:var(--surface-hi)}.pip{font-family:var(--mono);font-size:10px;min-width:16px;padding:1px 4px;border-radius:8px;background:var(--line);color:var(--text);text-align:center}.pip.p0{background:var(--neg);color:#14090a}.badge.mode-running{color:var(--pos);border-color:#1f4535}.badge.mode-paused{color:var(--warn);border-color:#453a1f}.badge.mode-killed,.badge.mode-offline,.badge.mode-unknown{color:var(--neg);border-color:#45242a}.control-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:16px}.control-card{border:1px solid var(--line);background:var(--surface);border-radius:3px;padding:16px}.control-card p{font-size:12px;color:var(--text-dim);line-height:1.65;margin:8px 0 14px}.control-title{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text)}.danger-card{border-left:2px solid var(--neg)}.danger-card .control-title{color:var(--neg)}.confirm{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--neg);flex-wrap:wrap}.level{font-family:var(--mono);font-size:10px;letter-spacing:.08em;padding:2px 6px;border-radius:2px;border:1px solid}.level-P0{color:var(--neg);border-color:#45242a;background:#ff5f5612}.level-P1{color:var(--warn);border-color:#453a1f}.level-P2{color:var(--text-dim);border-color:var(--line)}.level-note{font-size:10px;color:var(--text-faint);margin-left:7px}.params tr.acked{opacity:.45}.action{font-size:11px;color:var(--text)}.row-actions{text-align:right;white-space:nowrap}.row-actions button+button{margin-left:6px}.history-row td{background:var(--surface);border-left:2px solid var(--neutron-dim);padding:12px 14px}.history-head{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);margin-bottom:10px}.history-item{display:flex;gap:16px;flex-wrap:wrap;padding:5px 0;border-top:1px solid var(--line-soft);font-size:12px}.history-item .val{min-width:130px;text-align:left}.empty{padding:34px;text-align:center;color:var(--text-dim);font-size:13px;border:1px dashed var(--line);border-radius:3px}code{font-family:var(--mono);font-size:11px;background:var(--surface-hi);padding:1px 5px;border-radius:2px;color:var(--neutron)}@media(max-width:760px){.hide-sm{display:none}.tabs{order:3;width:100%;margin:8px 0 0;overflow-x:auto}}.occ{font-family:var(--mono);color:var(--warn);font-size:11.5px}.params .state{font-size:10.5px;color:var(--text-faint);white-space:nowrap}.params .state.is-broken{color:var(--neg);font-weight:600}.params tr.row-broken td{box-shadow:inset 2px 0 0 var(--neg)}.err-text{color:var(--neg)}.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}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
