:root{--bg: #fff8ec;--ink: #2b2d42;--muted: #6b6f85;--card: #ffffff;--accent: #f4a300;--accent-ink: #2b2d42;--danger: #c0392b;--line: #e6dfcf;--radius: 16px;--shadow: 0 4px 0 rgba(43, 45, 66, .12)}@media(prefers-color-scheme:dark){:root{--bg: #1d1f2b;--ink: #f4f1ea;--muted: #a3a7bd;--card: #2a2d3e;--line: #3b3f55;--danger: #ff7b6b}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Fredoka,Nunito,system-ui,sans-serif;font-size:18px;line-height:1.4}main.card{max-width:640px;margin:24px auto;padding:24px 16px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow)}main.narrow{max-width:420px}h1{margin:0 0 8px;font-size:1.7rem}.muted{color:var(--muted)}.center{text-align:center;padding:48px 16px}.error{color:var(--danger);font-weight:600}form,fieldset{display:grid;gap:12px}fieldset{border:1px solid var(--line);border-radius:12px;padding:12px;margin:0}label{display:grid;gap:4px;font-weight:600}input,select{min-height:48px;padding:8px 12px;border:2px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);font:inherit}.btn,.link,.pic,.kid{font:inherit;cursor:pointer;color:var(--ink)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:48px;padding:8px 18px;border:2px solid var(--ink);border-radius:14px;background:var(--card);box-shadow:var(--shadow);text-decoration:none;font-weight:600}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn.small{min-height:48px;padding:4px 12px;font-size:.9rem}.btn:disabled,.pic:disabled{opacity:.45;cursor:not-allowed}.link{background:none;border:0;padding:12px 0;text-decoration:underline}.row{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}.kids,.manage{list-style:none;padding:0;margin:16px 0;display:grid;gap:12px}.kids{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.kid{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;min-height:120px;padding:12px;border:2px solid var(--ink);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);text-decoration:none;font-weight:600}.kid.add{border-style:dashed}.emoji{font-size:2.6rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:320px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.pic{min-height:64px;font-size:2rem;border:2px solid var(--line);border-radius:14px;background:var(--card)}.pic[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 25%,var(--card))}.pass-slots{display:flex;align-items:center;gap:8px;margin-bottom:12px}.slot{display:inline-grid;place-items:center;width:56px;height:56px;border:2px dashed var(--line);border-radius:12px;font-size:1.8rem}.slot[data-filled=true]{border-style:solid;border-color:var(--accent)}.manage li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px}.manage .reset{flex-basis:100%}.shake{animation:shake .45s}@keyframes shake{20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}@media(prefers-reduced-motion:reduce){.shake{animation:none;outline:3px solid var(--danger)}}.email-row{display:flex;flex-basis:100%;gap:8px;flex-wrap:wrap}.email-row input{flex:1 1 220px}
