*{box-sizing:border-box;margin:0}html,body{height:100%}body{color:#fff;-webkit-tap-highlight-color:transparent;background:#1a1a1a;font-family:system-ui,-apple-system,sans-serif}#app{height:100dvh}button{font:inherit;cursor:pointer;border:none}.primary,.secondary{border-radius:12px;width:100%;padding:14px;font-size:1.1rem;font-weight:600}.primary{color:#fff;background:#e4572e}.secondary{color:#aaa;background:0 0;border:2px dashed #444}.setup,.results{flex-direction:column;gap:16px;max-width:420px;margin:0 auto;padding:48px 20px;display:flex}.setup h1,.results h1{text-align:center}.setup p{text-align:center;color:#aaa}#setup-form,#names{flex-direction:column;gap:10px;display:flex}.name-row{gap:8px;display:flex}.name-row input{color:#fff;background:#262626;border:2px solid #333;border-radius:12px;flex:1;padding:14px;font-size:1.1rem}.name-row input:focus{border-color:#e4572e;outline:none}.remove{color:#888;background:#262626;border-radius:12px;width:48px}.tally{grid-template-columns:repeat(var(--cols), 1fr);grid-auto-rows:1fr;gap:4px;height:100%;padding:4px;display:grid;position:relative}.quadrant{background:var(--color);color:#fff;-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:relative}.quadrant:active{filter:brightness(.9)}.quadrant .name{opacity:.9;font-size:1.4rem;font-weight:600}.quadrant .count{font-size:clamp(3rem,15vmin,7rem);font-weight:800;line-height:1}.quadrant.bump .count{animation:.2s ease-out bump}@keyframes bump{50%{transform:scale(1.25)}}.undo{background:#00000040;border-radius:999px;padding:6px 12px;font-size:.9rem;position:absolute;bottom:10px;left:10px}.end{z-index:1;background:#0009;border-radius:50%;width:48px;height:48px;font-size:1.4rem;position:absolute;top:12px;right:12px}.results ol{flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.results li{border-left:8px solid var(--color);background:#262626;border-radius:12px;justify-content:space-between;align-items:center;padding:16px 20px;font-size:1.2rem;display:flex}.results li .count{font-size:1.8rem;font-weight:800}.total{text-align:center;color:#aaa;font-size:1.1rem}.total strong{color:#fff}
