@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2?dpl=dpl_J5o8frEBdLpzFSaNtL76D6QXKvvs)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2?dpl=dpl_J5o8frEBdLpzFSaNtL76D6QXKvvs)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2?dpl=dpl_J5o8frEBdLpzFSaNtL76D6QXKvvs)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2?dpl=dpl_J5o8frEBdLpzFSaNtL76D6QXKvvs)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2?dpl=dpl_J5o8frEBdLpzFSaNtL76D6QXKvvs)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_2ae47f08-module__h69qWW__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_2ae47f08-module__h69qWW__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.0ee55_hj9qcer.woff2?dpl=dpl_J5o8frEBdLpzFSaNtL76D6QXKvvs)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0.qu-9752pffj.woff2?dpl=dpl_J5o8frEBdLpzFSaNtL76D6QXKvvs)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.0mao5jbfbduzp.woff2?dpl=dpl_J5o8frEBdLpzFSaNtL76D6QXKvvs)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.0uzt.a6d44yda.woff2?dpl=dpl_J5o8frEBdLpzFSaNtL76D6QXKvvs)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0mvwgmnhv29no.woff2?dpl=dpl_J5o8frEBdLpzFSaNtL76D6QXKvvs)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.09zddjkbdep5a.woff2?dpl=dpl_J5o8frEBdLpzFSaNtL76D6QXKvvs)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_eb58308d-module__w_p2Lq__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_eb58308d-module__w_p2Lq__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--fg:#ececec;--fg-strong:#fff;--muted:#8a8a93;--bg:#0a0a0c;--bg-elev:#131316;--bg-elev-2:#1a1a1e;--sidebar-bg:#0c0c0e;--sidebar-fg:#c8c8cf;--sidebar-active-bg:#1c1c22;--sidebar-hover-bg:#16161a;--border:#232328;--border-strong:#2c2c33;--accent:#f0a020;--accent-fg:#0a0a0c;--danger:#ef4444;--success:#22c55e;--radius:10px;--radius-lg:14px;--shadow:0 1px 3px #00000059}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--fg:#1f2024;--fg-strong:#0a0a0c;--muted:#6b7280;--bg:#f7f7f8;--bg-elev:#fff;--bg-elev-2:#f1f2f5;--sidebar-bg:#fff;--sidebar-fg:#3f3f46;--sidebar-active-bg:#eef0f4;--sidebar-hover-bg:#f3f4f6;--border:#e5e7eb;--border-strong:#d4d6dc;--accent:#c97a07;--accent-fg:#fff;--danger:#b91c1c;--success:#047857;--shadow:0 1px 2px #0f11150f}*{box-sizing:border-box}html,body{height:100%;font-family:var(--font-geist-sans), system-ui, -apple-system, Segoe UI, Roboto, sans-serif;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100vh;display:flex}.app-shell.no-sidebar .app-main{padding-left:0}.app-main{flex:1;min-width:0}.container{max-width:1100px;margin:0 auto;padding:28px 28px 64px}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);flex-direction:column;flex:0 0 232px;width:232px;height:100vh;padding:14px 10px;transition:width .15s,flex-basis .15s;display:flex;position:sticky;top:0}.sidebar.collapsed{flex-basis:64px;width:64px}.sidebar-head{align-items:center;gap:10px;padding:4px 8px 14px;display:flex}.sidebar.collapsed .sidebar-head{justify-content:center;padding:4px 0 14px}.brand{color:var(--fg-strong);letter-spacing:.2px;font-size:14px;font-weight:600}.icon-btn{color:var(--sidebar-fg);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:6px;display:inline-flex}.icon-btn:hover{background:var(--sidebar-hover-bg);border-color:var(--border)}.sidebar-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);min-height:18px;padding:0 12px 8px;font-size:11px}.sidebar-nav{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.sidebar-link{color:var(--sidebar-fg);cursor:pointer;text-align:left;width:100%;font-size:14px;font:inherit;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;padding:9px 12px;text-decoration:none;display:flex}.sidebar-link:hover{background:var(--sidebar-hover-bg);color:var(--fg-strong);text-decoration:none}.sidebar-link.active{background:var(--sidebar-active-bg);color:var(--fg-strong)}.sidebar.collapsed .sidebar-link{justify-content:center;padding:9px 0}.sidebar-foot{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:8px;padding-top:10px;display:flex}.sidebar-user{padding:4px 12px 6px}.sidebar-user-name{color:var(--fg-strong);font-size:13px;font-weight:500}.sidebar-user-email{font-size:12px}.sidebar-link.signout{color:var(--muted)}.sidebar-link.signout:hover{color:var(--fg-strong)}h1{color:var(--fg-strong);margin:0 0 14px;font-size:22px;font-weight:600}h2{color:var(--fg-strong);margin:22px 0 10px;font-size:16px;font-weight:600}h3{color:var(--fg-strong);margin:16px 0 8px;font-size:14px;font-weight:600}button,.btn{font:inherit;cursor:pointer;background:var(--accent);color:var(--accent-fg);border:1px solid var(--accent);border-radius:var(--radius);padding:8px 14px;font-weight:500;display:inline-block}button:hover,.btn:hover{filter:brightness(1.05);text-decoration:none}button.secondary,.btn.secondary{background:var(--bg-elev);color:var(--fg);border-color:var(--border-strong)}button.secondary:hover,.btn.secondary:hover{background:var(--bg-elev-2)}button.danger,.btn.danger{color:var(--danger);border-color:var(--danger);background:0 0}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{font:inherit;background:var(--bg-elev);width:100%;color:var(--fg);border:1px solid var(--border-strong);border-radius:var(--radius);outline:none;padding:9px 11px}input:focus,textarea:focus,select:focus{border-color:var(--accent)}textarea{min-height:84px}label{color:var(--muted);margin:12px 0 4px;font-size:12px;display:block}.row{flex-wrap:wrap;gap:12px;display:flex}.row>*{flex:1;min-width:180px}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}th{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:500}tbody tr:hover{background:var(--bg-elev)}.card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elev);box-shadow:var(--shadow);padding:18px}.badge{background:var(--bg-elev-2);border:1px solid var(--border-strong);color:var(--muted);letter-spacing:.02em;border-radius:999px;padding:2px 8px;font-size:11px;display:inline-block}.badge.green{color:#4ade80;background:#22c55e1f;border-color:#22c55e4d}.badge.amber{color:#facc15;background:#f0a0201f;border-color:#f0a0204d}.badge.red{color:#f87171;background:#ef44441f;border-color:#ef44444d}.badge.gray{background:var(--bg-elev-2)}:root[data-theme=light] .badge.green{color:#047857;background:#22c55e26;border-color:#22c55e66}:root[data-theme=light] .badge.amber{color:#92400e;background:#f0a02026;border-color:#f0a02066}:root[data-theme=light] .badge.red{color:#991b1b;background:#ef44441f;border-color:#ef444459}.theme-options{gap:10px;display:flex}.theme-option{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-elev);color:var(--fg);cursor:pointer;align-items:center;gap:10px;min-width:140px;padding:10px 14px;display:flex}.theme-option:hover{background:var(--bg-elev-2)}.theme-option.active{border-color:var(--accent);color:var(--fg-strong)}.theme-swatch{border:1px solid var(--border-strong);border-radius:6px;flex:0 0 22px;width:22px;height:22px;display:inline-block}.theme-swatch.dark{background:linear-gradient(135deg,#0a0a0c 50%,#1a1a1e 50%)}.theme-swatch.light{background:linear-gradient(135deg,#fff 50%,#e5e7eb 50%)}.alert{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elev);margin:12px 0;padding:10px 14px}.alert.error{color:#fecaca;background:#ef444414;border-color:#ef444466}.alert.success{color:#bbf7d0;background:#22c55e14;border-color:#22c55e66}.muted{color:var(--muted)}.right{text-align:right}.stack{flex-direction:column;gap:14px;display:flex}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.mobile-topbar,.sidebar-backdrop{display:none}.desktop-only{display:inline-flex}.mobile-only{display:none}@media (max-width:720px){.mobile-topbar{z-index:30;background:var(--sidebar-bg);border-bottom:1px solid var(--border);align-items:center;gap:10px;height:52px;padding:8px 14px;display:flex;position:fixed;top:0;left:0;right:0}.mobile-topbar .brand{font-size:15px}.desktop-only{display:none}.mobile-only{display:inline-flex}.sidebar{z-index:50;flex-basis:auto;width:260px;height:100vh;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0)}.sidebar.collapsed{width:260px}.sidebar.collapsed .sidebar-link{justify-content:flex-start;padding:10px 12px}.sidebar.collapsed .sidebar-section-label{min-height:18px;padding:0 12px 8px}.sidebar.collapsed .sidebar-head{justify-content:flex-start;padding:4px 8px 14px}.sidebar.collapsed .sidebar-link span,.sidebar.collapsed .sidebar-user,.sidebar.collapsed .brand{display:inline}.sidebar-backdrop{z-index:40;background:#00000080;animation:.15s fade-in;display:block;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.app-main{padding-top:52px}.container{max-width:100%;padding:18px 14px 64px}.sidebar-link{padding:12px}.card{-webkit-overflow-scrolling:touch;overflow-x:auto}.card table{min-width:540px}.row>*{min-width:100%}h1{font-size:20px}h2{font-size:15px}.toolbar{gap:8px}.theme-options{flex-direction:column}.theme-option{min-width:100%}}
