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