:root{--sv2-bg:#0d0d10;--sv2-panel:#17171c;--sv2-panel2:#202027;--sv2-line:#34343d;--sv2-text:#f4f1ed;--sv2-muted:#aaa6a2;--sv2-accent:#d8ad57;--sv2-danger:#d86a72;--sv2-top:56px;--sv2-bottom:68px;--sv2-panel-w:380px}
body.sv2-open{overflow:hidden;background:var(--sv2-bg)}
#sv2-root{position:fixed;inset:0;z-index:9000;background:var(--sv2-bg);color:var(--sv2-text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;display:grid;grid-template-rows:var(--sv2-top) minmax(0,1fr) var(--sv2-bottom)}
.sv2-topbar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--sv2-line);background:rgba(15,15,18,.97);backdrop-filter:blur(14px);min-width:0}
.sv2-topbar button,.sv2-toolbar button,.sv2-panel button,.sv2-chip,.sv2-seg button{min-height:40px;border:1px solid var(--sv2-line);border-radius:9px;background:var(--sv2-panel2);color:var(--sv2-text);padding:7px 11px;font:inherit;cursor:pointer}
.sv2-topbar button:hover,.sv2-toolbar button:hover,.sv2-panel button:hover{border-color:#696976}.sv2-topbar button:active,.sv2-toolbar button:active,.sv2-panel button:active{transform:translateY(1px)}
.sv2-icon{width:40px;padding:0!important;display:grid;place-items:center;font-size:17px}.sv2-title-wrap{min-width:0;flex:1}.sv2-title{width:min(420px,100%);background:transparent;border:0;color:var(--sv2-text);font-size:15px;font-weight:650;outline:none;padding:8px}.sv2-state{font-size:12px;color:var(--sv2-muted);white-space:nowrap}
.sv2-mobile-save{display:none}
.sv2-zoom{display:flex;align-items:center;gap:6px}.sv2-zoom input[type=range]{width:132px;accent-color:var(--sv2-accent)}.sv2-zoom-value{width:50px;text-align:right;font-size:12px;color:var(--sv2-muted)}
.sv2-main{position:relative;min-height:0;min-width:0;overflow:hidden;display:grid;grid-template-columns:0 minmax(0,1fr) 0;grid-template-rows:minmax(0,1fr);transition:grid-template-columns .18s ease}.sv2-main.panel-left{grid-template-columns:var(--sv2-panel-w) minmax(0,1fr) 0}.sv2-main.panel-right{grid-template-columns:0 minmax(0,1fr) var(--sv2-panel-w)}
.sv2-panel{grid-row:1;min-width:0;min-height:0;background:var(--sv2-panel);border-color:var(--sv2-line);overflow:hidden;display:flex;flex-direction:column}.sv2-panel.left{grid-column:1;border-right:1px solid var(--sv2-line)}.sv2-panel.right{grid-column:3;border-left:1px solid var(--sv2-line)}.sv2-panel-head{display:flex;align-items:center;gap:6px;padding:10px;border-bottom:1px solid var(--sv2-line);background:#19191f}.sv2-panel-head strong{flex:1}.sv2-panel-head button{min-width:36px;padding:5px 8px}.sv2-panel-body{padding:12px;overflow:auto;min-height:0}.sv2-panel.floating{position:absolute;z-index:50;top:12px;left:12px;width:min(420px,calc(100% - 24px));height:min(72vh,720px);box-shadow:0 20px 60px #0009;border:1px solid var(--sv2-line);border-radius:14px}.sv2-panel.floating .sv2-panel-head{cursor:move;border-radius:14px 14px 0 0}
.sv2-score-shell{grid-column:2;grid-row:1;min-width:0;min-height:0;position:relative;background:#2c2b2f;overflow:hidden}.sv2-score-scroll{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;padding:28px 28px 80px}.sv2-score-stage{position:relative;margin:0 auto;transform-origin:top left;width:max-content;min-width:100%;transition:none}.sv2-score-paper{background:#fffef8;box-shadow:0 4px 28px #0008;min-height:540px;width:1120px}.sv2-score-paper svg{display:block;width:1120px;height:auto;background:#fffef8}.sv2-score-paper [data-note-id]{cursor:grab}.sv2-score-paper [data-note-id]:active{cursor:grabbing}.sv2-score-paper [data-note-id].selected .score-head,.sv2-score-paper .selected .score-head{fill:#c63f54!important;stroke:#c63f54!important}.sv2-score-paper [data-staff-input]{cursor:crosshair}.sv2-score-paper .score-event:hover .score-head{filter:drop-shadow(0 0 2px #c49a47)}
.sv2-selection-ring{position:absolute;pointer-events:none;border:2px solid var(--sv2-accent);border-radius:8px;box-shadow:0 0 0 2px #0008;z-index:8}.sv2-ghost-target{position:absolute;width:17px;height:12px;border-radius:50%;background:rgba(216,173,87,.38);border:2px solid #d8ad57;transform:translate(-50%,-50%);pointer-events:none;z-index:12}.sv2-ghost-line{position:absolute;width:1px;background:rgba(216,173,87,.55);pointer-events:none;z-index:11}
.sv2-toolbar{display:flex;align-items:center;gap:6px;padding:9px 10px;border-top:1px solid var(--sv2-line);background:rgba(15,15,18,.98);overflow-x:auto;overflow-y:hidden}.sv2-toolbar .family{white-space:nowrap;display:flex;align-items:center;gap:7px}.sv2-toolbar .family.active{border-color:var(--sv2-accent);background:#332b1f}.sv2-toolbar-spacer{flex:1}.sv2-mode{display:flex;gap:3px;background:#111116;padding:3px;border-radius:10px}.sv2-mode button{min-height:34px;padding:5px 9px;border:0;background:transparent}.sv2-mode button.active{background:var(--sv2-accent);color:#231b11}
.sv2-section{border:1px solid var(--sv2-line);border-radius:11px;margin:0 0 10px;overflow:hidden}.sv2-section>summary{list-style:none;padding:12px 13px;cursor:pointer;font-weight:700;background:#1c1c22}.sv2-section>summary::-webkit-details-marker{display:none}.sv2-section-body{padding:11px}.sv2-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.sv2-grid.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}.sv2-grid.cols2{grid-template-columns:repeat(2,minmax(0,1fr))}.sv2-grid button{padding:7px 5px;min-height:45px}.sv2-grid button.active{background:var(--sv2-accent);color:#21180e;border-color:var(--sv2-accent)}.sv2-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:7px 0}.sv2-row label{font-size:12px;color:var(--sv2-muted)}.sv2-row input,.sv2-row select,.sv2-panel input[type=text],.sv2-panel input[type=number],.sv2-panel select,.sv2-panel textarea{min-height:40px;border-radius:8px;border:1px solid var(--sv2-line);background:#111116;color:var(--sv2-text);padding:7px 9px;max-width:100%}.sv2-row input[type=range]{min-height:auto;accent-color:var(--sv2-accent);flex:1}.sv2-help{font-size:12px;line-height:1.45;color:var(--sv2-muted)}.sv2-kbd{font:11px ui-monospace,SFMono-Regular,monospace;background:#101014;border:1px solid var(--sv2-line);border-bottom-width:2px;border-radius:5px;padding:2px 5px}.sv2-badge{display:inline-flex;align-items:center;min-height:22px;border-radius:999px;background:#282830;padding:2px 8px;color:var(--sv2-muted);font-size:11px}.sv2-divider{height:1px;background:var(--sv2-line);margin:11px 0}.sv2-status{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:20;background:#17171ded;border:1px solid var(--sv2-line);border-radius:999px;padding:7px 11px;font-size:12px;color:var(--sv2-muted);pointer-events:none}.sv2-empty{padding:18px;text-align:center;color:var(--sv2-muted)}
.sv2-guide-overlay{position:fixed;inset:0;z-index:12000;background:#08080bd9;display:grid;place-items:center;padding:20px}.sv2-guide{width:min(1000px,96vw);height:min(760px,92vh);background:#17171d;border:1px solid #454550;border-radius:18px;box-shadow:0 30px 100px #000b;display:grid;grid-template-columns:260px 1fr;overflow:hidden}.sv2-guide-nav{padding:14px;border-right:1px solid var(--sv2-line);overflow:auto}.sv2-guide-nav button{width:100%;text-align:left;margin:3px 0}.sv2-guide-content{padding:24px;overflow:auto}.sv2-guide-content h2{margin-top:0}.sv2-guide-content p,.sv2-guide-content li{line-height:1.6;color:#d4d0cb}.sv2-tour{position:fixed;z-index:13000;width:min(330px,calc(100vw - 24px));background:#17171e;border:1px solid #565665;border-radius:14px;padding:14px;box-shadow:0 18px 60px #000b}.sv2-tour-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:11px}.sv2-tour-highlight{position:fixed;z-index:12999;border:3px solid var(--sv2-accent);border-radius:11px;pointer-events:none;box-shadow:0 0 0 9999px #05050788}
@media(max-width:900px){:root{--sv2-top:54px;--sv2-bottom:64px}.sv2-topbar{padding-inline:max(8px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-right))}.sv2-state{display:none}.sv2-zoom input[type=range]{width:90px}.sv2-main.panel-left,.sv2-main.panel-right{grid-template-columns:0 minmax(0,1fr) 0}.sv2-panel.left,.sv2-panel.right,.sv2-panel.floating{position:absolute;z-index:80;inset:auto 8px 8px 8px;width:auto;height:min(70vh,650px);border:1px solid var(--sv2-line);border-radius:15px;box-shadow:0 20px 70px #000c}.sv2-panel .sv2-panel-head{border-radius:15px 15px 0 0}.sv2-score-scroll{padding:18px 14px 78px}.sv2-toolbar{padding-bottom:max(9px,env(safe-area-inset-bottom))}.sv2-guide{grid-template-columns:1fr;height:94vh}.sv2-guide-nav{display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid var(--sv2-line);padding:8px}.sv2-guide-nav button{width:auto;white-space:nowrap}.sv2-guide-content{padding:17px}}
@media(max-width:620px){:root{--sv2-top:52px;--sv2-bottom:62px}.sv2-topbar .hide-phone{display:none}.sv2-title{font-size:14px;padding-inline:3px}.sv2-zoom{display:none}.sv2-toolbar{gap:4px}.sv2-toolbar button{min-width:48px;padding:6px 8px}.sv2-toolbar .family .label{display:none}.sv2-panel.left,.sv2-panel.right,.sv2-panel.floating{inset:0!important;width:100%!important;height:100%!important;border-radius:0;max-width:none;transform:none!important}.sv2-panel .sv2-panel-head{border-radius:0}.sv2-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.sv2-score-scroll{padding:12px 8px 72px}.sv2-score-paper{box-shadow:none}.sv2-mode{display:none}}
@media(prefers-reduced-motion:reduce){.sv2-main,*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.sv2-resize-handle{position:absolute;top:0;bottom:0;width:8px;z-index:4;cursor:ew-resize}.sv2-panel.left .sv2-resize-handle{right:-4px}.sv2-panel.right .sv2-resize-handle{left:-4px}.sv2-panel.floating .sv2-resize-handle{display:none}
.sv2-inspector-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.sv2-inspector-grid label{display:grid;gap:4px;color:var(--sv2-muted);font-size:11px}.sv2-inspector-grid input,.sv2-inspector-grid select{width:100%;min-width:0}.sv2-primary{background:var(--sv2-accent)!important;color:#21180e!important;border-color:var(--sv2-accent)!important;font-weight:700}.sv2-panel [draggable=true]{cursor:grab}.sv2-panel [draggable=true]:active{cursor:grabbing}

.sv2-more-menu{position:absolute;right:10px;top:50px;z-index:120;background:#17171d;border:1px solid var(--sv2-line);border-radius:12px;padding:7px;box-shadow:0 16px 50px #000b;display:grid;min-width:210px;gap:4px}.sv2-more-menu[hidden]{display:none}.sv2-more-menu button{width:100%;text-align:left;min-height:36px}.sv2-more-menu hr{width:100%;border:0;border-top:1px solid var(--sv2-line);margin:4px 0}.sv2-panel-zoom input[type=range]{min-width:120px;flex:1;accent-color:var(--sv2-accent)}
/* Pointer-driven palette drag preview: works on iPad/iPhone where native HTML5 DnD is unreliable. */
.sv2-tool-ghost{position:fixed;z-index:100000;pointer-events:none;max-width:180px;padding:8px 10px;border:1px solid var(--sv2-line);border-radius:10px;background:#202027eF;color:#fff;box-shadow:0 12px 34px #0009;font:600 12px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform:translateZ(0)}
.sv2-panel [draggable=true]{touch-action:none;-webkit-user-select:none;user-select:none}
/* Cross-input palette dragging. Native HTML5 drag/drop is unreliable on iOS/iPadOS,
   so Studio V2 also uses Pointer Events and a lightweight drag ghost. */
.sv2-tool-ghost{position:fixed;z-index:100000;pointer-events:none;max-width:180px;padding:8px 10px;border:1px solid var(--sv2-line);border-radius:10px;background:#202027ef;color:#fff;box-shadow:0 12px 34px #0009;font:600 12px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform:translateZ(0)}
.sv2-panel [draggable=true][data-drag-tool]{touch-action:none;-webkit-user-select:none;user-select:none}

/* Studio V2 marquee selection — rendered over the score without re-engraving. */
.sv2-score-paper{position:relative}
.sv2-marquee{position:absolute;z-index:45;pointer-events:none;border:1px solid currentColor;background:color-mix(in srgb,currentColor 10%,transparent);border-radius:3px;box-sizing:border-box}

/* Studio Academy: action-validated guided practice. */
.sv2-academy-courses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.sv2-academy-courses button{display:grid;gap:6px;text-align:left;padding:14px;border:1px solid var(--sv2-line);border-radius:12px;background:#202027;color:var(--sv2-text)}.sv2-academy-courses span{font-size:12px;color:var(--sv2-muted)}
.sv2-academy-card{position:fixed;z-index:13100;right:18px;top:72px;width:min(360px,calc(100vw - 24px));background:#17171e;border:1px solid #565665;border-radius:14px;padding:14px;box-shadow:0 18px 60px #000c;color:var(--sv2-text)}.sv2-academy-head{display:flex;gap:10px;align-items:center}.sv2-academy-head b{flex:1}.sv2-academy-head button{min-width:34px;min-height:34px;border:1px solid var(--sv2-line);border-radius:8px;background:#202027;color:var(--sv2-text)}.sv2-academy-card h3{margin:12px 0 6px}.sv2-academy-card p{margin:0 0 10px;line-height:1.5;color:#d4d0cb}.sv2-academy-card small{color:var(--sv2-muted)}.sv2-academy-progress{height:6px;background:#2a2a31;border-radius:999px;overflow:hidden;margin:12px 0 7px}.sv2-academy-progress i{display:block;height:100%;background:var(--sv2-accent);border-radius:inherit;transition:width .2s ease}.sv2-academy-wait{font-size:12px;color:var(--sv2-accent);padding-top:4px}.sv2-academy-complete{padding-top:12px}.sv2-academy-complete strong{font-size:17px}.sv2-academy-complete button{min-height:40px;border:1px solid var(--sv2-line);border-radius:9px;background:var(--sv2-accent);color:#21180e;padding:7px 11px;font-weight:700}.sv2-academy-highlight{position:fixed;z-index:13050;border:2px solid var(--sv2-accent);border-radius:10px;pointer-events:none;box-shadow:0 0 0 3px #d8ad5733,0 0 20px #d8ad5755}
@media(max-width:760px){.sv2-academy-courses{grid-template-columns:1fr}.sv2-academy-card{top:auto;right:8px;left:8px;bottom:calc(var(--sv2-bottom) + 8px);width:auto}.sv2-academy-highlight{display:none}}


/* Mobile/tablet Studio V2: bottom-sheet tooling by default, with an explicit
   full-height expansion. This avoids covering the score unnecessarily while
   preserving access to dense Pro controls on small screens. */
.sv2-sheet-toggle{display:none}
@media(max-width:900px){
  .sv2-sheet-toggle{display:inline-flex!important;align-items:center;justify-content:center}
  .sv2-panel [data-dock]{display:none}
  .sv2-panel.left,.sv2-panel.right,.sv2-panel.floating{
    inset:auto max(8px,env(safe-area-inset-right)) calc(var(--sv2-bottom) + 8px) max(8px,env(safe-area-inset-left));
    width:auto!important;height:min(52vh,520px);max-height:calc(100dvh - var(--sv2-top) - var(--sv2-bottom) - 20px);
    border-radius:16px;transform:none!important;
  }
  .sv2-panel.sheet-expanded{
    top:calc(var(--sv2-top) + 6px);bottom:calc(var(--sv2-bottom) + 6px);height:auto;max-height:none;
  }
  .sv2-panel-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
}
@media(max-width:620px){
  .sv2-panel.left,.sv2-panel.right,.sv2-panel.floating{
    inset:auto 6px calc(var(--sv2-bottom) + max(6px,env(safe-area-inset-bottom))) 6px!important;
    width:auto!important;height:min(48vh,460px)!important;max-height:calc(100dvh - var(--sv2-top) - var(--sv2-bottom) - 16px)!important;
    border-radius:16px!important;
  }
  .sv2-panel.sheet-expanded{
    inset:calc(var(--sv2-top) + 4px) 4px calc(var(--sv2-bottom) + 4px) 4px!important;
    height:auto!important;max-height:none!important;border-radius:12px!important;
  }
  .sv2-panel .sv2-panel-head{border-radius:16px 16px 0 0}
  .sv2-panel.sheet-expanded .sv2-panel-head{border-radius:12px 12px 0 0}
}

/* Playback cursor — driven by the audio timeline without re-engraving the score. */
.sv2-playhead{position:absolute;z-index:36;top:0;bottom:0;width:2px;background:var(--sv2-accent);box-shadow:0 0 0 1px #0005,0 0 12px #d8ad5788;pointer-events:none;transform:translateX(-1px)}
.sv2-playhead::before{content:'';position:absolute;top:6px;left:50%;width:10px;height:10px;background:var(--sv2-accent);transform:translate(-50%,-50%) rotate(45deg);border-radius:2px}
.sv2-score-paper [data-note-id].playing .score-head,.sv2-score-paper .score-event.playing .score-head{fill:var(--sv2-accent)!important;stroke:var(--sv2-accent)!important;filter:drop-shadow(0 0 3px #d8ad5788)}

/* Direct navigation by measure: compact on desktop, mirrored in Layout for touch. */
.sv2-measure-nav{display:flex;align-items:center;gap:5px;white-space:nowrap;color:var(--sv2-muted);font-size:12px}
.sv2-measure-nav button{min-width:34px;padding:4px 8px}
.sv2-measure-nav label{display:flex;align-items:center;gap:5px}
.sv2-measure-nav input{width:58px;min-height:34px;border:1px solid var(--sv2-line);border-radius:8px;background:#111116;color:var(--sv2-text);padding:4px 6px;text-align:center}
.sv2-inline-label{display:inline-flex;align-items:center;margin:0}
.sv2-inline-label input{width:72px}

/* Contextual score inspector — mouse right-click / touch long-press. */
.sv2-context-menu{position:fixed;z-index:2147483000;min-width:230px;max-width:min(92vw,340px);padding:10px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(20,18,24,.96);box-shadow:0 18px 55px rgba(0,0,0,.42);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:#fff;display:grid;gap:8px}
.sv2-context-title{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.68;padding:1px 3px}
.sv2-context-row{display:flex;gap:6px;flex-wrap:wrap}
.sv2-context-menu button{min-height:38px;min-width:38px;padding:7px 10px;border-radius:9px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.075);color:inherit;font:inherit;cursor:pointer}
.sv2-context-menu button:hover,.sv2-context-menu button:focus-visible{background:rgba(255,255,255,.16);outline:2px solid currentColor;outline-offset:1px}
.sv2-context-menu button.danger{border-color:rgba(255,110,110,.35)}
@media (pointer:coarse){.sv2-context-menu button{min-height:44px;min-width:44px}.sv2-context-menu{min-width:min(290px,92vw)}}

/* Coarse-pointer ergonomics: tablet/Apple Pencil/touch targets stay comfortably tappable
   without changing the desktop density or the score geometry. */
@media (pointer:coarse){
  .sv2-topbar button,.sv2-toolbar button,.sv2-panel button,.sv2-chip,.sv2-seg button{min-height:44px}
  .sv2-panel-head button{min-width:44px}
  .sv2-row input,.sv2-row select,.sv2-panel input[type=text],.sv2-panel input[type=number],.sv2-panel select,.sv2-panel textarea{min-height:44px}
  .sv2-toolbar{scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .sv2-toolbar::-webkit-scrollbar{display:none}
}

/* V11 performance/UX corrective pass */
.sv2-topbar button.active,.sv2-panel button.active{border-color:var(--sv2-accent)!important;background:#332b1f!important;color:#ffe8a6!important}
.sv2-panel.left,.sv2-panel.right{align-self:stretch;height:auto}
/* V12: the score owns the canvas; one compact row holds only common tools. */
#sv2-root{--sv2-bottom:64px}
.sv2-toolbar{position:relative;overflow:visible;padding:6px 12px;justify-content:center}
.sv2-primary-tools{display:flex;gap:7px;max-width:100%;overflow-x:auto;scrollbar-width:none}
.sv2-primary-tools button{white-space:nowrap;min-width:48px}
.sv2-primary-tools button.active{background:#62461f;color:#fff;border:2px solid #ffcc69;box-shadow:0 0 0 2px #0009;font-weight:750}
.sv2-tool-catalog{position:absolute;bottom:calc(100% + 6px);left:12px;right:12px;z-index:100;background:#1b1a20;border:1px solid #5b5145;border-radius:14px;box-shadow:0 15px 55px #000b;padding:12px;display:flex;gap:7px;flex-wrap:wrap;max-height:48vh;overflow:auto}
.sv2-tool-catalog[hidden]{display:none}.sv2-tool-catalog .sv2-mode{margin-left:auto}
.sv2-score-shell{background:#242226}.sv2-score-scroll{padding:20px 18px 65px}
#sv2-root[data-input-mode=select] [data-staff-input]{cursor:default}
#sv2-root[data-input-mode=note] [data-staff-input],#sv2-root[data-input-mode=rest] [data-staff-input]{cursor:crosshair}
.sv2-status{bottom:10px;max-width:min(85%,560px);text-align:center;border-radius:10px;color:#f4e7cf}
.sv2-action-search{position:absolute;z-index:200;top:calc(var(--sv2-top) + 10px);left:50%;transform:translateX(-50%);width:min(460px,calc(100% - 24px));background:#1b1a20;border:1px solid #776747;border-radius:13px;padding:10px;box-shadow:0 20px 70px #000c}
.sv2-action-search input{width:100%;min-height:46px;padding:8px 12px;background:#101015;color:#fff;border:1px solid #6a6052;border-radius:8px;font:inherit}
.sv2-action-results{display:grid;max-height:320px;overflow:auto;margin-top:7px;color:#dbd2c5}.sv2-action-results button{border:0;border-radius:7px;background:transparent;color:inherit;text-align:left;padding:11px;font:inherit;cursor:pointer}.sv2-action-results button:hover,.sv2-action-results button:focus{background:#413321}
@media(max-width:900px){.sv2-primary-tools{justify-content:flex-start;width:100%}.sv2-tool-catalog .sv2-mode{display:flex}.sv2-panel.left,.sv2-panel.right,.sv2-panel.floating{height:min(43vh,390px)}}
@media(max-width:620px){.sv2-primary-tools button span{display:none}.sv2-toolbar{padding:5px 6px}.sv2-primary-tools{gap:4px}.sv2-primary-tools button{font-size:20px;min-height:48px}.sv2-panel.left,.sv2-panel.right,.sv2-panel.floating{height:min(44vh,400px)!important}.sv2-status{font-size:11px;bottom:5px}}
.sv2-ghost-target[data-kind=rest]{width:13px;height:20px;border-radius:3px;background:#7d5525a8}
.sv2-ghost-target::after{content:attr(data-hint);position:absolute;left:24px;top:-30px;min-width:max-content;max-width:240px;padding:5px 8px;border-radius:7px;background:#211916;color:#fff;font:600 11px system-ui,sans-serif;box-shadow:0 3px 12px #0006}
.sv2-score-paper .sv2-selected-object{stroke:#c24454!important;fill:#c24454!important;filter:drop-shadow(0 0 3px #e75c66)}
/* One compact card per part; controls wrap inside the inspector on phones. */
.sv2-part-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;min-width:0;margin:8px 0;padding:8px;border:1px solid #514b43;border-radius:9px}
.sv2-part-row [data-part-activate]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.sv2-part-settings{grid-column:1/-1;display:grid;grid-template-columns:minmax(110px,1fr) auto auto minmax(76px,1fr);gap:5px;align-items:center;min-width:0}
.sv2-part-settings select,.sv2-part-settings input{min-width:0;max-width:100%}
.sv2-part-buttons{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}
.sv2-part-row button{min-height:42px;min-width:42px}
.sv2-part-row [data-part-activate].active,.sv2-part-settings button.active{border-color:var(--sv2-accent);box-shadow:inset 3px 0 var(--sv2-accent)}
.sv2-part-row button:focus-visible,.sv2-part-row input:focus-visible,.sv2-part-row select:focus-visible{outline:2px solid var(--sv2-accent);outline-offset:2px}
@media(max-width:620px){.sv2-part-row{grid-template-columns:minmax(0,1fr)}.sv2-part-settings{grid-template-columns:minmax(110px,1fr) auto auto}.sv2-part-settings input[type=range]{grid-column:1/-1;min-height:44px}.sv2-part-buttons{justify-content:flex-start}.sv2-part-row button{min-height:44px;min-width:44px}}
.sv2-score-paper [data-direction-id]{cursor:grab}.sv2-score-paper [data-direction-id]:active{cursor:grabbing}
.sv2-score-paper [data-measure-label]{cursor:pointer;paint-order:stroke;stroke:#fffef8;stroke-width:3px}
.sv2-score-paper [data-measure-label]:hover{fill:#bb6337}
.sv2-measure-actions{display:grid;gap:12px}.sv2-measure-actions p{margin:0;color:var(--sv2-muted);font-size:13px}
.sv2-context-menu button:disabled{opacity:.45;cursor:not-allowed}
@media(min-width:901px){
  #sv2-root{grid-template-rows:var(--sv2-top) minmax(0,1fr);grid-template-columns:76px minmax(0,1fr)}
  .sv2-topbar{grid-column:1 / -1;grid-row:1}
  .sv2-main{grid-column:2;grid-row:2}
  .sv2-toolbar{grid-column:1;grid-row:2;display:flex;flex-direction:column;justify-content:flex-start;border-top:0;border-right:1px solid var(--sv2-line);padding:12px 6px;background:#151418}
  .sv2-primary-tools{flex-direction:column;align-items:stretch;overflow:visible;gap:8px}
  .sv2-primary-tools button{width:62px;min-height:56px;padding:5px 2px;display:grid;place-content:center;gap:2px;line-height:1.05;font-size:19px}
  .sv2-primary-tools button span{display:block;font-size:10px;font-weight:650}
  .sv2-tool-catalog{position:fixed;top:calc(var(--sv2-top) + 8px);bottom:auto;left:80px;right:auto;width:min(380px,calc(100vw - 96px));max-height:calc(100vh - var(--sv2-top) - 20px)}
  .sv2-score-scroll{padding:28px 22px 68px}
}
.sv2-mobile-history{display:none!important}
@media(max-width:620px){.sv2-mobile-history{display:inline-grid!important;place-items:center}.sv2-status{max-width:74%;bottom:6px}.sv2-title-wrap{min-width:70px}}
@media(min-width:621px) and (max-width:1200px){.sv2-measure-nav,.sv2-save-indicator{display:none}.sv2-zoom input[type=range]{width:72px}}
.sv2-score-paper .sv2-slur-hit{fill:none;stroke:transparent;stroke-width:18;pointer-events:stroke;cursor:pointer}
.sv2-score-paper .sv2-slur-hit.sv2-selected-object{stroke:transparent!important;filter:none}
.sv2-score-paper path.sv2-selected-object:not(.sv2-slur-hit){fill:none!important;stroke:#c24454!important;stroke-width:2.5!important}
.sv2-slur-handle{position:absolute;z-index:55;width:17px;height:17px;border:2px solid #fff;background:#ae4b4b;box-shadow:0 0 0 2px #533;border-radius:50%;transform:translate(-50%,-50%);cursor:ns-resize;touch-action:none}
.sv2-score-paper [data-staff-select]{cursor:pointer}.sv2-score-paper .score-staff-select{fill:#746655;font:18px system-ui,sans-serif}.sv2-score-paper [data-staff-select]:hover{fill:#a67237}
#sv2-root[data-tool-mode=slur] [data-note-id],#sv2-root[data-tool-mode=hairpin] [data-note-id],#sv2-root[data-tool-mode=glissando] [data-note-id]{cursor:crosshair}
.sv2-direction-handle{position:absolute;z-index:56;width:18px;height:18px;transform:translate(-50%,-50%);border-radius:6px;background:#ad7040;border:2px solid white;box-shadow:0 0 0 2px #624529;cursor:ew-resize;touch-action:none}
.sv2-quick-help{position:absolute;z-index:150;right:10px;top:calc(var(--sv2-top) + 8px);width:min(310px,calc(100vw - 20px));background:#252024;color:#f7eee5;border:1px solid #806842;border-radius:13px;padding:16px;box-shadow:0 16px 50px #0009;font-size:13px;line-height:1.5}.sv2-quick-help button{float:right;border:0;background:transparent;color:inherit;font-size:22px;cursor:pointer}.sv2-quick-help ol{padding-left:20px;margin-bottom:0}.sv2-quick-help li+li{margin-top:7px}
#sv2-root{z-index:20000}.sv2-guide-overlay{z-index:30000}.sv2-tour{z-index:32000}.sv2-tour-highlight{z-index:31999}.sv2-academy-card{z-index:33000}.sv2-academy-highlight{z-index:32999}
#sv2-root button:disabled{opacity:.45;cursor:not-allowed;transform:none!important}
@media(max-width:620px){.sv2-primary-tools [data-input-mode],.sv2-primary-tools #sv2-all-tools{min-width:58px;display:grid;place-content:center;line-height:1.05}.sv2-primary-tools [data-input-mode] span,.sv2-primary-tools #sv2-all-tools span{display:block;font-size:9px;font-weight:700}}

/* Phone: one readable system per line; the same score and commands remain in use. */
.sv2-mobile-measure{display:none}
.sv2-catalog-actions{display:none}
@media(min-width:621px){.sv2-tool-catalog [data-family=expression],.sv2-tool-catalog [data-family=text]{display:none}}
@media(max-width:620px){
  #sv2-root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);--sv2-top:56px;--sv2-bottom:calc(76px + env(safe-area-inset-bottom,0px));width:100%;height:100%;height:100dvh;overflow:hidden}
  .sv2-topbar{gap:6px;padding:5px 8px;min-width:0;max-width:100%;box-sizing:border-box}
  .sv2-topbar .sv2-icon{width:44px;min-width:44px;height:44px;padding:0!important;flex:none}
  .sv2-title-wrap{flex:1 1 0;min-width:0;overflow:hidden}
  .sv2-title{box-sizing:border-box;width:100%;min-width:0;text-overflow:ellipsis;font-size:14px}
  .sv2-title-wrap{display:flex;flex-direction:column;justify-content:center;min-height:0}
  .sv2-title{height:23px;padding:0 3px}
  .sv2-mobile-save{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 3px;color:#d8cfbd;font-size:10px;line-height:14px}
  .sv2-mobile-save[data-state=offline]{color:#ffd0d2}
  .sv2-topbar #sv2-actions,.sv2-topbar [data-action=help],.sv2-topbar #sv2-more{display:none}
  .sv2-more-menu{top:calc(env(safe-area-inset-top,0px) + var(--sv2-top));right:8px}
  .sv2-score-shell{display:flex;flex-direction:column;min-height:0}
  .sv2-mobile-measure{height:48px;min-height:48px;display:flex;justify-content:space-between;align-items:center;padding:0 12px;background:#242226;border-bottom:1px solid #454046;font-size:14px;font-weight:650}
  .sv2-mobile-measure button{width:44px;height:44px;border:0;background:transparent;color:#fff;font:32px/1 system-ui;touch-action:manipulation}
  .sv2-mobile-measure span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
  .sv2-mobile-measure [data-mobile-zoom]{width:auto;min-width:82px;padding:0 7px;font-size:12px;font-weight:700;border:1px solid #5c514c;border-radius:10px;background:#332b25;flex:none}
  .sv2-mobile-measure button:disabled{opacity:.3}
  .sv2-score-scroll{position:relative;inset:auto;flex:1;min-height:0;box-sizing:border-box;width:100%;padding:8px 8px 54px;scrollbar-gutter:auto;background:#302e30}
  .sv2-score-stage{min-width:0;margin:0 auto}
  .sv2-score-paper{min-height:0;max-width:none;box-shadow:0 2px 16px #0006}
  .sv2-score-paper svg{width:100%;height:auto}
  .sv2-toolbar{box-sizing:border-box;width:100%;min-width:0;height:var(--sv2-bottom);padding:6px 6px max(6px,env(safe-area-inset-bottom,0px));overflow:visible}
  .sv2-primary-tools{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;width:100%;max-width:none;overflow:visible}
  .sv2-primary-tools button,.sv2-primary-tools [data-input-mode],.sv2-primary-tools #sv2-all-tools{box-sizing:border-box;width:100%;min-width:0;height:58px;min-height:58px;padding:2px 0;font-size:22px;border-radius:12px;touch-action:manipulation}
  .sv2-primary-tools button span,.sv2-primary-tools [data-input-mode] span,.sv2-primary-tools #sv2-all-tools span{display:block;font-size:11px;line-height:1.15}
  .sv2-primary-tools .sv2-mobile-history,.sv2-primary-tools [data-family=expression],.sv2-primary-tools [data-family=text]{display:none!important}
  .sv2-catalog-actions{display:block}
  .sv2-tool-catalog{box-sizing:border-box;bottom:calc(100% + 4px);left:6px;right:6px;max-height:min(58vh,480px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;overscroll-behavior:contain}
  .sv2-tool-catalog button{min-height:48px;text-align:left;white-space:normal}
  .sv2-tool-catalog .sv2-mode{grid-column:1/-1;margin-left:0}
  .sv2-more-menu [data-quick=fitPage]{display:none}
  .sv2-panel.left,.sv2-panel.right,.sv2-panel.floating{bottom:calc(var(--sv2-bottom) + 6px)!important;height:min(44vh,400px)!important;max-height:calc(100dvh - var(--sv2-top) - var(--sv2-bottom) - env(safe-area-inset-top,0px) - 12px)!important}
  .sv2-panel[data-family=selection]:not(.sheet-expanded){height:64px!important}
  .sv2-panel[data-family=selection]:not(.sheet-expanded) .sv2-panel-body{display:none}
  .sv2-panel.sheet-expanded{top:auto!important;bottom:calc(var(--sv2-bottom) + 4px)!important;height:min(56vh,520px)!important;max-height:calc(100dvh - var(--sv2-top) - var(--sv2-bottom) - env(safe-area-inset-top,0px) - 12px)!important}
  .sv2-status{left:50%;bottom:7px;max-width:calc(100% - 28px);font-size:11px;line-height:1.2;padding:6px 9px;white-space:normal}
  .sv2-quick-help{top:calc(var(--sv2-top) + env(safe-area-inset-top,0px) + 8px)}
}
/* V12.14r — score title: visible keyboard focus and a 44 px touch height on phones */
.sv2-title:focus-visible{outline:2px solid #d4af37;outline-offset:1px;border-radius:6px}
@media (max-width:760px){.sv2-title{min-height:44px}}
/* V12.14r — the top bar (backdrop-filter) forms its own stacking context; without a z-index the score
   below it covered the lower items of the "⋯" menu, and clicks landed on the staff instead. */
.sv2-topbar{position:relative;z-index:30}
.sv2-more-menu button{min-height:44px}
/* V12.14s — phone gestures. One finger pans the score, two fingers zoom it (handled by the Studio, not by
   the browser, so the page itself never zooms or slides under the Studio). A note is written only on a real
   tap; a selected note is dragged without moving the page. */
html:has(body.sv2-open),body.sv2-open{overflow:hidden!important;overscroll-behavior:none}
#sv2-root{overscroll-behavior:none;-webkit-touch-callout:none}
#sv2-root .sv2-score-scroll{touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
#sv2-root .sv2-score-scroll .sv2-selected,#sv2-root .sv2-score-scroll [data-note-id].selected{touch-action:none}
#sv2-root svg text,#sv2-root svg{-webkit-user-select:none;user-select:none}
