:root{--bg:#fff8f0;--text:#2b2b2b;--primary:#e8734a;--primary-dark:#c85a33;--border:#b9b0a5;--focus:#1a66ff}*{box-sizing:border-box}html{font-size:22px}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.4}#app{flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;padding:1rem;display:flex}section{text-align:center;flex-direction:column;gap:.75rem;padding-top:1rem;display:flex}h1{margin:.5rem 0;font-size:1.5rem}.lead{margin:0;font-size:1rem}.logo{border-radius:20%;margin:1.5rem auto 0}.btn{cursor:pointer;border:none;border-radius:16px;justify-content:center;align-items:center;width:100%;min-height:72px;padding:.75rem;font-size:1.2rem;font-weight:700;text-decoration:none;display:flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:active{background:var(--primary-dark)}.btn-secondary{color:var(--text);border:3px solid var(--border);background:0 0;min-height:60px}.btn-big{min-height:84px}.btn:disabled{opacity:.6;cursor:wait}.link-small{color:var(--text);margin-top:1.5rem;font-size:.85rem;text-decoration:underline}.mood-list{flex-direction:column;gap:.7rem;display:flex}.mood{border:3px solid var(--border);min-height:84px;color:var(--text);cursor:pointer;text-align:left;background:#fff;border-radius:16px;align-items:center;gap:1rem;padding:.6rem 1rem;font-size:1.2rem;font-weight:700;display:flex}.mood:active{border-color:var(--primary);background:#ffeee5}.mood svg{flex:0 0 64px;width:64px;height:64px}.needs-list{flex-direction:column;gap:.7rem;margin-bottom:.5rem;display:flex}.need{border:3px solid var(--border);letter-spacing:.05em;cursor:pointer;background:#fff;border-radius:16px;align-items:center;gap:1rem;min-height:76px;padding:.6rem 1rem;font-size:1.25rem;font-weight:800;display:flex}.need input{width:34px;height:34px;accent-color:var(--primary);cursor:pointer;flex:0 0 34px}.need:has(input:checked){border-color:var(--primary);background:#ffeee5}.done-check{width:140px;height:140px;margin:2.5rem auto .5rem}.code-input{border:3px solid var(--border);letter-spacing:.35em;text-align:center;width:100%;min-height:84px;color:var(--text);background:#fff;border-radius:16px;font-size:2.2rem;font-weight:800}.code-input:focus{border-color:var(--primary);outline:none}.consent-text{text-align:left}.error{color:#a4211d;margin:.25rem 0 0;font-size:1rem;font-weight:700}:focus-visible{outline:4px solid var(--focus);outline-offset:2px}
