:root{--bg:#fafafa;--bg-1:#f4f4f5;--bg-2:#efefef;--surface-1:#ffffffb8;--surface-2:#ffffff8c;--surface-3:#ffffff61;--surface-hover:#0000000a;--surface-pressed:#0000000f;--glass-border:#ffffff8c;--glass-blur:22px;--hairline:#0a0a0a14;--hairline-strong:#0a0a0a24;--shadow-xs:0 1px 2px #0a0a0a0a;--shadow-sm:0 1px 3px #0a0a0a14, 0 1px 2px #0a0a0a0a;--shadow-md:0 4px 12px #0a0a0a0f, 0 2px 4px #0a0a0a0a;--shadow-lg:0 12px 32px #0a0a0a14, 0 4px 12px #0a0a0a0a;--shadow-xl:0 24px 56px #0a0a0a1f, 0 8px 16px #0a0a0a0a;--glass-shadow:0 8px 32px #0a0a0a0a, 0 1px 0 #ffffff80 inset;--shadow-focus:0 0 0 4px #0a0a0a14;--text-primary:#0a0a0a;--text-secondary:#0a0a0a9e;--text-tertiary:#0a0a0a66;--text-disabled:#0a0a0a42;--text-on-accent:#fff;--accent:#0a0a0a;--accent-hover:#2a2a2a;--accent-pressed:#404040;--accent-soft:#0a0a0a0f;--accent-soft-hover:#0a0a0a1a;--success:#059669;--success-soft:#0596691a;--success-border:#05966938;--warning:#d97706;--warning-soft:#d977061a;--warning-border:#d9770638;--danger:#dc2626;--danger-soft:#dc26261a;--danger-border:#dc262638;--info:#2563eb;--info-soft:#2563eb1a;--info-border:#2563eb38;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--space-9:56px;--space-10:72px;--space-11:96px;--space-12:128px;--font-sans:"Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"Geist Mono", "JetBrains Mono", ui-monospace, monospace;--fs-caption:11px;--fs-body-s:13px;--fs-body:14px;--fs-body-l:16px;--fs-h4:18px;--fs-h3:22px;--fs-h2:28px;--fs-h1:36px;--fs-display:56px;--lh-tight:1.2;--lh-base:1.5;--lh-relaxed:1.7;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--sidebar-w:240px;--sidebar-w-collapsed:64px;--topbar-h:56px;--container-max:1280px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-instant:.12s;--dur-fast:.18s;--dur-base:.22s;--dur-slow:.36s}[data-theme=dark]{--bg:#0a0a0a;--bg-1:#141414;--bg-2:#1c1c1c;--surface-1:#1c1c1cb8;--surface-2:#1c1c1c8c;--surface-3:#1c1c1c61;--surface-hover:#ffffff0a;--surface-pressed:#ffffff0f;--glass-border:#ffffff14;--glass-shadow:0 8px 32px #0006, 0 1px 0 #ffffff0f inset;--hairline:#ffffff14;--hairline-strong:#ffffff24;--text-primary:#fafafa;--text-secondary:#fafafaa8;--text-tertiary:#fafafa66;--text-disabled:#fafafa42;--text-on-accent:#0a0a0a;--accent:#fafafa;--accent-hover:#e5e5e5;--accent-pressed:#d4d4d4;--accent-soft:#fafafa1a;--accent-soft-hover:#fafafa24;--shadow-focus:0 0 0 4px #fafafa1f}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}html,body{background:var(--bg);min-height:100%;color:var(--text-primary);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-base);font-feature-settings:"cv11", "ss01", "kern";margin:0;padding:0}a{color:inherit}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}::selection{background:var(--accent);color:var(--text-on-accent)}.glass{background:var(--surface-1);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass{background:#fff}[data-theme=dark] .glass{background:#1c1c1c}}.lg-blob{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.lg-blob:before,.lg-blob:after{content:"";filter:blur(120px);opacity:.3;width:70vw;height:70vw;animation:lg-float 18s var(--ease-in-out) infinite;border-radius:50%;position:absolute}.lg-blob:before{background:radial-gradient(circle, var(--accent-soft), transparent 70%);top:-15vw;left:-15vw}.lg-blob:after{background:radial-gradient(circle, var(--accent-soft), transparent 70%);animation-delay:-9s;bottom:-20vw;right:-20vw}@keyframes lg-float{0%,to{transform:translate(0)scale(1)}50%{transform:translate(5vw,-4vw)scale(1.08)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--hairline-strong);border-radius:var(--radius-pill);background-clip:padding-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary);background-clip:padding-box;border:2px solid #0000}:focus{outline:none}:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-sm);outline:none}.sb-btn{border-radius:var(--radius-md);font-weight:var(--fw-medium);cursor:pointer;white-space:nowrap;letter-spacing:-.01em;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast), transform var(--dur-fast), box-shadow var(--dur-fast);-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;font-family:inherit;display:inline-flex}.sb-btn:active{transform:translateY(1px)}.sb-btn-disabled{cursor:not-allowed;opacity:.4}.sb-btn-disabled:active{transform:none}.sb-btn-full{width:100%}.sb-btn-icon{align-items:center;display:inline-flex}.sb-btn-primary{background:var(--accent);color:var(--text-on-accent);box-shadow:var(--shadow-sm)}.sb-btn-primary:hover:not(.sb-btn-disabled){background:var(--accent-hover);box-shadow:var(--shadow-md)}.sb-btn-secondary{background:var(--surface-2);color:var(--text-primary);border-color:var(--hairline-strong);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-xs)}.sb-btn-secondary:hover:not(.sb-btn-disabled){background:var(--surface-1);border-color:var(--text-tertiary)}.sb-btn-ghost{color:var(--text-primary);background:0 0}.sb-btn-ghost:hover:not(.sb-btn-disabled){background:var(--surface-hover)}.sb-btn-danger{background:var(--danger);color:#fff;box-shadow:var(--shadow-sm)}.sb-btn-danger:hover:not(.sb-btn-disabled){background:#b91c1c}.sb-btn-dots{gap:4px;display:inline-flex}.sb-dot{opacity:.7;width:6px;height:6px;animation:dotPulse 1s infinite var(--ease-in-out);background:currentColor;border-radius:50%}.sb-dot:nth-child(2){animation-delay:.12s}.sb-dot:nth-child(3){animation-delay:.24s}@keyframes dotPulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--bg-1) 0%, var(--bg-2) 50%, var(--bg-1) 100%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.6s infinite shimmer}
