:root{--bg-primary:#ffffff;--bg-secondary:#f5f4f0;--bg-tertiary:#eeede8;--text-primary:#1a1a18;--text-secondary:#5f5e5a;--text-tertiary:#888780;--border:rgba(0,0,0,0.12);--border-md:rgba(0,0,0,0.22);--success:#0f6e56;--danger:#a32d2d;--info:#185fa5;--warning:#854f0b;--radius-md:8px;--radius-lg:12px;--shadow-lg:0 12px 30px rgba(0,0,0,0.16)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-primary:#1c1c1a;--bg-secondary:#252522;--bg-tertiary:#2e2e2b;--text-primary:#f0efe9;--text-secondary:#a5a49f;--text-tertiary:#6e6d68;--border:rgba(255,255,255,0.1);--border-md:rgba(255,255,255,0.18);--success:#1db38a;--danger:#d95252;--info:#4a8fd4;--warning:#c48020}}[data-theme=dark]{--bg-primary:#1c1c1a;--bg-secondary:#252522;--bg-tertiary:#2e2e2b;--text-primary:#f0efe9;--text-secondary:#a5a49f;--text-tertiary:#6e6d68;--border:rgba(255,255,255,0.1);--border-md:rgba(255,255,255,0.18);--success:#1db38a;--danger:#d95252;--info:#4a8fd4;--warning:#c48020}*{box-sizing:border-box;margin:0;padding:0}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;line-height:1.5;background:var(--bg-secondary);color:var(--text-primary);-webkit-font-smoothing:antialiased}body{min-height:100vh;line-height:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit}.card{background:var(--bg-primary);border:.5px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 1px 3px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.03)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s,background-color .15s,box-shadow .15s;border:none;outline:none;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--text-primary);color:var(--bg-primary)}.btn-primary:hover:not(:disabled){opacity:.85}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:.5px solid var(--border-md)}.btn-secondary:hover:not(:disabled){background:var(--bg-secondary)}.btn-lg{padding:12px 24px;font-size:15px;border-radius:var(--radius-lg)}.input{width:100%;padding:9px 12px;background:var(--bg-secondary);border:.5px solid var(--border-md);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--text-secondary);box-shadow:0 0 0 3px rgba(0,0,0,.06)}.input::placeholder{color:var(--text-tertiary)}.input-error{border-color:var(--danger)!important}.divider{height:.5px;background:var(--border)}.login-progress-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg-secondary) 78%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:wait}.login-progress-panel{display:flex;align-items:center;gap:10px;padding:14px 18px;border:.5px solid var(--border-md);border-radius:var(--radius-lg);background:var(--bg-primary);box-shadow:var(--shadow-lg);color:var(--text-primary);font-size:14px;font-weight:600}.login-progress-spinner{animation:login-progress-spin .85s linear infinite}@keyframes login-progress-spin{to{transform:rotate(1turn)}}