.live-status{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono, "Martian Mono", monospace);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2, #a89e8f)}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--ok, #7bd9a0);flex:none;animation:live-dot-ping 2s ease-out infinite}.live-dot-paused{background:var(--ink-3, #6e665a);animation:none}@keyframes live-dot-ping{0%{box-shadow:0 0 #7bd9a073}70%{box-shadow:0 0 0 7px #7bd9a000}to{box-shadow:0 0 #7bd9a000}}.live-diagram{position:relative;display:grid;grid-template-columns:minmax(110px,.75fr) minmax(140px,1fr) minmax(170px,1.35fr);gap:56px;align-items:stretch;padding:6px 2px 2px}.live-svg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:visible}.live-col{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;gap:10px;min-width:0}.live-link{fill:none;stroke:var(--line-strong, #3d372f);stroke-width:1;stroke-dasharray:3 7;animation:live-dash-flow 9s linear infinite}.live-link-active{stroke:var(--accent, #ffb000);stroke-width:1.6;animation-duration:.7s}.live-link-error{stroke:var(--danger, #ff6b4a);stroke-width:1.6;animation-duration:.7s}@keyframes live-dash-flow{to{stroke-dashoffset:-200}}.live-tile{background:var(--raised, #1e1b17);border:1px solid var(--line, #2a2621);border-radius:10px;padding:12px 14px;min-width:0}.live-tile-name{font-family:var(--font-sans, "Instrument Sans", sans-serif);font-size:13.5px;font-weight:600;color:var(--ink, #efe8dc);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-tile-sub{margin-top:3px;font-size:11.5px;color:var(--ink-3, #6e665a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-tile-meta{display:flex;align-items:center;gap:8px;margin-top:7px}.live-tag{font-family:var(--font-mono, "Martian Mono", monospace);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2, #a89e8f);border:1px solid var(--line-strong, #3d372f);border-radius:6px;padding:2px 6px}.live-count{font-family:var(--font-mono, "Martian Mono", monospace);font-size:11px;color:var(--ink-2, #a89e8f)}.live-tile-hub{border-color:var(--accent-line, rgba(255, 176, 0, .45));background:var(--surface, #161412);text-align:center;padding:18px 14px}.live-hub-name{display:flex;align-items:center;justify-content:center;gap:9px;font-family:var(--font-display, "Fraunces", serif);font-size:21px;font-weight:600;letter-spacing:.01em;color:var(--ink, #efe8dc)}.live-hub-dot{width:9px;height:9px;border-radius:50%;background:var(--accent, #ffb000);flex:none;animation:live-hub-ping 1.8s ease-out infinite}@keyframes live-hub-ping{0%{box-shadow:0 0 #ffb00080;opacity:1}70%{box-shadow:0 0 0 9px #ffb00000;opacity:.85}to{box-shadow:0 0 #ffb00000;opacity:1}}.live-tile-hub .live-tile-sub{text-align:center}.live-flash{animation:live-flash-ok 1.4s ease-out}.live-flash-error{animation:live-flash-err 1.4s ease-out}@keyframes live-flash-ok{0%,35%{border-color:var(--accent, #ffb000);background:var(--accent-soft, rgba(255, 176, 0, .14));box-shadow:0 0 0 1px var(--accent-line, rgba(255, 176, 0, .45))}to{border-color:var(--line, #2a2621);background:var(--raised, #1e1b17);box-shadow:none}}@keyframes live-flash-err{0%,35%{border-color:var(--danger, #ff6b4a);background:#ff6b4a21;box-shadow:0 0 0 1px #ff6b4a73}to{border-color:var(--line, #2a2621);background:var(--raised, #1e1b17);box-shadow:none}}.live-hint{border:1px dashed var(--line-strong, #3d372f);border-radius:10px;padding:14px;font-size:12.5px;line-height:1.55;color:var(--ink-3, #6e665a);background:var(--sunken, #0a0908)}.live-log{margin-top:18px;border-top:1px solid var(--line, #2a2621);padding-top:6px}.live-log-head,.live-row{display:grid;grid-template-columns:72px minmax(130px,1.6fr) minmax(90px,1fr) minmax(90px,1fr) auto 64px 82px;gap:12px;align-items:center}.live-log-head{padding:6px 2px 2px;font-family:var(--font-mono, "Martian Mono", monospace);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3, #6e665a)}.live-row{padding:7px 2px;border-top:1px solid var(--line, #2a2621);font-size:12.5px;color:var(--ink, #efe8dc)}.live-log-head+.live-row{border-top:none}.live-cell{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-time{font-family:var(--font-mono, "Martian Mono", monospace);font-size:11.5px;color:var(--ink-2, #a89e8f)}.live-model{font-family:var(--font-mono, "Martian Mono", monospace);font-size:12px}.live-provider{color:var(--ink, #efe8dc)}.live-conn{color:var(--ink-3, #6e665a)}.live-tokens{font-family:var(--font-mono, "Martian Mono", monospace);font-size:11.5px;color:var(--ink-2, #a89e8f);text-align:right}.live-endpoint{font-family:var(--font-mono, "Martian Mono", monospace);font-size:11.5px;color:var(--ink-3, #6e665a);text-align:right}.live-log-head .live-tokens,.live-log-head .live-endpoint{color:var(--ink-3, #6e665a)}.live-row-enter{animation:live-row-in .5s ease-out}@keyframes live-row-in{0%{opacity:0;transform:translateY(-5px);background:var(--accent-soft, rgba(255, 176, 0, .14))}to{opacity:1;transform:translateY(0);background:transparent}}.live-log-empty{padding:16px 2px 8px;font-size:12.5px;color:var(--ink-3, #6e665a)}@media (max-width: 760px){.live-diagram{grid-template-columns:minmax(78px,.7fr) minmax(104px,.95fr) minmax(118px,1.25fr);gap:24px}.live-tile{padding:10px}.live-hub-name{font-size:16px}.live-log-head,.live-row{grid-template-columns:66px minmax(110px,1.5fr) minmax(70px,1fr) auto 56px}.live-conn,.live-endpoint{display:none}}@media (prefers-reduced-motion: reduce){.live-link,.live-dot,.live-hub-dot,.live-flash,.live-flash-error,.live-row-enter{animation:none}}:root{color-scheme:dark;--bg: #0f0e0c;--grid: rgb(255 236 200 / .032);--surface: #161412;--raised: #1e1b17;--sunken: #0a0908;--line: #2a2621;--line-strong: #3d372f;--ink: #efe8dc;--ink-2: #a89e8f;--ink-3: #6e665a;--accent: #ffb000;--accent-ink: #1a1305;--accent-soft: color-mix(in oklab, var(--accent) 14%, transparent);--accent-line: color-mix(in oklab, var(--accent) 45%, transparent);--ok: #7bd9a0;--danger: #ff6b4a;--warn: #ffcf5c;--shadow: 0 18px 50px -12px rgb(0 0 0 / .75), 0 0 0 1px rgb(0 0 0 / .4);--scrim: rgb(6 5 4 / .72);--font-display: "Fraunces", Georgia, serif;--font-sans: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "Martian Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius-ctl: 6px;--radius-card: 10px;--radius-sheet: 14px;--bg-2: var(--sunken);--panel: var(--surface);--panel-2: var(--raised);--panel-solid: var(--surface);--border: var(--line);--border-strong: var(--line-strong);--text: var(--ink);--text-2: var(--ink-2);--muted: var(--ink-2);--faint: var(--ink-3);--accent-2: var(--accent);--success: var(--ok);--success-bg: color-mix(in oklab, var(--ok) 12%, transparent);--danger-bg: color-mix(in oklab, var(--danger) 12%, transparent);--warn-bg: color-mix(in oklab, var(--warn) 12%, transparent);--blue: #6eb2ff;--blue-bg: color-mix(in oklab, var(--blue) 12%, transparent);--gray-bg: color-mix(in oklab, var(--ink) 10%, transparent);--grad: var(--accent);--grad-soft: var(--accent-soft);--radius: 10px;--radius-sm: 10px;--radius-xs: 6px;--shadow-sm: 0 8px 24px -10px rgb(0 0 0 / .55);--sidebar-w: 248px;--topbar-h: 60px;--font: var(--font-sans);--mono: var(--font-mono);--ease: cubic-bezier(.22, .8, .35, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}html{font-size:14px}body{font-family:var(--font);font-size:14px;line-height:1.55;color:var(--text);background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px),linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;background-position:-1px -1px;background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}button:disabled{cursor:not-allowed}::selection{background:color-mix(in oklab,var(--accent) 35%,transparent);color:var(--ink)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px;border:3px solid transparent;background-clip:content-box}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.page-title{font-family:var(--font-display);font-variation-settings:"opsz" 60;font-size:22px;font-weight:580;letter-spacing:-.012em;line-height:1.16}.page-subtitle{color:var(--muted);font-size:13px;margin-top:4px}.mono{font-family:var(--mono);font-size:12.5px}.muted{color:var(--muted)}.small{font-size:12.5px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.label{font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);line-height:1.2}.app-shell{display:flex;min-height:100vh}.main-col{flex:1;min-width:0;display:flex;flex-direction:column}.page{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:28px 28px 56px;animation:pageIn .28s var(--ease)}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.page-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sidebar{width:var(--sidebar-w);flex-shrink:0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 14px 16px;background:var(--surface);border-right:1px solid var(--line);z-index:30}.brand{display:flex;align-items:center;gap:12px;padding:2px 8px 20px}.brand-tile{width:38px;height:38px;border-radius:10px;flex-shrink:0;background:var(--accent);display:grid;place-items:center;font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--accent-ink);letter-spacing:-.02em}.brand-name{font-family:var(--font-display);font-variation-settings:"opsz" 60;font-size:17px;font-weight:580;letter-spacing:-.012em;line-height:1.15}.brand-sub{font-family:var(--font-mono);font-size:9.5px;color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;font-weight:500}.nav{display:flex;flex-direction:column;gap:2px}.nav-label{font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding:14px 10px 6px}.nav-item{position:relative;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-xs);color:var(--text-2);font-size:13.5px;font-weight:520;border:1px solid transparent;transition:background .12s,color .12s,border-color .12s}.nav-item svg{width:17px;height:17px;flex-shrink:0;opacity:.85}.nav-item:hover{background:color-mix(in oklab,var(--ink) 6%,transparent);color:var(--text);text-decoration:none}.nav-item.active{background:var(--accent-soft);color:var(--accent);border-color:transparent}.nav-item.active:before{content:"";position:absolute;left:-14px;top:7px;bottom:7px;width:2px;border-radius:2px;background:var(--accent)}.nav-item.active svg{opacity:1;color:var(--accent)}.sidebar-foot{margin-top:auto;padding:12px 10px 2px;border-top:1px solid var(--line);color:var(--faint);font-size:11.5px;line-height:1.5}.topbar{height:var(--topbar-h);position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 28px;background:var(--bg);border-bottom:1px solid var(--line)}.topbar-title{font-family:var(--font-display);font-variation-settings:"opsz" 60;font-size:16px;font-weight:580;letter-spacing:-.012em}.topbar-right{display:flex;align-items:center;gap:10px}.chip{display:inline-flex;align-items:center;gap:7px;max-width:320px;padding:5px 11px;border-radius:999px;font-family:var(--mono);font-size:11.5px;color:var(--text-2);background:var(--sunken);border:1px solid var(--line)}.chip .dot{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok);flex-shrink:0}.chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 16px;border-radius:var(--radius-xs);border:1px solid var(--line-strong);background:var(--raised);color:var(--text);font-size:13px;font-weight:540;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background .12s,border-color .12s,color .12s,transform .06s,opacity .15s}.btn:hover{background:var(--raised);border-color:var(--ink-3)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn svg{width:15px;height:15px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:620}.btn-primary:hover{background:color-mix(in oklab,var(--accent) 88%,white);border-color:var(--accent);color:var(--accent-ink)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn-ghost:hover{background:color-mix(in oklab,var(--ink) 7%,transparent);border-color:transparent;color:var(--text)}.btn-danger{background:color-mix(in oklab,var(--danger) 8%,transparent);border-color:color-mix(in oklab,var(--danger) 40%,transparent);color:var(--danger)}.btn-danger:hover{background:color-mix(in oklab,var(--danger) 8%,transparent);border-color:var(--danger)}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:var(--accent-ink);font-weight:620}.btn-danger-solid:hover{background:color-mix(in oklab,var(--danger) 88%,white);border-color:var(--danger)}.btn-sm{padding:5px 11px;font-size:12.5px;border-radius:var(--radius-xs);gap:5px}.btn-sm svg{width:13px;height:13px}.btn-icon{padding:7px}.icon-btn{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-xs);background:transparent;border:1px solid transparent;color:var(--muted);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.icon-btn:hover{background:color-mix(in oklab,var(--ink) 8%,transparent);color:var(--text);border-color:transparent}.icon-btn svg{width:15px;height:15px}.icon-btn.danger:hover{background:var(--danger-bg);color:var(--danger);border-color:color-mix(in oklab,var(--danger) 40%,transparent)}.seg{display:inline-flex;padding:2px;gap:2px;background:var(--sunken);border:1px solid var(--line);border-radius:7px}.seg button{padding:5px 13px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:12px;font-weight:540;cursor:pointer;transition:background .12s,color .12s}.seg button:hover{color:var(--text)}.seg button.active{background:var(--raised);color:var(--ink);box-shadow:0 0 0 1px var(--line-strong)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:12.5px;font-weight:540;color:var(--text-2);letter-spacing:.01em}.field .hint{font-size:12px;color:var(--muted);font-weight:400}.input,.select,.textarea{width:100%;padding:9px 12px;border-radius:var(--radius-xs);background:var(--sunken);border:1px solid var(--line-strong);color:var(--text);font-size:13.5px;font-family:inherit;line-height:1.45;transition:border-color .12s,box-shadow .12s,background .12s}.input::placeholder,.textarea::placeholder{color:var(--ink-3)}.input:hover,.select:hover,.textarea:hover{border-color:var(--ink-3)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--sunken)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a89e8f' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}.select option{background:var(--panel-solid);color:var(--text)}.textarea{resize:vertical;min-height:76px}.input.mono,.textarea.mono{font-family:var(--mono);font-size:12.5px}input[type=checkbox]{accent-color:var(--accent)}.checkbox-row{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--text-2);cursor:pointer;padding:4px 0}.checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.form-error{padding:10px 13px;border-radius:var(--radius-xs);margin-bottom:14px;background:var(--danger-bg);border:1px solid color-mix(in oklab,var(--danger) 40%,transparent);color:var(--danger);font-size:13px;line-height:1.5}.form-ok{padding:10px 13px;border-radius:var(--radius-xs);margin-bottom:14px;background:var(--success-bg);border:1px solid color-mix(in oklab,var(--ok) 40%,transparent);color:var(--ok);font-size:13px;line-height:1.5}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:20px}.card+.card{margin-top:16px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.card-title{font-family:var(--font-mono);font-size:10.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.card-actions{display:flex;align-items:center;gap:8px}.grid-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.stat-card{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:18px 20px;transition:border-color .12s}.stat-card:hover{border-color:var(--line-strong)}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.stat-label{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3)}.stat-icon{width:30px;height:30px;border-radius:var(--radius-xs);display:grid;place-items:center;flex-shrink:0;background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent)}.stat-icon svg{width:15px;height:15px}.stat-value{font-family:var(--font-display);font-variation-settings:"opsz" 60;font-size:29px;font-weight:580;letter-spacing:-.012em;line-height:1.15;margin-top:8px;font-variant-numeric:tabular-nums}.stat-sub{font-size:12.5px;color:var(--muted);margin-top:3px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-2>.card+.card{margin-top:0}.stack{display:flex;flex-direction:column;gap:16px}.stack>.card+.card{margin-top:0}.row{display:flex;align-items:center;gap:10px}.row-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spacer{flex:1}.table-wrap{overflow-x:auto;margin:0 -20px;padding:0 20px}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{text-align:left;font-family:var(--font-mono);font-size:10.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:8px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:11px 12px;border-bottom:1px solid color-mix(in oklab,var(--line) 55%,transparent);vertical-align:middle}.table tbody tr{transition:background .12s}.table tbody tr:hover{background:color-mix(in oklab,var(--ink) 4%,transparent)}.table tbody tr:last-child td{border-bottom:0}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table th.num{text-align:right}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;flex-wrap:wrap}.pagination-info{font-size:12.5px;color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:5px;padding:2.5px 9px;border-radius:999px;font-size:11.5px;font-weight:600;line-height:1.5;white-space:nowrap;border:1px solid transparent}.pill:before{content:"";width:5.5px;height:5.5px;border-radius:50%;background:currentColor;flex-shrink:0}.pill-green{background:var(--success-bg);color:var(--ok);border-color:color-mix(in oklab,var(--ok) 32%,transparent)}.pill-red{background:var(--danger-bg);color:var(--danger);border-color:color-mix(in oklab,var(--danger) 32%,transparent)}.pill-amber{background:var(--warn-bg);color:var(--warn);border-color:color-mix(in oklab,var(--warn) 32%,transparent)}.pill-gray{background:var(--gray-bg);color:var(--text-2);border-color:color-mix(in oklab,var(--ink-2) 28%,transparent)}.pill-blue{background:var(--blue-bg);color:var(--blue);border-color:color-mix(in oklab,var(--blue) 32%,transparent)}.pill-plain:before{display:none}.bar-list{display:flex;flex-direction:column;gap:12px}.bar-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:baseline}.bar-label{color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:12.5px}.bar-value{font-size:13px;font-weight:650;font-variant-numeric:tabular-nums}.bar-track{grid-column:1 / -1;height:6px;border-radius:99px;background:color-mix(in oklab,var(--ink) 8%,transparent);overflow:hidden}.bar-fill{height:100%;border-radius:99px;background:var(--accent);transition:width .5s var(--ease);min-width:2px}.chart-wrap{position:relative}.chart-wrap svg{display:block;width:100%}.chart-axis{display:flex;justify-content:space-between;margin-top:8px;font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:20px;background:var(--scrim);animation:fadeIn .16s var(--ease);overflow-y:auto}.modal{width:100%;max-width:520px;max-height:calc(100vh - 40px);overflow-y:auto;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sheet);box-shadow:var(--shadow);animation:modalIn .2s var(--ease)}.modal-sm{max-width:420px}.modal-lg{max-width:680px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px 0}.modal-title{font-family:var(--font-display);font-variation-settings:"opsz" 60;font-size:17px;font-weight:580;letter-spacing:-.012em}.modal-body{padding:16px 22px 6px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px 20px;flex-wrap:wrap}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:200;display:flex;flex-direction:column;gap:8px;max-width:min(380px,calc(100vw - 40px))}.toast{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:9px;background:var(--ink);color:var(--bg);border:1px solid transparent;box-shadow:var(--shadow);font-size:13px;font-weight:520;line-height:1.45;cursor:pointer;animation:toastIn .22s var(--ease)}.toast.leaving{opacity:0;transform:translate(12px);transition:opacity .2s,transform .2s}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.toast-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0}.toast-success .toast-dot{background:var(--ok)}.toast-error .toast-dot{background:var(--danger)}.toast-info .toast-dot{background:var(--accent)}.spinner{width:18px;height:18px;border-radius:50%;flex-shrink:0;border:2px solid color-mix(in oklab,var(--ink) 15%,transparent);border-top-color:var(--accent);animation:spin .7s linear infinite}.spinner-lg{width:30px;height:30px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.center-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:56px 20px;color:var(--muted);text-align:center}.skeleton{border-radius:8px;background:linear-gradient(100deg,color-mix(in oklab,var(--ink) 5%,transparent) 40%,color-mix(in oklab,var(--ink) 11%,transparent),color-mix(in oklab,var(--ink) 5%,transparent) 60%);background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-80% 0}}.skeleton-line{height:13px;margin-bottom:10px}.skeleton-card{height:108px}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:44px 24px}.empty-icon{width:46px;height:46px;border-radius:10px;display:grid;place-items:center;margin-bottom:14px;background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent)}.empty-icon svg{width:20px;height:20px}.empty-title{font-size:14.5px;font-weight:650}.empty-hint{font-size:13px;color:var(--muted);margin-top:5px;max-width:380px;line-height:1.55}.empty-action{margin-top:16px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative;overflow:hidden;background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px),linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;background-position:-1px -1px}.login-card{position:relative;z-index:1;width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sheet);padding:34px 32px 30px;box-shadow:var(--shadow);animation:modalIn .3s var(--ease)}.login-brand{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:26px}.login-brand .brand-tile{width:52px;height:52px;border-radius:12px;font-size:27px;margin-bottom:14px}.login-title{font-family:var(--font-display);font-variation-settings:"opsz" 60;font-size:21px;font-weight:580;letter-spacing:-.012em}.login-sub{font-size:13px;color:var(--muted);margin-top:5px;line-height:1.55}.login-card .btn{width:100%;padding:10px 16px}@media (max-width: 1020px){.grid-stats{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}@media (max-width: 760px){.sidebar{display:none}.page{padding:20px 16px 44px}.topbar{padding:0 16px}.chip{display:none}.grid-stats{grid-template-columns:1fr}.login-card{padding:28px 22px 24px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
