:root{--ember-300: #ffb183;--ember-400: #ff8c4a;--ember-500: #f2691e;--ember-600: #d2520f;--ember-700: #a63f0b;--ember-800: #8a340a;--success-400: #4ec07c;--success-500: #2e9e5b;--success-700: #1c6b3c;--warning-400: #f0c04a;--warning-500: #e0a516;--warning-700: #9a6f08;--danger-400: #ef6b6b;--danger-500: #d93b3b;--danger-700: #9a2222;--info-400: #6aa5e8;--info-500: #3b82d9;--info-700: #23548f;--font-ui: "Inter var", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, "Cascadia Code", monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: 1.75rem;--text-2xl: 2.25rem;--leading-tight: 1.2;--leading-normal: 1.5;--tracking-caps: .06em;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-5: 1.25rem;--s-6: 1.5rem;--s-8: 2rem;--s-10: 2.5rem;--s-12: 3rem;--s-16: 4rem;--r-sm: 4px;--r-md: 6px;--r-lg: 10px;--r-xl: 14px;--r-full: 999px;--sidebar-w: 248px;--sidebar-w-rail: 60px;--topbar-h: 56px;--content-max: 1480px;--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-fast: .12s;--dur-base: .2s;--z-sticky: 10;--z-drawer: 40;--z-modal: 50;--z-toast: 60}[data-density=comfortable]{--row-h: 44px;--cell-pad-y: var(--s-3);--card-pad: var(--s-5)}[data-density=compact]{--row-h: 32px;--cell-pad-y: var(--s-1);--card-pad: var(--s-4)}[data-theme=dark]{--bg-root: #0b0e13;--bg-canvas: #10141b;--surface-1: #161b24;--surface-2: #1d232e;--surface-3: #252d3a;--surface-inset: #0d1117;--border-subtle: #222a36;--border-default: #2d3644;--border-strong: #3d4958;--fg-default: #e6e9ef;--fg-muted: #9aa5b4;--fg-subtle: #8b95a5;--fg-onEmber: #1a0d05;--accent: var(--ember-500);--accent-hover: var(--ember-400);--accent-quiet: color-mix(in oklab, var(--ember-500) 14%, transparent);--accent-ring: color-mix(in oklab, var(--ember-500) 45%, transparent);--success: var(--success-400);--success-bg: color-mix(in oklab, var(--success-500) 16%, transparent);--warning: var(--warning-400);--warning-bg: color-mix(in oklab, var(--warning-500) 16%, transparent);--danger: var(--danger-400);--danger-bg: color-mix(in oklab, var(--danger-500) 16%, transparent);--info: var(--info-400);--info-bg: color-mix(in oklab, var(--info-500) 16%, transparent);--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 4px 12px rgb(0 0 0 / .45);--shadow-lg: 0 16px 40px rgb(0 0 0 / .55);--brand-glow: radial-gradient(60% 60% at 50% 50%, color-mix(in oklab, var(--ember-500) 35%, transparent), transparent 70%)}[data-theme=light]{--bg-root: #eef0f4;--bg-canvas: #f7f8fa;--surface-1: #ffffff;--surface-2: #f3f4f7;--surface-3: #e9ebf0;--surface-inset: #f0f1f5;--border-subtle: #e4e6ec;--border-default: #d3d7e0;--border-strong: #b4bac7;--fg-default: #161a21;--fg-muted: #5a6372;--fg-subtle: #6b7483;--fg-onEmber: #ffffff;--accent: var(--ember-700);--accent-hover: var(--ember-800);--accent-quiet: color-mix(in oklab, var(--ember-500) 12%, transparent);--accent-ring: color-mix(in oklab, var(--ember-700) 40%, transparent);--success: var(--success-700);--success-bg: color-mix(in oklab, var(--success-500) 14%, transparent);--warning: var(--warning-700);--warning-bg: color-mix(in oklab, var(--warning-500) 20%, transparent);--danger: var(--danger-700);--danger-bg: color-mix(in oklab, var(--danger-500) 12%, transparent);--info: var(--info-700);--info-bg: color-mix(in oklab, var(--info-500) 12%, transparent);--shadow-sm: 0 1px 2px rgb(16 20 27 / .06);--shadow-md: 0 4px 12px rgb(16 20 27 / .08);--shadow-lg: 0 16px 40px rgb(16 20 27 / .12);--brand-glow: radial-gradient(60% 60% at 50% 50%, color-mix(in oklab, var(--ember-500) 22%, transparent), transparent 70%)}@media (prefers-reduced-motion: reduce){:root{--dur-fast: 0ms;--dur-base: 0ms}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body,#app{height:100%}body{font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--fg-default);background:var(--bg-root);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.mono,td.num,.stat-value,.id{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"zero" 1}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;grid-template-areas:"brand topbar" "nav main";height:100%}.brand{grid-area:brand;display:flex;align-items:center;gap:var(--s-3);padding-inline:var(--s-5);background:var(--surface-1);border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);font-weight:650;letter-spacing:-.01em}.brand-mark{position:relative;display:grid;place-items:center;width:26px;height:26px;flex:none}.brand-mark:before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;background:var(--brand-glow);pointer-events:none}.brand-mark svg{position:relative;width:22px;height:22px}.brand-env{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps);padding:2px 6px;border-radius:var(--r-sm);background:var(--warning-bg);color:var(--warning)}.brand-env[data-env=production]{background:var(--danger-bg);color:var(--danger)}.topbar{grid-area:topbar;display:flex;align-items:center;gap:var(--s-3);padding-inline:var(--s-5);background:var(--surface-1);border-bottom:1px solid var(--border-subtle)}.topbar-title{font-size:var(--text-md);font-weight:600}.topbar-spacer{margin-left:auto}.cmd-hint{display:flex;align-items:center;gap:var(--s-2);min-width:220px;padding:var(--s-2) var(--s-3);font-size:var(--text-sm);color:var(--fg-subtle);background:var(--surface-inset);border:1px solid var(--border-subtle);border-radius:var(--r-md);cursor:pointer}.cmd-hint:hover{border-color:var(--border-default);color:var(--fg-muted)}kbd{font-family:var(--font-mono);font-size:var(--text-xs);padding:1px 5px;border-radius:var(--r-sm);background:var(--surface-3);border:1px solid var(--border-default);color:var(--fg-muted)}.nav{grid-area:nav;overflow-y:auto;padding:var(--s-4) var(--s-3) var(--s-8);background:var(--surface-1);border-right:1px solid var(--border-subtle)}.nav-group+.nav-group{margin-top:var(--s-5)}.nav-group-label{padding:0 var(--s-3) var(--s-2);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--fg-subtle)}.nav-item{display:flex;align-items:center;gap:var(--s-3);width:100%;padding:var(--s-2) var(--s-3);border:0;border-radius:var(--r-md);background:transparent;color:var(--fg-muted);font-size:var(--text-base);text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.nav-item:hover{background:var(--surface-2);color:var(--fg-default)}.nav-item[aria-current=page]{background:var(--accent-quiet);color:var(--fg-default);font-weight:550;box-shadow:inset 2px 0 0 var(--accent)}.nav-item svg{width:16px;height:16px;flex:none;opacity:.85}.nav-item[aria-current=page] svg{color:var(--accent);opacity:1}.nav-item[data-locked=true]{opacity:.45;cursor:not-allowed}.nav-badge{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-xs);padding:1px 6px;border-radius:var(--r-full);background:var(--surface-3);color:var(--fg-muted)}.nav-badge[data-tone=danger]{background:var(--danger-bg);color:var(--danger)}.main{grid-area:main;overflow-y:auto;padding:var(--s-6) var(--s-6) var(--s-16);background:var(--bg-canvas)}.main-inner{max-width:var(--content-max);margin-inline:auto}.page-head{display:flex;align-items:flex-start;gap:var(--s-4);margin-bottom:var(--s-6)}.page-title{font-size:var(--text-lg);font-weight:650;letter-spacing:-.015em}.page-sub{margin-top:var(--s-1);font-size:var(--text-sm);color:var(--fg-muted)}.page-actions{margin-left:auto;display:flex;gap:var(--s-2)}.card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--card-pad)}.card-head{display:flex;align-items:center;gap:var(--s-3);margin:calc(var(--card-pad) * -1) calc(var(--card-pad) * -1) var(--card-pad);padding:var(--s-4) var(--card-pad);border-bottom:1px solid var(--border-subtle)}.card-title{font-size:var(--text-md);font-weight:600}.grid{display:grid;gap:var(--s-4)}.grid-stats{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.grid-halves{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}.stat{display:flex;flex-direction:column;gap:var(--s-1)}.stat-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--fg-subtle)}.stat-value{font-size:var(--text-xl);font-weight:600;line-height:var(--leading-tight)}.stat-delta{font-size:var(--text-sm);color:var(--fg-muted)}.stat-delta[data-dir=up]{color:var(--success)}.stat-delta[data-dir=down]{color:var(--danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:34px;padding:0 var(--s-4);font-size:var(--text-base);font-weight:550;border:1px solid var(--border-default);border-radius:var(--r-md);background:var(--surface-2);color:var(--fg-default);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.btn:hover{background:var(--surface-3);border-color:var(--border-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn[data-variant=primary]{background:var(--accent);border-color:var(--accent);color:var(--fg-onEmber)}.btn[data-variant=primary]:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn[data-variant=danger]{background:transparent;border-color:var(--danger);color:var(--danger)}.btn[data-variant=danger]:hover{background:var(--danger-bg)}.btn[data-variant=ghost]{background:transparent;border-color:transparent;color:var(--fg-muted)}.btn[data-variant=ghost]:hover{background:var(--surface-2);color:var(--fg-default)}.btn[data-size=sm]{min-height:28px;padding:0 var(--s-3);font-size:var(--text-sm)}.btn-icon{min-height:34px;width:34px;padding:0}.btn svg,.cmd-hint svg{width:16px;height:16px;flex:none}.cmd-hint span{white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:var(--s-1);padding:2px 8px;border-radius:var(--r-full);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-caps);background:var(--surface-3);color:var(--fg-muted)}.badge[data-tone=success]{background:var(--success-bg);color:var(--success)}.badge[data-tone=warning]{background:var(--warning-bg);color:var(--warning)}.badge[data-tone=danger]{background:var(--danger-bg);color:var(--danger)}.badge[data-tone=info]{background:var(--info-bg);color:var(--info)}.dot{width:7px;height:7px;border-radius:var(--r-full);background:var(--fg-subtle)}.dot[data-tone=success]{background:var(--success)}.dot[data-tone=warning]{background:var(--warning)}.dot[data-tone=danger]{background:var(--danger)}.field{display:flex;flex-direction:column;gap:var(--s-2)}.label{font-size:var(--text-sm);font-weight:550;color:var(--fg-muted)}.input,.select,.textarea{min-height:34px;padding:var(--s-2) var(--s-3);background:var(--surface-inset);border:1px solid var(--border-default);border-radius:var(--r-md);color:var(--fg-default);width:100%}.input::placeholder{color:var(--fg-subtle)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.input[aria-invalid=true]{border-color:var(--danger)}.hint{font-size:var(--text-sm);color:var(--fg-subtle)}.hint[data-tone=danger]{color:var(--danger)}.table-wrap{border:1px solid var(--border-subtle);border-radius:var(--r-lg);overflow:auto;background:var(--surface-1)}table.data{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm)}table.data thead th{position:sticky;top:0;z-index:var(--z-sticky);padding:var(--s-3) var(--s-4);text-align:left;white-space:nowrap;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--fg-subtle);background:var(--surface-2);border-bottom:1px solid var(--border-default)}table.data tbody td{height:var(--row-h);padding:var(--cell-pad-y) var(--s-4);border-bottom:1px solid var(--border-subtle);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr:hover td{background:var(--surface-2)}table.data td.num,table.data th.num{text-align:right}table.data td.actions{text-align:right;white-space:nowrap}.empty{display:grid;place-items:center;gap:var(--s-3);padding:var(--s-12) var(--s-6);text-align:center;color:var(--fg-muted)}.empty-title{font-weight:600;color:var(--fg-default)}.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.thumb{display:grid;place-items:center;background:var(--surface-inset);border:1px solid var(--border-subtle);border-radius:var(--r-sm);overflow:hidden;flex:none}.thumb img{max-width:100%;max-height:100%;image-rendering:pixelated;display:block}.thumb[data-size=row]{width:32px;height:32px}.thumb[data-size=big]{width:72px;height:72px}.thumb-missing{font-size:var(--text-xs);color:var(--fg-subtle)}.toast-stack{position:fixed;inset-block-end:var(--s-5);inset-inline-end:var(--s-5);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--s-2);pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--s-3);min-width:280px;max-width:420px;padding:var(--s-3) var(--s-4);background:var(--surface-2);border:1px solid var(--border-default);border-left:3px solid var(--fg-subtle);border-radius:var(--r-md);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-in var(--dur-base) var(--ease-out)}.toast[data-tone=success]{border-left-color:var(--success)}.toast[data-tone=danger]{border-left-color:var(--danger)}.toast[data-tone=warning]{border-left-color:var(--warning)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.auth{display:grid;place-items:center;min-height:100%;padding:var(--s-6);background:radial-gradient(70% 55% at 50% 0%,color-mix(in oklab,var(--ember-500) 10%,transparent),transparent 70%),var(--bg-root)}.auth-card{width:100%;max-width:380px;padding:var(--s-8);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--r-xl);box-shadow:var(--shadow-lg)}.auth-brand{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-6)}.auth-title{font-size:var(--text-md);font-weight:650}.auth-form{display:flex;flex-direction:column;gap:var(--s-4)}.auth-error{padding:var(--s-3);font-size:var(--text-sm);background:var(--danger-bg);color:var(--danger);border-radius:var(--r-md)}.auth-foot{margin-top:var(--s-5);font-size:var(--text-xs);color:var(--fg-subtle);text-align:center}@media (max-width: 1180px){.shell{grid-template-columns:var(--sidebar-w-rail) 1fr}.brand{padding-inline:0;justify-content:center}.brand-name,.brand-env,.nav-group-label,.nav-item span,.nav-badge{display:none}.nav-item{justify-content:center;padding:var(--s-3) 0}}@media (max-width: 820px){.shell{grid-template-columns:1fr;grid-template-areas:"topbar" "main"}.brand{display:none}.nav{position:fixed;inset-block:0;inset-inline-start:0;width:var(--sidebar-w);z-index:var(--z-drawer);transform:translate(-100%);transition:transform var(--dur-base) var(--ease-out);box-shadow:var(--shadow-lg)}.nav[data-open=true]{transform:none}.brand-name,.nav-group-label,.nav-item span,.nav-badge{display:revert}.nav-item{justify-content:flex-start;padding:var(--s-2) var(--s-3)}.main{padding:var(--s-4) var(--s-4) var(--s-12)}.cmd-hint{min-width:0}.cmd-hint span,kbd{display:none}}@media print{.nav,.topbar,.brand,.page-actions,.toast-stack{display:none!important}.main{overflow:visible;padding:0}:root{--surface-1: #fff;--bg-canvas: #fff}}
