@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&family=Source+Sans+3:wght@300;400;500;600&display=swap";:root{font-family:"Source Sans 3",Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.6;font-weight:400;color:#2b2724;background-color:#f7f4ef;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:#f7f4ef}a{color:inherit}#root{min-height:100vh}html[data-theme=dark]{color:#edf0f3;background-color:#151719}.home{min-height:100vh;background:radial-gradient(circle at top,#f6f2ec,#efe7df 45%,#f7f6f2);position:relative;overflow:hidden}.app-shell-header{background:#fff;border-bottom:1px solid #cfcfcf}.app-route-loading{min-height:calc(100vh - 145px);display:flex;align-items:center;justify-content:center}.app-shell-banner{height:clamp(72px,8vw,166px);background-color:#fff;background-image:url(/notes-banner.png);background-position:center center;background-repeat:no-repeat;background-size:min(calc(100% - 48px),1600px) auto}html[data-theme=dark] .app-shell-banner{position:relative;overflow:hidden;background-image:none}html[data-theme=dark] .app-shell-banner:before{content:"";position:absolute;inset:0;background-image:url(/notes-banner.png);background-position:center center;background-repeat:no-repeat;background-size:min(calc(100% - 48px),1600px) auto;filter:invert(1);mix-blend-mode:screen}.app-shell-nav{min-height:48px;background:linear-gradient(180deg,#262626,#161616);color:#e6e6e6;display:flex;align-items:stretch;gap:0;padding:0 8px}.app-shell-nav__brand,.app-shell-nav__link,.app-shell-nav__user{border:none;background:transparent;color:inherit;font:inherit}.app-shell-nav__brand{display:flex;align-items:center;padding:0 14px;font-size:.98rem;color:#bdbdbd;cursor:pointer}.app-shell-nav__brand:hover{background:#ffffff0f;color:#fff}.app-shell-nav__links{display:flex;align-items:stretch;min-width:0}.app-shell-nav__link,.app-shell-nav__user{cursor:pointer;padding:0 14px;min-height:48px;display:inline-flex;align-items:center;white-space:nowrap}.app-shell-nav__link:hover,.app-shell-nav__user:hover{background:#ffffff0f}.app-shell-nav__link.is-active{background:#090909;color:#fff;font-weight:600}.app-shell-nav__spacer{flex:1}.app-shell-nav__user{color:#d0d0d0;border-left:1px solid rgba(255,255,255,.08)}.app-shell-nav__language{display:inline-flex;align-items:center;gap:8px;color:#cfcfcf;font-size:.86rem;padding:0 12px;border-left:1px solid rgba(255,255,255,.08)}.app-shell-nav__language select{border:1px solid rgba(255,255,255,.22);border-radius:999px;background:#0000003d;color:#f0f0f0;height:30px;padding:0 10px}.app-shell-nav__language option{color:#111}.app-shell-nav__hamburger{display:none;margin-left:auto;align-self:center;width:56px;height:48px;border:none;background:#ffffff14;color:#fff;border-radius:8px;cursor:pointer;padding:0}.app-shell-nav__hamburger span{display:block;width:26px;height:3px;margin:5px auto;border-radius:999px;background:currentColor}.app-shell-mobile-menu{display:none}.app-shell-mobile-menu__item{width:100%;min-height:72px;border:none;border-top:1px solid rgba(255,255,255,.06);background:transparent;color:#b7b7b7;text-align:left;padding:0 32px;font:inherit;font-size:1.02rem;cursor:pointer}.app-shell-mobile-menu__language{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;color:#b7b7b7;padding:0 32px;border-top:1px solid rgba(255,255,255,.06);font-size:.96rem}.app-shell-mobile-menu__language select{border:1px solid rgba(255,255,255,.22);border-radius:999px;background:#0000003d;color:#f0f0f0;height:34px;padding:0 12px}.app-shell-mobile-menu__language option{color:#111}.app-shell-mobile-menu__item.is-active,.app-shell-mobile-menu__item:hover{color:#fff;background:#ffffff08}.app-shell-mobile-submenu{background:#00000061;border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05);padding:8px 0 10px}.app-shell-mobile-submenu__item{width:100%;min-height:48px;border:none;background:transparent;color:#b7b7b7;text-align:left;padding:0 44px;font:inherit;font-size:.98rem;cursor:pointer}.app-shell-mobile-submenu__item:hover{color:#fff;background:#ffffff08}.app-shell-nav__desktop-only{display:inline-flex}.app-user-menu{margin-top:6px;min-width:280px;border:1px solid #d3d3d3;border-radius:8px;box-shadow:0 14px 30px #00000038}.app-user-menu__item{min-height:54px;padding:0 22px;font-size:1rem;color:#383838}.app-user-menu__item:hover{background:#f5f5f5}.choir-dashboard{min-height:calc(100vh - 145px);background:#f3f3f3}.choir-dashboard__body{display:grid;grid-template-columns:280px minmax(0,1fr);gap:0;align-items:start;transition:grid-template-columns .24s ease}.choir-dashboard__body.is-sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}.choir-sidebar{min-height:calc(100vh - 145px);background:#f8f8f8;border-right:1px solid #d8d8d8;padding:20px 8px 24px;overflow:hidden;transition:opacity .18s ease,transform .24s ease,padding .24s ease,border-color .24s ease}.choir-sidebar.is-hidden{opacity:0;transform:translate(-18px);pointer-events:none;padding-left:0;padding-right:0;border-right-color:transparent}.choir-sidebar__title{color:#474747;font-weight:700;font-size:.95rem;margin:0 8px 14px}.choir-sidebar__loading{display:flex;justify-content:center;padding:24px 0}.choir-folder{width:100%;border:none;background:transparent;color:#2d6da4;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:.96rem}.choir-folder:hover{background:#edf4fb}.choir-folder.is-selected{background:#dcebf8;color:#0f4f88;font-weight:600}.choir-folder__label{overflow:hidden;text-overflow:ellipsis}.choir-folder__count{min-width:28px;height:22px;border-radius:999px;background:#8a8a8a;color:#fff;font-size:.77rem;display:inline-flex;align-items:center;justify-content:center;padding:0 8px;flex-shrink:0}.choir-content{min-width:0;padding:18px 18px 28px}.choir-content__header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:4px 2px 10px}.choir-content__header-main{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.choir-sidebar-toggle{border:1px solid #c8d8e8;background:linear-gradient(180deg,#fff,#eef5fb);color:#245987;padding:8px 12px;border-radius:999px;font:inherit;font-size:.88rem;font-weight:600;cursor:pointer}.choir-sidebar-toggle:hover{background:linear-gradient(180deg,#fff,#e4f0fa)}.choir-content__header h1{margin:0;font-size:1.55rem;font-weight:600;color:#222}.choir-content__eyebrow{font-size:.82rem;color:#6a6a6a;margin-bottom:4px}.choir-content__meta{color:#6d6d6d;font-size:.9rem}.choir-searchbar{background:#efefef;border:1px solid #d8d8d8;border-radius:4px;padding:14px;display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:16px;align-items:end}.choir-searchbar__field,.choir-searchbar__sort{display:grid;gap:8px}.choir-searchbar__label{font-weight:700;color:#3f3f3f}.choir-searchbar__input{width:100%;min-width:0;border:1px solid #cfcfcf;background:#fff;border-radius:3px;padding:10px 12px;font:inherit}.choir-searchbar__select{width:100%;border:1px solid #cfcfcf;background:#fff;border-radius:3px;padding:10px 12px;font:inherit}.choir-results__summary{margin:18px 2px 10px;color:#5f5f5f;font-size:.94rem}.choir-table-wrap{background:#fff;border:1px solid #d8d8d8;border-radius:4px;overflow-x:auto;overflow-y:hidden}.choir-table{width:100%;min-width:860px;border-collapse:collapse}.choir-table thead{background:#f5f5f5}.choir-table th,.choir-table td{padding:12px 14px;border-bottom:1px solid #e5e5e5;text-align:left;vertical-align:top}.choir-table th{font-size:.88rem;color:#4a4a4a}.choir-table__sort-button{border:none;background:transparent;color:inherit;font:inherit;font-weight:700;padding:0;cursor:pointer}.choir-table__sort-button.is-active,.choir-table__sort-button:hover{color:#1d5688}.choir-table tbody tr:hover{background:#fbfdff}.choir-table__title{font-weight:600;color:#1f1f1f}.choir-table__title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.choir-table__info{color:#7a7a7a;font-size:.85rem;margin-top:3px}.choir-audio-list{margin-top:10px;display:grid;gap:10px}.choir-audio-list__item{border:1px solid #dde7f1;background:#f8fbfe;border-radius:10px;padding:10px 12px}.choir-audio-list__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.choir-audio-list__label{font-size:.88rem;font-weight:600;color:#224968}.choir-audio-list__type{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:#ddebf8;color:#1b547f;font-size:.74rem;font-weight:700}.choir-audio-list__player{display:none}.choir-audio-player{width:100%}.choir-audio-player__controls{display:grid;grid-template-columns:auto minmax(140px,1fr) auto auto;gap:10px;align-items:center}.choir-audio-player__play-button{border:1px solid #c8d8e8;background:#fff;color:#245987;border-radius:999px;padding:7px 12px;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer;min-width:74px}.choir-audio-player__play-button:hover{background:#eef5fb}.choir-audio-player__play-button:focus-visible,.choir-audio-player__seek:focus-visible,.choir-audio-player__speed select:focus-visible{outline:2px solid #2a74aa;outline-offset:2px}.choir-audio-player__seek{width:100%}.choir-audio-player__time{color:#365c7b;font-size:.79rem;font-variant-numeric:tabular-nums;white-space:nowrap}.choir-audio-player__speed{display:inline-flex;align-items:center;gap:8px;color:#365c7b;font-size:.79rem;white-space:nowrap}.choir-audio-player__speed select{border:1px solid #c8d8e8;background:#fff;color:#245987;border-radius:999px;padding:6px 10px;font:inherit;font-weight:600}@media(max-width:780px){.choir-audio-player__controls{grid-template-columns:auto 1fr}.choir-audio-player__time,.choir-audio-player__speed{grid-column:1 / -1}}.choir-audio-list__button{border:1px solid #c8d8e8;background:#fff;color:#245987;border-radius:999px;padding:7px 12px;font:inherit;font-size:.84rem;font-weight:600;cursor:pointer}.choir-audio-list__button:hover:not(:disabled){background:#eef5fb}.choir-audio-list__button:disabled{opacity:.7;cursor:wait}.choir-audio-list__error{color:#b42318;font-size:.82rem}.choir-midi-list{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.choir-midi-list__button{border:1px solid #c2d7b5;background:#f4fbef;color:#335f1d;border-radius:999px;padding:7px 12px;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.choir-midi-list__button:hover{background:#e8f5de}.choir-musicxml-list{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.choir-musicxml-list__button{border:1px solid #d5c1a7;background:#fdf6ef;color:#73461d;border-radius:999px;padding:7px 12px;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.choir-musicxml-list__button:hover{background:#f8ebde}.choir-pdf-list{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.choir-pdf-list__button{border:1px solid #b5c4d7;background:#eff4fb;color:#1d3a5f;border-radius:999px;padding:7px 12px;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.choir-pdf-list__button:hover{background:#dee9f8}.musicxml-player-page{padding:18px}.musicxml-player-page__content{max-width:1240px;margin:0 auto}.musicxml-player-page__state{display:flex;justify-content:center;padding:72px 24px}.musicxml-player-panel__meta--diagnostics{margin-bottom:1rem}.musicxml-player-page__state--error{justify-content:flex-start}.musicxml-player-grid--diagnostics{margin-top:0}.musicxml-player-panel{background:#fff;border:1px solid #d8d8d8;border-radius:16px;box-shadow:0 10px 24px #0000000f;padding:18px}.musicxml-player-panel .musicxml-player-diagnostics{margin-top:1rem}.musicxml-player-panel .musicxml-player-diagnostics details{background:#0a0f16d1;border:1px solid rgba(255,255,255,.08);border-radius:18px;overflow:hidden}.musicxml-player-panel .musicxml-player-diagnostics__summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;cursor:pointer;font-weight:700;list-style:none}.musicxml-player-panel .musicxml-player-diagnostics__summary::-webkit-details-marker{display:none}.musicxml-player-panel .musicxml-player-diagnostics__summary span:last-child{color:#ffffff94;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}.musicxml-player-panel .musicxml-player-diagnostics__body{padding:0 1.2rem 1.2rem}.musicxml-player-panel .musicxml-player-source--inline{margin-top:.75rem}.musicxml-player-panel .musicxml-player-source--inline pre{margin:0;max-height:24rem}.musicxml-player-panel__header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;flex-wrap:wrap}.musicxml-player-panel__back{border:none;background:transparent;color:#2d6da4;font:inherit;font-weight:600;cursor:pointer;padding:0;margin-bottom:8px}.musicxml-player-panel__header h1{margin:0;font-size:clamp(1.28rem,2vw,1.8rem);line-height:1.08;color:#2a2a2a}.musicxml-player-panel__subtitle{margin-top:4px;color:#697586;font-size:.88rem}.musicxml-player-stage{margin-top:14px}.musicxml-player-panel__meta{display:flex;gap:8px;flex-wrap:wrap}.musicxml-chip{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:#f6efe6;color:#7a4d1f;font-size:.8rem;font-weight:700}.musicxml-player-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);gap:18px;margin-top:22px}.musicxml-player-card--fullwidth{grid-column:1 / -1}.musicxml-player-card{border:1px solid #e4e7eb;background:#fbfcfd;border-radius:14px;padding:18px}.musicxml-player-card h2{margin:0 0 14px;font-size:1.08rem;color:#2a2a2a}.musicxml-player-card__caption{margin-top:10px;color:#667085;font-size:.84rem;line-height:1.5}.musicxml-player-summary{display:grid;gap:10px}.musicxml-player-summary__item{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #eceff3;padding-bottom:10px}.musicxml-player-summary__item:last-child{border-bottom:none;padding-bottom:0}.musicxml-player-summary__label{color:#667085;font-size:.84rem}.musicxml-player-summary__value{color:#273240;font-weight:700;text-align:right}.musicxml-player-part-list,.musicxml-player-audio-list{display:grid;gap:10px}.musicxml-player-part-list__item,.musicxml-player-audio-list__item{border:1px solid #e5e7eb;background:#fff;border-radius:10px;padding:12px 14px}.musicxml-player-part-list__item strong,.musicxml-player-audio-list__item strong{color:#2a2a2a}.musicxml-player-part-list__item span,.musicxml-player-audio-list__item span{display:block;margin-top:4px;color:#667085;font-size:.84rem}.musicxml-player-source{margin-top:22px}.musicxml-player-legacy-frame-wrap{margin-top:8px;border:1px solid #dfe5ec;border-radius:14px;overflow:hidden;background:#f2f4f7}.musicxml-player-legacy-frame-wrap--stage{margin-top:0}.musicxml-player-legacy-frame{display:block;width:100%;min-height:900px;border:none;background:#fff}.musicxml-player-source details{border:1px solid #dfe5ec;border-radius:14px;background:#f9fbfc;overflow:hidden}.musicxml-player-source summary{list-style:none;cursor:pointer;padding:16px 18px;color:#364152;font-weight:700}.musicxml-player-source summary::-webkit-details-marker{display:none}.musicxml-player-source pre{margin:0;padding:0 18px 18px;overflow:auto;font-size:.82rem;line-height:1.5;color:#1f2937}.midi-player-page{padding:22px}.midi-player-page__content{max-width:1240px;margin:0 auto}.midi-player-page__state{display:flex;justify-content:center;padding:72px 24px}.midi-player-page__state--error{justify-content:flex-start}.midi-player-panel{background:#fff;border:1px solid #d8d8d8;border-radius:16px;box-shadow:0 10px 24px #0000000f;padding:18px}.midi-player-panel__header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;flex-wrap:wrap}.midi-player-panel__back{border:none;background:transparent;color:#2d6da4;font:inherit;font-weight:600;cursor:pointer;padding:0;margin-bottom:8px}.midi-player-panel__header h1{margin:0;font-size:clamp(1.28rem,2vw,1.8rem);line-height:1.08;color:#2a2a2a}.midi-player-panel__subtitle{margin-top:4px;color:#697586;font-size:.88rem}.midi-player-toolbar{display:grid;gap:12px;margin-top:14px;padding:12px 16px;border:1px solid #dedede;border-radius:14px;background:linear-gradient(180deg,#fff,#f3efe8)}.midi-player-toolbar__row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.midi-player-toolbar__row--playback,.midi-player-toolbar__row--settings{align-items:flex-end}.midi-player-toolbar__buttons{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.midi-player-toolbar__button{border:1px solid #d5c1a7;background:#fffaf4;color:#73461d;border-radius:999px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer}.midi-player-toolbar__button:hover:not(:disabled){background:#f6efe6}.midi-player-toolbar__button:disabled{opacity:.6;cursor:default}.midi-player-toolbar__group{display:grid;gap:6px;color:#1f2937;min-width:150px;flex:0 1 220px}.midi-player-toolbar__group--select{flex-basis:320px}.midi-player-toolbar__group span{font-weight:600;white-space:nowrap;font-size:.9rem}.midi-player-toolbar__group input,.midi-player-toolbar__group select{font:inherit}.midi-player-toolbar__group input[type=range]{width:100%}.midi-player-toolbar__group select{min-width:min(280px,100%);border:1px solid #c9ced6;border-radius:10px;padding:8px 10px;background:#fff;color:#1f2937}.midi-player-toolbar__toggle{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid #e1d7ca;border-radius:10px;background:#ffffffc7;color:#1f2937;font-weight:600}.midi-player-toolbar__toggle input{width:18px;height:18px}.midi-player-toolbar__caption{color:#667085;font-size:.84rem}.midi-player-progress{margin:0;padding:0;border-top:none}.midi-player-progress--inline{flex:1 1 320px;min-width:min(320px,100%)}.midi-player-progress__meta{display:flex;justify-content:space-between;color:#6b7280;font-size:.84rem;margin-bottom:6px}.midi-player-progress input,.midi-player-card input[type=range],.midi-player-table input[type=range],.midi-player-toolbar__group input[type=range]{width:100%}.midi-player-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:22px}.midi-player-card{border:1px solid #e4e7eb;background:#fbfcfd;border-radius:14px;padding:18px}.midi-player-card h2{margin:0 0 14px;font-size:1.08rem;color:#2a2a2a}.midi-player-card__caption{margin-top:10px;color:#667085;font-size:.84rem;line-height:1.5}.midi-player-card__select{width:100%;border:1px solid #d6dbe1;background:#fff;border-radius:8px;padding:10px 12px;font:inherit;color:#273240}.midi-player-card--toggles{display:grid;align-content:start;gap:12px}.midi-player-card--toggles label{display:inline-flex;align-items:center;gap:8px;color:#364152;font-weight:600}.midi-player-table-wrap{margin-top:22px;border:1px solid #e4e7eb;border-radius:14px;overflow:auto}.midi-player-table{width:100%;border-collapse:collapse}.midi-player-table thead{background:#f6f7f9}.midi-player-table th,.midi-player-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #eceff3;vertical-align:middle}.midi-player-table th{color:#4b5563;font-size:.86rem}.midi-player-table__label{font-weight:700;color:#273240}.midi-player-table__subtext{color:#667085;font-size:.82rem;margin-top:3px}.midi-player-table select{width:100%;min-width:160px;border:1px solid #d6dbe1;background:#fff;border-radius:8px;padding:8px 10px;font:inherit}.midi-player-structure-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.8fr);gap:16px;margin-top:22px}.midi-player-diagnostics{margin-top:22px;border:1px solid #dfe5ec;border-radius:14px;background:#f9fbfc;overflow:hidden}.midi-player-diagnostics__summary{list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px 18px;cursor:pointer;color:#364152;font-weight:700}.midi-player-diagnostics__summary::-webkit-details-marker{display:none}.midi-player-diagnostics__summary span:last-child{color:#667085;font-size:.84rem;font-weight:600}.midi-player-diagnostics[open] .midi-player-diagnostics__summary{border-bottom:1px solid #e6eaee}.midi-player-diagnostics .midi-player-structure-grid{margin-top:0;padding:18px}.midi-player-card--structure{min-height:240px}.midi-player-structure-list,.midi-player-tempo-list{display:grid;gap:10px}.midi-player-structure-list__item,.midi-player-tempo-list__item{border:1px solid #e5e7eb;background:#fff;border-radius:10px;padding:12px 14px;display:flex;justify-content:space-between;gap:12px}.midi-player-structure-list__item div,.midi-player-tempo-list__item{display:grid;gap:4px}.midi-player-structure-list__item strong,.midi-player-tempo-list__item strong{color:#2a2a2a}.midi-player-structure-list__item span,.midi-player-tempo-list__item span{color:#667085;font-size:.84rem}.choir-favorite-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:#fff0d6;color:#8a5a00;font-size:.74rem;font-weight:700}.choir-table__empty{text-align:center;color:#737373;padding:26px 14px}.choir-status{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#ececec;color:#4f4f4f;font-size:.8rem;font-weight:600}.choir-status.is-shared{background:#dff1df;color:#20663a}.choir-favorite-button{border:1px solid #d7c28c;background:#fffaf0;color:#7b5a15;border-radius:999px;padding:6px 10px;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap}.choir-favorite-button:hover:not(:disabled){background:#fff2d8}.choir-favorite-button.is-active{border-color:#d1a63f;background:#ffe7ad;color:#6c4b00}.choir-favorite-button:disabled{opacity:.65;cursor:wait}.choir-content__state{display:flex;justify-content:center;padding:48px 0}.choir-content__state--error{justify-content:flex-start}.frontpage-content{color:#2a2a2a}.frontpage-panel{background:#fff;border:1px solid #d8d8d8;box-shadow:0 10px 24px #1f273014}.frontpage-editor.is-fullscreen{min-height:calc(100vh - 48px)}.frontpage-editor__toolbar{background:#f7f7f7}.home:before{content:"";position:absolute;inset:-10% 0 auto;height:60%;background:linear-gradient(120deg,#ffffff73,#0000);pointer-events:none}.shell{max-width:1100px;margin:0 auto;padding:0 24px}.site-header{background:#1c1b1a;color:#f0ece7;position:sticky;top:0;z-index:10;box-shadow:0 2px 8px #00000040}.session-notice{margin-top:18px;background:#fff3cd;border:1px solid #ffe69c;color:#664d03;border-radius:10px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.session-notice button{border:1px solid #d4c179;background:#fff7df;color:#5f4b00;border-radius:999px;padding:6px 12px;cursor:pointer}.nav-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px}.brand{font-family:Playfair Display,serif;font-weight:700;font-size:1.5rem;letter-spacing:.5px}.nav-links{display:flex;gap:20px;font-size:.95rem}.nav-links a{color:#d8d1c7;text-decoration:none;transition:color .2s ease}.nav-links a:hover{color:#fff}.language-picker{display:inline-flex;align-items:center;gap:8px;color:#d8d1c7;font-size:.88rem}.language-picker select{border:1px solid rgba(255,255,255,.25);border-radius:999px;background:#0000002e;color:#f0ece7;height:32px;padding:0 10px}.language-picker option{color:#111}.ghost-button{border:1px solid rgba(255,255,255,.3);background:transparent;color:#f0ece7;padding:8px 18px;border-radius:999px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.ghost-button:hover{border-color:#fff;color:#fff}.hero{margin:48px 0 24px;background:#fff;border-radius:16px;display:grid;grid-template-columns:1.1fr .9fr;gap:32px;padding:28px;box-shadow:0 16px 40px #00000014;position:relative}.hero-image img{width:100%;height:100%;object-fit:cover;border-radius:12px}.hero-content h1{font-family:Playfair Display,serif;font-size:2.2rem;margin:0 0 12px;color:#2a2724}.hero-content p{margin:0 0 20px;color:#4c4742;line-height:1.6}.cta-button{background:#2b5c93;color:#fff;border:none;padding:10px 22px;border-radius:8px;font-size:.95rem;cursor:pointer;box-shadow:0 8px 18px #2b5c934d;transition:transform .2s ease,box-shadow .2s ease}.cta-button:hover{transform:translateY(-2px);box-shadow:0 12px 24px #2b5c9359}.banner{background:#f3f0eb;border:1px solid #e2dcd3;border-radius:10px;padding:16px 20px;text-align:center;margin:24px 0 32px;color:#3a342f;font-weight:600}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:64px}.feature{background:#fff;border-radius:14px;padding:20px;box-shadow:0 10px 24px #0000000f}.feature h3{margin-top:0;margin-bottom:8px;font-family:Playfair Display,serif;color:#2b2724}.feature p{margin:0;color:#4b4641;line-height:1.6}.site-footer{background:#1c1b1a;color:#d3cdc4;padding:28px 0 40px;margin-top:40px}.footer-inner{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;font-size:.9rem}.footer-inner p{margin:6px 0 0}.modal-backdrop{position:fixed;inset:0;background:#0a0a0a99;display:flex;align-items:center;justify-content:center;padding:24px;z-index:30}.modal-card{background:#fff;border-radius:16px;padding:28px 28px 24px;position:relative;width:min(460px,92vw);box-shadow:0 18px 42px #00000059}.modal-close{position:absolute;top:12px;right:12px;border:none;background:#ece6de;width:32px;height:32px;border-radius:50%;cursor:pointer;font-weight:700;color:#3b3631}.pdf-viewer-page{padding:18px}.pdf-viewer-page__content{max-width:1240px;margin:0 auto}.pdf-viewer-page__state{display:flex;align-items:center;justify-content:center;min-height:200px}.pdf-viewer-page__state--error{padding:16px}.pdf-viewer-panel{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.pdf-viewer-panel__header{margin-bottom:16px}.pdf-viewer-panel__back{border:none;background:transparent;color:#2d6da4;font:inherit;font-weight:600;cursor:pointer;padding:0;margin-bottom:8px}.pdf-viewer-panel__header h1{margin:0;font-size:clamp(1.28rem,2vw,1.8rem);line-height:1.08;color:#2a2a2a}.pdf-viewer-panel__title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.pdf-viewer-panel__download{display:inline-flex;align-items:center;border:1px solid #c8d8e8;border-radius:999px;background:#fff;color:#245987;padding:8px 12px;font-size:.88rem;font-weight:600;text-decoration:none}.pdf-viewer-panel__download:hover{background:#eef5fb}.pdf-viewer-panel__download:focus-visible{outline:2px solid #2a74aa;outline-offset:2px}.pdf-viewer-stage{margin-top:14px;border:1px solid #dedede;border-radius:8px;overflow:hidden;background:#f5f5f5}.pdf-viewer-frame{width:100%;height:min(600px,70vh);border:none}@media(max-width:900px){.hero,.choir-dashboard__body,.choir-dashboard__body.is-sidebar-collapsed{grid-template-columns:1fr}.choir-sidebar{min-height:auto;border-right:none;border-bottom:1px solid #d8d8d8}.choir-sidebar.is-hidden{display:none;transform:none;padding-top:0;padding-bottom:0}.choir-searchbar{grid-template-columns:1fr;gap:8px}.midi-player-panel__header,.midi-player-toolbar__row{flex-direction:column;align-items:stretch}.midi-player-progress--inline,.midi-player-toolbar__group,.midi-player-toolbar__toggle{flex:none;min-width:0;width:100%}.midi-player-settings-grid,.midi-player-structure-grid,.musicxml-player-grid,.feature-grid,.footer-inner{grid-template-columns:1fr}.nav-links{display:none}.language-picker{margin-left:auto}}@media(max-width:500px){.app-shell-banner{height:72px;background-position:center center}.app-shell-banner .musicxml-player-page{padding:12px}.app-shell-banner .musicxml-player-panel{padding:14px}.app-shell-nav{min-height:48px;padding:0 14px;align-items:center}.app-shell-nav__brand{min-height:48px;padding:0;justify-content:flex-start;font-size:1.05rem}.app-shell-nav__links{display:none}.app-shell-nav__spacer{flex:1}.app-shell-nav__desktop-only{display:none}.app-shell-nav__hamburger{display:inline-block;width:48px;height:40px}.app-shell-mobile-menu.is-open{display:block;background:linear-gradient(180deg,#262626,#161616);border-top:1px solid rgba(255,255,255,.08)}.midi-player-page,.musicxml-player-page,.pdf-viewer-page{padding:12px}.midi-player-panel,.musicxml-player-panel,.pdf-viewer-panel{padding:18px}}html[data-theme=dark]{color-scheme:dark;background:#151719}html[data-theme=dark] body{background:#151719}html[data-theme=dark] .app-shell-header,html[data-theme=dark] .app-shell-banner{background-color:#1d2024;border-color:#3d434a}html[data-theme=dark] .app-user-menu,html[data-theme=dark] .choir-table-wrap,html[data-theme=dark] .musicxml-player-panel,html[data-theme=dark] .midi-player-panel,html[data-theme=dark] .pdf-viewer-panel,html[data-theme=dark] .frontpage-panel{background:#1d2024;border-color:#414850;box-shadow:0 10px 24px #0000003d}html[data-theme=dark] .app-user-menu__item:hover,html[data-theme=dark] .choir-table tbody tr:hover{background:#2a3037}html[data-theme=dark] .app-user-menu__item,html[data-theme=dark] .choir-sidebar__title,html[data-theme=dark] .choir-content__header h1,html[data-theme=dark] .choir-searchbar__label,html[data-theme=dark] .choir-table th,html[data-theme=dark] .choir-table__title,html[data-theme=dark] .musicxml-player-panel__header h1,html[data-theme=dark] .musicxml-player-card h2,html[data-theme=dark] .midi-player-panel__header h1,html[data-theme=dark] .midi-player-card h2,html[data-theme=dark] .pdf-viewer-panel__header h1{color:#edf0f3}html[data-theme=dark] .choir-dashboard{background:#151719}html[data-theme=dark] .choir-sidebar{background:#1d2024;border-color:#3d434a}html[data-theme=dark] .choir-content__eyebrow,html[data-theme=dark] .choir-content__meta,html[data-theme=dark] .choir-results__summary,html[data-theme=dark] .choir-table__info,html[data-theme=dark] .choir-table__empty,html[data-theme=dark] .musicxml-player-panel__subtitle,html[data-theme=dark] .musicxml-player-card__caption,html[data-theme=dark] .musicxml-player-summary__label,html[data-theme=dark] .musicxml-player-part-list__item span,html[data-theme=dark] .musicxml-player-audio-list__item span,html[data-theme=dark] .midi-player-panel__subtitle,html[data-theme=dark] .midi-player-card__caption,html[data-theme=dark] .midi-player-table__subtext,html[data-theme=dark] .midi-player-progress__meta,html[data-theme=dark] .pdf-viewer-panel__subtitle{color:#b8c0c8}html[data-theme=dark] .choir-folder,html[data-theme=dark] .choir-table__sort-button.is-active,html[data-theme=dark] .choir-table__sort-button:hover,html[data-theme=dark] .musicxml-player-panel__back,html[data-theme=dark] .midi-player-panel__back,html[data-theme=dark] .pdf-viewer-panel__back{color:#8bc5ff}html[data-theme=dark] .choir-folder:hover{background:#273847}html[data-theme=dark] .choir-folder.is-selected{background:#193d59;color:#b3dcff}html[data-theme=dark] .choir-sidebar-toggle,html[data-theme=dark] .choir-audio-player__play-button,html[data-theme=dark] .choir-audio-list__button,html[data-theme=dark] .choir-audio-player__speed select{border-color:#416785;background:#202d38;color:#a9d7ff}html[data-theme=dark] .choir-sidebar-toggle:hover,html[data-theme=dark] .choir-audio-player__play-button:hover,html[data-theme=dark] .choir-audio-list__button:hover:not(:disabled){background:#2a3d4e}html[data-theme=dark] .choir-searchbar,html[data-theme=dark] .midi-player-toolbar{background:#20242a;border-color:#414850}html[data-theme=dark] .choir-searchbar__input,html[data-theme=dark] .choir-searchbar__select,html[data-theme=dark] .midi-player-toolbar__group select,html[data-theme=dark] .midi-player-card__select,html[data-theme=dark] .midi-player-table select{border-color:#4a525c;background:#171a1e;color:#edf0f3}html[data-theme=dark] .choir-table thead,html[data-theme=dark] .midi-player-table thead{background:#282d33}html[data-theme=dark] .choir-table th,html[data-theme=dark] .choir-table td,html[data-theme=dark] .midi-player-table th,html[data-theme=dark] .midi-player-table td,html[data-theme=dark] .musicxml-player-summary__item{border-color:#3d454e}html[data-theme=dark] .choir-audio-list__item{border-color:#385169;background:#202b35}html[data-theme=dark] .choir-audio-list__label,html[data-theme=dark] .choir-audio-player__time,html[data-theme=dark] .choir-audio-player__speed{color:#b9dcf7}html[data-theme=dark] .choir-audio-list__type{background:#254867;color:#c0e2ff}html[data-theme=dark] .choir-midi-list__button{border-color:#527747;background:#243821;color:#c0e6ae}html[data-theme=dark] .choir-musicxml-list__button,html[data-theme=dark] .midi-player-toolbar__button{border-color:#806546;background:#3b3024;color:#f0c995}html[data-theme=dark] .choir-pdf-list__button{border-color:#4f6680;background:#263849;color:#c6ddf7}html[data-theme=dark] .musicxml-chip,html[data-theme=dark] .choir-favorite-badge,html[data-theme=dark] .choir-favorite-button{border-color:#806a32;background:#403517;color:#f0d47d}html[data-theme=dark] .musicxml-player-card,html[data-theme=dark] .musicxml-player-part-list__item,html[data-theme=dark] .musicxml-player-audio-list__item,html[data-theme=dark] .midi-player-card,html[data-theme=dark] .midi-player-structure-list__item,html[data-theme=dark] .midi-player-tempo-list__item,html[data-theme=dark] .midi-player-diagnostics,html[data-theme=dark] .musicxml-player-source details,html[data-theme=dark] .musicxml-player-legacy-frame-wrap,html[data-theme=dark] .pdf-viewer-stage{border-color:#414850;background:#242930}html[data-theme=dark] .musicxml-player-part-list__item strong,html[data-theme=dark] .musicxml-player-audio-list__item strong,html[data-theme=dark] .musicxml-player-summary__value,html[data-theme=dark] .midi-player-toolbar__group,html[data-theme=dark] .midi-player-card--toggles label,html[data-theme=dark] .midi-player-table__label,html[data-theme=dark] .midi-player-structure-list__item strong,html[data-theme=dark] .midi-player-tempo-list__item strong,html[data-theme=dark] .midi-player-diagnostics__summary,html[data-theme=dark] .musicxml-player-source summary,html[data-theme=dark] .musicxml-player-source pre{color:#edf0f3}html[data-theme=dark] .midi-player-toolbar__toggle{border-color:#535047;background:#302e28;color:#edf0f3}html[data-theme=dark] .choir-status{background:#343a40;color:#d5d9dd}html[data-theme=dark] .choir-status.is-shared{background:#244a2d;color:#b9edc4}html[data-theme=dark] .frontpage-content{color:#edf0f3}html[data-theme=dark] .frontpage-editor__toolbar{background:#242930}html[data-theme=dark] .pdf-viewer-stage{padding:12px;background:#101214}html[data-theme=dark] .pdf-viewer-frame{display:block;background:#fff}
