:root{--bg:#f4f2ee;--surface:#fff;--text:#1f1d1a;--muted:#6b665e;--border:#dcd7ce;--accent:#7a4b1e;--accent-text:#fff;--score-bg:#d9d5cd;--error:#b3261e;--ok:#2e7d32;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#1b1a18;--surface:#262421;--text:#ece8e1;--muted:#a39d93;--border:#3a3733;--accent:#d8a15f;--accent-text:#1b1a18;--score-bg:#121110}}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;background:var(--bg);height:100%;margin:0;overflow:hidden}button,select,input{font:inherit;color:inherit}button,select{border:1px solid var(--border);background:var(--surface);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-radius:10px;min-width:44px;min-height:44px;padding:0 12px}button:disabled{opacity:.4}button.primary,button.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.library{height:100%;padding:env(safe-area-inset-top) max(16px, env(safe-area-inset-right)) 32px max(16px, env(safe-area-inset-left));overflow-y:auto}.library-header{align-items:center;gap:12px;padding:16px 0 8px;display:flex}.library-header h1{margin:0;font-size:28px}.search{flex:1}.search input{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;min-height:44px;padding:0 14px}.tabs,.breadcrumbs{flex-wrap:wrap;gap:8px;padding:8px 0;display:flex}.breadcrumbs button{color:var(--accent);background:0 0;border:none;padding:0 4px}.breadcrumbs button:not(:last-child):after{content:" ›";color:var(--muted)}.library-message{color:var(--muted)}.error{color:var(--error)}.file-list{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.file-list button{text-align:left;align-items:center;gap:12px;width:100%;min-height:56px;display:flex}.file-icon{font-size:22px}.file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.badge{background:var(--bg);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:12px}.viewer{background:var(--score-bg);flex-direction:column;height:100%;display:flex}.toolbar{background:var(--surface);border-bottom:1px solid var(--border);padding:env(safe-area-inset-top) max(8px, env(safe-area-inset-right)) 4px max(8px, env(safe-area-inset-left));flex:none}.toolbar-row{align-items:center;gap:6px;padding:4px 0;display:flex;overflow-x:auto}.toolbar-title{text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:17px;overflow:hidden}.segmented{gap:4px;display:flex}.swatches{gap:6px;padding:0 6px;display:flex}.swatch{border:2px solid var(--border);border-radius:50%;width:36px;min-width:36px;height:36px;min-height:36px;padding:0}.swatch.active{outline:3px solid var(--accent);outline-offset:2px}.spacer{flex:1}.toggle{white-space:nowrap;align-items:center;gap:6px;padding:0 6px;display:flex}.toggle input{width:22px;height:22px}.sync{color:var(--muted);white-space:nowrap;font-size:13px}.sync-synced{color:var(--ok)}.sync-stashed{color:var(--accent);font-weight:600}.badge-stashed{color:var(--accent);border-color:var(--accent)}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:100;background:var(--text);color:var(--bg);pointer-events:none;border-radius:999px;padding:10px 18px;font-size:15px;animation:.6s forwards toast;position:fixed;transform:translate(-50%)}@keyframes toast{0%{opacity:0;transform:translate(-50%,6px)}15%,75%{opacity:1;transform:translate(-50%)}to{opacity:0}}.sync-error,.sync-signed-out{color:var(--error)}.score-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;overflow:auto}.score-scroll.step{touch-action:none;overflow:hidden}.pages{position:relative}.view-line{flex-direction:column;display:flex;position:absolute}.spread{flex:1;align-items:flex-end;display:flex}.spread-page{flex-direction:column;display:flex}.view-options{gap:16px}.view-option{white-space:nowrap;align-items:center;gap:6px;display:flex}.view-option>span{color:var(--muted);font-size:13px}.page{background:#fff;flex:none;position:relative;box-shadow:0 1px 4px #00000040}.page-canvas,.annotation-layer,.annotation-layer canvas{position:absolute;inset:0}.annotation-layer canvas{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.viewer-message{text-align:center;color:var(--muted);padding:32px}.page-indicator{right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));color:#fff;background:#0000008c;border:0;border-radius:999px;min-height:36px;padding:4px 14px;font-size:14px;position:fixed}.page-jump{left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));z-index:20;border:1px solid var(--border);background:var(--surface);border-radius:14px;align-items:center;gap:8px;padding:8px 10px;display:flex;position:fixed;box-shadow:0 6px 24px #00000040}.page-jump-label{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:0;max-width:30%;font-size:14px;overflow:hidden}.page-jump-slider{min-width:80px;height:44px;accent-color:var(--accent);flex:1}.page-jump-input{text-align:center;width:72px}.page-jump-total{color:var(--muted);white-space:nowrap;font-size:14px}.show-chrome{top:max(8px, env(safe-area-inset-top));right:max(8px, env(safe-area-inset-right));opacity:.35;position:fixed}.setlist-bar{align-items:center;gap:8px;padding:4px 0;display:flex}.setlist-row{gap:6px;display:flex}.file-list .setlist-row>button{width:auto}.file-list .setlist-row>.setlist-open{flex:1;min-width:0}.file-name small{color:var(--muted);font-size:13px;display:block}.setlist-editor .library-header{flex-wrap:wrap}.setlist-name{flex:1;min-width:180px;font-size:22px;font-weight:600}.setlist-editor input,.page-picker input{border:1px solid var(--border);background:var(--surface);border-radius:10px;min-height:44px;padding:0 12px}.setlist-items{gap:6px;margin:8px 0;padding:0;list-style:none;display:grid}.setlist-items li{border:1px solid var(--border);background:var(--surface);border-radius:12px;align-items:center;gap:6px;padding:6px;display:flex}.item-index{text-align:center;width:28px;color:var(--muted);font-variant-numeric:tabular-nums}.item-text{flex:none;gap:4px;width:220px;display:grid}.item-label,.item-note{width:100%;min-width:0}.item-note{min-height:30px;color:var(--muted);font-size:13px}.item-edition{flex:none;max-width:150px}a.item-source{color:inherit;text-decoration:none}.item-todo .file-name{color:var(--accent);font-weight:600}.badge-todo{color:var(--accent);border-color:var(--accent);border-style:dashed}.add-row{gap:8px;display:flex}.item-source{text-align:left;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.add-item{border-style:dashed;flex:1;width:100%;min-height:56px}.sheet-backdrop{z-index:10;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);border-radius:16px;flex-direction:column;width:min(960px,100%);height:100%;padding:12px 16px;display:flex;overflow:hidden}.sheet-header{align-items:center;gap:12px;display:flex}.sheet-title{text-overflow:ellipsis;white-space:nowrap;margin:0 0 4px;font-size:20px;overflow:hidden}.sheet-body{flex:1;overflow-y:auto}.page-picker{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.picker-fields{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.picker-fields label{color:var(--muted);flex-direction:column;gap:2px;font-size:13px;display:flex}.picker-fields input{color:var(--text);font-size:16px}.picker-fields input[type=number]{width:90px}.picker-hint{color:var(--muted);padding-bottom:12px;font-size:14px}.thumb-grid{flex-wrap:wrap;flex:1;align-content:flex-start;gap:12px;padding:4px;display:flex;overflow-y:auto}.thumb{border-width:2px;flex-direction:column;align-items:center;gap:4px;height:auto;padding:6px;display:flex}.thumb canvas{background:#fff;box-shadow:0 1px 3px #00000040}.thumb.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, var(--surface))}.picker-actions{gap:8px;display:flex}.section-divider{border-bottom:2px solid var(--accent);color:var(--text);white-space:nowrap;flex:none;align-items:flex-end;gap:10px;padding:0 4px 4px;display:flex;overflow:hidden}.section-divider strong{font-size:18px;line-height:1.2}.section-divider span{color:var(--muted);text-overflow:ellipsis;font-size:13px;line-height:1.6;overflow:hidden}.section-divider{flex-direction:column;justify-content:flex-end;align-items:stretch;gap:0}.section-divider-line{align-items:flex-end;gap:10px;min-width:0;display:flex}.section-note{color:var(--accent);text-overflow:ellipsis;font-size:13px;line-height:1.4;overflow:hidden}.import-order{align-content:start;gap:12px;display:grid}.import-text{resize:vertical;width:100%;min-height:160px;font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:10px;font-size:14px}.import-pref{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.import-pref small,.import-name small{color:var(--muted);font-weight:400}.import-warn{color:var(--accent);margin:0;font-size:14px}.import-name{margin:4px 0 0;font-size:18px}.import-entries{gap:6px;margin:0;padding:0;list-style:none;display:grid}.import-entries li{border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.import-entries li.placeholder{border-style:dashed}.import-slot{width:130px;color:var(--muted);flex:none;font-size:13px}.import-title{flex:1;min-width:0;display:grid}.import-title small{color:var(--muted);font-size:12px}.import-entries select{flex:none;max-width:170px}@media (width<=640px){.item-text{width:140px}.import-slot{width:90px}}.section-divider-line strong{text-overflow:ellipsis;min-width:0;overflow:hidden}.section-actions{flex:none;align-self:center;margin-left:auto}.divider-edition{max-width:160px;min-height:28px;padding:2px 6px;font-size:13px}.hymns-switch{max-width:180px}
