:root{--bg:#fbf7f1;--fg:#2a211c;--muted:#6d5f55;--accent:#8b2e2e;--card:#fff;--border:#e4dacd;--error-bg:#fbe9e7;--error-fg:#8b2e2e;--on-accent:#fff;font-family:-apple-system,PingFang TC,PingFang SC,Noto Sans TC,system-ui,sans-serif;font-size:20px;line-height:1.6}@media (prefers-color-scheme:dark){:root{--bg:#1d1916;--fg:#f1e9df;--muted:#b3a597;--card:#29231f;--border:#3d342d;--accent:#e08a7a;--error-bg:#3a1f1c;--error-fg:#f4b4a8;--on-accent:#1d1916}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom);margin:0}button,a.button{min-width:48px;min-height:48px;font-size:1rem}.home,.signIn{max-width:900px;margin:0 auto;padding-top:24px}.signIn{max-width:520px}.homeHeader{justify-content:space-between;align-items:center;gap:16px;display:flex}.homeHeader h1{color:var(--accent);margin:0;font-size:2rem}.langToggle{background:var(--card);color:var(--fg);border:2px solid var(--border);border-radius:999px;padding:8px 20px}.tiles{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:32px;display:grid}.tile{background:var(--card);border:2px solid var(--border);color:var(--fg);border-radius:20px;flex-direction:column;justify-content:center;gap:8px;min-height:180px;padding:36px 28px;text-decoration:none;display:flex}.tile:active{transform:scale(.98)}.tileTitle{font-size:1.8rem;font-weight:700}.tileHint{color:var(--muted)}.homeFooter{color:var(--muted);justify-content:space-between;align-items:center;margin-top:40px;font-size:.9rem;display:flex}.button,a.button{border:2px solid var(--border);background:var(--card);min-height:52px;color:var(--accent);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;padding:0 24px;font-size:1rem;text-decoration:none;display:inline-flex}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);width:100%}.linkButton{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:1rem;text-decoration:underline}.signIn form{flex-direction:column;gap:12px;display:flex}.signIn input{border:2px solid var(--border);background:var(--card);color:var(--fg);border-radius:12px;padding:12px 14px;font-size:1.2rem}.signIn #code{letter-spacing:.4em;text-align:center;font-size:2rem}.or{text-align:center;color:var(--muted);margin:20px 0}.error{background:var(--error-bg);color:var(--error-fg);border-radius:12px;padding:12px 16px}.loading,.comingSoon{color:var(--muted);text-align:center;margin-top:80px;font-size:1.4rem}
