:root{--brand-50: #eef2ff;--brand-100: #e0e7ff;--brand-300: #a5b4fc;--brand-500: #6366f1;--brand-600: #4f46e5;--brand-700: #4338ca;--accent-500: #06b6d4;--success-500: #10b981;--warning-500: #f59e0b;--danger-500: #ef4444;--danger-600: #dc2626;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 26px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-8: 48px;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--ease: cubic-bezier(.22, 1, .36, 1);--dur-fast: .14s;--dur: .24s}:root,[data-theme=light]{--bg: #f6f7fb;--bg-elev: #ffffff;--bg-subtle: #eef1f7;--surface: #ffffff;--surface-2: #f3f5fa;--border: #e4e8f0;--border-strong: #d2d8e4;--text: #12172a;--text-muted: #5a6480;--text-faint: #8b94ad;--brand: var(--brand-600);--brand-contrast: #ffffff;--ring: rgba(79, 70, 229, .35);--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--shadow-md: 0 4px 12px rgba(16, 24, 40, .08);--shadow-lg: 0 18px 40px rgba(16, 24, 40, .14);--glass: rgba(255, 255, 255, .7)}[data-theme=dark]{--bg: #0b1020;--bg-elev: #121933;--bg-subtle: #0f1630;--surface: #141c38;--surface-2: #1b2444;--border: #26305a;--border-strong: #33406e;--text: #eaeefb;--text-muted: #a4adce;--text-faint: #6e78a0;--brand: var(--brand-500);--brand-contrast: #ffffff;--ring: rgba(129, 140, 248, .45);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 6px 18px rgba(0, 0, 0, .45);--shadow-lg: 0 24px 50px rgba(0, 0, 0, .55);--glass: rgba(20, 28, 56, .7)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:var(--text-base);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0 0 var(--space-3);line-height:1.2;font-weight:700}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}p{margin:0 0 var(--space-3)}:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring);border-radius:var(--radius-sm)}.container{width:100%;max-width:1180px;margin:0 auto;padding:0 var(--space-4)}.row{display:flex;gap:var(--space-3);align-items:center}.col{display:flex;flex-direction:column;gap:var(--space-3)}.spread{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.wrap{flex-wrap:wrap}.grow{flex:1}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.center{text-align:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.card-pad-0{padding:0}.card-hover{transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.card-hover:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn{--_bg: var(--surface-2);--_fg: var(--text);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font:inherit;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--_bg);color:var(--_fg);padding:10px 16px;border-radius:var(--radius-md);transition:transform var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),opacity var(--dur-fast);white-space:nowrap}.btn:hover{text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{--_bg: var(--brand);--_fg: var(--brand-contrast);border-color:transparent;box-shadow:0 6px 16px -6px var(--ring)}.btn-primary:hover{filter:brightness(1.05)}.btn-ghost{--_bg: transparent;border-color:transparent}.btn-ghost:hover{background:var(--surface-2)}.btn-outline{--_bg: transparent;border-color:var(--border-strong)}.btn-danger{--_bg: var(--danger-500);--_fg: #fff;border-color:transparent}.btn-block{width:100%}.btn-sm{padding:6px 12px;font-size:var(--text-sm);border-radius:var(--radius-sm)}.btn-lg{padding:13px 22px;font-size:var(--text-lg)}.field{display:flex;flex-direction:column;gap:6px}.label{font-size:var(--text-sm);font-weight:600;color:var(--text-muted)}.input,.textarea,.select{width:100%;font:inherit;color:var(--text);background:var(--bg-elev);border:1px solid var(--border-strong);padding:11px 13px;border-radius:var(--radius-md);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.input:focus,.textarea:focus,.select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--ring)}.textarea{min-height:130px;resize:vertical;line-height:1.5}.error-text{color:var(--danger-500);font-size:var(--text-sm)}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:600;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.pill-brand{background:var(--brand-50);color:var(--brand-700);border-color:var(--brand-100)}[data-theme=dark] .pill-brand{background:#6366f129;color:var(--brand-300);border-color:transparent}.pill-success{background:#10b98124;color:var(--success-500);border-color:transparent}.pill-warning{background:#f59e0b29;color:var(--warning-500);border-color:transparent}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.divider{height:1px;background:var(--border);border:0;margin:var(--space-4) 0}.stack-sm>*+*{margin-top:var(--space-3)}.grid{display:grid;gap:var(--space-4)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}@media (max-width: 900px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.grid-2,.grid-3{grid-template-columns:1fr}.hide-sm{display:none!important}h1{font-size:var(--text-2xl)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
