:root{--ink: #12161B;--ink2: #5A646E;--ink3: #949DA6;--line: #E2E5E8;--line-in: #EEF0F2;--field: #CBD1D6;--surface: #FFFFFF;--bg: #F2F4F5;--subtle: #FAFBFB;--accent: #4A63C8;--accent-hover: #3B51A8;--accent-soft: #EEF0FB;--rail: #161A1F;--rail-div: #262C33;--rail-inactive: #C3C9D0;--rail-muted: #6B747E;--rail-hover: #1E242B;--ok: #0B6E4F;--warn: #9A6A00;--err: #B42318;--err-hover: #8F1B12;--err-border: #E0BDB4;--err-bg: #FDF7F6;--warn-border: #E8DCC0;--warn-bg: #FDFBF5;--imp-bg: #3A2E14;--imp-text: #F5EFE2;--imp-muted: #C9BFA8;--imp-mark: #E0A93B;--imp-btn: #6B5C38;--sans: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}body{margin:0;font-family:var(--sans);font-size:13px;color:var(--ink);background:var(--bg)}.mono{font-family:var(--mono)}a{color:inherit}button{font-family:var(--sans);cursor:pointer}.app{display:grid;grid-template-columns:212px minmax(0,1fr);min-height:100vh}.rail{background:var(--rail);color:var(--rail-inactive);display:flex;flex-direction:column}.rail-top{height:56px;display:flex;align-items:center;gap:9px;padding:0 16px;border-bottom:1px solid var(--rail-div)}.rail-logo{width:9px;height:22px;background:var(--accent)}.rail-brand{color:#fff;font-size:13px;font-weight:600;letter-spacing:.04em}.rail-label{font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--rail-muted);padding:16px 16px 8px}.rail-item{position:relative;display:flex;align-items:center;justify-content:space-between;padding:8px 16px;font-size:13px;color:var(--rail-inactive);border:0;background:none;width:100%;text-align:left}.rail-item:hover{background:var(--rail-hover)}.rail-item.on{color:#fff}.rail-item.on:before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:3px;background:var(--accent)}.rail-count{font-family:var(--mono);font-size:11px;color:var(--rail-muted)}.rail-count.alert{color:var(--imp-mark)}.rail-foot{margin-top:auto;padding:14px 16px;border-top:1px solid var(--rail-div);font-family:var(--mono);font-size:10px;color:var(--rail-muted);line-height:1.6}.main{display:flex;flex-direction:column;min-width:0}.header{height:56px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.crumb{font-size:13px;color:var(--ink2)}.header-right{display:flex;align-items:center;gap:14px}.svc-dot{width:8px;height:8px;border-radius:50%}.divider{width:1px;height:20px;background:var(--line)}.avatar{width:28px;height:28px;border-radius:50%;border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600}.content{padding:26px 28px 44px;max-width:1240px;width:100%}.h1{font-size:21px;font-weight:600;letter-spacing:-.01em;margin:0}.sub{font-size:13px;color:var(--ink2);margin-top:3px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px;gap:12px}.grid{display:grid;gap:14px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.card{background:var(--surface);border:1px solid var(--line);border-radius:2px}.card-h{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--line)}.card-h h2{font-size:13px;font-weight:600;margin:0}.card-b{padding:16px 18px}.muted{color:var(--ink3)}.meta{font-size:11px;color:var(--ink3);font-family:var(--mono)}.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);padding:9px 18px;border-bottom:1px solid var(--line)}.tbl td{padding:11px 18px;border-bottom:1px solid var(--line-in);vertical-align:top}.tbl tr:hover td{background:var(--subtle)}.cell-main{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-sub{font-family:var(--mono);font-size:11px;color:var(--ink3);margin-top:2px}.right{text-align:right}.tabnum{font-variant-numeric:tabular-nums}.btn{border:1px solid var(--field);background:var(--surface);color:var(--ink);border-radius:2px;padding:7px 12px;font-size:13px}.btn:hover{border-color:var(--ink)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover)}.btn.danger{background:var(--err);border-color:var(--err);color:#fff}.btn.danger:hover{background:var(--err-hover)}.btn.ghost-danger{border-color:var(--err-border);color:var(--err);background:var(--surface)}.btn:disabled{background:#dfc5c1;border-color:#dfc5c1;color:#fff;cursor:not-allowed}.btn.sm{padding:4px 9px;font-size:12px}.linkish{color:var(--accent);background:none;border:0;padding:0;font-size:12px}.linkish:hover{color:var(--accent-hover);text-decoration:underline}.badge{display:inline-block;font-size:10px;padding:2px 6px;border-radius:2px;border:1px solid var(--line);color:var(--ink2)}.badge.warn{color:var(--warn);border-color:var(--warn-border);background:var(--warn-bg)}.badge.err{color:var(--err);border-color:var(--err-border);background:var(--err-bg)}.badge.ok{color:var(--ok)}.pill{border:1px solid var(--field);background:var(--surface);border-radius:999px;padding:4px 12px;font-size:12px;color:var(--ink2)}.pill.on{background:var(--ink);color:#fff;border-color:var(--ink)}label.f{display:block;font-size:12px;color:var(--ink2);margin:12px 0 4px}input.i,select.i{width:100%;border:1px solid var(--field);border-radius:2px;padding:8px 10px;font-size:13px;font-family:var(--sans)}input.i:focus,select.i:focus{outline:none;border-color:var(--accent)}input.i.mono{font-family:var(--mono)}input.i.bad{border-color:var(--err-border)}.hint{font-size:12px;margin-top:4px}.hint.g{color:var(--ink3)}.hint.r{color:var(--err)}.hint.ok{color:var(--ok)}.row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.seg{display:flex;gap:6px}.seg button{flex:1}.imp{display:flex;align-items:center;flex-wrap:wrap;gap:10px;background:var(--imp-bg);color:var(--imp-text);padding:11px 28px}.imp-mark{width:8px;height:8px;background:var(--imp-mark)}.imp .sep{color:var(--imp-muted)}.imp .sub{color:var(--imp-muted);margin:0}.imp .out{margin-left:auto;background:transparent;border:1px solid var(--imp-btn);color:var(--imp-text);border-radius:2px;padding:5px 12px}.imp .out:hover{background:#4a3b1b}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#12161b73;display:flex;align-items:flex-start;justify-content:center;padding:60px 16px;z-index:50}.overlay.del{background:#12161b8c}.modal{background:var(--surface);border-radius:3px;box-shadow:0 24px 60px #12161b47;width:520px;max-width:100%}.modal.wide{width:600px}.modal.del{width:560px;box-shadow:0 24px 60px #12161b52}.modal-h{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.modal-h h2{font-size:15px;margin:0}.modal-b{padding:18px 20px}.modal-f{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}.code-block{background:var(--ink);color:#eaedef;font-family:var(--mono);font-size:11px;padding:12px;border-radius:2px;overflow-x:auto;white-space:nowrap}.warn-block{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:2px;padding:12px;font-size:12px}.err-block{background:var(--err-bg);border:1px solid var(--err-border);border-radius:2px;padding:12px;font-size:12px}.del-bar{width:8px;height:20px;background:var(--err)}.step{font-size:11px;color:var(--ink3)}.bar{height:6px;background:var(--line);border-radius:2px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--accent)}.bignum{font-family:var(--mono);font-size:30px;font-weight:600;line-height:1}.spark{display:flex;align-items:flex-end;gap:2px;height:62px}.spark>span{flex:1;background:var(--accent);opacity:.75}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.tile{background:var(--surface);padding:12px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:7px 14px;font-size:13px}.kv .k{color:var(--ink3)}.kv .v{font-family:var(--mono);overflow:hidden;text-overflow:ellipsis}.skeleton{background:linear-gradient(90deg,#eef0f2,#f6f7f8,#eef0f2);border-radius:2px;height:12px}.empty{text-align:center;color:var(--ink3);padding:32px}.err-line{color:var(--err);font-size:12px}@media (max-width: 760px){.app{grid-template-columns:1fr}.rail{display:none}}
