@charset "UTF-8";:root{--c-bg: #14171c;--c-surface: #1b212a;--c-surface-2: #232b35;--c-elevated: #283139;--c-text: #e8ecf1;--c-muted: #98a3b2;--c-faint: #6b7686;--c-accent: #6fae97;--c-accent-strong: #7fbfa6;--c-accent-soft: rgba(111, 174, 151, .16);--c-accent-text: #8fcdb4;--c-on-accent: #0d1813;--c-danger: #e08a76;--c-danger-text: #efa593;--c-danger-soft: rgba(224, 138, 118, .14);--c-danger-border: rgba(224, 138, 118, .42);--c-on-danger: #2a1410;--c-border: #2c343f;--c-border-soft: #232a33;--texture-dot: rgba(255, 255, 255, .022);--radius: 16px;--radius-sm: 10px;--shadow-soft: 0 1px 2px rgba(0, 0, 0, .3), 0 12px 32px rgba(0, 0, 0, .38);--shadow-pop: 0 8px 28px rgba(111, 174, 151, .28);color-scheme:dark}:root[data-theme=light]{--c-bg: #f3f6f4;--c-surface: #ffffff;--c-surface-2: #eef1ef;--c-elevated: #ffffff;--c-text: #1f2530;--c-muted: #566270;--c-faint: #8a95a3;--c-accent: #4f9b7e;--c-accent-strong: #418a6f;--c-accent-soft: rgba(79, 155, 126, .14);--c-accent-text: #2f7d61;--c-on-accent: #ffffff;--c-danger: #d1674f;--c-danger-text: #b5462f;--c-danger-soft: rgba(209, 103, 79, .1);--c-danger-border: rgba(209, 103, 79, .4);--c-on-danger: #ffffff;--c-border: #d9dfdc;--c-border-soft: #e7ebe8;--texture-dot: rgba(31, 37, 48, .03);--shadow-soft: 0 1px 2px rgba(31, 37, 48, .08), 0 12px 32px rgba(31, 37, 48, .1);--shadow-pop: 0 8px 24px rgba(79, 155, 126, .26);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--c-bg);background-image:radial-gradient(var(--texture-dot) 1px,transparent 1px);background-size:4px 4px;color:var(--c-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;transition:background-color .25s ease,color .25s ease}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}[tabindex="-1"]:focus{outline:none}.field{display:flex;flex-direction:column;gap:.4rem}.field .label{font-size:.8rem;font-weight:600;color:var(--c-muted)}.control{width:100%;padding:.72rem .9rem;font:inherit;font-size:1rem;color:var(--c-text);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--radius-sm);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.control::placeholder{color:var(--c-faint)}.control:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-soft)}.control[aria-invalid=true]{border-color:var(--c-danger)}.field-error{font-size:.8rem;color:var(--c-danger-text)}.alert{margin:0;padding:.7rem .85rem;font-size:.88rem;border-radius:var(--radius-sm);line-height:1.45}.alert-error{color:var(--c-danger-text);background:var(--c-danger-soft);border:1px solid var(--c-danger-border)}.alert-success{color:var(--c-accent-text);background:var(--c-accent-soft);border:1px solid var(--c-accent-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.78rem 1.15rem;font-size:.98rem;font-weight:650;border:1px solid transparent;border-radius:var(--radius-sm);transition:transform .08s ease,background .15s ease,box-shadow .15s ease,border-color .15s ease,color .15s ease}.btn svg{width:1.05em;height:1.05em;flex-shrink:0}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default}.btn-block{width:100%}.btn-primary{color:var(--c-on-accent);background:var(--c-accent);box-shadow:var(--shadow-pop)}.btn-primary:hover:not(:disabled){background:var(--c-accent-strong)}.btn-ghost{background:transparent;border-color:var(--c-border);color:var(--c-muted)}.btn-ghost:hover:not(:disabled){color:var(--c-text);border-color:var(--c-accent);background:var(--c-surface-2)}.btn-danger{color:var(--c-on-danger);background:var(--c-danger)}.btn-danger:hover:not(:disabled){background:var(--c-danger-text)}.link{background:none;border:none;padding:0;color:var(--c-accent-text);font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.link:hover{color:var(--c-accent-strong)}.spinner{width:16px;height:16px;border:2px solid color-mix(in srgb,currentColor 28%,transparent);border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
