.error-boundary{background:var(--bg-base);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.error-boundary__card{background:var(--bg-raised);border:1px solid var(--border-default);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:420px;padding:2.5rem 2rem;display:flex}.error-boundary__icon{color:var(--danger);font-size:2.5rem}.error-boundary__title{font-size:var(--text-xl);color:var(--text-primary);margin:0;font-weight:700}.error-boundary__message{font-size:var(--text-sm);color:var(--text-secondary);word-break:break-word;margin:0;line-height:1.6}.error-boundary__btn{background:var(--violet-500);color:#fff;font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);border:none;border-radius:8px;margin-top:.5rem;padding:.6rem 1.4rem;font-weight:600}.error-boundary__btn:hover{background:var(--violet-400)}.page-loader{background:var(--bg-base);justify-content:center;align-items:center;min-height:100vh;display:flex}.page-loader__spinner{border:3px solid var(--border-subtle);border-top-color:var(--violet-500);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite page-loader-spin}@keyframes page-loader-spin{to{transform:rotate(360deg)}}:root{--void:#04030a;--bg-deep:#070612;--bg-base:#0c0b1a;--bg-raised:#111028;--bg-float:#191733;--bg-overlay:#221f40;--ink-950:var(--void);--ink-900:var(--bg-deep);--ink-800:var(--bg-base);--ink-700:var(--bg-raised);--ink-600:var(--bg-float);--ink-500:var(--bg-overlay);--ink-400:#2e2a50;--violet-900:#160e3a;--violet-800:#241a60;--violet-700:#3b2a8e;--violet-600:#5438c2;--violet-500:#7252e8;--violet-400:#9475f0;--violet-300:#b8a2f8;--violet-200:#d8ccfd;--violet-glow:#7252e852;--violet-soft:#7252e81a;--violet-dim:#7252e80f;--gold:#c8a84a;--gold-dim:#786030;--gold-soft:#c8a84a1a;--gold-glow:#c8a84a38;--text-primary:#eeedf8;--text-secondary:#9e9bbe;--text-muted:#5c5878;--text-faint:#33304e;--border-ghost:#ffffff0a;--border-faint:#ffffff0a;--border-subtle:#ffffff14;--border-default:#ffffff21;--border-strong:#ffffff38;--border-emphasis:#7252e859;--border-violet:#7252e84d;--border-violet-strong:#7252e88c;--success:#22c55e;--success-soft:#22c55e1f;--danger:#f43f5e;--danger-soft:#f43f5e1f;--warning:#f59e0b;--warning-soft:#f59e0b1f;--info:#38bdf8;--info-soft:#38bdf81f;--surface-base:var(--void);--surface-1:var(--bg-deep);--surface-2:var(--bg-base);--surface-3:var(--bg-raised);--surface-4:var(--bg-float);--shadow-sm:0 2px 8px -2px #00000073;--shadow-md:0 6px 20px -4px #0009;--shadow-lg:0 16px 48px -8px #000000bf;--shadow-violet:0 8px 32px -4px #7252e847;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:22px;--radius-2xl:32px;--font-display:"Cinzel", Georgia, serif;--font-body:"Inter", system-ui, sans-serif;--text-xs:.7rem;--text-sm:.82rem;--text-base:.92rem;--text-md:1.05rem;--text-lg:1.25rem;--text-xl:1.6rem;--text-2xl:2.2rem;--text-3xl:3.4rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-io:cubic-bezier(.4, 0, .2, 1);--duration-fast:.15s;--duration-base:.22s;--duration-slow:.35s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background: radial-gradient(ellipse 90% 55% at 50% -5%, #7252e829 0%, transparent 65%),  radial-gradient(ellipse 50% 60% at -5% 40%, #5a3cc81a 0%, transparent 60%),  radial-gradient(ellipse 55% 40% at 105% 90%, #c8a84a12 0%, transparent 55%),  radial-gradient(ellipse 45% 35% at 0% 95%, #3c50b40f 0%, transparent 55%), var(--void);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;font-size:15px;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:9999;opacity:1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");position:fixed;inset:0}.btn-primary{background:var(--violet-500);color:#fff;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;font-family:var(--font-body);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), transform var(--duration-fast) var(--ease-out);border:none;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.5rem;display:inline-flex;position:relative;overflow:hidden}.btn-primary:hover:not(:disabled){background:var(--violet-400);box-shadow:0 6px 24px -4px var(--violet-glow);transform:translateY(-1px)}.btn-primary:active:not(:disabled){background:var(--violet-600);box-shadow:none;transform:translateY(1px)}.btn-primary:disabled{opacity:.35;cursor:not-allowed}.btn-primary:after{content:"";opacity:0;background:radial-gradient(circle,#ffffff2e 0%,#0000 60%);transition:opacity .3s;position:absolute;inset:0}.btn-primary:active:after{opacity:1}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:500;font-family:var(--font-body);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.5rem;display:inline-flex}.btn-secondary:hover:not(:disabled){background:var(--bg-float);border-color:var(--border-strong);transform:translateY(-1px)}.btn-secondary:active:not(:disabled){transform:translateY(0)}.btn-secondary:disabled{opacity:.35;cursor:not-allowed}.btn-ghost{background:var(--violet-dim);color:var(--violet-300);border:1px solid var(--border-violet);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:500;font-family:var(--font-body);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.3rem;display:inline-flex}.btn-ghost:hover:not(:disabled){background:var(--violet-soft);border-color:var(--border-violet-strong);transform:translateY(-1px)}.btn-ghost:active:not(:disabled){transform:translateY(0)}.btn-ghost:disabled{opacity:.35;cursor:not-allowed}.btn-danger{background:var(--danger-soft);color:#fda4af;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;font-family:var(--font-body);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);border:1px solid #f43f5e47;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.5rem;display:inline-flex}.btn-danger:hover:not(:disabled){background:#f43f5e2e;border-color:#f43f5e80;transform:translateY(-1px)}.btn-danger:disabled{opacity:.35;cursor:not-allowed}.input-base{background:var(--bg-float);border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-size:var(--text-base);font-family:var(--font-body);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);padding:.65rem 1rem}.input-base::placeholder{color:var(--text-muted)}.input-base:focus{border-color:var(--border-violet);box-shadow:0 0 0 3px var(--violet-dim);outline:none}.card-base{background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:border-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out)}.card-base:hover{border-color:var(--border-default);box-shadow:var(--shadow-md);transform:translateY(-2px)}.eyebrow{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--violet-300);font-weight:700}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}.skeleton{background:linear-gradient(90deg, var(--bg-raised) 25%, var(--bg-float) 50%, var(--bg-raised) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeSlideUp var(--duration-slow) var(--ease-out) both}.animate-in--delay-1{animation-delay:60ms}.animate-in--delay-2{animation-delay:.12s}.animate-in--delay-3{animation-delay:.18s}.animate-in--delay-4{animation-delay:.24s}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;align-items:center;gap:.5rem;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-md);font-size:.875rem;font-family:var(--font-body);pointer-events:all;align-items:center;gap:.75rem;max-width:360px;padding:.65rem 1rem;animation:.25s both toast-in;display:flex;box-shadow:0 4px 20px #00000080}.toast--error{background:color-mix(in srgb, #ef4444 15%, var(--bg-raised));color:#fca5a5;border:1px solid #ef444466}.toast--info{background:color-mix(in srgb, var(--gold) 12%, var(--bg-raised));border:1px solid color-mix(in srgb, var(--gold) 35%, transparent);color:var(--text-primary)}.toast__msg{flex:1;line-height:1.4}.toast__close{color:currentColor;opacity:.6;cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:.75rem}.toast__close:hover{opacity:1}.toast--confirm{background:color-mix(in srgb, #f59e0b 12%, var(--bg-raised));color:var(--text-primary);border:1px solid #f59e0b59;flex-direction:column;align-items:flex-start;gap:.5rem}.toast__actions{align-self:flex-end;gap:.5rem;display:flex}.toast__btn{border-radius:var(--radius-sm);color:currentColor;cursor:pointer;font-size:.8rem;font-family:var(--font-body);background:0 0;border:1px solid;padding:.2rem .7rem}.toast__btn--confirm{color:#fca5a5;background:#ef444433;border-color:#ef4444}.toast__btn--cancel{opacity:.6}.toast__btn:hover{opacity:1;filter:brightness(1.2)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-transition-wrapper{animation:.2s ease-out both page-enter}@keyframes page-enter{0%{opacity:0}to{opacity:1}}
