:root{--primary:#6366f1;--primary-dark:#4f46e5;--primary-light:#eef2ff;--primary-glow:#6366f12e;--accent:#f59e0b;--accent-dark:#d97706;--accent-light:#fffbeb;--success:#22c55e;--success-light:#f0fdf4;--error:#ef4444;--error-light:#fef2f2;--bg:#f8fafc;--surface:#fff;--surface-2:#f1f5f9;--text:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--border:#e2e8f0;--border-focus:var(--primary);--radius-sm:8px;--radius:12px;--radius-lg:20px;--radius-xl:28px;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow:0 4px 16px #6366f11a, 0 1px 4px #0000000f;--shadow-lg:0 12px 40px #6366f129, 0 4px 12px #00000014;--shadow-card:0 2px 8px #0000000f, 0 0 0 1px #0000000a;--font:"Nunito", system-ui, sans-serif;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6}*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{color:var(--text);margin:0;font-weight:800;line-height:1.2}p{margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:var(--font)}input,select,textarea{font-family:var(--font)}.btn{border-radius:var(--radius);font-size:15px;font-weight:700;font-family:var(--font);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;text-decoration:none;transition:all .18s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 12px var(--primary-glow)}.btn-primary:hover{background:var(--primary-dark);box-shadow:0 6px 20px var(--primary-glow);color:#fff;text-decoration:none;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--surface);color:var(--primary);border:2px solid var(--primary)}.btn-secondary:hover{background:var(--primary-light);color:var(--primary);text-decoration:none}.btn-ghost{color:var(--text-secondary);border:2px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.btn-accent{background:var(--accent);color:#fff;box-shadow:0 4px 12px #f59e0b4d}.btn-accent:hover{background:var(--accent-dark);color:#fff;text-decoration:none;transform:translateY(-1px);box-shadow:0 6px 20px #f59e0b66}.btn-sm{padding:8px 16px;font-size:14px}.btn-lg{border-radius:var(--radius-lg);padding:16px 32px;font-size:17px}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text);font-size:14px;font-weight:700}.form-input{border:2px solid var(--border);border-radius:var(--radius);width:100%;font-size:15px;font-family:var(--font);color:var(--text);background:var(--surface);outline:none;padding:12px 16px;transition:border-color .15s,box-shadow .15s}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.form-input::placeholder{color:var(--text-muted)}.form-input.error{border-color:var(--error);box-shadow:0 0 0 3px #ef44441f}.form-error{color:var(--error);font-size:13px;font-weight:600}.alert{border-radius:var(--radius);padding:12px 16px;font-size:14px;font-weight:600}.alert-error{background:var(--error-light);color:#b91c1c;border:1px solid #fecaca}.alert-success{background:var(--success-light);color:#15803d;border:1px solid #bbf7d0}.spinner{border:3px solid #fff6;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;display:inline-block}.spinner-primary{border-color:var(--primary-glow);border-top-color:var(--primary)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.navbar{z-index:100;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#ffffffe6;position:sticky;top:0}.navbar-inner{justify-content:space-between;align-items:center;max-width:1140px;height:64px;margin:0 auto;padding:0 24px;display:flex}.navbar-logo{align-items:center;gap:8px;text-decoration:none;display:flex}.navbar-logo:hover{text-decoration:none}.navbar-logo-icon{background:var(--primary);color:#fff;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;font-size:22px;display:flex}.navbar-logo-text{color:var(--text);letter-spacing:-.5px;font-size:20px;font-weight:900}.navbar-logo-text span{color:var(--primary)}.navbar-actions{align-items:center;gap:10px;display:flex}.navbar-greeting{color:var(--text-secondary);margin-right:4px;font-size:14px;font-weight:600}@media (width<=480px){.navbar-greeting{display:none}.navbar-inner{padding:0 16px}.navbar-logo-text{font-size:17px}.navbar-logo-icon{width:32px;height:32px;font-size:18px}}@media (width<=360px){.navbar-inner{height:56px}}.lang-toggle{-webkit-backdrop-filter:blur(8px);background:#ffffff2e;border:1.5px solid #ffffff59;border-radius:100px;align-items:center;gap:2px;padding:3px;display:inline-flex;box-shadow:0 2px 12px #00000026}.lang-toggle-btn{cursor:pointer;color:#ffffffbf;letter-spacing:.5px;white-space:nowrap;background:0 0;border:none;border-radius:100px;align-items:center;gap:4px;padding:5px 11px;font-family:inherit;font-size:12px;font-weight:800;line-height:1;transition:background .15s,color .15s,box-shadow .15s,transform .12s;display:flex}.lang-toggle-flag{font-size:16px;line-height:1}.lang-toggle-btn.active{color:#1a1a2e;background:#fff;transform:scale(1.04);box-shadow:0 2px 8px #0003}.lang-toggle-btn:hover:not(.active){color:#fff;background:#ffffff38;transform:scale(1.03)}.lang-toggle.light{background:#f1f3f5;border-color:#e2e5ea;box-shadow:0 1px 4px #00000014}.lang-toggle.light .lang-toggle-btn{color:#9ca3af}.lang-toggle.light .lang-toggle-btn.active{color:#111827;background:#fff;box-shadow:0 1px 6px #0000001f}.lang-toggle.light .lang-toggle-btn:hover:not(.active){color:#374151;background:#0000000d}
