:root{--ink-900: #0f172a;--ink-800: #1e293b;--ink-700: #334155;--ink-500: #64748b;--ink-400: #94a3b8;--ink-200: #e2e8f0;--ink-100: #f1f5f9;--ink-50: #f8fafc;--white: #ffffff;--brand-700: #4338ca;--brand-600: #4f46e5;--brand-500: #6366f1;--brand-100: #e0e7ff;--success-600: #059669;--success-500: #10b981;--success-100: #d1fae5;--warn-600: #d97706;--warn-500: #f59e0b;--warn-100: #fef3c7;--danger-600: #dc2626;--danger-100: #fee2e2;--theme-accent: #f59e0b;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 22px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgb(15 23 42 / .08);--shadow-md: 0 6px 16px rgb(15 23 42 / .1);--shadow-lg: 0 18px 42px rgb(15 23 42 / .18);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--font-sans: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 20px;--text-xl: 26px;--proj-sm: clamp(18px, 1.6vw, 28px);--proj-md: clamp(24px, 2.4vw, 42px);--proj-lg: clamp(34px, 3.8vw, 68px);--proj-xl: clamp(46px, 6vw, 108px);--duration-fast: .14s;--duration-med: .32s;--duration-slow: .62s}@media (prefers-reduced-motion: reduce){:root{--duration-fast: 1ms;--duration-med: 1ms;--duration-slow: 1ms}*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-md);color:var(--ink-800);background:var(--ink-50);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p{margin:0}button{font:inherit;cursor:pointer}a{color:var(--brand-600)}:focus-visible{outline:3px solid var(--brand-500);outline-offset:2px;border-radius:var(--radius-sm)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:10px 16px;border:1px solid transparent;border-radius:var(--radius-md);background:var(--white);color:var(--ink-800);font-weight:600;font-size:var(--text-sm);box-shadow:var(--shadow-sm);transition:transform var(--duration-fast),background var(--duration-fast),box-shadow var(--duration-fast)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn--primary{background:var(--brand-600);color:var(--white)}.btn--ghost{background:transparent;border-color:var(--ink-200);box-shadow:none}.btn--danger{background:var(--danger-600);color:var(--white)}.btn--success{background:var(--success-600);color:var(--white)}.btn--lg{padding:14px 22px;font-size:var(--text-md);border-radius:var(--radius-lg)}.btn--block{width:100%}.card{background:var(--white);border:1px solid var(--ink-200);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-4)}.field label{font-size:var(--text-sm);font-weight:600;color:var(--ink-700)}.field input,.field select,.field textarea{font:inherit;padding:10px 12px;border:1px solid var(--ink-200);border-radius:var(--radius-md);background:var(--white);color:var(--ink-900)}.field .hint{font-size:var(--text-xs);color:var(--ink-500)}.alert{padding:12px 14px;border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-4)}.alert--error{background:var(--danger-100);color:#991b1b}.alert--info{background:var(--brand-100);color:var(--brand-700)}.alert--success{background:var(--success-100);color:#065f46}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);background:var(--ink-100);color:var(--ink-700);font-size:var(--text-xs);font-weight:600}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.muted{color:var(--ink-500);font-size:var(--text-sm)}.empty-state{padding:var(--space-6);text-align:center;color:var(--ink-500);border:1px dashed var(--ink-200);border-radius:var(--radius-lg);background:var(--white)}.spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--ink-200);border-top-color:var(--brand-600);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
