[data-accent=indigo]{--accent-h: 286}[data-accent=violet]{--accent-h: 312}[data-accent=emerald]{--accent-h: 168}[data-accent=amber]{--accent-h: 58}[data-font=jakarta]{--font-ui: "Plus Jakarta Sans", system-ui, sans-serif}[data-font=inter]{--font-ui: "Inter", system-ui, sans-serif}[data-font=plex]{--font-ui: "IBM Plex Sans", system-ui, sans-serif}[data-font=system]{--font-ui: system-ui, -apple-system, sans-serif}.theme-light,.theme-dark{--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace}.theme-light,.theme-dark{--r-card: 20px;--r-card-sm: 16px;--r-btn: 10px;--r-chip: 11px;--r-field: 12px}[data-density=compact]{--row-h: 42px;--cell-py: 9px;--tbl-fs: 13px;--pad-card: 20px}[data-density=comfortable]{--row-h: 54px;--cell-py: 13px;--tbl-fs: 13.5px;--pad-card: 24px}.theme-light{--bg: #f3f3f7;--surface: #ffffff;--surface-2: #f6f6fa;--surface-3: #eeeef4;--border: #ececf2;--border-2: #e2e2ea;--text: #1a1a22;--text-2: #71717f;--text-3: #a3a3b1;--accent: oklch(.62 .193 var(--accent-h));--accent-hover: oklch(.575 .193 var(--accent-h));--accent-fg: #ffffff;--accent-soft: oklch(.955 .03 var(--accent-h));--accent-soft-b: oklch(.9 .055 var(--accent-h));--accent-text: oklch(.56 .19 var(--accent-h));--accent-glow: oklch(.62 .193 var(--accent-h) / .32);--accent-grad: linear-gradient(100deg, oklch(.715 .15 var(--accent-h)), oklch(.62 .193 var(--accent-h)) 55%, oklch(.52 .205 var(--accent-h)));--ring: oklch(.62 .193 var(--accent-h) / .28);--ink-btn: #1c1c24;--ink-btn-fg: #ffffff;--shadow-sm: 0 2px 8px rgba(24,24,45,.04);--shadow: 0 6px 24px rgba(24,24,45,.05), 0 1px 2px rgba(24,24,45,.03);--shadow-lg: 0 18px 48px rgba(24,24,45,.14), 0 4px 12px rgba(24,24,45,.07);--ok-bg: oklch(.945 .05 158);--ok-tx: oklch(.5 .13 158);--ok-dot: oklch(.64 .16 158);--warn-bg: oklch(.955 .06 78);--warn-tx: oklch(.55 .12 64);--warn-dot: oklch(.76 .15 75);--bad-bg: oklch(.953 .04 22);--bad-tx: oklch(.58 .18 22);--bad-dot: oklch(.66 .2 24);--info-bg: oklch(.953 .04 286);--info-tx: oklch(.56 .16 286);--info-dot: oklch(.62 .19 286);--neu-bg: #f0f0f5;--neu-tx: #6a6a78;--neu-dot: #b0b0bd}.theme-dark{--bg: #121217;--surface: #1c1c23;--surface-2: #24242d;--surface-3: #2c2c36;--border: #2a2a33;--border-2: #34343f;--text: #f3f3f7;--text-2: #9595a4;--text-3: #62626f;--accent: oklch(.665 .175 var(--accent-h));--accent-hover: oklch(.715 .175 var(--accent-h));--accent-fg: #ffffff;--accent-soft: oklch(.33 .075 var(--accent-h));--accent-soft-b: oklch(.42 .095 var(--accent-h));--accent-text: oklch(.815 .11 var(--accent-h));--accent-glow: oklch(.62 .193 var(--accent-h) / .4);--accent-grad: linear-gradient(100deg, oklch(.73 .14 var(--accent-h)), oklch(.64 .185 var(--accent-h)) 55%, oklch(.56 .2 var(--accent-h)));--ring: oklch(.665 .175 var(--accent-h) / .4);--ink-btn: #2a2a34;--ink-btn-fg: #f3f3f7;--shadow-sm: 0 2px 8px rgba(0,0,0,.3);--shadow: 0 8px 28px rgba(0,0,0,.35), 0 1px 2px rgba(0,0,0,.3);--shadow-lg: 0 22px 56px rgba(0,0,0,.55), 0 4px 12px rgba(0,0,0,.4);--ok-bg: oklch(.33 .06 158);--ok-tx: oklch(.84 .12 158);--ok-dot: oklch(.7 .15 158);--warn-bg: oklch(.35 .06 70);--warn-tx: oklch(.86 .12 80);--warn-dot: oklch(.78 .15 75);--bad-bg: oklch(.34 .07 22);--bad-tx: oklch(.82 .13 22);--bad-dot: oklch(.66 .2 24);--info-bg: oklch(.34 .06 286);--info-tx: oklch(.84 .11 286);--info-dot: oklch(.68 .16 286);--neu-bg: #2a2a33;--neu-tx: #9a9aa8;--neu-dot: #55555f}.app-root{font-family:var(--font-ui);background:var(--bg);color:var(--text);height:100%;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:-.011em}.app-root *,.app-root *:before,.app-root *:after{box-sizing:border-box}.app-root ::selection{background:var(--accent-soft)}.mono{font-family:var(--font-mono);font-feature-settings:"tnum";letter-spacing:0}.tnum{font-variant-numeric:tabular-nums}.app-root *::-webkit-scrollbar{width:10px;height:10px}.app-root *::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:8px;border:3px solid transparent;background-clip:padding-box}.app-root *::-webkit-scrollbar-thumb:hover{background:var(--text-3);background-clip:padding-box}.app-root *::-webkit-scrollbar-track{background:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r-btn);font-size:13px;font-weight:600;line-height:1;letter-spacing:-.006em;border:1px solid var(--border-2);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background .13s ease,border-color .13s ease,color .13s ease,box-shadow .13s ease}.btn:hover{background:var(--surface-2);border-color:var(--text-3)}.btn:active{background:var(--surface-3)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;box-shadow:none;pointer-events:none}.btn svg{width:16px;height:16px}.btn-sm{height:30px;padding:0 10px;font-size:12.5px;border-radius:8px;gap:6px}.btn-sm svg{width:15px;height:15px}.btn-lg{height:42px;padding:0 18px;font-size:14px;border-radius:12px}.btn-icon{width:36px;padding:0}.btn-icon.btn-sm{width:30px}.btn-icon.btn-lg{width:42px}.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);box-shadow:0 1px 2px #14142d24,inset 0 1px #ffffff1f}.btn-accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-accent:active{background:var(--accent-hover);box-shadow:0 1px 1px #14142d29}.btn-accent:focus-visible{box-shadow:0 0 0 3px var(--ring)}.btn-soft{background:var(--accent-soft);border-color:transparent;color:var(--accent-text)}.btn-soft:hover{background:var(--accent-soft-b);border-color:transparent;color:var(--accent-text)}.btn-soft:active{background:var(--accent-soft-b)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--surface-2);border-color:transparent;color:var(--text)}.btn-ghost:active{background:var(--surface-3)}.btn-danger{background:var(--bad-dot);border-color:var(--bad-dot);color:#fff;box-shadow:0 1px 2px #14142d24,inset 0 1px #ffffff24}.btn-danger:hover{filter:brightness(.94);border-color:var(--bad-dot)}.btn-danger:active{filter:brightness(.9)}.btn-danger:focus-visible{box-shadow:0 0 0 3px var(--bad-bg)}.btn-danger-soft{background:var(--bad-bg);border-color:transparent;color:var(--bad-tx)}.btn-danger-soft:hover{background:var(--bad-bg);filter:brightness(.97);color:var(--bad-tx)}.btn-group{display:inline-flex}.btn-group>.btn{border-radius:0;margin-left:-1px}.btn-group>.btn:first-child{border-top-left-radius:var(--r-btn);border-bottom-left-radius:var(--r-btn);margin-left:0}.btn-group>.btn:last-child{border-top-right-radius:var(--r-btn);border-bottom-right-radius:var(--r-btn)}.btn-group>.btn:hover{z-index:1}.btn-group>.btn-accent+.btn-accent{border-left-color:#ffffff38}.icon-circle{width:40px;height:40px;border-radius:50%;border:none;flex-shrink:0;background:var(--ink-btn);color:var(--ink-btn-fg);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .14s,box-shadow .14s;position:relative}.icon-circle:hover{box-shadow:0 0 0 4px var(--surface-2)}.icon-circle:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}.icon-circle svg{width:18px;height:18px}.input{height:38px;padding:0 13px;border-radius:var(--r-field);border:1px solid var(--border-2);background:var(--surface);color:var(--text);font-size:13.5px;font-family:var(--font-ui);width:100%;transition:border-color .14s,box-shadow .14s}.input::placeholder{color:var(--text-3)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}.searchbox{display:flex;align-items:center;gap:9px;height:40px;padding:0 13px;border-radius:var(--r-field);border:1px solid var(--border-2);background:var(--surface);transition:border-color .14s,box-shadow .14s}.searchbox:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}.searchbox input{border:none;background:none;outline:none;flex:1;font-size:13.5px;color:var(--text);font-family:var(--font-ui);min-width:0}.searchbox input::placeholder{color:var(--text-3)}.searchbox svg{width:17px;height:17px;color:var(--text-3);flex-shrink:0}kbd,.kbd{font-family:var(--font-mono);font-size:11px;line-height:1;padding:3px 5px;border-radius:6px;border:1px solid var(--border-2);background:var(--surface-2);color:var(--text-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow)}.card-pad{padding:var(--pad-card)}.chip-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-chip);padding:13px;text-align:center}.chip-box .v{font-size:15px;font-weight:700;letter-spacing:-.02em}.chip-box .k{font-size:11px;color:var(--text-3);margin-top:3px}.badge{display:inline-flex;align-items:center;gap:5px;height:23px;padding:0 9px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:-.005em;white-space:nowrap;background:var(--neu-bg);color:var(--neu-tx)}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}.badge.ok{background:var(--ok-bg);color:var(--ok-tx)}.badge.warn{background:var(--warn-bg);color:var(--warn-tx)}.badge.bad{background:var(--bad-bg);color:var(--bad-tx)}.badge.info{background:var(--info-bg);color:var(--info-tx)}.badge.accent{background:var(--accent-soft);color:var(--accent-text)}.badge.ok .dot{background:var(--ok-dot)}.badge.warn .dot{background:var(--warn-dot)}.badge.bad .dot{background:var(--bad-dot)}.badge.info .dot{background:var(--info-dot)}.badge.outline{background:transparent;border:1px solid var(--border-2);color:var(--text-2)}.chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border-radius:10px;border:1px solid var(--border-2);background:var(--surface);font-size:12.5px;font-weight:500;color:var(--text-2);cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}.chip:hover{background:var(--surface-2);color:var(--text)}.chip.active{background:var(--accent-soft);border-color:var(--accent-soft-b);color:var(--accent-text)}.chip svg{width:14px;height:14px}.chip .x{opacity:.6}.chip .x:hover{opacity:1}.avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;letter-spacing:-.02em}.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--tbl-fs)}.tbl thead th{position:sticky;top:0;z-index:2;text-align:left;font-weight:600;font-size:11.5px;letter-spacing:.01em;color:var(--text-3);text-transform:uppercase;padding:11px 14px;background:var(--surface);border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;user-select:none}.tbl thead th.sortable{cursor:pointer}.tbl thead th.sortable:hover{color:var(--text)}.tbl tbody td{padding:var(--cell-py) 14px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.tbl tbody tr{transition:background .1s}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr:hover{background:var(--surface-2)}.tbl tbody tr.sel{background:var(--accent-soft)}.tbl tbody tr.sel:hover{background:var(--accent-soft);filter:brightness(.99)}.tbl .col-check{width:40px;padding-left:16px}.tbl .col-kebab{width:40px}.cbx{width:17px;height:17px;border-radius:6px;border:1.5px solid var(--border-2);background:var(--surface);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .1s,border-color .1s;flex-shrink:0}.cbx:hover{border-color:var(--accent)}.cbx.on{background:var(--accent);border-color:var(--accent)}.cbx.on svg{width:11px;height:11px;color:#fff}.cbx.mixed{background:var(--accent);border-color:var(--accent)}.switch{width:38px;height:22px;border-radius:999px;background:var(--border-2);position:relative;cursor:pointer;transition:background .15s;flex-shrink:0}.switch.on{background:var(--accent)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .16s cubic-bezier(.4,0,.2,1)}.switch.on:after{transform:translate(16px)}.switch.locked{opacity:.45;cursor:not-allowed}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:3px;gap:2px}.seg button{height:28px;padding:0 12px;border:none;background:none;border-radius:8px;font-size:12.5px;font-weight:600;color:var(--text-2);cursor:pointer;font-family:var(--font-ui);transition:all .12s;display:inline-flex;align-items:center;gap:5px}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.menu{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);padding:6px;min-width:180px}.menu-item{display:flex;align-items:center;gap:10px;height:36px;padding:0 11px;border-radius:10px;font-size:13px;font-weight:500;color:var(--text);cursor:pointer;white-space:nowrap}.menu-item:hover{background:var(--surface-2)}.menu-item svg{width:16px;height:16px;color:var(--text-2)}.menu-item.danger{color:var(--bad-tx)}.menu-item.danger svg{color:var(--bad-tx)}.menu-sep{height:1px;background:var(--border);margin:5px 0}.menu-label{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-3);padding:8px 11px 5px;font-weight:700}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.divider{height:1px;background:var(--border)}.vdiv{width:1px;background:var(--border);align-self:stretch}.meter{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.meter>span{display:block;height:100%;border-radius:999px;background:var(--accent-grad)}.ev-tab{display:inline-flex;align-items:center;gap:7px;height:46px;padding:0 15px;border:none;background:none;font-family:var(--font-ui);font-size:13.5px;font-weight:600;color:var(--text-2);cursor:pointer;white-space:nowrap;border-bottom:2.5px solid transparent;margin-bottom:-1px;transition:color .12s;letter-spacing:-.01em}.ev-tab:hover{color:var(--text)}.ev-tab[data-on=true]{color:var(--accent-text);border-bottom-color:var(--accent)}.ev-tab svg{opacity:.85}.vnav-item{display:flex;align-items:center;gap:11px;height:40px;padding:0 12px;border:none;background:none;border-radius:12px;font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer;white-space:nowrap;transition:background .14s,color .14s,box-shadow .14s;width:100%}.vnav-item:hover{background:var(--surface-2);color:var(--text)}.vnav-item[data-sub=true]:hover{background:var(--surface-3);color:var(--text)}.vnav-item.on{background:var(--accent-grad);color:#fff;box-shadow:0 8px 18px var(--accent-glow);font-weight:600}.vnav-item.on svg{opacity:1}.vnav-item svg{opacity:.9}.brand-mark{position:relative;border-radius:9px;background:conic-gradient(from 140deg,oklch(.73 .14 var(--accent-h)),oklch(.62 .19 var(--accent-h)),oklch(.52 .2 var(--accent-h)))}.brand-mark:after{content:"";position:absolute;top:30%;right:30%;bottom:30%;left:30%;border-radius:50%;background:var(--surface)}.rail-app{display:flex;height:100%;min-height:0;background:var(--bg)}.rail{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}.rail-wide{width:238px;padding:16px 12px}.rail-ico-col{width:66px;padding:16px 0;align-items:center}.rail-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;margin:0 -4px;padding:0 4px}.rail-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.rail-body{flex:1;min-height:0}.rail-topbar{height:62px;display:flex;align-items:center;gap:11px;padding:0 22px;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}.searchbtn{display:flex;align-items:center;gap:9px;height:42px;padding:0 13px;width:320px;border-radius:var(--r-field);border:1px solid var(--border-2);background:var(--surface-2);cursor:pointer;color:var(--text-3);font-family:var(--font-ui);font-size:13.5px;transition:border-color .14s}.searchbtn:hover{border-color:var(--text-3)}.searchbtn svg{color:var(--text-3);flex-shrink:0}.rail-ico{width:44px;height:44px;border-radius:13px;border:none;background:none;color:var(--text-2);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .14s,color .14s,box-shadow .14s}.rail-ico:hover{background:var(--surface-2);color:var(--text)}.rail-ico.on{background:var(--accent-grad);color:#fff;box-shadow:0 8px 18px var(--accent-glow)}.l2strip{display:flex;align-items:center;gap:2px;padding:0 22px;border-bottom:1px solid var(--border);background:var(--surface);overflow-x:auto;flex-shrink:0}@keyframes pop{0%{opacity:0;transform:translateY(4px) scale(.98)}to{opacity:1;transform:none}}.pop{animation:pop .14s cubic-bezier(.2,.8,.2,1)}@keyframes fade{0%{opacity:0}to{opacity:1}}.fade{animation:fade .18s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheetIn{0%{transform:translate(100%)}to{transform:translate(0)}}
