:root{--ink:#141b33;--muted:#5d6680;--line:#d8dde8;--bg:#eef1f6;--surface:#fff;--paper:#fff;--brand:#0c172f;--brand-ink:#fff;--teal:#23c0bf;--accent:#1a799f;--brand-gradient:linear-gradient(90deg, #27bdc5, #1a799f);--danger:#b3261e;--radius:10px;--tap:44px;--shadow:0 1px 2px #0e152f0f, 0 6px 20px #0e152f14;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}h1,h2{margin:0;font-weight:650}button,input,select{font:inherit;color:inherit}select,.field input{min-height:var(--tap);border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:0 10px}.muted{color:var(--muted)}.row{flex-wrap:wrap;gap:8px;display:flex}.loading{text-align:center;color:var(--muted);padding:48px}.btn{min-height:var(--tap);border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:0 16px;display:inline-flex}.btn:hover{border-color:#b4bccc}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.btn:disabled{opacity:.5;cursor:default}.icon-btn{width:var(--tap);height:var(--tap);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--bg)}.icon-btn.danger:hover{color:var(--danger)}.logo{border-radius:6px;flex-shrink:0;align-items:center;display:inline-flex}.logo img{width:auto;display:block}.brand-bar{--on-brand-muted:#9fb0c8;--on-brand-hover:#ffffff1a;background:var(--brand-gradient) bottom / 100% 4px no-repeat, var(--brand);color:var(--brand-ink);padding-bottom:4px}.brand-bar :focus-visible{outline:2px solid var(--teal);outline-offset:2px}.brand-bar .btn{background:0 0;border-color:#ffffff40}.brand-bar .btn:hover{border-color:var(--teal);background:var(--on-brand-hover)}.brand-bar select{color:var(--ink)}.home-head{padding:14px max(16px,4vw) 18px}.home-main{max-width:1040px;margin:0 auto;padding:32px 16px 48px}.tiles{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;display:grid}.tile{text-align:left;border:1px solid var(--line);background:var(--surface);min-height:170px;box-shadow:var(--shadow);cursor:pointer;border-radius:14px;flex-direction:column;align-items:flex-start;gap:6px;padding:22px;transition:transform .12s,box-shadow .12s;display:flex}.tile:hover{transform:translateY(-2px)}.tile-primary{background:var(--brand-gradient) bottom / 100% 5px no-repeat, var(--brand);border-color:var(--brand);color:var(--brand-ink)}.tile-primary .tile-icon{color:var(--teal)}.tile-icon{margin-bottom:auto}.tile-title{font-size:1.15rem;font-weight:650}.tile-text{opacity:.8;min-height:2.6em;font-size:.92rem}.recent{margin-top:40px}.recent-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.sheet-list{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:0;padding:0;list-style:none;overflow:hidden}.sheet-list li{align-items:center;padding-right:6px;display:flex}.sheet-list li+li{border-top:1px solid var(--line)}.sheet-open{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:14px;min-height:60px;padding:10px 16px;display:flex}.sheet-open:hover{background:var(--bg)}.sheet-text{flex-direction:column;font-size:.9rem;display:flex}.sheet-text strong{font-size:1rem}.page-head{align-items:center;gap:16px;padding:16px max(16px,4vw);display:flex}.page-main{max-width:720px;margin:0 auto;padding:16px}.form-grid{gap:20px;display:grid}.form-grid label{gap:6px;display:grid}.form-grid label>span{font-weight:550}label.check{min-height:var(--tap);align-items:center;gap:10px;display:flex!important}label.check input{width:20px;height:20px}.tool-text,.tool-output{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:1.05rem;line-height:1.7}.tool-text{border:1px solid var(--line);border-radius:var(--radius);resize:vertical;width:100%;padding:12px}.tool-result{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:14px 16px}.tool-result-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.tool-result-head h2{margin:0;font-size:1.1rem}.tool-result-head small{color:var(--muted);font-weight:400}.tool-output{white-space:pre-wrap;min-height:4.5em;margin:10px 0 0;font-weight:650}.tool-output .muted{font-weight:400}.metronome,.tuner{text-align:center;justify-items:center;gap:22px;display:grid}.metronome .field-row,.tuner .field-row{text-align:left;justify-content:center;align-items:end}.beat-lights{flex-wrap:wrap;justify-content:center;gap:12px;min-height:44px;display:flex}.beat-light{border:2px solid var(--line);background:var(--surface);border-radius:50%;width:34px;height:34px}.beat-light.strong{border-color:var(--accent)}.beat-light.on{background:var(--teal);border-color:var(--teal);transform:scale(1.15)}.beat-light.strong.on{background:var(--accent);border-color:var(--accent)}.tempo-row{align-items:center;gap:16px;display:flex}.icon-btn.big{border:1px solid var(--line);background:var(--surface);border-radius:50%;width:56px;height:56px}.tempo-value{gap:2px;display:grid}.tempo-value input{box-sizing:content-box;border:0;border-bottom:2px solid var(--line);width:4.2ch;font:inherit;text-align:center;color:var(--ink);appearance:textfield;background:0 0;padding:0 8px;font-size:4rem;font-weight:750}.tempo-value input::-webkit-inner-spin-button{appearance:none}.tempo-value span{color:var(--muted)}.tempo-slider{width:min(100%,460px);height:var(--tap);accent-color:var(--accent)}.metronome-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.start-btn,.tap-btn{justify-content:center;min-width:150px;min-height:56px;font-size:1.1rem}.start-btn.running{background:var(--danger);border-color:var(--danger)}.tuner-note{min-height:7rem;color:var(--ink);justify-content:center;align-items:flex-start;display:flex}.tuner-note.in-tune{color:#17803d}.tuner-name{font-size:6rem;font-weight:750;line-height:1}.tuner-octave{color:var(--muted);margin-top:.4rem;font-size:1.8rem}.tuner-meter{border-bottom:2px solid var(--line);width:min(100%,460px);height:46px;position:relative}.tuner-centre{background:#17803d24;width:10%;position:absolute;top:0;bottom:0;left:45%}.tuner-needle{background:var(--danger);border-radius:2px;width:4px;margin-left:-2px;transition:left 80ms linear;position:absolute;top:0;bottom:0}.tuner-needle.in-tune{background:#17803d}.tuner-scale{color:var(--muted);justify-content:space-between;font-size:.8rem;display:flex;position:absolute;inset:auto 0 -22px}.tuner-verdict{margin:14px 0 0;font-size:1.15rem;font-weight:600}.tuner-verdict small{color:var(--muted);font-weight:400}.library{gap:16px;display:grid}.library-search{gap:8px;display:flex}.library-search input{min-height:var(--tap);border:1px solid var(--line);font:inherit;border-radius:8px;flex:1;padding:0 12px}.library-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);gap:12px;padding:16px;display:grid}.library-card h3,.library-card h4{margin:0}.library-card h4{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:.8rem}.library-card .chips{margin:0}.library-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.library-symbol{margin:0;font-size:2.4rem;line-height:1.1}.library-notes{color:var(--muted);margin:4px 0 0;font-size:1.1rem}.library-picture{place-items:center;min-height:170px;display:grid}.field.inline{align-items:center;gap:8px;display:flex}.segmented.light{background:var(--bg);justify-self:start}.segmented.light button{color:var(--ink)}.segmented.light button.on{background:var(--brand);color:#fff}.piano-chord{width:min(100%,480px)}.piano-white{fill:#fff;stroke:#8a93a8}.piano-white.on{fill:#d6f4f3}.piano-black{fill:#1c2238}.piano-black.on,.piano-dot{fill:var(--accent)}.piano-dot.on-black{fill:#fff}.guitar-shapes{flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.guitar-chord{width:150px}.guitar-line{stroke:var(--ink);stroke-width:1px}.guitar-nut,.guitar-dot{fill:var(--ink)}.guitar-mark,.guitar-position{fill:var(--ink);font-size:13px}.scale-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.scale-notes{letter-spacing:.04em;font-size:1.05rem;display:block}.rhythm{gap:16px;display:grid}.rhythm .field-row{align-items:end}.tap-pad{border:2px dashed var(--line);background:var(--surface);min-height:150px;color:var(--muted);font:inherit;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;border-radius:14px;font-size:1.2rem;font-weight:600}.tap-pad.counting{border-color:var(--accent);color:var(--accent)}.tap-pad.recording{border-style:solid;border-color:var(--danger);color:var(--danger);background:#b3261e0f}.tap-pad.hit{background:#b3261e33}.rhythm-preview{pointer-events:none;overflow-x:auto}.rhythm-name{min-width:160px;min-height:var(--tap);border:1px solid var(--line);font:inherit;border-radius:8px;flex:1;padding:0 12px;font-weight:650}.library-list{gap:10px;display:grid}.library-list .chips{margin:0}.list-search{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:8px;align-items:center;gap:8px;padding:0 12px;display:flex}.list-search input{min-height:var(--tap);font:inherit;color:var(--ink);background:0 0;border:0;outline:none;flex:1}.row.wrap{flex-wrap:wrap}.set-number{min-width:2.4em;color:var(--muted);padding-left:14px;font-weight:700}.set-order{padding-left:0}.read-title{text-align:center;margin:0;font-family:Georgia,Times New Roman,serif;font-size:2rem}.read-subtitle{text-align:center;color:var(--muted);margin:2px 0 0;font-style:italic}.read-header .meta-left,.read-header .meta-right{gap:2px;display:grid}.read-header .meta-right{text-align:right}.read-music,.read-music *,.rhythm-preview *{pointer-events:none!important}.set-print .paper+.paper{margin-top:24px}.set-print .page-head .btn-primary{margin-left:auto}.perform{z-index:60;background:#fff;flex-direction:column;display:flex;position:fixed;inset:0}.perform-bar{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:4px;padding:2px 8px;display:flex}.perform-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;overflow:hidden}.perform-page{cursor:pointer;-webkit-tap-highlight-color:transparent;flex:1;overflow-y:auto}.perform-page .paper{max-width:1100px;box-shadow:none;padding:16px 20px 40vh}.welcome-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:16px;gap:12px;padding:28px 24px;display:grid}.welcome-card h2,.welcome-card p{margin:0}.sign-in-buttons{gap:10px;margin:8px 0;display:grid}.btn.sign-in{color:#1f1f1f;background:#fff;border:1px solid #c8ccd6;justify-content:center;gap:12px;min-height:52px;font-size:1.05rem;font-weight:600}.test-sign-in{border-top:1px dashed var(--line);text-align:left;gap:8px;padding-top:12px;display:grid}.small-print{color:var(--muted);font-size:.8rem}.home-head{justify-content:space-between;align-items:center;display:flex}.account-btn{width:var(--tap);height:var(--tap);border:2px solid var(--teal);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:50%;padding:0;font-size:1.1rem;font-weight:700;overflow:hidden}.account-btn img{object-fit:cover;width:100%;height:100%}.welcome-card.plain{box-shadow:none;text-align:center;border:0;padding:0}.btn.sign-in-link{color:var(--brand-ink);background:0 0;border-color:#fff6}.guest-note{color:var(--muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin-right:auto;padding:0;font-size:.85rem}.sync-badge{color:var(--muted);margin-right:auto;font-size:.85rem}.account-card{align-items:center;gap:16px;margin-bottom:16px;display:flex}.account-card h2,.account-card p{margin:0}.avatar{background:var(--accent);color:#fff;object-fit:cover;border-radius:50%;place-items:center;width:64px;height:64px;font-size:1.6rem;font-weight:700;display:grid}.sync-line{font-weight:600}.btn.danger-btn{color:var(--danger);border-color:var(--danger)}.tabs{gap:2px;display:flex}.tab{min-height:var(--tap);color:var(--on-brand-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;border-radius:8px 8px 0 0;padding:0 12px;font-size:.92rem;font-weight:600}.tab:hover{color:var(--brand-ink);background:var(--on-brand-hover)}.tab.on{color:var(--brand-ink);border-bottom-color:var(--teal)}.tool-group.quick{margin-left:auto}.tool[aria-pressed=true]{color:var(--teal)}.tool-field{color:var(--on-brand-muted);white-space:nowrap;align-items:center;gap:6px;font-size:.85rem;display:flex}.tool-field select{min-height:40px}.tool-divider{background:#ffffff26;align-self:stretch;width:1px}.tab-hint,.play-position{color:var(--on-brand-muted);white-space:nowrap;font-size:.85rem}.play-position{font-variant-numeric:tabular-nums;min-width:7em;color:var(--brand-ink)}.band-part{gap:2px;padding:6px 0;display:grid}.band-part+.band-part{border-top:1px solid var(--line)}.band-part.off .band-controls{opacity:.45}.band-controls{grid-template-columns:1fr 1fr;align-items:center;gap:8px;padding-left:30px;display:grid}.band-controls select{min-width:0;min-height:36px}.band-controls input[type=range]{width:100%;accent-color:var(--accent)}.band-controls select:only-child,.band-controls input:only-child{grid-column:1/-1}.transpose-section+.transpose-section{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.transpose-section h3{margin:0 0 4px}.transpose-section p{margin:0 0 12px}.instrument-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;display:grid}.instrument-card{border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;text-align:center;border-radius:12px;justify-items:center;gap:2px;padding:10px 6px;display:grid}.instrument-card:hover{border-color:var(--accent)}.instrument-card.on{border-color:var(--accent);background:#e3f6f6}.instrument-icon{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:64px;height:64px}.instrument-icon .solid{fill:currentColor;stroke:none}.instrument-name{font-size:.92rem;font-weight:650}.instrument-how{color:var(--muted);font-size:.75rem}.key-chip{min-width:56px;font-weight:650}.key-chip:disabled{cursor:default}.editor{flex-direction:column;min-height:100vh;display:flex}.toolbar{z-index:10;position:sticky;top:0;box-shadow:0 2px 8px #0e152f26}.toolbar-row{flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 12px;display:flex}.toolbar-row+.toolbar-row{border-top:2px solid var(--teal)}.tool-group{gap:2px;display:flex}.tool{min-width:46px;min-height:var(--tap);cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 3px;font-size:.69rem;display:flex}.tool-label{white-space:nowrap}.tool:hover:not(:disabled){background:var(--on-brand-hover)}.tool:disabled{opacity:.35;cursor:default}.tool.active{background:var(--on-brand-hover);color:var(--teal)}.tool-group+.tool-group{border-left:1px solid #ffffff26;padding-left:8px}.tool-menu{z-index:50;border:1px solid var(--line);background:var(--surface);max-height:calc(100vh - 120px);color:var(--ink);white-space:normal;border-radius:12px;padding:4px 16px 12px;font-size:.95rem;position:fixed;overflow:auto;box-shadow:0 12px 32px #0e152f40}.tool-menu fieldset{border:0;margin:0;padding:10px 0 4px}.tool-menu fieldset+fieldset{border-top:1px solid var(--line)}.tool-menu fieldset:disabled{opacity:.45}.tool-menu legend{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;padding:0;font-size:.75rem;font-weight:650}.tool-menu input{accent-color:var(--accent)}.tool-menu small{color:var(--muted);font-size:.8rem;display:block}.menu-select{width:100%;margin:4px 0;display:block}.menu-title{margin:10px 0 0;font-weight:700}.menu-text{width:100%;min-height:var(--tap);border:1px solid var(--line);font:inherit;border-radius:8px;margin:4px 0;padding:0 10px}.chips{flex-wrap:wrap;gap:6px;margin:4px 0 6px;display:flex}.chip{min-height:var(--tap);min-width:var(--tap);border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:0 12px;font-size:.9rem}.chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:#fff}.menu-pair{grid-template-columns:1fr auto;gap:8px;display:grid}.menu-actions{grid-template-columns:1fr 1fr;gap:8px;margin:8px 0;display:grid}.menu-actions .btn{color:var(--ink);justify-content:center;align-items:center;gap:6px;display:inline-flex}.tool-menu .menu-select{min-height:var(--tap)}.menu-note{color:var(--muted);margin:8px 0 0;font-size:.85rem}.save-state{color:var(--on-brand-muted);white-space:nowrap;margin-left:auto;font-size:.8rem}.save-state.pending{color:var(--teal)}.segmented{background:#ffffff14;border-radius:10px;flex-shrink:0;padding:3px;display:inline-flex}.segmented button{min-height:var(--tap);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.segmented button:hover:not(.on){background:var(--on-brand-hover)}.segmented.small button{min-height:36px;padding:0 10px;font-size:.85rem}.segmented button.on{background:var(--teal);color:var(--brand);font-weight:600}.mode-options{white-space:nowrap;flex:1;align-items:center;gap:16px;font-size:.9rem;display:flex}.mode-options label{align-items:center;gap:8px;display:flex}.bar-tools{align-items:center;gap:6px;display:flex}.bar-tools select{min-height:40px}.mode-btn{min-height:var(--tap);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ffffff38;border-radius:8px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.mode-btn:hover:not(:disabled){background:var(--on-brand-hover)}.mode-btn[aria-pressed=true]{border-color:var(--teal);background:var(--teal);color:var(--brand)}.mode-btn:disabled{opacity:.4;cursor:default}.bar-info{color:var(--on-brand-muted);padding-left:6px;font-size:.85rem}.mode-hint{color:var(--on-brand-muted);font-size:.9rem}@media (width<=1600px){.bar-info{display:none}.step-label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}@media (width<=1400px){.segmented .mode-label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.segmented button{padding:0 12px}}@media (width<=1180px){.mode-btn{min-width:var(--tap);justify-content:center;gap:0;padding:0 10px;font-size:0}.bar-tools .check{gap:6px;font-size:.85rem}.save-state{font-size:0}.save-state:before{content:"✓ Saved";font-size:.75rem}.save-state.pending:before{content:"Saving…"}}@media (width<=1100px){.tool{min-width:42px;padding:4px 2px;font-size:.64rem}.toolbar-row{gap:6px;padding:6px 8px}.tool-group+.tool-group{padding-left:4px}.segmented button{padding:0 9px}.bar-tools{gap:4px}}.desk{flex:1;padding:24px 16px 64px}.paper{background:var(--paper);max-width:1000px;box-shadow:var(--shadow);border-radius:4px;margin:0 auto;padding:40px 48px 56px}@media (width<=720px){.desk{padding:8px 0 32px}.paper{border-radius:0;padding:20px 16px 32px}}.sheet-header{margin-bottom:12px}.meta-input{background:0 0;border:1px dashed #0000;border-radius:6px;width:100%;padding:2px 6px}.meta-input:hover{border-color:var(--line)}.meta-input:focus{border-color:var(--accent);background:#f3fafb;outline:none}.meta-input::placeholder{color:#b1b8c8}.meta-title{text-align:center;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.6rem,4vw,2.3rem);font-weight:700}.meta-subtitle{text-align:center;font-family:Georgia,serif;font-style:italic}.meta-small{font-size:.95rem}.align-right{text-align:right}.part-name{margin:0 0 4px;font-size:.95rem;font-weight:700}.menu-actions-one{grid-template-columns:1fr}.menu-actions-one .btn-primary{color:#fff}.meta-row{flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:6px;display:flex}.meta-left,.meta-right{flex-direction:column;flex:1;min-width:180px;display:flex}.meta-tempo{align-items:center;gap:2px;padding-left:6px;font-family:Georgia,serif;display:flex}.meta-tempo input{width:80px}.meta-select{color:var(--muted);align-items:center;gap:8px;font-size:.9rem;display:flex}.sheet-staves{width:100%;min-height:200px}.sheet-staves svg{display:block}.sheet-canvas{position:relative}.sheet-overlay{pointer-events:none;position:absolute;inset:0}.sheet-overlay.selecting{pointer-events:auto;touch-action:pan-x pan-y}.bar-hit{fill:#0000;stroke:#0000}.selecting .bar-hit{cursor:pointer}.selecting .bar-hit:hover{fill:#23c0bf14}.bar-hit.selected,.selecting .bar-hit.selected:hover{fill:#23c0bf33;stroke:var(--accent);stroke-width:1.5px}.bar-hit.playing{fill:#1a799f24;stroke:var(--accent);stroke-width:1.5px}.playhead{pointer-events:none;position:absolute;inset:0;overflow:visible}.playhead-line{stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;opacity:.85}.playing-note{fill:#23c0bf52}.line-break-mark{fill:var(--accent);pointer-events:none;font-size:13px}.sheet-overlay.chord-mode{pointer-events:auto;cursor:text;touch-action:pan-x pan-y}.sheet-overlay.note-mode{pointer-events:auto;cursor:crosshair;touch-action:pan-x pan-y}.note-mode .bar-hit{pointer-events:none}.note-caret{fill:var(--teal);opacity:.85}.overfull-mark{fill:var(--danger);font-size:15px;font-weight:800}.sheet-chords{pointer-events:none;position:absolute;inset:0;overflow:visible}.sheet-chords text{fill:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:700}.chord-root{font-size:17px}.chord-suffix,.chord-bass{font-size:14px}.chord-hit{fill:#0000}.sheet-chords.editing .chord,.sheet-chords.selecting .chord{pointer-events:auto}.sheet-chords.editing .chord{cursor:grab}.sheet-chords.editing .chord:hover .chord-hit{fill:#23c0bf26}.chord.drag-source{opacity:.3}.chord.drag-ghost text{fill:var(--accent)}.chord.drag-ghost .chord-hit{fill:#23c0bf26}.sheet-structure{pointer-events:none;position:absolute;inset:0;overflow:visible}.sheet-structure text{fill:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.volta path{fill:none;stroke:var(--ink);stroke-width:1.2px}.volta text{font-size:13px;font-weight:700}.section-label rect{fill:var(--paper);stroke:var(--ink);stroke-width:1.2px}.section-label text{font-size:14px;font-weight:750}.end-mark{font-size:14px;font-style:italic;font-weight:700}.chart-text{font-size:14px}.chart-text.text-tempo{font-weight:700}.chart-text.text-expression{font-style:italic}.sheet-structure .chart-text.text-dynamic,.chip-dynamic{font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:700}.sheet-structure .chart-text.text-dynamic{font-size:17px}.sheet-structure .music-glyph{font-family:Bravura,serif;font-size:22px;font-style:normal;font-weight:400}.sheet-structure .music-glyph.simile{font-size:40px}.sheet-overlay.lyric-mode{pointer-events:auto;cursor:text;touch-action:pan-x pan-y}.sheet-lyrics{pointer-events:none;position:absolute;inset:0;overflow:visible}.sheet-lyrics text{fill:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:15px}.lyric-hit{fill:#0000}.sheet-lyrics.editing .lyric{pointer-events:auto;cursor:grab}.sheet-lyrics.editing .lyric:hover .lyric-hit{fill:#23c0bf26}.lyric-extender{stroke:var(--ink);stroke-width:1px}.lyric.drag-source{opacity:.3}.sheet-lyrics text.drag-ghost{fill:var(--accent)}.lyric-entry{z-index:2;position:absolute}.lyric-entry input{border:2px solid var(--teal);background:var(--surface);text-align:center;border-radius:6px;outline:none;width:100%;height:26px;padding:0 4px;font-family:Georgia,Times New Roman,serif;font-size:15px;box-shadow:0 2px 8px #0e152f2e}.chord-entry{z-index:2;position:absolute}.chord-entry input{border:2px solid var(--teal);background:var(--surface);border-radius:6px;outline:none;height:26px;padding:0 5px;font-size:16px;font-weight:700;box-shadow:0 2px 8px #0e152f2e}.chord-entry input[aria-invalid=true]{border-color:var(--danger)}.chord-notes,.chord-error{white-space:nowrap;pointer-events:none;border-radius:6px;padding:2px 8px;font-size:12px;position:absolute;bottom:calc(100% + 4px);left:0}.chord-notes{background:var(--brand);color:var(--brand-ink)}.chord-error{background:var(--danger);color:#fff;top:calc(100% + 4px);bottom:auto}.paper.panorama{max-width:none}.paper.panorama .sheet-staves{padding-bottom:8px;overflow-x:auto}.song-sheet{margin-top:24px}.ss-line{margin-bottom:18px}.ss-label{border:1.5px solid var(--ink);border-radius:3px;margin:12px 0 8px;padding:1px 8px;font-size:.95rem;display:inline-block}.ss-segments{flex-wrap:wrap;align-items:flex-end;display:flex}.ss-seg{flex-direction:column;display:inline-flex}.ss-chord{min-height:1.4em;padding-right:.75em;font-weight:700}.ss-words{white-space:pre;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;line-height:1.5}.song-sheet-empty{text-align:center;color:var(--muted);padding:48px 16px;font-style:italic}.modal{border:0;border-radius:14px;width:min(520px,100vw - 32px);max-height:80vh;padding:0;box-shadow:0 20px 60px #0e152f4d}.modal::backdrop{background:#0e152f73}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 12px 12px 20px;display:flex}.modal-head h2{font-size:1.1rem}.modal-body{padding:16px 20px;overflow:auto}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.field{gap:6px;display:grid}.field-row{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;display:grid}.field input{width:100%}.field-error{color:var(--danger);margin:0;font-size:.9rem}.toast-host{z-index:100;gap:8px;width:max-content;max-width:calc(100vw - 32px);display:grid;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:#fff;box-shadow:var(--shadow);cursor:pointer;text-align:left;border:0;border-radius:10px;padding:12px 18px}.toast-error{background:var(--danger)}.shortcuts{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 28px;display:grid}.shortcuts h3{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:12px 0 4px;font-size:.8rem}.shortcuts dl{grid-template-columns:auto 1fr;gap:6px 12px;margin:0;font-size:.92rem;display:grid}.shortcuts dt{white-space:nowrap}.shortcuts dd{margin:0}kbd{border:1px solid var(--line);background:var(--bg);min-width:1.6em;font:inherit;text-align:center;border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:.85em;display:inline-block}.modal.wide{width:min(880px,100vw - 24px)}.settings-section{border-top:1px solid var(--line);margin:28px 0 12px;padding-top:20px;font-size:1.05rem}.print-slices{display:none}.print-slice{break-inside:avoid;page-break-inside:avoid;position:relative;overflow:hidden}.print-slice>.sheet-canvas{position:absolute;left:0}@media print{.print-slices{display:block}.sheet-staves>.sheet-canvas{display:none}.sheet-staves{min-height:0}.set-print .paper+.paper{break-before:page;page-break-before:always;margin-top:0}.ss-line,.sheet-header{break-inside:avoid;page-break-inside:avoid}body,.editor{background:#fff}.no-print,.toast-host{display:none!important}.desk,.paper{box-shadow:none;max-width:none;margin:0;padding:0}.meta-input{border:0}.meta-input:placeholder-shown{visibility:hidden}.meta-tempo:has(input:placeholder-shown){display:none}}.note-pad{z-index:40;background:var(--brand);width:min(372px,100vw - 16px);color:var(--brand-ink);-webkit-user-select:none;user-select:none;border-radius:14px;position:fixed;box-shadow:0 16px 40px #0e152f59}.pad-head{border-bottom:2px solid var(--teal);cursor:grab;touch-action:none;align-items:center;gap:8px;padding:4px 6px 4px 12px;display:flex}.pad-title{color:var(--teal);flex:1;font-size:.85rem}.pad-icon{width:36px;height:36px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.pad-icon:hover{background:#ffffff1a}.pad-body{gap:6px;padding:8px;display:grid}.pad-row{gap:6px;display:flex}.pad-key{min-width:0;min-height:var(--tap);color:inherit;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:8px;flex:1;place-items:center;padding:0;font-size:1rem;font-weight:600;display:grid}.pad-key:hover{background:#ffffff24}.pad-key[aria-pressed=true]{border-color:var(--teal);background:var(--teal);color:var(--brand)}.pad-key.music{position:relative;overflow:hidden}.pad-key>*{pointer-events:none}.pad-key .glyph{font-family:Bravura,serif;font-size:26px;font-weight:400;line-height:1}.pad-key small{opacity:.7;font-size:.65rem;position:absolute;top:2px;right:5px}
