:root{--bg:#f6f4ef;--surface:#fdfcf9;--sunken:#edeae3;--border:#dcd7cd;--text:#1c1b22;--muted:#5f5c67;--accent:#8c2f39;--accent-hover:#6e222b;--accent-subtle:#f2e4e3;--on-accent:#f6f4ef;--good:#2f7d5b;--ok:#9a7410;--poor:#b8612a;--miss:#b3261e;--serif:"Source Serif 4", Georgia, "Times New Roman", serif;--sans:system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#1c1b22;--surface:#24232b;--sunken:#16151b;--border:#3a3843;--text:#f6f4ef;--muted:#a8a5af;--accent:#e3828c;--accent-hover:#eea3aa;--accent-subtle:#3a2429;--on-accent:#1c1b22;--good:#6cc59a;--ok:#d9b65a;--poor:#e39a62;--miss:#f08a80;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);font:16px/1.5 var(--sans);margin:0}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1{font-family:var(--serif);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:22px;font-weight:700;overflow:hidden}h1 small{color:var(--muted);font-weight:400}.app{max-width:640px;margin:0 auto}.screen{flex-direction:column;gap:12px;padding:0 16px 24px;display:flex}.icon{fill:currentColor;flex:none;width:22px;height:22px}.glyph{flex:none;width:auto;height:26px}header.bar{align-items:center;gap:8px;min-height:56px;padding:12px 0 4px;display:flex}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row.end{justify-content:flex-end}.spacer{flex:1}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;padding:14px;display:flex}.field{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.label{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.meter{align-items:center;gap:8px;display:flex}.slash{color:var(--muted);font-size:22px}.icon-btn{border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.icon-btn:hover:not(:disabled){background:var(--sunken)}.btn{background:var(--sunken);border-radius:8px;justify-content:center;align-items:center;gap:8px;height:44px;padding:0 18px;font-weight:600;display:inline-flex}.btn.small{height:36px;padding:0 12px;font-size:14px}.btn.small .icon{width:18px;height:18px}.btn.big{flex:1;height:56px;font-size:18px}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn:not(.primary){border:1px solid var(--border);background:0 0}.btn:not(.primary):hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn.danger{color:var(--miss)}.chip{border:1px solid var(--border);height:36px;color:var(--muted);border-radius:18px;padding:0 14px;font-size:14px;font-weight:600}.chip.on{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent)}.seg{background:var(--sunken);border-radius:10px;padding:3px;display:inline-flex}.seg button{min-width:40px;height:34px;color:var(--muted);border-radius:8px;padding:0 12px;font-weight:600}.seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #00000040}.stepper{background:var(--sunken);border-radius:12px;align-items:center;display:inline-flex}.stepper button{width:44px;height:44px;font-size:22px}.stepper input{text-align:center;width:56px;font:inherit;font-variant-numeric:tabular-nums;color:inherit;appearance:textfield;background:0 0;border:0;font-size:20px;font-weight:700}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper.compact button{width:36px;height:36px;font-size:18px}.stepper.compact input{width:40px;font-size:18px}input.title{min-width:0;font:inherit;font-family:var(--serif);color:inherit;background:0 0;border:0;border-radius:8px;flex:1;padding:6px 8px;font-size:22px;font-weight:700}input.title:hover,input.title:focus{background:var(--surface)}.tq{font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-weight:600;display:inline-flex}.tq .glyph{height:22px}.tempo .tq .glyph{height:30px}.tempo .tq{font-size:22px}.ts{text-align:center;flex-direction:column;font-size:14px;font-weight:800;line-height:.95;display:inline-flex}.list{flex-direction:column;gap:8px;display:flex}.item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 16px;display:flex}.item b{font-family:var(--serif);font-size:18px}.item:hover{border-color:var(--accent)}.meta{color:var(--muted);white-space:pre;align-items:center;font-size:14px;display:inline-flex}.meta .glyph{height:18px}.add{border:2px dashed var(--border);border-radius:var(--radius);height:52px;color:var(--muted);justify-content:center;align-items:center;gap:6px;font-weight:600;display:flex}.add:hover{color:var(--text);border-color:var(--muted)}.cards{flex-direction:column;gap:8px;display:flex}.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;gap:6px;padding:6px 6px 12px 12px;display:flex;box-shadow:inset 0 0 0 1px #0000}.card:hover{border-color:var(--muted)}.card.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.card.incomplete{border-color:var(--miss);border-style:dashed}.card.dragging{border-color:var(--accent);z-index:1;position:relative;box-shadow:0 8px 24px #0000002e}.card-top{align-items:center;gap:2px;display:flex}.card-open{text-align:left;flex:1;align-items:center;gap:10px;min-height:36px;display:flex}.card-body{text-align:left;width:calc(100% - 6px);display:block}.icon-btn.small{width:36px;height:36px;color:var(--muted)}.icon-btn.small .icon{width:20px;height:20px}.icon-btn.small:hover{color:var(--text)}.handle{cursor:grab;touch-action:none}.dragging .handle{cursor:grabbing}.dragging,.dragging *{-webkit-user-select:none;user-select:none}.clicks{margin-top:-4px}.clicks .label{margin-right:4px}.idx{color:var(--muted);font-family:var(--mono);min-width:16px;font-size:12px}.rep{font-family:var(--mono);background:var(--accent-subtle);color:var(--accent);font-variant-numeric:tabular-nums;border-radius:999px;margin-left:auto;margin-right:4px;padding:2px 8px;font-size:13px}.strip{background:var(--sunken);border-radius:10px;height:48px;position:relative;overflow:hidden}.strip.large{height:76px}.strip.large .glyph{height:38px}.cells{height:100%;display:flex}.cell{flex:1 1 0;min-width:0;padding:3px 1px;display:flex}.cell .in{border-radius:7px;flex:1;align-items:center;min-width:0;padding-left:4px;display:flex;overflow:hidden}.cell.note .in{background:color-mix(in srgb, var(--text) 9%, transparent);box-shadow:inset 3px 0 0 var(--text);color:var(--text)}.cell.rest .in{color:var(--muted)}.cell.empty .in{border:2px dashed var(--border)}button.cell:hover .in{outline:2px solid var(--muted);outline-offset:-2px}.cell.good .in{background:color-mix(in srgb, var(--good) 22%, transparent);box-shadow:inset 3px 0 0 var(--good)}.cell.ok .in{background:color-mix(in srgb, var(--ok) 22%, transparent);box-shadow:inset 3px 0 0 var(--ok)}.cell.poor .in{background:color-mix(in srgb, var(--poor) 22%, transparent);box-shadow:inset 3px 0 0 var(--poor)}.cell.miss .in{box-shadow:inset 3px 0 0 var(--miss), inset 0 0 0 1px var(--miss);background:0 0}.grid{pointer-events:none;background:linear-gradient(to right, var(--border) 1px, transparent 1px) 0 0 / calc(100% / var(--beats)) 100%;position:absolute;inset:0}.mark{background:var(--text);pointer-events:none;border-radius:2px;width:3px;height:40%;margin-left:-1px;position:absolute;bottom:0}.mark.extra{background:var(--miss);height:60%}.playhead{background:var(--text);pointer-events:none;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.palette{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;display:grid}.val{background:var(--sunken);border-radius:10px;place-items:center;height:56px;display:grid}.val .glyph{height:34px}.val:hover:not(:disabled){outline:2px solid var(--accent);outline-offset:-2px}.transport{padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to bottom, transparent, var(--bg) 30%);gap:10px;display:flex;position:sticky;bottom:0}.play{min-height:100dvh}.play .tq,.result .tq{color:var(--muted)}.progress{color:var(--muted);font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;font-size:14px}.next{opacity:.45;min-height:48px}.pad{background:var(--surface);border:1px solid var(--border);min-height:220px;color:var(--muted);-webkit-user-select:none;user-select:none;touch-action:none;border-radius:24px;flex:1;place-items:center;font-size:22px;font-weight:700;display:grid}.pad.f0{animation:.18s ease-out flash0}.pad.f1{animation:.18s ease-out flash1}@keyframes flash0{0%{background:var(--accent-subtle);border-color:var(--accent)}}@keyframes flash1{0%{background:var(--accent-subtle);border-color:var(--accent)}}.count{font-family:var(--serif);color:var(--accent);font-variant-numeric:tabular-nums;font-size:96px}.score{justify-content:center;align-items:baseline;gap:6px;padding:12px 0 0;display:flex}.score b{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:96px;line-height:1}.score span{color:var(--muted);font-size:22px;font-weight:600}.stats{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.stats div{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;align-items:center;padding:10px 6px;display:flex}.stats b{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:18px}.stats span{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px}.bars{flex-direction:column;gap:6px;display:flex}
