:root{--ink: #12161B;--ink2: #5A646E;--ink3: #949DA6;--line: #E2E5E8;--line-in: #EEF0F2;--field: #CBD1D6;--surface: #FFFFFF;--bg: #F2F4F5;--subtle: #FAFBFB;--accent: #B44A1E;--accent-hover: #953C18;--accent-soft: #FBEEE8;--rail: #FFFFFF;--rail-div: #E2E5E8;--rail-inactive: #5A646E;--rail-muted: #949DA6;--rail-hover: #F2F4F5;--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)}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);border-right:1px solid var(--line);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:var(--ink);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:var(--ink);font-weight:500}.rail-item.on:before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:3px;background:var(--accent)}.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)}.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)}.tblwrap{overflow-x:auto}.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);white-space:nowrap}.tbl td{padding:11px 18px;border-bottom:1px solid var(--line-in);vertical-align:top}.tbl tr:hover td{background:var(--subtle)}.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.sm{padding:4px 9px;font-size:12px}.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)}.badge.cat{color:var(--accent);border-color:var(--accent-soft);background:var(--accent-soft)}.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:0 0 4px}input.i,select.i{width:100%;border:1px solid var(--field);border-radius:2px;padding:7px 9px;font-size:13px;font-family:var(--sans)}input.i:focus,select.i:focus{outline:none;border-color:var(--accent)}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.filters .fg{min-width:130px}.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 b{color:#fff}.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}.empty{padding:40px 18px;text-align:center;color:var(--ink3)}.skel{height:12px;background:linear-gradient(90deg,#eef0f2,#f6f7f8,#eef0f2);border-radius:2px;margin:8px 0}.jsonbox{font-family:var(--mono);font-size:11px;white-space:pre-wrap;word-break:break-word;max-height:240px;overflow:auto;background:var(--subtle);border:1px solid var(--line-in);border-radius:2px;padding:10px}
