:root{--ink: #2d2a26;--ink-soft: #55504a;--mist: #8a837a;--paper: #f7f4ef;--card: #fffdfa;--line: #e4ddd2;--accent: #3f6f63;--accent-soft: #e8f0ed;--danger: #9a3d34;--ok: #3f6f63;--radius: 14px;--gap: 16px;--tap: 44px;--font: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--fs-body: clamp(1rem, .96rem + .2vw, 1.0625rem);--fs-title: clamp(1.35rem, 1.1rem + 1.1vw, 1.9rem);--fs-small: .875rem}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);font-size:var(--fs-body);line-height:1.6;color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}.app{max-inline-size:760px;margin-inline:auto;padding:var(--gap);padding-block-end:96px}.topbar{display:flex;align-items:center;gap:12px;min-block-size:var(--tap);margin-block-end:var(--gap)}.topbar h1{font-size:var(--fs-title);font-weight:400;margin:0;flex:1}.muted{color:var(--mist);font-size:var(--fs-small)}button{font:inherit;min-block-size:var(--tap);min-inline-size:var(--tap);padding:10px 18px;border-radius:var(--radius);border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.ghost{background:transparent;border-color:transparent}button.danger{color:var(--danger)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:12px}.card{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:start;padding:18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);min-block-size:92px}.card .label{font-size:1.0625rem}.card .blurb{color:var(--mist);font-size:var(--fs-small)}.card .glyph{font-size:1.4rem;line-height:1}.group{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-block-end:14px}.group>h2{font-size:1.0625rem;font-weight:600;margin:0 0 4px}.field{margin-block-start:18px}.field:first-of-type{margin-block-start:8px}.field label{display:block;margin-block-end:6px;font-weight:600}.field .help{color:var(--mist);font-size:var(--fs-small);margin-block-end:6px}input[type=text],input[type=number],textarea{font:inherit;inline-size:100%;min-block-size:var(--tap);padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}textarea{min-block-size:120px;resize:vertical;line-height:1.7}input:focus-visible,textarea:focus-visible{border-color:var(--accent)}.invalid{color:var(--danger);font-size:var(--fs-small);margin-block-start:6px}.switch{display:flex;align-items:center;gap:12px;min-block-size:var(--tap)}.switch input{inline-size:22px;block-size:22px;accent-color:var(--accent)}.tray{position:fixed;inset-block-end:0;inset-inline:0;background:var(--card);border-block-start:1px solid var(--line);padding:12px var(--gap);padding-block-end:max(12px,env(safe-area-inset-bottom))}.tray-inner{max-inline-size:760px;margin-inline:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tray .count{flex:1;min-inline-size:140px}.banner{border-radius:var(--radius);padding:12px 14px;margin-block-end:14px;border:1px solid var(--line);background:var(--accent-soft)}.banner.error{background:#fbecea;border-color:#e7c8c3;color:var(--danger)}.center{min-block-size:70vh;display:grid;place-items:center;text-align:center}.skip{position:absolute;inset-block-start:-60px;inset-inline-start:8px;background:var(--card);padding:10px 14px;border-radius:8px}.skip:focus{inset-block-start:8px}
