.tool{gap:var(--s-6);padding:var(--s-2) var(--s-4) var(--s-4);max-inline-size:var(--wide);margin-inline:auto;display:grid;position:relative}.tool-main{gap:var(--s-3);align-content:start;min-inline-size:0;display:grid}.tool-aside{display:none}.tool-below{display:block}.tool-actions{gap:var(--s-2);flex-wrap:wrap;display:flex}.tool-actions.center{justify-content:center}.tool-actions .btn{flex:auto}.scroll-seg{scrollbar-width:none;grid-auto-columns:max-content;overflow-x:auto}.scroll-seg::-webkit-scrollbar{display:none}.mic-private{text-align:center}.stepper{align-items:center;gap:var(--s-2);border-radius:var(--r-pill);background:var(--color-surface-2);min-block-size:48px;box-shadow:var(--border);grid-template-columns:44px 1fr 44px;padding-inline:2px;display:grid}.stepper output{text-align:center;font-weight:600;font-size:var(--fs-15);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.stepper .ib:disabled{opacity:.35}.sheet-foot.one{grid-template-columns:1fr}.chip[aria-checked=true],:root[data-os] .chip[aria-checked=true],:root[data-os] .chip[aria-pressed=true]{background:var(--color-on);color:var(--color-on-text);box-shadow:none}.chip:disabled{opacity:.5}.tuning-pill{align-items:center;gap:var(--s-2);min-block-size:44px;padding-inline:var(--s-4) var(--s-3);border-radius:var(--r-md);background:var(--color-surface);box-shadow:var(--border);font-size:var(--fs-14);text-align:start;display:flex}.tuning-pill span{color:var(--color-muted)}.tuning-pill b{font-family:var(--font-num);letter-spacing:.02em;flex:1}.gauge{justify-self:center;inline-size:min(100%,360px);position:relative}.gauge-svg{block-size:auto;inline-size:100%;display:block;overflow:visible}.gauge-arc{fill:none;stroke:var(--color-track);stroke-width:2px}.gauge-zone{fill:none;stroke:var(--color-ok);stroke-opacity:.35;stroke-width:10px}.gauge-tick{stroke:var(--color-faint);stroke-width:2px;stroke-linecap:round}.gauge-tick.long{stroke:var(--color-muted);stroke-opacity:.6}.gauge-tick.zero{stroke:var(--color-text);stroke-width:3px}.gauge-num{fill:var(--color-muted);font:600 11px var(--font-text)}.gauge-needle{transition:transform .12s linear}.gauge-needle line{stroke:var(--color-muted);stroke-width:6px;stroke-linecap:round}.gauge-needle[data-active] line{stroke:var(--color-accent-strong)}.tuner[data-state=ok] .gauge-needle[data-active] line{stroke:var(--color-ok)}.gauge-center{pointer-events:none;justify-items:center;gap:2px;display:grid;position:absolute;inset-block-end:0;inset-inline:0}.tuner-note{align-items:baseline;gap:2px;line-height:1;display:flex}.tuner-name{font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(3.5rem,18vw,4.75rem);font-weight:700}.tuner-note sub{font-size:var(--fs-24);color:var(--color-muted);vertical-align:baseline;font-weight:600}.tuner[data-state=ok] .tuner-name{color:var(--color-ok)}.tuner-read{font-size:var(--fs-14);color:var(--color-muted);margin:0}.tuner-hint{text-align:center;font-weight:600;font-size:var(--fs-15);min-block-size:1.4em;margin:0}.tuner[data-state=ok] .tuner-hint{color:var(--color-ok)}.tuner[data-state=flat] .tuner-hint,.tuner[data-state=sharp] .tuner-hint{color:var(--color-accent-strong)}.strings{grid-auto-columns:1fr;grid-auto-flow:column;gap:6px;display:grid}.string-btn{border-radius:var(--r-md);background:var(--color-surface);min-block-size:56px;box-shadow:var(--border);align-content:center;justify-items:center;gap:0;display:grid}.string-btn b{font-family:var(--font-display);font-size:var(--fs-18)}.string-btn span{font-size:var(--fs-12);color:var(--color-muted)}.string-btn[data-hit=near]{box-shadow:inset 0 0 0 2px var(--color-accent)}.string-btn[data-hit=ok]{box-shadow:inset 0 0 0 2px var(--color-ok)}.string-btn[aria-pressed=true]{background:var(--color-on);color:var(--color-on-text)}.string-btn[aria-pressed=true] span{color:inherit;opacity:.7}.auto-btn{justify-self:center}.ref-tone{gap:var(--s-2);grid-template-columns:1fr auto;align-items:center;display:grid}.ref-tone .lbl{grid-column:1/-1;margin:0}.tuning-list{gap:6px;display:grid}.tuning-list button{justify-content:space-between;align-items:center;gap:var(--s-3);min-block-size:48px;padding-inline:var(--s-4);border-radius:var(--r-md);background:var(--color-surface-2);box-shadow:var(--border);text-align:start;font-size:var(--fs-15);display:flex}.tuning-list b{font-family:var(--font-num);color:var(--color-muted);white-space:nowrap;font-weight:600}.tuning-list [aria-checked=true]{background:var(--color-on);color:var(--color-on-text);box-shadow:none}.tuning-list [aria-checked=true] b{color:inherit;opacity:.75}.tuner-settings{gap:var(--s-5);display:grid}:root[data-os=ios] .stepper,:root[data-os=ios] .string-btn,:root[data-os=ios] .tuning-pill{background:var(--glass,var(--color-surface))}.tap-result{padding-block:var(--s-2);justify-items:center;gap:2px;display:grid}.tap-bpm{font-family:var(--font-num);letter-spacing:-.05em;margin:0;font-size:clamp(4rem,24vw,6rem);font-weight:700;line-height:1}.tap-sub{font-size:var(--fs-14);color:var(--color-muted);text-align:center;margin:0}.tap-pad{align-content:center;place-items:center;gap:var(--s-2);border-radius:var(--r-xl);background:var(--color-surface);min-block-size:clamp(160px,30dvh,240px);box-shadow:var(--border);font-family:var(--font-display);font-size:var(--fs-24);touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-weight:700;transition:background-color 60ms;display:grid}.tap-pad[data-flash]{animation:tap-flash .16s var(--ease-out)}.tap-pad[data-flash=b]{animation-name:tap-flash-b}@keyframes tap-flash{0%{background:var(--color-accent-soft);transform:scale(.985)}}@keyframes tap-flash-b{0%{background:var(--color-accent-soft);transform:scale(.985)}}.delay-table{border-collapse:collapse;inline-size:100%;font-size:var(--fs-14)}.delay-table caption{text-align:start}.delay-table th,.delay-table td{text-align:start;border-block-end:1px solid var(--color-border);padding:8px 6px}.delay-table td,.delay-table thead th:not(:first-child){text-align:end}.result-card{gap:var(--s-2);text-align:center;justify-items:stretch;display:grid}.result-card .lbl{margin:0}.meter{background:var(--color-track);border-radius:3px;block-size:6px;overflow:hidden}.meter span{background:var(--color-accent);border-radius:3px;block-size:100%;display:block}.result-card .chips{justify-content:center}.finder-pane,.timing-pane{gap:var(--s-3);display:grid}.drop{place-items:center;gap:var(--s-2);min-block-size:160px;padding:var(--s-4);border-radius:var(--r-xl);box-shadow:inset 0 0 0 2px var(--color-faint);text-align:center;color:var(--color-muted);cursor:pointer;font-weight:600;display:grid}.drop:focus-within{box-shadow:inset 0 0 0 2px var(--color-accent)}.drop[data-drag]{background:var(--color-accent-soft);box-shadow:inset 0 0 0 2px var(--color-accent)}.acc-btn,:root[data-os] .acc-btn.ib{position:relative;overflow:visible}.acc-btn[aria-pressed=true]{background:var(--color-accent-soft);color:var(--color-accent-strong)}.acc-badge{border-radius:var(--r-pill);background:var(--color-on);color:var(--color-on-text);font-size:var(--fs-12);white-space:nowrap;padding:1px 6px;font-weight:700;position:absolute;inset-block-end:calc(100% + 2px);inset-inline-start:50%;translate:-50%}[dir=rtl] .acc-badge{translate:50%}.acc-live{padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);background:var(--color-surface);box-shadow:var(--border);gap:6px;display:grid}.acc-now{text-align:center;margin:0;font-weight:600}.acc-strip{background:var(--color-surface-2);block-size:28px;box-shadow:var(--border);border-radius:14px;position:relative;overflow:hidden}.acc-zone{background:var(--color-ok);opacity:.14;inline-size:25%;position:absolute;inset-block:0;inset-inline-start:37.5%}.acc-center{background:var(--color-text);opacity:.5;inline-size:2px;position:absolute;inset-block:4px;inset-inline-start:calc(50% - 1px)}.acc-strip i{background:var(--color-muted);border-radius:50%;block-size:10px;inline-size:10px;margin:-5px 0 0 -5px;position:absolute;inset-block-start:50%}[dir=rtl] .acc-strip i{margin:-5px -5px 0 0}.acc-strip i[data-last]{background:var(--color-accent-strong);block-size:14px;inline-size:14px;margin:-7px 0 0 -7px}.acc-axis{font-size:var(--fs-12);color:var(--color-muted);justify-content:space-between;margin:0;display:flex}.acc-summary,.steady-card{gap:var(--s-3);display:grid}.acc-summary .lbl,.steady-card .lbl{margin:0}.acc-big{align-items:baseline;gap:4px var(--s-3);flex-wrap:wrap;margin:0;display:flex}.acc-big .num{font-family:var(--font-num);font-weight:700;font-size:var(--fs-30);letter-spacing:-.03em}.acc-verdict{color:var(--color-accent-strong);font-weight:600}.acc-verdict[data-t=onBeat],.acc-verdict[data-g=excellent],.acc-verdict[data-g=good]{color:var(--color-ok)}.acc-stats{gap:var(--s-2);grid-template-columns:1fr 1fr;margin:0;display:grid}.acc-stats div{border-radius:var(--r-md);background:var(--color-surface-2);box-shadow:var(--border);padding:10px 12px}.acc-stats .wide{grid-column:1/-1}.acc-stats dt{font-size:var(--fs-12);color:var(--color-muted)}.acc-stats dd{font-weight:700;font-size:var(--fs-16);margin:2px 0 0}.acc-hist{gap:4px;margin:0;display:grid}.acc-hist-bars{align-items:flex-end;gap:3px;block-size:72px;display:flex}.acc-hist-bars span{background:var(--color-muted);opacity:.55;border-radius:4px 4px 1px 1px;flex:1}.acc-hist-bars span[data-center]{background:var(--color-ok);opacity:.9}.timing-opts{gap:var(--s-3);display:grid}.timing-opts .lbl{margin-block-end:6px}.timing-opts .row .hint{margin:0;font-weight:400}.groove-chips{gap:var(--s-2);scrollbar-width:none;margin-inline:calc(-1 * var(--s-4));padding-block:2px;padding-inline:var(--s-4);display:flex;overflow-x:auto}.groove-chips::-webkit-scrollbar{display:none}.groove-chips .chip{flex:none}.drum-top{justify-items:center;display:grid}.drums .bpm-value{font-size:clamp(3rem,16vw,4rem)}.drum-now{min-block-size:1.2em;margin:0}.drum-grid{grid-template-columns:2.25rem repeat(5,minmax(0,1fr));grid-auto-rows:36px;gap:4px;display:grid}.drum-grid>*{grid-row:var(--r);grid-column:var(--c)}.dg-head{border-radius:var(--r-sm);font-size:var(--fs-12);color:var(--color-text);background:var(--color-surface);box-shadow:var(--border);z-index:2;place-items:center;font-weight:700;display:grid;position:sticky;inset-block-start:var(--header-h)}.dg-head[aria-pressed=false]{color:var(--color-muted);opacity:.7;text-decoration:line-through}.dg-num{font-size:var(--fs-12);color:var(--color-muted);border-radius:var(--r-sm);place-items:center;display:grid}.dg-num[data-beat]{color:var(--color-text);font-weight:700}.dg-num[data-bar]{box-shadow:inset 0 2px 0 var(--color-faint)}.dg-num[data-now]{background:var(--color-accent);color:var(--color-accent-text)}.dg-cell{background:var(--color-surface-2);box-shadow:inset 0 0 0 1px var(--color-border);border-radius:8px;transition:background-color 80ms}.dg-cell[data-beat]{box-shadow:inset 0 0 0 1px var(--color-faint)}.dg-cell[data-v="1"]{background:color-mix(in srgb, var(--color-accent) 30%, var(--color-surface-2))}.dg-cell[data-v="2"]{background:color-mix(in srgb, var(--color-accent) 72%, var(--color-surface-2))}.dg-cell[data-v="3"]{background:var(--color-accent-strong)}.dg-cell[data-off]{opacity:.35}.dg-cell[data-now]{outline:2px solid var(--color-text);outline-offset:-2px}.drum-opts .trainer-grid{gap:var(--s-3);grid-template-columns:1fr 1fr;display:grid}.drum-opts .trainer-grid .lbl{margin-block-end:4px}.drum-opts .row .hint{margin:0;font-weight:400}.drum-opts .link-btn{justify-self:start}@media (min-width:1024px){.tool{padding:26px var(--s-8) var(--s-4);grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:36px}.tool-main{justify-items:center}.tool-main>*{inline-size:min(100%,560px)}.tool-aside{gap:14px;display:grid;position:sticky;inset-block-start:calc(var(--header-h-desk) + 20px)}.tool-below{display:none}.tool:not(:has(.tool-aside)){grid-template-columns:minmax(0,1fr)}.tool.drums{grid-template-columns:minmax(0,1fr)}.drums .tool-main>*{inline-size:min(100%,720px)}.drums .tool-main>.drum-grid{inline-size:100%;max-inline-size:1100px}.groove-chips{flex-wrap:wrap;justify-content:center;margin-inline:0;padding-inline:0}.drum-grid{grid-template-columns:5rem repeat(var(--steps), minmax(0, 1fr));grid-template-rows:28px;grid-auto-rows:44px}.drum-grid>*{grid-row:var(--c);grid-column:var(--r)}.dg-head{position:static}.dg-num[data-bar]{box-shadow:inset 2px 0 0 var(--color-faint)}.tap-pad{min-block-size:260px}}@media (prefers-reduced-motion:reduce){.gauge-needle{transition:none}}
