:root{--bg:#14161a;--panel:#1d2026;--text:#e8e6e1;--muted:#b9b5ac;--border:#555b66;--accent:#e0a458;--good:#7bc47f;--bad:#e06c5c;--hover:#2a2e36;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f5f3ee;--panel:#fff;--text:#1a1c20;--muted:#5c5a55;--border:#d0ccc2;--accent:#b4762a;--good:#2d7a32;--bad:#c0392b;--hover:#e8e5dc;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}#boot-splash{background:var(--bg);z-index:1000;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;transition:opacity .3s;display:flex;position:fixed;inset:0}html[data-booted="1"] #boot-splash{opacity:0;pointer-events:none}.splash-title{color:var(--text);letter-spacing:.02em;font-size:3rem;font-weight:600}.splash-dots{align-items:center;gap:.45rem;height:1rem;margin-top:.15rem;display:flex}.splash-dots span{background:var(--accent);opacity:.35;border-radius:50%;width:.6rem;height:.6rem;animation:1.2s ease-in-out infinite splash-dot-pulse}.splash-dots span:nth-child(2){animation-delay:.15s}.splash-dots span:nth-child(3){animation-delay:.3s}.splash-error{max-width:28rem;color:var(--muted);text-align:center;margin:0}@keyframes splash-dot-pulse{0%,60%,to{opacity:.35;transform:scale(.7)}30%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.splash-dots span{opacity:.8;animation:none}}#app{visibility:hidden}html[data-booted="1"] #app{visibility:visible}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,sans-serif;line-height:1.5;overflow:hidden}body.view-admin{overflow:auto}#app{flex-direction:column;max-width:1100px;height:100dvh;margin:0 auto;padding:1.5rem;display:flex}body.view-admin #app{height:auto;min-height:100vh}.topbar{flex-wrap:wrap;align-items:center;gap:1rem;display:flex;position:relative}.topbar h1{letter-spacing:.02em;margin:0;font-size:1.2rem}.topbar h1 .brand{font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}.topbar h1 .brand:hover{text-underline-offset:3px;text-decoration:underline}.topbar-actions{flex-wrap:wrap;flex:1;align-items:center;gap:.55rem;display:flex}.spacer{flex:1}.statusline{display:none}.score-identity{align-items:center;gap:.45rem;min-width:0;display:flex}.score-name{max-width:30rem;color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.score-name>span{color:var(--muted)}.readiness-dot{border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:.72rem}.readiness-dot.ready{border-color:color-mix(in srgb, var(--good) 60%, var(--border));color:var(--good)}@media (width<=480px){.score-identity{flex-wrap:wrap;width:100%}.score-name{flex:1 0 100%;max-width:100%}.practice-toggle .sum{display:none}}button.ghost,.file-btn{color:var(--text);border:1px solid var(--border);background:0 0;font-weight:500}.file-btn{cursor:pointer;border-radius:6px;padding:.45rem .9rem;font-size:.9rem;display:inline-block}.file-btn[hidden],#drill-reshuffle[hidden]{display:none}button.ghost:hover,.file-btn:hover{border-color:var(--accent)}#controls{background:var(--panel);border-radius:10px;flex-direction:column;gap:.7rem;margin-bottom:1rem;padding:1rem 1.2rem;display:flex}.control-group{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.control-group.sliders label{color:var(--muted);align-items:center;gap:.5rem;font-size:.9rem;display:flex}.status{color:var(--muted);font-size:.85rem}button{background:var(--accent);color:#14161a;cursor:pointer;border:1px solid #0000;border-radius:6px;padding:.45rem .9rem;font-size:.9rem;font-weight:600}button:disabled{opacity:.58;cursor:default}button:not(:disabled):hover{border-color:var(--accent)}:where(button,input,select,summary,[tabindex]):focus-visible{outline:1px solid var(--accent);outline-offset:2px}.transport.playing{background:var(--hover);color:var(--text)}.transport{background:var(--accent);color:#14161a;border:0;border-radius:999px;min-width:6.5rem;padding:.5rem 1.15rem;font-weight:600}.preview{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:999px;min-width:2.5rem;padding:.5rem .75rem;font-size:.9rem}.preview.playing{background:var(--accent-soft);border-color:var(--accent)}.dur-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;min-width:2rem;padding:.25rem .5rem;font-size:.8rem;font-weight:600}.dur-btn.active{background:var(--accent);border-color:var(--accent);color:#14161a}.practice-switcher{border:1px solid var(--border);background:var(--bg);border-radius:999px;flex:none;align-items:center;width:22rem;display:flex;overflow:hidden}.practice-toggle{min-width:0;color:var(--text);background:0 0;border:0;border-radius:0;align-items:center;gap:.55rem;padding:.42rem .8rem;font-weight:400;display:flex}.practice-toggle:hover{background:color-mix(in srgb, var(--accent) 8%, var(--bg))}.practice-toggle[aria-expanded=true]{background:color-mix(in srgb, var(--accent) 10%, var(--bg));box-shadow:inset 0 0 0 1px var(--accent)}.mode-toggle{border-right:1px solid var(--border);white-space:nowrap;flex:none;max-width:9.5rem}.mode-chevron{color:var(--muted);font-size:.7rem}.config-toggle{flex:auto;overflow:hidden}.practice-sliders{color:var(--muted);font-size:1rem;line-height:1}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.practice-toggle .sum{color:var(--accent);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.85rem;font-weight:600;overflow:hidden}.practice-toggle .tnum{text-align:right;font-variant-numeric:tabular-nums;min-width:3ch;display:inline-block}input[type=file]{color:var(--muted);font-size:.85rem}input[type=range]{accent-color:var(--accent)}.summary-grid{flex-wrap:wrap;gap:1.5rem;padding:.4rem 0 .2rem;display:flex}.bars-to-work{margin-top:1rem}.bars-to-work button{margin-top:.6rem}.heat-legend{color:var(--muted);font-size:.78rem}.heat-ok{color:#3fbf66}.heat-miss{color:#ef6464}.heat-mixed{color:#e9a240}.bars-to-work ul{flex-wrap:wrap;gap:.4rem 1.2rem;margin:.35rem 0 0;padding:0;font-size:.85rem;list-style:none;display:flex}.shortcuts-list{grid-template-columns:auto 1fr;align-items:center;gap:.9rem 1rem;margin:0;padding:.4rem 0 .2rem;display:grid}.shortcuts-list>div{display:contents}.shortcuts-list dt{white-space:nowrap;margin:0;line-height:1.7}.shortcuts-list dd{color:var(--muted);margin:0;font-size:.92rem}.kbd-piano{padding-top:1.9rem;display:inline-block;position:relative}.kbd-whites{gap:3px;display:flex}.kbd-whites kbd{text-align:center;width:1.9rem}.kbd-blacks{pointer-events:none;height:1.9rem;position:absolute;top:0;left:0;right:0}.kbd-blacks kbd{top:0;left:calc(var(--k) * (1.9rem + 3px));text-align:center;color:#fff;background:#1c1c22;border-color:#000;width:1.9rem;position:absolute;transform:translate(-50%)}kbd{border:1px solid var(--border);background:var(--hover);color:var(--text);white-space:nowrap;border-bottom-width:2px;border-radius:4px;margin:0 .06rem;padding:.08rem .42rem;font-family:inherit;font-size:.82rem;display:inline-block}.stat{flex-direction:column;display:flex}.stat span:last-child{font-size:1.3rem;font-weight:700}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.75rem}#score-wrap{-webkit-user-select:none;user-select:none;scrollbar-width:thin;scrollbar-color:transparent transparent;background:#fdfdfa;border-radius:10px;flex:1;min-height:0;margin-top:.5rem;padding:1rem;position:relative;overflow-y:auto}#score-wrap.content-fit{height:clamp(14rem, var(--score-content-height), 58dvh);flex:0 auto}#score-wrap::-webkit-scrollbar{width:10px}#score-empty{text-align:center;justify-content:center;align-items:center;min-height:22rem;padding:2rem 1rem;display:flex}#score-empty[hidden]{display:none}.empty-card{max-width:26rem}.empty-card h2{color:#1a1c20;margin:0 0 .6rem;font-size:1.4rem}.empty-card p{color:#4a4e57;margin:0 0 1.2rem;line-height:1.5}.empty-actions{flex-wrap:wrap;justify-content:center;gap:.55rem;display:flex}.empty-card button{background:var(--accent);color:#14100a;cursor:pointer;border:none;border-radius:8px;min-height:44px;padding:.7rem 1.6rem;font-size:1rem;font-weight:600}.empty-card .empty-secondary{color:#24262b;background:#ece8de;border:1px solid #c8c1b2}.empty-card .empty-link{color:#555b65;background:0 0;flex-basis:100%;min-height:36px;padding:.3rem;font-size:.9rem}.empty-card button:hover{filter:brightness(1.1)}#score-wrap::-webkit-scrollbar-track{background:0 0}#score-wrap::-webkit-scrollbar-thumb{background:0 0;border-radius:6px}#score-wrap.user-scrolled{scrollbar-color:#7878878c transparent}#score-wrap.user-scrolled::-webkit-scrollbar-thumb{background:#7878878c}#playhead-line{background:var(--accent);width:2px;box-shadow:0 0 10px var(--accent);pointer-events:none;z-index:5;position:absolute;left:0}#playhead-line[hidden]{display:none}.range-wash{pointer-events:none;z-index:3;background:#fde04747;border-radius:3px;position:absolute;top:0;left:0}#measure-highlight{pointer-events:none;z-index:4;background:#93c5fd59;border-radius:3px;position:absolute;top:0;left:0}#measure-highlight[hidden]{display:none}#score{width:100%}#piano-wrap{border-top:1px solid var(--border);background:var(--panel);border-radius:0 0 10px 10px;flex:none;margin-top:.6rem;overflow:hidden}#score-wrap.content-fit+#piano-wrap{margin-top:auto}body.view-admin #piano-wrap{display:none}#piano-bar{align-items:center;gap:.45rem;padding:.1rem .5rem;display:flex}#piano-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.3rem .45rem;font-size:.85rem;line-height:1}#piano-toggle:hover{color:var(--text);background:var(--panel)}#piano-label{letter-spacing:.02em;color:var(--muted);font-size:.8rem;font-weight:600}#piano-wrap.collapsed #piano-keys{display:none}#piano-keys{-webkit-user-select:none;user-select:none;height:118px;margin:0 .5rem .5rem;display:flex;position:relative}.piano-keys .pkey.white{background:linear-gradient(#fbf9f4,#e9e5d9);border:1px solid #b9b4a6;border-top-width:2px;border-radius:0 0 3px 3px;flex:1 1 0;min-width:0;position:relative}.piano-keys .pkey.black{z-index:2;background:linear-gradient(#2c2f36,#101216);border:1px solid #000;border-radius:0 0 3px 3px;min-width:7px;height:62%;position:absolute;top:0;transform:translate(-50%)}.piano-keys .pkey.white.active{background:linear-gradient(#f3c87e, var(--accent))}.piano-keys .pkey.black.active{background:linear-gradient(#e0a458,#b97c2e)}.piano-keys .pkey.hint{box-shadow:inset 0 0 0 3px var(--accent)}.pkey-label{text-align:center;color:#8a8578;pointer-events:none;font-size:.6rem;position:absolute;bottom:3px;left:0;right:0}.piano-keys .pkey.white.active .pkey-label{color:#5c4a22}wa-dialog::part(dialog){background:var(--panel);color:var(--text);border:1px solid #3a3e46}#shortcuts-modal::part(dialog){--width:44rem}wa-dialog::part(header){border-bottom:1px solid #2c3038;padding-bottom:.75rem}wa-dialog::part(title){color:var(--text);font-size:1.15rem}wa-dialog::part(close-button){display:none}wa-dialog::part(body){color:var(--text)}wa-dialog::part(footer){border-top:1px solid #2c3038;padding-top:.75rem}wa-dialog section{border-top:1px solid #2c3038;padding:.9rem 0}wa-dialog section:first-of-type{border-top:none}wa-dialog h3{letter-spacing:.01em;color:var(--text);margin:0 0 .5rem;font-size:.95rem}#library-modal,#debug-modal{--width:42rem}#library-modal::part(dialog){height:auto;max-height:min(82dvh,54rem)}#library-modal::part(body){flex-direction:column;display:flex;overflow:hidden}#library-body{flex-direction:column;flex:1;min-height:0;display:flex}.setting-row{flex-wrap:wrap;align-items:center;gap:.7rem;margin:.55rem 0;display:flex}.setting-row>label{min-width:6.5rem;font-size:.9rem}.setting-row .val{text-align:right;font-variant-numeric:tabular-nums;min-width:2.2rem}.setting-row .unit{color:var(--muted);font-size:.85rem}.check{cursor:pointer;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.check input[type=checkbox]{accent-color:var(--accent);width:1rem;height:1rem}select{background:var(--bg);color:var(--text);appearance:none;border:1px solid #3a3e46;border-radius:6px;max-width:100%;padding:.35rem .5rem;font-size:.9rem}select::-ms-expand{display:none}.fineprint{color:var(--muted);margin:.4rem 0 0;font-size:.82rem}input[type=number]{background:var(--bg);width:3.2rem;color:var(--text);border:1px solid #3a3e46;border-radius:6px;padding:.25rem .4rem;font-size:.9rem}#countin-overlay{z-index:50;pointer-events:none;background:#14161ab8;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#countin-overlay[hidden]{display:none}#countin-beat{color:var(--accent);font-size:7rem;font-weight:800;line-height:1}#countin-label{color:var(--muted);margin-top:.6rem;font-size:1.1rem}#debug-log{white-space:pre;-webkit-user-select:text;user-select:text;background:#14171c;border:1px solid #2c3038;border-radius:6px;max-height:16rem;padding:.6rem .8rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;line-height:1.5;overflow:auto}.user-chip{color:var(--muted);background:0 0;border:0;border-radius:50%;align-items:center;padding:.25rem;font-family:inherit;font-size:.85rem;font-weight:400;display:inline-flex}.user-chip:hover{color:var(--text)}.user-chip img{background:#3a3e46;border-radius:50%;width:24px;height:24px}#profile-wrap .libdrop{min-width:170px;left:auto;right:0}.libwrap{position:relative}.libdrop{z-index:40;background:var(--panel);border:1px solid #3a3e46;border-radius:10px;min-width:250px;padding:.6rem;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 12px 32px #00000080}.libdrop[hidden]{display:none}.libdrop h4{letter-spacing:.02em;color:var(--muted);margin:.55rem .4rem .3rem;font-size:.78rem}.libdrop h4:first-child{margin-top:.15rem}.lib-item{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:.5rem .6rem;font-family:inherit;font-size:.9rem;font-weight:400;display:flex}.lib-item:hover{background:var(--hover)}.lib-item.current{color:var(--accent);font-weight:700}.lib-item-primary{color:var(--accent);background:#e0a45814;justify-content:space-between;font-weight:600}.lib-item[hidden]{display:none}label.lib-item.file-btn{border:0;padding:.5rem .6rem}label.lib-item.file-btn:hover{border:0}#practice-panel,#mode-panel{z-index:30;background:var(--panel);border:0;border-radius:0 0 10px 10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem 1.25rem;max-height:calc(100dvh - 80px);padding:.8rem 1rem;display:grid;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 12px 32px #00000080}#practice-panel[hidden],#mode-panel[hidden]{display:none}#mode-panel{grid-template-columns:1fr}.mode-picker{width:min(100%,34rem);margin:0 auto}.mode-picker button{flex:1 1 0;min-height:2.75rem}.panel-fields{display:contents}.practice-core-setting{min-width:0;padding:.15rem 0}.setting-heading{justify-content:flex-start;align-items:center;gap:.65rem;margin-bottom:.45rem;display:flex}#practice-panel .setting-heading h4{margin:0}.wait-toggle{padding:.12rem .5rem;font-size:.74rem}.practice-advanced{border-top:1px solid #3a3e46;grid-column:1/-1;padding-top:.15rem}.advanced-heading{color:var(--text);align-items:center;gap:.55rem;min-height:2.2rem;padding:.3rem .2rem 0;display:flex}.practice-advanced .advanced-title{font-weight:650}.practice-advanced .advanced-summary{color:var(--muted);font-size:.78rem;font-weight:400}.advanced-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 1.25rem;margin:.65rem 0 .25rem;display:grid}.panel-head{border-bottom:1px solid #3a3e46;grid-column:1/-1;align-items:baseline;gap:.8rem;padding-bottom:.5rem;display:flex}.panel-head-copy{align-items:baseline;gap:.8rem;min-width:0;display:flex}.panel-done,.panel-scroll-cue{display:none}.panel-head h3{margin:0;font-size:1rem}.panel-head p{color:var(--muted);margin:0;font-size:.82rem}#practice-panel h4{letter-spacing:.01em;color:var(--text);margin:0 0 .4rem;font-size:.88rem}#practice-panel .fine{color:var(--muted);margin:.45rem 0 0;font-size:.82rem}.crow{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.clabel{letter-spacing:.02em;color:var(--muted);font-size:.78rem}.seg{border:1px solid #3a3e46;border-radius:8px;display:inline-flex;overflow:hidden}.seg button{color:var(--text);background:0 0;border:1px solid #0000;border-radius:0;padding:.42rem .8rem;font-weight:400}.seg button:first-child{border-radius:7px 0 0 7px}.seg button:last-child{border-radius:0 7px 7px 0}.seg button.active{border-color:var(--accent)}.seg button+button{border-left:1px solid #3a3e46}.seg button.active{background:var(--accent);color:#14161a}.seg button:disabled{opacity:.58}input[type=range].tempo{width:100%;accent-color:var(--accent)}input[type=range].tempo.compact{flex:none;width:110px}.slider-row{align-items:center;gap:.5rem}.slider-val{color:var(--muted);white-space:nowrap;min-width:3.5rem;font-size:.85rem}.slider-val b{color:var(--text)}.icon-reset{color:var(--blue);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:.95rem;line-height:1}.icon-reset:disabled{color:var(--muted);cursor:default;opacity:.5}.bpm{color:var(--muted);margin-top:.3rem;font-size:.9rem}.bpm b{text-align:right;min-width:3ch;color:var(--text);font-variant-numeric:tabular-nums;font-size:1.25rem;display:inline-block}.step{background:var(--bg);border:1px solid #3a3e46;border-radius:8px;align-items:center;gap:.3rem;padding:.15rem .3rem;display:inline-flex}.step i{color:var(--muted);padding:0 .25rem;font-size:.75rem;font-style:normal}.step button{background:var(--hover);color:var(--text);border:0;border-radius:6px;width:1.5rem;height:1.5rem;padding:0;font-weight:400;line-height:1}.step input{background:var(--bg);width:2.6rem;color:var(--text);font:inherit;text-align:center;font-variant-numeric:tabular-nums;border:1px solid #3a3e46;border-radius:6px;padding:.2rem .35rem;font-size:.9rem}.step input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.step input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.step input{appearance:textfield}.wait-toggle[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:#e0a45824}.morewrap{display:none}.lib-layout{flex:1;gap:1rem;height:min(55dvh,32rem);min-height:0;display:flex}.lib-folders{border-right:1px solid #2a2e36;flex-direction:column;flex:0 0 11rem;gap:.15rem;padding-right:.8rem;display:flex;overflow-y:auto}.lib-folder{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .6rem;font-size:.9rem;display:flex}.lib-folder:hover{background:var(--hover)}.lib-folder.current{background:var(--hover);font-weight:600}.lib-folder-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lib-scores{flex:1;min-width:0;overflow-y:auto}.lib-scores-head{background:var(--bg);flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.3rem;padding-bottom:.3rem;display:flex;position:sticky;top:0}.lib-scores-head h3{text-transform:none;letter-spacing:0;color:var(--text);margin:0;font-size:1rem}.lib-header-actions{flex:1;align-items:center;gap:.5rem;display:flex}#library-search{border:1px solid var(--border);background:var(--bg);max-width:22rem;color:var(--text);border-radius:6px;flex:1;margin-left:12rem;padding:.4rem .6rem;font-size:.9rem}#library-search::placeholder{color:var(--text-dim)}.lib-scores-head .ghost{padding:.25rem .6rem;font-size:.8rem}@media (width<=760px){#app{padding:.75rem}.topbar{flex-wrap:nowrap;gap:.5rem}.topbar h1{display:none}.topbar-actions{flex-wrap:nowrap;gap:.45rem;min-width:0}.morewrap{flex:none;display:block}#library-button,#share-link,#settings-open,#debug-open,#signin,#profile-wrap,.topbar-actions>.spacer,#drill-reshuffle .btn-label{display:none}#drill-reshuffle{padding-left:8px;padding-right:8px}.libwrap-library{display:contents}.practice-switcher{flex:auto;width:auto;min-width:0}.practice-toggle{padding:.42rem .65rem}.mode-toggle{flex:auto;overflow:hidden}#practice-mode-label{text-overflow:ellipsis;overflow:hidden}.config-toggle{flex:0 0 2.7rem;justify-content:center}.config-toggle .sum{display:none}.practice-sliders{display:inline}.transport{flex:none;min-width:0;padding:.5rem .9rem}.statusline{margin:.25rem 0 .5rem}#piano-wrap{scrollbar-width:thin;overflow-x:auto}#piano-keys{height:84px;width:calc(var(--white-key-count) * 38px);min-width:calc(var(--white-key-count) * 38px);touch-action:pan-x}.piano-keys .pkey.white{flex:0 0 38px}.piano-keys .pkey.black{min-width:24px}.libdrop{min-width:0;max-height:70dvh;position:fixed;top:3.75rem;left:.5rem;right:.5rem;overflow-y:auto}#profile-wrap .libdrop{left:.5rem;right:.5rem}#practice-panel,#mode-panel{z-index:60;max-height:72dvh;padding:.75rem 1rem calc(.8rem + env(safe-area-inset-bottom));overscroll-behavior:contain;border-radius:16px 16px 0 0;grid-template-columns:1fr;gap:.75rem;scroll-padding-top:5.5rem;position:fixed;inset:auto 0 0;overflow-y:auto}.panel-head{z-index:2;background:var(--panel);justify-content:space-between;align-items:center;margin:-.75rem -1rem 0;padding:.7rem 1rem .6rem;position:sticky;top:-.75rem;box-shadow:0 10px 12px -12px #000000e6}.panel-head-copy{display:block}.panel-head h3{white-space:nowrap}.panel-head p{display:none}.panel-done{flex:none;min-height:44px;display:block}.practice-core-setting{padding:0}.setting-heading{justify-content:space-between;margin-bottom:.4rem}.wait-toggle{min-height:36px;padding:.35rem .65rem}#mode-seg,#hands-seg{width:100%;display:grid}#mode-seg{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)}#hands-seg{grid-template-columns:repeat(3,minmax(0,1fr))}.advanced-heading{flex-wrap:wrap;align-items:flex-start;gap:.15rem .5rem;padding:.45rem 0 0}.practice-advanced .advanced-summary{flex-basis:100%;margin-top:-.1rem}.advanced-grid{grid-template-columns:1fr;gap:1rem}.seg button{min-height:44px;padding:.5rem 1rem}.step button{width:44px;height:44px}.step input,.number-field input[type=number]{min-height:44px;font-size:1rem}wa-dialog::part(dialog){border-bottom:none;border-left:none;border-right:none;border-radius:16px 16px 0 0;width:100%;max-width:100%;max-height:88dvh;margin-top:auto;margin-bottom:0}.lib-layout{flex-direction:column;gap:.6rem;min-height:0;max-height:none}.lib-folders{border-bottom:1px solid #2a2e36;border-right:none;flex-direction:row;flex:none;padding:0 0 .6rem;overflow:auto hidden}.lib-folder{flex:none;width:auto}.lib-scores{min-height:0;overflow-y:auto}}.lib-row{border-top:1px solid #2a2e36;flex-wrap:wrap;align-items:center;gap:.7rem;padding:.55rem 0;display:flex}.lib-load{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;flex:16rem;justify-content:space-between;align-items:center;gap:.8rem;min-width:min(100%,16rem);padding:.55rem .7rem;font-size:.95rem;font-weight:600;display:flex}.lib-load:hover{border-color:var(--accent);color:var(--accent)}.lib-score-copy{flex-direction:column;min-width:0;display:flex}.lib-score-copy strong{text-overflow:ellipsis;overflow:hidden}.lib-score-copy small{color:var(--muted);font-weight:400}.lib-signed-out-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.7rem;display:flex}.lib-signed-out-head h3,.lib-signed-out-head p{margin:0}.lib-row select{background:var(--panel);color:var(--text);border:1px solid #3a3e46;border-radius:6px;padding:.25rem .4rem;font-size:.8rem}.lib-row .ghost{padding:.25rem .6rem;font-size:.8rem}.lib-star{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.2rem .35rem;font-size:1.15rem;line-height:1}.lib-star:hover{color:var(--accent);background:#22262d}.lib-star.on{color:var(--accent)}.lib-error{color:var(--bad);font-size:.9rem}#admin-view{flex:1;width:100%;max-width:980px;margin:1.5rem auto;padding:0 1.5rem}.admin-head{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.admin-head h2{margin:0;font-size:1.25rem}#admin-search{background:var(--panel);color:var(--text);border:1px solid #3a3e46;border-radius:6px;min-width:220px;margin-left:auto;padding:.4rem .7rem;font-size:.9rem}.admin-results table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-results th,.admin-results td{text-align:left;vertical-align:top;border-bottom:1px solid #2a2e35;padding:.5rem .7rem}.admin-results th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.admin-results td.num,.admin-results th.num{text-align:right;white-space:nowrap}.admin-note{color:var(--muted);text-align:center;padding:2rem 0}.admin-tag{color:var(--accent);border:1px solid var(--accent);vertical-align:middle;border-radius:4px;margin-left:.5rem;padding:0 .35rem;font-size:.75rem;display:inline-block}.slider-stack{min-width:0}.slider-stack input[type=range]{width:100%}.slider-scale{color:var(--muted);justify-content:space-between;gap:12px;margin-top:3px;font-size:10px;line-height:1.2;display:flex}.slider-readout{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.text-reset{color:var(--blue);font:inherit;cursor:pointer;background:0 0;border:0;padding:2px 0;font-size:11px}.text-reset:disabled{color:var(--muted);cursor:default;opacity:.65}.setting-slider{align-items:start}.setting-slider .unit{text-align:right;min-width:42px;padding-top:5px}.range-fields{align-items:end}.number-field{color:var(--muted);gap:4px;font-size:11px;display:grid}.number-field input[type=number]{width:7.5rem}.select-on-score{width:100%;margin-top:8px}#score-wrap.selecting-range{outline:2px solid var(--accent);outline-offset:-2px;cursor:crosshair}#score-wrap.mode-hidden{display:none}.ear-training{border:1px solid var(--border);background:radial-gradient(circle at 50% 18%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 42%), var(--panel);border-radius:10px;flex:1;place-items:center;min-height:0;margin-top:.5rem;padding:clamp(1.5rem,5vw,4rem) 1rem;display:grid}body.view-admin .ear-training{display:none}.ear-card{text-align:center;width:min(100%,32rem)}.ear-kicker{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .2rem;font-size:.75rem;font-weight:700}.ear-card h2{margin:0;font-size:clamp(1.7rem,4vw,2.35rem)}.ear-instruction{max-width:28rem;color:var(--muted);margin:.6rem auto 1.6rem}.ear-question-label,.ear-result{min-height:1.5rem;margin:0 0 .65rem;font-weight:650}.ear-result{color:var(--good);font-size:1.15rem}.ear-hear{border-radius:999px;min-width:10.5rem;min-height:2.75rem}.ear-progress{isolation:isolate;justify-content:space-between;align-items:center;width:min(100%,24rem);margin:2rem auto 1.6rem;display:flex;position:relative}.ear-progress:before{content:"";z-index:-1;background:var(--border);height:2px;position:absolute;top:50%;left:.5rem;right:.5rem}.ear-dot{border:2px solid var(--border);background:var(--panel);border-radius:50%;width:1rem;height:1rem;transition:background .12s,border-color .12s,transform .12s}.ear-dot.current{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);transform:scale(1.08)}.ear-dot.correct{border-color:var(--good);background:var(--good)}.ear-dot.incorrect{border-color:var(--bad);background:var(--bad)}.ear-choices{grid-template-columns:repeat(2,minmax(7rem,1fr));gap:1rem;width:min(100%,24rem);margin:0 auto;display:grid}.ear-choice{border:1px solid var(--border);background:var(--bg);min-height:4.25rem;color:var(--text);font-family:Georgia,serif;font-size:1.65rem}.ear-choice.correct,.ear-choice.correct:disabled{border-color:var(--good);background:var(--good);color:#0d2410;opacity:1}.ear-choice.wrong,.ear-choice.wrong:disabled{border-color:var(--bad);background:var(--bad);color:#2b0b08;opacity:1}.ear-feedback{min-height:1.5rem;color:var(--muted);margin:.75rem 0 0}.ear-pattern-reveal{color:var(--text);margin-top:.15rem;font-weight:650;display:block}.ear-error{color:var(--bad);margin:.75rem 0 0;font-size:.85rem}.ear-count{align-items:center;gap:.75rem;display:flex}.ear-fixed-key{width:fit-content;margin-top:.8rem}.ear-pattern-setting .fine{margin:-.25rem 0 .7rem}.ear-pattern-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;display:grid}.ear-pattern-group{align-content:start;gap:.35rem;display:grid}.ear-pattern-group strong{color:var(--accent);margin-bottom:.15rem;font-size:.82rem}.ear-pattern-check{min-width:0;color:var(--text);white-space:nowrap}@media (width<=560px){.ear-training{padding-inline:.75rem}.ear-pattern-groups{grid-template-columns:1fr;gap:.8rem}}
