:root{--bg: #f6f7f5;--bg-alt: #ffffff;--bg-sunken: #eef0ec;--panel: #ffffff;--border: #e3e6e0;--border-strong: #cbd1c8;--text: #11201f;--text-muted: #5a6b68;--text-subtle: #8a968f;--accent: #0c9a93;--accent-ink: #065a56;--accent-soft: #d6efec;--accent-hover: #087a74;--warn: #c46a08;--warn-soft: #fdedd5;--danger: #b43838;--danger-soft: #fbe1e1;--ok: #2e8a4a;--ok-soft: #dbf1e0;--info: #2a6fb3;--info-soft: #dcebf7;--radius-s: 4px;--radius-m: 6px;--radius-l: 10px;--shadow-1: 0 1px 0 rgba(17, 32, 31, .04), 0 1px 2px rgba(17, 32, 31, .05);--shadow-2: 0 8px 24px -8px rgba(17, 32, 31, .18);--shadow-pop: 0 12px 40px -8px rgba(17, 32, 31, .28);--row-h: 40px;--font-sans: "Inter var", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace}[data-theme=dark]{--bg: #0e1513;--bg-alt: #131b19;--bg-sunken: #0a100f;--panel: #141d1b;--border: #1f2a27;--border-strong: #2c3a37;--text: #e8efed;--text-muted: #97a6a3;--text-subtle: #6b7a77;--accent: #2dc9bf;--accent-ink: #9dece8;--accent-soft: #143330;--accent-hover: #58d9d0;--warn: #f1b660;--warn-soft: #3b2a14;--danger: #e47373;--danger-soft: #3b1c1c;--ok: #6ec887;--ok-soft: #143220;--info: #6eaeea;--info-soft: #142638;--shadow-1: 0 1px 0 rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .45);--shadow-2: 0 10px 30px -10px rgba(0, 0, 0, .6);--shadow-pop: 0 18px 50px -10px rgba(0, 0, 0, .75)}[data-density=compact]{--row-h: 32px}[data-density=comfortable]{--row-h: 40px}[data-density=airy]{--row-h: 52px}[data-accent=teal]{--accent: #0c9a93;--accent-hover: #087a74;--accent-soft: #d6efec}[data-accent=forest]{--accent: #3b8c4d;--accent-hover: #2c6b3a;--accent-soft: #dbeedf}[data-accent=indigo]{--accent: #4a56d9;--accent-hover: #3840b0;--accent-soft: #e2e4fb}[data-accent=slate]{--accent: #334155;--accent-hover: #1f2937;--accent-soft: #e2e8f0}[data-theme=dark][data-accent=forest]{--accent: #6fbf82;--accent-soft: #14301d}[data-theme=dark][data-accent=indigo]{--accent: #8b93f0;--accent-soft: #1a1e40}[data-theme=dark][data-accent=slate]{--accent: #9aa7bb;--accent-soft: #1f2a38}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:13.5px;line-height:1.4;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01","ss03"}a{color:var(--accent);text-decoration:none;cursor:pointer}a:hover{color:var(--accent-hover);text-decoration:underline}button{font-family:inherit;font-size:inherit}code,.mono{font-family:var(--font-mono);font-size:12px}.hstack{display:flex;align-items:center;gap:8px}.vstack{display:flex;flex-direction:column;gap:8px}.spacer{flex:1 1 auto}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.tiny{font-size:11.5px}.cap{text-transform:uppercase;font-size:10.5px;letter-spacing:.08em;font-weight:600;color:var(--text-muted)}.divider{height:1px;background:var(--border);margin:8px 0}.btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;background:var(--panel);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-m);cursor:pointer;font-weight:500;transition:background .12s,border-color .12s,color .12s;white-space:nowrap}.btn:hover{background:var(--bg-sunken)}.btn[disabled]{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--bg-sunken)}.btn.danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn.sm{height:24px;padding:0 8px;font-size:12px}.btn.icon{padding:0;width:28px;justify-content:center}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;font-family:var(--font-mono);font-size:10.5px;background:var(--bg-sunken);color:var(--text-muted);border:1px solid var(--border);border-bottom-width:2px;border-radius:3px}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:500;background:var(--bg-sunken);color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;flex-shrink:0}.badge.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.badge.danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.badge.info{background:var(--info-soft);color:var(--info);border-color:transparent}.badge.accent{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}[data-theme=dark] .badge.accent{color:var(--accent)}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}.input,.select{height:30px;padding:0 10px;background:var(--panel);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-m);outline:none;width:100%;font-family:inherit;font-size:inherit}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea.input{height:auto;padding:8px 10px;min-height:72px;resize:vertical}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-1)}.scroll::-webkit-scrollbar{width:10px;height:10px}.scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px;border:2px solid transparent;background-clip:padding-box}.scroll::-webkit-scrollbar-track{background:transparent}.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.tbl thead th{position:sticky;top:0;z-index:1;background:var(--bg);color:var(--text-muted);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:8px 12px;border-bottom:1px solid var(--border)}.tbl tbody td{padding:0 12px;height:var(--row-h);border-bottom:1px solid var(--border);vertical-align:middle}.tbl tbody tr{cursor:pointer;transition:background .08s}.tbl tbody tr:hover{background:var(--bg-sunken)}.tbl tbody tr.selected{background:var(--accent-soft)}.tbl tbody tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.nav-item{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--radius-m);color:var(--text-muted);cursor:pointer;font-weight:500;transition:background .1s,color .1s}.nav-item:hover{background:var(--bg-sunken);color:var(--text)}.nav-item.active{background:var(--accent-soft);color:var(--accent-ink)}[data-theme=dark] .nav-item.active{color:var(--accent)}.seg{display:inline-flex;background:var(--bg-sunken);border-radius:var(--radius-m);padding:2px;gap:2px;border:1px solid var(--border)}.seg button{border:0;background:transparent;color:var(--text-muted);height:24px;padding:0 10px;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500}.seg button.on{background:var(--panel);color:var(--text);box-shadow:var(--shadow-1)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);padding:0 4px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{height:6px}.tabs::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.tab{padding:10px 14px;cursor:pointer;font-weight:500;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px;font-size:13px;display:inline-flex;align-items:center;gap:6px;flex-shrink:0;white-space:nowrap}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-color:var(--accent)}.kv{display:grid;grid-template-columns:minmax(110px,max-content) minmax(0,1fr);row-gap:10px;column-gap:16px}.kv dt{color:var(--text-muted);font-size:12px}.kv dd{margin:0;min-width:0;color:var(--text);font-size:13px;word-break:break-word;overflow-wrap:anywhere}.bar{height:6px;background:var(--bg-sunken);border-radius:999px;overflow:hidden;position:relative}.bar>i{display:block;height:100%;background:var(--accent);border-radius:999px}.bar.warn>i{background:var(--warn)}.bar.danger>i{background:var(--danger)}.avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--accent-soft),var(--accent));color:#fff;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#08100f73;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:40;animation:fade .12s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes popup{0%{transform:translateY(-6px);opacity:0}to{transform:none;opacity:1}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
