:root{
  --choir-ink:#1a1d23;
  --choir-green:#4f46e5;
  --choir-accent-deep:#3730a3;
  --choir-lime:#a5b4fc;
  --choir-paper:#f2f4f7;
  --choir-line:#e6e8ee;
  --choir-muted:#5d6673;
  --choir-tint:#eef1fe;
  --choir-surface:#ffffff;
  --choir-field-border:#c9d1dc;
  --choir-success:#2f9e63;
  --choir-success-text:#226b4b;
  --choir-success-tint:#eefaf3;
  --choir-warning:#d98a0f;
  --choir-warning-text:#7c4e04;
  --choir-warning-soft:#f5d78e;
  --choir-warning-tint:#fdf6e4;
  --choir-danger:#d92d20;
  --choir-danger-border:#f0b3ae;
  --choir-danger-text:#9c1f16;
  --choir-danger-tint:#fdf1f0;
  --choir-link:#4f46e5;
  --choir-youtube:#b42329;
  --choir-reader-bg:#0e0f12;
  --choir-reader-canvas:#292b30;
  --choir-on-dark-muted:#c8cdd6;
  --choir-shadow-faint:rgba(16,24,40,.05);
  --choir-shadow-subtle:rgba(16,24,40,.07);
  --choir-shadow-soft:rgba(16,24,40,.1);
  --choir-shadow-light:rgba(10,14,25,.22);
  --choir-shadow-medium:rgba(10,14,25,.26);
  --choir-shadow-dialog:rgba(10,14,25,.3);
  --choir-shadow:rgba(10,14,25,.34);
  --choir-shadow-strong:rgba(8,10,18,.6);
  --choir-overlay-soft:rgba(15,18,25,.6);
  --choir-overlay:rgba(15,18,25,.7);
  --choir-overlay-near:rgba(19,21,27,.96);
  --choir-overlay-strong:rgba(17,19,24,.98);
  --choir-overlay-dark-soft:rgba(0,0,0,.55);
  --choir-overlay-dark:rgba(0,0,0,.9);
  --choir-surface-ghost:rgba(255,255,255,.1);
  --choir-surface-wash:rgba(255,255,255,.22);
  --choir-surface-border:rgba(255,255,255,.3);
  --choir-surface-border-mid:rgba(255,255,255,.38);
  --choir-surface-half:rgba(255,255,255,.5);
  --choir-surface-border-strong:rgba(255,255,255,.55);
  --choir-surface-border-max:rgba(255,255,255,.65);
  --choir-lime-wash:rgba(165,180,252,.3);
  --choir-warning-ring:rgba(217,138,15,.14);
}
.choir-portal{max-width:980px;margin:2rem auto;color:var(--choir-ink);font-family:system-ui,-apple-system,sans-serif}
.choir-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;padding:2rem;border-radius:22px;background:var(--choir-green);color:var(--choir-surface)}
.choir-hero h2{font-size:clamp(2rem,6vw,4.2rem);line-height:1;margin:.2rem 0}
.choir-hero-brand{display:flex;align-items:flex-start;flex-direction:column}
.choir-language-switcher{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin-top:1rem;padding:.3rem;border:1px solid var(--choir-surface-border-mid);border-radius:999px;background:var(--choir-surface-ghost);font-size:.72rem}.choir-language-switcher a{display:inline-flex;align-items:center;gap:.28rem;border-radius:999px;padding:.38rem .58rem;color:inherit;text-decoration:none}.choir-language-switcher a:hover,.choir-language-switcher a:focus-visible{background:var(--choir-surface-wash)}.choir-language-switcher a.is-active{background:var(--choir-lime);color:var(--choir-ink);font-weight:850}.choir-language-switcher a span{font-size:1rem;line-height:1}
.choir-login-notice{box-sizing:border-box;max-width:520px;margin:2rem auto}.choir-login-notice .choir-language-switcher{margin:0 0 1.2rem;border-color:var(--choir-line);background:var(--choir-surface)}.choir-login-notice .choir-language-switcher a{color:var(--choir-ink)}.choir-login-notice form{display:grid;gap:.75rem}.choir-login-notice label{display:block;margin-bottom:.25rem;font-weight:700}.choir-login-notice input[type=text],.choir-login-notice input[type=password]{box-sizing:border-box;width:100%;border:1px solid var(--choir-field-border);border-radius:10px;padding:.75rem;background:var(--choir-surface);font:inherit}.choir-login-notice input[type=submit]{border:0;border-radius:999px;padding:.75rem 1rem;background:var(--choir-green);color:var(--choir-surface);font:inherit;font-weight:800;cursor:pointer}
.choir-kicker{margin:0;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem}
.choir-member-profile{min-width:245px;padding:1rem;border:1px solid var(--choir-surface-border);border-radius:14px;background:var(--choir-surface-ghost)}
.choir-member-profile.needs-instrument{border-color:var(--choir-lime);box-shadow:0 0 0 2px var(--choir-lime-wash)}
.choir-member-profile>strong,.choir-member-profile label{display:block}
.choir-user-role{display:inline-block;margin:.2rem 0 .3rem;padding:.2rem .5rem;border-radius:999px;background:var(--choir-lime);color:var(--choir-ink);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.choir-member-profile label{margin:.35rem 0 .25rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.choir-member-profile form>div{display:flex;gap:.4rem}
.choir-member-profile select,.choir-member-profile button{min-width:0;border:0;border-radius:8px;padding:.55rem .65rem;font:inherit}
.choir-member-profile select{flex:1;background:var(--choir-surface);color:var(--choir-ink)}
.choir-member-profile button{background:var(--choir-lime);color:var(--choir-ink);font-weight:700;cursor:pointer}
.choir-profile-prompt{margin:1rem 0;padding:1rem 1.2rem;border-radius:12px;background:var(--choir-tint);color:var(--choir-ink)}
.choir-offline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;margin:1rem 0;padding:1rem 1.15rem;border:1px solid var(--choir-line);border-radius:16px;background:var(--choir-surface)}
.choir-offline[hidden]{display:none!important}
.choir-offline[data-state="ready"]{border-color:var(--choir-success);background:var(--choir-success-tint)}.choir-offline[data-state="update"]{border-color:var(--choir-warning);background:var(--choir-warning-tint)}.choir-offline[data-state="error"]{border-color:var(--choir-danger-border);background:var(--choir-danger-tint)}
.choir-offline-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;background:var(--choir-lime);color:var(--choir-ink);font-size:1.35rem;font-weight:900}.choir-offline[data-state="ready"] .choir-offline-icon:before{content:"✓"}.choir-offline[data-state="ready"] .choir-offline-icon{font-size:0}.choir-offline[data-state="ready"] .choir-offline-icon:before{font-size:1.2rem}
.choir-offline-heading{display:flex;align-items:center;gap:.5rem}.choir-offline-heading h3{margin:0;font-size:1rem}.choir-offline-heading span{display:grid;min-width:1.35rem;height:1.35rem;padding:0 .2rem;box-sizing:border-box;place-items:center;border-radius:999px;background:var(--choir-warning);color:var(--choir-surface);font-size:.7rem;font-weight:900}.choir-offline-heading span[hidden]{display:none}
.choir-offline-copy>p{margin:.2rem 0;color:var(--choir-muted)}.choir-offline-facts{display:flex;flex-wrap:wrap;gap:.25rem .8rem;margin-top:.35rem;color:var(--choir-muted);font-size:.75rem}.choir-offline-facts span:empty{display:none}.choir-offline-facts span+span:before{content:"·";margin-right:.8rem}.choir-offline-detail{font-size:.78rem}.choir-offline-detail[hidden],.choir-offline-facts[hidden]{display:none}
.choir-offline-actions{display:flex;max-width:260px;flex-wrap:wrap;justify-content:flex-end;gap:.4rem}.choir-offline-actions button{border:1px solid var(--choir-green);border-radius:999px;padding:.55rem .75rem;background:var(--choir-surface);color:var(--choir-green);font:inherit;font-size:.75rem;font-weight:800;cursor:pointer}.choir-offline-actions .choir-offline-primary{background:var(--choir-green);color:var(--choir-surface)}.choir-offline-actions .choir-offline-remove{border-color:var(--choir-danger);color:var(--choir-danger-text)}.choir-offline-actions button:disabled{cursor:default;opacity:.55}
.choir-offline-progress{overflow:hidden;height:8px;margin-top:.55rem;border-radius:999px;background:var(--choir-line)}.choir-offline-progress[hidden]{display:none}.choir-offline-progress span{display:block;width:0;height:100%;border-radius:inherit;background:var(--choir-green);transition:width .2s ease}
.choir-live-panel{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;margin:1rem 0;padding:1rem 1.15rem;border:2px solid var(--choir-warning);border-radius:16px;background:var(--choir-warning-tint);box-shadow:0 8px 24px var(--choir-shadow-soft)}.choir-live-panel[hidden]{display:none}.choir-live-mark{padding:.5rem .65rem;border-radius:8px;background:var(--choir-danger);color:var(--choir-surface);font-size:.75rem;font-weight:900;letter-spacing:.08em}.choir-live-copy h3{margin:0;font-size:1rem}.choir-live-copy p{margin:.2rem 0;color:var(--choir-muted)}.choir-live-copy small{color:var(--choir-warning-text);font-weight:800}.choir-live-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem}.choir-live-actions button,.choir-live-conductor button,.choir-live-piece{border:1px solid var(--choir-green);border-radius:999px;padding:.55rem .8rem;background:var(--choir-surface);color:var(--choir-green);font:inherit;font-size:.75rem;font-weight:800;cursor:pointer}.choir-live-actions .choir-live-join,.choir-live-conductor>[data-choir-live-start]{background:var(--choir-green);color:var(--choir-surface)}.choir-live-actions button:disabled,.choir-live-conductor button:disabled,.choir-live-piece:disabled{cursor:default;opacity:.55}
.choir-tabs{display:flex;gap:.5rem;margin:1rem 0}
.choir-tabs button,.choir-actions button,.choir-actions a,.choir-attendance button{border:1px solid var(--choir-green);border-radius:999px;padding:.7rem 1rem;background:var(--choir-surface);color:var(--choir-green);font:inherit;text-decoration:none;cursor:pointer}
.choir-tabs button{position:relative}
.choir-tabs button.is-active,.choir-attendance button.is-selected,.choir-actions button{background:var(--choir-green);color:var(--choir-surface)}
.choir-tab-count{display:inline-grid;min-width:1.35rem;height:1.35rem;margin-left:.3rem;padding:0 .2rem;box-sizing:border-box;place-items:center;border-radius:999px;background:var(--choir-lime);color:var(--choir-ink);font-size:.7rem;font-weight:800;line-height:1}
.choir-tab-tooltip{box-sizing:border-box;position:absolute;z-index:80;top:calc(100% + .55rem);left:50%;width:max-content;max-width:min(260px,calc(100vw - 2rem));visibility:hidden;border-radius:8px;padding:.5rem .65rem;background:var(--choir-ink);color:var(--choir-surface);box-shadow:0 8px 22px var(--choir-shadow-soft);font-size:.7rem;font-weight:650;line-height:1.35;text-align:left;white-space:normal;opacity:0;pointer-events:none;transform:translate(-50%,-4px);transition:opacity .15s ease,transform .15s ease,visibility .15s ease}
.choir-tabs button:first-child .choir-tab-tooltip{left:0;transform:translateY(-4px)}
.choir-tabs button:last-child .choir-tab-tooltip{right:0;left:auto;transform:translateY(-4px)}
.choir-tabs button:focus-visible .choir-tab-tooltip{visibility:visible;opacity:1;transform:translate(-50%,0)}
.choir-tabs button:first-child:focus-visible .choir-tab-tooltip,.choir-tabs button:last-child:focus-visible .choir-tab-tooltip{transform:translateY(0)}
@media(hover:hover){.choir-tabs button:hover .choir-tab-tooltip{visibility:visible;opacity:1;transform:translate(-50%,0)}.choir-tabs button:first-child:hover .choir-tab-tooltip,.choir-tabs button:last-child:hover .choir-tab-tooltip{transform:translateY(0)}}
.choir-event{margin:1rem 0;padding:1.4rem;border:1px solid var(--choir-line);border-radius:18px;background:var(--choir-surface)}.choir-event.is-live{border-color:var(--choir-warning);box-shadow:0 0 0 2px var(--choir-warning-ring)}
.choir-event-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.choir-event-tools{display:flex;align-items:flex-start;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.choir-event-edit{border:1px solid var(--choir-green);border-radius:999px;padding:.55rem .8rem;background:var(--choir-surface);color:var(--choir-green);font-size:.75rem;font-weight:800;text-decoration:none;white-space:nowrap}.choir-live-conductor{display:flex;justify-content:flex-end}.choir-live-conductor [data-choir-live-control]{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;color:var(--choir-warning-text);font-size:.78rem}.choir-live-conductor [data-choir-live-control][hidden]{display:none}.choir-live-conductor [data-choir-live-control] strong{display:inline-block;padding:.18rem .38rem;border-radius:5px;background:var(--choir-danger);color:var(--choir-surface);font-size:.68rem;letter-spacing:.06em}
.choir-live-conductor [data-choir-live-browse]{background:var(--choir-green);color:var(--choir-surface)}.choir-live-conductor [data-choir-live-stop]{border-color:var(--choir-danger);color:var(--choir-danger-text)}
.choir-event-recordings{border:1px solid var(--choir-green);border-radius:999px;padding:.5rem .7rem;background:var(--choir-surface);color:var(--choir-green);font:inherit;font-size:.74rem;font-weight:800;cursor:pointer}
.choir-event h3,.choir-piece h3{margin:.35rem 0}
.choir-badge{display:inline-block;padding:.25rem .55rem;border-radius:6px;background:var(--choir-lime);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
.choir-setlist{padding-left:1.5rem}
.choir-setlist li{padding:.35rem 0;border-bottom:1px solid var(--choir-line)}
.choir-setlist li.is-live-current{margin:0 -.55rem;padding:.35rem .55rem;border-radius:8px;background:var(--choir-warning-tint)}.choir-setlist-row{display:flex;align-items:center;gap:.6rem}.choir-setlist-link{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1rem;border:0;padding:.45rem 0;background:transparent;color:var(--choir-green);font:inherit;font-weight:700;text-align:left;cursor:pointer}
.choir-live-piece{display:none;flex:0 0 auto;border-color:var(--choir-warning);color:var(--choir-warning-text)}.choir-event.is-live .choir-live-piece{display:block}.choir-setlist li.is-live-current .choir-live-piece{background:var(--choir-danger);border-color:var(--choir-danger);color:var(--choir-surface)}.choir-setlist li.is-live-current .choir-live-piece:before{content:"● ";font-size:.62rem}
.choir-live-picker{position:fixed;z-index:2147482990;inset:0;display:grid;place-items:center;padding:1rem;background:var(--choir-overlay);font-family:system-ui,-apple-system,sans-serif}.choir-live-picker[hidden]{display:none}.choir-live-picker-card{position:relative;box-sizing:border-box;width:min(680px,100%);max-height:min(760px,calc(100dvh - 2rem));overflow:hidden;padding:1.25rem;border-radius:20px;background:var(--choir-surface);color:var(--choir-ink);box-shadow:0 24px 70px var(--choir-shadow-dialog)}.choir-live-picker-card h2{margin:.25rem 2.5rem .35rem 0;font-size:1.55rem}.choir-live-picker-card>p:not(.choir-kicker):not(.choir-live-picker-status){margin:.25rem 2.5rem 1rem 0;color:var(--choir-muted)}.choir-live-picker-card>label span{display:block;margin-bottom:.35rem;font-size:.78rem;font-weight:800}.choir-live-picker-card>label input{box-sizing:border-box;width:100%;border:1px solid var(--choir-field-border);border-radius:11px;padding:.75rem .85rem;background:var(--choir-surface);color:var(--choir-ink);font:inherit}.choir-live-picker-close{position:absolute;top:.7rem;right:.8rem;border:0;background:transparent;color:var(--choir-ink);font-size:2rem;line-height:1;cursor:pointer}.choir-live-picker-status{margin:.65rem 0;color:var(--choir-muted);font-size:.76rem}.choir-live-picker-results{display:grid;max-height:min(500px,55dvh);overflow:auto;gap:.45rem;padding-right:.2rem}.choir-live-picker-piece{display:grid;gap:.28rem;width:100%;border:1px solid var(--choir-line);border-radius:11px;padding:.7rem .8rem;background:var(--choir-tint);color:var(--choir-ink);font:inherit;text-align:left;cursor:pointer}.choir-live-picker-piece:hover:not(:disabled),.choir-live-picker-piece:focus-visible{border-color:var(--choir-green);background:var(--choir-tint)}.choir-live-picker-piece:disabled{cursor:not-allowed;opacity:.55}.choir-live-picker-piece>span:first-child{display:flex;align-items:center;gap:.5rem}.choir-live-picker-piece strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.choir-live-picker-piece small{margin-left:auto;padding:.18rem .42rem;border-radius:999px;background:var(--choir-paper);color:var(--choir-muted);font-size:.62rem;font-weight:850;white-space:nowrap}.choir-live-picker-piece small.is-current{background:var(--choir-danger);color:var(--choir-surface)}.choir-live-picker-piece>span:nth-child(2){color:var(--choir-muted);font-size:.72rem}.choir-live-picker-piece em{color:var(--choir-warning-text);font-size:.7rem;font-style:normal}
.choir-setlist-link:hover,.choir-setlist-link:focus-visible{text-decoration:underline}
.choir-setlist-link span{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.choir-attendance{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.choir-library-filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(180px,1fr);gap:.8rem;align-items:end;margin:1.5rem 0}
.choir-library-filters>label:only-child{grid-column:1/-1}
.choir-search,.choir-collection-filter{display:block;margin:0}
.choir-search span{display:block;font-weight:700;margin-bottom:.4rem}
.choir-collection-filter span{display:block;font-weight:700;margin-bottom:.4rem}
.choir-search input,.choir-collection-filter select{box-sizing:border-box;width:100%;padding:.9rem 1rem;border:1px solid var(--choir-line);border-radius:12px;background:var(--choir-surface);font:inherit}
.choir-grid{display:grid;gap:.7rem}
.choir-library-status{margin:.8rem 0;color:var(--choir-muted)}.choir-library-more{display:block;margin:1rem auto 0;border:1px solid var(--choir-green);border-radius:999px;padding:.75rem 1.2rem;background:var(--choir-surface);color:var(--choir-green);font:inherit;font-weight:800;cursor:pointer}.choir-library-more[hidden]{display:none}
.choir-piece{display:flex;align-items:stretch;flex-direction:column;gap:.7rem;padding:1rem 1.2rem;border:1px solid var(--choir-line);border-radius:14px;background:var(--choir-surface)}
.choir-piece[hidden],.choir-manager-piece-list>label[hidden]{display:none!important}
.choir-piece-main{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.choir-piece-heading{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem}.choir-piece-heading h3{margin:.35rem 0}.choir-media-badge{box-sizing:border-box;display:inline-flex;width:4.8rem;height:1.5rem;align-items:center;justify-content:center;gap:.24rem;border:1px solid;border-radius:999px;padding:.18rem .38rem;font-size:.62rem;font-weight:900;line-height:1;letter-spacing:.04em;text-decoration:none;white-space:nowrap}.choir-media-badge svg{width:.82rem;height:.82rem;flex:0 0 auto;fill:currentColor}.choir-midi-badge{border-color:var(--choir-green);background:var(--choir-tint);color:var(--choir-green)}.choir-youtube-badge{border-color:var(--choir-youtube);background:var(--choir-surface);color:var(--choir-youtube)}.choir-youtube-badge svg{width:.9rem;height:.9rem}
.choir-media-strip{display:inline-flex;align-items:center;gap:.3rem}.choir-portal .choir-media-strip>.choir-media-icon,.choir-reader .choir-reader-media-strip>.choir-media-icon{-webkit-appearance:none!important;appearance:none!important;box-sizing:border-box!important;position:relative!important;display:grid!important;width:2rem!important;height:2rem!important;min-width:2rem!important;min-height:2rem!important;margin:0!important;overflow:hidden!important;flex:0 0 2rem!important;align-items:center!important;justify-items:center!important;border:1px solid var(--choir-line)!important;border-radius:999px!important;padding:.38rem!important;background:var(--choir-paper)!important;color:var(--choir-muted)!important;font-size:0!important;line-height:0!important;text-indent:0!important;text-transform:none!important;vertical-align:middle!important;box-shadow:none!important;transform:none!important;cursor:default}.choir-portal .choir-media-icon>svg,.choir-reader .choir-media-icon>svg{box-sizing:content-box!important;display:block!important;width:1.1rem!important;height:1.1rem!important;min-width:0!important;max-width:none!important;min-height:0!important;max-height:none!important;margin:0!important;overflow:visible!important;padding:0!important;fill:currentColor!important;stroke:none!important;opacity:1!important;transform:none!important}.choir-portal .choir-media-icon>svg path,.choir-reader .choir-media-icon>svg path{fill:currentColor!important;stroke:none!important}.choir-media-icon.is-available{cursor:pointer!important}.choir-media-icon.is-available:hover,.choir-media-icon.is-available:focus-visible{outline:2px solid currentColor!important;outline-offset:2px}.choir-portal .choir-media-icon:disabled,.choir-reader .choir-media-icon:disabled{border-color:var(--choir-line)!important;background:var(--choir-paper)!important;color:var(--choir-muted)!important;opacity:1!important}.choir-media-icon:disabled svg{opacity:.42!important}.choir-portal .choir-youtube-badge.is-available,.choir-reader .choir-youtube-badge.is-available{border-color:var(--choir-youtube)!important;background:var(--choir-surface)!important;color:var(--choir-youtube)!important}.choir-portal .choir-midi-badge.is-available,.choir-reader .choir-midi-badge.is-available{border-color:var(--choir-green)!important;background:var(--choir-tint)!important;color:var(--choir-green)!important}.choir-portal .choir-mp3-badge.is-available,.choir-reader .choir-mp3-badge.is-available{border-color:var(--choir-warning)!important;background:var(--choir-warning-tint)!important;color:var(--choir-warning-text)!important}
.choir-reader-media-strip{display:inline-flex;align-items:center;gap:.25rem;flex:0 0 auto}.choir-reader .choir-reader-media-strip>.choir-media-icon{width:1.85rem!important;height:1.85rem!important;min-width:1.85rem!important;min-height:1.85rem!important;flex-basis:1.85rem!important;padding:.34rem!important}.choir-reader-bar>.choir-playalong,.choir-reader-bar>.choir-midi-playalong,.choir-reader-bar>.choir-mp3-playalong{display:none!important}
.choir-piece p{margin:.25rem 0;color:var(--choir-muted)}
.choir-piece .choir-piece-credits{display:flex;flex-wrap:wrap;gap:.2rem 1rem;margin:.15rem 0 .35rem;color:var(--choir-muted);font-size:.9rem}
.choir-piece .choir-catalog-note,.choir-setlist-note{margin:.45rem 0;padding:.55rem .7rem;border-left:4px solid var(--choir-warning);border-radius:6px;background:var(--choir-warning-tint);color:var(--choir-warning-text);font-size:.84rem}
.choir-setlist-note{margin:.15rem 0 .45rem}
.choir-collection-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin:.35rem 0}.choir-collection-badges span{padding:.2rem .5rem;border-radius:999px;background:var(--choir-paper);color:var(--choir-green);font-size:.72rem;font-weight:800}
.choir-actions{display:flex;flex-wrap:wrap;gap:.5rem;flex-shrink:0}
.choir-history{border-top:1px solid var(--choir-line);padding-top:.65rem}.choir-history summary{color:var(--choir-green);font-weight:800;cursor:pointer}.choir-history summary span{display:inline-grid;min-width:1.5rem;height:1.5rem;margin-left:.3rem;place-items:center;border-radius:999px;background:var(--choir-lime);font-size:.75rem}.choir-history ul{list-style:none;margin:.8rem 0 0;padding:0}.choir-history li{display:grid;grid-template-columns:110px 75px minmax(120px,1fr) auto;gap:.6rem;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--choir-line);font-size:.86rem}.choir-history-type{font-weight:800}.choir-history small{color:var(--choir-muted)}
.choir-empty,.choir-notice{padding:1.5rem;border-radius:14px;background:var(--choir-paper)}
.choir-management{display:grid;gap:1rem;margin-top:1rem}.choir-management-head{padding:1.5rem 1.7rem;border-radius:18px;background:var(--choir-tint)}.choir-management-head h2{margin:.25rem 0;font-size:clamp(1.65rem,4vw,2.5rem)}.choir-management-head p:last-child{margin:.4rem 0 0;color:var(--choir-muted)}.choir-save-message{margin:0;padding:.9rem 1rem;border-left:4px solid var(--choir-success);border-radius:10px;background:var(--choir-success-tint);font-weight:700}.choir-manager-card{overflow:hidden;border:1px solid var(--choir-line);border-radius:18px;background:var(--choir-surface)}.choir-manager-card>summary{display:flex;align-items:center;gap:1rem;padding:1.15rem 1.3rem;cursor:pointer;list-style:none}.choir-manager-card>summary::-webkit-details-marker{display:none}.choir-manager-card>summary:after{content:"＋";margin-left:auto;color:var(--choir-green);font-size:1.5rem}.choir-manager-card[open]>summary:after{content:"−"}.choir-manager-card summary strong,.choir-manager-card summary small{display:block}.choir-manager-card summary small{margin-top:.15rem;color:var(--choir-muted)}.choir-manager-icon{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:12px;background:var(--choir-lime);font-size:1.25rem;font-weight:800}.choir-manager-form{display:grid;gap:1rem;padding:0 1.3rem 1.4rem;border-top:1px solid var(--choir-line)}.choir-manager-form>label:first-of-type,.choir-manager-form>.choir-form-grid:first-of-type{margin-top:1.2rem}.choir-manager-form label>span,.choir-manager-form legend{display:block;margin-bottom:.35rem;font-weight:800}.choir-manager-form input,.choir-manager-form select,.choir-manager-form textarea{box-sizing:border-box;width:100%;border:1px solid var(--choir-field-border);border-radius:10px;padding:.75rem .8rem;background:var(--choir-surface);color:var(--choir-ink);font:inherit}.choir-manager-form textarea{resize:vertical}.choir-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.choir-form-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.choir-file-drop{padding:1rem;border:1px dashed var(--choir-field-border);border-radius:12px;background:var(--choir-tint)}.choir-file-drop small{display:block;margin-top:.4rem;color:var(--choir-muted)}.choir-piece-picker{display:grid;gap:.65rem}.choir-manager-piece-list{max-height:340px;overflow:auto;border:1px solid var(--choir-line);border-radius:12px;background:var(--choir-tint)}.choir-manager-piece-list>label{display:grid;grid-template-columns:auto 1fr;gap:.1rem .6rem;padding:.65rem .8rem;border-bottom:1px solid var(--choir-line);cursor:pointer}.choir-manager-piece-list>label:hover{background:var(--choir-tint)}.choir-manager-piece-list input{width:auto;margin-top:.2rem}.choir-manager-piece-list small{grid-column:2;color:var(--choir-warning-text)}.choir-manager-form fieldset{margin:0;padding:0;border:0}.choir-manager-collections{display:flex;flex-wrap:wrap;gap:.5rem}.choir-manager-collections label{padding:.55rem .75rem;border-radius:999px;background:var(--choir-paper)}.choir-manager-collections input{width:auto}.choir-manager-submit{justify-self:start;border:0;border-radius:999px;padding:.8rem 1.25rem;background:var(--choir-green);color:var(--choir-surface);font:inherit;font-weight:800;cursor:pointer}
.choir-manager-piece-status{margin:0;padding:1rem;color:var(--choir-muted)}.choir-manager-piece-hint{color:var(--choir-muted)}.choir-manager-submit-row{display:flex;align-items:center;gap:.8rem}.choir-manager-submit-row>a{color:var(--choir-green);font-weight:800;text-decoration:none}
.choir-library-health{padding:1.25rem;border-top:1px solid var(--choir-line);background:var(--choir-tint)}.choir-health-loading{padding:1rem;border-radius:12px;background:var(--choir-paper);color:var(--choir-muted);font-weight:700}.choir-health-topline{display:flex;align-items:center;justify-content:space-between;gap:1rem}.choir-health-topline p{margin:0;color:var(--choir-muted);font-size:.78rem}.choir-health-topline button,.choir-health-more{border:1px solid var(--choir-green);border-radius:999px;padding:.55rem .8rem;background:var(--choir-surface);color:var(--choir-green);font:inherit;font-size:.75rem;font-weight:800;cursor:pointer}.choir-health-topline button:disabled{cursor:default;opacity:.55}.choir-health-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;margin:1rem 0}.choir-health-summary>div{padding:.85rem;border:1px solid var(--choir-line);border-radius:12px;background:var(--choir-surface)}.choir-health-summary strong,.choir-health-summary span{display:block}.choir-health-summary strong{font-size:1.65rem;line-height:1}.choir-health-summary span{margin-top:.35rem;color:var(--choir-muted);font-size:.72rem;font-weight:700}.choir-health-summary .is-good{border-color:var(--choir-success);background:var(--choir-success-tint)}.choir-health-summary .is-warning{border-color:var(--choir-warning);background:var(--choir-warning-tint)}.choir-health-summary .is-critical{border-color:var(--choir-danger-border);background:var(--choir-danger-tint)}.choir-health-section{margin-top:1rem;padding:1rem;border:1px solid var(--choir-line);border-radius:14px;background:var(--choir-surface)}.choir-health-section h3{margin:0;font-size:1rem}.choir-health-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.choir-health-section-head p{margin:.2rem 0 0;color:var(--choir-muted);font-size:.76rem}.choir-health-completeness{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin-top:.8rem}.choir-health-meter>div:first-child{display:flex;align-items:flex-end;justify-content:space-between;gap:.35rem}.choir-health-meter strong{font-size:.76rem}.choir-health-meter span{color:var(--choir-muted);font-size:.68rem;white-space:nowrap}.choir-health-meter-track{overflow:hidden;height:8px;margin-top:.35rem;border-radius:999px;background:var(--choir-line)}.choir-health-meter-track span{display:block;height:100%;border-radius:inherit;background:var(--choir-green)}.choir-health-coverage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-top:.8rem}.choir-health-coverage>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.25rem .5rem;align-items:center;padding:.55rem .65rem;border-radius:9px;background:var(--choir-tint)}.choir-health-coverage strong{overflow:hidden;font-size:.73rem;text-overflow:ellipsis;white-space:nowrap}.choir-health-coverage span{color:var(--choir-muted);font-size:.68rem}.choir-health-coverage i{grid-column:1/-1;display:block;overflow:hidden;height:5px;border-radius:999px;background:var(--choir-line)}.choir-health-coverage b{display:block;height:100%;border-radius:inherit;background:var(--choir-success)}.choir-health-filters{display:flex;gap:.45rem}.choir-health-filters input,.choir-health-filters select{box-sizing:border-box;max-width:210px;border:1px solid var(--choir-field-border);border-radius:9px;padding:.55rem .65rem;background:var(--choir-surface);color:var(--choir-ink);font:inherit;font-size:.75rem}.choir-health-issue-list{display:grid;gap:.55rem;margin-top:.85rem}.choir-health-issue{padding:.7rem .8rem;border-left:4px solid var(--choir-muted);border-radius:8px;background:var(--choir-tint)}.choir-health-issue.is-warning{border-left-color:var(--choir-warning);background:var(--choir-warning-tint)}.choir-health-issue.is-critical{border-left-color:var(--choir-danger);background:var(--choir-danger-tint)}.choir-health-issue-heading{display:flex;align-items:center;gap:.5rem}.choir-health-issue-heading>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.choir-health-issue-heading>a{margin-left:auto;color:var(--choir-green);font-size:.72rem;font-weight:800;text-decoration:none;white-space:nowrap}.choir-health-severity{padding:.18rem .38rem;border-radius:999px;background:var(--choir-line);color:var(--choir-muted);font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.choir-health-severity.is-warning{background:var(--choir-warning-soft);color:var(--choir-warning-text)}.choir-health-severity.is-critical{background:var(--choir-danger);color:var(--choir-surface)}.choir-health-issue ul{display:flex;flex-wrap:wrap;gap:.25rem .8rem;margin:.45rem 0 0;padding:0;list-style:none}.choir-health-issue li{color:var(--choir-muted);font-size:.72rem}.choir-health-issue li:before{content:"•";margin-right:.3rem}.choir-health-issue li.is-critical{color:var(--choir-danger-text);font-weight:700}.choir-health-empty{margin:.2rem 0;color:var(--choir-muted)}.choir-health-more{display:block;margin:.8rem auto 0}.choir-health-more[hidden]{display:none}
.choir-install{position:fixed;z-index:999998;inset:0;display:grid;place-items:center;padding:1rem;background:var(--choir-overlay-soft);font-family:system-ui,-apple-system,sans-serif}
.choir-install[hidden]{display:none}
.choir-install-card{box-sizing:border-box;width:min(430px,100%);padding:1.6rem;border-radius:22px;background:var(--choir-surface);color:var(--choir-ink);text-align:center;box-shadow:0 24px 70px var(--choir-shadow-medium)}
.choir-install-icon img{width:82px;height:82px;border-radius:18px}
.choir-install-card h2{margin:.7rem 0 .45rem;font-size:1.65rem}
.choir-install-card p{margin:.5rem 0 1rem}
.choir-install-guide{padding:.8rem;border-radius:12px;background:var(--choir-paper)}
.choir-install-guide[hidden]{display:none}
.choir-install-guide p{margin:0}
.choir-install-actions{display:flex;justify-content:center;gap:.6rem;margin-top:1.2rem}
.choir-install-actions button{border:1px solid var(--choir-green);border-radius:999px;padding:.75rem 1rem;background:var(--choir-surface);color:var(--choir-green);font:inherit;font-weight:700;cursor:pointer}
.choir-install-actions .choir-install-primary{background:var(--choir-green);color:var(--choir-surface)}
.choir-reader[hidden]{display:none}
.choir-reader{box-sizing:border-box;position:fixed!important;inset:0!important;z-index:2147483000!important;width:100vw!important;height:100vh!important;height:100dvh!important;margin:0!important;padding:0!important;background:var(--choir-reader-bg)}
.choir-reader-bar{position:absolute;z-index:20;top:0;left:0;right:0;box-sizing:border-box;height:52px;display:flex;align-items:center;gap:.65rem;padding:0 1rem;overflow-x:auto;overflow-y:hidden;background:var(--choir-overlay-strong);color:var(--choir-surface);pointer-events:auto;isolation:isolate;scrollbar-width:none}.choir-reader-bar::-webkit-scrollbar{display:none}
.choir-reader-bar strong{min-width:70px;overflow:hidden;flex:1 1 190px;text-overflow:ellipsis;white-space:nowrap}
.choir-reader-part-wrap[hidden]{display:none}.choir-reader-part-wrap{position:relative;z-index:22;min-width:135px;max-width:240px;flex:0 1 240px;pointer-events:auto}.choir-reader-part-wrap select{box-sizing:border-box;position:relative;z-index:23;width:100%;max-width:240px;border:1px solid var(--choir-surface-border-strong);border-radius:8px;padding:.35rem .5rem;background:var(--choir-surface);color:var(--choir-ink);font:inherit;font-size:.78rem;pointer-events:auto}
.choir-reader-bar>span{margin-left:0}.choir-reader-bar>[data-choir-page-label]{margin-left:auto}
.choir-reader-bar .choir-reader-source{margin-left:0;padding:.2rem .45rem;border:1px solid var(--choir-surface-border-mid);border-radius:999px;color:var(--choir-warning-soft);font-size:.65rem;font-weight:800}.choir-reader-bar .choir-reader-source.is-local{border-color:var(--choir-lime);color:var(--choir-lime)}
.choir-reader-bar .choir-reader-live{margin-left:0;padding:.2rem .42rem;border-radius:5px;background:var(--choir-danger);color:var(--choir-surface);font-size:.62rem;font-weight:900;letter-spacing:.06em}.choir-reader-bar .choir-reader-live[hidden]{display:none}
.choir-reader-bar button{box-sizing:border-box;min-width:0;min-height:0;border:0;background:transparent;color:var(--choir-surface);font-size:2rem;line-height:1.15;white-space:nowrap;cursor:pointer}
.choir-pdf-scroll{position:absolute;z-index:1;inset:52px 0 0;overflow:auto;padding:12px;box-sizing:border-box;background:var(--choir-reader-canvas);overscroll-behavior:contain}.choir-pdf-scroll[hidden]{display:none}.choir-pdf-stage{position:relative;margin:0 auto;background:var(--choir-surface);box-shadow:0 2px 16px var(--choir-shadow)}.choir-pdf-stage[hidden]{display:none}.choir-pdf-stage canvas{display:block;width:100%;height:100%;background:var(--choir-surface)}.choir-reader iframe.choir-pdf-fallback{position:absolute;z-index:1;inset:52px 0 0;width:100%;height:calc(100% - 52px);border:0;background:var(--choir-reader-canvas)}.choir-reader iframe.choir-pdf-fallback[hidden]{display:none}
.choir-annotation-layer{position:absolute;z-index:4;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.choir-reader.is-annotating .choir-pdf-scroll{z-index:4}.choir-reader.is-annotating .choir-annotation-layer{pointer-events:auto;cursor:crosshair;touch-action:none}.choir-reader.is-zoomed.is-annotating .choir-annotation-layer{touch-action:pan-x pan-y}.choir-annotation-tools{position:absolute;z-index:7;top:60px;left:50%;display:flex;max-width:calc(100% - 24px);align-items:center;gap:.35rem;padding:.4rem;border-radius:999px;background:var(--choir-overlay-near);color:var(--choir-surface);transform:translateX(-50%);box-shadow:0 5px 18px var(--choir-shadow-medium)}.choir-annotation-tools[hidden]{display:none}.choir-annotation-tools button{border:1px solid var(--choir-surface-half);border-radius:999px;padding:.4rem .65rem;background:transparent;color:var(--choir-surface);font:inherit;font-size:.72rem;font-weight:750;white-space:nowrap;cursor:pointer}.choir-annotation-tools button.is-active{border-color:var(--choir-lime);background:var(--choir-lime);color:var(--choir-ink)}.choir-annotation-tools span{margin:0 .4rem 0 .2rem;font-size:.68rem;white-space:nowrap}.choir-reader-bar .choir-annotate-toggle.is-active{border-color:var(--choir-lime);background:var(--choir-lime);color:var(--choir-ink)}.choir-reader-bar .choir-annotate-toggle:disabled{cursor:default;opacity:.45}
.choir-tap{position:absolute;z-index:3;top:52px;bottom:0;width:22%;border:0;background:transparent;pointer-events:none}
.choir-prev{left:0}
.choir-next{right:0}
.choir-reader-open{overflow:hidden}
.choir-reader-bar span{white-space:nowrap}
.choir-reader-bar .choir-reader-tool{position:relative;z-index:22;flex:0 0 auto;border:1px solid var(--choir-surface-border-strong);border-radius:999px;padding:.4rem .7rem;background:transparent;color:var(--choir-surface);font:inherit;font-size:.8rem;line-height:1.15;white-space:nowrap;pointer-events:auto}
.choir-reader-bar .choir-reader-tool.choir-reader-rotate{min-width:2rem;padding:.25rem .5rem;font-size:1.1rem;line-height:1}.choir-reader-bar .choir-reader-rotate:disabled{cursor:default;opacity:.45}
.choir-reader-zoom{position:relative;z-index:22;display:flex;flex:0 0 auto;align-items:center;border:1px solid var(--choir-surface-border-strong);border-radius:999px;overflow:hidden;pointer-events:auto}.choir-reader-bar .choir-reader-zoom button{display:grid;min-width:27px;height:28px;padding:0 .35rem;place-items:center;border-radius:0;color:var(--choir-surface);font:inherit;font-size:.8rem;line-height:1}.choir-reader-bar .choir-reader-zoom button+button{border-left:1px solid var(--choir-surface-border-mid)}.choir-reader-bar .choir-reader-zoom [data-choir-zoom-reset]{min-width:48px;font-size:.68rem;font-variant-numeric:tabular-nums}.choir-reader-bar .choir-reader-zoom button:disabled{cursor:default;opacity:.4}
.choir-reader-bar .choir-reader-download{border-color:var(--choir-lime);color:var(--choir-lime);white-space:nowrap}.choir-reader-bar .choir-reader-download[hidden]{display:none}.choir-reader-bar .choir-reader-download.is-saved{border-color:var(--choir-surface-border-strong);color:var(--choir-surface)}.choir-reader-bar .choir-reader-download:disabled{cursor:default;opacity:.72}
.choir-reader-bar .choir-reader-close{position:sticky;right:0;flex:0 0 auto;border:0;background:var(--choir-overlay-strong);color:var(--choir-surface);font-size:2rem;line-height:1}
.choir-reader.is-soft-fullscreen .choir-reader-bar{height:44px;gap:.4rem;padding:0 .5rem}.choir-reader.is-soft-fullscreen .choir-reader-download,.choir-reader.is-soft-fullscreen .choir-reader-print,.choir-reader.is-soft-fullscreen .choir-reader-rotate,.choir-reader.is-soft-fullscreen .choir-tools-toggle,.choir-reader.is-soft-fullscreen .choir-playalong,.choir-reader.is-soft-fullscreen .choir-reader-live,.choir-reader.is-soft-fullscreen .choir-reader-source,.choir-reader.is-soft-fullscreen [data-choir-pair]{display:none!important}.choir-reader.is-soft-fullscreen .choir-reader-bar strong{max-width:18vw}.choir-reader.is-soft-fullscreen .choir-pdf-scroll{inset:44px 0 0;padding:4px}.choir-reader.is-soft-fullscreen iframe.choir-pdf-fallback{inset:44px 0 0;height:calc(100% - 44px)}.choir-reader.is-soft-fullscreen .choir-tap{top:44px}.choir-reader.is-soft-fullscreen .choir-annotation-tools,.choir-reader.is-soft-fullscreen .choir-practice-panel,.choir-reader.is-soft-fullscreen .choir-midi-panel,.choir-reader.is-soft-fullscreen .choir-mp3-panel{top:48px}.choir-reader.is-soft-fullscreen .choir-pairing{inset:44px 0 0}
.choir-playalong{display:flex;align-items:center;gap:.3rem;flex:0 0 auto}.choir-playalong[hidden]{display:none}.choir-playalong button{border:1px solid var(--choir-surface-border-strong);border-radius:999px;padding:.3rem .5rem;background:transparent;color:var(--choir-surface);font:inherit;font-size:.72rem;cursor:pointer}.choir-playalong button:disabled{cursor:default;opacity:.45}.choir-playalong>button[data-choir-play]{display:grid;width:32px;height:32px;padding:0;place-items:center}.choir-playalong .choir-practice-toggle{display:flex;align-items:center;gap:.28rem}.choir-playalong .choir-practice-toggle.is-active{border-color:var(--choir-lime);background:var(--choir-lime);color:var(--choir-ink)}.choir-playalong span{min-width:0;margin:0;font-size:.72rem}.choir-playalong [data-choir-play-time]{min-width:2.5rem}.choir-playalong [data-choir-youtube-host]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.choir-midi-playalong{display:flex;align-items:center;gap:.3rem;flex:0 0 auto}.choir-midi-playalong[hidden]{display:none}.choir-midi-playalong button{border:1px solid var(--choir-surface-border-strong);border-radius:999px;padding:.3rem .5rem;background:transparent;color:var(--choir-surface);font:inherit;font-size:.72rem;cursor:pointer}.choir-midi-playalong button:disabled{cursor:default;opacity:.45}.choir-midi-playalong>button[data-choir-midi-play]{display:grid;width:32px;height:32px;padding:0;place-items:center}.choir-midi-playalong .choir-midi-toggle{display:flex;align-items:center;gap:.28rem}.choir-midi-playalong .choir-midi-toggle.is-active{border-color:var(--choir-lime);background:var(--choir-lime);color:var(--choir-ink)}.choir-midi-playalong span{min-width:0;margin:0;font-size:.72rem}.choir-midi-playalong [data-choir-midi-time]{min-width:2.5rem}
.choir-mp3-playalong{display:flex;align-items:center;gap:.3rem;flex:0 0 auto}.choir-mp3-playalong[hidden]{display:none}.choir-mp3-playalong button{border:1px solid var(--choir-surface-border-strong);border-radius:999px;padding:.3rem .5rem;background:transparent;color:var(--choir-surface);font:inherit;font-size:.72rem;cursor:pointer}.choir-mp3-playalong button:disabled{cursor:default;opacity:.45}.choir-mp3-playalong>button[data-choir-mp3-play]{display:grid;width:32px;height:32px;padding:0;place-items:center}.choir-mp3-playalong .choir-mp3-toggle{display:flex;align-items:center;gap:.28rem}.choir-mp3-playalong .choir-mp3-toggle.is-active{border-color:var(--choir-lime);background:var(--choir-lime);color:var(--choir-ink)}.choir-mp3-playalong span{min-width:0;margin:0;font-size:.72rem}.choir-mp3-playalong [data-choir-mp3-time]{min-width:2.5rem}
.choir-practice-panel{box-sizing:border-box;position:absolute;z-index:19;top:60px;left:50%;display:grid;width:min(760px,calc(100% - 24px));gap:.65rem;padding:.75rem;border:1px solid var(--choir-surface-wash);border-radius:14px;background:var(--choir-overlay-strong);color:var(--choir-surface);transform:translateX(-50%);box-shadow:0 6px 24px var(--choir-shadow)}.choir-practice-panel[hidden]{display:none}.choir-practice-seek{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;align-items:center;gap:.6rem}.choir-practice-panel button,.choir-practice-panel select{border:1px solid var(--choir-surface-half);border-radius:999px;padding:.38rem .65rem;background:transparent;color:var(--choir-surface);font:inherit;font-size:.72rem;font-weight:750;white-space:nowrap;cursor:pointer}.choir-practice-panel select{border-radius:7px;padding:.25rem .35rem;background:var(--choir-surface);color:var(--choir-ink)}.choir-practice-panel button:disabled,.choir-practice-panel select:disabled,.choir-practice-panel input:disabled{cursor:default;opacity:.45}.choir-practice-panel input[type=range]{min-width:0;margin:0;accent-color:var(--choir-lime)}.choir-practice-options{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.choir-practice-options>span{min-width:7.5rem;margin:0;font-size:.76rem;font-variant-numeric:tabular-nums}.choir-practice-options label{display:flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:750}.choir-practice-volume{flex:1}.choir-practice-volume input{width:clamp(110px,22vw,210px)}.choir-practice-loop{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.choir-practice-loop strong{margin-right:.2rem;font-size:.76rem}.choir-practice-loop>span{min-width:0;margin:0 0 0 auto;font-size:.7rem;color:var(--choir-on-dark-muted)}.choir-practice-panel>small{font-size:.66rem;color:var(--choir-on-dark-muted)}
.choir-midi-panel{box-sizing:border-box;position:absolute;z-index:20;top:60px;left:50%;display:grid;width:min(760px,calc(100% - 24px));gap:.65rem;padding:.75rem;border:1px solid var(--choir-surface-wash);border-radius:14px;background:var(--choir-overlay-strong);color:var(--choir-surface);transform:translateX(-50%);box-shadow:0 6px 24px var(--choir-shadow)}.choir-midi-panel[hidden]{display:none}.choir-midi-panel button,.choir-midi-panel select{border:1px solid var(--choir-surface-half);border-radius:999px;padding:.38rem .65rem;background:transparent;color:var(--choir-surface);font:inherit;font-size:.72rem;font-weight:750;white-space:nowrap;cursor:pointer}.choir-midi-panel select{border-radius:7px;padding:.25rem .35rem;background:var(--choir-surface);color:var(--choir-ink)}.choir-midi-panel button:disabled,.choir-midi-panel select:disabled,.choir-midi-panel input:disabled{cursor:default;opacity:.45}.choir-midi-panel button.is-active{border-color:var(--choir-lime);background:var(--choir-lime);color:var(--choir-ink)}.choir-midi-panel input[type=range]{min-width:0;margin:0;accent-color:var(--choir-lime)}.choir-midi-mix{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.choir-midi-mix strong{margin-right:.25rem;font-size:.76rem}.choir-midi-status{margin:0;color:var(--choir-on-dark-muted);font-size:.7rem}.choir-midi-panel>small{font-size:.66rem;color:var(--choir-on-dark-muted)}
.choir-mp3-panel{box-sizing:border-box;position:absolute;z-index:21;top:60px;left:50%;display:grid;width:min(760px,calc(100% - 24px));gap:.65rem;padding:.75rem;border:1px solid var(--choir-surface-wash);border-radius:14px;background:var(--choir-overlay-strong);color:var(--choir-surface);transform:translateX(-50%);box-shadow:0 6px 24px var(--choir-shadow)}.choir-mp3-panel[hidden],.choir-mp3-panel audio{display:none}.choir-mp3-seek{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;align-items:center;gap:.6rem}.choir-mp3-panel button,.choir-mp3-panel select{border:1px solid var(--choir-surface-half);border-radius:999px;padding:.38rem .65rem;background:transparent;color:var(--choir-surface);font:inherit;font-size:.72rem;font-weight:750;white-space:nowrap;cursor:pointer}.choir-mp3-panel select{border-radius:7px;padding:.25rem .35rem;background:var(--choir-surface);color:var(--choir-ink)}.choir-mp3-panel button:disabled,.choir-mp3-panel select:disabled,.choir-mp3-panel input:disabled{cursor:default;opacity:.45}.choir-mp3-panel input[type=range]{min-width:0;margin:0;accent-color:var(--choir-lime)}.choir-mp3-options{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.choir-mp3-options>span{min-width:7.5rem;margin:0;font-size:.76rem;font-variant-numeric:tabular-nums}.choir-mp3-options label{display:flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:750}.choir-mp3-volume{flex:1}.choir-mp3-volume input{width:clamp(110px,22vw,210px)}.choir-mp3-loop{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.choir-mp3-loop strong{margin-right:.2rem;font-size:.76rem}.choir-mp3-loop>span{min-width:0;margin:0 0 0 auto;font-size:.7rem;color:var(--choir-on-dark-muted)}.choir-mp3-status{margin:0;color:var(--choir-on-dark-muted);font-size:.7rem}.choir-mp3-panel>small{font-size:.66rem;color:var(--choir-on-dark-muted)}
.choir-pairing{position:absolute;z-index:8;inset:52px 0 0;display:grid;place-items:center;padding:1rem;background:var(--choir-shadow-strong)}
.choir-pairing[hidden]{display:none}
.choir-pair-card{position:relative;width:min(390px,100%);padding:1.5rem;border-radius:18px;background:var(--choir-surface);color:var(--choir-ink);text-align:center}
.choir-pair-card h3{margin:.2rem 2rem .5rem}
.choir-pair-close{position:absolute;right:.7rem;top:.5rem;border:0;background:transparent;font-size:1.8rem;cursor:pointer}
.choir-qr{display:grid;place-items:center;min-height:220px;margin:1rem}
.choir-qr svg{display:block;width:min(260px,100%);height:auto}
.choir-pair-status{font-weight:700}
.choir-pair-card a{color:var(--choir-green)}
.choir-remote-controller{box-sizing:border-box;display:flex;min-height:100dvh;max-width:680px;margin:auto;padding:1.4rem;flex-direction:column;background:var(--choir-green);color:var(--choir-surface);font-family:system-ui,-apple-system,sans-serif;text-align:center}
.choir-remote-controller h1{margin:.3rem 0}
.choir-remote-next{display:flex;min-height:55dvh;margin:auto 0 1rem;align-items:center;justify-content:center;flex-direction:column;border:0;border-radius:28px;background:var(--choir-lime);color:var(--choir-ink);font:inherit;font-size:clamp(2rem,10vw,4rem);font-weight:800;touch-action:manipulation}
.choir-remote-next small{margin-top:1rem;font-size:1rem;font-weight:500}
.choir-remote-prev{padding:1rem;border:1px solid var(--choir-surface);border-radius:999px;background:transparent;color:var(--choir-surface);font:inherit;font-weight:700;touch-action:manipulation}
.choir-remote-controller button:disabled{opacity:.7}
@media(max-width:1400px){.choir-reader-bar{gap:.45rem;padding:0 .65rem}.choir-reader-bar strong{max-width:18vw}.choir-reader-part-wrap{max-width:190px}.choir-reader-part-wrap select{max-width:190px}.choir-reader-bar .choir-reader-source{display:none}.choir-reader-bar .choir-reader-tool{padding:.35rem .52rem;font-size:.72rem}.choir-playalong .choir-practice-toggle b,.choir-midi-playalong .choir-midi-toggle b,.choir-mp3-playalong .choir-mp3-toggle b{display:none}.choir-midi-playalong>[data-choir-midi-rewind],.choir-mp3-playalong>[data-choir-mp3-rewind]{display:none}}
@media(max-width:900px){.choir-reader-bar .choir-reader-source{display:none}}
@media(max-width:767px),(max-height:500px) and (pointer:coarse){.choir-portal{display:flex;flex-direction:column}.choir-hero{order:0}.choir-profile-prompt{order:1}.choir-live-panel{order:2}.choir-tabs{order:3}.choir-portal>[data-choir-panel]{min-width:0;order:4}.choir-offline{order:5;margin-top:2rem}}
@media(max-width:650px){.choir-hero{align-items:stretch;flex-direction:column;padding:1.3rem}
.choir-live-panel{grid-template-columns:auto 1fr}.choir-live-actions{grid-column:1/-1;justify-content:stretch}.choir-live-actions button{flex:1}.choir-event-heading{flex-direction:column}.choir-event-tools{width:100%;align-items:stretch;flex-direction:column}.choir-event-edit{text-align:center}.choir-live-conductor{width:100%;justify-content:stretch}.choir-live-conductor>[data-choir-live-start]{width:100%}.choir-live-conductor [data-choir-live-control]{width:100%;justify-content:space-between}.choir-live-conductor [data-choir-live-control]>span{width:100%}.choir-live-conductor [data-choir-live-control] button{flex:1}.choir-live-piece{padding:.48rem .65rem}.choir-live-picker-card{padding:1rem}.choir-live-picker-results{max-height:52dvh}
.choir-offline{grid-template-columns:auto 1fr}.choir-offline-actions{grid-column:1/-1;max-width:none;justify-content:stretch}.choir-offline-actions button{flex:1}.choir-offline-facts span{width:100%}.choir-offline-facts span+span:before{content:none}
.choir-form-grid{grid-template-columns:1fr}.choir-manager-card>summary{padding:1rem}.choir-manager-form{padding:0 1rem 1.2rem}.choir-manager-submit{width:100%}.choir-manager-submit-row{align-items:stretch;flex-direction:column}.choir-manager-submit-row>a{text-align:center}.choir-library-health{padding:.85rem}.choir-health-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.choir-health-summary>div:last-child{grid-column:1/-1}.choir-health-completeness{grid-template-columns:1fr}.choir-health-coverage{grid-template-columns:1fr 1fr}.choir-health-section-head{align-items:stretch;flex-direction:column}.choir-health-filters{width:100%;flex-direction:column}.choir-health-filters input,.choir-health-filters select{width:100%;max-width:none}.choir-health-issue-heading{align-items:flex-start;flex-wrap:wrap}.choir-health-issue-heading>a{width:100%;margin-left:0}
.choir-library-filters{grid-template-columns:1fr}
.choir-member-profile{min-width:0}
.choir-piece-main{align-items:flex-start;flex-direction:column}
.choir-actions{width:100%}
.choir-actions>*{flex:1;text-align:center}
.choir-attendance span{width:100%}
.choir-setlist-link span{font-size:.68rem}
.choir-history{width:100%}.choir-history li{grid-template-columns:1fr 1fr}.choir-history li>span:nth-child(3){grid-column:1/-1}.choir-history small{text-align:right}
.choir-reader-bar{gap:.4rem;padding:0 .55rem}
.choir-reader-bar strong{max-width:25vw}
.choir-reader-bar .choir-reader-source{display:none}
.choir-reader-bar .choir-reader-tool{padding:.35rem .5rem;font-size:.68rem}
.choir-reader-bar .choir-reader-download{max-width:none;line-height:1.1;white-space:nowrap}
.choir-annotation-tools{top:56px;overflow-x:auto;justify-content:flex-start;border-radius:12px}.choir-annotation-tools span{display:none}
.choir-playalong .choir-practice-toggle b,.choir-midi-playalong .choir-midi-toggle b,.choir-mp3-playalong .choir-mp3-toggle b{display:none}.choir-practice-panel,.choir-midi-panel,.choir-mp3-panel{top:56px;padding:.6rem}.choir-practice-options,.choir-mp3-options{align-items:stretch;gap:.55rem;flex-direction:column}.choir-practice-options label,.choir-mp3-options label{justify-content:space-between}.choir-practice-volume input,.choir-mp3-volume input{width:min(55vw,240px)}.choir-practice-loop>span,.choir-mp3-loop>span{width:100%;margin:.15rem 0 0}.choir-practice-panel>small,.choir-midi-panel>small,.choir-mp3-panel>small{display:none}
}
@media(pointer:coarse){.choir-tap{pointer-events:auto}}
.choir-upload-guidance{margin-top:-.35rem;padding:.8rem .9rem;border-left:4px solid var(--choir-green);border-radius:10px;background:var(--choir-tint);color:var(--choir-muted);font-size:.78rem;line-height:1.45}.choir-upload-guidance strong{color:var(--choir-ink)}.choir-upload-guidance p{margin:.25rem 0}.choir-upload-guidance a{color:var(--choir-green);font-weight:800}
.choir-manager-form .choir-upload-builder{display:grid;gap:.9rem;padding:1rem;border:1px solid var(--choir-line);border-radius:14px;background:var(--choir-tint)}
.choir-upload-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.choir-upload-mode>label{display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:start;padding:.8rem;border:1px solid var(--choir-field-border);border-radius:11px;background:var(--choir-surface);cursor:pointer}.choir-upload-mode input{width:auto;margin-top:.2rem}.choir-upload-mode strong,.choir-upload-mode small{display:block}.choir-upload-mode small{margin-top:.2rem;color:var(--choir-muted);font-size:.72rem;font-weight:500}
.choir-upload-panel{display:grid;gap:.8rem}.choir-upload-panel[hidden]{display:none}.choir-upload-panel .choir-file-drop{background:var(--choir-surface)}.choir-upload-rows{display:grid;gap:.6rem}.choir-upload-empty{margin:0;padding:.8rem;border-radius:9px;background:var(--choir-paper);color:var(--choir-muted);font-size:.78rem}
.choir-upload-row{display:grid;grid-template-columns:minmax(180px,1.5fr) repeat(3,minmax(105px,1fr));gap:.55rem;align-items:end;padding:.7rem;border:1px solid var(--choir-line);border-radius:10px;background:var(--choir-surface)}.choir-upload-row label>span{font-size:.72rem}.choir-upload-row label>span small{color:var(--choir-muted);font-weight:500}.choir-upload-row input,.choir-upload-row select{padding:.6rem .65rem}.choir-upload-filename{min-width:0;align-self:center}.choir-upload-filename strong,.choir-upload-filename small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.choir-upload-filename small{margin-top:.15rem;color:var(--choir-muted);font-size:.7rem}
.choir-combined-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.choir-combined-heading small{color:var(--choir-muted);font-size:.72rem}.choir-combined-row{grid-template-columns:minmax(150px,1.2fr) minmax(120px,1fr) minmax(90px,.55fr) minmax(90px,.55fr) auto}.choir-add-upload-row,.choir-remove-upload-row{border:1px solid var(--choir-green);background:var(--choir-surface);color:var(--choir-green);font:inherit;font-weight:800;cursor:pointer}.choir-add-upload-row{justify-self:start;border-radius:999px;padding:.55rem .8rem}.choir-remove-upload-row{width:38px;height:38px;border-color:var(--choir-danger-border);border-radius:999px;color:var(--choir-danger);font-size:1.25rem}.choir-remove-upload-row:disabled{cursor:default;opacity:.35}.choir-upload-error{margin:0;padding:.7rem;border-left:4px solid var(--choir-danger);background:var(--choir-danger-tint);color:var(--choir-danger-text)}
@media(max-width:800px){.choir-upload-mode{grid-template-columns:1fr}.choir-upload-row,.choir-combined-row{grid-template-columns:1fr 1fr}.choir-upload-filename{grid-column:1/-1}.choir-combined-row .choir-remove-upload-row{grid-column:2;justify-self:end}.choir-combined-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.choir-upload-row,.choir-combined-row{grid-template-columns:1fr}.choir-upload-filename,.choir-combined-row .choir-remove-upload-row{grid-column:1}.choir-combined-row .choir-remove-upload-row{justify-self:end}}

/* Recordings archive and instrument-loan register. */
.choir-tabs{flex-wrap:wrap}
.choir-module-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.5rem 0 1rem;padding:1.2rem 1.35rem;border-radius:18px;background:var(--choir-tint)}.choir-module-head h2{margin:.15rem 0;font-size:clamp(1.5rem,4vw,2.35rem)}.choir-module-head p:not(.choir-kicker){margin:.25rem 0;color:var(--choir-muted)}.choir-module-head>button,.choir-recording-manage button,.choir-instrument-actions button{border:1px solid var(--choir-green);border-radius:999px;padding:.65rem .85rem;background:var(--choir-surface);color:var(--choir-green);font:inherit;font-size:.78rem;font-weight:800;white-space:nowrap;cursor:pointer}.choir-module-head>button{background:var(--choir-green);color:var(--choir-surface)}
.choir-recording-filters,.choir-inventory-filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(130px,1fr));gap:.75rem;margin:1rem 0}.choir-inventory-filters{grid-template-columns:minmax(220px,2fr) repeat(2,minmax(130px,1fr))}.choir-recording-filters label>span,.choir-inventory-filters label>span{display:block;margin-bottom:.35rem;font-size:.76rem;font-weight:800}.choir-recording-filters input,.choir-recording-filters select,.choir-inventory-filters input,.choir-inventory-filters select{box-sizing:border-box;width:100%;border:1px solid var(--choir-field-border);border-radius:10px;padding:.7rem .8rem;background:var(--choir-surface);color:var(--choir-ink);font:inherit}.choir-recording-filters>button{grid-column:1/-1;justify-self:start;border:1px solid var(--choir-green);border-radius:999px;padding:.5rem .7rem;background:var(--choir-surface);color:var(--choir-green);font:inherit;font-size:.72rem;font-weight:800;cursor:pointer}.choir-recording-filters>button[hidden]{display:none}.choir-module-status{min-height:1.2em;color:var(--choir-muted)}
.choir-recording-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.choir-recording-year{grid-column:1/-1;margin:1rem 0 0;border-bottom:1px solid var(--choir-line);padding-bottom:.35rem}.choir-recording-card{min-width:0;padding:1rem;border:1px solid var(--choir-line);border-radius:15px;background:var(--choir-surface)}.choir-recording-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem}.choir-recording-card h3{margin:.3rem 0}.choir-recording-card p{margin:.25rem 0;color:var(--choir-muted)}.choir-recording-kind,.choir-instrument-state{display:inline-block;border-radius:999px;padding:.22rem .5rem;background:var(--choir-tint);color:var(--choir-green);font-size:.67rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.choir-recording-manage{display:flex;gap:.3rem}.choir-recording-manage button{padding:.4rem .58rem;font-size:.68rem}.choir-recording-manage button:last-child,.choir-instrument-actions button:last-child{border-color:var(--choir-danger-border);color:var(--choir-danger-text)}.choir-recording-player{overflow:hidden;margin:.8rem 0;border-radius:10px;background:var(--choir-reader-bg)}.choir-recording-player iframe{display:block;width:100%;aspect-ratio:16/9;border:0}.choir-recording-player audio{display:block;width:100%}.choir-recording-external{color:var(--choir-green);font-weight:800}.choir-recording-links{display:flex;flex-wrap:wrap;gap:.35rem;margin:.65rem 0}.choir-recording-links span{border-radius:999px;padding:.25rem .5rem;background:var(--choir-paper);color:var(--choir-muted);font-size:.68rem}.choir-recording-people{font-size:.75rem}
.choir-recording-editor,.choir-instrument-editor,.choir-loan-editor,.choir-return-editor{margin:1rem 0;padding:1.2rem;border:1px solid var(--choir-line);border-radius:16px;background:var(--choir-tint)}.choir-recording-editor[hidden],.choir-instrument-editor[hidden],.choir-loan-editor[hidden],.choir-return-editor[hidden]{display:none}.choir-recording-editor form,.choir-instrument-editor form,.choir-loan-editor form,.choir-return-editor form{display:grid;gap:.8rem}.choir-recording-editor label>span,.choir-instrument-editor label>span,.choir-loan-editor label>span,.choir-return-editor label>span{display:block;margin-bottom:.3rem;font-size:.75rem;font-weight:800}.choir-recording-editor input:not([type=radio]),.choir-recording-editor select,.choir-instrument-editor input,.choir-instrument-editor select,.choir-instrument-editor textarea,.choir-loan-editor input,.choir-loan-editor select,.choir-loan-editor textarea,.choir-return-editor input,.choir-return-editor select,.choir-return-editor textarea{box-sizing:border-box;width:100%;border:1px solid var(--choir-field-border);border-radius:9px;padding:.7rem .75rem;background:var(--choir-surface);color:var(--choir-ink);font:inherit}.choir-recording-editor select[multiple]{min-height:150px}.choir-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.choir-editor-heading h3{margin:0}.choir-editor-heading>button{border:0;background:transparent;color:var(--choir-ink);font-size:1.8rem;cursor:pointer}.choir-recording-source{display:flex;gap:1rem;padding:.65rem;border-radius:9px;background:var(--choir-surface)}
.choir-inventory-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.choir-inventory-summary button{display:grid;gap:.15rem;border:1px solid var(--choir-line);border-radius:12px;padding:.75rem;background:var(--choir-surface);color:var(--choir-ink);text-align:left;cursor:pointer}.choir-inventory-summary strong{font-size:1.45rem}.choir-inventory-summary span{color:var(--choir-muted);font-size:.7rem;font-weight:750}.choir-instrument-list{display:grid;gap:.65rem}.choir-instrument-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--choir-line);border-radius:14px;background:var(--choir-surface)}.choir-instrument-card h3{margin:.3rem 0}.choir-instrument-card p{margin:.2rem 0;color:var(--choir-muted)}.choir-instrument-card small{color:var(--choir-muted)}.choir-instrument-state.is-available{background:var(--choir-success-tint);color:var(--choir-success-text)}.choir-instrument-state.is-on_loan{background:var(--choir-warning-tint);color:var(--choir-warning-text)}.choir-instrument-state.is-repair,.choir-instrument-state.is-retired{background:var(--choir-danger-tint);color:var(--choir-danger-text)}.choir-instrument-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}.choir-instrument-actions button{padding:.45rem .62rem;font-size:.69rem}.choir-instrument-borrower{display:flex;flex-wrap:wrap;gap:.3rem .65rem}.choir-instrument-borrower .is-overdue{color:var(--choir-danger-text);font-weight:800}.choir-loan-history{margin:1rem 0;border-top:1px solid var(--choir-line);padding-top:.8rem}.choir-loan-history h4{margin:0 0 .55rem}.choir-loan-history>div{display:grid;gap:.15rem;border-left:3px solid var(--choir-green);padding:.3rem 0 .6rem .7rem}.choir-loan-history span,.choir-loan-history small{color:var(--choir-muted)}

/* Reader metronome, tuner and drone. */
.choir-tools-panel{box-sizing:border-box;position:fixed;z-index:2147483030;top:64px;right:14px;width:min(390px,calc(100vw - 28px));max-height:calc(100dvh - 78px);overflow:auto;border:1px solid var(--choir-surface-border-mid);border-radius:15px;padding:.8rem;background:var(--choir-overlay-near);color:var(--choir-surface);box-shadow:0 12px 38px var(--choir-shadow-dialog);font-family:system-ui,-apple-system,sans-serif}.choir-tools-panel[hidden]{display:none}.choir-tools-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:-.8rem -.8rem .8rem;padding:.65rem .7rem;border-radius:15px 15px 0 0;background:var(--choir-surface-ghost);cursor:move;touch-action:none}.choir-tools-head>div{display:flex;gap:.25rem;flex-wrap:wrap;justify-content:flex-end}.choir-tools-panel button,.choir-tools-panel select,.choir-tools-panel input{font:inherit}.choir-tools-head button,.choir-tools-actions button,.choir-bpm button{border:1px solid var(--choir-surface-border-mid);border-radius:999px;padding:.38rem .55rem;background:transparent;color:var(--choir-surface);font-size:.68rem;font-weight:800;cursor:pointer}.choir-tools-head button.is-active,.choir-tools-actions .choir-tools-primary,.choir-tools-actions .is-running{border-color:var(--choir-lime);background:var(--choir-lime);color:var(--choir-ink)}.choir-tools-head button:last-child{border:0;font-size:1.25rem;line-height:1}.choir-tools-panel section{display:grid;gap:.7rem}.choir-tools-panel section[hidden]{display:none}.choir-tools-panel .choir-form-grid{gap:.55rem}.choir-tools-panel label>span{display:block;margin-bottom:.25rem;color:var(--choir-on-dark-muted);font-size:.7rem;font-weight:750}.choir-tools-panel select,.choir-tools-panel input[type=number]{box-sizing:border-box;width:100%;border:1px solid var(--choir-surface-border-mid);border-radius:8px;padding:.5rem;background:var(--choir-surface);color:var(--choir-ink)}.choir-tools-panel input[type=range]{width:100%;margin:0;accent-color:var(--choir-lime)}.choir-tools-actions{display:flex;justify-content:flex-end;gap:.5rem}.choir-tools-actions button{padding:.55rem .8rem}.choir-beat-light{width:100%;height:8px;border-radius:999px;background:var(--choir-surface-ghost)}.choir-beat-light.is-on{background:var(--choir-lime)}.choir-beat-light.is-accent{box-shadow:0 0 0 3px var(--choir-lime-wash)}.choir-bpm{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem}.choir-bpm button{display:grid;width:40px;height:40px;padding:0;place-items:center;font-size:1.25rem}.choir-bpm label{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.3rem;text-align:center}.choir-bpm label span{grid-column:1/-1}.choir-bpm label input{font-size:1.55rem;font-weight:850;text-align:center}.choir-bpm label small{padding-bottom:.55rem}.choir-tools-volume{display:block}.choir-tuner-readout{text-align:center}.choir-tuner-readout>strong{display:block;font-size:3.2rem;line-height:1}.choir-tuner-readout>span,.choir-tuner-readout>small{display:block;margin:.35rem;color:var(--choir-on-dark-muted)}.choir-cents{position:relative;height:10px;margin:.9rem 1rem;border-radius:999px;background:linear-gradient(90deg,var(--choir-danger),var(--choir-warning),var(--choir-success),var(--choir-warning),var(--choir-danger))}.choir-cents:before{content:"";position:absolute;top:-4px;bottom:-4px;left:50%;width:2px;background:var(--choir-surface-half)}.choir-cents span{position:absolute;top:-7px;left:50%;width:4px;height:24px;border-radius:999px;background:var(--choir-surface);transform:translateX(-50%);transition:left .08s linear}.choir-tools-panel.is-in-tune .choir-tuner-readout>strong{color:var(--choir-lime)}.choir-tools-hint{display:block;color:var(--choir-on-dark-muted);font-size:.68rem;line-height:1.45}.choir-drone-presets{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.choir-drone-presets>span{color:var(--choir-on-dark-muted);font-size:.7rem;font-weight:750}.choir-drone-presets>div{display:flex;gap:.35rem}.choir-drone-presets button{min-width:44px;border:1px solid var(--choir-surface-border-mid);border-radius:999px;padding:.42rem .6rem;background:transparent;color:var(--choir-surface);font:inherit;font-size:.72rem;font-weight:800;cursor:pointer}.choir-drone-presets button.is-active{border-color:var(--choir-lime);background:var(--choir-lime);color:var(--choir-ink)}

@media(max-width:720px){.choir-module-head{align-items:flex-start;flex-direction:column}.choir-module-head>button{width:100%}.choir-recording-filters,.choir-inventory-filters{grid-template-columns:1fr}.choir-recording-grid{grid-template-columns:1fr}.choir-inventory-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.choir-inventory-summary button:first-child{grid-column:1/-1}.choir-instrument-card{align-items:flex-start;flex-direction:column}.choir-instrument-actions{width:100%;justify-content:stretch}.choir-instrument-actions button{flex:1}.choir-tools-panel{top:58px;right:8px;width:calc(100vw - 16px);max-height:calc(100dvh - 66px)}.choir-reader-bar .choir-tools-toggle{font-size:0}.choir-reader-bar .choir-tools-toggle:first-letter{font-size:.9rem}}

/* ==== Samljóð 1.9 – light & rounded refresh ==== */
.choir-portal{-webkit-font-smoothing:antialiased}
.choir-hero{background:linear-gradient(135deg,var(--choir-green),var(--choir-accent-deep));border-radius:28px;box-shadow:0 22px 44px -24px var(--choir-shadow-light)}
.choir-tabs{gap:.45rem}
.choir-tabs button{border-color:var(--choir-line);background:var(--choir-surface);color:var(--choir-ink);font-weight:700;box-shadow:0 1px 2px var(--choir-shadow-faint)}
.choir-tabs button.is-active{border-color:var(--choir-green);background:var(--choir-green);color:var(--choir-surface)}
.choir-event{border-radius:20px;box-shadow:0 1px 2px var(--choir-shadow-faint),0 12px 28px -20px var(--choir-shadow-soft)}
.choir-piece{border-radius:18px;box-shadow:0 1px 2px var(--choir-shadow-faint),0 12px 28px -20px var(--choir-shadow-soft)}
.choir-manager-card{border-radius:20px}
.choir-module-head,.choir-management-head{border-radius:22px}
.choir-offline,.choir-live-panel{border-radius:18px}
.choir-recording-card,.choir-instrument-card{border-radius:18px;box-shadow:0 1px 2px var(--choir-shadow-faint)}
.choir-search input,.choir-collection-filter select{border-radius:14px}
.choir-empty,.choir-notice{border-radius:18px}
.choir-profile-prompt{border-radius:16px}
.choir-install-card,.choir-live-picker-card{border-radius:26px}
.choir-pair-card{border-radius:22px}
.choir-badge{border-radius:999px;padding:.28rem .6rem}
.choir-manager-form input,.choir-manager-form select,.choir-manager-form textarea{border-radius:12px}
.choir-login-notice input[type=text],.choir-login-notice input[type=password]{border-radius:12px}
.choir-recording-editor input:not([type=radio]),.choir-recording-editor select,.choir-instrument-editor input,.choir-instrument-editor select,.choir-instrument-editor textarea,.choir-loan-editor input,.choir-loan-editor select,.choir-loan-editor textarea,.choir-return-editor input,.choir-return-editor select,.choir-return-editor textarea{border-radius:11px}
.choir-recording-filters input,.choir-recording-filters select,.choir-inventory-filters input,.choir-inventory-filters select{border-radius:12px}
.choir-login-lost{margin:.9rem 0 0;font-size:.82rem}.choir-login-lost a{color:var(--choir-green);font-weight:800;text-decoration:none}.choir-login-lost a:hover,.choir-login-lost a:focus-visible{text-decoration:underline}
.choir-annotation-tools select{border:1px solid var(--choir-surface-half);border-radius:999px;padding:.35rem .55rem;background:transparent;color:var(--choir-surface);font:inherit;font-size:.7rem;font-weight:750;max-width:11rem}.choir-annotation-tools select:focus-visible{outline:2px solid var(--choir-lime)}.choir-annotation-tools select option{color:#111}
.choir-ensemble-switcher{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem;font-size:.72rem}.choir-ensemble-switcher a,.choir-ensemble-switcher span{display:inline-flex;align-items:center;border:1px solid var(--choir-surface-border-mid);border-radius:999px;padding:.4rem .7rem;background:var(--choir-surface-ghost);color:inherit;text-decoration:none;font-weight:700;white-space:nowrap}.choir-ensemble-switcher a:hover,.choir-ensemble-switcher a:focus-visible{background:var(--choir-surface-wash)}.choir-ensemble-switcher .is-active{background:var(--choir-lime);border-color:var(--choir-lime);color:var(--choir-ink);font-weight:850}
.choir-photo-panel{position:absolute;z-index:18;top:60px;left:50%;display:flex;max-width:calc(100% - 24px);align-items:center;flex-wrap:wrap;gap:.4rem;padding:.5rem .6rem;border-radius:14px;background:var(--choir-overlay-near);color:var(--choir-surface);transform:translateX(-50%);box-shadow:0 5px 18px var(--choir-shadow-medium);font-size:.72rem}.choir-photo-panel[hidden]{display:none}.choir-photo-panel button{border:1px solid var(--choir-surface-half);border-radius:999px;padding:.4rem .65rem;background:transparent;color:var(--choir-surface);font:inherit;font-size:.72rem;font-weight:750;white-space:nowrap;cursor:pointer}.choir-photo-panel button.is-active{border-color:var(--choir-lime);background:var(--choir-lime);color:var(--choir-ink)}.choir-photo-panel label{display:flex;align-items:center;gap:.3rem;font-weight:750}.choir-photo-panel label[hidden]{display:none}.choir-photo-panel input[type=range]{width:88px;margin:0;accent-color:var(--choir-lime)}.choir-photo-panel span{white-space:nowrap}.choir-reader-bar .choir-photo-toggle.is-active{border-color:var(--choir-lime);background:var(--choir-lime);color:var(--choir-ink)}.choir-reader-bar .choir-photo-toggle:disabled{cursor:default;opacity:.45}.choir-photo-layer{position:absolute;z-index:2;mix-blend-mode:multiply;pointer-events:none;max-width:none}.choir-photo-layer.is-positioning{pointer-events:auto;z-index:6;cursor:grab;outline:2px dashed var(--choir-lime);outline-offset:2px;touch-action:none}
.choir-practice-panel .choir-practice-seek{grid-template-columns:auto auto minmax(120px,1fr) auto}
.choir-midi-panel [data-choir-midi-play]{flex:0 0 auto;align-self:center;display:grid;width:34px;height:34px;padding:0;place-items:center;border-radius:999px}
