:root{--bg:#f7f8f4;--paper:#fff;--ink:#223c32;--muted:#707a72;--line:#dde3d9;--green:#254b3e;--lime:#e2edb2;--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 var(--sans)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #96b275;outline-offset:3px}[hidden]{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;padding:34px 22px;border-right:1px solid var(--line);background:#f0f2eb;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-family:var(--serif);font-size:27px;letter-spacing:-1.1px;line-height:1.2}.brand-type{white-space:nowrap}.brand-room{font-style:italic}.brand-icon{display:block;flex:0 0 auto;width:48px;height:48px}.brand-sub{display:block;font:7px/1.4 var(--sans);letter-spacing:1.45px;margin-top:6px}.nav-label{font-size:9px;letter-spacing:1.7px;color:#7c8579;margin:54px 12px 13px}.nav-item{display:flex;gap:12px;align-items:center;width:100%;border:0;text-align:left;background:none;padding:12px;border-radius:7px;font-size:12px;margin:4px 0;white-space:nowrap}.nav-item>span:first-child{font-size:20px;width:20px;line-height:1}.nav-item.active{background:var(--green);color:white}.nav-item:hover:not(.active){background:#e5e9df}.nav-count{margin-left:auto;font-size:10px;opacity:.8}.next-label{margin-top:32px}.soon{font-size:8px;letter-spacing:.7px;background:#e1e6d9;padding:2px 5px;margin-left:auto;border-radius:4px}.sidebar-bottom{margin-top:auto;padding:25px 12px 0}.small-mark{font-size:32px;color:#79916e}.sidebar-bottom h3{font:23px var(--serif);margin:10px 0}.sidebar-bottom p{font-size:11px;color:var(--muted);line-height:1.9}.local-label{display:flex;gap:7px;align-items:center;border-top:1px solid var(--line);padding-top:21px;font-size:10px;margin-top:30px;color:var(--muted)}.local-label>span{width:6px;height:6px;background:#6e8b5a;border-radius:50%}.sidebar-bottom .text-button{font-size:11px;margin-top:9px}.workspace{margin-left:245px}.topbar{height:74px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 46px;color:var(--muted);font-size:11px}.version{font-size:9px;letter-spacing:1.4px}.version span,.app-footer span span{color:#a7b09e;margin:0 12px}main{max-width:1400px;padding:39px 46px 20px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:35px}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:650;margin:0 0 12px}h1{font:46px/1.2 var(--serif);letter-spacing:-1.5px;margin:0 0 11px}h1>span{color:#8fa56f}.intro{margin:0;color:var(--muted);font-size:13px}.primary,.secondary,.danger{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid transparent;border-radius:6px;padding:11px 17px;white-space:nowrap;font-size:12px;font-weight:550}.primary{background:var(--green);color:#fff}.primary:hover{background:#35624f}.primary>span{font-size:20px;line-height:1}.secondary{background:transparent;border-color:var(--line)}.secondary:hover{background:#edf1e6}.danger{background:#8b3b2e;color:white}.collection-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.tabs{display:flex;gap:25px;border-bottom:1px solid var(--line)}.tabs button{border:0;background:none;font-size:12px;padding:10px 0;color:var(--muted);border-bottom:2px solid transparent}.tabs button.active{color:var(--ink);border-color:var(--ink)}.tabs span{font-size:9px;background:#e8ecdf;border-radius:20px;padding:2px 7px;margin-left:7px}.search{display:flex;align-items:center;gap:9px}.search>span{font-size:25px}.search input{background:transparent;border:0;border-bottom:1px solid var(--line);padding:8px 0;font-size:11px;width:245px;color:var(--ink)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;max-height:350px;overflow:auto;padding:2px 2px 6px}.card{position:relative;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:19px 20px;min-height:163px;transition:background .15s,border-color .15s}.card:hover{border-color:#8ea68c}.card.selected{background:#edf2e5;border-color:#7c9771}.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.card-icon{display:grid;place-items:center;background:#eff0e7;width:32px;height:32px;font-size:22px;border-radius:7px}.card:nth-child(3n+2) .card-icon{background:#f6eadd;color:#8b7555}.card:nth-child(3n) .card-icon{background:#e8edf3;color:#687b90}.card-badge{font-size:8px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}.card h3{font:21px/1.2 var(--serif);margin:0 0 5px;overflow-wrap:anywhere}.card p{font-size:10px;color:var(--muted);margin:0}.card-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:16px;font-size:9px;color:#6b786a}.card-bottom span:last-child{font-size:16px;color:var(--ink)}.reader{margin-top:32px;border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden}.reader-heading{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:23px 25px}.reader-heading .eyebrow{font-size:8px;margin-bottom:6px;color:var(--muted)}.reader-heading h2{font:26px var(--serif);margin:0;overflow-wrap:anywhere}.reader-heading p:last-child{font-size:10px;color:var(--muted);margin:5px 0 0}.reader-actions{display:flex;gap:8px;align-items:center}.reader-actions .secondary{font-size:10px;padding:8px 11px}.icon-button{display:inline-grid;place-items:center;min-width:33px;min-height:33px;border:1px solid var(--line);background:transparent;border-radius:5px;font-size:20px}.score-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 25px;border-block:1px solid var(--line);background:#fbfcf9}.score-tags{display:flex;gap:15px;font-size:10px;color:#667261}.score-tags span+span{padding-left:15px;border-left:1px solid var(--line)}.score-controls{display:flex;gap:20px}.score-controls label{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted)}select{border:1px solid var(--line);border-radius:4px;background:#fff;padding:5px;color:var(--ink);font-size:10px}.paper-scroll{overflow:auto;background:#eef0e9;padding:23px}.paper{margin:auto;min-width:540px;background:white;color:#242e27;padding:23px 32px 17px;box-shadow:0 2px 7px #243d3210}.paper-top,.paper-bottom{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#899084}.paper-top{padding-bottom:9px;border-bottom:1px solid #e6e9e0}.paper-bottom{margin-top:12px;padding-top:13px;border-top:1px solid #e6e9e0;letter-spacing:.2px}#notation{margin-top:14px}#sheet-notes{white-space:pre-wrap;font-size:11px;color:#67705f;margin:15px 5px}.reader-footer{padding:13px 25px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted)}.text-button{border:0;background:none;padding:0;text-align:left;font-size:11px;text-decoration:none;color:var(--green)}.text-button:hover{text-decoration:underline}.transpose-note{padding:11px 25px;background:#edf2e4;font-size:11px;display:flex;justify-content:space-between;gap:12px}.guide-banner{width:100%;border:1px solid var(--line);border-radius:7px;margin-top:25px;padding:21px 25px;background:#edf0e5;display:flex;gap:19px;align-items:center;text-align:left}.banner-icon{font-size:27px;color:#6c8453}.guide-banner strong{display:block;font:18px var(--serif);margin-bottom:4px}.guide-banner strong+span{display:block;font-size:10px;color:var(--muted)}.banner-arrow{margin-left:auto;font-size:22px}.storage-footnote{font-size:10px;color:#78816f;margin-top:18px}.app-footer{max-width:1400px;margin:auto;padding:20px 46px 26px;display:flex;justify-content:space-between;gap:15px;color:#929b8a;font-size:9px}.app-footer a{font-size:8px;letter-spacing:1px;text-decoration:none}.empty-state{text-align:center;padding:30px;border:1px dashed var(--line);border-radius:8px}.empty-state>span{font-size:45px}.empty-state h2{font:26px var(--serif)}.empty-state p{color:var(--muted)}#notice{padding:13px 16px;border:1px solid #c9d5b7;background:#ebf2df;border-radius:6px;margin-bottom:20px;font-size:12px}#notice.error{background:#fff0e9;border-color:#e2c2b3;color:#833d29}.guide-intro{background:#e8eedf;padding:35px;border-radius:9px}.guide-intro h2{font:38px/1.25 var(--serif);margin:8px 0 15px}.guide-intro>p:last-child{max-width:530px;color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin:32px 0}.steps article{border-top:1px solid var(--line);padding-top:20px}.steps article>span{font:30px var(--serif);color:#94a77f}.steps h3,.guide-details h3{font:22px var(--serif)}.steps p,.guide-details p{font-size:12px;color:var(--muted)}.guide-details{display:grid;grid-template-columns:1fr 1fr;gap:35px;padding:25px;border:1px solid var(--line);border-radius:9px}.guide-details a{font-size:11px}.guide-details button{margin-top:10px}.audio-view{text-align:center;max-width:600px;margin:60px auto 140px}.audio-symbol{font-size:90px;color:#79916e}.audio-view h2{font:48px var(--serif);margin:10px}.audio-view>p{color:var(--muted)}dialog{border:1px solid var(--line);border-radius:13px;padding:32px;max-width:600px;width:calc(100% - 30px);max-height:90vh;color:var(--ink);background:var(--bg);box-shadow:0 25px 90px #15291d35}dialog::backdrop{background:#1c2a235e;backdrop-filter:blur(3px)}dialog h2{font:32px var(--serif);margin:5px 0 12px}dialog>p{font-size:12px;color:var(--muted)}.dialog-close{position:absolute;right:15px;top:15px}.dialog-close button{border:0}.dropzone{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;border:1px dashed #98ac87;border-radius:7px;padding:22px;margin-top:24px;background:#edf2e7;cursor:pointer}.dropzone.dragover{background:#dfeccb}.dropzone>span:first-child{font-size:27px}.dropzone>span:last-of-type{font-size:10px;color:var(--muted)}.dropzone strong{font-size:13px}.dropzone input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.dropzone:focus-within{outline:3px solid #96b275}.or-divider{text-align:center;font-size:8px;letter-spacing:1.5px;color:var(--muted);margin:20px}textarea{width:100%;min-height:125px;resize:vertical;border:1px solid var(--line);border-radius:6px;padding:14px;background:white;font:11px/1.7 ui-monospace,monospace}.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:23px}.import-feedback{white-space:pre-wrap;font-size:12px;overflow-wrap:anywhere}.import-feedback.error{color:#9c3929}pre{background:#edf0e7;padding:18px;overflow:auto;max-height:55vh;font-size:11px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-50px;left:260px;background:white;padding:10px;z-index:5}.skip:focus{top:5px}@media(min-width:1500px){main{padding-top:50px}.paper-scroll{padding:30px 65px}.cards{gap:20px}.card{min-height:174px}}@media(max-width:1100px){.brand{font-size:25px;gap:9px}.brand-icon{width:42px;height:42px}.sidebar{width:210px;padding:30px 15px}.workspace{margin-left:210px}main{padding:30px 26px 15px}.topbar{padding:0 26px}.app-footer{padding-inline:26px}.page-heading h1{font-size:39px}.score-toolbar{flex-wrap:wrap}.reader-heading{padding:20px}.reader-actions{gap:5px}.paper-scroll{padding:18px}.card{padding:15px}.card h3{font-size:19px}}@media(max-width:760px){.sidebar{position:static;width:auto;padding:18px 20px 10px;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:25px}.brand-icon{width:42px;height:42px}.sidebar nav{display:flex;overflow:auto;gap:7px;margin-top:18px}.nav-item{width:auto;padding:8px 11px;font-size:11px;flex-shrink:0}.nav-item>span:first-child{font-size:17px}.nav-count,.nav-label,.sidebar-bottom,.sidebar>.nav-item{display:none}.workspace{margin-left:0}.topbar{display:none}main{padding:27px 18px 10px}.page-heading{align-items:flex-start;flex-direction:column;gap:19px;margin-bottom:23px}.page-heading h1{font-size:39px}.page-heading .primary{width:100%}.collection-toolbar{flex-direction:column;align-items:stretch;gap:12px}.tabs{justify-content:flex-start}.search input{width:100%}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:360px}.card{min-height:150px;padding:14px}.card h3{font-size:19px}.card-top{margin-bottom:12px}.reader{margin-top:24px}.reader-heading{align-items:flex-start;flex-direction:column;padding:18px}.reader-heading h2{font-size:25px}.reader-actions{width:100%}.reader-actions #delete-score{margin-left:auto}.score-toolbar{padding:12px 18px;gap:13px}.score-controls{gap:12px}.paper-scroll{padding:12px}.paper{padding:18px;min-width:530px}.reader-footer{padding:12px;gap:12px}.guide-banner{padding:18px 14px;gap:12px}.guide-banner strong{font-size:18px}.guide-banner strong+span{font-size:11px}.app-footer{padding:20px 18px;font-size:8px}.version{display:none}.steps{grid-template-columns:1fr;gap:15px}.guide-details{grid-template-columns:1fr;gap:12px}.guide-intro{padding:25px}.guide-intro h2{font-size:32px}.transpose-note{flex-direction:column}.skip{left:20px}.audio-view{margin:30px auto 60px}dialog{padding:25px 20px}}@media print{body{background:white}.sidebar,.topbar,.page-heading,.collection-toolbar,.cards,.guide-banner,.storage-footnote,.app-footer,.reader-heading,.score-toolbar,.reader-footer,.transpose-note,#notice,.skip,dialog,#guide-view,#audio-view{display:none!important}.workspace{margin:0}main{max-width:none;margin:0;padding:0}.reader{display:block!important;border:0;margin:0}.paper-scroll{overflow:visible;padding:0;background:white}.paper{width:100%!important;min-width:0;padding:0;box-shadow:none}#notation>div{break-inside:avoid}.paper-top{margin-bottom:10px}.paper-bottom{margin-top:10px}@page{size:A4;margin:16mm}}

.mobile-backup{display:none}@media(max-width:760px){.mobile-backup{display:block;margin-top:20px}}@media print{.mobile-backup{display:none!important}}

/* Archive and sheet are separate routes; entries stay compact at every size. */
.cards.archive-list{display:flex;flex-direction:column;gap:8px;max-height:none;overflow:visible;padding:0}
.archive-list .card{display:grid;grid-template-columns:36px minmax(0,1fr) auto 18px;align-items:center;gap:17px;min-height:78px;padding:14px 18px;text-decoration:none;background:var(--paper)}
.archive-list .card:hover{background:#edf2e5;border-color:#8ea68c}
.archive-list .card-icon{width:34px;height:38px;font-size:25px}
.archive-list .card h3{font:20px/1.3 var(--serif);margin:0 0 3px}
.archive-list .card p{font-size:11px;margin:0;overflow-wrap:anywhere}
.card-details{display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.card-meta{font-size:11px;color:var(--muted)}
.card-arrow{font-size:18px}
.score-navigation{display:flex;align-items:center;justify-content:space-between;margin:0 0 20px;gap:12px}
.score-navigation a{font-size:12px;text-decoration:none;padding:7px 0}
.score-navigation a:hover{text-decoration:underline}
.score-navigation>span{font-size:9px;letter-spacing:1.5px;color:var(--muted)}
#score-view .reader{margin-top:0}
.reader-heading #reader-title{font:30px/1.25 var(--serif);letter-spacing:-.5px;margin:0;overflow-wrap:anywhere}
#reader-title:focus,#page-title:focus{outline:none}
@media(max-width:760px){
 .archive-list .card{grid-template-columns:30px minmax(0,1fr) 16px;gap:0 11px;min-height:86px;padding:12px}
 .archive-list .card-icon{grid-column:1;grid-row:1/3;width:29px;height:34px;font-size:23px}
 .archive-list .card-info{grid-column:2;grid-row:1}
 .archive-list .card h3{font-size:19px}
 .archive-list .card p{font-size:10px}
 .card-details{grid-column:2;grid-row:2;flex-direction:row;flex-wrap:wrap;align-items:center;gap:5px 10px;margin-top:6px}
 .card-meta{font-size:10px}
 .archive-list .card-badge{font-size:7px}
 .card-arrow{grid-column:3;grid-row:1/3}
 .reader-heading #reader-title{font-size:27px}
 .score-navigation{margin-bottom:14px}
}
@media print{.score-navigation,#archive-view{display:none!important}}

.voices-toolbar{display:flex;align-items:center;gap:16px;padding:14px 25px;border-top:1px solid var(--line);background:#f5f8ef}
.voices-toolbar label{display:flex;align-items:center;gap:10px;font-size:11px}
.voices-toolbar select{max-width:330px;font-size:12px;padding:7px 10px}
#voice-count{font-size:10px;color:var(--muted)}
.voices-toolbar .secondary{margin-left:auto;padding:7px 12px;font-size:11px;background:white}
@media(max-width:760px){.voices-toolbar{padding:12px 18px;flex-wrap:wrap;gap:10px}.voices-toolbar label{flex:1 1 100%}.voices-toolbar select{min-width:0;max-width:100%;flex:1}.voices-toolbar .secondary{font-size:10px}}
@media print{.voices-toolbar{display:none!important}}

.copy-field{display:flex;flex-direction:column;gap:7px;margin:18px 0;font-size:12px}.copy-field input{width:100%;padding:11px 12px;background:white;border:1px solid var(--line);border-radius:6px;color:var(--ink);font:inherit}.copy-hint{font-size:11px;color:var(--muted)}

.reader-actions{flex-wrap:wrap}#pdf-dialog .dialog-actions a{text-decoration:none;text-align:center}@media(max-width:420px){#pdf-dialog .dialog-actions{align-items:stretch;flex-direction:column}}

.pitch-context-summary{padding:8px 25px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);line-height:1.6}.pitch-context-summary p{margin:6px 0}.pitch-context-summary strong{color:var(--ink)}
.pitch-context-group{margin:18px 0;padding:12px 16px;border:1px solid var(--line);border-radius:8px}.pitch-context-group legend{font-weight:bold}.pitch-context-group .copy-field{margin:12px 0}.pitch-context-group select{padding:9px;width:100%;background:white;border:1px solid var(--line);border-radius:6px;color:var(--ink)}
@media print{.pitch-context-summary{display:none!important}}

/* Compact score workspace: every action stays directly available. */
@media screen {
 .score-mode .topbar{display:none}
 .score-mode main{padding-top:16px}
 .score-mode #notice{padding:7px 12px;margin-bottom:10px}
 #score-view .reader-heading{display:flex;flex-wrap:wrap;flex-direction:row;align-items:center;gap:10px 20px;padding:12px 14px}
 .score-titlebar{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1 350px}
 #back-to-library{font-size:11px;white-space:nowrap;text-decoration:none;min-height:34px;display:inline-flex;align-items:center}
 #back-to-library:hover{text-decoration:underline}
 #score-view #reader-title{font:22px/1.25 var(--serif);letter-spacing:-.3px;flex:1;min-width:0;margin:0}
 .score-titlebar #favorite{flex-shrink:0}
 #score-view .reader-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:auto;flex:0 1 auto}
 #score-view .reader-actions .secondary,#score-view .score-options .secondary{font-size:11px;padding:7px 10px;min-height:34px;line-height:1.4}
 #score-view .reader-actions #delete-score{margin-left:4px}
 #score-view #save-transposed{border-color:#b7c7ad;background:#eff4e8}
 .score-options{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:9px 14px;border-top:1px solid var(--line);background:#f5f8ef}
 .voice-control{display:flex;align-items:center;gap:6px;flex:1 1 240px;min-width:0}
 .voice-control select{width:0;flex:1;min-width:80px}
 .score-options select{height:34px;padding:5px 7px;font-size:11px;max-width:100%}
 .compact-control{display:flex;align-items:center;gap:7px;font-size:11px;white-space:nowrap}
 .score-status{display:flex;align-items:center;flex-wrap:wrap;gap:4px 16px;padding:5px 14px;border-bottom:1px solid var(--line);font-size:10px;min-height:28px}
 .score-status .score-tags{gap:10px}
 .score-status .score-tags span+span{padding-left:10px}
 #transpose-note{margin-left:auto;color:var(--green);font-weight:600}
 #score-view .paper-scroll{padding:10px;background:#eef0e9}
 #score-view .paper{padding:10px 16px 14px}
 #score-view .paper-top{display:none}
 #score-view #notation{margin-top:0}
 #score-view .reader-footer{padding:9px 14px}
}
@media screen and (max-width:1100px) {
 .score-mode .sidebar{position:static;width:auto;padding:9px 16px;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;border-right:0;border-bottom:1px solid var(--line)}
 .score-mode .sidebar .brand{font-size:22px;gap:8px}
 .score-mode .sidebar .brand-icon{width:34px;height:34px}
 .score-mode .brand-sub,.score-mode .nav-label,.score-mode .sidebar-bottom,.score-mode .sidebar>.nav-item,.score-mode .nav-count{display:none}
 .score-mode .sidebar nav{display:flex;gap:4px;margin:0;overflow:visible}
 .score-mode .nav-item{width:auto;padding:7px 10px;gap:7px;font-size:11px;margin:0;min-height:36px}
 .score-mode .nav-item>span:first-child{font-size:17px;width:auto}
 .score-mode .workspace{margin-left:0}
 .score-mode main{padding:10px 12px}
 .score-mode .reader-heading{gap:8px}
}
@media screen and (max-width:600px) {
 #score-view .reader-heading{padding:9px 10px;gap:8px}
 .score-titlebar{gap:8px;flex-basis:100%}
 #score-view #reader-title{font-size:20px}
 #score-view .reader-actions{width:100%;gap:5px}
 #score-view .reader-actions .secondary{padding:7px 8px}
 #score-view .reader-actions #delete-score{margin-left:auto}
 .score-options{padding:8px 10px;gap:7px 14px}
 .voice-control{flex-basis:100%}
 .compact-control:last-child{margin-left:auto}
 .score-status{padding:5px 10px}
 #score-view .paper-scroll{padding:6px}
 #score-view .paper{padding:8px 10px 12px}
}
@media screen and (max-width:480px) {
 .score-mode .sidebar{padding:7px 10px;gap:5px}
 .score-mode .brand-type{display:none}
 .score-mode .sidebar .brand-icon{width:30px;height:30px}
 .score-mode .nav-item{padding:7px 8px;gap:5px;font-size:10px}
 .score-mode main{padding:8px 6px}
}
@media print{.score-options,.score-status{display:none!important}#score-view .paper{zoom:1!important}}

/* Keep the existing score/voice switch visible as a named view control. */
@media screen{.voice-control .view-label{font-size:11px;font-weight:650;white-space:nowrap}.voice-control select{border-color:#a8bb9c;background:#fff;font-size:12px}}

/* Local media library and shared practice player. */
.media-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:18px}.media-toolbar .search{margin-left:auto}.media-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:28px}.media-folders{border-right:1px solid var(--line);padding-right:16px}.media-folders .eyebrow{color:var(--muted);margin:6px 0 14px}.folder-button{display:block;width:100%;text-align:left;overflow-wrap:anywhere;border:0;border-radius:5px;background:transparent;padding:10px;color:var(--muted);font-size:12px}.folder-button.active{background:#e8eedf;color:var(--green);font-weight:600}.folder-button:hover{background:#edf2e5}.media-content{min-width:0}.media-location{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.media-location h2{font:26px var(--serif);margin:0;overflow-wrap:anywhere}.media-track{display:flex;align-items:center;gap:13px;padding:17px 4px;border-bottom:1px solid var(--line)}.media-track.active>.icon-button{background:var(--green);color:white}.media-track-info{flex:1;min-width:0}.media-track h3{font:21px var(--serif);margin:0 0 5px;overflow-wrap:anywhere}.media-track p{font-size:10px;color:var(--muted);margin:0}.media-track-actions{display:flex;gap:14px;flex-wrap:wrap}.media-score-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px}.media-score-links a{font-size:10px}.media-track .icon-button{font-size:13px;flex-shrink:0}#media-feedback{font-size:12px;white-space:pre-wrap}#media-feedback.error{color:#9c3929}#score-player{padding:8px 14px;border-bottom:1px solid var(--line);background:#fbfcf9}#media-player{margin-bottom:14px}.practice-player{padding:16px;border:1px solid #d5dfca;border-radius:8px;background:#edf2e5;font-size:12px}.practice-player button,.practice-player select{font:inherit}.practice-player button{padding:7px 10px;border:1px solid #c7d3bb;background:#fff;border-radius:5px;color:var(--green);min-height:34px}.practice-player input[type=range]{accent-color:var(--green);max-width:100%;min-width:70px}.practice-player label{font-size:11px}.practice-player input[type=checkbox]{accent-color:var(--green)}.practice-compact{padding:7px 10px;font-size:11px;background:transparent;border:0}.practice-title{font-weight:600;overflow-wrap:anywhere}.practice-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.practice-timeline{display:flex;align-items:center;gap:10px}.practice-timeline input{flex:1}.practice-settings{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.practice-shortcut{font-size:10px;color:var(--muted)}
@media(max-width:760px){.media-layout{grid-template-columns:1fr;gap:18px}.media-folders{border-right:0;border-bottom:1px solid var(--line);padding:0 0 10px}#folder-tree{display:flex;gap:5px;flex-wrap:wrap}.folder-button{width:auto;max-width:100%}.media-toolbar .search{margin-left:0;width:100%}.media-track-actions{flex-direction:column;gap:10px}.media-track h3{font-size:19px}.score-mode .sidebar nav{overflow:auto;min-width:0}.score-mode .sidebar .brand{flex-shrink:0}}
@media print{#score-player{display:none!important}}
.practice-title{font-size:12px;margin-bottom:9px}.practice-controls .practice-seek{flex:1;width:120px}.practice-time{font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}.practice-settings{margin-top:10px}.practice-settings label{display:inline-flex;align-items:center;gap:7px}.practice-settings input[type=range]{width:105px}.practice-shortcut-toggle{margin-left:auto;color:var(--muted);font-size:10px!important}.practice-pitch-note{font-size:10px;color:var(--muted)}.practice-error{color:#9c3929;margin-top:8px}.practice-compact .practice-title{font-size:11px;margin-bottom:6px}.practice-compact .practice-settings{margin-top:5px}.practice-compact button{font-size:11px;padding:5px 8px;min-height:30px}
@media(max-width:600px){.practice-shortcut-toggle{margin-left:0}.practice-controls{gap:7px}.practice-controls .practice-seek{min-width:80px}.practice-settings{gap:8px 14px}.practice-settings input[type=range]{width:85px}.practice-player{padding:12px}.practice-compact{padding:2px}}

/* Score zoom controls: compact buttons with a visible non-default level. */
@media screen {
 .zoom-control{gap:4px}
 .zoom-control>span{margin-right:3px}
 .zoom-button{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:34px;padding:0 6px;border:1px solid #b6c5ac;border-radius:4px;background:#fff;color:var(--ink);font-size:16px;line-height:1}
 .zoom-button:hover:not(:disabled){background:#e7efe0}
 .zoom-button:disabled{opacity:.45;cursor:default}
 .zoom-reset{min-width:46px;font-size:11px;font-weight:600}
 #zoom-value{min-width:39px;text-align:center;font-size:11px;font-variant-numeric:tabular-nums}
}

/* Adding an alternative voice to the same shared score. */
.voice-methods{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.voice-methods button{flex:1;white-space:normal}.voice-methods button[aria-pressed="true"]{background:#e1ead8;border-color:#718969}.derive-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.copy-field select{width:100%;padding:11px 12px;background:white;border:1px solid var(--line);border-radius:6px;color:var(--ink);font:inherit}#add-voice-dialog .dialog-actions{flex-wrap:wrap} @media(max-width:500px){.derive-row{grid-template-columns:1fr;gap:0}.voice-methods{flex-direction:column}.compact-control select{max-width:210px}}

#edit-voice-dialog .dialog-actions{flex-wrap:wrap}@media screen and (max-width:600px){.voice-control{flex-wrap:wrap}.voice-control select{flex-basis:calc(100% - 65px)}.voice-control #add-voice{margin-left:auto}}

#archive-loading{font-size:12px;color:var(--muted);margin:0 0 18px}
@media print{#archive-loading{display:none!important}}

/* A reserved bottom dock keeps the last notes reachable above the controls. */
@media screen {
 body.score-mode{padding-bottom:var(--score-scroll-height, 88px)}
 .score-scroll{position:fixed;z-index:10;left:245px;right:0;bottom:0;display:flex;align-items:center;gap:18px;padding:10px max(16px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) 16px;background:#f7f8f4;border-top:1px solid #c8d3be;box-shadow:0 -3px 16px #223c3210}
 .scroll-step-label{display:flex;align-items:center;gap:9px;font-size:12px;white-space:nowrap}
 #scroll-step{min-height:44px;max-width:150px;padding:7px;border:1px solid #b6c5ac;border-radius:5px;background:#fff;color:var(--ink);font-size:12px}
 .scroll-hint{font-size:11px;color:var(--muted)}
 .scroll-buttons{display:flex;gap:14px;margin-left:auto}
 .scroll-buttons button{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;flex-shrink:0;border:1px solid #b6c5ac;border-radius:8px;background:white;color:var(--green);font-size:23px;touch-action:manipulation}
 .scroll-buttons button:last-child{background:var(--green);color:white;border-color:var(--green)}
 .scroll-buttons button:hover{filter:brightness(.95)}
 .scroll-buttons button:active{transform:translateY(1px)}
}
@media screen and (max-width:1100px){.score-scroll{left:0}}
@media screen and (max-width:700px){.scroll-hint{display:none}.score-scroll{gap:10px}.scroll-step-label{flex-direction:column;align-items:flex-start;gap:2px;font-size:10px}#scroll-step{font-size:11px}}
@media print{.score-scroll{display:none!important}}

/* Storage location on score and media entries. */
.origin-tag{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:2px 7px;border:1px solid transparent;border-radius:999px;font-size:10px;font-weight:650;line-height:1.4;white-space:nowrap;letter-spacing:0}
.origin-server{background:#e5f0e5;border-color:#a9c8ae;color:#245333}
.origin-local{background:#f2eee5;border-color:#d8cbb6;color:#594931}
.media-track-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 9px;margin-bottom:5px}
.media-track-heading h3{margin:0}
#score-storage{flex:none}
@media(max-width:760px){.archive-list .origin-tag{font-size:9px}}

.practice-heading{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-bottom:9px}
.practice-heading .practice-title{margin:0}
.practice-compact .practice-heading{margin-bottom:6px}

/* Mobile score hierarchy: keep title, voice and zoom close to the notation. */
.reader-tools{flex:1 0 100%;min-width:0}
.reader-tools>summary{display:none}
.tools-options{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 0 0;border-top:1px solid var(--line)}
.tools-options .score-status{flex:1 1 100%;padding:3px 0;border:0;min-height:0}
#score-view .paper-scroll{touch-action:pan-x pan-y;overflow-anchor:none}
#score-view .paper,#score-view #notation,#score-view #sheet-notes{user-select:none;-webkit-user-select:none}
#score-storage{max-width:100%;white-space:normal;overflow-wrap:anywhere}
@media screen and (max-width:600px), screen and (max-width:1100px) and (max-height:500px){
 .reader{min-width:0}
 #score-view .reader-heading{display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:7px 9px}
 .score-titlebar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 7px;align-items:center;width:100%;flex-basis:auto}
 #back-to-library{grid-column:1;grid-row:1;min-height:44px;padding-right:4px}
 #score-view #reader-title{grid-column:2;grid-row:1;min-width:0;font-size:19px;line-height:1.15;overflow-wrap:anywhere;word-break:normal}
 #score-storage{grid-column:2;grid-row:2;justify-self:start;font-size:9px;max-width:100%}
 .score-titlebar #favorite{grid-column:3;grid-row:1 / span 2;min-width:44px;min-height:44px}
 .reader-tools{width:100%;border-top:1px solid var(--line)}
 .reader-tools>summary{display:flex;align-items:center;min-height:44px;cursor:pointer;list-style:none;font-size:12px;font-weight:600;color:var(--green)}
 .reader-tools>summary::-webkit-details-marker{display:none}
 .reader-tools>summary::after{content:'＋';margin-left:auto;font-size:17px}
 .reader-tools[open]>summary::after{content:'−'}
 .reader-actions{width:100%;padding:0 0 8px;gap:6px}
 #score-view .reader-actions .secondary,#score-view .reader-actions .icon-button,.tools-options>.secondary{min-height:44px;padding:8px 10px}
 .tools-options{gap:6px;padding:2px 0 8px}
 .tools-options .compact-control,.tools-options>.text-button{min-height:44px;padding-inline:8px}
 .tools-options .score-status{padding:5px 8px;gap:4px 10px}
 .tools-options .score-tags{flex-wrap:wrap;gap:4px 8px}
 .tools-options .score-tags span+span{padding-left:8px}
 .score-options{display:flex;align-items:center;flex-wrap:nowrap;gap:8px;padding:5px 8px}
 .voice-control{flex:1 1 auto;flex-wrap:nowrap;min-width:0}
 .voice-control .view-label{font-size:10px!important}
 .voice-control select{min-width:0;width:0;flex:1;height:44px;font-size:11px}
 .zoom-control{flex:0 0 auto;margin-left:0!important;gap:3px}
 .zoom-control>span{font-size:10px}
 .zoom-button{min-width:44px;height:44px;padding:0 8px}
 #zoom-value{min-width:38px;font-size:11px}
 .score-scroll{left:0;right:0;gap:8px;padding:6px max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
 .scroll-step-label{flex-direction:row;align-items:center;gap:5px;min-width:0;font-size:10px;white-space:nowrap}
 #scroll-step{width:105px;min-height:44px;font-size:10px}
 .scroll-buttons{gap:8px}
 .scroll-buttons button{width:48px;height:48px}
 .score-mode main,.score-mode .workspace{min-width:0;max-width:100%;overflow-x:clip}
 #score-view .paper-scroll{max-width:100%;padding:5px}
}
@media screen and (max-width:360px){
 .score-titlebar{grid-template-columns:auto minmax(0,1fr) 42px;gap:3px 5px}
 #back-to-library{font-size:10px}
 #score-view #reader-title{font-size:17px}
 .score-options{gap:5px;padding-inline:5px}
 .zoom-control>span{display:none}
 .zoom-button{min-width:42px}
 #scroll-step{width:88px}
 .scroll-buttons{gap:5px}
 .scroll-buttons button{width:44px;height:44px}
}

/* Compact player: playback stays visible, secondary settings open on demand. */
.practice-options>summary{display:none}
@media screen and (max-width:600px), screen and (max-width:1100px) and (max-height:500px){
 .score-mode main{padding:6px}
 #score-view .reader{margin-top:0}
 .score-mode .sidebar nav{overflow-x:auto;min-width:0}
 .score-mode .nav-item{flex-shrink:0}
 .reader-tools>summary:focus-visible,.practice-options>summary:focus-visible{outline:3px solid #96b275;outline-offset:2px}
 .practice-options>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;font-size:11px;cursor:pointer;list-style:none}
 .practice-options>summary::-webkit-details-marker{display:none}
 .practice-options>summary::after{content:'＋';font-size:17px}
 .practice-options[open]>summary::after{content:'−'}
 .practice-controls{gap:5px}
 .practice-controls .practice-button{min-height:44px}
 .practice-controls .practice-restart{width:44px;min-width:44px;font-size:0;padding:0}
 .practice-controls .practice-restart::after{content:'↺';font-size:23px}
 .practice-controls .practice-seek{min-width:40px;width:70px}
 .practice-controls .practice-time{font-size:10px}
 #score-player{padding:5px 8px}
 .practice-compact .practice-heading{margin-bottom:3px}
 .practice-settings{gap:7px 12px;padding-bottom:7px}
 .practice-settings label{min-height:36px}
 .practice-settings select{min-height:40px}
 .tools-options .compact-control{flex-wrap:wrap;white-space:normal;max-width:100%}
 .tools-options select{min-width:0;max-width:100%;min-height:44px}
 .reader-footer{flex-wrap:wrap;overflow-wrap:anywhere}
 dialog input:not([type=checkbox]):not([type=range]),dialog textarea,dialog select{font-size:16px}
 .dialog-actions{flex-wrap:wrap}
}

@media screen and (max-width:600px), screen and (max-width:1100px) and (max-height:500px){
 #score-view .reader-heading{flex-direction:row;align-items:center;gap:5px 8px}
 .score-titlebar{grid-template-columns:44px minmax(0,1fr);flex:1 1 140px;width:auto;gap:0 5px}
 #back-to-library{grid-row:1 / span 2;min-width:44px;min-height:44px;padding:0;justify-content:center;font-size:19px}
 #back-to-library .back-word{display:none}
 #score-view #reader-title{font-size:18px;line-height:1.2}
 #score-storage{grid-column:2;font-size:9px}
 .reader-tools{flex:0 0 86px;width:auto;border:0}
 .reader-tools>summary{gap:9px;padding:0 5px;font-size:11px}
 .reader-tools[open]{flex-basis:100%;border-top:1px solid var(--line)}
 #score-view .reader-heading:has(.reader-tools[open]) .score-titlebar{flex-basis:100%}
 .reader-actions #favorite{min-width:44px;min-height:44px}
}
@media screen and (max-width:1100px) and (max-height:500px){
 .score-mode .sidebar{display:none}
 .score-mode main{padding-top:4px}
 .score-titlebar{display:flex;gap:9px}
 #score-view #reader-title{flex:1}
 #score-storage{flex-shrink:0}
 #score-view .reader-heading{padding-block:4px}
}

/* Phone score: all destinations fit in the top strip, and the repeated ABC
   heading does not clip or waste room before the first staff. */
@media screen and (max-width:600px){
 #notation svg:has(.abcjs-title):not(:has(.abcjs-note)){display:none!important}
}
@media screen and (max-width:480px){
 .score-mode .sidebar{padding:4px 8px;min-height:43px}
 .score-mode .sidebar .brand-icon{width:30px;height:30px}
 .score-mode .sidebar nav{overflow:visible;gap:4px}
 .score-mode .nav-item{width:34px;height:34px;min-height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center}
 .score-mode .nav-item>span:first-child{font-size:18px}
 .score-mode .nav-item .nav-text{display:none}
}
@media screen and (max-width:600px){
 .score-options .zoom-reset{min-width:42px;padding-inline:3px;font-size:10px}
}
@media screen and (max-width:360px){
 .score-options{flex-wrap:wrap}
 .score-options .voice-control{flex:1 1 100%}
 .score-options .zoom-control{margin-left:auto!important}
}

/* One shared mobile/tablet header for every route, including landscape scores. */
@media screen and (max-width:1100px){
 body .sidebar,body.score-mode .sidebar{position:static;display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;min-height:57px;padding:6px max(8px,env(safe-area-inset-right)) 6px max(8px,env(safe-area-inset-left));gap:8px;border-right:0;border-bottom:1px solid var(--line)}
 body .sidebar .brand,body.score-mode .sidebar .brand{flex-shrink:0;min-height:44px;gap:8px;font-size:22px}
 body .sidebar .brand-icon,body.score-mode .sidebar .brand-icon{width:34px;height:34px}
 body .sidebar .brand-sub,body .sidebar .nav-label,body .sidebar-bottom,body .sidebar>.nav-item,body .sidebar .nav-count{display:none}
 body .sidebar nav,body.score-mode .sidebar nav{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;margin:0;min-width:0;overflow-x:auto}
 body .sidebar .nav-item,body.score-mode .sidebar .nav-item{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:auto;min-width:44px;height:44px;min-height:44px;margin:0;padding:7px 10px;gap:7px;font-size:11px}
 body .sidebar .nav-item>span:first-child,body.score-mode .sidebar .nav-item>span:first-child{width:auto;font-size:18px;line-height:1}
 body .workspace,body.score-mode .workspace{margin-left:0}
 body .topbar{display:none}
}
@media screen and (max-width:600px),screen and (max-width:1100px) and (max-height:500px){
 body .sidebar .brand-type,body.score-mode .sidebar .brand-type{display:none}
 body .sidebar .brand,body.score-mode .sidebar .brand{width:44px;justify-content:center}
 body .sidebar nav,body.score-mode .sidebar nav{overflow:visible}
 body .sidebar .nav-item,body.score-mode .sidebar .nav-item{width:44px;padding:0;gap:0}
 body .sidebar .nav-text,body.score-mode .sidebar .nav-text{display:none}
}
.simplify-panels{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.simplify-panels section{min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px}.simplify-panels h3{font:18px var(--serif);margin:0 0 9px}.simplify-events{display:flex;flex-wrap:wrap;gap:7px}.simplify-event{border:1px solid #dce4d7;border-radius:6px;background:#f5f7f1;padding:8px 10px;font-size:11px}.simplify-event.selected{border-color:var(--green);background:#e7efdf}.simplify-edit{border:1px solid var(--line);border-radius:8px;padding:12px}.simplify-actions{display:flex;align-items:end;flex-wrap:wrap;gap:8px}.simplify-actions .copy-field{max-width:140px}.simplify-actions button{min-height:42px}

.offline-access-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px;font-size:12px;color:var(--muted)}.offline-access-bar a{text-decoration:none}.score-mode .offline-access-bar{margin-bottom:6px}#offline-download-status{margin:4px 0 8px}
@media(max-width:600px){body[data-view="archive"] .offline-access-bar{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:6px 8px;align-items:center;margin-bottom:10px}body[data-view="archive"] #offline-all{grid-column:1/-1;min-height:44px;width:100%;text-align:center}body[data-view="archive"] #offline-library{grid-column:1;min-height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}body[data-view="archive"] #offline-all-status{grid-column:2;font-size:10px;line-height:1.3}body[data-view="archive"] #offline-summary{display:none}}

#score-editor-dialog{max-width:850px;overflow:auto}.score-event-editor{border:1px solid var(--line);border-radius:8px;margin:18px 0;padding:12px 16px;background:#fff}.score-event-editor legend{font-weight:650;padding:0 5px}.score-event-editor .copy-hint{margin:4px 0 10px}.score-event-location,.score-event-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.score-event-editor .copy-field{margin:8px 0;min-width:0}.score-event-editor input,.score-event-editor select{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:white;color:var(--ink);font-size:12px}.score-event-actions{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 2px}.score-event-actions button{padding:8px 10px;white-space:normal}.score-json-details{margin:16px 0}.score-json-details summary{cursor:pointer;font-weight:600}.score-json-details textarea{margin-top:4px}#score-editor-feedback{color:#9c3929;font-size:12px;white-space:pre-wrap}@media(max-width:650px){.score-event-location,.score-event-fields{grid-template-columns:1fr}.score-event-editor{padding:10px}}

.review-checks { margin: 1rem 0; padding: 1rem; background: #fff; border: 1px solid #c8d3cc; border-radius: 12px; }
.review-checks h2 { font-size: 1.1rem; margin: 0 0 .5rem; }
.review-checks p { overflow-wrap: anywhere; font-size: .9rem; }
.review-check { padding: .7rem; margin-top: .5rem; border-left: 4px solid #9a741d; background: #f8f8f4; }
.review-match { border-color: #367557; }
.review-mismatch { border-color: #b03c31; }
.review-check summary { cursor: pointer; font-weight: 600; }
@media print { .review-checks { display: none; } }

.archive-card-entry{min-width:0}.archive-card-entry>.card{width:100%}.archive-pdf-link{display:inline-block;margin:.35rem 0 .55rem .9rem;border:0;background:none;color:var(--green);font-size:11px;text-decoration:underline;cursor:pointer}.reference-pdf-list{display:grid;gap:.55rem;margin:1rem 0}.reference-pdf-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.6rem .75rem;border:1px solid var(--line);border-radius:6px;background:#fff}.reference-pdf-row a{overflow-wrap:anywhere}.reference-pdf-row button{flex:none}.reference-pdf-upload{position:relative;cursor:pointer}.reference-pdf-upload input{position:absolute;width:1px;height:1px;opacity:0}.reference-pdf-upload:focus-within{outline:3px solid #96b275;outline-offset:3px}
