:root,html[data-theme=light],html.light{--bg: #f5f7fa;--card: #ffffff;--muted: #64748b;--text: #0f172a;--acc: #3b82f6;--err: #ef4444;--ok: #22c55e;--radius: 14px;--space: 14px;--shadow: 0 10px 30px rgba(0, 0, 0, .08);--bg-gradient: radial-gradient(1200px 600px at 70% -10%, #e0e7ff 0%, #f5f7fa 50%, #f5f7fa 100%);--card-gradient: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(249, 250, 251, .95));--card-border: rgba(0, 0, 0, .1);--input-bg: #f8fafc;--input-border: rgba(0, 0, 0, .2);--input-focus-shadow: rgba(59, 130, 246, .15);--toast-bg-start: rgba(255, 255, 255, .95);--toast-bg-end: rgba(249, 250, 251, .95);--toast-border: rgba(0, 0, 0, .12);--button-gradient-start: #3b82f6;--button-gradient-end: #60a5fa;--button-shadow: rgba(59, 130, 246, .3);--button-hover-shadow: rgba(59, 130, 246, .4);--button-text: #ffffff;--button-secondary-bg-start: #e2e8f0;--button-secondary-bg-end: #cbd5e1;--button-secondary-text: #0f172a;--button-secondary-shadow: rgba(0, 0, 0, .1);--spinner-border: rgba(0, 0, 0, .2);--divider: rgba(0, 0, 0, .08)}html[data-theme=dark],html.dark{--bg: #0f1221;--card: #171b2e;--muted: #8c93b2;--text: #e8ecff;--acc: #6a8dff;--err: #ff6a6a;--ok: #22c55e;--radius: 14px;--space: 14px;--shadow: 0 10px 30px rgba(0, 0, 0, .35);--bg-gradient: radial-gradient(1200px 600px at 70% -10%, #1b2143 0%, #0f1221 50%, #0f1221 100%);--card-gradient: linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .02));--card-border: rgba(255, 255, 255, .08);--input-bg: rgba(13, 16, 32, .6);--input-border: rgba(255, 255, 255, .12);--input-focus-shadow: rgba(106, 141, 255, .15);--toast-bg-start: rgba(17, 22, 43, .95);--toast-bg-end: rgba(23, 27, 46, .95);--toast-border: rgba(255, 255, 255, .12);--button-gradient-start: #6a8dff;--button-gradient-end: #7ad7ff;--button-shadow: rgba(106, 141, 255, .3);--button-hover-shadow: rgba(106, 141, 255, .4);--button-text: #0c1226;--button-secondary-bg-start: #232846;--button-secondary-bg-end: #2a3254;--button-secondary-text: #e8ecff;--button-secondary-shadow: rgba(0, 0, 0, .2);--spinner-border: rgba(255, 255, 255, .3);--divider: rgba(255, 255, 255, .08)}*,*:before,*:after{transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease}html.no-transition *,html.no-transition *:before,html.no-transition *:after{transition:none!important}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{margin:0;background:var(--bg-gradient);background-attachment:fixed;color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--acc);text-decoration:none;transition:opacity .2s ease}a:hover{opacity:.8}.app{min-height:100%}.page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-wrap{width:100%;max-width:420px}.brand{text-align:center;font-weight:700;font-size:20px;letter-spacing:.5px;margin-bottom:18px;color:var(--text)}.brand span{color:var(--acc)}.card{background:var(--card-gradient);border:1px solid var(--card-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:32px;border-radius:var(--radius);box-shadow:var(--shadow)}h1{margin:0 0 20px;font-size:26px;font-weight:700;color:var(--text)}form{display:flex;flex-direction:column;gap:16px}.field{margin-bottom:0}.field label{display:block;margin-bottom:8px;color:var(--text);font-size:14px;font-weight:500}.field input{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);outline:none;transition:all .2s ease;font-size:15px}.field input::placeholder{color:var(--muted);opacity:.6}.field input:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--input-focus-shadow);background:var(--input-bg)}.field input:disabled{opacity:.5;cursor:not-allowed}.field.invalid input{border-color:var(--err)}.field.invalid input:focus{box-shadow:0 0 0 3px #ff6a6a26}.error{color:var(--err);margin:6px 2px 0;font-size:13px;display:block}.btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:13px 20px;background:linear-gradient(135deg,var(--button-gradient-start),var(--button-gradient-end));color:var(--button-text);font-weight:600;font-size:15px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px var(--button-shadow)}.btn:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 6px 16px var(--button-hover-shadow)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn.loading{pointer-events:none}.btn.secondary{background:linear-gradient(135deg,var(--button-secondary-bg-start),var(--button-secondary-bg-end));color:var(--button-secondary-text);box-shadow:0 4px 12px var(--button-secondary-shadow)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--spinner-border);border-top-color:currentColor;animation:spin .8s linear infinite}.links{margin-top:16px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px}.links a{color:var(--acc)}.meta{margin-top:20px;padding-top:20px;border-top:1px solid var(--divider);color:var(--muted);text-align:center;font-size:13px;line-height:1.5}.toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,var(--toast-bg-start),var(--toast-bg-end));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--toast-border);padding:14px 20px;border-radius:12px;box-shadow:var(--shadow);z-index:1000;min-width:280px;text-align:center;font-size:14px}.toast.success{border-color:#22c55e66;color:var(--ok)}.toast.error{border-color:#ff6a6a80;color:var(--err)}.dashboard-container{background:var(--card-gradient);border:1px solid var(--card-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:40px;border-radius:var(--radius);box-shadow:var(--shadow);max-width:600px;margin:0 auto;text-align:center}.user-info{margin:24px 0;padding:24px;background:var(--input-bg);border-radius:10px;border:1px solid var(--card-border)}.user-info p{margin:10px 0;color:var(--muted);font-size:15px}.user-info strong{color:var(--text);font-weight:600}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:520px){.card{padding:24px}h1{font-size:22px}.brand{font-size:18px}.links{flex-direction:column;align-items:center}.toast{min-width:260px;left:16px;right:16px;transform:none}}.w-full{width:100%}.text-center{text-align:center}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}
