:root{--bg: #0a0b0d;--bg-elev: #111214;--bg-elev-2: #17181b;--bg-hover: #1c1d21;--line: #23252a;--line-soft: #1a1b1f;--text: #f2f3f5;--text-2: #b8bcc2;--text-3: #7a7f88;--text-4: #4a4e57;--accent: oklch(.84 .19 145);--accent-dim: oklch(.84 .19 145 / .14);--accent-line: oklch(.84 .19 145 / .35);--accent-ink: #07180e;--down: oklch(.72 .18 25);--down-dim: oklch(.72 .18 25 / .14);--warn: oklch(.85 .15 85);--info: oklch(.78 .13 230);--violet: oklch(.74 .17 295);--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-xl: 20px;--shadow-sm: 0 1px 0 rgba(255,255,255,.03), 0 1px 2px rgba(0,0,0,.4);--shadow: 0 2px 0 rgba(255,255,255,.02), 0 8px 24px rgba(0,0,0,.45);--shadow-lg: 0 2px 0 rgba(255,255,255,.02), 0 24px 64px rgba(0,0,0,.55);--font-sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-display: "Geist", ui-sans-serif, system-ui, sans-serif}:root[data-theme=light]{--bg: #f7f7f5;--bg-elev: #ffffff;--bg-elev-2: #fafaf8;--bg-hover: #eeeeeb;--line: #e3e3df;--line-soft: #ececea;--text: #0d0e10;--text-2: #3f4249;--text-3: #72767e;--text-4: #a8acb3;--accent: oklch(.58 .18 145);--accent-dim: oklch(.58 .18 145 / .12);--accent-line: oklch(.58 .18 145 / .35);--accent-ink: #ffffff;--down: oklch(.55 .22 25);--down-dim: oklch(.55 .22 25 / .1);--shadow-sm: 0 1px 2px rgba(10,10,10,.06);--shadow: 0 4px 16px rgba(10,10,10,.08);--shadow-lg: 0 12px 40px rgba(10,10,10,.1)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:14px;line-height:1.5;min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select,textarea{font-family:inherit;color:inherit}a{color:inherit;text-decoration:none}code,kbd,pre,.mono{font-family:var(--font-mono);font-feature-settings:"zero","ss01"}.tk-mono{font-family:var(--font-mono);letter-spacing:-.01em}.tk-muted{color:var(--text-2)}.tk-dim{color:var(--text-3)}.tk-xs{font-size:11px}.tk-sm{font-size:12px}.tk-md{font-size:14px}.tk-lg{font-size:16px}.tk-xl{font-size:20px}.tk-2xl{font-size:28px;letter-spacing:-.02em}.tk-3xl{font-size:40px;letter-spacing:-.03em;line-height:1.05}.tk-4xl{font-size:56px;letter-spacing:-.035em;line-height:1}.tk-5xl{font-size:80px;letter-spacing:-.04em;line-height:.96;font-weight:500}.tk-display{font-family:var(--font-display);font-weight:500;letter-spacing:-.03em}.tk-up{color:var(--accent)}.tk-down{color:var(--down)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 14px;border-radius:var(--radius);font-size:13px;font-weight:500;letter-spacing:-.005em;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .05s ease;white-space:nowrap}.btn:active{transform:translateY(.5px)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:oklch(from var(--accent) calc(l + .04) c h)}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--line)}.btn-ghost:hover{background:var(--bg-hover)}.btn-secondary{background:var(--bg-elev-2);color:var(--text);border:1px solid var(--line)}.btn-secondary:hover{background:var(--bg-hover)}.btn-danger{background:var(--down-dim);color:var(--down);border:1px solid oklch(from var(--down) l c h / .3)}.btn-danger:hover{background:oklch(from var(--down) l c h / .2)}.btn-sm{height:28px;padding:0 10px;font-size:12px;border-radius:7px}.btn-lg{height:44px;padding:0 18px;font-size:14px}.btn-icon{width:32px;height:32px;padding:0}.card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius)}.input,.select{height:36px;background:var(--bg-elev-2);border:1px solid var(--line);border-radius:var(--radius);padding:0 12px;font-size:13px;color:var(--text);outline:none;transition:border-color .15s ease,background .15s ease;width:100%}.input:focus,.select:focus{border-color:var(--accent-line);background:var(--bg-elev)}.input::placeholder{color:var(--text-4)}.input-lg{height:44px;font-size:14px}.label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:6px;font-weight:500}.badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:500;background:var(--bg-elev-2);border:1px solid var(--line);color:var(--text-2)}.badge-dot{width:6px;height:6px;border-radius:50%;background:var(--text-3)}.badge-accent{background:var(--accent-dim);border-color:var(--accent-line);color:var(--accent)}.badge-accent .badge-dot{background:var(--accent);box-shadow:0 0 8px var(--accent)}.badge-down{background:var(--down-dim);border-color:oklch(from var(--down) l c h / .3);color:var(--down)}.badge-warn{background:oklch(from var(--warn) l c h / .14);border-color:oklch(from var(--warn) l c h / .3);color:var(--warn)}.badge-info{background:oklch(from var(--info) l c h / .14);border-color:oklch(from var(--info) l c h / .3);color:var(--info)}.badge-violet{background:oklch(from var(--violet) l c h / .14);border-color:oklch(from var(--violet) l c h / .3);color:var(--violet)}.row{display:flex}.col{display:flex;flex-direction:column}.grow{flex:1;min-width:0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line);border-radius:10px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--text-4)}@keyframes pulse-accent{0%,to{background:var(--accent-dim)}50%{background:oklch(from var(--accent) l c h / .28)}}@keyframes flash-up{0%{background:var(--accent-dim);color:var(--accent)}to{background:transparent;color:inherit}}@keyframes flash-down{0%{background:var(--down-dim);color:var(--down)}to{background:transparent;color:inherit}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.spinner{width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.hr{height:1px;background:var(--line);border:none;margin:0}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:10px 14px;border-bottom:1px solid var(--line);background:var(--bg-elev-2)}.tbl td{padding:12px 14px;border-bottom:1px solid var(--line-soft);vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl tr:hover td{background:var(--bg-elev-2)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line)}.tab{padding:10px 14px;font-size:13px;color:var(--text-3);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--bg-elev-2);border:1px solid var(--line);font-size:12px;color:var(--text-2)}.chip-active{background:var(--accent-dim);border-color:var(--accent-line);color:var(--accent)}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:var(--bg-elev-2);border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;font-size:10.5px;color:var(--text-2)}.codeblock{background:var(--bg-elev-2);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;font-family:var(--font-mono);font-size:12.5px;line-height:1.65;color:var(--text-2);overflow-x:auto;position:relative}.codeblock .tok-k{color:var(--violet)}.codeblock .tok-s{color:var(--accent)}.codeblock .tok-n{color:var(--warn)}.codeblock .tok-c{color:var(--text-4)}.codeblock .tok-p{color:var(--text)}:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px;border-radius:6px}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.app-public{display:block;min-height:100vh}.sidebar{background:var(--bg-elev);border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar-brand{padding:16px 18px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);height:56px}.sidebar-nav{flex:1;overflow-y:auto;padding:10px 8px}.sidebar-section{padding:14px 10px 6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-4);font-weight:600}.nav-link{display:flex;align-items:center;gap:10px;padding:7px 10px;margin-bottom:1px;border-radius:7px;color:var(--text-2);font-size:13px;transition:background .12s,color .12s;cursor:pointer}.nav-link:hover{background:var(--bg-hover);color:var(--text)}.nav-link.active{background:var(--bg-elev-2);color:var(--text)}.nav-link.active .nav-ico{color:var(--accent)}.nav-ico{width:16px;height:16px;display:flex;align-items:center;justify-content:center;color:var(--text-3)}.nav-badge{margin-left:auto;font-size:10px;color:var(--text-3);font-family:var(--font-mono)}.sidebar-footer{border-top:1px solid var(--line);padding:10px}.topbar{height:56px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 22px;gap:14px;background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.topbar-search{flex:1;max-width:420px;position:relative}.topbar-search .input{padding-left:36px;height:34px;background:var(--bg-elev)}.topbar-search-ico{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-3)}.topbar-spacer{flex:1}.main{min-width:0}.content{padding:28px 32px 80px;max-width:1400px;margin:0 auto}.content-narrow{max-width:880px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;gap:24px}.page-head h1{margin:0;font-size:22px;font-weight:500;letter-spacing:-.02em}.page-head p{margin:4px 0 0;color:var(--text-3);font-size:13px}.page-head-actions{display:flex;gap:8px}@media(max-width:860px){.app{grid-template-columns:1fr}.sidebar{display:none}.content{padding:18px 16px 80px}}
