@import "https://fonts.googleapis.com/css2?family=Sora:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--ink-950:#051f20;--surface-900:#0b2b26;--surface-800:#163832;--surface-700:#235347;--sage-500:#8eb69b;--mint-100:#daf1de;--text-primary:var(--mint-100);--text-secondary:var(--sage-500);--text-muted:#6f9480;--border-soft:color-mix(in srgb, var(--sage-500) 16%, transparent);--border-strong:color-mix(in srgb, var(--sage-500) 32%, transparent);--danger:#f2b8b5;--danger-surface:#f2b8b524;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:40px;--space-8:56px;--radius-chip:10px;--radius-control:12px;--radius-card:18px;--radius-panel:28px;--radius-full:9999px;--font-display:"Sora", "Plus Jakarta Sans", -apple-system, sans-serif;--font-body:"IBM Plex Sans", -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;--text-micro:.6875rem;--text-caption:.75rem;--text-small:.8125rem;--text-body:.875rem;--text-base:1rem;--text-title:1.125rem;--text-h3:1.25rem;--text-h2:clamp(1.375rem, 1.15rem + .9vw, 1.75rem);--text-display:clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--ease-out:cubic-bezier(.22, .61, .36, 1);--ease-spring:cubic-bezier(.34, 1.26, .64, 1);--shadow-card:0 4px 16px #051f2040;--shadow-panel:0 8px 32px #051f2059;--shadow-lift:0 10px 30px #051f2073;--focus-ring:0 0 0 2px var(--ink-950), 0 0 0 4px var(--mint-100);--rail-width:212px;--tap-min:44px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-size:var(--text-body);color:var(--text-primary);background:radial-gradient(1200px 680px at 12% -8%, #17453b 0%, transparent 62%), radial-gradient(900px 520px at 92% 4%, #0f322c 0%, transparent 58%), var(--ink-950);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:fixed;min-height:100dvh;margin:0;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.015em;margin:0;font-weight:600;line-height:1.2}h2{font-size:var(--text-h2)}h3{font-size:var(--text-h3)}h4{font-size:var(--text-title)}p{margin:0}table,input[inputmode=numeric],input[type=number],.tabular{font-variant-numeric:tabular-nums}code,.identifier{font-family:var(--font-mono);letter-spacing:-.01em;font-size:.9em}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--text-primary)}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-chip);outline:none}:target,[id]{scroll-margin-top:var(--space-6)}::selection{background:color-mix(in srgb, var(--mint-100) 30%, transparent)}*{scrollbar-width:thin;scrollbar-color:var(--surface-700) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--surface-700);border-radius:var(--radius-full);background-clip:content-box;border:3px solid #0000}::-webkit-scrollbar-thumb:hover{background-clip:border-box}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{grid-template-columns:var(--rail-width) minmax(0, 1fr);gap:var(--space-5);padding:var(--space-5);align-items:start;min-height:100dvh;display:grid}.app-main{gap:var(--space-5);align-content:start;min-width:0;display:grid}@media (width<=1023px){.app-shell{gap:var(--space-4);padding:var(--space-3);padding-bottom:calc(76px + env(safe-area-inset-bottom,0px));grid-template-columns:minmax(0,1fr)}}.glass-panel{background:color-mix(in srgb, var(--surface-900) 72%, transparent);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border-soft);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel)}.glass-card{background:color-mix(in srgb, var(--surface-800) 58%, transparent);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-5);min-width:0;position:relative}.glass-card:before{content:"";border-radius:var(--radius-card) var(--radius-card) 0 0;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--mint-100) 22%, transparent) 22%, color-mix(in srgb, var(--mint-100) 22%, transparent) 78%, transparent);pointer-events:none;height:1px;position:absolute;inset:0 0 auto}@media (width<=640px){.glass-card{padding:var(--space-4)}}.card-head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.card-head h3{min-width:0}.disclosure-panel{margin-bottom:var(--space-5);padding:var(--space-4);border:1px solid var(--border-soft);border-radius:var(--radius-control);background:color-mix(in srgb, var(--ink-950) 32%, transparent)}.disclosure-panel .field:last-of-type{margin-bottom:0}.panel-section{padding-bottom:var(--space-4);margin-bottom:var(--space-4);border-bottom:1px solid var(--border-soft)}.panel-section-title{margin-bottom:var(--space-3);font-size:var(--text-caption);color:var(--text-secondary)}.panel-section .field{margin-bottom:0}.nav-rail{gap:var(--space-1);padding:var(--space-3);flex-direction:column;display:flex;position:relative}.nav-indicator{top:0;left:var(--space-3);right:var(--space-3);border-radius:var(--radius-full);background:var(--surface-700);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--mint-100) 14%, transparent);transition:transform var(--dur-slow) var(--ease-spring), height var(--dur-slow) var(--ease-spring), opacity var(--dur-base) var(--ease-out);pointer-events:none;z-index:0;position:absolute}.nav-indicator[data-pose=false]{transition:none}.nav-item{z-index:1;align-items:center;gap:var(--space-3);min-height:var(--tap-min);padding:0 var(--space-4);border-radius:var(--radius-full);font-family:var(--font-display);font-size:var(--text-body);color:var(--text-secondary);transition:color var(--dur-fast) var(--ease-out);font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item:hover{color:var(--text-primary)}.nav-item.active{color:var(--text-primary);font-weight:600}.nav-item .icon{opacity:.85;flex:none}.nav-item.active .icon{opacity:1}.nav-brand{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-2);display:flex}.nav-brand-mark{border-radius:var(--radius-chip);background:var(--mint-100);width:34px;height:34px;color:var(--ink-950);flex:none;place-items:center;display:grid}.nav-brand-text{min-width:0;line-height:1.3;display:grid}.nav-brand-title{-webkit-line-clamp:2;font-family:var(--font-display);font-weight:600;font-size:var(--text-body);letter-spacing:-.01em;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.topbar .nav-brand-title{-webkit-line-clamp:1}.nav-foot{padding:var(--space-2) var(--space-3) var(--space-3)}.nav-bottom{z-index:40;left:var(--space-3);right:var(--space-3);bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));justify-content:space-around;gap:var(--space-1);padding:var(--space-2);background:color-mix(in srgb, var(--surface-900) 92%, transparent);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-soft);border-radius:var(--radius-full);box-shadow:var(--shadow-lift);display:flex;position:fixed}.nav-bottom-item{min-width:0;min-height:var(--tap-min);padding:var(--space-1);border-radius:var(--radius-full);letter-spacing:-.01em;color:var(--text-secondary);transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-base) var(--ease-out);flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;font-size:10px;font-weight:500;text-decoration:none;display:flex}.nav-bottom-item span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.nav-bottom-item.active{color:var(--text-primary);background:var(--surface-700)}.topbar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);display:none}@media (width<=1023px){.topbar{display:flex}.rail-desktop{display:none}}@media (width>=1024px){.nav-bottom{display:none}}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-5);border-radius:var(--radius-full);font-family:var(--font-display);font-size:var(--text-body);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);border:1px solid #0000;font-weight:600;line-height:1;display:inline-flex;position:relative}.btn:not(:disabled):active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--mint-100);color:var(--ink-950)}.btn-primary:not(:disabled):hover{background:color-mix(in srgb, var(--mint-100) 88%, white)}.btn-ghost{background:var(--surface-700);color:var(--text-primary)}.btn-ghost:not(:disabled):hover{background:color-mix(in srgb, var(--surface-700) 80%, var(--mint-100))}.btn-quiet{border-color:var(--border-strong);color:var(--text-secondary);background:0 0}.btn-quiet:not(:disabled):hover{color:var(--text-primary);border-color:color-mix(in srgb, var(--mint-100) 45%, transparent);background:color-mix(in srgb, var(--surface-700) 45%, transparent)}.btn-danger{border-color:color-mix(in srgb, var(--danger) 42%, transparent);color:var(--danger);background:0 0}.btn-danger:not(:disabled):hover{background:var(--danger-surface);border-color:var(--danger)}.btn-sm{min-height:36px;padding:0 var(--space-3);font-size:var(--text-caption)}.btn-sm:after{content:"";position:absolute;inset:-4px}.btn-block{width:100%}.btn-icon{width:var(--tap-min);min-width:var(--tap-min);padding:0}.btn[data-busy=true]{pointer-events:none}.spinner{border-radius:var(--radius-full);border:2px solid color-mix(in srgb, currentColor 28%, transparent);border-top-color:currentColor;flex:none;width:15px;height:15px;animation:.62s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.form-grid{grid-template-columns:repeat(auto-fit, minmax(max(210px, (100% - 3 * var(--space-4)) / 4), 1fr));gap:0 var(--space-4);display:grid}.filter-row{gap:var(--space-2) var(--space-3);flex-wrap:wrap;align-items:flex-end;display:flex}.filter-row .field{flex:148px;min-width:0;margin-bottom:0}.filter-row .btn{flex:none}.form-actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.field{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;min-width:0;display:flex}.field label{font-size:var(--text-caption);color:var(--text-secondary);letter-spacing:.005em;font-weight:500}.field input,.field select,.field textarea,.input{width:100%;min-height:var(--tap-min);background:color-mix(in srgb, var(--ink-950) 42%, transparent);border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:var(--space-3) var(--space-4);font-size:var(--text-body);color:var(--text-primary);transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);outline:none}.field textarea{resize:vertical;min-height:96px}.field input::placeholder,.field textarea::placeholder{color:var(--text-muted)}.field input:hover,.field select:hover,.field textarea:hover{border-color:color-mix(in srgb, var(--sage-500) 45%, transparent)}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,.input:focus-visible{border-color:var(--mint-100);background:color-mix(in srgb, var(--ink-950) 62%, transparent)}.field .pill{align-self:start}.field-caption{font-size:var(--text-caption);color:var(--text-secondary);font-weight:500}.field-hint{font-size:var(--text-caption);color:var(--text-muted)}.field-error{font-size:var(--text-caption);color:var(--danger)}.field select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--sage-500) 50%), linear-gradient(135deg, var(--sage-500) 50%, transparent 50%);padding-right:var(--space-7);background-position:calc(100% - 19px) calc(50% + 1px),calc(100% - 13px) calc(50% + 1px);background-repeat:no-repeat;background-size:6px 6px,6px 6px}.field select option{background:var(--surface-800)}.checkbox-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.checkbox-row{align-items:flex-start;gap:var(--space-3);min-height:var(--tap-min);padding:var(--space-2) var(--space-3);border:1px solid var(--border-soft);border-radius:var(--radius-control);background:color-mix(in srgb, var(--ink-950) 28%, transparent);font-size:var(--text-small);color:var(--text-secondary);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out);display:flex}.checkbox-row:hover{border-color:var(--border-strong)}.checkbox-row:has(input:checked){border-color:color-mix(in srgb, var(--mint-100) 40%, transparent);color:var(--text-primary)}.checkbox-row input[type=checkbox]{width:17px;height:17px;accent-color:var(--mint-100);cursor:pointer;flex:none;margin-top:2px}.pill{align-items:center;gap:var(--space-2);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);font-size:var(--text-caption);white-space:nowrap;background:var(--surface-700);color:var(--text-primary);border:1px solid #0000;font-weight:500;line-height:1.4;display:inline-flex}.pill-dot{border-radius:var(--radius-full);background:currentColor;flex:none;width:6px;height:6px}.pill-muted{border-color:var(--border-strong);color:var(--text-secondary);background:0 0}.pill-off{border-color:var(--border-soft);color:var(--text-muted);background:0 0}.pill-off .pill-dot{background:0 0;box-shadow:inset 0 0 0 1.5px}.pill-alert{background:var(--danger-surface);border-color:color-mix(in srgb, var(--danger) 38%, transparent);color:var(--danger)}.stat-strip{gap:var(--space-2);flex-wrap:wrap;display:flex}.stat-capsule{align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);background:color-mix(in srgb, var(--ink-950) 38%, transparent);border:1px solid var(--border-soft);display:inline-flex}.stat-capsule-value{font-family:var(--font-display);font-size:var(--text-title);font-variant-numeric:tabular-nums;font-weight:600;line-height:1}.stat-capsule-label{font-size:var(--text-caption);color:var(--text-secondary)}.stat-capsule[data-tone=alert]{border-color:color-mix(in srgb, var(--danger) 34%, transparent);background:var(--danger-surface)}.stat-capsule[data-tone=alert] .stat-capsule-value{color:var(--danger)}.stat-capsule[data-tone=off]{opacity:.72}.table-scroll{overscroll-behavior-x:contain;margin:0 calc(var(--space-5) * -1) calc(var(--space-5) * -1);padding:0 var(--space-5) var(--space-5);overflow-x:auto}@media (width<=640px){.table-scroll{margin:0 calc(var(--space-4) * -1) calc(var(--space-4) * -1);padding:0 var(--space-4) var(--space-4)}}.table-scroll:has(tbody:empty){display:none}table.data-table{border-collapse:collapse;width:100%;min-width:max-content;font-size:var(--text-small)}table.data-table th{text-align:left;font-family:var(--font-display);font-size:var(--text-caption);color:var(--text-secondary);white-space:nowrap;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-strong);font-weight:500}table.data-table td{padding:var(--space-3);border-bottom:1px solid var(--border-soft);vertical-align:middle}table.data-table tbody tr{transition:background-color var(--dur-fast) var(--ease-out)}table.data-table tbody tr:hover{background:color-mix(in srgb, var(--surface-700) 34%, transparent)}table.data-table tbody tr:last-child td{border-bottom:none}table.data-table .btn{z-index:1;min-height:34px;padding:0 var(--space-3);font-size:var(--text-caption)}table.data-table .btn:after{content:"";position:absolute;inset:-5px -2px}table.data-table .field{gap:var(--space-1);margin-bottom:0}table.data-table .field input,table.data-table .field select{min-height:34px;padding:var(--space-2) var(--space-3);font-size:var(--text-caption)}table.data-table .field label{font-size:var(--text-micro)}table.data-table .filter-row{gap:var(--space-2);flex-wrap:nowrap}table.data-table .filter-row .field{flex:0 96px}.cell-actions{gap:var(--space-2);align-items:center;display:flex}.skeleton{border-radius:var(--radius-chip);background:linear-gradient(90deg, color-mix(in srgb, var(--sage-500) 9%, transparent) 25%, color-mix(in srgb, var(--sage-500) 17%, transparent) 37%, color-mix(in srgb, var(--sage-500) 9%, transparent) 63%);background-size:400% 100%;animation:1.4s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:100%}to{background-position:0}}.empty-state{justify-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-4);text-align:center;color:var(--text-secondary);display:grid}.empty-state-mark{border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-700) 52%, transparent);width:46px;height:46px;color:var(--text-secondary);place-items:center;display:grid}.empty-state-title{font-family:var(--font-display);font-size:var(--text-title);color:var(--text-primary);font-weight:600}.empty-state p{max-width:46ch;font-size:var(--text-body)}.error-text{align-items:flex-start;gap:var(--space-2);color:var(--danger);font-size:var(--text-small);margin-bottom:var(--space-3);display:flex}.success-text{align-items:flex-start;gap:var(--space-2);color:var(--mint-100);font-size:var(--text-small);margin-bottom:var(--space-3);display:flex}.muted-text{color:var(--text-secondary);font-size:var(--text-small)}.icon{flex:none;display:block}.auth-screen{min-height:100dvh;padding:var(--space-5) var(--space-4);place-items:center;display:grid}.auth-card{width:100%;max-width:400px}.auth-brand{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.auth-title{font-family:var(--font-display);font-size:var(--text-h3);letter-spacing:-.02em;font-weight:600}.auth-secret{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-control);background:color-mix(in srgb, var(--ink-950) 55%, transparent);border:1px solid var(--border-soft);color:var(--mint-100);font-family:var(--font-mono);font-size:var(--text-small);word-break:break-all;line-height:1.6;display:block}.row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.row-tight{align-items:center;gap:var(--space-2);display:flex}.stack{gap:var(--space-4);align-content:start;display:grid}.stack-tight{gap:var(--space-2);align-content:start;display:grid}.grow{flex:auto;min-width:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
