:root{--bg: #0a0c11;--bg-elevated: #0f121a;--surface: #12151f;--surface-2: #171b27;--surface-3: #1d2230;--border: #232838;--border-strong: #2f3648;--text: #e8eaf0;--text-muted: #939cb0;--text-faint: #646d80;--accent: #6d7cff;--accent-hover: #8590ff;--accent-soft: rgba(109, 124, 255, .14);--accent-border: rgba(109, 124, 255, .32);--cyan: #35c6e0;--success: #35d39a;--success-soft: rgba(53, 211, 154, .13);--warning: #f0b45f;--warning-soft: rgba(240, 180, 95, .14);--danger: #f4696b;--danger-soft: rgba(244, 105, 107, .14);--info: #5fb3f0;--info-soft: rgba(95, 179, 240, .14);--blue-slot: #5b8dee;--green-slot: #35d39a;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-xl: 20px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 4px 16px -4px rgba(0, 0, 0, .5);--shadow-lg: 0 24px 48px -12px rgba(0, 0, 0, .65);--sidebar-w: 244px;--topbar-h: 60px;--page-max: 1360px;--font: "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--mono: "JetBrains Mono", "SFMono-Regular", ui-monospace, "Cascadia Mono", Menlo, Consolas, monospace;--ease: cubic-bezier(.22, .61, .36, 1);color-scheme:dark}:root[data-theme=light]{--bg: #f6f7fa;--bg-elevated: #ffffff;--surface: #ffffff;--surface-2: #f4f5f8;--surface-3: #eceef3;--border: #e3e6ee;--border-strong: #cfd4e0;--text: #131722;--text-muted: #5c6478;--text-faint: #8b93a5;--accent: #5561f0;--accent-hover: #4450e0;--accent-soft: rgba(85, 97, 240, .1);--accent-border: rgba(85, 97, 240, .28);--cyan: #1a9fbb;--success: #14a06e;--success-soft: rgba(20, 160, 110, .11);--warning: #c07f16;--warning-soft: rgba(192, 127, 22, .12);--danger: #d93f42;--danger-soft: rgba(217, 63, 66, .1);--info: #2b7fc4;--info-soft: rgba(43, 127, 196, .11);--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow: 0 4px 16px -6px rgba(16, 24, 40, .14);--shadow-lg: 0 24px 48px -16px rgba(16, 24, 40, .22);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","tnum"}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.015em}h1{font-size:1.4rem}h2{font-size:1.05rem}h3{font-size:.9rem}p{margin:0}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}code,pre,.mono{font-family:var(--mono);font-size:.85em}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px;border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background-clip:content-box;background-color:var(--text-faint)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:clip}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border)}.card-head h2{font-size:.9rem;letter-spacing:.01em}.card-body{padding:18px}.card-body.flush{padding:0}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.tnum{font-variant-numeric:tabular-nums}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1 1 auto;min-width:0}.gap-2{gap:2px}.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-14{gap:14px}.gap-16{gap:16px}.gap-20{gap:20px}.gap-24{gap:24px}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.btn{--btn-bg: var(--surface-2);--btn-fg: var(--text);--btn-border: var(--border);display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;height:34px;border-radius:var(--radius);border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-fg);font:inherit;font-size:.82rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .14s var(--ease),border-color .14s var(--ease),transform .08s var(--ease),opacity .14s var(--ease)}.btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--border-strong)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{--btn-bg: var(--accent);--btn-fg: #fff;--btn-border: transparent;box-shadow:var(--shadow-sm)}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:transparent}.btn.danger{--btn-fg: var(--danger);--btn-border: var(--danger-soft)}.btn.danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn.ghost{--btn-bg: transparent;--btn-border: transparent;color:var(--text-muted)}.btn.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn.sm{height:28px;padding:0 10px;font-size:.76rem;border-radius:var(--radius-sm)}.btn.icon{width:34px;padding:0}.btn.icon.sm{width:28px}.btn.block{width:100%}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:.78rem;font-weight:500;color:var(--text-muted)}.field>.hint{font-size:.74rem;color:var(--text-faint)}.field>.error{font-size:.74rem;color:var(--danger)}.input,.select,.textarea{width:100%;padding:8px 11px;min-height:34px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font:inherit;font-size:.85rem;transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input.mono,.textarea.mono{font-family:var(--mono);font-size:.8rem}.textarea{min-height:90px;resize:vertical;line-height:1.5}.select{appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--text-faint) 50%),linear-gradient(135deg,var(--text-faint) 50%,transparent 50%);background-position:right 14px center,right 9px center;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.switch{position:relative;display:inline-flex;align-items:center;gap:9px;cursor:pointer}.switch input{position:absolute;opacity:0;width:0;height:0}.switch .track{width:34px;height:20px;border-radius:99px;background:var(--surface-3);border:1px solid var(--border);transition:background .18s var(--ease),border-color .18s var(--ease);flex:none}.switch .track:after{content:"";display:block;width:14px;height:14px;margin:2px;border-radius:99px;background:var(--text-muted);transition:transform .18s var(--ease),background .18s var(--ease)}.switch input:checked+.track{background:var(--accent);border-color:var(--accent)}.switch input:checked+.track:after{transform:translate(14px);background:#fff}.switch input:focus-visible+.track{box-shadow:0 0 0 3px var(--accent-soft)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;height:21px;border-radius:99px;font-size:.72rem;font-weight:500;letter-spacing:.01em;background:var(--surface-2);color:var(--text-muted);border:1px solid transparent;white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:99px;background:currentColor;flex:none}.badge.success{background:var(--success-soft);color:var(--success)}.badge.warning{background:var(--warning-soft);color:var(--warning)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.accent{background:var(--accent-soft);color:var(--accent)}.badge.neutral{background:var(--surface-3);color:var(--text-muted)}.badge.pulse .dot{animation:pulse 1.6s var(--ease) infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);font-size:.76rem;color:var(--text-muted)}.table{width:100%;border-collapse:collapse;font-size:.84rem}.table thead th{text-align:left;padding:9px 18px;font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);border-bottom:1px solid var(--border);background:var(--surface-2);position:sticky;top:0;z-index:1}.table tbody td{padding:11px 18px;border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr.clickable{cursor:pointer;transition:background .12s var(--ease)}.table tbody tr.clickable:hover{background:var(--surface-2)}.table td.right,.table th.right{text-align:right}.table td.shrink{width:1%;white-space:nowrap}.divider{height:1px;background:var(--border);border:0;margin:0}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 24px;text-align:center;color:var(--text-muted)}.empty .glyph{width:44px;height:44px;border-radius:var(--radius-lg);display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);color:var(--text-faint)}.empty h3{color:var(--text);font-size:.95rem}.empty p{max-width:34ch;font-size:.84rem}.spinner{width:15px;height:15px;flex:none;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:99px;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite;border-radius:var(--radius-sm)}@keyframes shimmer{to{background-position:-200% 0}}.progress{height:4px;background:var(--surface-3);border-radius:99px;overflow:hidden}.progress>span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--cyan));transition:width .5s var(--ease)}.slot-dot{width:8px;height:8px;border-radius:99px;flex:none}.slot-dot.blue{background:var(--blue-slot);box-shadow:0 0 0 3px #5b8dee29}.slot-dot.green{background:var(--green-slot);box-shadow:0 0 0 3px #35d39a29}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.animate-in{animation:fade-up .28s var(--ease) both}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.hljs-comment,.hljs-quote{color:#7d8590;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-template-tag{color:#ff7b72}.hljs-string,.hljs-regexp,.hljs-addition{color:#a5d6ff}.hljs-number,.hljs-literal{color:#79c0ff}.hljs-title,.hljs-title.function_,.hljs-section{color:#d2a8ff}.hljs-title.class_,.hljs-type,.hljs-built_in{color:#ffa657}.hljs-attr,.hljs-attribute,.hljs-variable,.hljs-template-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-name,.hljs-tag{color:#7ee787}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta{color:#f2cc60}.hljs-deletion{color:#ffa198}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:600}:root[data-theme=light] .hljs-comment,:root[data-theme=light] .hljs-quote{color:#6e7781}:root[data-theme=light] .hljs-keyword,:root[data-theme=light] .hljs-selector-tag,:root[data-theme=light] .hljs-template-tag{color:#cf222e}:root[data-theme=light] .hljs-string,:root[data-theme=light] .hljs-regexp,:root[data-theme=light] .hljs-addition{color:#0a3069}:root[data-theme=light] .hljs-number,:root[data-theme=light] .hljs-literal{color:#0550ae}:root[data-theme=light] .hljs-title,:root[data-theme=light] .hljs-title.function_,:root[data-theme=light] .hljs-section{color:#8250df}:root[data-theme=light] .hljs-title.class_,:root[data-theme=light] .hljs-type,:root[data-theme=light] .hljs-built_in{color:#953800}:root[data-theme=light] .hljs-attr,:root[data-theme=light] .hljs-attribute,:root[data-theme=light] .hljs-variable,:root[data-theme=light] .hljs-template-variable,:root[data-theme=light] .hljs-selector-attr,:root[data-theme=light] .hljs-selector-class,:root[data-theme=light] .hljs-selector-id{color:#0550ae}:root[data-theme=light] .hljs-name,:root[data-theme=light] .hljs-tag{color:#116329}:root[data-theme=light] .hljs-symbol,:root[data-theme=light] .hljs-bullet,:root[data-theme=light] .hljs-link,:root[data-theme=light] .hljs-meta{color:#9a6700}:root[data-theme=light] .hljs-deletion{color:#82071e}
