:root{--bg:#f1f5f9;--surface:#fff;--surface-2:#e2e8f0;--text:#0f172a;--muted:#475569;--border:#64748b;--border-soft:#64748b;--divider:#e2e8f0;--accent:#03658b;--accent-strong:#03658b;--accent-hover:#024f6e;--on-accent:#fff;--accent-soft:#eaf3f7;--danger:#b91c1c;--danger-soft:#fff0f0;--success:#166534;--success-soft:#edf7ef;--warning:#854d0e;--warning-soft:#faf4e8;--header-bg:#f1f5f9f2;--overlay:#0f172a66;--shadow:#00000026;--viewer-bg:#f1f5f9;--paper-border:#64748b;--radius:12px;--radius-sm:8px;--transition:.15s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0f172a;--surface:#1e293b;--surface-2:#273449;--text:#f1f5f9;--muted:#b3c0d1;--border:#75859b;--border-soft:#515f73;--divider:#334155;--accent:#38bdf8;--accent-strong:#38bdf8;--accent-hover:#60cafa;--on-accent:#000;--accent-soft:#203547;--danger:#f87171;--danger-soft:#302c3f;--success:#4ade80;--success-soft:#223b41;--warning:#fbbf24;--warning-soft:#30353b;--header-bg:#0f172af2;--overlay:#020617cc;--shadow:#00000080;--viewer-bg:#0f172a;--paper-border:#75859b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}a{color:var(--accent)}h1,h2{line-height:1.2}h1{margin:0 0 .25rem;font-size:1.6rem}h2{font-size:1.15rem}:focus-visible{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--accent);outline:none}.skip-link{background:var(--accent);color:var(--on-accent);z-index:100;padding:.5rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{left:0}.centered{min-height:100vh;color:var(--muted);place-items:center;display:grid}.loading-indicator{flex:auto;justify-content:center;align-items:center;gap:.75rem;width:100%;padding:1.5rem 0;display:flex}.loading-indicator:has(.loading-logo.sm){padding:.75rem 0}.loading-logo{background-color:var(--muted);opacity:.68;width:4.5rem;height:4.5rem;display:inline-block;position:relative;overflow:hidden;-webkit-mask:url(/logo-mark.svg) 50%/contain no-repeat;mask:url(/logo-mark.svg) 50%/contain no-repeat}.loading-logo.sm{width:2.25rem;height:2.25rem}.loading-logo.lg{width:6.5rem;height:6.5rem}.loading-logo:after{content:"";background:linear-gradient(100deg,#0000 30%,#fff9 50%,#0000 70%);animation:1.4s ease-in-out infinite logo-sweep;position:absolute;inset:0;transform:translate(-100%)}@keyframes logo-sweep{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.loading-logo:after{animation:none}}.app-shell{flex-direction:column;min-height:100%;display:flex}.app-header{z-index:20;background:var(--header-bg);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:sticky;top:0}.nav{flex-wrap:wrap;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.brand{color:var(--text);font-size:1.15rem;font-weight:700;text-decoration:none}.nav-links{flex:1;gap:.5rem;display:flex}.nav-links a{color:var(--muted);border-radius:8px;padding:.45rem .7rem;text-decoration:none}.nav-links a.active{color:var(--text);background:var(--surface-2)}.nav-user{align-items:center;gap:.6rem;display:flex}.user-email{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:14rem;overflow:hidden}.app-main{flex:1;width:100%}.page{max-width:1100px;margin:0 auto;padding:1.25rem 1rem 3rem}.page-head{margin-bottom:1rem}.button{background:var(--accent-strong);color:var(--on-accent);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.35rem;min-height:44px;padding:.6rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{background:var(--accent-hover)}.button:disabled{opacity:.55;cursor:not-allowed}.button.ghost{color:var(--text);border-color:var(--border-soft);background:0 0}.button.secondary{background:var(--surface-2);color:var(--text)}.button.danger{color:var(--danger);border-color:var(--danger);background:0 0}.button.small{min-height:44px;padding:.35rem .7rem;font-size:.85rem}.row-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}label{color:var(--muted);margin-bottom:.25rem;font-size:.9rem;display:block}input,select{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--border-soft);border-radius:var(--radius-sm);min-height:44px;font:inherit;padding:.6rem .7rem}.stack{flex-direction:column;gap:.5rem;max-width:32rem;display:flex}.checkbox{color:var(--text);align-items:center;gap:.5rem;display:flex}.checkbox input{width:auto;min-height:auto}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.inline-form>div{flex:12rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.admin-section{margin:1.25rem 0}.tabs{border-bottom:1px solid var(--border);gap:.5rem;margin-bottom:.5rem;display:flex;overflow-x:auto}.tabs a{color:var(--muted);white-space:nowrap;border-bottom:3px solid #0000;padding:.7rem .9rem;text-decoration:none}.tabs a.active{color:var(--text);border-color:var(--accent)}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.chip{background:var(--surface);color:var(--text);border:1px solid var(--border-soft);cursor:pointer;border-radius:999px;min-height:44px;padding:.45rem .85rem}.chip-active{background:var(--accent-strong);color:var(--on-accent);border-color:var(--accent-strong);font-weight:600}.chip-tag{text-transform:uppercase;opacity:.8;margin-left:.4rem;font-size:.7rem}.song-grid{grid-template-columns:1fr;gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.song-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s}.song-card:hover{border-color:var(--accent)}.song-link{color:inherit;padding:1rem;text-decoration:none;display:block}.song-link h2{margin:0 0 .25rem}.badges{flex-wrap:wrap;gap:.35rem;margin-top:.6rem;display:flex}.badge{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:.2rem .6rem;font-size:.78rem}.sheet-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.sheet-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex}.sheet-actions{gap:.5rem;display:flex}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:640px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.6rem .75rem}.admin-table th{background:var(--surface-2);text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.8rem}.admin-table.compact{min-width:0;margin-top:.75rem}.admin-table input,.admin-table select{min-height:40px}.filename{word-break:break-word;max-width:18rem}.filename-button{font:inherit;text-align:left;color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.filename-button:hover{color:var(--text)}.row-flag td{background:var(--danger-soft)}.flag{color:var(--danger);font-weight:600}.disabled-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--danger);background:var(--danger-soft);border:1px dashed var(--danger);border-radius:999px;align-self:flex-start;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.72rem;font-weight:700;display:inline-flex}.filters .disabled-badge{align-self:center;min-height:36px}.user-list{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.user-head{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.grant-form{margin-top:.75rem}.signin-page{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.signin-card{width:100%;max-width:26rem}.viewer-overlay{background:var(--overlay);z-index:50;justify-content:center;align-items:center;padding:0;display:flex;position:fixed;inset:0}.viewer{background:var(--surface);flex-direction:column;gap:.5rem;width:100%;height:100%;padding:.75rem;display:flex}.viewer-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.viewer-title{flex-direction:column;display:flex}.viewer-subtitle,.small{font-size:.85rem}.viewer-actions{flex-wrap:wrap;gap:.5rem;display:flex}.viewer-body{flex-direction:column;flex:1;min-height:0;display:flex}.pdf-frame{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;flex:1;width:100%;min-height:60vh}.viewer-fallback{margin:.4rem 0 0}.viewer-note{margin:0;font-size:.78rem}.modal{width:min(30rem,100vw - 2rem);max-height:calc(100dvh - 2rem);overflow:hidden}.modal-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.modal select,.modal input:not([type=checkbox]):not([type=file]){height:44px;min-height:44px}.muted{color:var(--muted)}.error-text{color:var(--danger)}.success-text{color:var(--success)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}code{background:var(--surface-2);border-radius:5px;padding:.1rem .3rem;font-size:.85em}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:.5rem 0;display:flex}.hold-button{min-width:12rem;position:relative;overflow:hidden}.hold-button.hold-armed{cursor:pointer}.hold-progress{background:var(--success);pointer-events:none;width:0;transition:width .6s linear;position:absolute;top:0;bottom:0;left:0}.hold-button.holding .hold-progress{width:100%}.hold-label{z-index:1;font-weight:700;position:relative}.instrument-badges{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.instrument-badge{background:var(--surface);border:1px solid var(--border-soft);border-radius:999px;align-items:center;gap:.45rem;padding:.35rem .8rem;display:inline-flex}.instrument-badge .name{font-weight:600}.instrument-badge .count{background:var(--surface-2);color:var(--muted);text-align:center;border-radius:999px;min-width:1.5rem;padding:.05rem .35rem;font-size:.75rem}.instrument-badge.editing{gap:.3rem;padding:.2rem .5rem .2rem .3rem;position:relative}.badge-name-input{border:none;border-bottom:1px dashed var(--border);color:inherit;font:inherit;background:0 0;border-radius:0;width:auto;min-height:32px;padding:.1rem .2rem;font-weight:600}.badge-name-input:focus{border-bottom-color:var(--accent);outline:none}.icon-button{border:1px solid var(--border-soft);color:var(--danger);cursor:pointer;background:0 0;border-radius:999px;min-width:44px;min-height:44px}.add-instrument{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0 1rem;display:flex}.add-instrument input.add-name{max-width:16rem;min-height:40px}.emoji-picker-anchor{display:inline-flex;position:relative}.emoji-trigger{background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--radius-sm);cursor:pointer;min-width:44px;min-height:44px;font-size:1.3rem}.emoji-trigger.small{min-width:40px;min-height:40px;font-size:1.15rem}.emoji-trigger.bare{background:0 0;border:none;min-width:44px;min-height:44px;padding:.1rem;font-size:1.05rem}.emoji-popover{z-index:30;position:absolute;top:calc(100% + .35rem);left:0}.emoji-picker{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);min-width:20rem;box-shadow:0 14px 34px var(--shadow);grid-template-columns:repeat(8,minmax(0,1fr));gap:.25rem;padding:.5rem;display:grid}.emoji-option{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;min-height:44px;font-size:1.2rem}.emoji-option-active,.emoji-option:hover{border-color:var(--accent);background:var(--surface)}.category-badge{border:1px solid #0000;border-radius:999px;align-self:flex-start;align-items:center;gap:.45rem;padding:.3rem .7rem;font-size:.85rem;display:inline-flex}.category-badge .name{font-weight:600}.category-badge .count{text-align:center;background:0 0;border:1px solid;border-radius:999px;min-width:1.4rem;padding:.05rem .3rem;font-size:.72rem}.category-badge.editing{gap:.3rem;padding:.2rem .5rem .2rem .3rem;position:relative}.category-badge .badge-name-input{opacity:.92;border-bottom-color:currentColor}.category-badge .badge-name-input:focus{border-bottom-color:currentColor}.category-badge .icon-button{color:inherit;opacity:.85;border-color:currentColor}.color-picker-anchor{display:inline-flex;position:relative}.color-trigger{border-radius:var(--radius-sm);border:1px solid var(--border-soft);cursor:pointer;width:40px;height:40px;padding:0}.color-trigger.bare{border:none;border-radius:8px;width:28px;height:28px}.color-popover{z-index:30;position:absolute;top:calc(100% + .35rem);left:0}.color-picker{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 14px 34px var(--shadow);grid-template-columns:repeat(5,1fr);gap:.35rem;padding:.5rem;display:grid}.color-option{cursor:pointer;border:2px solid #0000;border-radius:8px;width:32px;height:32px;padding:0}.color-option-active{border-color:var(--text)}.filter-label{color:var(--muted);align-self:center;font-size:.9rem}.filter-bar>.chip{height:44px}.filter-bar{flex-wrap:wrap;align-items:flex-start;gap:.5rem;margin-bottom:1rem;display:flex}.filter-bar>input,.filter-bar>select,.filter-bar .instrument-select-input{max-width:18rem;height:44px;min-height:44px;padding-top:0;padding-bottom:0;line-height:44px}.filter-bar>input,.filter-bar .instrument-select-input{line-height:normal}.filter-bar .instrument-select{min-width:18rem}.instrument-select{flex-direction:column;gap:.4rem;min-width:16rem;display:inline-flex;position:relative}.instrument-select-input{width:100%;min-height:44px}.instrument-select-menu{z-index:30;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);max-height:15rem;box-shadow:0 14px 34px var(--shadow);flex-direction:column;gap:.15rem;padding:.25rem;display:flex;position:absolute;top:calc(100% + .25rem);left:0;right:0;overflow:auto}.instrument-option{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;min-height:44px;padding:.5rem .6rem;display:flex}.instrument-option:hover{background:var(--surface)}.instrument-option-selected{color:var(--accent)}.instrument-select-chips{flex-wrap:wrap;gap:.35rem;display:flex}.member-select-control{display:block;position:relative}.member-select-control .instrument-select-input{padding-right:2.75rem}.member-select-toggle{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:36px;min-height:36px;display:inline-flex;position:absolute;top:50%;right:.3rem;transform:translateY(-50%)}.member-select-toggle:hover{color:var(--text);background:var(--surface-2)}.instrument-select-menu .member-select-done{width:100%;margin-top:.25rem;position:sticky;bottom:0}.user-grid{grid-template-columns:1fr;align-items:stretch;gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.user-grid>li{display:flex}.user-card{text-align:left;width:100%;height:100%;color:inherit;font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:.4rem;padding:1rem;display:flex}.user-card:hover{border-color:var(--accent)}.user-card-badges{margin-top:auto}.role-badge{text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--border-soft);border-radius:999px;padding:.15rem .55rem;font-size:.7rem}.role-manager{color:var(--on-accent);background:var(--accent-strong);border-color:var(--accent-strong)}.role-member{color:var(--muted)}.user-card-badges-inline{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.disabled-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--danger);border:1px solid var(--danger);background:0 0;border-radius:999px;padding:.15rem .55rem;font-size:.7rem}.badge-permission{text-transform:uppercase;color:var(--accent);margin-left:.4rem;font-size:.68rem}.selection-list{flex-direction:column;gap:.5rem;max-height:16rem;display:flex;overflow:auto}.selection-row{grid-template-columns:minmax(0,1fr) 8.5rem auto;align-items:center;gap:.75rem;display:grid}.selection-row select{width:100%;max-width:none}.selection-row .icon-button,.selection-row .button{justify-self:end}.modal-footer{border-top:1px solid var(--border);margin-top:.5rem;padding-top:.75rem}.confirm-panel{border-top:1px solid var(--danger);margin-top:.5rem;padding-top:.75rem}.song-button{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.4rem;padding:1rem;display:flex}.song-button:hover{border-color:var(--accent)}.song-grid>li{display:flex}.song-button{height:100%}.song-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.filter-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.filter-toolbar>input[type=search]{flex:14rem;min-width:12rem}.filter-toolbar>input,.filter-toolbar>select,.filter-toolbar>.chip{height:44px;min-height:44px}.filter-toolbar>select{flex:0 auto;width:auto;max-width:18rem}.pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;display:flex}.admin-table td .row-actions{flex-wrap:nowrap;align-items:center}.upload-modal{width:min(64rem,100vw - 2rem)}.upload-form{flex-direction:column;gap:.85rem;margin-top:.75rem;display:flex}.drop-zone{text-align:center;background:var(--bg);width:100%;color:var(--text);border:2px dashed var(--border-soft);border-radius:var(--radius);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;min-height:9rem;padding:1.5rem 1rem;display:flex}.drop-zone:hover,.drop-zone:focus-visible{border-color:var(--accent)}.drop-zone-title{font-weight:600}.upload-files{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.upload-file-card{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.6rem;padding:.85rem;display:flex}.upload-file-card.active{border-color:var(--accent)}.upload-file-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.upload-file-toggle{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:12rem;align-items:flex-start;gap:.1rem;padding:0;display:flex}.upload-file-body{grid-template-columns:minmax(0,1fr);align-items:start;gap:1rem;display:grid}.upload-file-editor{flex-direction:column;gap:.6rem;display:flex}.pdf-viewer{background:var(--viewer-bg);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;align-self:start;height:clamp(18rem,52vh,34rem);display:flex;overflow:hidden}.pdf-viewer-bar{background:var(--surface-2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding:.3rem .5rem;display:flex}.pdf-viewer-page-label{color:var(--text);font-size:.85rem;font-weight:600}.pdf-viewer-scroll{flex-direction:column;flex:auto;gap:.6rem;min-height:0;padding:.6rem;display:flex;overflow:auto}.pdf-viewer-page{width:100%;box-shadow:0 2px 8px var(--shadow);background:#fff}.pdf-viewer-page canvas{width:100%;height:100%;display:block}.upload-file-controls{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.upload-file-controls>div{flex:12rem}.upload-file-fields{flex-direction:column;gap:.5rem;display:flex}.part-nav{align-items:center;gap:.5rem;display:flex}.part-nav select{flex:auto;min-width:0}.part-nav .button{min-width:44px;padding-left:.6rem;padding-right:.6rem}.part-detail{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:.5rem;padding:.6rem;display:flex}.part-range{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.part-range>div{flex:0 6rem}.part-range .part-variation{flex:10rem}.part-range input{width:100%}@media (width>=640px){.page{padding:1.5rem 1.5rem 3rem}.song-grid,.user-grid{grid-template-columns:repeat(2,1fr)}.viewer{border-radius:var(--radius);width:min(1000px,94vw);height:92vh}.upload-file-body{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}}@media (width>=1025px){.page{padding:2rem 2rem 4rem}.song-grid,.user-grid{grid-template-columns:repeat(3,1fr)}.viewer{width:min(1200px,90vw)}}.songs-layout{flex:1;width:100%;min-height:0;display:flex}@supports selector(:has(*)){.app-shell:has(.songs-layout){height:100dvh}.app-shell:has(.songs-layout) .app-main{flex-direction:column;flex:1;min-height:0;display:flex}.songs-layout{flex:1;height:auto}}.songs-sidebar{border-right:1px solid var(--border);background:var(--bg);flex-direction:column;flex:none;width:320px;min-height:0;display:flex}.songs-sidebar-controls{border-bottom:1px solid var(--border);flex-direction:column;gap:.6rem;padding:.85rem;display:flex}.songs-sidebar-controls .filters{margin-bottom:0}.songs-sidebar-controls .category-filter{max-height:11rem;overflow:auto}.songs-sidebar-controls.picking-voice{flex:1;min-height:0}.voice-picker-heading{margin:0 0 .25rem;font-size:1.05rem}.voice-picker{flex-direction:column;flex:1;gap:.4rem;min-height:0;display:flex;overflow:auto}.voice-option{text-align:left;background:var(--surface);width:100%;color:inherit;border:1px solid var(--border-soft);border-radius:var(--radius-sm);min-height:48px;font:inherit;cursor:pointer;align-items:center;gap:.7rem;padding:.65rem .85rem;font-weight:600;display:flex}.voice-option:hover{border-color:var(--accent)}.voice-option-emoji{font-size:1.2rem}.voice-current{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.voice-current-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.song-search{min-height:44px}.song-list-wrap{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.song-list{flex:1;min-height:0;margin:0;padding:.4rem 2.25rem 2rem .4rem;list-style:none;overflow:auto}.song-list-item{border-bottom:1px solid var(--border)}.song-row{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;min-height:44px;padding:.6rem .5rem;display:flex}.song-row:hover{background:var(--surface)}.song-row-main{align-items:center;gap:.5rem;min-width:0;display:flex}.song-row-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.song-row-count{color:var(--muted);background:var(--surface-2);text-align:center;border-radius:999px;min-width:1.5rem;padding:.05rem .4rem;font-size:.8rem}.category-dot{background:var(--muted);border-radius:999px;flex:none;width:10px;height:10px}.variant-tag{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;padding:.05rem .55rem;font-size:.75rem;font-weight:600}.song-row.active{background:var(--surface-2)}.sheet-list.nested{gap:.25rem;padding:0 .4rem .6rem 1.4rem}.sheet-list-item{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:flex-start;gap:.15rem;min-height:44px;padding:.5rem;display:flex}.sheet-list-item:hover{background:var(--surface)}.sheet-list-item.active{background:var(--surface-2);border-color:var(--accent)}.alphabet-scrubber{touch-action:none;-webkit-user-select:none;user-select:none;z-index:4;flex-direction:column;justify-content:center;align-items:center;width:2rem;display:flex;position:absolute;top:0;bottom:0;right:0}.alphabet-letters{flex-direction:column;justify-content:space-between;width:100%;height:100%;margin:0;padding:0;list-style:none;display:flex}.alphabet-letters li{justify-content:center;display:flex}.alphabet-letter{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;min-width:24px;min-height:24px;padding:0;font-size:.72rem;font-weight:700}.alphabet-letter.active{color:var(--accent)}.alphabet-tooltip{opacity:0;pointer-events:none;background:var(--accent-strong);color:var(--on-accent);text-align:center;border-radius:12px;min-width:2.4rem;padding:.5rem .6rem;font-size:1.4rem;font-weight:800;line-height:1;transition:opacity .12s,transform .12s;position:absolute;right:calc(100% + .4rem);transform:translateY(-50%)scale(.85)}.alphabet-tooltip.visible{opacity:1;transform:translateY(-50%)scale(1)}.pdf-pane{background:var(--surface);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.pdf-pane-empty{justify-content:center;align-items:center}.pdf-pane-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.pdf-pane-actions{flex-wrap:wrap;gap:.5rem;display:flex}.pdf-pane-body{flex-direction:column;flex:1;min-height:0;padding:.75rem;display:flex;position:relative}.pdf-canvas-scroll{background:var(--surface-2);touch-action:auto;border-radius:8px;flex-direction:column;flex:1;gap:.6rem;min-height:0;display:flex;overflow:auto}.pdf-canvas-page{width:100%;box-shadow:0 2px 8px var(--shadow);background:#fff}.pdf-canvas-page canvas{width:100%;height:auto;display:block}.pdf-pane-note{margin:0;padding:0 1rem .75rem;font-size:.78rem}.pdf-pane.focused{z-index:60;background:var(--viewer-bg);position:fixed;inset:0}.pdf-pane.focused .pdf-canvas-scroll{border-radius:0}.pdf-pane-exit{z-index:70;background:var(--header-bg);color:var(--text);border:1px solid var(--border);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;min-height:44px;padding:.5rem .9rem;position:fixed;top:.75rem;right:.75rem}body.focus-lock{overflow:hidden}.lists-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.empty-state{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.lists-section{margin:1.25rem 0}.lists-section h2{margin:0 0 .5rem}.list-rows{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.list-row{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:.75rem;min-height:44px;padding:.85rem 1rem;display:grid}.list-row:hover{border-color:var(--accent)}.list-row-main{flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;display:flex}.list-row-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.list-row-meta,.list-row-owner,.list-row-updated{color:var(--muted);white-space:nowrap;font-size:.85rem}.list-detail-head{flex-direction:column;gap:.35rem;margin-bottom:1rem;display:flex}.list-detail-title{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.list-detail-title h1{margin:0}.badge-shared{background:var(--accent-strong);color:var(--on-accent);font-weight:600}.list-share-badge{white-space:nowrap}.rename-form{max-width:32rem}.rename-form input{flex:14rem}.list-reader{border:1px solid var(--border);border-radius:var(--radius);width:100%;height:72dvh;min-height:0;display:flex;overflow:hidden}.list-reader-sidebar{border-right:1px solid var(--border);background:var(--bg);flex-direction:column;flex:none;width:320px;min-height:0;display:flex;overflow:auto}.list-voice{border-bottom:1px solid var(--border);flex-direction:column;gap:.5rem;padding:.85rem;display:flex}.list-voice .voice-picker{overflow:visible}.list-song-rows{flex-direction:column;margin:0;padding:.4rem;list-style:none;display:flex}.list-song-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.2rem .3rem;display:grid}.list-song-row.active{background:var(--surface-2);border-radius:8px}.list-song-main{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.5rem;min-height:44px;padding:.35rem;display:flex}.list-song-main:hover{background:var(--surface)}.list-song-position{color:var(--muted);min-width:1.4rem;font-size:.8rem}.list-song-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.list-song-resolution{justify-content:flex-end;display:flex}.list-missing{color:var(--muted);font-size:.8rem;font-style:italic}.list-variant-picker{width:auto;height:44px;min-height:44px;padding:.25rem .5rem;font-size:.85rem}.list-song-controls{grid-column:1/-1;justify-content:flex-end;gap:.35rem;padding:0 .2rem .35rem;display:flex}.list-song-controls .icon-button{min-width:44px;min-height:44px}.list-song-controls .icon-button:disabled{opacity:.4;cursor:not-allowed}.list-reader-actions{border-top:1px solid var(--border);padding:.75rem}.add-songs-list{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.2rem;max-height:18rem;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.brand,.brand-box{align-items:center;gap:.5rem;display:inline-flex}.brand-logo{object-fit:contain;width:auto;max-width:8rem;height:auto;max-height:2rem;display:block}.brand-labels{flex-direction:column;align-items:flex-start;line-height:1.05;display:inline-flex}.brand-primary{color:var(--text);font-size:1.15rem;font-weight:700}.brand-wordmark{text-align:right;letter-spacing:.04em;color:var(--muted);align-self:flex-end;font-size:.58rem;font-weight:600}.signin-brand{margin:0 0 .5rem}.signin-brand .brand-logo{max-height:3rem}.signin-brand .brand-primary{font-size:1.6rem}.group-settings-form{flex-direction:column;gap:1rem;max-width:32rem;display:flex}.char-counter{text-align:right;margin:.25rem 0 0}.logo-editor{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.logo-preview{background:var(--bg);border:1px dashed var(--border);border-radius:var(--radius);justify-content:center;align-items:center;min-width:6rem;min-height:6rem;padding:.5rem;display:flex}.logo-preview img{object-fit:contain;max-width:12rem;max-height:5rem}label.logo-upload{cursor:pointer}.print-page{flex-direction:column;gap:1.25rem;width:100%;max-width:1560px;margin:0 auto;padding:1.5rem 2rem 0;display:flex}.print-page p{margin:0}.print-page .icon-button{color:var(--muted);border-color:var(--border)}.print-page-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.print-page-head h1{margin:0 0 .3rem;font-size:1.65rem}.print-page-head p,.print-draft-note{color:var(--muted);font-size:.88rem}.print-draft-note{border:1px solid var(--border);white-space:nowrap;border-radius:2rem;padding:.4rem .75rem;font-size:.75rem}.print-steps{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.print-step{border:0;border-right:1px solid var(--border);color:var(--muted);text-align:left;cursor:pointer;min-width:0;font:inherit;background:0 0;align-items:center;gap:.85rem;padding:1rem 1.25rem;display:flex}.print-step:last-child{border-right:0}.print-step>span:nth-child(2){flex:1;min-width:0}.print-step strong,.print-step small{display:block}.print-step strong{font-size:.95rem;font-weight:600}.print-step small{margin-top:.15rem;font-size:.75rem}.print-step>svg{opacity:.45;flex-shrink:0}.print-step:disabled{cursor:not-allowed;opacity:.55}.print-step.is-current{background:var(--accent-soft);color:var(--text);box-shadow:inset 0 -2px var(--accent)}.print-step-number{border:1px solid var(--border);border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:.85rem;font-weight:600;display:grid}.is-current .print-step-number{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.print-step-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.print-step-heading h2{margin:0 0 .35rem;font-size:1.12rem}.print-step-heading h2:focus{outline:none}.print-step-heading p{color:var(--muted);font-size:.85rem}.print-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;min-width:0;display:flex;overflow:hidden}.print-panel-head{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.15rem;display:flex}.print-panel-head h3{align-items:center;gap:.55rem;margin:0;font-size:.95rem;font-weight:600;display:flex}.print-panel-head h3 svg{color:var(--muted)}.print-panel-head p{color:var(--muted);margin-top:.4rem;font-size:.78rem}.print-count{color:var(--muted);background:var(--bg);border:1px solid var(--border);white-space:nowrap;border-radius:1rem;padding:.2rem .6rem;font-size:.75rem}.print-songs-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;height:clamp(24rem,100dvh - 430px,42rem);display:grid}.print-import-row{border-bottom:1px solid var(--border);gap:.6rem;padding:1rem 1.15rem;display:flex}.print-import-row select{flex:1;min-width:0}.print-import-row .button{white-space:nowrap}.print-search-row{grid-template-columns:minmax(0,1fr) minmax(120px,.65fr);gap:.65rem;padding:.85rem 1.15rem;display:grid}.print-search-row input,.print-search-row select,.print-import-row select{font-size:.85rem}.print-song-picker,.print-queue{scrollbar-gutter:stable;flex:1;min-height:0;margin:0;padding:0 .65rem .65rem;list-style:none;overflow-y:auto}.print-song-picker button{width:100%;color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;align-items:center;gap:.8rem;padding:.7rem .55rem;display:flex}.print-song-picker button:hover:not(:disabled){background:var(--surface-2)}.print-song-picker button:disabled{color:var(--muted);cursor:default}.print-song-picker button:disabled>svg{color:var(--success)}.print-song-picker button>svg{color:var(--accent);flex-shrink:0}.print-song-icon{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:var(--radius-sm);flex-shrink:0;place-items:center;width:36px;height:40px;display:grid}.print-row-title{flex:1;min-width:0}.print-row-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:500;display:block;overflow:hidden}.print-row-title small{color:var(--muted);margin-top:.2rem;font-size:.75rem;display:block}.print-row-title small.error-text{color:var(--danger)}.print-panel-description{color:var(--muted);padding:.85rem 1.15rem;font-size:.8rem}.print-queue li{border-bottom:1px solid var(--border);align-items:center;gap:.85rem;padding:.75rem .5rem;display:flex}.print-order-number{color:var(--muted);font-variant-numeric:tabular-nums;text-align:center;flex-shrink:0;min-width:1.4rem;font-size:.78rem}.print-row-controls{flex-shrink:0;align-items:center;gap:.1rem;display:flex}.print-page .print-row-controls .icon-button{width:44px;min-width:44px;height:44px;min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:6px;place-items:center;padding:4px;display:grid}.print-row-controls .icon-button:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.print-row-controls .icon-button:disabled{opacity:.3}.print-empty-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.8rem;min-height:18rem;padding:2rem;display:flex}.print-empty-state h3{margin:0;font-size:1rem;font-weight:600}.print-empty-state p{max-width:21rem;color:var(--muted);font-size:.85rem;line-height:1.7}.print-empty-icon{border:1px dashed var(--border);background:var(--bg);width:60px;height:60px;color:var(--muted);border-radius:16px;place-items:center;margin-bottom:.5rem;display:grid}.print-empty-icon svg{width:26px;height:26px}.print-empty-small{color:var(--muted);padding:1rem;font-size:.85rem}.print-parts-workspace{grid-template-columns:340px minmax(0,1fr);gap:1.25rem;height:clamp(24rem,100dvh - 430px,42rem);display:grid}.print-add-instrument{border-bottom:1px solid var(--border);padding:.85rem}.print-add-instrument select{font-size:.85rem}.print-instrument-list{min-height:0;padding:.65rem;overflow:auto}.print-instrument-card{border-radius:var(--radius);background:var(--bg);border:1px solid #0000;margin-bottom:.5rem;padding:.7rem}.print-instrument-card.is-selected{border-color:var(--accent);background:var(--accent-soft)}.print-instrument-card-head{align-items:center;gap:.25rem;display:flex}.print-select-instrument{min-width:0;color:var(--text);cursor:pointer;text-align:left;font:inherit;background:0 0;border:0;flex:1;align-items:center;gap:.35rem;padding:.2rem 0;display:flex}.print-select-instrument strong{text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.print-page .print-instrument-card .print-row-controls .icon-button{width:44px;min-width:44px}.print-batch-fields{grid-template-columns:1fr 1fr;gap:.65rem;margin-top:.65rem;display:grid}.print-batch-fields label{margin:0;font-size:.72rem}.print-batch-fields input,.print-batch-fields select{border-radius:var(--radius-sm);min-height:38px;margin-top:.3rem;padding:.4rem .6rem;font-size:.85rem}.print-status{color:var(--muted);align-items:center;gap:.35rem;font-size:.76rem;display:inline-flex}.print-status.is-ready{color:var(--success)}.print-status.is-warning{color:var(--warning);margin-top:.6rem}.print-part-list{flex:1;min-height:0;overflow-y:auto}.print-part-row{border-bottom:1px solid var(--border);align-items:center;gap:.7rem;min-height:76px;padding:.8rem 1rem;display:flex}.print-part-row.is-skipped .print-row-title{opacity:.55}.print-part-row.needs-attention{background:var(--danger-soft)}.print-variant-select{flex:0 140px;width:140px;min-width:90px;min-height:36px;padding:.4rem .6rem;font-size:.8rem}.print-variant-name{width:85px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:0 85px;font-size:.76rem;overflow:hidden}.print-part-row .button.small{white-space:nowrap;min-height:36px;padding:.4rem .6rem;font-size:.78rem}.print-skip-button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;min-height:36px;padding:.35rem;font-size:.76rem}.print-skip-button:hover{color:var(--text);text-decoration:underline}.print-skip-button[aria-pressed=true]{color:var(--accent)}.print-panel-bottom{border-top:1px solid var(--border);padding:.8rem 1rem}.print-output-workspace{grid-template-columns:320px minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.print-settings-body{flex-direction:column;gap:1rem;padding:1.15rem;display:flex}.print-arrangement{border:0;flex-direction:column;gap:.6rem;min-width:0;margin:0;padding:0;display:flex}.print-arrangement legend{color:var(--muted);margin-bottom:.65rem;padding:0;font-size:.78rem}.print-arrangement label{border:1px solid var(--border-soft);border-radius:var(--radius-sm);cursor:pointer;align-items:start;gap:.6rem;margin:0;padding:.75rem;display:flex}.print-arrangement label.is-selected{border-color:var(--accent);background:var(--accent-soft)}.print-arrangement input{width:15px;height:15px;min-height:0;accent-color:var(--accent);flex-shrink:0;margin:.15rem 0 0;padding:0}.print-arrangement strong{color:var(--text);font-size:.85rem;font-weight:600;display:block}.print-arrangement small{color:var(--muted);margin-top:.25rem;font-size:.75rem;line-height:1.5;display:block}.print-layout-options{flex-direction:column;gap:.85rem;display:flex}.print-layout-options>label:not(.checkbox){justify-content:space-between;align-items:center;gap:.6rem;font-size:.78rem;display:flex}.print-layout-options input[type=number]{width:80px;min-height:38px;padding:.4rem .6rem;font-size:.85rem}.print-layout-options .checkbox{margin:0;font-size:.8rem}.print-job-summary{border-top:1px solid var(--border);padding-top:1rem}.print-job-summary h4{margin:0 0 .75rem;font-size:.85rem}.print-summary-totals{color:var(--muted);flex-wrap:wrap;gap:.4rem .75rem;margin-bottom:.75rem;font-size:.78rem;display:flex}.print-output-summary{align-items:start;gap:.65rem;padding:.6rem 0;font-size:.83rem;display:flex}.print-output-summary>strong{border:1px solid var(--border);width:34px;height:40px;color:var(--muted);border-radius:5px;flex-shrink:0;place-items:center;font-size:.7rem;display:grid}.print-output-summary small{color:var(--muted);margin-top:.3rem;font-size:.7rem;line-height:1.5;display:block}.print-review-details{font-size:.78rem}.print-review-details summary{cursor:pointer;color:var(--muted);padding:.55rem 0}.print-review-details ul{margin:.5rem 0;padding-left:1.2rem}.print-review-details li{overflow-wrap:anywhere;margin-bottom:.7rem}.print-review-details li>strong,.print-review-details li>span{display:block}.print-review-details li>span{color:var(--muted);margin-top:.25rem;line-height:1.5}.print-attention-note{background:var(--warning-soft);border:1px solid var(--warning);border-radius:var(--radius-sm);color:var(--warning);padding:.75rem;font-size:.8rem}.print-attention-note p{margin-bottom:.6rem}.print-generate{width:100%}.print-preview-area{min-width:0}.print-preview-placeholder{background:radial-gradient(ellipse at 50% 40%, var(--surface), var(--bg));justify-content:center;align-items:center;min-height:clamp(28rem,100dvh - 350px,43rem)}.print-preview-placeholder-content{text-align:center;flex-direction:column;align-items:center;gap:.8rem;padding:2rem;display:flex}.print-preview-placeholder-content h3{margin:.5rem 0 0;font-size:1rem}.print-preview-placeholder-content p{color:var(--muted);max-width:22rem;font-size:.85rem;line-height:1.7}.print-preview-schematic{background:var(--surface-2);border:1px solid var(--border);width:110px;height:156px;box-shadow:8px 8px 0 var(--shadow);border-radius:4px;flex-direction:column;margin-bottom:1rem;padding:10px;display:flex;transform:rotate(-5deg)}.print-preview-schematic span{border:1px dashed var(--border);background:repeating-linear-gradient(0deg, transparent, transparent 9px, var(--border) 10px, transparent 11px);flex:1;margin:3px}.print-preview-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.print-document-tabs{flex-wrap:wrap;gap:.4rem;display:flex}.print-document-tabs button{color:var(--muted);font:inherit;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:.55rem;padding:.5rem .65rem;font-size:.82rem;font-weight:600;display:flex}.print-document-tabs button.is-current{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.print-document-tabs small{font-size:.7rem;font-weight:400}.print-zoom-label{flex-shrink:0;width:86px;margin:0}.print-zoom-label select{min-height:36px;padding:.35rem .5rem;font-size:.8rem}.print-preview-scroll{background:var(--viewer-bg);height:clamp(20rem,100dvh - 580px,40rem);padding:1.5rem;overflow:auto}.print-paper{aspect-ratio:210/297;outline:1px solid var(--paper-border);max-width:none;max-height:none;box-shadow:0 5px 24px var(--shadow);background:#fff;margin:0 auto;position:relative}.print-pdf-page{width:100%;overflow:hidden}.print-pdf-page canvas{max-width:none;display:block}.print-cut-horizontal,.print-cut-vertical{pointer-events:none;position:absolute}.print-cut-horizontal{border-top:1px dashed #64748b;top:50%;left:0;right:0}.print-cut-vertical{border-left:1px dashed #64748b;top:0;bottom:0;left:50%}.print-preview-navigation{border-top:1px solid var(--border);justify-content:center;align-items:center;gap:1rem;padding:.4rem;font-size:.8rem;display:flex}.print-preview-navigation .icon-button,.print-source-navigation .icon-button{place-items:center;width:36px;height:36px;display:grid}.print-download-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:.6rem;padding:.85rem 1rem;display:flex}.print-download-actions .button{font-size:.82rem}.print-help{color:var(--muted);border-top:1px solid var(--border);padding:.85rem 1rem;font-size:.8rem;line-height:1.7}.print-preview-area>.print-help{border-top:0;margin-top:.5rem}.print-help summary{cursor:pointer;color:var(--text);font-weight:500}.print-help>ul,.print-help>ol{padding-left:1.3rem}.print-slot-labels{overflow-wrap:anywhere}.print-assembly-content{align-items:start;gap:1.25rem;padding-top:1rem;display:flex}.print-pile-diagram{aspect-ratio:210/297;border:1px solid var(--border);flex-shrink:0;width:100px;display:grid}.print-piles-a5{grid-template-rows:1fr 1fr}.print-piles-a6{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.print-pile-diagram>div{border:1px dashed var(--border);place-items:center;font-size:.6rem;display:grid}.print-workflow-footer{z-index:5;background:var(--bg);border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex;position:sticky;bottom:0}.print-workflow-footer>span,.print-footer-note{color:var(--muted);font-size:.8rem}.print-processing{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.65rem 1rem;display:flex}.print-processing>div{align-items:center;gap:.5rem;font-size:.8rem;display:flex}.print-processing progress{min-width:5rem;height:5px;accent-color:var(--accent);flex:1}.print-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:15px;height:15px;animation:1s linear infinite print-spin}@keyframes print-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.print-spinner{animation:none}}.print-notice{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:.85rem 1rem;font-size:.85rem}.print-notice p{margin-bottom:.6rem}.print-part-modal{width:min(920px,100vw - 2rem)}.print-editor-sheet{margin:1rem 0}.print-editor-sheet label{font-size:.8rem}.print-editor-sheet select{margin-top:.4rem;font-size:.85rem}.print-source-editor{grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:1.5rem;display:grid}.print-source-canvas{background:var(--bg);border-radius:var(--radius-sm);max-height:60vh;padding:1rem;overflow:auto}.print-source-controls{flex-direction:column;gap:1rem;display:flex}.print-source-controls h3{margin:0;font-size:.95rem}.print-source-page-numbers{flex-wrap:wrap;gap:.4rem;max-height:12rem;display:flex;overflow:auto}.print-source-page-numbers button{border:1px solid var(--border);background:var(--bg);min-width:40px;height:40px;color:var(--text);font:inherit;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:.2rem;font-size:.8rem;display:flex}.print-source-page-numbers button.is-current{border-color:var(--accent);color:var(--accent)}.print-source-page-numbers button.is-excluded{opacity:.45;text-decoration:line-through}.print-source-page-numbers svg{width:12px;height:12px}.print-source-navigation{justify-content:space-between;align-items:center;gap:.5rem;font-size:.75rem;display:flex}.print-source-controls .button{white-space:normal;font-size:.8rem}.print-editor-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding-top:1rem;display:flex}.print-editor-footer .checkbox{font-size:.8rem}@media (width<=1100px){.print-page{padding:1.25rem 1.25rem 0}.print-parts-workspace{grid-template-columns:300px minmax(0,1fr)}.print-part-row{flex-wrap:wrap}.print-part-row .print-row-title{flex-basis:calc(100% - 4rem)}.print-part-row .print-variant-select,.print-part-row .print-variant-name{margin-left:2rem}.print-part-row .print-variant-name{flex:1}.print-output-workspace{grid-template-columns:285px minmax(0,1fr)}.print-document-tabs small{display:none}}@media (width<=720px){.print-page{gap:1rem;padding:1rem 1rem 0}.print-page-head{align-items:start}.print-page-head h1{font-size:1.4rem}.print-page-head p{font-size:.8rem}.print-draft-note{display:none}.print-steps{border-radius:var(--radius-sm)}.print-step{text-align:center;flex-direction:column;justify-content:center;gap:.4rem;padding:.7rem .4rem}.print-step-number{width:26px;height:26px;font-size:.75rem}.print-step strong{font-size:.72rem}.print-step small,.print-step>svg{display:none}.print-step-heading{align-items:start}.print-step-heading h2{font-size:1rem}.print-step-heading p{font-size:.78rem;line-height:1.6}.print-step-heading .print-status{display:none}.print-songs-workspace,.print-parts-workspace{grid-template-columns:minmax(0,1fr);gap:1rem;height:auto}.print-archive{max-height:420px}.print-queue-panel{min-height:250px;max-height:480px}.print-search-row{grid-template-columns:minmax(0,1fr);gap:.5rem;padding:.65rem .85rem}.print-import-row,.print-panel-head{padding:.85rem}.print-panel-head h3{font-size:.88rem}.print-queue li{gap:.45rem}.print-instrument-list{gap:.6rem;max-height:245px;display:flex;overflow:auto}.print-instrument-card{flex:0 0 270px;margin:0}.print-parts-panel{min-height:300px;max-height:600px}.print-part-row{padding:.8rem}.print-output-workspace{grid-template-columns:minmax(0,1fr)}.print-settings-body{padding:1rem}.print-arrangement{grid-template-columns:1fr 1fr;display:grid}.print-arrangement legend{grid-column:1/-1}.print-arrangement label{gap:.4rem;padding:.65rem}.print-arrangement small{font-size:.7rem}.print-layout-options{gap:.65rem}.print-preview-placeholder{min-height:360px}.print-preview-scroll{height:440px;padding:1rem}.print-workflow-footer{gap:.5rem;padding:.85rem 0}.print-workflow-footer>span{max-width:35%;font-size:.7rem}.print-workflow-footer .button{padding:.5rem .65rem;font-size:.78rem}.print-footer-note{font-size:.7rem}.print-source-editor{grid-template-columns:minmax(0,1fr);gap:1rem}.print-source-canvas{max-height:40vh}.print-source-controls{gap:.75rem}.print-source-page-numbers{max-height:90px}.print-source-controls p.small{display:none}.print-editor-footer{align-items:start}.print-assembly-content{flex-direction:column}}.print-preview-surface{background:var(--viewer-bg);grid-template-columns:minmax(0,1fr) 190px;display:grid}.print-slot-legend{border-left:1px solid var(--border);min-width:0;max-height:clamp(20rem,100dvh - 580px,40rem);padding:1.1rem 1rem;overflow:auto}.print-slot-legend h4{color:var(--muted);margin:0 0 1.25rem;font-size:.75rem;font-weight:500}.print-slot-legend>div{overflow-wrap:anywhere;margin-bottom:1.5rem}.print-slot-legend>div>span{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem;font-size:.65rem;display:block}.print-slot-legend strong{font-size:.8rem;font-weight:600}.print-slot-legend p{color:var(--muted);margin-top:.3rem;font-size:.75rem}.print-slot-legend small{color:var(--muted);margin-top:.5rem;font-size:.7rem;display:block}.print-preview-help-row{flex-wrap:wrap;display:flex}.print-preview-help-row>details{flex:200px}.print-preview-help-row>details[open]{flex-basis:100%}@media (width<=1100px){.print-preview-surface{display:block}.print-slot-legend{display:none}}@media (width<=720px){.print-songs-workspace,.print-parts-workspace{height:auto}.print-preview-scroll{height:440px}.print-workflow-footer{gap:.5rem}.print-workflow-footer>span{max-width:24%;font-size:.65rem}.print-workflow-footer .row-actions{flex-wrap:nowrap;gap:.4rem}.print-workflow-footer .button svg{width:16px}}.print-preview-ready{border-radius:var(--radius-sm);background:var(--success-soft);border:1px solid var(--success);color:var(--success);justify-content:center;align-items:center;gap:.5rem;padding:.65rem;font-size:.8rem;display:flex}.print-page-selection-count{color:var(--muted);font-size:.78rem;margin-top:.4rem!important}.print-page-selection-actions{flex-wrap:wrap;gap:.5rem;display:flex}.print-page-range{flex-direction:column;align-items:start;gap:.45rem;display:flex}.print-page-range label{margin:0;font-size:.8rem}.print-page-range input{min-height:40px;font-size:.85rem}.print-page-range-help,.print-page-range .error-text{color:var(--muted);font-size:.75rem;line-height:1.55}.print-page-range .error-text{color:var(--danger)}.print-page-range input[aria-invalid=true]{border-color:var(--danger)}.print-source-page-choice{border:1px solid var(--border-soft);background:var(--bg);border-radius:6px;align-items:center;min-height:42px;padding-left:.5rem;display:flex}.print-source-page-choice.is-current{border-color:var(--accent)}.print-source-page-choice.is-excluded button{color:var(--muted);text-decoration:line-through}.print-source-page-choice input{width:17px;height:17px;min-height:0;accent-color:var(--accent);cursor:pointer;margin:0;padding:0}.print-source-page-numbers .print-source-page-choice button{background:0 0;border:0;border-radius:0 6px 6px 0;min-width:34px;height:40px}.print-source-page-choice.is-current button{color:var(--accent)}.upload-workspace{flex-direction:column;gap:1.25rem;min-width:0;display:flex}.upload-workspace h2,.upload-workspace h3,.upload-workspace h4,.upload-workspace p{margin:0}.upload-workspace .print-step{justify-content:flex-start;gap:.75rem}.upload-body{border:0;min-width:0;margin:0;padding:0}.upload-body:disabled{opacity:.65}.upload-workspace input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--accent);cursor:pointer;flex:0 0 18px;margin:0;padding:0}.upload-setup{grid-template-columns:1.3fr 1fr;align-items:start;gap:1.25rem;display:grid}.upload-panel-body{flex-direction:column;gap:.85rem;min-width:0;padding:1rem;display:flex}.upload-panel-body .drop-zone{flex-direction:column;gap:.65rem;display:flex}.upload-song-picker,.upload-song-settings{flex-direction:column;gap:.5rem;min-width:0;display:flex}.upload-song-matches{flex-direction:column;align-items:stretch;max-height:240px;display:flex;overflow:auto}.upload-sources,.upload-sheet-list,.upload-review-list,.upload-receipt-list{margin:0;padding:0;list-style:none}.upload-sources li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 0;display:flex}.upload-sources strong{overflow-wrap:anywhere}.upload-sources p{margin-top:.35rem}.upload-editor-layout{grid-template-columns:minmax(300px,.8fr) minmax(0,1.6fr);align-items:start;gap:1.25rem;display:grid}.upload-sheet-sidebar{overflow:visible}.upload-sheet-sidebar .upload-panel-body{padding:.85rem}.upload-sheet-list{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:360px;overflow:auto}.upload-sheet-list li{border-bottom:1px solid var(--border);align-items:start;gap:.5rem;min-width:0;padding:.65rem;display:flex}.upload-sheet-list li.is-current{background:var(--surface-2);box-shadow:inset 3px 0 var(--accent)}.upload-sheet-list input{flex-shrink:0;margin-top:.35rem}.upload-sheet-list button{text-align:left;color:var(--text);font:inherit;overflow-wrap:anywhere;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:.25rem;min-width:0;padding:.15rem;display:flex}.upload-sheet-list small{color:var(--muted);overflow-wrap:anywhere}.upload-sheet-metadata,.upload-bulk,.upload-add-sheet{border-top:1px solid var(--border);flex-direction:column;gap:.6rem;padding-top:1rem;display:flex}.upload-bulk{background:var(--surface-2);border-radius:var(--radius-sm);padding:.75rem}.upload-sheet-metadata .row-actions{flex-wrap:wrap}.upload-preview-canvas{background:var(--bg);min-height:240px;max-height:65vh;padding:1.25rem;overflow:auto}.upload-preview-canvas>div{margin:auto}.upload-preview-controls{flex-direction:column;gap:.75rem;padding:.85rem;display:flex}.upload-preview-controls .row-actions{flex-wrap:wrap}.upload-range{grid-template-columns:1fr auto;gap:.5rem;display:grid}.upload-range label{grid-column:1/-1}.upload-range input{min-width:0}.upload-thumbnails{border-top:1px solid var(--border);align-items:start;gap:.65rem;padding:.85rem;display:flex;overflow-x:auto}.upload-thumbnail{border:2px solid var(--border);border-radius:var(--radius-sm);flex:0 0 125px;padding:.35rem;font-size:.75rem}.upload-thumbnail.is-included{border-color:var(--accent)}.upload-thumbnail.is-current{background:var(--surface-2)}.upload-thumbnail>button{width:100%;color:var(--text);cursor:pointer;background:0 0;border:0;padding:0}.upload-thumbnail-image{background:#fff;place-items:center;height:150px;display:grid;overflow:hidden}.upload-thumbnail-image canvas{max-width:100%;max-height:100%}.upload-thumbnail>label{justify-content:center;gap:.4rem;padding:.35rem;display:flex}.upload-thumbnail details{overflow-wrap:anywhere}.upload-thumbnail ul{padding-left:1rem}.upload-review{flex-direction:column;gap:1rem;display:flex}.upload-review-list li,.upload-receipt-list li{border-bottom:1px solid var(--border);align-items:center;gap:.65rem;padding:1rem;display:flex}.upload-review-list li>div{flex:1;min-width:0}.upload-review-list p,.upload-receipt-list span{color:var(--muted);overflow-wrap:anywhere;margin-top:.3rem;font-size:.85rem}.upload-receipt-list li{flex-direction:column;align-items:start}.upload-footer{z-index:5;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);justify-content:space-between;gap:.5rem;padding:.85rem;display:flex;position:sticky;bottom:0}.upload-footer .row-actions{flex-wrap:wrap}.upload-empty{padding:2rem}.upload-mobile-tabs{display:none}@media (width<=760px){.upload-setup{grid-template-columns:minmax(0,1fr)}.upload-preview-canvas{padding:.5rem}.upload-footer,.upload-review-list li{flex-wrap:wrap}.upload-review-list li>div{flex-basis:100%}.upload-workspace .print-step{gap:.35rem;padding:.65rem;font-size:.8rem}}.upload-admin-shell{max-width:1560px}.upload-workspace .print-panel-head label{margin:0}.appearance-controls{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1.5rem;min-width:0;margin:1.25rem 0;display:grid}.appearance-controls legend{padding:0 .5rem;font-weight:600}.appearance-controls p{margin:.4rem 0 .75rem}.appearance-swatches{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.appearance-swatch{border:2px solid var(--border);cursor:pointer;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.appearance-swatch[aria-pressed=true]{outline:2px solid var(--text);outline-offset:2px}.appearance-swatch span{border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.appearance-swatch[aria-pressed=true] span{color:#fff;background:#000}.appearance-color-inputs{gap:.65rem;max-width:18rem;display:flex}.appearance-color-inputs input[type=color]{cursor:pointer;flex-shrink:0;width:56px;padding:.2rem}.appearance-color-inputs input[type=text]{min-width:0;font-family:ui-monospace,monospace}.appearance-color-inputs input[aria-invalid=true]{border-color:var(--danger)}.appearance-previews{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.5rem;display:grid}.appearance-preview{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:1rem}.appearance-preview-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.85rem;display:flex}.appearance-preview-nav{border-bottom:1px solid var(--border);color:var(--muted);gap:1rem;margin-bottom:1rem;display:flex}.appearance-preview-nav span{border-bottom:3px solid #0000;padding:.5rem 0}.appearance-preview-nav .is-selected{border-color:var(--accent);color:var(--text);font-weight:600}.appearance-preview h3{margin:0;font-size:1rem}.appearance-preview-actions{margin-top:1rem}.appearance-preview-link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;min-height:44px;text-decoration:underline}.appearance-warning{color:var(--warning)}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.button.ghost:hover,.button.secondary:hover{background:var(--surface-2)}.button.danger:hover{background:var(--danger-soft)}@media (width<=720px){.appearance-controls,.appearance-previews{grid-template-columns:minmax(0,1fr)}}.button,.nav-links a,.tabs a,.chip,.chip-active,.icon-button,.song-card,.song-button,.user-card,.sheet-row,.list-row,.sheet-list-item,.song-row,.voice-option,.drop-zone,.emoji-option,.color-option,.instrument-option,.member-select-toggle,.alphabet-letter,.print-step,.print-song-picker button,.print-row-controls .icon-button,.print-document-tabs button,.print-skip-button,.appearance-swatch{transition:background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition), opacity var(--transition), transform var(--transition)}.app-header,.appearance-preview-nav,.admin-table th,.admin-table td,.card,.confirm-panel,.list-reader,.list-reader-actions,.list-reader-sidebar,.list-row,.list-song-row,.list-voice,.modal-footer,.pdf-pane-toolbar,.pdf-viewer,.pdf-viewer-bar,.print-add-instrument,.print-download-actions,.print-editor-footer,.print-help,.print-import-row,.print-job-summary,.print-notice,.print-panel,.print-panel-bottom,.print-panel-head,.print-part-row,.print-preview-navigation,.print-preview-toolbar,.print-processing,.print-queue li,.print-slot-legend,.print-step,.print-steps,.print-workflow-footer,.sheet-list-item,.sheet-row,.song-button,.song-card,.song-list-item,.songs-sidebar,.songs-sidebar-controls,.tabs,.table-wrap,.upload-add-sheet,.upload-bulk,.upload-receipt-list li,.upload-review-list li,.upload-sheet-list,.upload-sheet-list li,.upload-file-card,.upload-sheet-metadata,.upload-sources li,.upload-thumbnails,.user-card{border-color:var(--divider)}.nav-links a:hover{color:var(--text);background:var(--surface-2)}.tabs a:hover{color:var(--text)}.chip:hover{border-color:var(--accent);background:var(--surface-2)}.chip-active:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.icon-button:hover{background:var(--surface-2)}.sheet-row:hover{border-color:var(--accent);background:var(--surface-2)}.song-card:hover,.user-card:hover,.list-row:hover,.sheet-row:hover{box-shadow:0 4px 14px var(--shadow)}.alphabet-letter:hover{color:var(--text);background:var(--surface-2)}.print-step:hover:not(:disabled):not(.is-current){background:var(--surface-2);color:var(--text)}.print-document-tabs button:hover:not(.is-current){background:var(--surface-2)}@media (prefers-reduced-motion:no-preference){.color-option:hover{transform:scale(1.08)}.appearance-swatch:hover{transform:scale(1.06)}}.button:not(:disabled):active{background:var(--accent-hover);transform:translateY(1px)}.button.ghost:not(:disabled):active,.button.secondary:not(:disabled):active{background:var(--surface-2);transform:translateY(1px)}.button.danger:not(:disabled):active{background:var(--danger-soft);transform:translateY(1px)}.chip:active,.chip-active:active,.icon-button:not(:disabled):active{transform:translateY(1px)}.card,.song-card,.song-button,.user-card,.list-row,.sheet-row{box-shadow:0 1px 2px var(--shadow)}.song-card:focus-visible,.song-button:focus-visible,.user-card:focus-visible,.list-row:focus-visible,.sheet-row:focus-visible,.card:focus-visible,.print-step:focus-visible{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--accent)}.print-step.is-current:focus-visible{box-shadow:inset 0 -2px var(--accent), 0 0 0 2px var(--bg), 0 0 0 4px var(--accent)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--touch-target:44px;--reader-target:48px;--compact-nav-height:64px}:where(button,[role=button],a[href],label,summary,select,input[type=button],input[type=submit],input[type=reset]){-webkit-user-select:none;user-select:none}:where(input:not([type=button]):not([type=submit]):not([type=reset]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),textarea,[contenteditable]:not([contenteditable=false]),.selectable-text,.installation-address){-webkit-user-select:text;user-select:text}.button{font-family:inherit;font-size:1rem}.button.small{font-size:.875rem}.app-shell{min-height:100dvh}.app-header{padding-top:env(safe-area-inset-top,0px)}.nav{padding-inline:max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right));flex-wrap:nowrap}.nav-links a{min-height:var(--touch-target);justify-content:center;align-items:center;display:inline-flex}.nav-adaptive,.admin-section-toggle{display:none}.nav-adaptive a,.nav-adaptive button{min-height:48px;color:var(--muted);border-radius:var(--radius-sm);font:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1rem;font-weight:600;text-decoration:none;display:flex}.nav-adaptive .active{color:var(--text);background:var(--surface-2)}.navigation-destinations{flex-direction:column;gap:.5rem;display:flex}.navigation-destinations a{border-radius:var(--radius-sm);min-height:48px;color:var(--text);background:var(--surface-2);align-items:center;padding:.75rem;text-decoration:none;display:flex}.navigation-destinations a.active{box-shadow:inset 3px 0 var(--accent)}.navigation-identity{overflow-wrap:anywhere;color:var(--muted)}.page,.page-head,.app-main,.admin-section{min-width:0}.list-detail{max-width:1560px}.page-head h1,.list-detail-title h1,.navigation-dialog{overflow-wrap:anywhere}.sync-notice{flex-shrink:0}.reader-workspace{min-width:0}.reader-workspace[data-split=false]{flex-direction:column}.reader-workspace[data-split=false]>aside{border:0;flex:1;width:100%;min-height:0}.reader-workspace[data-split=false]>.pdf-pane:not(.focused){display:none}.reader-workspace[data-split=true]>aside{width:320px}.list-reader-sidebar{overscroll-behavior:contain}.songs-sidebar-controls{flex-shrink:0}.songs-sidebar-controls.picking-voice{flex-shrink:1;overflow:auto}.song-search-control{align-items:center;gap:.5rem;display:flex}.song-search-control input{flex:1;min-width:0}.songs-sidebar-controls .category-filter{overscroll-behavior:contain;max-height:min(11rem,25dvh);overflow:auto}.song-list-wrap{flex-direction:row}.song-list{width:0;min-width:0;padding-right:.4rem}.alphabet-scrubber{border-left:1px solid var(--border-soft);flex:none;width:auto;min-height:0;padding:4px 0;display:flex;position:relative;inset:auto}.alphabet-letters{grid-auto-flow:column;gap:0;min-height:0;display:grid}.alphabet-letters li{min-height:0}.alphabet-scrubber .alphabet-letter{width:32px;min-width:32px;height:100%;min-height:0;line-height:1;font-size:inherit;touch-action:none;padding:0}.alphabet-tooltip{z-index:5}.song-row-title,.sheet-list-item,.list-song-title,.voice-current-name{white-space:normal;overflow-wrap:anywhere}.voice-current-name{min-width:0}.voice-current>.button{flex-shrink:0}.pdf-pane{overflow:hidden}.pdf-pane-toolbar{flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem}.reader-heading{overflow-wrap:anywhere;flex-direction:column;flex:12rem;min-width:0;display:flex}.reader-heading span{color:var(--muted);font-size:.8rem}.pdf-pane-actions{gap:.5rem}.pdf-pane-body{min-width:0;padding:.5rem}.pdf-pane.focused{height:100dvh;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}.pdf-pane.focused .pdf-pane-body{padding:0}body.reader-open .app-header,body.reader-open .nav-adaptive{visibility:hidden}.pdf-pane.focused .button,.pdf-pane.focused select{min-height:var(--reader-target)}.pdf-pane.focused .reader-icon{min-width:var(--reader-target)}.reader-song-navigation{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.reader-song-navigation span{color:var(--muted);font-size:.85rem}.reader-contents-list{margin:.5rem 0;padding:0;list-style:none}.reader-contents-list li{border-bottom:1px solid var(--border-soft);padding:.5rem 0}.reader-contents-list .list-song-main{flex-wrap:wrap;width:100%;min-height:48px}.reader-contents-list [aria-current=true]{background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent)}.pdf-document{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.pdf-reading-tools{border-bottom:1px solid var(--border-soft);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.25rem .5rem;padding:.4rem .5rem;display:flex}.pdf-reading-tools>select{flex:0 11rem;width:auto;min-width:0}.pdf-reading-tools .reader-icon{min-width:44px;padding:.4rem;font-size:1.35rem}.pdf-scale{text-align:center;font-variant-numeric:tabular-nums;min-width:2.5rem;font-size:.85rem}.pdf-page-jump{align-items:center;gap:.4rem;margin:0 0 0 auto;font-size:.85rem;display:flex}.pdf-page-jump select{width:auto;min-width:3.5rem;padding:.5rem}.pdf-canvas-scroll{overscroll-behavior:contain;overflow-anchor:none;border-radius:0;padding:8px;display:block}.pdf-page-stack{flex-direction:column;gap:12px;min-width:100%;display:flex}.pdf-canvas-page{flex-shrink:0;max-width:none;margin-inline:auto}.pdf-canvas-page canvas{width:100%;height:100%}.pdf-canvas-scroll:focus-visible{outline-offset:-4px}.modal{max-height:calc(100dvh - 2rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));flex-direction:column;padding:0;display:flex}.modal-head{border-bottom:1px solid var(--border-soft);flex-shrink:0;padding:1rem}.modal-head h2{overflow-wrap:anywhere;min-width:0;margin:0;font-size:1.2rem}.modal-body{overscroll-behavior:contain;min-height:0;padding:1rem;scroll-padding-block:1rem;overflow:auto}.modal-body>.stack{max-width:none}.modal-footer{position:static}.viewer-overlay{z-index:100;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}.viewer{min-width:0;max-height:100dvh}.viewer-body{overflow:hidden}.palette-dialog{width:min(30rem,100vw - 2rem)}.palette-dialog .emoji-picker,.palette-dialog .color-picker{width:100%;min-width:0;box-shadow:none;grid-template-columns:repeat(auto-fit,minmax(44px,1fr))}.palette-dialog .emoji-option,.palette-dialog .color-option{min-width:44px;min-height:44px}.instrument-select,.member-select-control{min-width:0;max-width:100%}.instrument-select-menu{width:100%;min-width:0;max-height:min(18rem,40dvh);box-shadow:none;position:relative;top:auto}.instrument-select-input{min-width:0}.checkbox{cursor:pointer;min-height:44px}.hold-button{touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.upload-workspace{container:upload/inline-size}@container upload (width<=961px){.upload-editor-layout{grid-template-columns:minmax(0,1fr)}.upload-mobile-tabs{flex-wrap:wrap;display:flex}.upload-editor-layout.mobile-editor>.upload-preview-panel,.upload-editor-layout.mobile-preview>.upload-sheet-sidebar{display:none}}.upload-sheet-list li{align-items:center}.upload-check-target{cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin:0;display:inline-flex}.upload-thumbnail>label{align-items:center;min-height:44px}.upload-thumbnail>button{min-height:44px}.upload-footer,.print-workflow-footer{bottom:var(--app-bottom-offset,0px)}.upload-footer{padding-bottom:max(.85rem, env(safe-area-inset-bottom))}.print-page{container:printing/inline-size}@container printing (width<=961px){.print-songs-workspace,.print-parts-workspace,.print-output-workspace{grid-template-columns:minmax(0,1fr);height:auto}.print-archive,.print-queue-panel,.print-instrument-list{max-height:min(28rem,60dvh)}.print-source-editor{grid-template-columns:minmax(0,1fr)}}@media (width<=1199px){.nav .nav-expanded{display:none}.nav-adaptive{flex-shrink:0;gap:.5rem;margin-left:auto;display:flex}.nav .brand,.brand-box{min-width:0}.brand-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.print-search-row{grid-template-columns:minmax(0,1fr)}.print-workflow-footer,.print-workflow-footer .row-actions{flex-wrap:wrap}}@media (width<=599px){:root{--app-bottom-offset:calc(var(--compact-nav-height) + env(safe-area-inset-bottom,0px))}.app-shell{padding-bottom:var(--app-bottom-offset)}.nav{min-height:52px;padding-block:.35rem}.nav-adaptive{z-index:25;height:var(--app-bottom-offset);padding:.25rem max(.5rem, env(safe-area-inset-right)) calc(.25rem + env(safe-area-inset-bottom)) max(.5rem, env(safe-area-inset-left));border-top:1px solid var(--border);background:var(--surface);gap:.25rem;position:fixed;inset:auto 0 0}.nav-adaptive a,.nav-adaptive button{flex-direction:column;flex:1;gap:.1rem;padding:.2rem;font-size:.8rem}.admin-tabs{display:none}.admin-section-toggle{text-align:left;justify-content:space-between;width:100%;margin-bottom:1rem;display:flex}.modal{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.modal-head,.modal-body{padding:.75rem}.pdf-pane-toolbar{align-items:start}.reader-heading{flex:6rem}.pdf-pane-actions{justify-content:flex-end;width:100%}.reader-song-navigation .button{flex:40%;padding-inline:.5rem;font-size:.85rem}.reader-song-navigation span{text-align:center;order:3;width:100%}.pdf-reading-tools>select{flex-basis:8.75rem}.pdf-page-jump{justify-content:center;width:100%;margin-left:0}.list-row{grid-template-columns:minmax(0,1fr) auto}.list-row-owner,.list-row-updated{grid-column:1}.permission-row{grid-template-columns:minmax(0,1fr)}.print-footer-note{display:none}}@media (height<=599px){.pdf-pane-toolbar{padding-block:.25rem}.reader-heading span{display:none}.reader-song-navigation,.pdf-reading-tools{padding-block:.25rem}.reader-song-navigation .button{padding-inline:.5rem;font-size:.85rem}.print-songs-workspace,.print-parts-workspace{height:auto}.list-reader{height:70dvh}.modal{max-height:calc(100dvh - .5rem)}}@media (width<=1199px),(any-pointer:coarse){button,a.button,.tabs a,.chip{min-width:44px;min-height:44px}.pdf-pane.focused button,.pdf-pane.focused select{min-height:48px}.print-page .print-row-controls .icon-button,.print-page .print-instrument-card .print-row-controls .icon-button{width:44px;min-width:44px;height:44px;min-height:44px}.print-source-page-numbers button,.print-source-page-numbers .print-source-page-choice button{min-width:44px;height:44px}.emoji-trigger.bare,.emoji-trigger.small,.color-trigger,.member-select-toggle,.list-song-controls .icon-button{min-width:44px;min-height:44px}input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:44px;font-size:1rem}.print-part-row .print-variant-select{min-height:44px}.print-row-controls{flex-wrap:wrap;gap:.5rem}}.table-wrap{container:sheet-table/inline-size}@container sheet-table (width<=800px){.admin-table{min-width:0;display:block}.admin-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.admin-table tbody,.admin-table tr{width:100%;display:block}.admin-table tr{border-bottom:1px solid var(--border);padding:.75rem}.admin-table td{overflow-wrap:anywhere;border:0;width:100%;max-width:none;padding:.35rem 0;display:block}.admin-table td[data-label]:before{content:attr(data-label);color:var(--muted);margin-bottom:.25rem;font-size:.75rem;font-weight:600;display:block}.admin-table .filename-button{min-height:44px}.admin-table .row-actions{gap:.5rem}}@media (width<=599px){.app-header{-webkit-backdrop-filter:none;backdrop-filter:none}}.brand-labels{min-width:0}.brand-primary{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pdf-pane.focused select{height:48px}@media (width<=1199px),(any-pointer:coarse){select{height:44px}.pdf-pane.focused select{height:48px}}@media (width<=799px){.admin-tabs{display:none}.admin-section-toggle{text-align:left;justify-content:space-between;width:100%;margin-bottom:1rem;display:flex}}.nav .brand{min-width:0;max-width:min(30vw,20rem)}.nav .brand-primary{max-width:100%}@media (width<=599px){.nav .brand{max-width:100%}}.nav-user,.nav-user .user-email{min-width:0}.nav-user .button{flex-shrink:0}.pdf-score-viewport{flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.pdf-score-viewport .pdf-canvas-scroll{width:100%}.pdf-score-viewport .pdf-page-stack{transform:translateX(var(--swipe-offset,0px));transition:transform .18s ease-out,opacity .14s ease-out}.swipe-dragging .pdf-page-stack{transition:none}.swipe-dragging .pdf-canvas-scroll,.swipe-outgoing .pdf-canvas-scroll{overflow-x:hidden}.swipe-outgoing .pdf-page-stack{opacity:.65;transition-duration:.14s}.swipe-incoming .pdf-page-stack{animation:.2s ease-out both score-arrive}.pdf-swipe-hint{z-index:2;text-align:center;width:min(15rem,44%);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 5px 22px var(--shadow);pointer-events:none;overflow-wrap:anywhere;flex-direction:column;align-items:center;gap:.4rem;padding:.85rem;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.pdf-swipe-hint.next{right:12px}.pdf-swipe-hint.prev{left:12px}.pdf-swipe-hint.armed{border-color:var(--accent);background:var(--accent-soft)}.pdf-swipe-hint>span:last-child{color:var(--muted);font-size:.85rem}.pdf-swipe-arrow{background:var(--surface-2);border-radius:50%;place-items:center;width:40px;height:40px;font-size:1.5rem;display:grid}.pdf-swipe-hint.armed .pdf-swipe-arrow{background:var(--accent-strong);color:var(--on-accent)}@keyframes score-arrive{0%{opacity:.45;transform:translateX(var(--swipe-entry))}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.pdf-score-viewport .pdf-page-stack{transition:none;animation:none;transform:none}}@media (height<=599px) and (width>=600px){.songs-sidebar-controls:not(.picking-voice){grid-template-columns:minmax(9rem,.8fr) minmax(0,1.2fr) minmax(11rem,1fr);align-items:center;display:grid}.songs-sidebar-controls .category-filter{max-height:6rem}}.reader-controls-panel{flex:none;min-width:0}.reader-controls-panel[hidden]{display:none}.pdf-pane.focused,.pdf-pane.focused .pdf-canvas-scroll{padding:0}.pdf-pane.focused .reader-controls-panel{z-index:75;top:calc(4rem + env(safe-area-inset-top,0px));left:max(.5rem, env(safe-area-inset-left));right:max(.5rem, env(safe-area-inset-right));max-height:calc(100dvh - 5rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 30px var(--shadow);position:absolute;overflow:auto}.reader-tools-toggle{z-index:80;top:max(.5rem, env(safe-area-inset-top));right:max(.5rem, env(safe-area-inset-right));border:1px solid var(--border-soft);background:var(--header-bg);width:48px;height:48px;color:var(--text);font:inherit;opacity:.7;cursor:pointer;border-radius:50%;place-items:center;padding:0;font-size:1.7rem;display:grid;position:absolute}.reader-tools-toggle:hover,.reader-tools-toggle:focus-visible,.reader-tools-toggle[aria-expanded=true]{opacity:1}.pdf-pane.focused>.sync-notice{z-index:74;bottom:max(.5rem, env(safe-area-inset-bottom));left:max(.5rem, env(safe-area-inset-left));right:max(.5rem, env(safe-area-inset-right));background:var(--surface);border:1px solid var(--border);margin:0;padding:.75rem;position:absolute}:root{--installation-space:0px}.app-main:has(.installation-reminder){padding-bottom:var(--installation-space)}.app-main:has(.installation-reminder) .songs-layout{height:calc(100dvh - 8rem - var(--installation-space));min-height:8rem}.installation-reminder{z-index:20;bottom:max(.75rem, env(safe-area-inset-bottom));left:max(.75rem, env(safe-area-inset-left));right:max(.75rem, env(safe-area-inset-right));width:auto;max-width:36rem;max-height:calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));border:1px solid var(--border);margin-inline:auto;padding:1rem;position:fixed;overflow:auto;box-shadow:0 .5rem 2rem #0003}.installation-reminder h2{margin:0 0 .5rem;font-size:1.15rem}.installation-reminder p{margin:.4rem 0}.installation-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.installation-actions>[role=status]:empty{display:none}.installation-actions .button{white-space:normal;min-width:44px}.installation-dialog{width:min(36rem,100vw - 1.5rem)}.installation-dialog select{margin-top:.4rem}.installation-steps{padding-left:1.5rem}.installation-steps li{margin-block:.75rem}.installation-address{-webkit-user-select:text;user-select:text;overflow-wrap:anywhere}@media (width<=599px){.viewer-overlay:has(.installation-dialog){align-items:flex-end}}@media (height<=600px){.installation-reminder{width:100%;max-height:none;margin:.75rem auto;position:static}.app-main:has(.installation-reminder){padding-bottom:1rem}.app-main:has(.installation-reminder) .songs-layout{height:60dvh;min-height:8rem}}@media (forced-colors:active){.installation-reminder{box-shadow:none;border:1px solid canvastext}}@media (width<=599px){.installation-dialog .modal-head{flex-wrap:wrap}.installation-dialog .modal-head h2{flex-basis:100%}.installation-dialog .modal-head>.button{margin-left:auto}}[hidden]{display:none!important}:where(h1,h2,h3,h4,h5,h6,main)[tabindex="-1"]:focus{box-shadow:none!important;outline:none!important}:where(button,a,input,select,textarea,summary,[tabindex]){scroll-margin-block:6rem}html{scroll-padding-block:6rem}summary{cursor:pointer;min-height:44px;padding:.5rem .25rem}.instrument-select{width:100%;display:block}.picker-label{margin-bottom:.35rem;font-size:.875rem;display:block}.instrument-select-menu label{justify-content:flex-start;margin:0}.instrument-select-menu label input{flex:none}.instrument-select-menu{scroll-padding-block:1rem 4rem}.instrument-select-chips:empty{display:none}.alphabet-scrubber{min-width:36px;padding:4px 0;overflow:visible}.alphabet-letters{flex-direction:column;gap:0;height:100%;min-height:0;font-size:.75rem;display:flex}.alphabet-letters li{flex:1;min-height:0}.alphabet-scrubber .alphabet-letter{width:36px;min-width:36px;height:100%;min-height:0;font-size:inherit;justify-content:center;align-items:center;display:flex}.color-option{place-items:center;font-size:1.25rem;display:inline-grid}.emoji-option[aria-pressed=true]{border:2px solid var(--text)}.print-row-title strong,.print-select-instrument strong,.print-variant-name{white-space:normal;overflow-wrap:anywhere}.list-row{color:var(--text);text-decoration:none}.table-wrap{scroll-padding:.5rem}.admin-table tbody th{text-align:left;font-weight:400}@container sheet-table (width<=800px){.admin-table tbody th{overflow-wrap:anywhere;border:0;width:100%;padding:.35rem 0;display:block}.admin-table tbody th[data-label]:before{content:attr(data-label);color:var(--muted);margin-bottom:.25rem;font-size:.75rem;font-weight:600;display:block}}input.visually-hidden:focus-visible+label{outline:2px solid var(--accent);outline-offset:3px}@media (forced-colors:active){:focus-visible{outline-offset:-2px;box-shadow:none!important;outline:2px solid highlight!important}:where(button,.button,input,select,textarea){border:1px solid buttontext}[aria-pressed=true],[aria-current=true],.is-current{outline-offset:-3px;outline:2px solid highlight}.color-option,.appearance-swatch,.color-trigger{border:2px solid buttontext}}.voice-option,.voice-option-name{color:var(--text)}.songs-browser-title{margin:0;font-size:1.2rem}.print-output-preview>h3{margin:.75rem 1rem}@media (forced-colors:active){.color-picker,.appearance-swatches{flex-wrap:wrap;gap:.5rem;display:flex}.color-option,.appearance-swatch,.color-trigger{gap:.3rem;width:auto;height:auto;min-height:44px;padding:.5rem}.swatch-name.visually-hidden{clip:auto;clip-path:none;white-space:normal;width:auto;height:auto;position:static;overflow:visible}}.storage-summary{border:1px solid var(--border-soft);border-radius:12px;margin-block:1rem;padding:1rem}.storage-summary h2{margin:0 0 .5rem;font-size:1rem}.storage-summary p{margin:.4rem 0}.storage-summary meter{width:100%;height:1rem;display:block}.legal-page{max-width:76ch;padding:max(1.5rem, env(safe-area-inset-top)) 1rem max(2rem, env(safe-area-inset-bottom));overflow-wrap:anywhere;margin:auto;line-height:1.65}.legal-links{flex-wrap:wrap;gap:.5rem 1rem;margin-block:1rem;display:flex}.legal-links a{align-items:center;min-height:44px;display:inline-flex}.legal-page section{margin-block:2rem}.legal-page h2{scroll-margin-top:1rem}.legal-page dl>div{margin-block:1rem}.legal-page dt{font-weight:600}.legal-page dd{white-space:pre-line;margin:.25rem 0 0}.legal-pending{border-inline-start:3px solid var(--muted);padding-inline-start:1rem}.signin-card h1{margin:1.5rem 0 .5rem;font-size:1.5rem}.signin-form{gap:1rem;margin-top:1.5rem;display:grid}.signin-field{gap:.5rem;display:grid}.signin-field p{margin:0}.signin-destination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.signin-destination span{overflow-wrap:anywhere;min-width:0}.signin-code{font-variant-numeric:tabular-nums;letter-spacing:.22em;font-size:1.25rem}.signin-primary{width:100%}.signin-secondary{flex-wrap:wrap;justify-content:center;display:flex}.signin-destination .button.ghost,.signin-secondary .button.ghost{box-shadow:none;color:var(--accent-strong);text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.signin-secondary .button.ghost:disabled{color:var(--muted);text-decoration:none}.signin-help summary{cursor:pointer;align-content:center;min-height:44px;display:list-item}.signin-help p{margin-block:.25rem .75rem}.signin-legal{margin:1.25rem 0 0;line-height:1.6}.alphabet-chooser{align-items:center;gap:.5rem;margin:.25rem 0;font-size:.875rem;display:flex}.alphabet-chooser select{width:auto;min-width:64px;min-height:44px}.alphabet-scrubber{touch-action:none;-webkit-user-select:none;user-select:none;cursor:ns-resize}.alphabet-scrubber .alphabet-letters{pointer-events:none}.alphabet-scrubber .alphabet-letter.active{background:var(--accent-soft);color:var(--text);border-radius:4px;font-weight:700}.alphabet-bubble{background:var(--surface);width:64px;height:64px;color:var(--text);border:1px solid var(--border-soft);pointer-events:none;z-index:5;border-radius:12px;place-items:center;font-size:2rem;font-weight:700;display:grid;position:absolute;top:50%;right:calc(100% + 8px);transform:translateY(-50%)}@media (forced-colors:active){.alphabet-bubble,.alphabet-letter.active{border:2px solid highlight}}.songs-sidebar.with-alphabet{padding-inline-end:36px;position:relative}.with-alphabet .song-list-wrap{position:static}.with-alphabet .alphabet-scrubber{width:36px;position:absolute;inset:0 0 0 auto}.with-alphabet .alphabet-letters{font-size:clamp(8px,2.5dvh,12px)}
