:root{--bg:#0a0a0b;--surface:#15151a;--surface-2:#1e1e25;--text:#ece7df;--muted:#8b857b;--border:#2a2a31;--accent:#d8a657;--accent-soft:#352c1d;--danger:#c25a4a;--done:#93a35e;--done-soft:#21260f;--radius:20px}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font-family:inherit;cursor:pointer}a{color:inherit;text-decoration:none}.topbar{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;height:calc(56px + env(safe-area-inset-top, 0));padding:env(safe-area-inset-top,0) .75rem 0;pointer-events:none}.topbar button{pointer-events:auto;width:44px;height:44px;border-radius:50%;border:none;background:rgba(0,0,0,.35);color:var(--text);display:grid;place-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.topbar button:active{background:rgba(0,0,0,.55)}.auth-wrap{max-width:440px;margin:0 auto;padding:clamp(2.5rem,12vw,5rem) 1.25rem 3rem}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem 1.4rem;margin-bottom:1.25rem}.auth-title{font-size:1.5rem;margin:0 0 .35rem;letter-spacing:-.02em}.auth-sub{color:var(--muted);margin:0 0 1.4rem;font-size:.92rem;line-height:1.5}.auth-h2{font-size:1rem;margin:0 0 1rem;color:var(--text)}.auth-field{display:block;margin-bottom:.9rem}.auth-field span{display:block;font-size:.82rem;color:var(--muted);margin-bottom:.35rem}.auth-input{width:100%;padding:.7rem .8rem;font-size:1rem;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.auth-input:focus{outline:none;border-color:var(--accent)}.auth-btn{width:100%;padding:.75rem 1rem;font-size:1rem;font-weight:600;border:none;border-radius:12px;background:var(--accent);color:#0a0a0b;margin-top:.3rem}.auth-btn:disabled{opacity:.55}.auth-btn-ghost{background:none;border:1px solid var(--border);color:var(--text)}.auth-err{color:var(--danger)}.auth-err,.auth-ok{font-size:.88rem;margin:.2rem 0 .8rem}.auth-ok{color:var(--accent)}.auth-note{background:var(--accent-soft);border:1px solid var(--accent);color:var(--text);padding:.7rem .9rem;border-radius:12px;font-size:.88rem;margin-bottom:1.1rem;line-height:1.5}.auth-link{display:inline-block;color:var(--muted);font-size:.9rem;margin-top:.4rem}