:root{--color-bg-app: #020617;--color-bg-elevated: #020617;--color-bg-surface: #030712;--color-bg-subtle: #0b1120;--color-bg-soft: #f9fafb;--color-border-subtle: rgba(148, 163, 184, .35);--color-border-strong: rgba(148, 163, 184, .7);--color-text-primary: #f9fafb;--color-text-secondary: #9ca3af;--color-text-muted: #6b7280;--color-text-inverted: #020617;--color-accent-primary: #4f46e5;--color-accent-primary-soft: #6366f1;--color-accent-secondary: #7c3aed;--color-accent-focus-ring: #a5b4fc;--color-danger: #ef4444;--color-danger-soft: #fee2e2;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .25);--shadow-sm: 0 2px 8px rgba(15, 23, 42, .35);--shadow-md: 0 12px 30px rgba(15, 23, 42, .55);--shadow-lg: 0 24px 60px rgba(15, 23, 42, .7);--font-family-sans: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--line-height-tight: 1.1;--line-height-snug: 1.3;--line-height-normal: 1.5;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--bp-sm: 640px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1280px;--transition-fast: .15s ease-out;--transition-normal: .2s ease-out;--transition-slow: .3s ease;--duration-fast: .12s;--duration-normal: .2s;--duration-slow: .28s;--motion-ease-out: cubic-bezier(.16, 1, .3, 1)}body{margin:0;min-height:100vh;font-family:var(--font-family-sans);font-size:var(--font-size-md);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-app)}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--radius-pill);border:1px solid transparent;font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background-color var(--transition-normal),border-color var(--transition-normal),color var(--transition-normal),transform var(--transition-fast),box-shadow var(--transition-normal);background:#0f172ae6;color:var(--color-text-primary);box-shadow:var(--shadow-xs)}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn:focus-visible{outline:2px solid var(--color-accent-focus-ring);outline-offset:2px}.btn.primary{background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));border-color:var(--color-accent-primary);color:var(--color-text-primary);box-shadow:var(--shadow-md)}.btn.primary:hover{box-shadow:var(--shadow-lg)}.btn.secondary{background:#0f172ab3;border-color:var(--color-border-subtle);color:var(--color-text-primary)}.btn.secondary:hover{background:#0f172af2;border-color:var(--color-border-strong)}.btn.ghost{background:transparent;border-color:var(--color-border-subtle);color:var(--color-text-secondary)}.btn.ghost:hover{background:#0f172ab3;color:var(--color-text-primary)}.btn.danger{background:var(--color-danger);border-color:var(--color-danger);color:#fef2f2;font-weight:500}.btn.danger.retry{background:#c00;color:#fff}.btn.danger.cancel{background:#fff;border:1px solid #cc0000;color:#c00}.btn.danger:hover{background:#dc2626}.surface{background:radial-gradient(circle at top left,#111827,#020617);border-radius:var(--radius-lg);border:1px solid var(--color-border-subtle);box-shadow:var(--shadow-md)}.surface-soft{background:var(--color-bg-soft);border-radius:var(--radius-md);border:1px solid rgba(209,213,219,.7);box-shadow:0 1px 3px #0f172a14}.layout-page{max-width:1200px;margin:0 auto;padding-inline:clamp(16px,4vw,40px);padding-block:clamp(20px,5vh,40px)}.text-muted{color:var(--color-text-secondary)}.text-label{font-size:var(--font-size-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-secondary)}.stack-2{display:flex;flex-direction:column;gap:var(--space-2)}.stack-3{display:flex;flex-direction:column;gap:var(--space-3)}.stack-4{display:flex;flex-direction:column;gap:var(--space-4)}.stack-6{display:flex;flex-direction:column;gap:var(--space-6)}.text-title{color:var(--color-text-primary)}.text-subtitle{color:var(--color-text-secondary)}.text-inverted{color:var(--color-text-inverted)}@media(max-width:768px){.layout-page{padding-inline:16px}}
