:root{color-scheme:light;--ink:#172631;--muted:#536472;--blue:#145c8a;--line:#dce3e8;--paper:#fff;--music-size:18px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;color:var(--ink);background:#f3f6f8}
*{box-sizing:border-box}body{margin:0}a{color:var(--blue)}button,select,textarea{font:inherit}button,select{border:1px solid #c4d0d9;background:white;border-radius:6px;padding:.48rem .7rem;color:var(--ink)}button{cursor:pointer}button:hover{background:#edf4f8}button[aria-pressed=true]{background:var(--blue);color:#fff;border-color:var(--blue)}:focus-visible{outline:3px solid #da8c14;outline-offset:3px}.skip{position:fixed;top:-100px;z-index:10;background:white;padding:1rem}.skip:focus{top:0}
.library{width:264px;position:fixed;inset:0 auto 0 0;background:#102d42;color:#e8f0f6;padding:2rem 1.2rem;overflow:auto}.brand{font-family:Georgia,serif;font-size:2rem;text-decoration:none;color:white;display:block;margin:0 .5rem 2.5rem}.brand span{color:#83c4ed;font-size:1.6rem;margin-right:.3rem}.library-label{font-size:.75rem;letter-spacing:.16em;color:#a2bbcc;margin-left:.7rem}.library h2{font-size:.85rem;font-weight:600;color:#a7c6da;margin:1.6rem .7rem .7rem}.song-link{display:block;padding:.8rem .7rem;text-decoration:none;color:#e8f0f6;border-radius:6px;margin:.15rem 0;line-height:1.4}.song-link span{display:block;font-size:.85rem;color:#b6cad8;margin-top:.15rem}.song-link:hover{background:#1c3d53}.song-link[aria-current=page]{background:#275470;color:white;box-shadow:inset 3px 0 #8ed1fa}.library-foot{color:#a2bbcc;font-size:.8rem;line-height:1.7;border-top:1px solid #385367;padding:1.4rem .7rem;margin-top:2rem}.workspace{margin-left:264px}.toolbar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 2.5rem;background:#f3f6f8f5;border-bottom:1px solid var(--line)}#instrument-label{text-transform:uppercase;letter-spacing:.13em;font-size:.8rem;font-weight:700;color:var(--muted)}.controls{display:flex;align-items:center;gap:.6rem}.controls label{font-size:.875rem}
main{max-width:1150px;margin:2rem auto;padding:2.5rem 3rem 3rem;background:var(--paper);border:1px solid var(--line);min-height:80vh}.song-heading{border-bottom:2px solid var(--ink);padding-bottom:1.6rem;margin-bottom:2rem}.eyebrow{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);font-weight:700;margin:0 0 .6rem}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(2rem,4vw,3rem);line-height:1.15;margin:0 0 .6rem}.artist{font-size:1.1rem;color:var(--muted);margin:.4rem 0 1.2rem}.metadata{display:flex;gap:.5rem;flex-wrap:wrap}.metadata span{font-size:.875rem;background:#eef3f6;padding:.35rem .6rem;border-radius:3px}.source-row{margin-top:1rem;font-size:.875rem;color:var(--muted);display:flex;gap:1rem;flex-wrap:wrap}.source-row a{text-underline-offset:3px}.section-index{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2rem}.section-index a{font-size:.875rem;text-decoration:none;padding:.35rem .6rem;border:1px solid var(--line);border-radius:4px}.music-section{scroll-margin-top:6rem;margin-bottom:2.2rem}.music-section h2,.chord-section h2{font-size:.9rem;letter-spacing:.035em;font-weight:650;border-bottom:1px solid var(--line);padding-bottom:.6rem;margin:0 0 1rem;color:var(--blue)}.music-section p{line-height:1.75;max-width:75ch;white-space:pre-line}.music-scroll{overflow-x:auto;padding:0 0 .4rem;max-width:100%;border-radius:3px}.music-scroll:focus-visible{outline-offset:0}pre{font-family:"Cascadia Mono","Consolas","Courier New",monospace;font-size:var(--music-size);line-height:1.55;margin:0;tab-size:4;white-space:pre}.tab-group{margin-bottom:1.2rem}.tab-group pre{line-height:1.4}.chord-line{color:#125d91;font-weight:700}.chord-section{margin-bottom:2rem}.chord-list{display:flex;flex-wrap:wrap;gap:.65rem}.chord-card{margin:0;width:96px;text-align:center}.chord-card figcaption{font-weight:700;color:var(--blue);font-size:1rem}.chord-card svg{width:96px;height:116px;display:block}.chord-card small{display:block;font-size:.75rem;color:var(--muted)}.legend{font-size:.875rem;color:var(--muted);padding:.75rem 0;border-top:1px solid var(--line);line-height:1.6}.score-page{margin:0 0 2rem;break-after:page}.score-page img{display:block;width:100%;height:auto;border:1px solid var(--line)}.score-page figcaption{font-size:.8rem;color:var(--muted);margin:.5rem 0}.notes-area{display:none;background:#f5f8fb;border:1px solid var(--line);padding:1rem;margin-top:1rem}.show-notes .notes-area{display:block}.notes-area label{display:block;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.notes-area textarea{display:block;width:100%;min-height:90px;padding:.75rem;line-height:1.5;border:1px solid #bccbd6;border-radius:4px;resize:vertical}.notes-help{font-size:.8rem!important;color:var(--muted);margin:.5rem 0 0!important;line-height:1.5!important}.notes-actions{display:none;gap:.6rem;margin-bottom:2rem;align-items:center;flex-wrap:wrap}.show-notes .notes-actions{display:flex}.notes-actions span{font-size:.875rem;color:var(--muted)}.page-footer{font-size:.8rem;color:var(--muted);text-align:center;padding:0 1rem 2rem}
@media(min-width:1500px){main{margin:2.5rem auto}}@media(max-width:1200px){main{margin:1.5rem;padding:2rem}.toolbar{padding:1rem 1.5rem}}@media(max-width:760px){.library{position:static;width:auto;padding:1rem}.brand{margin:0 0 1rem;font-size:1.6rem}.library-label,.library-foot{display:none}.library nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.library h2{margin:.2rem .4rem .4rem}.song-link{padding:.5rem;font-size:.9rem}.song-link span{font-size:.8rem}.workspace{margin-left:0}.toolbar{padding:.7rem 1rem;gap:.5rem;flex-wrap:wrap}.controls{gap:.4rem;flex-wrap:wrap}.controls label{font-size:.8rem}button,select{font-size:.875rem}main{margin:0;border:0;padding:1.5rem 1rem}.section-index{gap:.4rem}.music-section{scroll-margin-top:7rem}.chord-card{width:84px}.chord-card svg{width:84px}.page-footer{padding-top:1rem}}
@media print{@page{size:auto;margin:14mm}.library,.toolbar,.section-index,.page-footer,.source-row,.notes-actions{display:none!important}.workspace{margin:0}body{background:white}main{max-width:none;margin:0;padding:0;border:0;min-height:0}.song-heading{margin-bottom:1rem;padding-bottom:1rem}h1{font-size:28px}.music-section{break-inside:avoid;margin-bottom:1.4rem}.music-scroll{overflow:visible}pre{font-size:12px!important}.score-page{margin:0;break-inside:avoid}.score-page img{max-height:245mm;object-fit:contain;border:0}.score-page figcaption{margin:.2rem 0}.score-page:last-child{break-after:auto}.notes-area{break-inside:avoid}.notes-area textarea{border:0;min-height:0;height:auto}.notes-help{display:none}.chord-card{break-inside:avoid}}

.print-note{display:none}.score-page{scroll-margin-top:6rem}[hidden]{display:none!important}
@media print{.notes-area textarea{display:none}.print-note{display:block;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}}
/* Compact playing layout: spend the viewport on music rather than framing. */
/* Keep device text scaling predictable while allowing browser zoom. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
:root{--music-size:16px}
.library{width:190px;padding:1rem .65rem}.brand{font-size:1.5rem;margin:0 .4rem 1rem}.library h2{margin:1rem .5rem .35rem}.song-link{padding:.5rem;font-size:.875rem}.song-link span{font-size:.75rem}.library-foot{margin-top:1rem;padding:.7rem .5rem}.workspace{margin-left:190px}
.toolbar{padding:.45rem 1rem;gap:.5rem}.controls{gap:.4rem}.controls label,button,select{font-size:.8rem}button,select{padding:.3rem .5rem}
main{max-width:none;margin:0;padding:.8rem 1.1rem 1.2rem;border:0;min-height:90vh}.song-heading{margin-bottom:.65rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}.eyebrow{display:none}h1{display:inline;font-size:1.55rem;line-height:1.2;margin:0}.artist{display:inline;font-size:.875rem;margin-left:.7rem}.metadata{display:inline-flex;gap:.3rem;margin-top:.4rem;margin-right:.8rem}.metadata span{font-size:.75rem;padding:.12rem .35rem}.source-row{display:inline-flex;gap:.6rem;margin:.3rem 0 0;font-size:.75rem}.heading-note{font-weight:400;letter-spacing:0;color:var(--muted);font-size:.8rem;margin-left:.5rem}
.music-section{margin-bottom:.7rem;scroll-margin-top:4rem}.music-section h2{font-size:.85rem;padding:0;border:0;margin:0 0 .25rem}.music-section p{font-size:.8rem;line-height:1.35;margin:.2rem 0;max-width:none}.music-scroll{padding-bottom:.15rem}.tab-group{margin:0}pre{line-height:1.2}.tab-group pre{line-height:1.16}.lyrics pre{font-size:calc(var(--music-size) * .9);line-height:1.15}.chord-line{font-weight:600}.chord-trigger{display:inline;font:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;background:transparent;border:0;border-radius:2px;padding:0;margin:0;vertical-align:baseline;white-space:pre;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}.chord-trigger:hover,.chord-trigger[aria-expanded=true]{background:#dceef9;color:#0c4269}
.chord-section,.jump-menu,.legend{font-size:.8rem;margin:0 .8rem .5rem 0;padding:0;border:0}.chord-section>summary,.jump-menu>summary,.legend>summary{cursor:pointer;color:var(--muted);width:fit-content}.chord-list{padding:.6rem 0 .2rem}.section-index{margin:.4rem 0 .6rem;gap:.3rem}.section-index a{font-size:.75rem;padding:.15rem .4rem}.legend p{font-size:.75rem;line-height:1.4}.notes-actions{margin-bottom:.5rem}.notes-area{margin:.5rem 0;padding:.6rem}.page-footer{display:none}
#chord-popover{position:fixed;z-index:10;background:white;border:1px solid #aebfca;border-radius:6px;box-shadow:0 4px 18px #102d4230;padding:.65rem}.score-page{margin:0 auto .5rem;max-width:1100px}.score-page img{border:0}.score-page figcaption{font-size:.75rem}.compact-score{margin-bottom:.2rem;break-after:auto}.compact-score figcaption{display:none}.show-notes .compact-score figcaption{display:block}
@media(min-width:1400px){.lyric-song .sections{columns:2;column-gap:1.5rem}.lyric-song .music-section{break-inside:avoid}}
@media(max-width:760px){.library{width:auto;padding:.5rem .7rem}.brand{font-size:1.2rem;margin:0 0 .3rem}.library nav{gap:.6rem}.library h2{margin:.1rem .3rem}.song-link{padding:.25rem .3rem;font-size:.8rem}.song-link span{display:none}.workspace{margin-left:0}.toolbar{padding:.4rem .65rem}main{margin:0;padding:.65rem}.artist{font-size:.8rem}h1{font-size:1.35rem}}
@media print{.workspace{margin:0}main{margin:0;padding:0}.chord-section:not([open]),.jump-menu,#chord-popover,.legend{display:none!important}.chord-section[open]{display:block}.chord-trigger{text-decoration:none;color:inherit}.song-heading{margin-bottom:.5rem;padding-bottom:.3rem}h1{font-size:20px}.music-section{margin-bottom:.5rem}.music-section h2{font-size:11px}.heading-note,.music-section p{font-size:10px}pre{font-size:11px!important;line-height:1.15!important}.compact-score{break-after:auto;margin-bottom:2mm}.compact-score img{max-height:none}.lyric-song .sections{columns:2;column-gap:8mm}.lyric-song pre{font-size:8px!important}}

/* Touch targets stay comfortable without changing the printed score. */
@media screen and (pointer:coarse){.song-link{min-height:44px;display:flex;flex-direction:column;justify-content:center}.controls button,.controls select,.notes-actions button{min-height:44px;font-size:16px}.notes-area textarea{font-size:16px}.section-index a{min-height:44px;display:flex;align-items:center}}

/* Platform: sign-in gate, add dialog, transcription view, feedback and marks. */
#gate{position:fixed;inset:0;z-index:20;background:#f3f6f8;display:grid;place-items:center}#gate[hidden]{display:none}.gate-card{background:var(--paper);border:1px solid var(--line);padding:2.5rem 3rem;max-width:26rem;text-align:center;border-radius:8px}.gate-card .brand{margin:0 0 1rem}.muted{color:var(--muted);font-size:.875rem}
#add-dialog{border:1px solid var(--line);border-radius:8px;padding:1.6rem 2rem;max-width:30rem;width:92vw}#add-dialog::backdrop{background:#10203088}#add-form label{display:block;margin:.8rem 0;font-size:.9rem}#add-form input,#add-form select{display:block;width:100%;margin-top:.3rem;padding:.45rem .6rem;border:1px solid #c4d0d9;border-radius:6px;font:inherit}#add-form menu{display:flex;gap:.6rem;justify-content:flex-end;padding:0;margin:1.2rem 0 0}#add-submit{background:var(--blue);color:#fff;border-color:var(--blue)}
.song-link .status{font-style:normal;font-size:.7rem;background:#385367;color:#e8f0f6;padding:.1rem .4rem;border-radius:3px;margin-left:.3rem;vertical-align:middle}
.pending{background:#fff7e6;border:1px solid #f0d9a8;padding:1rem 1.2rem;border-radius:6px}
.transcription{margin-top:1.5rem}.transcription-bar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin:0 0 1rem}.transcription-bar .spacer{flex:1}.transcription-bar .summary{font-size:.875rem;color:var(--muted)}
.review-scope{display:flex;gap:.4rem}.review-scope button[aria-pressed=true]{background:var(--ink);border-color:var(--ink)}
.measure{border:1px solid var(--line);border-radius:6px;margin:0 0 1.2rem;padding:.9rem 1rem;scroll-margin-top:6rem}.measure.flagged{border-left:4px solid #da8c14}.measure.agreed{border-left:4px solid #2f9e5c}.measure.disagreed{border-left:4px solid #c8402a}.measure header{display:flex;align-items:center;gap:.8rem;margin-bottom:.6rem}.measure header h3{margin:0;font-size:.95rem}.measure header .issues{font-size:.8rem;color:#9a5a00;flex:1}
.compare{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.compare figure{margin:0;position:relative}.compare figcaption{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem}.compare img{width:100%;height:auto;display:block;background:#fff;border:1px solid var(--line)}.compare .draft img{background:#fff}
.markpad{position:relative;user-select:none;touch-action:none}.markpad canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}
.verdict{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.7rem}.verdict textarea{flex:1;min-width:12rem;min-height:2.4rem;padding:.4rem .6rem;border:1px solid #c4d0d9;border-radius:6px}.verdict .agree[aria-pressed=true]{background:#2f9e5c;border-color:#2f9e5c;color:#fff}.verdict .disagree[aria-pressed=true]{background:#c8402a;border-color:#c8402a;color:#fff}.verdict .hint{font-size:.75rem;color:var(--muted);width:100%}
.system-row{display:grid;gap:.4rem;margin-bottom:1.4rem}.system-row img{width:100%;border:1px solid var(--line);background:#fff}.system-row .strip{display:flex;gap:.3rem;overflow-x:auto}.system-row .strip img{height:120px;width:auto;cursor:pointer}
.proposal{border:1px solid #cfe0ee;background:#f7fbfe;border-radius:6px;padding:.9rem 1rem;margin:.8rem 0}.proposal h4{margin:0 0 .4rem;font-size:.9rem}.proposal .reading{font-size:.875rem;color:var(--muted);margin:.2rem 0}.proposal .change{white-space:pre-line;margin:.4rem 0}.proposal .decide{display:flex;gap:.5rem;align-items:center;margin-top:.6rem}.proposal .yes[aria-pressed=true]{background:#2f9e5c;color:#fff;border-color:#2f9e5c}.proposal .no[aria-pressed=true]{background:#c8402a;color:#fff;border-color:#c8402a}.proposal.decided{opacity:.75}
.tab-draft{white-space:pre;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem;width:100%;min-height:24rem;border:1px solid #c4d0d9;border-radius:6px;padding:.8rem}
.attempt-log{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.75rem;white-space:pre-wrap;background:#f4f6f8;padding:.6rem .8rem;border-radius:4px;max-height:12rem;overflow:auto}
@media (max-width:900px){.compare{grid-template-columns:1fr}}
@media print{#gate,#add-dialog,.transcription-bar,.verdict,.markpad canvas{display:none!important}}
.context-form{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;font-size:.875rem;margin:.6rem 0}.context-form input{margin-left:.3rem;padding:.3rem .4rem;border:1px solid #c4d0d9;border-radius:4px}
