/* Grille brand per pastacraft CLAUDE.md: Oswald + Nunito, red #E31E24, dark header #1a1a1a. Mobile first. */
:root{--red:#E31E24;--dark:#1a1a1a;--ink:#1c1917;--ink2:#5e5852;--ink3:#8c857c;--line:#e5e0d8;--soft:#faf7f2;--ok:#2F7A4E;--ok-soft:#DDEFE3;--warn:#B7791F;--warn-soft:#F8ECD3;--bad:#B23A2E;--bad-soft:#F6DEDB}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;font:16px/1.5 Nunito,system-ui,sans-serif;color:var(--ink);background:#f1eee9}
.wrap{max-width:520px;margin:0 auto;background:#fff;min-height:100vh;display:flex;flex-direction:column}
.hd{background:var(--dark);color:#fff;padding:18px 20px 14px}
.logo{font-family:Oswald,sans-serif;font-weight:600;font-size:24px;letter-spacing:.06em;line-height:1}
.logo span{color:var(--red);font-weight:500}
.sub{font-size:13px;color:#cfc9c0;margin-top:4px;letter-spacing:.08em;text-transform:uppercase}
.steps{display:flex;list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line);counter-reset:s}
.steps li{flex:1;text-align:center;padding:9px 4px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);border-bottom:3px solid transparent;counter-increment:s}
.steps li::before{content:counter(s) " ";opacity:.6}
.steps li.on{color:var(--red);border-bottom-color:var(--red)}
.steps li.done{color:var(--ok)}
.step{padding:18px 20px 24px;display:flex;flex-direction:column;gap:6px}
.lbl{display:flex;flex-direction:column;gap:5px;font-family:Oswald,sans-serif;font-weight:500;font-size:15px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2);margin-top:12px}
.lbl .help{font-family:Nunito,sans-serif;font-weight:400;font-size:12px;text-transform:none;letter-spacing:0;color:var(--ink3)}
.in{font:inherit;padding:12px 12px;border:1px solid var(--line);border-radius:10px;width:100%;background:#fff;color:var(--ink)}
.in:focus{outline:2px solid var(--red);outline-offset:1px;border-color:var(--red)}
textarea.in{resize:vertical}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips button,.slots button{font:inherit;font-weight:700;padding:11px 0;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);cursor:pointer;min-width:52px;flex:1 0 52px}
.chips button.on,.slots button.on{background:var(--red);color:#fff;border-color:var(--red)}
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.slots button{padding:12px 0;font-variant-numeric:tabular-nums}
.slots button:disabled{color:var(--ink3);background:var(--soft);text-decoration:line-through;cursor:not-allowed;border-style:dashed}
.slots .grp{grid-column:1/-1;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin-top:6px}
.slots p{grid-column:1/-1}
.hint{margin:0;font-size:13px;color:var(--ink3);min-height:1.2em}
.hint.bad{color:var(--bad)}
.special{background:var(--warn-soft);border:1px solid var(--warn);border-radius:10px;padding:10px 12px;font-size:14px;margin-top:10px}
.special b{font-family:Oswald,sans-serif;letter-spacing:.04em}
.btn{font:inherit;font-family:Oswald,sans-serif;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:16px;padding:14px 18px;border:0;border-radius:10px;background:var(--red);color:#fff;cursor:pointer;margin-top:18px;width:100%}
.btn:disabled{background:#d9d3ca;color:#8c857c;cursor:not-allowed}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.row{display:flex;gap:10px}
.row .btn{margin-top:14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.summary{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:15px}
.summary b{font-family:Oswald,sans-serif;letter-spacing:.04em}
.summary button{font:inherit;font-size:13px;color:var(--red);background:none;border:0;text-decoration:underline;cursor:pointer;padding:0;margin-left:8px}
.checks{display:flex;gap:14px;flex-wrap:wrap;font-size:14px;margin-top:10px}
.checks label,.opt{display:flex;gap:7px;align-items:flex-start}
.opt{font-size:13.5px;color:var(--ink2);margin-top:12px;line-height:1.4}
.checks input,.opt input{width:18px;height:18px;margin-top:2px}
.err{background:var(--bad-soft);color:var(--bad);padding:10px 12px;border-radius:10px;font-size:14px;margin-top:12px}
.fine{font-size:12px;color:var(--ink3);margin:10px 0 0}
.done{text-align:center;padding:16px 0}
.tick{width:64px;height:64px;border-radius:50%;background:var(--ok-soft);color:var(--ok);font-size:34px;line-height:64px;margin:0 auto 12px}
.done.pending .tick{background:var(--warn-soft);color:var(--warn)}
.done h2{font-family:Oswald,sans-serif;font-weight:600;letter-spacing:.04em;margin:0 0 6px;font-size:26px}
.done p{margin:0 0 10px;color:var(--ink2)}
.ref{font-size:14px;color:var(--ink3);margin:8px 0}
.ref b{font-family:ui-monospace,Menlo,monospace;color:var(--ink);letter-spacing:.1em;font-size:16px}
.ft{margin-top:auto;padding:14px 20px;font-size:12px;color:var(--ink3);border-top:1px solid var(--line);text-align:center}
@media (max-width:380px){.slots{grid-template-columns:repeat(3,1fr)}}
