.mini-player{align-items:center;gap:var(--s-1);border-radius:var(--r-lg);background:var(--color-surface);min-block-size:48px;box-shadow:var(--border), var(--shadow-1);grid-template-columns:44px minmax(0,1fr) 44px;padding:2px;display:grid}.mini-player .ib:disabled{opacity:.35}.mp-now{min-inline-size:0;padding:2px var(--s-2);border-radius:var(--r-md);text-align:center;gap:0;display:grid}.mp-title{min-inline-size:0;font-weight:700;font-size:var(--fs-14);justify-content:center;align-items:baseline;gap:8px;line-height:1.3;display:flex}.mp-pos{color:var(--color-accent-strong);font-size:var(--fs-13);flex:none}.mp-name,.mp-next{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mp-next{font-size:var(--fs-12);color:var(--color-muted);line-height:1.3}.mini-player.idle{justify-content:center;gap:var(--s-2);min-block-size:40px;padding-inline:var(--s-4);box-shadow:inset 0 0 0 1px var(--color-border);color:var(--color-muted);font-size:var(--fs-14);background:0 0;font-weight:600;display:flex}:root[data-os=ios] .mini-player:not(.idle){background:var(--glass);box-shadow:var(--glass-edge);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}:root[data-os=android] .mini-player:not(.idle){box-shadow:none;background:var(--color-surface-2)}@media (max-width:1023px){.metro-main:has(>.mini-player) .orbit{inline-size:clamp(200px,100dvh - 590px,min(100%,300px))}.metro-main:has(>.mini-player) .bpm-value{font-size:clamp(3.5rem,17vw,4.75rem)}}.sl-songs,.sl-pick{gap:2px;margin:0;padding:0;list-style:none;display:grid}.sl-songs{counter-reset:none}.sl-song{align-items:center;gap:var(--s-3);min-block-size:52px;inline-size:100%;padding:6px var(--s-2);border-radius:var(--r-md);text-align:start;display:flex}.sl-song:hover{background:var(--color-faint)}.sl-song[aria-current=true]{background:var(--color-accent-soft)}.sl-song[aria-current=true] .sl-n{color:var(--color-accent-strong)}.sl-n{text-align:end;inline-size:2ch;color:var(--color-muted);flex:none;font-weight:700}.sl-main,.li-main{flex:1;gap:2px;min-inline-size:0;display:grid}.sl-name,.li-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.sl-meta,.li-meta{font-size:var(--fs-13);color:var(--color-muted)}.li-note{font-size:var(--fs-13);color:var(--color-text);opacity:.8}.sl-empty{gap:var(--s-3);color:var(--color-muted);font-size:var(--fs-14);justify-items:start;display:grid}.sl-empty p{margin:0}.sl-aside .sl-songs{max-block-size:40vh;overflow-y:auto}.lib-toast{z-index:40;inset-inline:var(--s-4);align-items:center;gap:var(--s-2);max-inline-size:420px;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--color-on);color:var(--color-on-text);font-size:var(--fs-14);box-shadow:var(--shadow-overlay);margin:0 auto;font-weight:600;display:flex;position:fixed;inset-block-end:calc(90px + var(--safe-bottom))}.lib-banner{justify-content:space-between;align-items:flex-start;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);background:var(--color-accent-soft);display:flex}.lb-text{min-inline-size:0}.lb-text p{margin:0}.lb-text .lbl{margin-block-end:2px}.lb-name{font-weight:700}.lb-note{font-size:var(--fs-14);color:var(--color-muted);overflow-wrap:anywhere}.lb-acts{align-items:center;gap:var(--s-1);flex:none;display:flex}.lib-status{min-block-size:1.4em;font-size:var(--fs-14);color:var(--color-accent-strong);margin:0;font-weight:600}.lib{gap:var(--s-4);padding:var(--s-2) var(--s-4) var(--s-4);max-inline-size:720px;margin-inline:auto;display:grid}.lib-head{gap:2px;display:grid}.lib-head .tool-h1{font-size:var(--fs-24);white-space:normal}.lib-head .hint{margin:0}.lib-tabs button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.tab-count{font-size:var(--fs-12);opacity:.7}.lib-skeleton{border-radius:var(--r-xl);background:var(--color-faint);opacity:.4;block-size:240px}.lib-sec{gap:var(--s-3);display:grid}.lib-actions{gap:var(--s-2);flex-wrap:wrap;display:flex}.lib-actions .btn{flex:auto}.lib-list{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}.lib-item{align-items:center;gap:var(--s-3);min-block-size:64px;inline-size:100%;padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);background:var(--color-surface);box-shadow:var(--border), var(--shadow-1);text-align:start;display:flex}.lib-empty{justify-items:center;gap:var(--s-2);padding:var(--s-8) var(--s-4);border-radius:var(--r-xl);box-shadow:inset 0 0 0 1px var(--color-border);text-align:center;color:var(--color-muted);display:grid}.lib-empty p{max-inline-size:32rem;margin:0}.lib-empty>p:first-of-type{color:var(--color-text);font-weight:600}.lib-empty-line{color:var(--color-muted);margin:0}.sl-bar{align-items:center;gap:var(--s-2);display:flex}.sl-title{flex:1}.sl-title .text-in{font-family:var(--font-display);font-size:var(--fs-18);box-shadow:inset 0 -1px 0 var(--color-border);background:0 0;border-radius:0;padding-inline:4px;font-weight:700}.sl-title .text-in:focus-visible{box-shadow:inset 0 -2px 0 var(--color-accent);outline:none}.song-rows{gap:6px;margin:0;padding:0;list-style:none;display:grid}.song-row{border-radius:var(--r-lg);background:var(--color-surface);box-shadow:var(--border), var(--shadow-1);transition:transform var(--dur-ui) var(--ease-out);grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:2px;padding:4px;display:grid}.song-row[data-drag]{box-shadow:inset 0 0 0 2px var(--color-accent), var(--shadow-overlay);z-index:1;position:relative;transform:scale(1.02)}.drag-h{cursor:grab;touch-action:none;color:var(--color-muted)}.song-row[data-drag] .drag-h{cursor:grabbing}.song-main{align-items:center;gap:var(--s-3);min-block-size:52px;min-inline-size:0;padding:4px var(--s-2);border-radius:var(--r-md);text-align:start;display:flex}.card-row{padding:var(--s-2) var(--s-4);border-radius:var(--r-lg);background:var(--color-surface);box-shadow:var(--border)}.card-row>span{gap:2px;display:grid}.card-row .hint{margin:0;font-weight:400}.lib-tools{gap:var(--s-2);flex-wrap:wrap;display:flex}.lib-tools .chip{font-size:var(--fs-14);min-block-size:40px}.chip:disabled,.btn:disabled{opacity:.45}.danger{color:#c2410c}:root[data-theme=dark] .danger{color:#fb923c}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .danger{color:#fb923c}}.link-btn.danger{justify-self:start}.preset{gap:var(--s-2);padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);background:var(--color-surface);box-shadow:var(--border), var(--shadow-1);display:grid}.preset-acts{align-items:center;gap:2px;display:flex}.preset-acts .btn{margin-inline-end:auto}.lib-form{gap:var(--s-3);display:grid}.field{gap:4px;min-inline-size:0;display:grid}.field .lbl{margin:0}.field-row{gap:var(--s-2);grid-template-columns:1fr 1fr;display:grid}.field-row:has(>:only-child){grid-template-columns:1fr}.field-row.three{grid-template-columns:1fr 1.3fr 1fr}textarea.text-in{resize:vertical;padding-block:10px;line-height:1.4}select.text-in{appearance:auto}.lib-form .hint{margin:0}.timer-card{gap:var(--s-3);display:grid}.timer-top{justify-content:space-between;align-items:center;gap:var(--s-3);display:flex}.timer-v{margin:0;font-size:3rem;font-weight:700;line-height:1}.goal{gap:var(--s-2);display:grid}.goal-bar{background:var(--color-track);border-radius:4px;block-size:8px;overflow:hidden}.goal-bar span{background:var(--color-accent);block-size:100%;transition:inline-size var(--dur-view) var(--ease-out);border-radius:4px;display:block}.goal-row{justify-content:space-between;align-items:center;gap:var(--s-3);font-size:var(--fs-14);font-weight:600;display:flex}.goal-sel{min-block-size:40px;inline-size:auto}.stats{gap:var(--s-2);grid-template-columns:1fr 1fr;display:grid}.stat{padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);background:var(--color-surface);box-shadow:var(--border), var(--shadow-1);gap:2px;display:grid}.stat .lbl{margin:0}.stat-v{font-size:var(--fs-24);align-items:center;gap:6px;font-weight:700;display:inline-flex}.stat[data-accent] .stat-v svg{color:var(--color-accent-strong)}.chart-panel h2,.practice .panel h2{font-family:var(--font-text);letter-spacing:-.01em;margin:0}.days{--chart-h:120px;block-size:calc(var(--chart-h) + 22px);grid-template-columns:repeat(14,1fr);align-items:end;gap:4px;margin:0;padding:0;list-style:none;display:grid}.days li{grid-template-rows:var(--chart-h) auto;place-items:end center;gap:4px;block-size:100%;display:grid}.day-bar{background:var(--color-faint);border-radius:6px 6px 2px 2px;inline-size:100%;max-inline-size:22px}.days li[data-goal] .day-bar{background:var(--color-accent)}.day-lb{font-size:var(--fs-12);color:var(--color-muted)}.days li:last-child .day-lb{color:var(--color-text);font-weight:700}.ex-list,.ses-list{margin:0;padding:0;list-style:none;display:grid}.ex-list li,.ses-list li{align-items:center;gap:var(--s-3);border-block-end:1px solid var(--color-border);min-block-size:56px;display:flex}.ex-list li:last-child,.ses-list li:last-child{border-block-end:0}.spark{flex:none;block-size:32px;inline-size:84px;overflow:visible}.spark polyline{fill:none;stroke:var(--color-accent-strong);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.ses-min{color:var(--color-muted);font-weight:600}dialog.stage{box-sizing:border-box;block-size:100%;max-block-size:none;inline-size:100%;max-inline-size:none;padding:calc(var(--s-4) + env(safe-area-inset-top,0px)) var(--s-4) calc(var(--s-4) + var(--safe-bottom));background:var(--color-bg);color:var(--color-text);gap:var(--s-3);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:0;grid-template-rows:auto 1fr auto auto auto;margin:0;display:grid;position:fixed;inset:0;overflow:hidden}dialog.stage:not([open]){display:none}dialog.stage::backdrop{background:var(--color-bg)}.stage-flash{pointer-events:none;background:var(--flash,var(--color-accent));opacity:0;position:absolute;inset:0}.stage-top{justify-content:space-between;align-items:flex-start;gap:var(--s-3);display:flex;position:relative}.stage-song{min-inline-size:0}.stage-song p,.stage-top p{margin:0}.stage-pos{font-size:var(--fs-14);color:var(--color-accent-strong);font-weight:700}.stage-name{font-family:var(--font-display);letter-spacing:-.03em;overflow-wrap:anywhere;font-size:clamp(1.5rem,6vw,3rem);font-weight:700;line-height:1.1}.stage-note{font-size:var(--fs-16);color:var(--color-muted);margin-block-start:4px!important}.stage-tempo{flex:none;justify-items:end;display:grid}.stage-tempo .num{font-size:clamp(2rem,9vw,4rem);font-weight:700;line-height:1}.stage-tempo small{font-size:var(--fs-13);color:var(--color-muted)}.stage-mid{align-content:center;place-items:center;gap:var(--s-4);min-block-size:0;display:grid;position:relative}.stage-beat{letter-spacing:-.06em;color:var(--color-text);margin:0;font-size:min(52vh,72vw);font-weight:700;line-height:.85}.stage-beat[data-first]{color:var(--color-accent-strong)}.stage-beat[data-silent]{opacity:.25}.stage-dots{flex-wrap:wrap;justify-content:center;gap:clamp(8px,2vw,16px);max-inline-size:90vw;display:flex}.stage-dots i{aspect-ratio:1;inline-size:clamp(12px,3.4vw,22px);box-shadow:inset 0 0 0 2px var(--color-faint);border-radius:50%}.stage-dots i[data-acc=f]{box-shadow:inset 0 0 0 3px var(--color-muted)}.stage-dots i[data-acc=mute]{opacity:.4}.stage-dots i[data-on]{background:var(--color-text);box-shadow:none}.stage-dots i[data-on]:first-child{background:var(--color-accent)}.stage-bar{text-align:center;margin:0;font-size:clamp(1.25rem,5vw,2rem);font-weight:700}.stage-next{text-align:center;justify-items:center;gap:2px;display:grid;position:relative}.stage-next p{font-size:var(--fs-18);margin:0;font-weight:600}.stage-next .lbl{color:var(--color-muted);display:inline}.stage-next .hint{font-size:var(--fs-13);font-weight:400}.stage-ctrl{align-items:center;gap:var(--s-3);grid-template-columns:1fr auto 1fr;display:grid;position:relative}.stage-opts{justify-content:flex-end;gap:6px;display:flex}.stage-hold{background:var(--color-surface);block-size:56px;inline-size:56px;box-shadow:var(--border);color:var(--color-text);-webkit-tap-highlight-color:transparent;touch-action:none;border-radius:50%;place-items:center;display:grid;position:relative}.stage-hold.main{background:var(--color-accent);block-size:72px;inline-size:72px;color:var(--color-accent-text);box-shadow:none}.stage-hold.exit{justify-self:start}.stage-hold[aria-pressed=true]:not(.main){background:var(--color-on);color:var(--color-on-text)}.stage-hold>svg:not(.hold-ring){position:relative}.hold-ring{opacity:0;pointer-events:none;block-size:calc(100% + 8px);inline-size:calc(100% + 8px);position:absolute;inset:-4px;transform:rotate(-90deg)}.hold-ring circle{fill:none;stroke:var(--color-accent-strong);stroke-width:3px;stroke-dasharray:100;stroke-dashoffset:100px;stroke-linecap:round}.stage-hold.main .hold-ring circle{stroke:var(--color-text)}.stage-hold[data-holding] .hold-ring{opacity:1}.stage-hold[data-holding] .hold-ring circle{stroke-dashoffset:0;transition:stroke-dashoffset var(--hold,.45s) linear}.stage-toast{text-align:center;pointer-events:none;font-size:var(--fs-18);color:var(--color-accent-strong);margin:0;font-weight:700;position:absolute;inset-block-start:40%;inset-inline:0}:root[data-os=ios] .stage-hold:not(.main){background:var(--glass);box-shadow:var(--glass-edge);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}:root[data-os=android] .stage-hold{box-shadow:none;background:var(--color-surface-2)}:root[data-os=android] .stage-hold.main{background:var(--color-accent);border-radius:24px}@media (orientation:landscape) and (max-height:520px){dialog.stage{grid-template-rows:auto 1fr auto;grid-template-columns:1fr auto}.stage-top{grid-column:1/-1}.stage-mid{grid-row:2/4}.stage-beat{font-size:62vh}.stage-bar,.stage-next{grid-column:2}.stage-ctrl{grid-column:1/-1}}@media (min-width:1024px){.lib{padding-block-start:26px}.lib-head .tool-h1{font-size:var(--fs-30)}.lib-actions .btn{flex:none}.stats{grid-template-columns:repeat(4,1fr)}.lib-toast{inset-block-end:var(--s-8)}.stage-dots i{inline-size:22px}}.print-area{display:none}@media print{body *{visibility:hidden!important}.print-area,.print-area *{visibility:visible!important}.print-area{color:#000;font-family:var(--font-text);background:#fff;padding:0;display:block;position:absolute;inset:0 0 auto}.print-area h2{margin:0 0 12pt;font-size:22pt}.print-area table{border-collapse:collapse;inline-size:100%;font-size:12pt}.print-area th,.print-area td{text-align:start;vertical-align:top;border-block-end:.5pt solid #999;padding:6pt}.print-area th{text-transform:uppercase;letter-spacing:.04em;font-size:9pt}.print-area td:nth-child(3){font-size:16pt;font-weight:700}.print-foot{color:#555;margin-block-start:12pt;font-size:9pt}header.top,.tabbar,footer.site{display:none!important}}
