:root{--bg:#f5f4f0;--paper:#fff;--paper-alt:#faf9f6;--ink:#2f3336;--ink-soft:#6b7280;--line:#e0ded7;--line-strong:#c9c6bd;--accent:#4a7c59;--accent-ink:#3c6647;--accent-soft:#eef3ee;--danger:#a4553f;--danger-soft:#fbeeea;--warn:#8a6d2f;--warn-soft:#fdf6e3;--warn-line:#e8d9a8;--radius:8px;--gap:14px;--tap:44px;--bottom-h:64px;--bar-offset:0px;--font-sans:system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;--font-mono:ui-monospace, "Cascadia Mono", Consolas, "Courier New", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-text-size-adjust:100%;font-size:16px;line-height:1.6}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{flex-direction:column;min-height:100dvh;display:flex}.app__bar{z-index:30;background:var(--paper);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px 12px;display:flex;position:sticky;top:0}.app__brand{flex-direction:column;min-width:0;margin-right:auto;display:flex}.app__brand-name{letter-spacing:.01em;font-size:.92rem;font-weight:700}.app__brand-sub{color:var(--ink-soft);overflow-wrap:anywhere;font-size:.74rem}.app__tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.app__banners:empty{display:none}.app__main{padding:12px;padding-bottom:calc(var(--bottom-h) + 16px);flex:auto}.app__side{gap:var(--gap);flex-direction:column;display:none}.app__paper{min-width:0}.app__bottom{z-index:30;padding:6px 6px calc(6px + env(safe-area-inset-bottom));min-height:var(--bottom-h);background:var(--paper);border-top:1px solid var(--line);gap:4px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom__item{flex:1 1 0;min-width:0;padding:0 4px;font-size:.76rem}.app[data-mode=preview] .app__side,.app[data-mode=preview] .app__bottom,.app[data-mode=present] .app__side,.app[data-mode=present] .app__bottom{display:none}.app[data-mode=preview] .app__main,.app[data-mode=present] .app__main{padding-bottom:24px}@media (min-width:1024px){:root{--bottom-h:0px}.app__main{gap:var(--gap);padding:var(--gap);padding-bottom:var(--gap);grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;display:grid}.app__side{display:flex}.app__bottom{display:none}.app[data-mode=preview] .app__main,.app[data-mode=present] .app__main{display:block}}@media (max-width:560px){.app__brand,.app__undo,.app__redo{display:none}}.empty-state{text-align:center;color:var(--ink-soft);padding:48px 16px}.btn{min-height:var(--tap);min-width:var(--tap);border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);font:inherit;cursor:pointer;text-align:center;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:.86rem;line-height:1.3;display:inline-flex}.btn:hover:not(:disabled){background:var(--bg)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn--primary:hover:not(:disabled){background:var(--accent-ink)}.btn--danger{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}.btn--danger-quiet{color:var(--danger);border-color:var(--line)}.btn--quiet,.btn--ghost{background:0 0;border-color:#0000}.btn--quiet:hover:not(:disabled),.btn--ghost:hover:not(:disabled){background:var(--bg)}.btn--small{min-width:38px;min-height:38px;padding:0 10px;font-size:.8rem}.btn--icon{min-width:var(--tap);padding:0;font-size:1rem}@media (max-width:1023px){.btn--small{min-height:var(--tap);min-width:auto}}.segmented{border:1px solid var(--line-strong);background:var(--paper);border-radius:8px;display:inline-flex;overflow:hidden}.segmented__item{min-width:auto;min-height:var(--tap);border:0;border-left:1px solid var(--line-strong);border-radius:0;padding:0 14px;font-size:.84rem}.segmented__item:first-child{border-left:0}.segmented__item.is-active{background:var(--accent);color:#fff;font-weight:600}.input{width:100%;min-height:var(--tap);border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);font:inherit;border-radius:6px;padding:8px 10px;font-size:.9rem}.input:disabled{background:var(--bg);color:var(--ink-soft)}.input--textarea{resize:vertical;min-height:72px;line-height:1.5}.input--code{font-family:var(--font-mono);white-space:pre;font-size:.8rem;line-height:1.55;overflow:auto}.input--beats{max-width:8em}.checkbox{width:20px;height:20px;accent-color:var(--accent);flex:none}.field{flex-direction:column;gap:4px;min-width:0;margin-bottom:10px;display:flex}.field__label{color:var(--ink-soft);font-size:.82rem}.field__hint{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:.74rem}.field__hint .is-over{color:var(--danger)}.field__error{color:var(--danger);margin:0;font-size:.78rem}.field__error:empty{display:none}.field-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}@media (max-width:420px){.field-row{grid-template-columns:minmax(0,1fr)}}.range{align-items:center;gap:10px;display:flex}.range input[type=range]{min-width:0;min-height:var(--tap);accent-color:var(--accent);flex:auto}.range__value{text-align:right;min-width:3.4em;color:var(--ink-soft);flex:none;font-size:.8rem}.check-group{flex-direction:column;gap:2px;display:flex}.check-line{min-height:var(--tap);cursor:pointer;align-items:center;gap:10px;display:flex}.check-line input[type=checkbox]{width:20px;min-width:20px;height:20px;min-height:20px;accent-color:var(--accent);cursor:pointer;background:0 0;border:none;flex:none;margin:0;padding:0}.check-line input[type=checkbox]:disabled{cursor:not-allowed}.check-line__text{align-items:baseline;gap:8px;min-width:0;display:flex}.check-line__name{font-size:.9rem}.check-line__sample{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:.78rem}.check-line:has(input:disabled){opacity:.55;cursor:not-allowed}.toggles{flex-wrap:wrap;gap:6px;display:flex}.toggle{min-height:var(--tap);min-width:var(--tap);border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);font:inherit;cursor:pointer;border-radius:6px;padding:0 10px;font-size:.86rem}.toggle:hover{background:var(--bg)}.toggle.is-active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.toggles--qualities{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.toggles--qualities .toggle{width:100%;padding:0 6px}.toggles--accidentals .toggle{min-width:3em}.group{margin-bottom:12px}.group__label{color:var(--ink-soft);margin-bottom:6px;font-size:.78rem;display:block}.group__body{flex-direction:column;gap:6px;display:flex}.group__hint{color:var(--ink-soft);overflow-wrap:anywhere;margin:6px 0 0;font-size:.74rem}.group__hint--warn{color:var(--danger)}.group-stack{flex-direction:column;display:flex}.action-grid{flex-wrap:wrap;gap:6px;display:flex}.action-grid .btn{flex:auto}.textblock-row{border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:4px 0;display:flex}.textblock-row:last-child{border-bottom:0}.textblock-row__text{min-width:0;color:var(--ink);white-space:pre-wrap;word-break:break-word;flex:auto;font-size:.82em}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:14px}.panel__title{color:var(--accent-ink);margin:0 0 10px;font-size:.9rem;font-weight:700}.panel__subtitle{color:var(--ink-soft);margin:14px 0 8px;font-size:.82rem;font-weight:600}.notice{color:var(--ink-soft);overflow-wrap:anywhere;margin:8px 0 0;font-size:.78rem}.notice--warn{color:var(--danger)}.notice--warn,.panel .notice--warn{background:var(--danger-soft);border-radius:6px;padding:8px 10px}.code{background:var(--bg);border:1px solid var(--line);max-height:280px;font-family:var(--font-mono);white-space:pre;border-radius:6px;margin:8px 0 0;padding:10px;font-size:.72rem;line-height:1.5;overflow:auto}.code--syntax{max-height:220px}.details{margin-top:12px}.details__summary{min-height:var(--tap);color:var(--accent-ink);cursor:pointer;align-items:center;font-size:.8rem;display:flex}.panel--collapse{padding:0}.panel--collapse>.details{margin-top:0}.panel--collapse .details__summary{min-height:48px;padding:0 14px;font-size:.9rem;font-weight:700}.panel__collapsed-body{padding:0 14px 14px}.save-status{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;font-size:.8rem;display:flex}.status-chip{background:var(--bg);min-height:30px;color:var(--ink-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:.76rem;display:inline-flex}.status-chip__dot{background:var(--ink-soft);border-radius:50%;width:8px;height:8px}.status-chip.is-ok .status-chip__dot{background:var(--accent)}.status-chip.is-pending .status-chip__dot{background:#c9a227}.status-chip.is-error .status-chip__dot{background:var(--danger)}.status-chip.is-error{color:var(--danger)}.song-list{flex-direction:column;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.song-list__item{align-items:stretch;gap:6px;display:flex}.song-item{min-width:0;min-height:var(--tap);border:1px solid var(--line);background:var(--paper);color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:6px;flex-direction:column;flex:auto;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.song-item:hover{background:var(--bg)}.song-item.is-active{border-color:var(--accent);background:var(--accent-soft)}.song-item__title{overflow-wrap:anywhere;font-size:.86rem;font-weight:600}.song-item__meta{color:var(--ink-soft);flex-wrap:wrap;gap:8px;font-size:.72rem;display:flex}.song-item__flag{color:var(--accent-ink);font-size:.68rem;font-weight:600}.banner{border:1px solid var(--line);border-radius:var(--radius);margin:12px;padding:12px 14px}.banner--warn{background:var(--warn-soft);border-color:var(--warn-line)}.banner--danger{background:var(--danger-soft);border-color:#e6c9bf}.banner__title{margin:0 0 6px;font-size:.9rem;font-weight:700}.banner--warn .banner__title{color:var(--warn)}.banner--danger .banner__title{color:var(--danger)}.banner__text{color:var(--ink-soft);overflow-wrap:anywhere;margin:0 0 6px;font-size:.8rem}.banner__list{flex-direction:column;gap:4px;margin:8px 0;display:flex}.issue-list{flex-direction:column;gap:4px;margin-top:8px;display:flex}.issue{width:100%;min-height:var(--tap);border:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;text-align:left;cursor:pointer;overflow-wrap:anywhere;border-radius:6px;justify-content:flex-start;padding:8px 10px;font-size:.8rem;display:block}.issue:hover:not(:disabled){background:var(--accent-soft)}.paper{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);font-size:calc(15px * var(--font-scale,1));overflow-wrap:anywhere;min-width:0;padding:18px 16px}.app[data-mode=present] .paper{font-size:calc(19px * var(--font-scale,1))}.paper__header{border-bottom:2px solid var(--accent);margin-bottom:16px;padding-bottom:12px}.paper__title{margin:0;font-size:1.5em;line-height:1.25}.paper__artist{color:var(--ink-soft);margin:2px 0 0;font-size:.95em}.paper__facts{flex-wrap:wrap;gap:4px 16px;margin-top:8px;font-size:.82em;display:flex}.fact{gap:4px;min-width:0;display:inline-flex}.fact__label{color:var(--ink-soft)}.fact__value{font-weight:600}.paper__hint{background:var(--warn-soft);color:var(--warn);border-radius:6px;margin:10px 0 0;padding:6px 9px;font-size:.78em}.paper__hint--warn{background:var(--danger-soft);color:var(--danger)}.paper__notes{color:var(--ink-soft);white-space:pre-wrap;margin:8px 0 0;font-size:.84em}.paper__body{flex-direction:column;gap:1.5em;display:flex}.sec{min-width:0}.sec__head{width:100%;min-height:var(--tap);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:4px 8px;display:flex}.sec__head:hover{background:var(--accent-soft);border-color:var(--line)}.sec__head--static{cursor:default;min-height:0;padding:0 2px}.sec__head--static:hover{background:0 0;border-color:#0000}.sec__name{color:var(--accent-ink);margin:0;font-size:1.05em;font-weight:700}.sec__repeat{background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;flex:none;padding:0 8px;font-size:.75em;font-weight:600}.sec__count{color:var(--ink-soft);margin-left:auto;font-size:.72em}.sec__cue{color:var(--ink-soft);margin:2px 0 8px 2px;font-size:.82em}.sec__grid{grid-template-columns:repeat(var(--cols,4), minmax(0, 1fr));gap:6px;margin-top:6px;display:grid}.bar{border:1px solid var(--line);background:var(--paper);border-radius:6px;flex-direction:column;gap:3px;min-width:0;padding:3px;display:flex;position:relative}.bar--empty{background:var(--paper-alt);border-style:dashed}.bar.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.bar--warn{border-color:var(--danger)}.bar--has-text{padding-bottom:calc(1.35em + 10px)}.bar__head{width:100%;min-height:var(--tap);color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:space-between;align-items:center;gap:4px;padding:0 6px;font-size:.72em;display:flex}.bar__head:hover{background:var(--accent-soft)}.bar__head--static{cursor:default;min-height:18px;padding:0 4px}.bar__head--static:hover{background:0 0}.bar__no{font-variant-numeric:tabular-nums}.bar__grip{font-size:1.25em;line-height:1}.bar__events{gap:4px;min-width:0;min-height:2.8em;display:flex}.bar__empty-label{color:var(--ink-soft);align-self:center;margin:0 auto;font-size:.78em;font-style:italic}.bar__lyrics{gap:4px;min-width:0;display:flex}.lyric{min-width:0;color:var(--ink-soft);text-align:justify;text-align-last:justify;word-break:break-all;flex:0 1 0;padding:0 4px;font-size:.72em;line-height:1.35;overflow:hidden}.lyric--empty{visibility:hidden}.bar__textblocks{pointer-events:none;z-index:2;position:absolute;inset:0}.textblock{background:var(--paper);border:1px dashed var(--line);max-width:none;box-shadow:none;color:var(--ink);text-align:center;white-space:nowrap;pointer-events:auto;cursor:grab;-webkit-user-select:none;user-select:none;border-radius:4px;padding:1px 6px;font-size:1.15em;font-weight:600;line-height:1.3;position:absolute;transform:translate(-50%)}.textblock.is-dragging{cursor:grabbing;border-color:var(--accent);z-index:3;box-shadow:0 2px 6px #00000029}.textblock__line{white-space:nowrap;display:block}.bar__warn{color:var(--danger);padding:0 4px 2px;font-size:.62em}.ev{background:var(--bg);min-width:0;color:inherit;font:inherit;text-align:left;border:1px solid #0000;border-radius:4px;flex-direction:column;flex:0 1 0;justify-content:center;align-items:flex-start;padding:2px 5px;display:flex;overflow:hidden}button.ev{min-height:var(--tap);cursor:pointer}button.ev:hover{border-color:var(--accent)}.ev--chord{background:var(--accent-soft)}.ev--rest{border:1px dashed var(--line);background:#f2f1ec}.ev.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.ev__lines{flex-direction:column;align-self:stretch;min-width:0;line-height:1.15;display:flex}.ev__line{overflow-wrap:anywhere;max-width:100%}.ev__line--primary{font-size:1.25em;font-weight:600}.ev__line:not(.ev__line--primary){color:var(--ink-soft);font-size:1em;font-weight:500}.deg-sub{vertical-align:-.25em;margin-left:.02em;font-size:.66em;font-weight:500;line-height:1}.deg-sup{vertical-align:.4em;margin-left:.02em;font-size:.66em;font-weight:500;line-height:1}.ev--rest .ev__line--primary{color:var(--ink-soft);font-size:1em;font-weight:400}.ev__beats{color:var(--ink-soft);font-size:.66em}.ev__flag{color:var(--danger);font-size:.6em}.paper-exit{justify-content:center;margin-top:16px;display:flex}.app[data-mode=edit] .paper-exit{display:none}.paper--preview .bar__head--static,.paper--present .bar__head--static{min-height:14px;font-size:.6em}.paper--present .bar__head--static{display:none}.paper--preview .bar__events,.paper--present .bar__events{min-height:2.4em}.paper--preview .ev,.paper--present .ev{padding:4px 6px}.overlay-root{z-index:100;position:relative}.modal-backdrop{background:#20201e70;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--paper);border-radius:14px 14px 0 0;flex-direction:column;width:100%;max-height:88dvh;display:flex;box-shadow:0 -10px 34px #0003}.modal--dialog{border-radius:var(--radius);align-self:center;max-width:540px;box-shadow:0 10px 34px #0003}.modal__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 14px 10px;display:flex}.modal__headings{min-width:0}.modal__title{overflow-wrap:anywhere;margin:0;font-size:1rem}.modal__subtitle{color:var(--ink-soft);overflow-wrap:anywhere;margin:2px 0 0;font-size:.78rem}.modal__body{overscroll-behavior:contain;flex:auto;padding:14px;overflow:auto}.modal__actions{padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);gap:8px;display:flex;position:sticky;bottom:0}.modal__actions .btn{flex:auto}.modal__message{margin:0 0 8px;font-size:.9rem}.modal__detail{background:var(--bg);max-height:220px;font-family:var(--font-mono);white-space:pre-wrap;border-radius:6px;margin:0;padding:10px;font-size:.76rem;line-height:1.5;overflow:auto}@media (min-width:768px){.modal-backdrop{align-items:center;padding:20px}.modal{border-radius:var(--radius);max-width:600px;max-height:84dvh;box-shadow:0 12px 40px #00000038}.modal--dialog{max-width:520px}}.sheet-form{flex-direction:column;display:flex}.sheet-status{background:var(--bg);border-radius:8px;margin-bottom:12px;padding:10px 12px}.sheet-status__line{overflow-wrap:anywhere;margin:0;font-size:.82rem}.sheet-status__line--warn{color:var(--danger);margin-top:4px}.preview{background:var(--accent-soft);border-radius:8px;margin-top:14px;padding:10px 12px}.preview__main{overflow-wrap:anywhere;margin:0;font-size:.95rem;font-weight:600}.preview__main.is-error{color:var(--danger)}.preview__note{color:var(--ink-soft);overflow-wrap:anywhere;margin:4px 0 0;font-size:.76rem}.preview__total{margin:6px 0 0;font-size:.78rem}.preview__total.is-ok{color:var(--accent-ink)}.preview__total.is-over{color:var(--danger)}.preview__total.is-under{color:var(--warn)}.choice-list{flex-direction:column;gap:8px;display:flex}.choice{width:100%;min-height:var(--tap);border:1px solid var(--line);text-align:left;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:2px;padding:10px 12px;font-size:.88rem;display:flex}.choice__desc{color:var(--ink-soft);font-size:.74rem;font-weight:400}.export-choice-list{flex-direction:column;gap:8px;display:flex}.export-choice{min-height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.export-choice:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.export-choice input{flex:none;margin-top:4px}.export-choice__body{flex-direction:column;gap:2px;min-width:0;display:flex}.export-choice__label{font-size:.88rem;font-weight:600}.export-choice__desc{color:var(--ink-soft);overflow-wrap:anywhere;font-size:.74rem}.export__pages{margin-top:12px}.page-list{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:10px;display:grid}.page-row{min-height:var(--tap);border:1px solid var(--line);cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:8px;display:flex}.page-row__preview{border:1px solid var(--line);background:var(--paper);flex:none;width:54px;height:76px}.page-row__text{flex-direction:column;gap:2px;min-width:0;font-size:.78rem;display:flex}.page-row__title{font-weight:600}.page-row__meta{color:var(--ink-soft);font-size:.72rem}.toast-root{left:0;right:0;bottom:calc(var(--bottom-h) + 10px);z-index:200;pointer-events:none;flex-direction:column;gap:8px;padding:0 12px;display:flex;position:fixed}.toast{background:var(--ink);color:#fff;pointer-events:auto;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:.84rem;display:flex;box-shadow:0 8px 24px #00000038}.toast--error{background:var(--danger)}.toast--success{background:var(--accent)}.toast--warn{background:var(--warn)}.toast__body{flex:auto;min-width:0}.toast__message{overflow-wrap:anywhere;margin:0}.toast__detail{max-height:180px;font-family:var(--font-mono);white-space:pre-wrap;opacity:.92;margin:6px 0 0;font-size:.72rem;overflow:auto}.toast__actions{flex:none;gap:6px;display:flex}.toast .btn{color:#fff;background:0 0;border-color:#ffffff73}.toast .btn:hover:not(:disabled){background:#ffffff24}@media (min-width:768px){.toast-root{width:min(460px,100vw - 32px);padding:0;bottom:16px;left:auto;right:16px}}@media print{@page{size:A4 portrait;margin:12mm}body{background:#fff;font-size:11pt}.app__bar,.app__side,.app__bottom,.app__banners,.paper-exit,.toast-root,.overlay-root{display:none!important}.app,.app__main{min-height:0;margin:0!important;padding:0!important;display:block!important}.paper{box-shadow:none;border:0;border-radius:0;padding:0;font-size:10.5pt}.paper__header,.sec__head,.sec__cue{break-after:avoid;page-break-after:avoid}.bar{break-inside:avoid;page-break-inside:avoid;min-height:0}.sec__grid{break-inside:auto;grid-template-columns:repeat(var(--cols-print,4), minmax(0, 1fr))}.bar__head{justify-content:flex-start;min-height:0;font-size:7pt}.bar__grip,.bar__warn,.ev__flag,.no-print{display:none!important}.ev{min-height:0;background:0 0!important;border:0!important}.bar.is-selected,.ev.is-selected{border-color:var(--line)!important;box-shadow:none!important;background:0 0!important}.bar--warn{border-color:var(--line)!important}}:root{--radius:14px;--tap:44px;--bottom-h:70px;--workspace-max:1180px}body{background:var(--bg);color:var(--ink)}.app.qingpu{background:radial-gradient(circle at 0 0, color-mix(in srgb, var(--accent-soft) 58%, transparent), transparent 35rem), var(--bg);min-height:100dvh}.qingpu .app__bar{min-height:70px;padding:10px max(16px, calc((100vw - var(--workspace-max)) / 2));background:color-mix(in srgb, var(--paper) 94%, transparent);border-bottom-color:color-mix(in srgb, var(--line) 80%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);gap:14px}.brand-lockup{align-items:center;gap:10px;min-width:160px;margin-right:auto;display:flex}.brand-mark{background:var(--accent-soft);width:40px;height:40px;color:var(--accent-ink);border-radius:13px;justify-content:center;align-items:center;display:inline-flex}.brand-lockup strong,.brand-lockup small{line-height:1.2;display:block}.brand-lockup strong{letter-spacing:.04em;font-size:1.08rem}.brand-lockup small{color:var(--ink-soft);margin-top:3px;font-size:.72rem}.mode-tabs,.top-actions,.score-controls,.display-tabs{align-items:center;gap:6px;display:flex}.mode-tabs{border:1px solid var(--line);background:var(--paper-alt);border-radius:14px;padding:4px}.mode-tab{min-width:auto;min-height:36px;color:var(--ink-soft);white-space:nowrap;background:0 0;border-color:#0000;border-radius:10px;font-size:.82rem}.mode-tab.is-active{background:var(--paper);border-color:var(--line);color:var(--accent-ink);box-shadow:0 2px 7px #25352b0f}.top-actions .btn,.score-controls .btn{border-radius:11px}.top-actions .save-status{margin-right:3px}.qingpu .app__banners{width:min(var(--workspace-max), calc(100% - 32px));margin:10px auto 0}.qingpu .app__main{width:min(var(--workspace-max), calc(100% - 32px));margin:0 auto;padding:18px 0 116px}.qingpu .app__side{min-width:0;padding:2px 4px 0 0;display:flex}.score-workspace{min-width:0}.score-toolbar{justify-content:space-between;align-items:flex-end;gap:16px;min-height:76px;margin-bottom:14px;display:flex}.workspace-heading{min-width:0}.workspace-eyebrow{color:var(--accent);letter-spacing:.14em;margin-bottom:4px;font-size:.68rem;font-weight:800;display:block}.workspace-heading h1{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.2;overflow:hidden}.score-controls{flex-wrap:wrap;justify-content:flex-end}.display-tabs{border:1px solid var(--line);background:var(--paper-alt);border-radius:11px;padding:3px}.display-tabs .btn{min-width:auto;min-height:36px;color:var(--ink-soft);background:0 0;border-color:#0000;border-radius:8px;padding-inline:10px;font-size:.76rem}.display-tabs .btn.is-active{background:var(--paper);border-color:var(--line);color:var(--accent-ink)}.toolbar-option{border-radius:11px;min-width:auto;min-height:42px;padding-inline:12px}.toolbar-option.is-active{border-color:color-mix(in srgb, var(--accent) 65%, var(--line));background:var(--accent-soft);color:var(--accent-ink)}.icon-button{padding:0}.qingpu .app__paper{min-width:0}.qingpu .paper{border:0;border-radius:18px;min-height:940px;padding:clamp(24px,4vw,48px);box-shadow:0 16px 42px #2b362e14}.qingpu .paper__header{border-bottom:1px solid var(--line-strong);margin-bottom:24px;padding-bottom:22px}.qingpu .paper__header.is-editable{cursor:pointer;border-radius:12px;transition:background .18s,padding .18s}.qingpu .paper__header.is-editable:hover,.qingpu .paper__header.is-editable:focus-visible{background:var(--accent-soft);padding:10px 12px 22px}.qingpu .paper__title{letter-spacing:-.02em}.qingpu .paper__facts{color:var(--ink-soft);gap:6px 18px}.qingpu .fact__value{color:var(--ink)}.qingpu .paper__hint{border:1px solid var(--warn-line)}.qingpu .paper__hint.no-print{max-width:58em;padding:5px 8px;font-size:.72em}.qingpu .sec__head{border-radius:9px;min-height:38px;padding-inline:4px}.qingpu .sec__name{letter-spacing:.02em;font-size:1.08em}.qingpu .sec__grid{gap:8px;margin-top:4px}.qingpu .bar{border-color:color-mix(in srgb, var(--line) 90%, transparent);background:color-mix(in srgb, var(--paper) 88%, var(--paper-alt));border-radius:10px;gap:4px;padding:4px;transition:border-color .16s,box-shadow .16s,transform .16s}.qingpu .bar:hover{border-color:var(--line-strong)}.qingpu .bar.is-playing{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);transform:translateY(-1px)}.qingpu .bar__head{min-height:28px;color:var(--ink-soft);font-size:.63em}.qingpu .bar__events{gap:5px;min-height:3.1em}.qingpu .ev{background:var(--accent-soft);border-radius:8px}.qingpu button.ev.is-playing{outline:2px solid var(--accent);outline-offset:-2px}.qingpu .ev__line--primary{font-size:calc(1.22em * var(--chord-scale,1))}.qingpu .ev__line:not(.ev__line--primary){font-size:calc(1em * var(--chord-scale,1))}.qingpu .lyric{font-size:calc(.72em * var(--lyric-scale,1))}.qingpu .bar__melody{background:color-mix(in srgb, var(--paper-alt) 75%, transparent);min-height:46px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;border:0;border-radius:7px;align-items:center;margin:2px 2px 0;padding:2px 4px;display:flex}.paper--preview .bar__melody,.paper--present .bar__melody{cursor:default}.qingpu .bar__melody.is-playing,.qingpu .bar__melody [data-note-index].is-playing{color:var(--accent-ink)}.qingpu .bar__melody svg{width:100%;height:48px;display:block;overflow:visible}.qingpu .melody-fallback{width:100%;color:var(--ink-soft);letter-spacing:.06em;white-space:nowrap;font-size:.76em;overflow:hidden}.score-add-actions{justify-content:center;gap:8px;padding-top:24px;display:flex}.score-page-footer{color:var(--ink-soft);justify-content:space-between;gap:10px;margin-top:30px;font-size:.7rem;display:flex}.player-dock{right:max(16px, calc((100vw - var(--workspace-max)) / 2));z-index:35;border:1px solid color-mix(in srgb, var(--line-strong) 72%, transparent);background:color-mix(in srgb, var(--paper) 94%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:16px;width:min(470px,100vw - 32px);position:fixed;bottom:18px;box-shadow:0 14px 38px #212b2524}.player-main{align-items:center;gap:8px;min-height:58px;padding:7px 10px;display:flex}.play-button{background:var(--accent);color:#fff;border:0;border-radius:50%;flex:none;width:42px;min-width:42px;height:42px;padding:0}.player-copy{flex-direction:column;flex:auto;min-width:0;line-height:1.25;display:flex}.player-copy strong{font-size:.78rem}.player-position{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.player-divider{background:var(--line);width:1px;height:24px}.player-tempo{background:var(--accent-soft);min-width:auto;min-height:36px;color:var(--accent-ink);border-color:#0000;padding-inline:8px;font-size:.72rem}.player-progress{background:var(--accent-soft);height:3px}.player-progress-fill{background:var(--accent);width:0;height:100%;transition:width .1s linear;display:block}.app__bottom{padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top-color:var(--line);background:color-mix(in srgb, var(--paper) 95%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);gap:6px}.bottom__item{color:var(--ink-soft);border-color:#0000;border-radius:11px}.bottom__item.is-active{background:var(--accent-soft);color:var(--accent-ink)}.studio-library{border:1px solid var(--line);background:color-mix(in srgb, var(--paper) 84%, transparent);border-radius:16px;min-width:0;padding:18px;box-shadow:0 8px 24px #2b362e0a}.library-heading,.library-subheading,.library-sort,.library-song-row,.library-foot,.setlist-choice,.setlist-order,.trash-row{align-items:center;gap:8px;display:flex}.library-heading{justify-content:space-between;margin-bottom:14px}.library-heading h2{margin:0;font-size:1.05rem}.search-field{border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);border-radius:11px;align-items:center;gap:6px;padding:0 10px;display:flex}.search-field .input{min-width:0;box-shadow:none;border:0;padding-inline:0}.library-navigation,.library-songs{flex-direction:column;gap:4px;margin-top:10px;display:flex}.library-nav{min-height:38px;color:var(--ink-soft);text-align:left;border-color:#0000;border-radius:9px;justify-content:flex-start;padding-inline:10px}.library-nav.is-active{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.nav-count{color:var(--ink-soft);margin-left:auto;font-size:.76rem}.library-subheading{color:var(--ink-soft);letter-spacing:.06em;justify-content:space-between;margin:18px 4px 3px;font-size:.72rem;font-weight:700}.library-sort{margin-top:18px}.library-sort .input{min-height:34px;padding-block:3px;font-size:.74rem}.library-song-row{min-width:0}.library-song{text-align:left;border-color:#0000;border-radius:11px;justify-content:flex-start;min-width:0;min-height:54px;padding:7px 8px}.library-song.is-active{background:var(--paper-alt);border-color:var(--line)}.song-avatar{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-ink);border-radius:9px;flex:0 0 30px;justify-content:center;align-items:center;display:inline-flex}.song-summary{flex-direction:column;flex:auto;min-width:0;line-height:1.25;display:flex}.song-summary strong,.song-summary small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.song-summary strong{font-size:.82rem}.song-summary small{color:var(--ink-soft);margin-top:3px;font-size:.68rem}.song-star{width:36px;color:var(--line-strong);flex:0 0 36px}.song-star.is-favorite{color:var(--warn)}.song-star.is-favorite .icon{fill:currentColor}.library-foot{border-top:1px solid var(--line);flex-wrap:wrap;margin-top:18px;padding-top:12px}.library-import{flex:auto}.library-manage{min-width:auto;padding-inline:8px;font-size:.72rem}.library-empty,.library-mini-hint{color:var(--ink-soft);margin:12px 5px;font-size:.78rem}.trash-row{border-bottom:1px solid var(--line);justify-content:space-between;padding:8px}.trash-row span{flex-direction:column;min-width:0;display:flex}.trash-row strong{font-size:.8rem}.trash-row small{color:var(--ink-soft);font-size:.68rem}.qingpu .modal-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#232a264d}.qingpu .modal{border:1px solid var(--line);border-radius:22px 22px 0 0;max-height:min(88dvh,760px);box-shadow:0 -10px 40px #1f2a2224}.qingpu .modal__header{padding:18px 20px 12px}.qingpu .modal__body{padding:4px 20px 18px}.qingpu .modal__actions{padding:12px 20px calc(12px + env(safe-area-inset-bottom))}.compact-form{flex-direction:column;gap:10px;display:flex}.field-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.field__label{color:var(--ink-soft);margin-bottom:4px;font-size:.76rem}.input{border-radius:10px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.notice{background:var(--accent-soft);color:var(--ink-soft);border-radius:9px;margin:6px 0;padding:8px 10px;font-size:.76rem}.notice--warn{background:var(--warn-soft);color:var(--warn)}.quick-chords,.transpose-choices,.theme-swatches,.more-grid,.bar-action-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;display:grid}.chord-suggestion{min-height:38px;font-size:.8rem}.theme-swatch{justify-content:flex-start;align-items:center;gap:7px;min-height:42px;display:flex}.swatch-color{border:2px solid;border-radius:50%;width:17px;height:17px}.theme-swatch.is-active{border-color:var(--accent);background:var(--accent-soft)}.more-grid .btn,.bar-action-grid .btn{min-height:52px}.import-panel{flex-direction:column;gap:10px;display:flex}.import-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.import-steps>div{border:1px solid var(--line);background:var(--paper-alt);border-radius:11px;padding:9px}.import-steps p{color:var(--ink-soft);margin:4px 0 0;font-size:.7rem;line-height:1.4}.step-number{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;margin-right:4px;font-size:.72rem;display:inline-flex}.import-text{resize:vertical;min-height:180px;font-family:var(--font-mono);font-size:.75rem;line-height:1.45}.import-preview{border:1px solid var(--line);background:var(--paper-alt);border-radius:11px;flex-direction:column;gap:4px;padding:10px;display:flex}.import-preview p{color:var(--ink-soft);margin:0;font-size:.76rem}.import-preview strong{font-size:.92rem}.chord-diagram{min-height:120px}.chord-diagram svg{max-width:100%}.playback-switches{gap:18px;padding:4px 0;display:flex}.playback-switches label{align-items:center;gap:6px;font-size:.78rem;display:flex}.setlist-choice,.setlist-order{border-bottom:1px solid var(--line);justify-content:space-between;padding:8px 0;font-size:.8rem}.management-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.score-export-panel{min-height:120px}.export-preview-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;max-height:52dvh;padding:4px;display:grid;overflow:auto}.export-preview-card{color:var(--ink-soft);flex-direction:column;align-items:center;gap:5px;font-size:.7rem;display:flex}.export-thumb{border:1px solid var(--line);background:#fff;border-radius:3px;width:88px;height:124px;box-shadow:0 3px 10px #00000014}.score-export-page .paper{width:100%;min-height:100%;box-shadow:none;background:#fff;border:0;border-radius:0;padding:0}.score-export-page .paper__header{margin-bottom:18px;padding-bottom:13px}.score-export-page .paper__hint.no-print{display:none}.score-export-page .sec__grid{grid-template-columns:repeat(var(--cols-print,var(--cols,4)), minmax(0, 1fr))}.score-export-page .sec__head{min-height:26px}.score-export-page .bar__head{min-height:22px}.score-export-page .bar__melody{min-height:42px}.score-export-page .score-page-footer,.score-export-page .score-add-actions{display:none}@media (min-width:1024px){:root{--bottom-h:0px}.qingpu .app__main{grid-template-columns:250px minmax(0,1fr);gap:24px;padding-bottom:50px;display:grid}.qingpu .app__bottom{display:none}.qingpu .app__side{max-height:calc(100dvh - 110px);position:sticky;top:88px;overflow:auto}.qingpu .paper{max-width:820px;margin:0 auto}}@media (max-width:1023px){.qingpu .app__side{display:none}.qingpu .app__main{width:min(820px,100% - 24px);padding-top:10px}}@media (max-width:680px){.qingpu .app__bar{min-height:60px;padding:8px 10px}.brand-lockup{min-width:auto}.brand-lockup small{display:none}.brand-mark{width:36px;height:36px}.mode-tabs{order:3;justify-content:space-between;width:100%}.mode-tab{flex:1 1 0}.top-actions .desktop-action,.top-actions .save-status,.top-actions .top-export{display:none}.top-actions{margin-left:auto}.qingpu .app__main{width:100%;padding:8px 8px calc(var(--bottom-h) + 12px)}.score-toolbar{flex-direction:column;align-items:flex-start;gap:10px;min-height:0;margin-bottom:10px}.score-controls{justify-content:flex-start;width:100%;padding-bottom:2px;overflow:auto}.display-tabs{flex:none}.qingpu .paper{border-radius:14px;min-height:800px;padding:22px 14px 26px}.qingpu .paper__title{font-size:1.35em}.qingpu .paper__facts{gap:3px 12px;font-size:.74em}.qingpu .sec__grid{gap:5px}.qingpu .bar{padding:3px}.qingpu .bar__events{gap:3px}.qingpu .ev{padding-inline:4px}.player-dock{right:8px;bottom:calc(var(--bottom-h) + 8px);width:calc(100vw - 16px)}.player-main{min-height:54px}.player-stop,.player-divider,.player-tempo{display:none}.import-steps,.field-pair{grid-template-columns:1fr}}@media print{.score-export-page{width:auto!important;height:auto!important;padding:0!important;position:static!important;left:auto!important}}:root{--bottom-h:72px;--score-font:var(--font-sans)}[hidden]{display:none!important}.qingpu.single-workbench{background:var(--paper);--shell-width:940px}.single-workbench .app__bar{min-height:68px;padding:10px max(20px, calc((100vw - var(--shell-width)) / 2));background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:1px solid var(--line);flex-wrap:nowrap;gap:12px}.single-workbench .brand-lockup{gap:14px;min-width:0}.single-workbench .brand-lockup>strong{letter-spacing:.06em;font-size:25px;font-weight:650}.single-workbench .top-actions{flex:none;gap:4px}.single-workbench .top-actions .btn{color:var(--ink);background:0 0;border:0;padding-inline:12px;font-size:14px}.single-workbench .top-actions .icon-button{width:44px;padding:0}.single-workbench .top-actions .btn:hover:not(:disabled){background:var(--accent-soft)}.single-workbench[data-page] .app__main{width:min(var(--shell-width), 100%);margin:0 auto;padding:0 24px 166px;display:block}.single-workbench .app__side{max-height:none;padding:32px 0 0;display:block;position:static;overflow:visible}.single-workbench .app__banners{max-width:var(--shell-width)}.single-workbench .score-toolbar{border-bottom:1px solid var(--line);justify-content:stretch;align-items:center;min-height:70px;margin:0}.single-workbench .score-controls{justify-content:flex-start;gap:8px;width:100%}.single-workbench .display-tabs{background:var(--paper-alt);border-color:var(--line);border-radius:10px;padding:3px}.single-workbench .display-tabs .btn{min-height:38px;padding-inline:13px}.single-workbench .display-tabs .btn.is-active{color:var(--accent-ink);background:var(--accent-soft);box-shadow:none;border-color:#0000}.single-workbench .toolbar-option{background:0 0;border-color:#0000}.single-workbench .score-controls>.toolbar-option:first-of-type{margin-left:auto}.single-workbench .score-controls>.icon-button{background:0 0;border:0}.single-workbench .paper{max-width:none;min-height:640px;box-shadow:none;font-family:var(--score-font);border:0;border-radius:0;padding:32px 8px 22px}.single-workbench .paper__header{border-bottom:1px solid var(--line);margin-bottom:24px;padding:0 0 22px}.single-workbench .paper__header.is-editable:hover,.single-workbench .paper__header.is-editable:focus-visible{background:0 0;border-radius:0;padding:0 0 22px}.single-workbench .paper__title{letter-spacing:-.025em;font-size:1.8em}.single-workbench .paper__artist{margin-top:6px}.single-workbench .paper__facts{margin-top:12px}.single-workbench .paper__header.is-editable:after{content:"编辑歌曲信息";color:var(--accent-ink);font:11px var(--font-sans);margin-top:10px;display:inline-block}.single-workbench .paper__hint.no-print{display:none}.single-workbench .score-add-actions{border-top:1px solid var(--line);justify-content:flex-start;padding-top:15px}.single-workbench .score-add-actions .btn{font-size:13px}.single-workbench .score-page-footer{margin-top:20px}.single-workbench[data-page] .app__bottom{height:calc(72px + env(safe-area-inset-bottom));min-height:72px;padding:3px max(8px, calc((100vw - 660px) / 2)) env(safe-area-inset-bottom);background:var(--paper);border-top:1px solid var(--line);-webkit-backdrop-filter:none;backdrop-filter:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid}.single-workbench .bottom__item{color:var(--ink-soft);background:0 0;border:0;border-radius:0;flex-direction:column;gap:4px;padding:7px 4px;font-size:12px;position:relative}.single-workbench .bottom__item .icon{stroke-width:1.6px;width:21px;height:21px}.single-workbench .bottom__item.is-active{color:var(--accent-ink);background:0 0}.single-workbench .bottom__item.is-active:after{content:"";background:var(--accent);border-radius:2px;height:3px;position:absolute;bottom:0;left:32%;right:32%}.single-workbench .player-dock{left:0;right:0;bottom:calc(72px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);background:var(--paper);width:100%;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0}.single-workbench .player-main{width:min(var(--shell-width), 100%);gap:10px;min-height:58px;margin:auto;padding:6px 24px}.single-workbench .play-button{background:var(--accent-soft);width:40px;min-width:40px;height:40px;min-height:40px;color:var(--accent-ink)}.single-workbench .player-copy{flex:0 140px}.single-workbench .player-copy strong{font-weight:500}.single-workbench .player-position{margin-top:3px}.single-workbench .player-divider{margin-left:auto}.single-workbench .player-main>.btn:not(.play-button){background:0 0;border:0}.single-workbench .player-main>.icon-button{width:40px;min-width:40px;min-height:40px}.single-workbench .player-progress{height:2px}.beat-dots{justify-content:center;align-items:center;gap:9px;min-width:54px;display:flex}.beat-dot{background:var(--line);border-radius:50%;width:8px;height:8px}.beat-dot.is-active{background:var(--accent);transform:scale(1.3)}.single-workbench:before{content:"";z-index:25;pointer-events:none;opacity:0;background:var(--beat-color,#4a7c59);transition:opacity .13s ease-out;position:fixed;inset:0}.single-workbench.beat-pulse[data-beat-range=screen]:before{opacity:var(--beat-strength,.1)}.single-workbench[data-beat-range=edge]:before{box-shadow:inset 0 0 0 8px var(--beat-color,#4a7c59);background:0 0}.single-workbench.beat-pulse[data-beat-range=edge]:before{opacity:var(--beat-strength,.1)}.single-workbench[data-beat-range=row].beat-pulse .bar.beat-row:after{content:"";border-radius:inherit;pointer-events:none;background:var(--beat-color,#4a7c59);opacity:var(--beat-strength,.1);position:absolute;inset:0}.single-workbench .stage-controls{z-index:28;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:row;justify-content:space-between;align-items:center;gap:6px;padding-block:9px;position:sticky;top:68px}.stage-song-controls,.live-page-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.single-workbench .stage-song-controls .btn{border-color:var(--line);background:0 0}.single-workbench .live-page-controls .btn{background:var(--paper-alt);border-color:#0000}.single-workbench .live-page-controls .btn.is-active{color:var(--accent-ink);background:var(--accent-soft)}.live-page-count{text-align:center;min-width:48px;color:var(--ink-soft);font-size:12px}.live-page-controls .icon-button{width:40px;min-width:40px;padding:0}.live-countdown{min-width:76px;color:var(--accent-ink);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.strength-control{align-items:center;gap:12px;display:flex}.strength-control input{flex:auto;min-width:0}.strength-value{min-width:40px;color:var(--ink-soft);font-size:12px}.practice-choice{align-items:center;gap:8px;font-size:13px;display:flex}.single-workbench button.lyric{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:4px;font-family:inherit}.single-workbench button.lyric:hover{color:var(--accent-ink);background:var(--accent-soft)}.score-export-page{font-family:var(--score-font,var(--font-sans))}.score-export-page .lyric{font-size:calc(.72em * var(--lyric-scale,1))}.score-export-page .ev__line--primary{font-size:calc(1.1em * var(--chord-scale,1))}.score-export-page .ev__line:not(.ev__line--primary){font-size:calc(1em * var(--chord-scale,1))}.single-workbench .stage-controls{flex-wrap:wrap;gap:6px;padding-top:16px;display:flex}.single-workbench .stage-controls .btn{font-size:12px}.single-workbench[data-page=present] .paper{font-size:calc(19px * var(--font-scale,1))}.single-workbench[data-page=library] .app__main{padding-bottom:104px}.single-workbench .studio-library{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.single-workbench .library-heading h2{letter-spacing:-.02em;font-size:25px}.single-workbench .library-heading .icon-button{border-color:var(--line)}.single-workbench .search-field{background:var(--paper-alt);max-width:520px}.single-workbench .search-field .input{background:0 0}.single-workbench .library-navigation{flex-direction:row;gap:10px;padding-top:8px}.single-workbench .library-nav{justify-content:flex-start;gap:9px;min-height:44px}.single-workbench .library-subheading{letter-spacing:0;margin:22px 0 6px;font-size:12px}.single-workbench .library-subheading .icon-button{min-height:36px}.single-workbench .library-sort{border-top:1px solid var(--line);padding-top:16px}.single-workbench .library-sort .input{background:0 0;width:145px}.single-workbench .library-songs{gap:0}.single-workbench .library-song-row{border-bottom:1px solid var(--line);padding-block:7px}.single-workbench .library-song{border-radius:10px;flex:1;gap:14px;min-height:70px;padding-inline:12px}.single-workbench .song-avatar{flex-basis:42px;width:42px;height:42px}.single-workbench .song-summary strong{font-size:16px;font-weight:600}.single-workbench .song-summary small{margin-top:7px;font-size:12px}.single-workbench .song-star{min-width:48px;color:var(--ink-soft);flex-basis:48px}.single-workbench .song-star.is-favorite{color:var(--warn)}.single-workbench .library-foot{gap:12px;margin-top:25px;padding-top:18px}.single-workbench .library-import{flex:0 auto}.single-workbench .library-manage{font-size:13px}.single-workbench .import-issue-button{color:var(--warn);margin:16px 0 0;display:block}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#17221d4d}.modal{border:1px solid var(--line);max-height:90dvh;box-shadow:0 12px 60px #16211a21}.modal__head{border-color:var(--line);padding:20px 22px 15px}.modal__title{letter-spacing:-.02em;font-size:20px}.modal__subtitle{margin-top:4px;font-size:12px}.modal__body{padding:18px 22px 24px}.modal__actions{padding:14px 22px calc(14px + env(safe-area-inset-bottom));gap:8px}.modal .btn{border-radius:10px;font-size:13px}.modal .input{padding:11px 12px;font-size:15px}.modal .input[type=range]{accent-color:var(--accent);padding:0}.modal .field{margin:0}.modal .compact-form{gap:15px}.modal .field-pair{grid-template-columns:repeat(2,minmax(0,1fr))}.modal .import-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.modal .import-steps>div{background:0 0;border:0;padding:0}.modal .import-steps strong{font-size:13px}.modal .import-steps p{font-size:11px}.modal .step-number{width:20px;height:20px;font-size:11px}.modal .copy-prompt{min-height:48px;color:var(--accent-ink);background:var(--accent-soft);border-color:#0000}.modal .import-text{font-size:12px;line-height:1.6}.modal .import-preview:empty{display:none}.modal .import-secondary{flex-wrap:wrap;gap:6px;display:flex}.modal .details__summary{min-height:44px;font-size:13px}.modal .more-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.modal .more-grid .btn{justify-content:flex-start;min-height:52px;padding:12px}.modal .quick-chords{grid-template-columns:repeat(4,minmax(0,1fr))}.toast-root{bottom:calc(146px + env(safe-area-inset-bottom))}@media (min-width:768px){.modal--sheet{border-radius:18px}}@media (max-width:560px){.single-workbench .app__bar{gap:4px;min-height:60px;padding:8px 14px}.single-workbench .brand-lockup{gap:5px}.single-workbench .brand-lockup>strong{font-size:23px}.single-workbench .brand-lockup .save-status,.single-workbench .brand-lockup .status-chip.is-ok,.single-workbench .brand-lockup .status-chip.is-pending{display:none}.single-workbench .top-actions{gap:0}.single-workbench .top-actions .btn{min-width:40px;padding-inline:8px;font-size:13px}.single-workbench .top-actions .btn .icon{width:16px;height:16px}.single-workbench .top-actions .icon-button{width:40px;padding:0}.single-workbench .top-actions .desktop-action{display:none}.single-workbench .top-actions .top-export{display:inline-flex}.single-workbench[data-page] .app__main{padding:0 14px 168px}.single-workbench .score-toolbar{min-height:70px;padding:10px 0}.single-workbench .score-controls{flex-wrap:wrap;gap:4px}.single-workbench .display-tabs{flex:auto}.single-workbench .display-tabs .btn{flex:1 1 0;min-height:38px;padding-inline:7px;font-size:12px}.single-workbench .toolbar-option{padding-inline:8px;font-size:12px}.single-workbench .transpose-option{display:none}.single-workbench .display-tabs .btn{white-space:nowrap}.single-workbench .score-controls>.icon-button{min-width:38px;padding:0}.single-workbench .paper{min-height:600px;padding:24px 0 18px}.single-workbench .paper__title{font-size:1.7em}.single-workbench .paper__facts{gap:5px 13px;font-size:.78em}.single-workbench .player-main{gap:6px;padding:6px 14px}.single-workbench .player-copy{flex:auto}.single-workbench .player-tempo{display:none}.single-workbench .player-stop{display:inline-flex}.single-workbench .library-heading h2{font-size:23px}.single-workbench .app__side{padding-top:25px}.single-workbench .stage-controls{top:60px}.modal__head{padding:18px 18px 13px}.modal__body{padding:14px 18px 22px}.modal__actions{padding-inline:18px}.modal .quick-chords{grid-template-columns:repeat(3,minmax(0,1fr))}}@media print{.single-workbench[data-page] .app__main{width:100%;padding:0}.single-workbench .score-toolbar,.single-workbench .player-dock,.single-workbench .stage-controls,.single-workbench .score-add-actions,.single-workbench .score-page-footer,.single-workbench .import-issue-button,.single-workbench[data-page] .app__bottom{display:none!important}.single-workbench .paper{min-height:0;padding:0}.single-workbench .paper__header:after,.single-workbench:before,.single-workbench .bar:after{display:none!important}}.single-workbench[data-page] .app__bottom{grid-template-columns:repeat(2,minmax(0,1fr));padding-inline:max(12px,50vw - 260px)}.single-workbench .bottom__item.is-active:after{left:40%;right:40%}.single-workbench .score-toolbar{flex-direction:column;align-items:stretch;gap:12px;padding-block:14px;display:flex}.score-context{justify-content:space-between;align-items:center;gap:8px;display:flex}.score-mode-switch{gap:4px;display:flex}.score-mode-switch .btn{background:0 0;border:0;min-height:40px;padding-inline:14px;font-size:13px}.score-mode-switch .btn.is-active{color:var(--accent-ink);background:var(--accent-soft)}.single-workbench .score-context>.btn{color:var(--accent-ink);background:0 0;border:0;font-size:12px}.library-intro{color:var(--ink-soft);margin:4px 0 24px;font-size:13px}.single-workbench .library-ai-card{text-align:left;border:1px solid var(--line);background:var(--accent-soft);width:100%;color:var(--accent-ink);justify-content:flex-start;gap:15px;min-height:92px;margin-bottom:26px;padding:20px}.library-ai-card>span{flex-direction:column;flex:1;gap:8px;display:flex}.library-ai-card strong{font-size:20px;font-weight:600}.library-ai-card small{color:var(--ink-soft);font-size:12px}.library-groups{margin-top:14px}.library-groups>summary{color:var(--ink-soft);cursor:pointer;align-items:center;min-height:44px;font-size:13px;display:flex}.library-groups>summary:after{content:"⌄";margin-left:8px}.library-groups[open]>summary:after{content:"⌃"}.bar__lyrics-free{min-width:0;font-size:calc(.8em * var(--lyric-scale,1));color:var(--ink-soft);flex-shrink:0;position:relative}.word-token{white-space:pre;font:inherit;color:inherit;background:0 0;border:0;border-radius:4px;padding:2px 3px;line-height:1.3;position:absolute;transform:translate(-50%,-50%)}button.word-token{cursor:grab;min-width:20px;min-height:28px}button.word-token:hover,button.word-token:focus-visible{color:var(--accent-ink);background:var(--accent-soft)}.word-token.is-dragging{cursor:grabbing;z-index:8;outline:1px dashed var(--accent)}.repeat-mark{z-index:2;color:var(--ink);pointer-events:none;font-size:25px;line-height:1;position:absolute;top:32px}.repeat-mark--start{left:-9px}.repeat-mark--end{right:-9px}.repeat-mark small{font-size:10px;position:absolute;top:-18px;right:0}.bar-ending{border-top:1px solid var(--ink);border-left:1px solid var(--ink);padding-left:5px;font-size:11px;display:block}.paper--no-numbers .bar__no{visibility:hidden}.paper--compact .paper__header{margin-bottom:12px!important;padding-bottom:10px!important}.paper--compact .sec{margin-top:14px}.paper--compact .sec__grid{gap:4px}.paper--compact .bar{gap:1px;padding:2px}.paper--compact .bar__head{min-height:18px}.paper--compact .bar__lyrics-free{height:32px!important}.layout-visibility{border:1px solid var(--line);border-radius:10px;gap:12px;margin:4px 0;padding:12px 14px;display:grid}.layout-visibility legend{color:var(--ink-soft);padding-inline:6px;font-size:13px}.layout-visibility label{align-items:center;gap:9px;font-size:13px;display:flex}.layout-visibility input{accent-color:var(--accent)}.modal--alignment{width:min(920px,100vw - 24px);max-width:920px}.alignment-editor{flex-direction:column;gap:20px;display:flex}.alignment-actions{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.alignment-actions .field{width:110px}.alignment-viewport{border:1px solid var(--line);background:var(--paper-alt);overscroll-behavior:contain;border-radius:12px;max-width:100%;overflow:auto}.alignment-board{box-sizing:border-box;min-width:640px;padding:12px 24px}.alignment-chords{height:35px;color:var(--accent-ink);font-size:14px;position:relative}.alignment-chords span{position:absolute}.alignment-row{border-top:1px dashed var(--line-strong);background:linear-gradient(transparent 49.5%,var(--line) 49.5%,var(--line) 50.5%,transparent 50.5%);position:relative}.alignment-token{min-width:44px;min-height:44px;color:var(--ink);cursor:grab;background:0 0;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 8px;display:flex;position:absolute;transform:translate(-50%,-50%)}.alignment-token small{font:11px var(--font-sans);color:var(--ink-soft)}.alignment-token.is-selected{border-color:var(--accent);background:var(--accent-soft)}.alignment-token.is-dragging{cursor:grabbing;z-index:4}.alignment-inspector{gap:14px;display:grid}.alignment-word-actions{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:560px){.single-workbench .score-toolbar{gap:8px;padding-block:10px}.single-workbench .score-context .btn{min-height:38px;padding-inline:10px;font-size:12px}.single-workbench .library-ai-card{gap:12px;padding:18px 14px}.library-ai-card strong{font-size:18px}.library-ai-card small{font-size:11px}.modal--alignment{width:100%;max-height:94dvh}}@media print{.score-context{display:none!important}}.single-workbench .bar__melody,.score-export-page .bar__melody{min-width:0;margin:0;padding:0}.single-workbench .bar__melody svg,.score-export-page .bar__melody svg{width:100%;height:56px;display:block;overflow:visible}.single-workbench .paper--present .bar__head--static{min-height:18px;font-size:.6em;display:flex}.single-workbench .bar__melody svg,.score-export-page .bar__melody svg{height:calc(56px * var(--font-scale,1))}.repeat-mark small{white-space:nowrap;font-family:var(--font-sans)}.lyric-layers{position:static}.bar__free-lyrics{pointer-events:none;font-size:calc(.8em * var(--lyric-scale,1));color:var(--ink-soft);z-index:3;position:absolute;inset:0}.bar__free-lyrics .word-token{pointer-events:auto}.alignment-board{position:relative}.paper__title.is-placeholder,.paper__artist.is-placeholder{color:var(--ink-soft);opacity:.55}.blank-score{min-height:240px;color:var(--ink-soft);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.blank-score>.icon{opacity:.4}.blank-score p{margin:0;font-size:15px}.blank-score small{opacity:.8;max-width:280px;font-size:12px;line-height:1.8}.score-chord-diagrams{border-bottom:1px solid var(--line);break-inside:avoid;flex-wrap:wrap;justify-content:flex-start;align-items:flex-start;gap:14px 18px;margin:0 0 28px;padding:0 0 20px;display:flex}.score-chord-diagram{max-width:100%;color:var(--ink);border-radius:8px;flex:none;transition:background .15s}.score-chord-diagram[role=button]{cursor:pointer}.score-chord-diagram[role=button]:hover{background:var(--accent-soft)}.score-chord-diagram[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.score-chord-diagram svg,.diagram-preview svg{width:100%;height:auto;display:block;overflow:visible}.diagram-search-results{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;display:grid}.diagram-search-results .btn{min-width:0;min-height:40px;padding:5px;font-size:13px}.diagram-search-results .btn.is-active{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}.diagram-preview{background:var(--paper-alt);min-height:165px;color:var(--ink);border-radius:12px;justify-content:center;align-items:center;padding:12px;display:flex}.diagram-preview-svg{flex:none}.diagram-size-control{align-items:center;gap:14px;display:flex}.diagram-size-control .input{flex:1;min-width:0}.diagram-size-control span{text-align:right;min-width:56px;color:var(--ink-soft);font-size:12px}.diagram-management{flex-wrap:wrap;gap:8px;display:flex}.diagram-management .btn{flex:1;font-size:12px}@media (max-width:600px){.diagram-search-results{grid-template-columns:repeat(4,minmax(0,1fr))}.single-workbench .score-controls{flex-wrap:wrap}.single-workbench .diagram-option{min-height:38px;padding-inline:10px;font-size:12px}.score-chord-diagrams{gap:10px 12px;margin-bottom:22px}.blank-score{min-height:210px;padding-inline:14px}}
