:root{--font-sans:"Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-display:Georgia, "Songti SC", "SimSun", "Times New Roman", serif;--ink:#1a3a4a;--ink-muted:#5a727e;--ink-soft:#9aafb8;--line:#d2dde3;--surface:#fff;--surface-raised:#f3f7f9;--roll-bg:#f8fbfc;--teal:#3d8f6e;--teal-deep:#2a6b52;--accent:#e07a45;--scale-in:#b8e6c9;--scale-out:#f5c4ba;--key-white:#f7fafb;--key-black:#243039;font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--ink);background:#eef3f5;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px}button,input,select{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible,.tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.brand-intro{z-index:1100;opacity:0;text-align:left;pointer-events:none;transform-origin:0 0;will-change:transform, opacity;position:fixed;top:0;left:0}.brand-intro-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);margin:0;font-size:clamp(2.1rem,5vw,3rem);font-weight:700;line-height:1.05}.brand-intro-by{font-size:inherit;letter-spacing:0;color:inherit;vertical-align:baseline;white-space:nowrap;margin-left:.4em;font-weight:600;display:inline}.brand-intro-tag{color:var(--ink-muted);white-space:nowrap;margin:6px 0 0;font-size:.98rem}.brand-splash-mask{z-index:1090;pointer-events:none;opacity:1;background:radial-gradient(1000px 480px at 10% -10%,#7ec8a347,#0000 60%),radial-gradient(800px 420px at 90% 0,#f0a07a2e,#0000 55%),linear-gradient(165deg,#f4f7f8 0%,#e7eef2 45%,#f7f3ee 100%);transition:opacity .55s;position:fixed;inset:0}.brand-splash-mask.off{opacity:0}.scale-picker{z-index:50;position:relative}.scale-trigger{border:1px solid var(--line);color:var(--ink-muted);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:#ffffffc7;border-radius:999px;max-width:220px;padding:6px 14px;font-size:.82rem;font-weight:600;overflow:hidden}.scale-trigger.has-scale{color:var(--teal-deep);border-color:color-mix(in srgb, var(--teal) 40%, var(--line));background:color-mix(in srgb, var(--scale-in) 55%, white)}.scale-menu{border:1px solid var(--line);z-index:60;background:#f7f9fa;border-radius:18px;min-width:320px;max-height:min(70vh,480px);padding:12px 10px;position:absolute;top:calc(100% + 8px);left:0;overflow:auto;box-shadow:0 14px 36px #1a3a4a29}.scale-menu-title{color:var(--ink);padding:4px 8px 10px;font-size:.88rem;font-weight:700}.scale-option{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:10px;padding:8px 10px;font-size:.9rem;display:block}.scale-option:hover{background:color-mix(in srgb, white 80%, var(--surface-raised))}.scale-option.active{background:color-mix(in srgb, var(--scale-in) 70%, white);border-color:color-mix(in srgb, var(--teal) 45%, var(--line))}.scale-option.nested{color:var(--ink-muted);padding-left:18px;font-size:.86rem}.scale-option-with-degrees{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.scale-option-degrees{letter-spacing:.04em;color:var(--ink-soft);flex-shrink:0;font-family:ui-monospace,Cascadia Mono,Segoe UI Mono,monospace;font-size:.78rem;font-weight:650}.scale-option.back{color:var(--ink-muted);margin-bottom:4px;font-size:.82rem}.scale-option.danger{color:#a14a3a;margin-top:8px}.scale-group-block+.scale-group-block{margin-top:2px}.scale-type-list{padding:2px 0 6px}.scale-workbench-controls{grid-template-columns:1.4fr 1fr auto;align-items:end;gap:12px;margin-top:14px;display:grid;overflow:visible}.swc-field{color:var(--ink-muted);flex-direction:column;gap:6px;font-size:.82rem;font-weight:600;display:flex}.swc-field select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:12px;padding:10px 12px}.swc-type-dd{z-index:2;position:relative}.swc-type-dd.open{z-index:40}.swc-type-trigger{text-align:left;border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:#fff;border-radius:12px;padding:10px 12px;font-weight:600;display:block;overflow:hidden}.swc-type-trigger:hover,.swc-type-dd.open .swc-type-trigger{border-color:color-mix(in srgb, var(--teal) 45%, var(--line))}.swc-type-menu{overflow-anchor:none;overscroll-behavior:contain;border:1px solid var(--line);z-index:80;background:#f7f9fa;border-radius:14px;width:max(100%,360px);min-width:min(100%,420px);max-height:min(52vh,440px);padding:8px 6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto;box-shadow:0 14px 36px #1a3a4a29}.swc-type-menu:not(.narrow){min-width:0;position:fixed;right:auto}.swc-type-menu.narrow{width:100%;min-width:0;max-height:min(40vh,320px)}.swc-type-group+.swc-type-group{margin-top:6px}.swc-type-group-label{letter-spacing:.04em;color:var(--ink-soft);padding:6px 10px 4px;font-size:.72rem;font-weight:700}.swc-type-option{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:10px;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 10px;font-size:.86rem;display:flex}.swc-type-option:hover{background:color-mix(in srgb, white 80%, var(--surface-raised))}.swc-type-option.active{background:color-mix(in srgb, var(--scale-in) 70%, white);border-color:color-mix(in srgb, var(--teal) 45%, var(--line))}.swc-type-option-name{min-width:0;font-weight:600}.swc-clear{border:1px solid var(--line);cursor:pointer;color:var(--ink-muted);background:#fff;border-radius:12px;height:fit-content;padding:10px 14px;font-weight:600}.swc-clear:hover{border-color:var(--teal);color:var(--teal-deep)}.scale-audition-btn{border:1px solid var(--line);cursor:pointer;color:var(--ink);white-space:nowrap;background:#fff;border-radius:12px;padding:10px 14px;font-weight:700}.scale-audition-btn:hover:not(:disabled){border-color:var(--teal);color:var(--teal-deep)}.scale-audition-btn.on{color:#fff;background:#1e3a4a;border-color:#1e3a4a}.scale-audition-btn:disabled{opacity:.45;cursor:not-allowed}.swc-hint{color:var(--ink-soft);grid-column:1/-1;margin:0;font-size:.8rem}.candidates{margin-top:18px}.candidates h3{align-items:center;gap:8px;margin:0 0 10px;font-size:1rem;display:flex}.candidate-list{flex-direction:column;gap:8px;max-height:min(50vh,440px);margin:0;padding:0;list-style:none;display:flex;overflow:auto}.count-badge{background:var(--ink);color:#fff;border-radius:999px;place-items:center;min-width:1.5rem;height:1.5rem;padding:0 6px;font-size:.72rem;font-weight:700;display:inline-grid}.candidate{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.candidate-actions{flex-shrink:0;gap:6px;display:flex}.candidate:hover,.candidate.hovered,.candidate:focus-visible{border-color:var(--accent);background:var(--surface-raised);outline:none}.candidate.active{border-color:var(--teal);background:color-mix(in srgb, var(--scale-in) 35%, white)}.candidate .rank{background:var(--ink);color:#fff;width:36px;height:36px;font-weight:700;font-family:var(--font-display);border-radius:10px;place-items:center;display:grid}.candidate .meta{flex-direction:column;gap:2px;display:flex}.candidate .meta strong{font-size:1.05rem}.candidate .meta .hit-count{color:var(--ink-muted);margin-left:2px;font-size:.88rem;font-weight:600}.candidate .meta .scale-usage{color:var(--ink-muted);font-size:.78rem;font-weight:500;line-height:1.35}.candidates .muted{color:var(--ink-muted);margin:0;font-size:.9rem}.active-hint{color:var(--teal-deep);margin-top:14px;font-size:.92rem}.swc-btn{border:1px solid var(--line);background:var(--ink);color:#fff;cursor:pointer;border-radius:10px;padding:6px 12px;font-weight:600}.swc-btn.ghost{color:var(--ink-muted);background:#fff}.swc-btn.small{padding:5px 10px;font-size:.78rem}.swc-btn.ghost:hover{border-color:var(--teal);color:var(--teal-deep)}@media (width<=800px){.scale-workbench-controls{grid-template-columns:1fr}.candidate{grid-template-columns:36px 1fr}.candidate-actions{grid-column:2}}.fretboard-wrap{width:100%}.fretboard-tap-name{text-align:center;min-height:4.2rem;color:var(--ink-muted);justify-content:center;align-items:center;margin:0 0 10px;display:flex}.fretboard-tap-line{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:12px 16px;display:flex}.fretboard-tap-name strong{color:var(--ink);letter-spacing:.02em;font-size:4.4rem;font-weight:800;line-height:1}.fretboard-tap-pos{color:var(--ink-muted);font-size:1.15rem;font-weight:650}.fretboard-tap-placeholder{color:var(--ink-soft);letter-spacing:.04em;font-size:1.55rem;font-weight:700}.egg-chip{letter-spacing:.02em;background:linear-gradient(90deg,#4a78d6,#6f4aa8,#d4b84a,#2db86a);color:#0000;filter:saturate(1.1);-webkit-background-clip:text;background-clip:text;font-size:1.15rem;font-style:normal;font-weight:750}.fretboard{background:linear-gradient(#c4a574 0%,#a67c52 45%,#8b5e3c 100%);border:1px solid #6b442366;border-radius:16px;width:100%;padding:8px 6px 10px;overflow-x:auto;box-shadow:inset 0 1px #fff3}.fretboard-inner{position:relative}.fret-ruler{grid-template-columns:42px repeat(24,minmax(28px,1fr));gap:0;margin-bottom:4px;display:grid}.fret-num{text-align:center;color:#ffffff8c;font-size:.68rem;font-weight:600}.fret-num.mark{color:#fffffffa;text-shadow:0 1px 2px #00000059;font-weight:800}.nut-cell{width:42px}.string-row{grid-template-columns:42px repeat(24,minmax(28px,1fr));min-height:34px;display:grid;position:relative;overflow:visible}.nut-label{color:#e8f0f2;cursor:pointer;background:#1a3a4a;border:none;border-radius:6px 0 0 6px;margin-right:2px;font-size:.85rem;font-weight:700;position:relative}.nut-label:hover{background:#244a5c}.fret-cell{cursor:pointer;background:0 0;border:none;border-right:2px solid #dcdcdc8c;min-height:34px;padding:0;position:relative;overflow:visible}.fret-cell:first-of-type{border-left:4px solid #e8e8e8}.fret-cell.pe-bend-tgt,.nut-label.pe-bend-tgt{background:#e05a386b}.string-line{z-index:1;pointer-events:none;background:linear-gradient(90deg,#e6e6e6f2,#c8c8c8d9);height:2px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);box-shadow:0 1px 1px #00000040}.s1 .string-line{height:1px}.s2 .string-line{height:1.5px}.s3 .string-line{height:2px}.s4 .string-line{height:2.2px}.s5 .string-line{height:2.6px}.s6 .string-line{height:3px}.degree-dot{z-index:2;color:#3a3a3a;pointer-events:none;border:1px solid #ffffff8c;border-radius:50%;place-items:center;width:22px;height:22px;font-size:.72rem;font-weight:700;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1px 3px #00000040}.degree-fly-layer{pointer-events:none;z-index:4;position:absolute;inset:0}.degree-fly{color:#3a3a3a;will-change:transform, opacity;pointer-events:none;border:1px solid #ffffff8c;border-radius:50%;place-items:center;width:22px;height:22px;margin:0;font-size:.72rem;font-weight:700;display:grid;position:absolute;box-shadow:0 1px 3px #00000040}.degree-fly.kind-fly{transition-property:transform;transition-timing-function:cubic-bezier(.22,1,.36,1)}.degree-fly.kind-out,.degree-fly.kind-in{transition-property:opacity;transition-timing-function:ease}.inlay{pointer-events:none;z-index:0;background:#ffffffd1;border:1.5px solid #28180c66;border-radius:50%;width:12px;height:12px;position:absolute;left:50%;box-shadow:0 0 0 1px #ffffff59,0 1px 2px #00000040}.inlay.inlay-gap{top:100%;transform:translate(-50%,-50%)}.tap-dot{z-index:3;color:#fff;pointer-events:none;background:#2db86a;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 3px;font-size:.7rem;font-weight:800;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #2db86a8c}.egg-dot{z-index:3;color:#fff;pointer-events:none;opacity:0;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 3px;font-size:.68rem;font-weight:800;transition-property:opacity;transition-timing-function:ease;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.egg-dot.visible{opacity:1}.egg-dot.tone-root{background:#4a78d6}.egg-dot.tone-third{color:#1f1a0a;background:#d4b84a}.egg-dot.tone-fifth{background:#6f4aa8}.egg-dot.tone-other{color:#e8eaec;background:#2c3034}.fretboard-hint{color:var(--ink-soft);margin:8px 0 0;font-size:.78rem}.octave-keyboard{-webkit-user-select:none;user-select:none;width:100%;max-width:520px;height:140px;position:relative}.ok-whites{grid-template-columns:repeat(7,1fr);align-items:end;gap:4px;height:100%;display:grid}.ok-key-slot{flex-direction:column;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.ok-check{z-index:3;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:3px;place-items:center;width:16px;height:16px;display:grid;position:absolute;top:0}.ok-check input{cursor:pointer;width:12px;height:12px;accent-color:var(--teal);margin:0}.ok-check.black-check{top:-2px}.ok-key{border:1px solid var(--line);cursor:pointer;border-radius:0 0 10px 10px;justify-content:center;align-items:flex-end;padding-bottom:10px;font-weight:600;display:flex}.ok-key.white{background:var(--key-white);width:100%;height:calc(100% - 22px);color:var(--ink-muted);box-shadow:0 2px #d5dee3}.ok-key.white.in-scale{background:var(--scale-in);color:var(--teal-deep)}.ok-key.white.out-scale{background:var(--scale-out);color:#7a3a32}.ok-key.white.selected,.ok-key.black.selected{outline:2px solid var(--accent);outline-offset:-2px}.ok-key.white:active{transform:translateY(1px)}.ok-blacks{pointer-events:none;height:58%;position:absolute;top:22px;left:0;right:0}.ok-black-slot{pointer-events:auto;flex-direction:column;align-items:center;width:8.85714%;height:100%;display:flex;position:absolute;transform:translate(-50%)}.ok-key.black{background:var(--key-black);color:#d7e0e4;z-index:2;border-color:#1a262c;border-radius:0 0 8px 8px;flex:1;width:100%;padding-bottom:8px;font-size:.72rem}.ok-key.black.in-scale{background:color-mix(in srgb, var(--scale-in) 55%, #243039);color:#f3fff6;border-color:var(--teal-deep)}.ok-key.black.out-scale{color:#fff6f4;background:#c9786a;border-color:#8f4f43}.tuning-editor{z-index:20;position:relative}.tuning-btn{border:1px solid var(--line);cursor:pointer;color:var(--ink);white-space:nowrap;background:#fff;border-radius:12px;padding:10px 14px;font-weight:700}.tuning-btn:hover{border-color:var(--teal);color:var(--teal-deep)}.tuning-menu{border:1px solid var(--line);background:#f7f9fa;border-radius:18px;width:300px;padding:14px 12px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 36px #1a3a4a29}.tuning-title{margin-bottom:2px;font-weight:700}.tuning-sub{color:var(--ink-soft);margin:0 0 10px;font-size:.78rem}.tuning-row{grid-template-columns:40px 1fr 64px 48px;align-items:center;gap:6px;margin-bottom:8px;display:grid}.tuning-string{color:var(--ink-muted);font-size:.82rem;font-weight:700}.tuning-row select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 8px}.tuning-preview{color:var(--ink-soft);text-align:right;font-size:.78rem}.tuning-reset{border:1px solid var(--line);cursor:pointer;width:100%;color:var(--ink-muted);background:#fff;border-radius:10px;margin-top:6px;padding:8px;font-weight:600}.tuning-foot{color:var(--ink-soft);margin:10px 0 0;font-size:.72rem;line-height:1.4}.scale-box{flex-direction:column;flex:none;width:240px;display:flex}.scale-box-board{box-sizing:border-box;background:linear-gradient(#c4a574 0%,#a67c52 45%,#8b5e3c 100%);border:1px solid #6b442366;border-radius:14px;height:118px;padding:6px 8px;box-shadow:inset 0 1px #fff3}.scale-box-inner{flex-direction:column;height:100%;display:flex;position:relative}.scale-box-row{flex:1;grid-template-columns:repeat(5,minmax(0,1fr));min-height:0;display:grid;position:relative}.scale-box-cell{cursor:pointer;background:0 0;border:none;border-right:2px solid #dcdcdc8c;height:100%;min-height:0;padding:0;position:relative;overflow:visible}.scale-box-cell:first-of-type{border-left:4px solid #e8e8e8}.scale-box-cell:disabled{cursor:default}.scale-box-line{z-index:1;pointer-events:none;background:linear-gradient(90deg,#e6e6e6f2,#c8c8c8d9);height:2px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);box-shadow:0 1px 1px #00000040}.scale-box-row.s4 .scale-box-line{height:2.2px}.scale-box-row.s5 .scale-box-line{height:2.6px}.scale-box-row.s6 .scale-box-line{height:3px}.scale-box .degree-dot,.scale-box .degree-fly{color:#3a3a3a;pointer-events:none;z-index:2;border:1px solid #ffffff8c;border-radius:50%;place-items:center;width:20px;height:20px;font-size:.68rem;font-weight:700;display:grid;position:absolute;box-shadow:0 1px 3px #00000040}.scale-box .degree-dot{top:50%;left:50%;transform:translate(-50%,-50%)}.scale-box .degree-fly-layer{pointer-events:none;z-index:4;position:absolute;inset:0}.scale-box .degree-fly{will-change:transform, opacity;margin:0}.scale-box .degree-fly.kind-fly{transition-property:transform;transition-timing-function:cubic-bezier(.22,1,.36,1)}.scale-box .degree-fly.kind-out,.scale-box .degree-fly.kind-in{transition-property:opacity;transition-timing-function:ease}.scale-box .degree-dot.octave-root,.scale-box .degree-fly.octave-root{box-shadow:0 0 0 4px #2db86a80,0 1px 4px #00000047}.workbench{flex-direction:column;gap:8px;display:flex}.workbench-piano-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:12px;display:flex}.workbench-piano-block{flex:0 520px;min-width:280px}.workbench-side-col{flex-direction:column;flex-shrink:0;align-items:stretch;gap:10px;display:flex}.legend-row{color:var(--ink-muted);flex-wrap:wrap;gap:12px;margin-bottom:8px;font-size:.78rem;display:flex}.legend.in:before,.legend.off:before,.legend.out:before,.legend.sel:before{content:"";vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.legend.in:before{background:var(--scale-in);border:1px solid color-mix(in srgb, var(--teal) 40%, var(--line))}.legend.out:before{background:var(--scale-out);border:1px solid color-mix(in srgb, #c9786a 40%, var(--line))}.legend.sel:before{background:var(--key-white);box-shadow:inset 0 0 0 2px var(--accent);border:1px solid var(--line)}.legend.off:before{background:var(--key-white);border:1px solid var(--line)}.tab-renderer{background:#fbfcfd;border:1px solid #1e2a321a;border-radius:12px;width:100%;overflow-x:auto}.tab-renderer svg{min-width:280px;display:block}.tr-string{stroke:#3a4a52;stroke-width:1.1px}.tr-clef{fill:#6a7a84;font-family:Segoe UI,system-ui,sans-serif;font-size:11px;font-weight:800}.tr-barline{stroke:#1e2a32;stroke-width:1.4px}.tr-barline.final{stroke-width:2.2px}.tr-barnum{fill:#8a9aa4;font-family:Segoe UI,system-ui,sans-serif;font-size:11px;font-weight:700}.tr-timesig-num{fill:#1e2a32;text-anchor:middle;font-family:Segoe UI,system-ui,sans-serif;font-size:20px;font-weight:800}.tr-digit-bg{fill:#fbfcfd;stroke:#0000}.tr-digit-bg.on{fill:#1e3a4a}.tr-digit{fill:#1e2a32;text-anchor:middle;pointer-events:none;dominant-baseline:alphabetic;font-family:Segoe UI,system-ui,sans-serif;font-size:12px;font-weight:800}.tr-digit.on{fill:#fff}.tr-hollow{fill:none;stroke:#1e2a32;stroke-width:1.4px}.tr-stem{stroke:#1e2a32;stroke-width:1.35px}.tr-beam{stroke:#1e2a32;stroke-width:3.2px;stroke-linecap:butt}.tr-flag{fill:none;stroke:#1e2a32;stroke-width:1.4px}.tr-dot{fill:#1e2a32}.tr-tech{fill:#4a6a7a;text-anchor:middle;font-family:Segoe UI,system-ui,sans-serif;font-size:9px;font-weight:800}.tr-digit-gap{fill:#fbfcfd}.tr-vibrato-wave{fill:none;stroke:#1e2a32;stroke-width:1.44px;stroke-linecap:round;stroke-linejoin:round}.tr-rest-block,.tr-rest-path{fill:#1e2a32}.tr-rest-stem{stroke:#1e2a32;stroke-width:2.5px;stroke-linecap:round}.tr-rest-flag-arm{stroke:#1e2a32;stroke-width:2.1px;stroke-linecap:round}.tr-slur{stroke:#4a6a7a;stroke-width:1.2px}.tr-tie{stroke:#4a6a7a;stroke-width:1.25px;stroke-linecap:round}.tr-downstroke{stroke:#1e2a32;stroke-width:1.55px;stroke-linecap:square;stroke-linejoin:miter}.tr-slide{stroke:#4a6a7a;stroke-width:1.45px;stroke-linecap:round}.tr-slide-label{fill:#3a5a6a;text-anchor:middle;pointer-events:none;font-family:Segoe UI,system-ui,sans-serif;font-size:8px;font-weight:700}.tab-staff{border:1px solid var(--line);background:#fafbfc;border-radius:14px;gap:6px;width:100%;min-width:0;padding:10px 12px 12px;display:flex;overflow:hidden}.tab-staff-v2{padding:8px}.tab-measure-v2{box-sizing:border-box;opacity:.72;flex:0 0 50%;min-width:50%;padding:0 4px;transition:opacity .2s}.tab-staff-v2.is-single .tab-measure-v2{opacity:1;flex:0 0 100%;min-width:100%}.tab-measure-v2.current{opacity:1}.tab-staff-connected{align-items:stretch;width:80%;min-width:0;margin-inline:auto;padding:8px 0;display:flex;position:relative;overflow:hidden}.tab-connected-clef{z-index:3;letter-spacing:.04em;color:#6a7a84;pointer-events:none;background:#fafbfc;flex:0 0 36px;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex}.tab-connected-viewport{z-index:0;clip-path:inset(0);contain:paint;isolation:isolate;background:#fafbfc;flex:1;min-width:0;position:relative;overflow:hidden}.tab-connected-track{transform:translate(0)}.tab-connected-track.is-sliding{transition:transform .3s cubic-bezier(.22,.8,.28,1)}.tab-staff-connected .tab-renderer{background:0 0;border:none;overflow:hidden}.tab-staff-connected .tab-renderer svg{width:100%;min-width:0;max-width:none;display:block;overflow:hidden}.tab-side{flex-direction:column;flex-shrink:0;width:22px;padding-top:18px;display:flex}.tab-string-tag{color:#8a9aa3;place-items:center;height:26px;font-size:.7rem;font-weight:700;display:grid}.tab-rhythm-spacer{height:36px}.tab-viewport{flex:1;min-width:0;overflow:hidden;container-type:inline-size}.tab-track{width:max-content;transition:none;display:flex;transform:translate(0)}.tab-track.is-sliding{transition:transform .3s cubic-bezier(.22,.8,.28,1);transform:translate(-50cqw)}.tab-measure{box-sizing:border-box;border-left:2px solid #2a3a44;flex:0 0 50cqw;width:50cqw;padding:0 8px 0 10px;position:relative}.tab-measure.current{background:#f5e6a866}.tab-measure-num{color:#5a6a74;z-index:3;font-size:.8rem;font-weight:800;position:absolute;top:0;left:8px}.tab-measure-body{grid-template-rows:repeat(6,26px);width:100%;margin-top:18px;display:grid}.tab-string-row{height:26px;position:relative}.tab-line{background:#6e818c;height:1.4px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.tab-num{z-index:2;color:#1a2a32;background:#fafbfc;place-items:center;min-width:16px;height:16px;padding:0 2px;font-family:Georgia,Times New Roman,serif;font-size:.86rem;font-weight:800;line-height:1;display:grid;position:absolute;top:50%;transform:translate(-50%,-50%)}.tab-tech{color:#5a7a88;font-size:.55rem;font-style:normal;font-weight:800;line-height:1;position:absolute;top:-9px;right:-7px}.tab-measure.current .tab-num{background:#f9f5e3}.tab-num.on{color:#fff;background:#1a3a4a;border-radius:3px;box-shadow:0 0 0 2px #7ec8a3}.tab-rhythm{width:100%;min-height:40px;margin-top:4px;position:relative}.tab-rhythm-mark{width:0;height:40px;position:absolute;top:0}.r-stem{background:#1a2a32;width:1.8px;height:26px;position:absolute;top:0;left:0;transform:translate(-50%)}.r-stem.half{height:22px}.r-stem.half:after{content:"";background:0 0;border:1.5px solid #1a2a32;border-radius:50%;width:7px;height:5px;position:absolute;bottom:-1px;left:50%;transform:translate(-20%)}.r-whole{border:1.8px solid #1a2a32;border-radius:50%;width:11px;height:7px;position:absolute;top:10px;left:0;transform:translate(-50%)}.r-beam{background:#1a2a32;border-radius:1px;height:3.2px;position:absolute;left:0}.r-beam-0{top:20px}.r-beam-1{top:26px}.r-flag{border-bottom:2px solid #1a2a32;border-right:2px solid #1a2a32;border-radius:0 0 8px;width:9px;height:9px;position:absolute;left:0;transform:translate(0)}.r-flag-0{top:0}.r-flag-1{top:8px}.tab-rhythm-mark.active .r-stem,.tab-rhythm-mark.active .r-beam,.tab-rhythm-mark.active .r-flag{background:var(--teal-deep);border-color:var(--teal-deep)}.tab-rhythm-mark.active .r-stem.half:after,.tab-rhythm-mark.active .r-whole{border-color:var(--teal-deep)}.tab-rhythm-mark.is-rest{width:auto}.r-rest-shape{color:#1a2a32;position:absolute;left:0;transform:translate(-50%)}.r-rest-shape.whole{background:#1a2a32;border-radius:1px;width:12px;height:5px;top:8px}.r-rest-shape.half{background:#1a2a32;border-radius:1px;width:12px;height:5px;top:14px}.r-rest-shape.quarter{clip-path:polygon(20% 0,100% 15%,70% 55%,100% 100%,0 70%,35% 40%);background:#1a2a32;border-radius:0 4px 4px 0/0 40% 40% 0;width:7px;height:18px;top:2px}.r-rest-shape.eighth,.r-rest-shape.sixteenth{width:10px;height:16px;top:4px}.r-rest-shape.eighth:before,.r-rest-shape.sixteenth:before{content:"";background:#1a2a32;width:1.8px;height:16px;position:absolute;top:0;left:4px}.r-rest-shape.eighth:after,.r-rest-shape.sixteenth:after{content:"";background:#1a2a32;border-radius:50%;width:7px;height:7px;position:absolute;top:0;left:0}.r-rest-shape.sixteenth:after{box-shadow:0 7px #1a2a32}.tab-whole-rest{color:#1a2a32;justify-content:center;align-items:center;height:40px;display:flex;position:relative}.rest-symbol{width:20px;height:20px;position:relative}.practice-fretboard-wrap{width:100%}.practice-fretboard{background:linear-gradient(#c4a574 0%,#a67c52 45%,#8b5e3c 100%);border:1px solid #6b442366;border-radius:16px;width:100%;padding:8px 6px 10px;overflow-x:auto}.pf-ruler{grid-template-columns:40px repeat(24,minmax(22px,1fr));min-width:720px;margin-bottom:4px;display:grid}.pf-fret-num{text-align:center;color:#ffffff8c;font-size:.68rem;font-weight:600}.pf-fret-num.mark{color:#ffffffeb}.pf-row{z-index:2;grid-template-columns:40px repeat(24,minmax(22px,1fr));min-width:720px;min-height:32px;display:grid;position:relative}.pf-strings{min-width:720px;position:relative}.pf-bar-span-box{z-index:1;box-sizing:border-box;pointer-events:none;background:0 0;border:4.5px solid #373c41b8;border-radius:6px;position:absolute;top:2px;bottom:2px}.pf-nut{color:#e8f0f2;background:#1a3a4a;border-radius:6px 0 0 6px;place-items:center;font-size:.82rem;font-weight:700;display:grid;position:relative}.pf-nut.in-phrase{box-shadow:inset 0 0 0 1px #7ec8a373}.pf-nut.in-bar{box-shadow:inset 0 0 0 1px #8cd2a08c}.pf-nut.active{box-shadow:inset 0 0 0 2px #7ec8a3}.pf-cell{border-right:2px solid #dcdcdc80;min-height:32px;position:relative}.pf-cell.bend-tgt,.pf-nut.bend-tgt{background:#e05a386b}.pf-row .pf-cell:first-of-type{border-left:4px solid #e8e8e8}.pf-string{z-index:1;pointer-events:none;background:#dcdcdce6;height:2px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.s1 .pf-string{height:1px}.s6 .pf-string{height:3px}.pf-dot{z-index:2;color:#3a3a3a;pointer-events:none;background:#ffffff73;border:1px solid #ffffff80;border-radius:50%;place-items:center;width:20px;height:20px;font-size:.65rem;font-weight:700;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pf-dot.nut-dot{position:absolute;top:50%;left:50%}.pf-dot.in-bar{color:#1e3a28;background:#96dcaa8c;border-color:#78be91a6}.pf-dot.on{color:#fff;background:#1a3a4a;border-color:#7ec8a3;width:24px;height:24px;font-size:.72rem;box-shadow:0 0 0 3px #7ec8a38c}.pf-hint{color:var(--ink-soft);margin:8px 0 0;font-size:.78rem}.practice-exercise{flex-direction:column;gap:14px;display:flex}.pe-head{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.pe-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px 24px;width:100%;display:flex}.pe-title-block{flex:0 auto;min-width:160px}.pe-head h2{font-family:var(--font-display);margin:0;font-size:1.55rem}.pe-attention{background:#efe3ca;border:1px solid #b8956a66;border-radius:12px;flex:240px;max-width:420px;margin-left:auto;padding:10px 14px 12px;box-shadow:inset 0 1px #ffffff59}.pe-attention-title{letter-spacing:.04em;color:#8a5a2b;margin-bottom:6px;font-size:.78rem;font-weight:800}.pe-attention-list{color:#5c4630;margin:0;padding-left:1.1em;font-size:.86rem;line-height:1.45}.pe-attention-list li+li{margin-top:4px}.pe-back{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.pe-back:hover{color:var(--teal-deep)}.pe-toolbar{border:1px solid var(--line);background:color-mix(in srgb, white 70%, var(--surface-raised));border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 18px;padding:10px 12px;display:flex}.pe-toolbar-left{z-index:30;position:relative}.pe-toolbar-right{flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin-left:auto;display:flex}.pe-phrase-pick,.pe-phrase-single{text-align:left;border:1px solid var(--line);min-width:200px;max-width:320px;color:var(--ink);background:#fff;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 36px 8px 12px;display:flex;position:relative}.pe-phrase-pick.kind-int,.pe-phrase-single.kind-int{border-color:color-mix(in srgb, #9ccc9a 35%, var(--line));background:#e8f6eb}.pe-phrase-pick.kind-ex,.pe-phrase-single.kind-ex{background:#fff}.pe-phrase-pick.kind-inf,.pe-phrase-single.kind-inf{border-color:color-mix(in srgb, #d4a09a 35%, var(--line));background:#f8e8e6}.kind-title-int{color:#2f6b4f}.kind-title-inf{color:#8a3f3a}.pe-phrase-option.kind-int{background:#e8f6eb}.pe-phrase-option.kind-ex{background:#fff}.pe-phrase-option.kind-inf{background:#f8e8e6}.pe-phrase-pick{cursor:pointer}.pe-phrase-single{background:#f6f9f7;padding-right:12px}.pe-phrase-pick:hover:not(:disabled){border-color:color-mix(in srgb, var(--teal) 40%, var(--line))}.pe-phrase-pick.open{border-color:color-mix(in srgb, var(--teal) 45%, var(--line));box-shadow:0 0 0 2px color-mix(in srgb, var(--scale-in) 50%, transparent)}.pe-phrase-pick:disabled{opacity:.6;cursor:not-allowed}.pe-phrase-pick-label{color:var(--ink-muted);font-size:.72rem;font-weight:700}.pe-phrase-pick-current{white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:.92rem;font-weight:700;overflow:hidden}.pe-phrase-chev{color:var(--ink-soft);font-size:.85rem;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.pe-phrase-menu{border:1px solid var(--line);background:#f7f9fa;border-radius:16px;min-width:240px;max-height:min(50vh,320px);padding:10px;position:absolute;top:calc(100% + 8px);left:0;overflow:auto;box-shadow:0 14px 36px #1a3a4a29}.pe-phrase-menu-title{color:var(--ink-muted);padding:2px 8px 8px;font-size:.78rem;font-weight:700}.pe-phrase-option{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:10px;padding:9px 10px;font-size:.9rem;font-weight:600;display:block}.pe-phrase-option:hover{background:color-mix(in srgb, white 80%, var(--surface-raised))}.pe-phrase-option.active{background:color-mix(in srgb, var(--scale-in) 70%, white);border-color:color-mix(in srgb, var(--teal) 40%, var(--line));color:var(--teal-deep)}.pe-bpm,.pe-rest{color:var(--ink-muted);flex-direction:column;gap:4px;font-size:.75rem;font-weight:700;display:flex}.pe-bpm input,.pe-rest input{border:1px solid var(--line);width:64px;color:var(--ink);background:#fff;border-radius:10px;padding:8px 10px;font-weight:700}.pe-bpm-row{align-items:center;gap:8px;display:flex}.pe-target-bpm{color:var(--teal-deep);white-space:nowrap;font-size:.75rem;font-weight:700}.pe-rate{flex-flow:wrap;align-items:center;gap:8px}.pe-rate input[type=range]{width:96px;accent-color:var(--teal);background:0 0;border:none;padding:0}.pe-rate input[type=text]{width:52px}.pe-rate-suffix{color:var(--ink-muted);font-size:.75rem;font-weight:700}.pe-rest{flex-direction:row;align-items:center;gap:6px;padding-bottom:2px}.pe-rest span{font-size:.75rem}.pe-rest em{color:var(--ink-soft);font-size:.75rem;font-style:normal}.pe-bpm input:disabled,.pe-rest input:disabled,.pe-countin:disabled{opacity:.6}.pe-countin{border:1px solid var(--line);cursor:pointer;color:var(--ink-muted);background:#fff;border-radius:12px;padding:10px 14px;font-weight:700}.pe-countin.on{background:color-mix(in srgb, var(--scale-in) 75%, white);border-color:color-mix(in srgb, var(--teal) 45%, var(--line));color:var(--teal-deep)}.pe-play{color:#fff;cursor:pointer;background:#244a5c;border:none;border-radius:12px;padding:10px 22px;font-weight:700}.practice-exercise .pe-play{color:#fff;background:#244a5c;border:none}.pe-play:hover,.practice-exercise .pe-play:hover{background:#1c3c4c}.pe-play.stop,.practice-exercise .pe-play.stop{background:#a14a3a}.practice-exercise .pe-play:disabled{opacity:.45;cursor:not-allowed}.pe-status{color:var(--teal-deep);font-size:.8rem;font-weight:700}.pe-meta{color:var(--ink-soft);align-self:center;padding-bottom:4px;font-size:.78rem}.pe-tab-zone{width:100%}.pe-free-practice{border:1px dashed color-mix(in srgb, var(--line) 80%, #c9a227);text-align:center;min-height:160px;color:var(--ink-soft);background:#f9f6ea;border-radius:14px;place-content:center;gap:6px;padding:24px 20px;display:grid}.pe-free-practice strong{color:var(--ink);font-size:1.05rem}.pe-free-practice p{justify-self:center;max-width:36em;margin:0;font-size:.9rem;line-height:1.45}.pe-rft-bar{border:1px solid color-mix(in srgb, var(--line) 70%, transparent);background:color-mix(in srgb, var(--panel) 88%, #d7ebe0);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 10px;padding:10px 12px;display:flex}.pe-rft-toggle{color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:.88rem;font-weight:650;display:inline-flex}.pe-rft-toggle.on{color:#2f6b52}.pe-rft-toggle input{accent-color:#3d8f6e}.pe-rft-group{color:var(--ink-soft);align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.pe-rft-group button{border:1px solid color-mix(in srgb, var(--line) 80%, transparent);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:4px 10px;font-size:.82rem;font-weight:650}.pe-rft-group button.on{color:#245a42;background:#e0ede8;border-color:#3d8f6e}.pe-rft-group button:disabled,.pe-rft-gen:disabled,.pe-rft-bars input:disabled{opacity:.55;cursor:not-allowed}.pe-toolbar-right .pe-perm-group{margin-left:2px}.pe-rft-bars{color:var(--ink-soft);align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.pe-rft-bars input{text-align:center;border:1px solid color-mix(in srgb, var(--line) 80%, transparent);border-radius:8px;width:3rem;padding:4px 6px;font-weight:700}.pe-rft-bars em{opacity:.75;font-style:normal}.pe-rft-gen{color:#fff;cursor:pointer;background:#3d8f6e;border:1px solid #3d8f6e;border-radius:999px;padding:5px 14px;font-size:.85rem;font-weight:700}.pe-rft-gen:hover:not(:disabled){filter:brightness(1.05)}.pe-rft-summary{color:#2f6b52;font-variant-numeric:tabular-nums;margin-left:auto;font-size:.82rem;font-weight:650}.pe-fret-zone{width:100%;margin-top:4px}@media (width<=800px){.pe-toolbar-right{width:100%;margin-left:0}.pe-toolbar-left{width:100%}.pe-phrase-pick{width:100%;max-width:none}.pe-attention{max-width:none;margin-left:0}}.practice-panel{overflow:visible}.practice-stage{grid-template-columns:minmax(200px,240px) 1fr;align-items:start;gap:20px 28px;min-height:420px;display:grid}.practice-guitar-col{min-height:420px;position:relative}.practice-guitar-sticky{background:0 0;justify-content:center;align-items:flex-start;height:min(560px,68vh);display:flex;position:sticky;top:24px}.practice-guitar{object-fit:contain;object-position:top center;filter:blur(1.2px)drop-shadow(0 10px 18px #2438301f);opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;background:0 0;width:auto;max-width:100%;height:min(560px,68vh);animation:.42s cubic-bezier(.22,.85,.3,1) forwards guitar-rise;transform:translateY(36px)}@keyframes guitar-rise{0%{opacity:0;transform:translateY(40px)scale(.98)}to{opacity:.72;transform:translateY(0)scale(1)}}.practice-menu-col{min-width:0;max-height:min(70vh,640px);padding-top:4px;padding-right:4px;overflow-y:auto}.practice-menu-toolbar{justify-content:flex-end;margin:0 0 10px;display:flex}.practice-guide-btn{border:1px solid color-mix(in srgb, #6b8f7a 28%, var(--line));color:#2a4a3a;cursor:pointer;letter-spacing:.02em;background:linear-gradient(135deg,#eff6f2,#f8fbf9);border-radius:999px;padding:6px 14px;font-size:.88rem;font-weight:650}.practice-guide-btn:hover{border-color:color-mix(in srgb, #4f8a68 45%, var(--line));background:#e9f4ee}.practice-guide-backdrop{z-index:80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1c282261;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.practice-guide-modal{border:1px solid color-mix(in srgb, #6b8f7a 22%, var(--line));background:linear-gradient(165deg,#fbfdfc 0%,#f3f7f4 100%);border-radius:16px;width:min(560px,100%);max-height:min(78vh,720px);padding:18px 20px 20px;overflow:auto;box-shadow:0 18px 48px #1e302838}.practice-guide-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.practice-guide-head h3{color:#243830;margin:0;font-size:1.15rem}.practice-guide-close{border:1px solid color-mix(in srgb, #6b8f7a 20%, var(--line));color:#3a5246;cursor:pointer;background:#fff;border-radius:999px;width:32px;height:32px;font-size:1.25rem;line-height:1}.practice-guide-close:hover{background:#eef5f1}.practice-guide-body{color:#31463b;gap:12px;font-size:.95rem;line-height:1.65;display:grid}.practice-guide-body p{margin:0}.practice-guide-link-btn{vertical-align:middle;border:1px solid color-mix(in srgb, #4f8a68 40%, var(--line));color:#1f4d36;cursor:pointer;background:#e5f3eb;border-radius:8px;justify-content:center;align-items:center;min-width:1.7rem;height:1.7rem;margin:0 4px;padding:0 7px;font-size:.9rem;font-weight:700;display:inline-flex}.practice-guide-link-btn:hover{background:#d3ecde}.practice-guide-ext-link{color:color-mix(in srgb, var(--teal) 55%, var(--ink));text-underline-offset:2px;cursor:pointer;font-weight:700;text-decoration:underline}.practice-guide-ext-link:hover{color:var(--teal-deep)}.practice-menu-col.waiting{opacity:0}.practice-menu-col.show{opacity:1}.practice-tree{margin:0;padding:0;list-style:none}.practice-tree.nested{border-left:2px solid color-mix(in srgb, #7a9e8a 35%, var(--line));margin:6px 0 8px 12px;padding-left:10px}.practice-item.enter{opacity:0;animation:.32s forwards menu-rise;animation-delay:var(--enter-delay,0s);transform:translateY(10px)}@keyframes menu-rise{to{opacity:1;transform:translateY(0)}}.practice-row{align-items:stretch;gap:6px;width:100%;display:flex}.practice-node{text-align:left;border:1px solid color-mix(in srgb, #6b8f7a 18%, var(--line));cursor:pointer;color:#243830;background:linear-gradient(135deg,#ecf2ee,#f5f9f6);border-radius:12px;flex:1;align-items:center;gap:8px;min-width:0;padding:10px 12px;transition:background .15s,border-color .15s,transform .12s,box-shadow .15s;display:flex}.practice-row.kind-int .practice-node.leaf{border-color:color-mix(in srgb, #9ccc9a 30%, var(--line));background:#e8f6eb}.practice-row.kind-ex .practice-node.leaf{border-color:color-mix(in srgb, #b8c4bc 45%, var(--line));background:#fff}.practice-row.kind-inf .practice-node.leaf{border-color:color-mix(in srgb, #d4a09a 30%, var(--line));background:#f8e8e6}.practice-row.is-done .practice-node.leaf{border-color:color-mix(in srgb, #5faf7a 45%, var(--line));color:#1f5a3a;background:#d7efdf}.practice-check{border:1px solid color-mix(in srgb, #6b8f7a 30%, var(--line));color:#0000;cursor:pointer;background:#fafbfc;border-radius:8px;flex:0 0 28px;width:28px;font-size:.85rem;font-weight:800;line-height:1;transition:background .12s,border-color .12s,color .12s}.practice-check:hover{border-color:color-mix(in srgb, #5f8a72 55%, var(--line));background:#eef6f1}.practice-check.on{color:#1f5a3a;border-color:color-mix(in srgb, #5faf7a 55%, var(--line));background:#cdebd6}.section-pct{color:#5a7466;font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0;min-width:2.4em;margin-left:auto;font-size:.72rem;font-weight:750}.done-tag{color:#1f5a3a;background:#cae7d6;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:.68rem;font-weight:700}.practice-node:hover{border-color:color-mix(in srgb, #5f8a72 50%, var(--line));background:#eef5f0;transform:translate(2px);box-shadow:0 4px 14px #3c5a4614}.practice-node.branch{font-weight:700}.practice-node.branch.open{border-color:color-mix(in srgb, #5f8a72 40%, var(--line));background:#dfece5}.depth-0>.practice-node{background:linear-gradient(135deg,#dde9e1,#f1f6f2);margin-bottom:6px;padding:12px 14px;font-size:1.12rem;box-shadow:0 4px 14px #32503c0f}.depth-1>.practice-node{background:#eef5f0;font-size:.98rem;font-weight:650}.depth-2>.practice-node{color:#3d5348;background:#f5f9f6;font-size:.92rem;font-weight:600}.practice-node.leaf.selected{color:#fff;background:#2a4338;border-color:#2a4338}.practice-node.leaf.selected .dot{background:#9fd4b4}.chev{color:#7a9586;width:1em;font-size:.85em}.dot{background:#74978b;border-radius:50%;flex-shrink:0;width:7px;height:7px}.label{flex:1}.practice-entry-hint{border:1px dashed color-mix(in srgb, #6b8f7a 35%, var(--line));color:#4a6356;background:#f2f7f4;border-radius:12px;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin-top:18px;padding:12px 14px;font-size:.9rem;display:flex}.practice-entry-hint strong{color:#243830}.practice-entry-hint span{color:#7a9586;font-size:.8rem}.practice-node.ready .label{color:#2f6b4f}.ready-tag{color:#2f6b4f;background:#d1efdc;border-radius:999px;flex-shrink:0;margin-left:6px;padding:2px 8px;font-size:.68rem;font-weight:700}.practice-node.leaf.done .ready-tag{display:none}.practice-node .section-pct+.ready-tag,.practice-node .section-pct+.done-tag{margin-left:8px}@media (width<=720px){.practice-stage{grid-template-columns:1fr}.practice-guitar-col{min-height:200px}.practice-guitar-sticky{height:200px;position:relative;top:0}.practice-guitar{height:200px}.practice-menu-col{max-height:none}}.theory-fretboard-wrap{width:100%;position:relative}.theory-fretboard{background:linear-gradient(#c4a574 0%,#a67c52 45%,#8b5e3c 100%);border:1px solid #6b442366;border-radius:16px;width:100%;padding:8px 6px 10px;overflow-x:auto}.tf-ruler{grid-template-columns:40px repeat(var(--tf-frets,24), minmax(22px, 1fr));min-width:min(720px,100%);margin-bottom:4px;display:grid}.tf-fret-num{text-align:center;color:#ffffff8c;font-size:.68rem;font-weight:600}.tf-fret-num.mark{color:#ffffffeb}.tf-row{grid-template-columns:40px repeat(var(--tf-frets,24), minmax(22px, 1fr));min-width:min(720px,100%);min-height:32px;display:grid}.theory-fretboard.simplified .tf-ruler,.theory-fretboard.simplified .tf-row{min-width:0}.tf-nut,.tf-cell{cursor:pointer;background:0 0;border:none;padding:0;position:relative}.tf-nut{color:#e8f0f2;background:#1a3a4a;border-radius:6px 0 0 6px;font-size:.82rem;font-weight:700}.tf-cell{border-right:2px solid #dcdcdc80;min-height:32px}.tf-row .tf-cell:first-of-type{border-left:4px solid #e8e8e8}.tf-string{pointer-events:none;background:#dcdcdce6;height:2px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.s1 .tf-string{height:1px}.s6 .tf-string{height:3px}.tf-dot{z-index:2;color:#243830;pointer-events:none;background:#ffffff8c;border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 3px;font-size:.62rem;font-weight:800;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tf-dot.tone-root{color:#fff;background:#4a78d6}.tf-dot.tone-third{color:#1f1a0a;background:#d4b84a}.tf-dot.tone-fifth{color:#fff;background:#6f4aa8}.tf-dot.tone-other{color:#e8eaec;background:#2c3034}.tf-dot.tone-other-green{color:#fff;background:#3d9b6a}.tf-dot.tf-dot-playing{z-index:3;min-width:22px;height:22px;box-shadow:0 0 0 3px #2db86a8c;color:#fff!important;background:#2db86a!important}.tf-dot.tf-dot-reveal{opacity:0;transition:opacity .65s}.tf-dot.tf-dot-reveal.visible{opacity:1}.tf-nut .tf-name{opacity:.8;font-size:.55rem;font-style:normal;position:absolute;bottom:2px;right:2px}.tf-cell.hi .tf-dot:not([class*=tone-]):not(.tf-dot-red):not(.tf-dot-bad),.tf-nut.hi .tf-dot:not([class*=tone-]):not(.tf-dot-red):not(.tf-dot-bad){box-shadow:inset 0 0 0 2px #7ec8a3}.tf-cell.sel{box-shadow:inset 0 0 0 2px #1a3a4a73}.tf-cell.sel .tf-dot:not([class*=tone-]):not(.tf-dot-red):not(.tf-dot-bad),.tf-nut.sel .tf-dot:not([class*=tone-]):not(.tf-dot-red):not(.tf-dot-bad){color:#fff;background:#1a3a4a}.tf-cell.ok .tf-dot:not([class*=tone-]):not(.tf-dot-red):not(.tf-dot-bad),.tf-nut.ok .tf-dot:not([class*=tone-]):not(.tf-dot-red):not(.tf-dot-bad){color:#fff;background:#3d9b6a}.tf-cell.bad .tf-dot,.tf-nut.bad .tf-dot,.tf-dot.tf-dot-bad{box-shadow:0 0 0 3px #e23b2e73;color:#fff!important;background:#e23b2e!important}.tf-cell.red .tf-dot,.tf-nut.red .tf-dot,.tf-dot-red{width:22px;height:22px;box-shadow:0 0 0 3px #e23b2e73;color:#fff!important;background:#e23b2e!important}.tf-cell.red-target .tf-dot,.tf-nut.red-target .tf-dot{box-shadow:0 0 0 2px #e23b2e59}.tf-red-flyer{z-index:6;pointer-events:none;opacity:.95;background:#e23b2e;border-radius:999px;width:22px;height:22px;margin-top:-11px;margin-left:-11px;transition:none;position:absolute;box-shadow:0 0 0 3px #e23b2e66}.tf-red-flyer.ready{transition:left .38s cubic-bezier(.22,.8,.28,1),top .38s cubic-bezier(.22,.8,.28,1)}.tf-inlay{pointer-events:none;z-index:1;background:#ffffffd1;border:1.5px solid #28180c66;border-radius:50%;width:12px;height:12px;position:absolute;left:50%;box-shadow:0 0 0 1px #ffffff59,0 1px 2px #00000040}.tf-inlay.tf-inlay-gap{top:100%;transform:translate(-50%,-50%)}.tf-cell.playing{box-shadow:none}.tf-fret-num.mark{color:#fffffffa;text-shadow:0 1px 2px #00000059;font-weight:800}.tf-nut:disabled,.tf-cell:disabled{cursor:default}.theory-piano-wrap{justify-content:center;width:100%;margin-top:8px;display:flex}.theory-piano{-webkit-user-select:none;user-select:none;width:min(520px,100%);height:140px;position:relative}.tp-whites{grid-template-columns:repeat(7,1fr);gap:2px;height:100%;display:grid}.tp-white{color:#3a4a52;cursor:pointer;background:linear-gradient(#fff,#f2f5f7);border:1px solid #c5d0d6;border-radius:0 0 8px 8px;justify-content:center;align-items:flex-end;padding-bottom:8px;font-weight:700;display:flex}.tp-blacks{pointer-events:none;height:58%;position:absolute;top:0;left:0;right:0}.tp-black{pointer-events:auto;color:#dce6ec;cursor:pointer;background:linear-gradient(#3a4550,#1a2430);border:none;border-radius:0 0 6px 6px;justify-content:center;align-items:flex-end;width:9%;height:100%;padding-bottom:6px;font-size:.68rem;font-weight:700;display:flex;position:absolute;transform:translate(-50%)}.tp-white.hi,.tp-black.hi{box-shadow:inset 0 0 0 2px #7ec8a3}.tp-white.sel{background:#d7ebe0}.tp-black.sel{background:#2a5a44}.tp-white.ok,.tp-black.ok{color:#fff;background:#3d9b6a!important}.tp-white.bad,.tp-black.bad{color:#fff;background:#c45c4a!important}.tp-white:disabled,.tp-black:disabled{cursor:default;opacity:.85}.theory-panel{flex-direction:column;gap:14px;min-height:0;display:flex}.theory-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.theory-head-end{flex-shrink:0;align-items:center;gap:10px;margin-left:auto;display:flex}.theory-modules{flex-wrap:wrap;gap:8px;display:flex}.theory-mod-btn{border:1px solid color-mix(in srgb, var(--ink,#1e2a32) 14%, transparent);color:#2a3a42;cursor:pointer;background:#f4f7f8;border-radius:10px;padding:.55rem 1.1rem;font-size:1rem;font-weight:700}.theory-mod-btn.on{color:#fff;background:#1e3a4a;border-color:#1e3a4a}.theory-stats{font-variant-numeric:tabular-nums;color:#3a4a52;align-items:baseline;gap:10px;display:flex}.theory-stats strong{color:#1e3a4a;font-size:1.35rem}.theory-stats span{color:#3d9b6a;font-weight:700}.theory-link{color:#6a7a84;cursor:pointer;background:0 0;border:none;font-size:.85rem;text-decoration:underline}.theory-stage-row{justify-content:center;align-items:center;gap:20px;min-height:64px;display:flex;position:relative}.theory-stage-block{flex-direction:column;align-items:center;gap:6px;display:flex}.theory-stage-hint{color:#1e3a4a61;letter-spacing:.02em;-webkit-user-select:none;user-select:none;pointer-events:none;margin:0;font-size:.72rem;font-weight:600}.theory-stage-bpm{color:#4a5a62;align-items:center;gap:6px;margin-top:4px;font-size:.78rem;font-weight:700;display:flex}.theory-stage-bpm input{width:56px;font:inherit;text-align:center;border:1px solid #c5d0d6;border-radius:8px;padding:.25rem .4rem;font-weight:700}.theory-stage-dots{align-items:flex-start;gap:22px;display:flex}.theory-stage-dot{cursor:pointer;color:#7a8a94;background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:0;display:flex}.theory-stage-dot i{background:#c5d0d6;border-radius:50%;width:14px;height:14px;transition:transform .15s,background .15s;display:block}.theory-stage-dot.on i{background:#1e3a4a;transform:scale(1.15)}.theory-stage-dot.pulse i{box-shadow:0 0 0 4px #1e3a4a38}.theory-stage-dots.free .theory-stage-dot i{opacity:.55;background:#b8c2c8}.theory-stage-dot em{font-size:.72rem;font-style:normal;font-weight:600}.theory-run-controls{gap:8px;display:flex;position:absolute;right:0}.theory-run,.theory-settings-btn{border:1px solid color-mix(in srgb, var(--ink,#1e2a32) 14%, transparent);cursor:pointer;color:#1e3a4a;background:#fff;border-radius:10px;padding:.45rem .9rem;font-weight:700}.theory-settings-btn{white-space:nowrap;padding:.45rem .9rem;font-size:.92rem;line-height:1.2}.theory-run{color:#fff;background:#1e3a4a;border-color:#1e3a4a}.theory-run.stop{background:#c45c4a;border-color:#c45c4a}.theory-run:disabled{opacity:.45;cursor:not-allowed}.theory-settings{background:#f3f6f7;border:1px solid #1e2a3214;border-radius:14px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px 16px;padding:14px 16px;display:grid}.theory-settings>label{color:#4a5a62;flex-direction:column;gap:4px;font-size:.82rem;font-weight:600;display:flex}.theory-ex-settings{border-top:1px solid #1e2a3214;flex-wrap:wrap;grid-column:1/-1;align-items:flex-start;gap:10px 16px;padding-top:10px;display:flex;overflow:visible}.theory-ex-settings:empty{display:none}.theory-ex-settings .tm-config{width:100%}.theory-settings input[type=number],.theory-settings select{font:inherit;border:1px solid #c5d0d6;border-radius:8px;padding:.4rem .5rem}.theory-settings input[type=range]{width:100%}.theory-settings-check .theory-check-row{color:#2a3a42;align-items:center;gap:6px;margin-top:2px;font-weight:650;display:flex}.theory-settings-check input[type=checkbox]{accent-color:#1e3a4a;width:16px;height:16px}.theory-settings-hint{color:#6a7a84;grid-column:1/-1;margin:0;font-size:.8rem;font-weight:500}.theory-body{flex-direction:column;gap:10px;min-height:0;display:flex}.theory-idle{color:#1e3a4a;background:linear-gradient(#f7fafb 0%,#eef3f5 100%);border:1px dashed #1e2a321f;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:280px;display:flex}.theory-idle p{margin:0;font-size:1.15rem;font-weight:750}.theory-idle-sub{color:#6a7a84!important;font-size:.9rem!important;font-weight:600!important}.theory-stage-dot:disabled{cursor:default;opacity:.55}.theory-stage-block-slim{align-items:center;display:flex}.theory-module{flex-direction:column;gap:12px;display:flex}.theory-module.interval-chain{min-height:min(70vh,640px)}.theory-module.interval-chain .tm-iv-stack{flex-direction:column;align-items:center;gap:10px;margin-top:auto;padding:16px 12px 8px;display:flex}.tm-iv-dir{color:#3a6478;letter-spacing:.12em;min-height:1.2em;font-size:1.45rem;font-weight:700}.tm-iv-dir.pending{opacity:0}.tm-iv-interval{color:#1e3a4a;letter-spacing:.02em;text-align:center;font-size:2.75rem;font-weight:800;line-height:1.2}.tm-iv-interval.pending{opacity:.45}.tm-iv-note{color:#0f2a36;font-size:6rem;font-weight:800;line-height:1.05}.theory-module.interval-chain .theory-fretboard-wrap{margin-top:4px}.tm-toolbar,.tm-config{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.tm-submodes{flex-wrap:wrap;gap:6px;display:flex}.tm-submodes button,.tm-next,.tm-audition{cursor:pointer;color:#2a3a42;background:#fff;border:1px solid #c5d0d6;border-radius:8px;padding:.35rem .7rem;font-weight:650}.tm-submodes button.on,.tm-audition.on{color:#fff;background:#1e3a4a;border-color:#1e3a4a}.tm-prompt{color:#1e3a4a;flex-wrap:wrap;flex:1;align-items:center;gap:8px;min-width:200px;font-weight:650;display:flex}.tm-hero-prompt{text-align:center;color:#1e3a4a;letter-spacing:.02em;max-width:56rem;margin:8px auto 0;padding:18px 16px 8px;font-size:2.05rem;font-weight:750;line-height:1.35}.tm-hero-prompt-name{letter-spacing:.04em;width:100%;max-width:none;padding:32px 16px 20px;font-size:3.15rem;font-weight:800}.tm-config label{color:#4a5a62;align-items:center;gap:6px;font-size:.85rem;font-weight:600;display:flex}.tm-config select{font:inherit;border:1px solid #c5d0d6;border-radius:8px;padding:.3rem .45rem}.tm-toggle{color:#4a5a62;cursor:pointer;align-items:center;gap:4px;font-size:.85rem;font-weight:600;display:inline-flex}.tm-chord-tip{position:relative}.tm-chord-tip:after{content:attr(data-tip);color:#f1eadf;letter-spacing:.04em;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:40;background:#20252d;border-radius:6px;padding:7px 10px;font-size:12px;font-weight:500;line-height:1.35;transition:opacity .14s,visibility .14s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.tm-chord-tip:hover:after,.tm-chord-tip:focus-within:after{opacity:1;visibility:visible}.tm-degree-btns{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.tm-degree-btns-lg{gap:16px;margin-top:18px;padding:8px 0 12px}.tm-degree-btns button{cursor:pointer;color:#1e3a4a;background:#fff;border:1px solid #c5d0d6;border-radius:12px;width:52px;height:52px;font-size:1rem;font-weight:800}.tm-degree-btns-lg button{letter-spacing:.02em;border-radius:22px;width:108px;height:108px;font-size:2.35rem}.tm-degree-btns button.sel{background:#d7ebe0}.tm-degree-btns button.ok{color:#fff;background:#3d9b6a;border-color:#3d9b6a}.tm-degree-btns button.bad{color:#fff;background:#c45c4a;border-color:#c45c4a}.tm-seq-tab{background:#f6f8f9;border:1px dashed #c5d0d6;border-radius:12px;flex-wrap:wrap;justify-content:center;gap:6px;padding:10px;display:flex}.tm-seq-tab span{text-align:center;color:#3a4a52;background:#fff;border:1px solid #dde4e8;border-radius:8px;min-width:36px;padding:4px 6px;font-size:.85rem;font-weight:700}.tm-seq-tab span small{color:#8a9aa4;font-size:.65rem;font-weight:600;display:block}.tm-seq-tab span.cur{color:#fff;background:#1e3a4a;border-color:#1e3a4a}.tm-seq-tab span.done{opacity:.45}.tm-seq-staff{background:#f6f8f9;border:1px solid #1e2a3214;border-radius:12px;width:100%;padding:8px;overflow-x:auto}.tm-seq-engine{background:#f3f6f7;border:1px solid #1e2a3214;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:8px 10px;display:flex}.tm-seq-engine .theory-run{padding:.4rem 1rem}.tm-seq-status{color:#1e3a4a;font-size:.9rem;font-weight:700}.tm-seq-note{color:#8a9aa4;font-size:.78rem;font-weight:600}.tm-feedback{text-align:center;margin:0;font-weight:700}.tm-feedback.ok{color:#2f7a52}.tm-feedback.bad{color:#b04535}@media (width<=900px){.theory-run-controls{position:static}.theory-stage-row{flex-direction:column}}.tab-capture-workspace{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.tab-capture-toolbar{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.self-tab-pick-wrap{position:relative}.self-tab-pick{text-align:left;border:1px solid var(--line);min-width:220px;max-width:360px;color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 36px 8px 12px;display:flex;position:relative}.self-tab-pick:hover{border-color:color-mix(in srgb, var(--teal) 40%, var(--line))}.self-tab-pick.open{border-color:color-mix(in srgb, var(--teal) 45%, var(--line));box-shadow:0 0 0 2px color-mix(in srgb, var(--scale-in,#cfe8d8) 50%, transparent)}.self-tab-pick-label{color:var(--ink-muted);font-size:.72rem;font-weight:700}.self-tab-pick-current{white-space:nowrap;text-overflow:ellipsis;max-width:260px;font-size:.92rem;font-weight:700;overflow:hidden}.self-tab-pick-chev{color:var(--ink-muted);font-size:.85rem;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.self-tab-menu{z-index:20;border:1px solid var(--line);background:#f7f9fa;border-radius:16px;min-width:280px;max-height:min(50vh,360px);padding:10px;position:absolute;top:calc(100% + 8px);left:0;overflow:auto;box-shadow:0 14px 36px #1a3a4a29}.self-tab-menu-title{color:var(--ink-muted);padding:2px 8px 8px;font-size:.78rem;font-weight:700}.self-tab-empty{color:var(--ink-muted);margin:0;padding:6px 8px 10px;font-size:.86rem;line-height:1.45}.self-tab-option{border-radius:10px;align-items:center;gap:4px;display:flex}.self-tab-option.active{background:color-mix(in srgb, var(--scale-in) 70%, white);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--teal) 40%, var(--line))}.self-tab-option-name{text-align:left;cursor:pointer;min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-radius:10px;flex:1;padding:9px 10px;font-size:.9rem;font-weight:600;overflow:hidden}.self-tab-option-name:hover{background:color-mix(in srgb, white 80%, var(--surface-raised,#eef3f5))}.self-tab-kind{color:var(--ink-muted);margin-left:8px;font-size:.72rem;font-weight:700}.self-tab-kind.vector{color:#2a6a4a}.self-tab-kind.image{color:#3a5a8a}.self-tab-export-btn{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;padding:10px 14px;font-weight:700}.self-tab-export-btn:hover:not(:disabled){border-color:color-mix(in srgb, var(--teal) 40%, var(--line))}.self-tab-export-btn:disabled{opacity:.45;cursor:default}.self-tab-mode{gap:6px;display:flex}.self-tab-mode button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;padding:10px 12px;font-weight:700}.self-tab-mode button.on{background:var(--ink);border-color:var(--ink);color:#fff}.self-tab-bar-jump{color:var(--ink-muted);align-items:center;gap:6px;font-size:.82rem;font-weight:700;display:flex}.self-tab-bar-jump input{border:1px solid var(--line);width:52px;font:inherit;color:var(--ink);border-radius:8px;padding:6px 8px;font-weight:700}.self-tab-delete{color:#c23b32;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;width:28px;height:28px;margin-right:4px;font-size:1.15rem;line-height:1}.self-tab-delete:hover{color:#9a2a24;background:#f8e8e6}.self-tab-capture-btn{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;padding:10px 14px;font-weight:700}.self-tab-capture-btn:hover{border-color:color-mix(in srgb, var(--teal) 40%, var(--line))}.self-tab-capture-btn.on{background:var(--ink);border-color:var(--ink);color:#fff}.tab-capture-shell{border:1px solid var(--line);background:#f4f2ee;border-radius:18px;flex:1;width:100%;min-height:520px;position:relative;overflow:hidden;box-shadow:0 10px 30px #1e323c0f}.tab-capture-scale{width:auto;height:auto;position:absolute;inset:0}.tab-capture-frame{background:#f4f2ee;border:0;width:100%;height:100%;min-height:520px;display:block}.tab-capture-status{color:var(--ink-muted);margin:0;padding:8px 4px 0;line-height:1.55}.tab-capture-status.error{color:#9a2a24}.tab-capture-about{flex-direction:column;align-items:flex-start;gap:8px;padding:0 4px;display:flex}.tab-capture-about-row{align-items:center;gap:6px;display:flex}.tab-capture-about-title{color:#5c5c5c;margin:0;font-size:.88rem;font-weight:400;line-height:1.4}.tab-capture-about-info{color:#5c5c5c;cursor:pointer;background:0 0;border:1.4px solid #6a6a6a;border-radius:50%;justify-content:center;align-items:center;width:1.05rem;height:1.05rem;padding:0 0 1px;font-family:Georgia,Times New Roman,serif;font-size:.72rem;font-style:italic;line-height:1;display:inline-flex}.tab-capture-about-info:hover,.tab-capture-about-info[aria-expanded=true]{color:var(--teal-deep);border-color:var(--teal-deep)}.tab-capture-about-panel{border:1px solid var(--line);max-width:640px;color:var(--ink-muted);background:#f7f9fa;border-radius:12px;padding:10px 12px;font-size:.78rem;line-height:1.6}.tab-capture-about-panel p{margin:0}.tab-capture-about-panel p+p{margin-top:8px}.tab-capture-about-panel a{color:color-mix(in srgb, var(--teal) 55%, var(--ink));word-break:break-all}.tab-capture-about-panel code{font-size:.74rem}.tab-capture-shell.self-tab-shell{background:#ece8e1;flex:none;height:auto;min-height:70vh;overflow:visible}.self-tab-viewer{min-height:100%}.self-tab-pages{flex-direction:column;align-items:center;gap:16px;padding:16px 12px 28px;display:flex}.self-tab-page{background:#fff;width:min(100%,920px);height:auto;display:block;box-shadow:0 8px 24px #1e28301f}.psp{flex-direction:column;gap:12px;display:flex}.psp-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.psp-play{color:#fff;cursor:pointer;background:#2f6fed;border:1px solid #2458c4;border-radius:10px;padding:8px 16px;font-weight:700}.psp-play.stop{background:#c23b32;border-color:#a32f28}.psp-play:disabled{opacity:.45;cursor:default}.psp-toolbar label{color:var(--ink-muted);align-items:center;gap:6px;font-size:.82rem;font-weight:700;display:flex}.psp-toolbar input{border:1px solid var(--line);width:72px;font:inherit;border-radius:8px;padding:4px 8px;font-weight:600}.psp-meta{color:var(--ink-muted);font-size:.82rem}.psp-reading-flow{flex-direction:column;gap:14px;display:flex}.psp-reading-system{border:1px solid var(--line);cursor:pointer;text-align:left;background:#fbfcfd;border-radius:12px;margin:0;padding:8px 10px}.psp-reading-system:hover{border-color:color-mix(in srgb, var(--teal) 40%, var(--line))}.psp-reading-system.playing{background:#faf8ee;box-shadow:inset 0 0 0 1px #e6c85a47}.psp-reading-system .tab-renderer{background:0 0;border:none}.pe-pitch-panel{border:1px solid color-mix(in srgb, #3d8f6e 35%, var(--line));background:#f2f8f3;border-radius:16px;flex-direction:column;flex:0 0 min(36%,360px);gap:10px;width:min(36%,360px);min-width:240px;min-height:520px;padding:12px 14px;display:flex}.pe-pitch-start{border:1px solid var(--ink);background:var(--ink);color:#fff;font:inherit;cursor:pointer;border-radius:12px;flex:none;padding:10px 14px;font-weight:800}.pe-pitch-start.on{background:#8a3a32;border-color:#8a3a32}.pe-pitch-error{color:#8a3b2e;background:#fde8e4;border:1px solid #efc2b8;border-radius:10px;padding:8px 10px;font-size:.82rem;font-weight:700}.pe-pitch-hero{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:160px;display:flex}.pe-pitch-letter{font-family:var(--font-display,Georgia, "Songti SC", serif);color:color-mix(in srgb, var(--ink) 45%, #8aa0ad);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(2.6rem,5vw,4.4rem);font-weight:700;line-height:1}.pe-pitch-letter.locked{color:#2a6b52}.pe-pitch-meta{color:var(--ink-muted);min-height:1.3em;margin-top:8px;font-size:.82rem}.pe-pitch-bottom{flex-direction:column;flex:none;gap:10px;display:flex}.pe-pitch-field{color:var(--ink-muted);flex-direction:column;gap:4px;font-size:.75rem;font-weight:700;display:flex}.pe-pitch-field input[type=range]{width:100%;accent-color:var(--teal,#3d8f6e)}.pe-pitch-rec{flex-direction:column;gap:8px;display:flex}.pe-pitch-rec-btn,.pe-pitch-sub-btn{border:1px solid var(--line);font:inherit;cursor:pointer;color:var(--ink);background:#fff;border-radius:10px;padding:8px 12px;font-weight:700}.pe-pitch-rec-btn{background:var(--ink);color:#fff;border-color:var(--ink)}.pe-pitch-rec-btn:disabled{opacity:.45;cursor:not-allowed}.pe-pitch-rec-btn.danger{background:#8a3a32;border-color:#8a3a32}.pe-pitch-sub-wrap{position:relative}.pe-pitch-sub-menu{z-index:40;border:1px solid var(--line);background:#f7f9fa;border-radius:12px;flex-direction:column;gap:4px;padding:8px;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;right:0;box-shadow:0 10px 24px #1a3a4a24}.pe-pitch-sub-option{cursor:pointer;font:inherit;color:var(--ink);text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;padding:8px 10px;font-weight:600}.pe-pitch-sub-option:hover{background:#e6f6ec}.pe-pitch-sub-option.active{border-color:color-mix(in srgb, #3d8f6e 40%, var(--line));background:#d8f1e1}.pe-pitch-status{min-height:2.4rem;color:var(--ink-muted);font-size:.82rem;font-weight:600}.pe-pitch-live{color:#2a6b52;flex-direction:column;gap:8px;display:flex}.pe-pitch-dot{background:#c44;border-radius:50%;width:8px;height:8px;margin-right:6px;animation:1s infinite pe-pitch-pulse;display:inline-block}.pe-pitch-dots{align-items:center;gap:8px;margin-top:6px;display:flex}.pe-pitch-beat{background:0 0;border:2px solid #9aafb8;border-radius:50%;width:12px;height:12px}.pe-pitch-beat.passed{background:#bbd8cc;border-color:#3d8f6e}.pe-pitch-beat.on{background:#e07a45;border-color:#e07a45}@keyframes pe-pitch-pulse{0%,to{opacity:1}50%{opacity:.4}}.app-confirm-overlay{z-index:4000;background:#0c161e73;place-items:center;width:100vw;height:100dvh;margin:0;padding:20px;display:grid;position:fixed;inset:0}.app-confirm-card{background:#fbfcfd;border-radius:16px;width:min(420px,100%);padding:18px 18px 14px;box-shadow:0 18px 48px #14243038}.app-confirm-card h3{margin:0 0 8px;font-size:1.05rem}.app-confirm-card p{color:var(--ink-muted,#5a6a74);margin:0 0 16px;line-height:1.5}.app-confirm-actions{justify-content:flex-end;gap:8px;display:flex}.app-confirm-actions button{border:1px solid var(--line,#d5dde2);cursor:pointer;background:#fff;border-radius:10px;padding:7px 14px;font-weight:700}.app-confirm-actions button.primary{background:var(--ink,#1e2a32);border-color:var(--ink,#1e2a32);color:#fff}.app-confirm-actions button.danger{color:#fff;background:#c23b32;border-color:#c23b32}.web-feature-unavailable{border:1px solid var(--line);background:#ffffffd1;border-radius:16px;place-items:center;min-height:min(52vh,420px);padding:28px 20px;display:grid}.web-feature-unavailable p{text-align:center;max-width:36em;color:var(--ink);margin:0;font-size:1.05rem;font-weight:650;line-height:1.7}.web-feature-unavailable a{color:color-mix(in srgb, var(--teal) 40%, var(--ink));text-underline-offset:3px;font-weight:800;text-decoration:underline}.web-feature-unavailable a:hover{color:var(--teal-deep)}.phrase-workspace{flex-direction:column;gap:12px;display:flex}.phrase-workspace.is-capture{height:calc(170dvh - 493px);min-height:520px}.phrase-subnav{gap:8px;display:flex}.phrase-subnav-btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;padding:8px 14px;font-weight:700}.phrase-subnav-btn.on{background:var(--ink);border-color:var(--ink);color:#fff}.phrase-editor{flex-direction:column;gap:12px;display:flex}.pe-panel{border:1px solid var(--line);zoom:1.3;background:#ffffffdb;border-radius:16px;flex-wrap:wrap;gap:14px 18px;padding:14px 16px;display:flex}.pe-panel label{color:var(--ink-muted);flex-direction:column;gap:4px;font-size:.75rem;font-weight:700;display:flex}.pe-panel label.is-dim{opacity:.45}.pe-panel select,.pe-panel input:not([type=range]){border:1px solid var(--line);min-width:108px;font:inherit;color:var(--ink);border-radius:8px;padding:6px 8px;font-weight:600}.pe-sens-row{align-items:center;gap:8px;display:flex}.pe-sens-row em{min-width:3em;color:var(--ink);font-style:normal}.pe-import-wrap{flex-direction:column;justify-content:flex-end;gap:4px;display:flex;position:relative}.pe-import-label{color:var(--ink-muted);font-size:.75rem;font-weight:700}.pe-import-btn{border:1px solid var(--line);font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;padding:6px 10px;font-weight:700}.pe-import-btn.open{border-color:var(--ink);background:var(--ink);color:#fff}.pe-import-menu{z-index:24;border:1px solid var(--line);background:#f7f9fa;border-radius:16px;min-width:240px;max-height:min(40vh,280px);padding:10px;position:absolute;top:calc(100% + 8px);left:0;overflow:auto;box-shadow:0 14px 36px #1a3a4a29}.pe-score,.pe-fret,.pe-roll-wrap{border:1px solid var(--line);background:#ffffffdb;border-radius:16px;padding:12px 14px}.pe-fret .fretboard{overflow-x:hidden}.pe-fret .fret-ruler,.pe-fret .string-row{grid-template-columns:36px repeat(24,minmax(0,1fr))}.pe-fret .nut-cell{width:36px}.pe-score-head{align-items:center;gap:10px;margin-bottom:8px;font-weight:700;display:flex}.pe-bar-arrow,.pe-finish,.pe-play,.pe-iter-btn,.pe-techbar button,.pe-tools button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;padding:6px 12px;font-weight:700}.pe-bar-arrow{width:36px;font-size:1.2rem}.pe-finish{background:var(--ink);color:#fff;border-color:var(--ink);margin-left:auto}.pe-score-svg{width:100%;height:auto;display:block}.pe-string,.pe-barline,.pe-rhythm line{stroke:#1a3a4a;stroke-width:1.2px}.pe-timesig{fill:#1a3a4a;font-family:Georgia,Songti SC,serif;font-size:12px;font-weight:700}.pe-digit-gap{fill:#fbfcfd}.pe-digit-bg{fill:#fbfcfd;stroke:#0000}.pe-digit-bg.on{fill:#2a6b52}.pe-digit-bg.sel{fill:#e07a4547}.pe-fret-num{fill:#1a3a4a;text-anchor:middle;pointer-events:none;dominant-baseline:alphabetic;font-family:Segoe UI,system-ui,sans-serif;font-size:12px;font-weight:800}.pe-fret-num.on{fill:#fff}.pe-fret-num.sel{fill:#c45c12}.pe-rhythm-mark{fill:#1a3a4a;font-variant-numeric:lining-nums tabular-nums;font-family:Consolas,Cascadia Mono,Segoe UI,ui-monospace,monospace;font-size:14px;font-weight:700}.pe-rhythm-under{stroke:#1a3a4a;stroke-width:1.4px;stroke-linecap:round}.pe-tech-mark{fill:#3d6a80;font-size:8px;font-weight:800;font-family:var(--font-sans);text-anchor:middle}.pe-guide{stroke:#3d8f6e;stroke-width:1.4px}.pe-tab-note{cursor:pointer}.pe-tab-hit,.pe-tab-note.sel .pe-tab-hit{fill:#0000}.pe-rhythm{cursor:pointer}.pe-rhythm.on .pe-rhythm-mark{fill:#2a6b52}.pe-score-hint,.pe-roll-hint{color:var(--ink-muted);margin:8px 0 0;font-size:.82rem}.pe-techbar{z-index:24;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex;position:relative}.pe-techbar .tuning-editor{margin-left:auto}.pe-techbar .tuning-btn{border-radius:10px;padding:6px 12px}.pe-techbar span,.pe-techbar em{color:var(--ink-muted);font-size:.78rem}.pe-cand-dot,.pe-bar-dot,.pe-prev-dot{z-index:3;pointer-events:none;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 3px;font-size:.62rem;font-weight:800;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pe-cand-dot{color:#1a3a4a;background:#2db86a8c;border:1px solid #2db86ae6}.pe-bar-dot{color:#1a3550;background:#82beeb94;border:1px solid #5aa0d7cc}.pe-prev-dot{color:#3a3410;background:#f5dc69b8;border:1px solid #d2af32e6}.pe-scale-dot{z-index:1;pointer-events:none;background:#c6cad280;border:1px solid #a8acb46b;border-radius:999px;width:18px;height:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pe-fret .fret-cell,.pe-fret .nut-label{cursor:default}.pe-fret .fret-cell.pe-clickable,.pe-fret .nut-label.pe-clickable{cursor:pointer}.pe-roll-wrap{flex-direction:column;gap:8px;display:flex}.pe-roll-row{align-items:stretch;gap:12px;min-width:0;display:flex}.pe-roll-main{flex-direction:column;flex:1 1 0;gap:8px;min-width:0;display:flex}.pe-roll-side{z-index:55;align-items:flex-end;gap:12px;display:flex;position:relative}.pe-tools,.pe-iterate{align-items:center;gap:8px;display:flex}.pe-tools button.on,.pe-iter-btn.on{background:var(--ink);color:#fff;border-color:var(--ink)}.pe-tools .pe-play{color:#fff;background:#2f6fed;border-color:#2458c4}.pe-tools .pe-play:hover{background:#1f5ad4}.pe-tuplet{position:relative}.pe-tuplet-menu{z-index:8;border:1px solid var(--line);background:#f7f9fa;border-radius:10px;flex-direction:column;gap:4px;min-width:96px;padding:8px;display:flex;position:absolute;top:calc(100% + 6px);left:0}.pe-tuplet-menu .pe-tuplet-clear{border-top:1px solid var(--line);color:#8a3a32;border-radius:8px;margin-top:2px;padding-top:8px;font-weight:700}.pe-iterate label{color:var(--ink-muted);flex-direction:column;font-size:.72rem;font-weight:700;display:flex}.pe-roll{border:1px solid var(--line);overscroll-behavior:contain;background:#fbfcfd;border-radius:12px;min-height:520px;display:flex;overflow:hidden}.pe-keys-col{background:#eef3f5;border-right:1.5px solid #1a3a4a80;flex-direction:column;flex:none;width:64px;display:flex}.pe-keys-col.tall{width:96px}.pe-keys-spacer{border-bottom:1px solid var(--line);flex:none;height:18px}.pe-keys{flex-direction:column;flex:1;min-height:0;display:flex}.pe-key{border:0;border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent);text-align:left;cursor:pointer;white-space:nowrap;flex:1;padding:0 4px;font-size:.62rem;font-weight:700;line-height:1;overflow:hidden}.pe-key.white{color:#1a3a4a;background:#f7fafb}.pe-key.black{color:#e8eef2;background:#2a3840}.pe-roll-body{flex:1;min-width:0;min-height:0;display:flex}.pe-grid{border:0;border-left:1.5px solid #1a3a4a80;border-right:1.5px solid #1a3a4a80;flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.pe-pitch-overlay{box-sizing:border-box;pointer-events:none;z-index:1;background:#2a30386b;border:1px solid #20242a59;border-radius:4px;position:absolute}.pe-beats{height:18px;color:var(--ink-muted);z-index:2;flex-wrap:nowrap;font-size:.7rem;font-weight:700;display:flex;position:relative}.pe-beats span{box-sizing:border-box;border:0;flex:none;min-width:0;padding-left:6px}.pe-time-lines{pointer-events:none;z-index:1;position:absolute;inset:0}.pe-time-lines i{border-left:2px solid #1a3a4a7a;width:0;margin:0;display:block;position:absolute;top:0;bottom:0}.pe-time-lines i.beat{border-left-width:2.5px;border-left-color:#1a3a4abf}.pe-time-lines i.bar-break{border-left-width:2px;border-left-color:#1a3a4a}.pe-grid-row{flex-wrap:nowrap;flex:1;min-width:0;min-height:0;display:flex}.pe-slot{cursor:cell;z-index:0;background:#fff;border:0;border-bottom:1.5px solid #1a3a4a66;flex:none;min-width:0;padding:0;position:relative}.pe-slot.tuplet-split{box-shadow:inset 1px 0 #1a3a4a47}.pe-slot:last-child{border-right:0}.pe-slot.downbeat{background:#b4e3c8}.pe-slot.in-scale{background:#d2e6f6}.pe-slot.in-scale.downbeat{background:#accee9}.pe-key.in-scale.white{background:#c9e0f3}.pe-key.in-scale.black{background:#4f6b80}.pe-slot.sel{outline:2px solid var(--teal);outline-offset:-2px}.pe-note{box-sizing:border-box;background:color-mix(in srgb, var(--teal) 70%, #1a3a4a);color:#fff;pointer-events:auto;z-index:2;border-radius:4px;align-items:center;padding:0 4px;font-size:.65rem;font-weight:700;display:flex;position:absolute}.pe-note.on{box-shadow:0 0 0 2px #e07a45}.pe-note-caption{line-height:1;display:inline-block;position:relative}.pe-note-vibrato{color:#f3f7f8;pointer-events:none;font-size:.95em;font-weight:700;line-height:1;position:absolute;top:-.42em;right:-.62em}.pe-bend-ghost{box-sizing:border-box;pointer-events:none;z-index:1;background:#e05a3861;border-radius:4px;position:absolute}.pe-playhead{z-index:3;pointer-events:none;background:#c23b32;width:2px;position:absolute;top:0;bottom:0;left:0}.pe-preview-modal{z-index:80;background:#0c161e73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.pe-preview-card{background:#fbfcfd;border-radius:16px;width:min(1080px,100%);max-height:90vh;padding:14px;overflow:auto}.pe-preview-bar{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.pe-preview-pdf{min-height:360px}.pe-preview-img{background:#fbfaf6;border-radius:8px;width:100%;height:auto;display:block}.pe-export-error{color:#c23b32;font-weight:700}.os-titlebar{z-index:1000;color:#e8eef2;letter-spacing:.02em;-webkit-app-region:drag;-webkit-user-select:none;user-select:none;background:#1c2228;align-items:center;gap:12px;height:36px;padding:0 148px 0 16px;font-size:12px;display:flex;position:fixed;top:0;left:0;right:0}.os-titlebar-name{white-space:nowrap;font-weight:700}.os-titlebar-by{color:#b8c4cc;white-space:nowrap}body.has-os-titlebar .app{padding-top:64px}.improv-panel .panel-head h2{font-weight:800}.improv-panel .prog-toolbar{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:14px;display:flex}.improv-panel .field.compact input,.improv-panel .field.compact select{border:1px solid var(--line);width:88px;color:var(--ink);font:inherit;background:#fff;border-radius:10px;padding:8px 10px}.improv-panel .field.compact select{width:auto;min-width:108px;max-width:160px}.improv-btn{border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;background:#fff;border-radius:10px;padding:9px 14px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.improv-btn:hover{border-color:var(--teal)}.improv-btn:disabled{opacity:.45;cursor:not-allowed}.improv-btn.primary{background:var(--teal-deep);border-color:var(--teal-deep);color:#fff}.improv-btn.primary:hover{background:var(--teal);border-color:var(--teal)}.improv-btn.danger{color:#fff;background:#b33b3b;border-color:#9a2f2f}.improv-btn.ghost{background:#fff}.improv-btn.on{border-color:var(--teal-deep);color:var(--teal-deep);background:color-mix(in srgb, var(--teal) 16%, white)}.drum-controls{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.drum-style-field select{min-width:188px;max-width:260px}.improv-panel .drum-flex-field input[type=range]{width:168px}.improv-btn.small{padding:7px 12px;font-size:.85rem}.inst-picker{position:relative}.inst-trigger{white-space:nowrap;text-overflow:ellipsis;justify-content:space-between;align-items:center;gap:8px;min-width:128px;max-width:220px;padding:8px 12px;display:inline-flex;overflow:hidden}.inst-trigger.open{border-color:var(--teal);color:var(--teal-deep)}.inst-caret{opacity:.7;font-size:.7rem}.inst-menu{z-index:50;border:1px solid var(--line);background:var(--surface-raised,#fff);border-radius:12px;flex-direction:column;gap:4px;min-width:220px;padding:8px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 28px #1a3a4a29}.inst-menu-title{color:var(--ink-muted);padding:2px 6px 6px;font-size:.72rem;font-weight:700}.inst-menu-item{cursor:pointer;font:inherit;text-align:left;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.inst-menu-item:hover{background:color-mix(in srgb, var(--scale-in) 30%, white)}.inst-menu-item.on{background:color-mix(in srgb, var(--scale-in) 55%, white);border-color:color-mix(in srgb, var(--teal) 40%, var(--line))}.inst-check{width:1.1em;color:var(--teal-deep);font-weight:800;line-height:1.35}.inst-meta{flex-direction:column;gap:1px;min-width:0;display:flex}.inst-meta strong{font-size:.92rem}.inst-hint{color:var(--ink-muted);font-size:.72rem;font-weight:600}.prog-now{min-height:1.6em;color:var(--ink);margin-bottom:14px;font-size:1.05rem}.prog-now .muted,.improv-panel .muted{color:var(--ink-muted)}.prog-now .roman{color:var(--teal-deep);margin-left:2px;font-weight:700}.prog-grid{gap:8px;display:grid}.prog-cell-wrap{position:relative}.prog-cell{border:1px solid var(--line);background:var(--surface,#fff);cursor:pointer;text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;width:100%;min-height:88px;padding:12px;font-family:inherit;transition:border-color .15s,background .15s,transform .1s;display:flex}.prog-cell:hover{border-color:var(--accent)}.prog-cell.filled{background:color-mix(in srgb, var(--scale-in) 28%, white)}.prog-cell.current,.prog-cell.menu-open{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent);transform:translateY(-1px)}.prog-cell .bar-no{color:var(--ink-muted);font-size:.72rem;font-weight:600}.prog-cell .chord-sym{font-family:var(--font-display);color:var(--ink);font-size:1.25rem;font-weight:700}.prog-cell .roman{color:var(--teal-deep);font-size:.85rem;font-weight:700}.prog-menu{z-index:40;border:1px solid var(--line);background:var(--surface-raised,#fff);border-radius:12px;min-width:220px;max-width:min(320px,90vw);max-height:320px;padding:10px;position:absolute;top:calc(100% + 6px);left:0;overflow:auto;box-shadow:0 12px 28px #1a3a4a29}.prog-menu-title{color:var(--ink-muted);align-items:center;gap:6px;margin-bottom:8px;font-size:.78rem;font-weight:700;display:flex}.prog-menu-title .back{cursor:pointer;font:inherit;color:var(--ink);background:0 0;border:none;padding:0 4px;font-weight:700}.prog-menu-roots{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.prog-menu-types{flex-direction:column;gap:4px;display:flex}.prog-menu-item{border:1px solid var(--line);background:var(--surface,#fff);cursor:pointer;text-align:left;border-radius:8px;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 10px;font-family:inherit;display:flex}.prog-menu-item:hover{border-color:var(--accent)}.prog-menu-item.in-scale{background:color-mix(in srgb, var(--scale-in) 42%, white);border-color:color-mix(in srgb, var(--teal) 45%, var(--line))}.prog-menu-item .note{color:var(--ink);font-size:.95rem;font-weight:700}.prog-menu-item .deg{color:var(--teal-deep);font-size:.72rem;font-weight:700}.prog-menu-item.type{flex-direction:row;justify-content:space-between;align-items:baseline;gap:8px}.prog-menu-item .sub{color:var(--ink-muted);font-size:.72rem;font-weight:600}.prog-menu-clear{border:1px dashed var(--line);cursor:pointer;width:100%;font:inherit;color:var(--ink-muted);background:0 0;border-radius:8px;margin-top:8px;padding:7px;font-size:.8rem}.prog-menu-clear:hover{border-color:var(--accent);color:var(--ink)}.common-prog{border-top:1px solid var(--line);margin-top:22px;padding-top:16px}.common-prog h3{flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin:0 0 12px;font-size:1.05rem;display:flex}.common-prog-hint{color:var(--ink-muted);font-size:.78rem;font-weight:500}.common-prog-warn{margin:0 0 10px;font-size:.88rem}.common-prog-list{flex-direction:column;gap:8px;display:flex}.common-prog-card{border:1px solid var(--line);background:var(--surface,#fff);border-radius:12px;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.common-prog-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.common-prog-label{font-family:var(--font-display);letter-spacing:.02em;font-size:1.15rem}.common-prog-style{color:var(--teal-deep);font-size:.82rem;font-weight:700}.common-prog-feel{color:var(--ink-muted);font-size:.8rem}.profile-page{flex-direction:column;min-height:420px;display:flex}.profile-back{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;margin-bottom:20px;padding:0;font-weight:600}.profile-back:hover{color:var(--teal-deep)}.profile-center{flex-direction:column;align-items:center;gap:18px;padding:20px 12px 40px;display:flex}.profile-avatar-btn{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:8px;padding:0;display:flex}.profile-avatar-lg{object-fit:cover;border:3px solid color-mix(in srgb, var(--teal) 50%, white);border-radius:50%;width:120px;height:120px;box-shadow:0 8px 24px #1a3a4a1f}.profile-avatar-tip{color:var(--ink-soft);font-size:.78rem}.profile-name-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.profile-username{font-family:var(--font-display);color:var(--ink);margin:0;font-size:2rem}.profile-name-input{font-family:var(--font-display);border:1px solid var(--line);border-radius:12px;min-width:180px;padding:6px 12px;font-size:1.6rem}.profile-btn{border:1px solid var(--line);cursor:pointer;color:var(--ink-muted);background:#fff;border-radius:10px;padding:8px 12px;font-weight:600}.profile-btn:hover{border-color:var(--teal);color:var(--teal-deep)}.profile-guide-btn{min-width:160px;margin-top:4px}.profile-lang{gap:8px;margin-top:2px;display:flex}.profile-lang-btn{min-width:88px}.profile-lang-btn.on{color:#fff;background:#1a3a4a;border-color:#1a3a4a}.profile-btn.danger{color:#a14a3a}.profile-btn.danger:hover{border-color:#a14a3a}.profile-stats{flex-direction:column;gap:14px;width:min(420px,100%);margin-top:8px;display:flex}.profile-stat-row{color:var(--ink-muted);background:var(--surface-raised);border:1px solid var(--line);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:.95rem;display:flex}.years-edit{align-items:center;gap:6px;font-size:.82rem;display:flex}.years-edit input{border:1px solid var(--line);text-align:center;border-radius:8px;width:48px;padding:4px 6px}.total-time-row{align-items:flex-start}.total-time-block{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.total-edit{flex-wrap:wrap}.total-edit input{width:40px}.profile-about-btn{align-self:center;min-width:160px;margin-top:auto}.profile-about-card{flex-direction:column;flex:1;align-items:center;min-height:420px;padding:8px 8px 4px;display:flex}.profile-about-top{flex-direction:column;align-items:center;gap:16px;padding-top:12px;display:flex}.profile-about-tagline{color:var(--ink-soft);margin:-6px 0 0;font-size:.92rem;font-weight:500}.profile-about-affiliation{letter-spacing:.02em;color:var(--ink-soft);margin:-8px 0 0;font-size:.78rem;font-weight:600}.profile-about-feedback-plain{color:var(--ink-muted);margin:0;font-size:.92rem;font-weight:650}.profile-about-foot{text-align:center;flex-direction:column;align-items:center;gap:10px;width:min(560px,100%);margin-top:auto;padding:28px 6px 4px;display:flex}.profile-about-version{color:var(--ink-muted);margin:0;font-weight:600}.profile-about-feedback{color:var(--teal-deep);text-underline-offset:3px;font-weight:700;text-decoration:underline}.profile-about-feedback:hover{color:var(--teal)}.profile-about-legal{color:var(--ink-soft);text-align:justify;margin:4px 0 0;font-size:.58rem;line-height:1.55}.usage-guide{z-index:400;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.ug-backdrop{background:#0c161e85;position:absolute;inset:0}.ug-modal{z-index:1;border:1px solid var(--line);width:min(560px,100%);max-height:min(86vh,720px);color:var(--ink);background:#fbfcfd;border-radius:20px;padding:22px 24px 18px;position:relative;overflow:auto;box-shadow:0 18px 48px #1224303d}.ug-kicker{letter-spacing:.08em;color:var(--ink-muted);margin:0;font-size:.78rem;font-weight:700}.ug-dots{gap:7px;margin:10px 0 6px;display:flex}.ug-dot{background:var(--line);border-radius:999px;width:8px;height:8px}.ug-dot.on{background:var(--ink);width:22px}.ug-dot.done{background:color-mix(in srgb, var(--teal) 70%, var(--line))}.ug-page-num{color:var(--ink-muted);margin:0 0 8px;font-size:.78rem;font-weight:700}.ug-modal h3{font-size:1.45rem;font-family:var(--font-display);margin:0 0 12px}.ug-intro{margin:0 0 8px;font-size:.95rem;line-height:1.55}.ug-link{color:color-mix(in srgb, var(--teal) 55%, var(--ink));font-weight:700}.ug-items{flex-direction:column;gap:8px;margin:12px 0 16px;padding-left:1.1rem;font-size:.92rem;line-height:1.45;display:flex}.ug-items strong{margin-right:6px}.ug-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:18px;display:flex}.ug-nav{gap:8px;display:flex}.ug-btn{border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;border-radius:10px;padding:8px 16px;font-weight:700}.ug-btn.ghost{color:var(--ink-muted);border-color:var(--line);background:#fff}.ug-btn.ghost:hover:not(:disabled){border-color:var(--teal);color:var(--teal-deep)}.ug-btn:disabled{opacity:.45;cursor:default}.session-wrap{position:relative}.session-chip{border:1px solid var(--line);min-width:220px;max-width:340px;font:inherit;text-align:center;cursor:pointer;border-radius:999px;padding:7px 14px;font-size:.84rem;font-weight:800;line-height:1.25}.session-chip-time{white-space:nowrap;display:block}.session-chip.session-chip-idle{color:var(--ink,#1a3a4a);border-color:var(--line);background:#fff}.session-chip.session-chip-idle:hover{border-color:color-mix(in srgb, var(--teal,#3d9a6a) 45%, var(--line))}.session-chip.session-chip-practice{color:#fff;background:#c23b32;border-color:#8e241e}.session-chip.session-chip-rest{color:#fff;background:#2f8a5b;border-color:#246b46}.session-menu{z-index:80;border:1px solid var(--line);background:#f7f9fa;border-radius:14px;flex-direction:column;gap:10px;min-width:248px;padding:12px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 36px #1a3a4a29}.session-menu-title{color:var(--ink-muted);font-size:.78rem;font-weight:700}.session-menu label{color:var(--ink-muted);flex-direction:column;gap:4px;font-size:.78rem;font-weight:700;display:flex}.session-menu label span{color:var(--ink);align-items:center;gap:6px;display:flex}.session-menu input{border:1px solid var(--line);width:72px;font:inherit;border-radius:8px;padding:5px 8px;font-weight:700}.session-round{color:var(--ink);margin:0;font-size:.84rem;font-weight:700}.session-menu-actions{gap:8px;display:flex}.session-menu-actions button{cursor:pointer;border-radius:10px;flex:1;padding:7px 8px;font-weight:700}.session-start{color:#fff;background:#c23b32;border:1px solid #a32f28}.session-start:disabled{border-color:var(--line);color:#8a959c;cursor:default;background:#d5dadd}.session-stop{border:1px solid var(--line);color:var(--ink);background:#fff}.session-stop:disabled{opacity:.4;cursor:default}.rest-toast{z-index:4100;pointer-events:none;place-items:center;width:100vw;height:100dvh;display:grid;position:fixed;inset:0}.rest-toast span{letter-spacing:.08em;color:#2e96608c;font-size:clamp(2.4rem,6vw,4.2rem);font-weight:800;animation:2s forwards rest-toast-fade}@keyframes rest-toast-fade{0%{opacity:0}15%{opacity:1}70%{opacity:1}to{opacity:0}}.app{z-index:1;max-width:1100px;min-height:100vh;margin:0 auto;padding:28px 20px 40px;position:relative}.app.app-phrase{width:100%;max-width:1100px;height:auto;min-height:100vh;display:block;overflow:visible}.app.app-phrase .main,.phrase-host{min-height:0;display:block}.atmosphere{z-index:0;pointer-events:none;background:radial-gradient(1000px 480px at 10% -10%,#7ec8a347,#0000 60%),radial-gradient(800px 420px at 90% 0,#f0a07a2e,#0000 55%),linear-gradient(165deg,#f4f7f8 0%,#e7eef2 45%,#f7f3ee 100%);position:fixed;inset:0}.topbar{z-index:40;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;min-height:72px;margin-bottom:22px;display:flex;position:relative}.brand-slot{align-items:flex-end;min-width:200px;min-height:56px;display:flex}.brand-placeholder{width:200px;height:56px}.user-chip{border:1px solid var(--line);cursor:pointer;background:#fffc;border-radius:999px;align-items:center;gap:10px;padding:6px 14px 6px 6px;animation:.7s both user-in;display:inline-flex}.user-chip:hover{border-color:color-mix(in srgb, var(--teal) 45%, var(--line))}.user-avatar{object-fit:cover;border-radius:50%;width:40px;height:40px}.user-name-wrap{flex-flow:row;align-items:baseline;gap:8px;min-width:0;display:inline-flex}.user-name{color:var(--ink);font-size:1rem;font-weight:700}.web-trial-badge{color:var(--ink-muted);white-space:nowrap;letter-spacing:.02em;font-size:.68rem;font-weight:650}@keyframes user-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.status-chips{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.chip{border:1px solid var(--line);color:var(--ink-muted);background:#ffffffb3;border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600}.nav-layout{z-index:1;grid-template-columns:1.6fr .85fr .85fr .85fr .85fr;align-items:stretch;gap:8px;margin-bottom:14px;animation:.65s both rise;display:grid;position:relative}.tab{box-sizing:border-box;border:1px solid var(--line);text-align:left;cursor:pointer;background:#ffffffc7;border-radius:12px;flex-shrink:0;align-items:center;min-width:0;height:72px;min-height:72px;padding:0 14px;font-family:inherit;transition:border-color .15s,background .15s,transform .15s;display:flex}.tab:hover{border-color:color-mix(in srgb, var(--teal) 45%, var(--line));transform:translateY(-1px)}.tab.active{background:var(--ink);border-color:var(--ink);color:#fff}.tab-primary{height:72px;min-height:72px;box-shadow:0 6px 16px #1a3a4a1a}.tab-primary .tab-label{font-size:1.24rem}.tab-secondary{height:72px;min-height:72px;box-shadow:0 4px 12px #1a3a4a14}.tab-secondary .tab-label{font-size:1.17rem}.tab-tertiary{height:72px;min-height:72px}.tab-tertiary .tab-label{font-size:1.13rem}.tab-label{white-space:nowrap;text-overflow:ellipsis;font-weight:700;line-height:1.1;display:block;overflow:hidden}.metro-bar{align-items:flex-end;gap:12px}.vol-control{flex-direction:column;align-items:stretch;gap:2px;min-width:168px;display:flex}.vol-control span{color:var(--ink-muted);font-size:.7rem;font-weight:600}.vol-control input[type=range]{width:168px;accent-color:var(--teal)}.metro-wrap{z-index:45;flex-direction:column;align-items:center;gap:6px;display:flex;position:relative}.metro-beats{pointer-events:none;background:0 0;border:none;justify-content:center;align-items:center;gap:6px;min-height:14px;padding:0;display:flex}.metro-btn{box-sizing:border-box;border:1px solid var(--line);min-width:148px;height:56px;color:var(--ink);font:inherit;cursor:pointer;background:#ffffffc7;border-radius:12px;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding:0 16px;transition:border-color .15s,background .15s,transform .15s;display:flex;box-shadow:0 4px 12px #1a3a4a14}.metro-btn:hover,.metro-btn.open{border-color:color-mix(in srgb, var(--teal) 45%, var(--line));transform:translateY(-1px)}.metro-btn.on{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 6px 16px #1a3a4a29}.metro-btn-title{font-size:.98rem;font-weight:700;line-height:1.1}.metro-btn-meta{color:var(--ink-muted);font-size:.72rem;font-weight:600}.metro-btn.on .metro-btn-meta{color:#ffffffb8}.metro-menu{z-index:100;border:1px solid var(--line);background:var(--surface-raised,#fff);border-radius:14px;flex-direction:column;gap:12px;width:220px;padding:12px;display:flex;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 14px 32px #1a3a4a29}.metro-menu-section{flex-direction:column;gap:6px;display:flex}.metro-menu-bpm .field{margin:0}.metro-menu-bpm .field span{font-size:.7rem}.metro-menu-bpm input{box-sizing:border-box;width:100%;padding:7px 10px}.metro-meter-grid{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.metro-meter-grid .meter-option{text-align:center;padding:7px 4px}.metro-start-btn{border:1px solid var(--ink);background:var(--ink);color:#fff;width:100%;font:inherit;cursor:pointer;border-radius:10px;padding:10px 12px;font-size:.9rem;font-weight:700}.metro-start-btn:hover{filter:brightness(1.08)}.metro-start-btn.on{color:var(--ink);background:0 0}.metro-dot{background:color-mix(in srgb, var(--ink-muted) 35%, transparent);border:1px solid color-mix(in srgb, var(--ink-soft) 55%, transparent);border-radius:50%;width:7px;height:7px;transition:background 60ms,transform 60ms,border-color 60ms}.metro-dot.on{background:var(--teal);border-color:var(--teal-deep);transform:scale(1.2)}.metro-dot.on.accent{background:var(--accent);border-color:var(--accent)}.meter-menu{z-index:100;border:1px solid var(--line);background:var(--surface-raised,#fff);border-radius:12px;flex-direction:column;gap:4px;min-width:120px;padding:8px;display:flex;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%);box-shadow:0 10px 24px #1a3a4a24}.meter-menu-title{color:var(--ink-muted);margin-bottom:2px;padding:0 4px;font-size:.72rem;font-weight:700}.meter-option{text-align:left;cursor:pointer;font:inherit;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;padding:6px 10px;font-size:.88rem;font-weight:600}.meter-option:hover{background:color-mix(in srgb, var(--scale-in) 35%, white)}.meter-option.active{background:color-mix(in srgb, var(--scale-in) 55%, white);border-color:color-mix(in srgb, var(--teal) 40%, var(--line))}.chip.clickable{cursor:pointer;border:1px solid var(--line);font:inherit;background:#fffc}.chip.clickable.on{background:var(--ink);border-color:var(--ink);color:#fff}.chip-bpm{min-width:96px}.chip-bpm .field{margin:0}.chip-bpm .field span{font-size:.7rem}.chip-bpm input{width:72px;padding:6px 8px}.main{animation:.75s both rise}.tab-panel-hidden{display:none}.panel{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffdb;border-radius:18px;padding:22px;box-shadow:0 10px 30px #1e323c0f}.panel-head{margin-bottom:14px}.panel-head h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:1.55rem;font-weight:700}.panel-desc{color:var(--ink-muted);margin:6px 0 0;font-size:.92rem}.placeholder-panel h2{font-family:var(--font-display);margin:0 0 8px}.placeholder-panel p{color:var(--ink-muted);margin:0}.placeholder-panel.under-construction{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;min-height:280px;padding:2.5rem 1.5rem;display:flex}.placeholder-panel.under-construction h2{letter-spacing:.12em;font-size:1.75rem}.under-construction-hint{opacity:.8;font-size:.9rem;margin-top:.35rem!important}.field{color:var(--ink-muted);flex-direction:column;gap:6px;font-size:.8rem;font-weight:600;display:flex}.field.compact input,.field input{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:8px 10px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=800px){.nav-layout{grid-template-columns:1fr 1fr}}html.is-mobile,html.is-mobile body{max-width:100%;overflow-x:hidden}html.is-mobile body{min-width:0}html.is-mobile .app{width:100%;max-width:none;min-height:100dvh;padding-top:max(8px, env(safe-area-inset-top));padding-bottom:max(10px, env(safe-area-inset-bottom));padding-left:max(10px, env(safe-area-inset-left));padding-right:max(10px, env(safe-area-inset-right))}html.is-mobile .topbar{flex-wrap:nowrap;align-items:center;gap:8px;min-height:0;margin-bottom:8px}html.is-mobile .brand-slot{flex:none;align-items:center;min-width:0;min-height:0}html.is-mobile .user-chip{gap:8px;padding:3px 10px 3px 3px}html.is-mobile .user-avatar{width:28px;height:28px}html.is-mobile .user-name{font-size:.88rem}html.is-mobile .web-trial-badge{font-size:.58rem}html.is-mobile .status-chips{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;flex:auto;align-items:center;gap:8px;min-width:0;overflow-x:auto}html.is-mobile .status-chips::-webkit-scrollbar{display:none}html.is-mobile .metro-bar{align-items:center}html.is-mobile .metro-beats{display:none}html.is-mobile .metro-btn{min-width:108px;height:40px;padding:0 10px}html.is-mobile .metro-btn-title{font-size:.78rem}html.is-mobile .metro-btn-meta{font-size:.64rem}html.is-mobile .vol-control{gap:0;min-width:88px}html.is-mobile .vol-control span{display:none}html.is-mobile .vol-control input[type=range]{width:88px}html.is-mobile .session-chip{min-width:0;max-width:168px;padding:5px 10px;font-size:.68rem}html.is-mobile .scale-trigger{max-width:140px;padding:5px 10px;font-size:.72rem}html.is-mobile .scale-menu{min-width:min(320px,100vw - 24px);max-height:min(70dvh,420px)}html.is-mobile .nav-layout{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:8px}html.is-mobile .tab,html.is-mobile .tab-primary,html.is-mobile .tab-secondary,html.is-mobile .tab-tertiary{height:40px;min-height:40px;box-shadow:none;padding:0 6px}html.is-mobile .tab-label,html.is-mobile .tab-primary .tab-label,html.is-mobile .tab-secondary .tab-label,html.is-mobile .tab-tertiary .tab-label{font-size:.78rem}html.is-mobile .metro-menu,html.is-mobile .session-menu{max-height:min(70dvh,360px);overflow:auto}html.is-mobile .practice-stage{grid-template-columns:minmax(110px,160px) 1fr;gap:12px 16px;min-height:0}html.is-mobile .practice-guitar-col,html.is-mobile .practice-guitar-sticky{height:min(240px,58dvh);min-height:0}html.is-mobile .practice-guitar{height:min(240px,58dvh)}html.is-mobile .pe-panel{zoom:1;padding:8px 10px}html.is-mobile .phrase-subnav{flex-wrap:wrap}html.is-mobile .phrase-subnav-btn{padding:6px 10px;font-size:.82rem}html.is-mobile .fretboard-tap-name{min-height:2.2rem;margin-bottom:6px}html.is-mobile .fretboard-tap-name strong{font-size:2rem}html.is-mobile .fretboard-tap-placeholder{font-size:1.05rem}html.is-mobile .web-feature-unavailable{min-height:min(42dvh,280px);padding:18px 14px}html.is-mobile .web-feature-unavailable p{font-size:.95rem}html.is-mobile .workbench-piano-row{flex-wrap:nowrap;gap:10px}html.is-mobile .workbench-piano-block{flex:auto;min-width:0}html.is-mobile .theory-head-end{gap:8px}html.is-mobile .theory-settings-btn{padding:.35rem .7rem;font-size:.82rem}.mobile-rotate-hint{display:none}html.is-mobile.is-portrait .mobile-rotate-hint{background:color-mix(in srgb, var(--ink) 88%, black);color:#f4f7f8;text-align:center;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin:0 0 8px;padding:7px 12px;font-size:.78rem;font-weight:700;line-height:1.35;display:flex}@media (orientation:landscape){html.is-mobile .app{padding-top:max(6px, env(safe-area-inset-top));padding-bottom:max(8px, env(safe-area-inset-bottom))}html.is-mobile .topbar,html.is-mobile .nav-layout{margin-bottom:6px}html.is-mobile .tab,html.is-mobile .tab-primary,html.is-mobile .tab-secondary,html.is-mobile .tab-tertiary{height:36px;min-height:36px}html.is-mobile .practice-stage{min-height:0}html.is-mobile .practice-guitar-sticky{height:min(200px,52dvh);position:relative;top:0}html.is-mobile .practice-guitar{height:min(200px,52dvh)}html.is-mobile .theory-stage-row{flex-direction:row;align-items:stretch}}@media (orientation:portrait){html.is-mobile .nav-layout{grid-template-columns:repeat(5,minmax(0,1fr))}html.is-mobile .practice-stage{grid-template-columns:1fr}html.is-mobile .practice-guitar-col{min-height:140px}html.is-mobile .practice-guitar-sticky,html.is-mobile .practice-guitar{height:140px}}html.is-wechat{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}html.is-wechat,html.is-wechat body{width:100%;min-width:0;max-width:100%}html.is-wechat .app{width:100%;max-width:none;min-height:var(--wechat-vh,100dvh);padding-top:max(6px, env(safe-area-inset-top), var(--wechat-inset-top,0px));padding-bottom:max(8px, env(safe-area-inset-bottom));padding-left:max(8px, env(safe-area-inset-left));padding-right:max(8px, env(safe-area-inset-right))}html.is-wechat .topbar{flex-wrap:nowrap;align-items:center;gap:6px;min-height:0;margin-bottom:6px}html.is-wechat .brand-slot{min-width:0;min-height:0}html.is-wechat .user-chip{gap:6px;padding:2px 8px 2px 2px}html.is-wechat .user-avatar{width:24px;height:24px}html.is-wechat .user-name{font-size:13px}html.is-wechat .web-trial-badge{font-size:10px}html.is-wechat .status-chips{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;flex:auto;gap:6px;min-width:0;overflow-x:auto}html.is-wechat .status-chips::-webkit-scrollbar{display:none}html.is-wechat .metro-beats{display:none}html.is-wechat .metro-btn{min-width:96px;height:34px;padding:0 8px}html.is-wechat .metro-btn-title,html.is-wechat .metro-btn-meta{font-size:11px}html.is-wechat .metro-btn-title{font-size:12px}html.is-wechat .vol-control{min-width:72px}html.is-wechat .vol-control span{display:none}html.is-wechat .vol-control input[type=range]{width:72px}html.is-wechat .session-chip{min-width:0;max-width:132px;padding:4px 8px;font-size:11px}html.is-wechat .scale-trigger{max-width:118px;padding:4px 8px;font-size:11px}html.is-wechat .nav-layout{gap:4px;margin-bottom:6px;grid-template-columns:repeat(5,minmax(0,1fr))!important}html.is-wechat .tab,html.is-wechat .tab-primary,html.is-wechat .tab-secondary,html.is-wechat .tab-tertiary{box-shadow:none;padding:0 4px;height:32px!important;min-height:32px!important}html.is-wechat .tab-label,html.is-wechat .tab-primary .tab-label,html.is-wechat .tab-secondary .tab-label,html.is-wechat .tab-tertiary .tab-label{font-size:11px!important}html.is-wechat .panel-head h2{margin:0;font-size:1.15rem}html.is-wechat .fretboard-tap-name{min-height:1.6rem;margin-bottom:4px}html.is-wechat .fretboard-tap-name strong{font-size:1.45rem}html.is-wechat .scale-workbench-controls{align-items:end;gap:8px;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto!important}html.is-wechat .swc-field{min-width:0;font-size:12px}html.is-wechat .swc-field select,html.is-wechat .swc-type-trigger{padding:6px 8px;font-size:12px}html.is-wechat .swc-clear{white-space:nowrap;align-self:end;max-height:36px;line-height:1.2;height:auto!important;padding:6px 10px!important;font-size:12px!important}html.is-wechat .swc-hint{grid-column:1/-1;font-size:12px}html.is-wechat .workbench-piano-row{flex-wrap:nowrap;gap:8px}html.is-wechat .workbench-piano-block{flex:auto;min-width:0}html.is-wechat .theory-head{flex-wrap:nowrap;gap:8px}html.is-wechat .theory-modules{flex-wrap:nowrap;flex:auto;min-width:0;overflow-x:auto}html.is-wechat .theory-mod-btn{padding:.35rem .7rem;font-size:13px}html.is-wechat .theory-settings-btn{line-height:1.2;padding:.3rem .65rem!important;font-size:13px!important}html.is-wechat .theory-stats strong{font-size:1rem}html.is-wechat .improv-panel .prog-toolbar{gap:8px;margin-bottom:8px}html.is-wechat .improv-btn,html.is-wechat .improv-btn.primary{padding:6px 10px;font-size:13px}html.is-wechat .improv-panel .field.compact input,html.is-wechat .improv-panel .field.compact select{padding:5px 8px;font-size:13px}html.is-wechat .pe-panel{zoom:1;padding:6px 8px}html.is-wechat .mobile-rotate-hint{margin-bottom:6px;padding:5px 8px;font-size:12px}
