:root{--primary-color: #0b304c;--secondary-color: #15577d;--accent-color: #e8f1f5;--highlight-color: #4aa6c7;--text-color: #0f2c46;--muted-text-color: #5a6b7b;--page-bg: linear-gradient(180deg, #f7fafb 0%, #edf3f6 65%, #f8fafb 100%);--card-shadow: 0 18px 45px rgba(11, 48, 76, .1);--card-shadow-hover: 0 24px 55px rgba(11, 48, 76, .16);--card-border: rgba(11, 48, 76, .09);--button-color: #0f2c46;--card-hover-transform: translateY(-2px);--font-family-body: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-heading: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--heading-font-size: 2.6rem;--paragraph-font-size: 1rem;--border-radius: 28px;--surface-radius: 1.5rem;--button-radius: 999px;--item-padding: 1.5rem;--container-max-width: 78rem;line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%}*{box-sizing:border-box;margin:0;padding:0}html{font-size:100%;scroll-behavior:smooth}a{font-weight:500;color:var(--primary-color);text-decoration:inherit}a:hover{color:var(--secondary-color)}a,button,img{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid rgba(74,166,199,.72);outline-offset:3px}::selection{color:#fff;background:var(--secondary-color)}body{font-family:var(--font-family-body);background-image:radial-gradient(circle at 8% 8%,rgba(21,87,125,.11),transparent 34rem),radial-gradient(circle at 94% 18%,rgba(74,166,199,.11),transparent 28rem),var(--page-bg);background-attachment:fixed;color:var(--text-color);margin:0;display:block;min-width:320px;min-height:100vh}button,input,textarea{font:inherit}.container{max-width:var(--container-max-width);margin:0 auto;padding:0 5%}.site-footer{width:min(var(--container-max-width),calc(100% - 2rem));margin:5rem auto 1rem;overflow:hidden;border-radius:2rem;background:linear-gradient(120deg,#082b45,var(--primary-color) 58%,#124c70);color:#fff;box-shadow:0 24px 55px #0b304c38}.footer-container{display:grid;grid-template-columns:minmax(16rem,1.7fr) repeat(3,minmax(8rem,.7fr));gap:clamp(2rem,4vw,4rem);padding:clamp(2rem,5vw,4rem)}.footer-brand{max-width:28rem;text-align:left}.footer-kicker{margin-bottom:.5rem;color:#9ed9eb;font-size:.78rem;font-weight:800;letter-spacing:.12em}.footer-brand h2{margin:0;color:#fff;font-size:2rem}.footer-brand p:not(.footer-kicker){margin-top:.8rem;color:#ffffffb8;line-height:1.65}.footer-contact{display:inline-block;margin-top:1rem;color:#fff;font-weight:700}.footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:.65rem;text-align:left}.footer-column h3{margin:0 0 .45rem;color:#fff;font-size:1rem}.footer-column a,.footer-bottom a{color:#ffffffb8;text-decoration:none;transition:color .2s ease}.footer-column a:hover,.footer-bottom a:hover,.footer-contact:hover{color:#b9e7f3}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0;padding:1.15rem clamp(2rem,5vw,4rem);border-top:1px solid rgba(255,255,255,.1);background:#00000017;color:#ffffff9e;font-size:.85rem}.footer-bottom div{display:flex;gap:1.5rem}@media screen and (max-width: 900px){.footer-container{grid-template-columns:repeat(2,1fr)}}@media screen and (max-width: 600px){.site-footer{width:calc(100% - 1rem);margin-top:3rem;border-radius:1.5rem}.footer-container{grid-template-columns:1fr}.footer-bottom{align-items:flex-start;flex-direction:column}}.heading{font-size:var(--heading-font-size);font-family:var(--font-family-heading);text-transform:none;letter-spacing:.02em;color:var(--primary-color);padding:2rem 0;text-align:center}.heading--centered{text-align:center}.parts{position:relative;padding:3rem 0 1rem;background-color:transparent}.parts:before{content:"";display:block;width:7.5rem;height:.25rem;background:linear-gradient(90deg,var(--highlight-color),var(--secondary-color));margin:0 auto}.parts__items-outer{overflow:visible}.parts__items{display:flex;flex-wrap:wrap;justify-content:center;margin:0 -.125rem;gap:1.5rem}.parts__item{padding:var(--item-padding);flex:1 0 20rem;display:block;text-decoration:none;margin:.25rem;border-radius:var(--surface-radius);transition:all .3s ease;background-color:#ffffffeb;box-shadow:var(--card-shadow);border:1px solid var(--card-border);position:relative;z-index:1}.parts__item:hover{transform:translateY(-4px);box-shadow:var(--card-shadow-hover);z-index:2}.parts__item-icon-container{width:8rem;height:4rem;background-color:var(--accent-color);border-radius:999px;display:flex;justify-content:center;align-items:center;margin-left:auto;margin-right:auto}.parts__item-icon{font-size:2.5rem;color:var(--primary-color);letter-spacing:.05em}.parts__item-heading{text-align:center;padding-top:1.5rem;color:var(--primary-color);font-family:var(--font-family-heading)}.parts__paragraph{font-size:var(--paragraph-font-size);color:var(--primary-color);letter-spacing:.01em;line-height:1.5em;text-align:center;max-width:var(--container-max-width);margin:1.5rem auto;padding-bottom:1.5rem}@media screen and (max-width: 800px){.parts__items{flex-direction:column}.parts__item{flex:1 0 100%;margin-bottom:1rem}.parts__paragraph{padding-top:1rem}}.text-primary{color:var(--secondary-color)}.button{display:inline-block;color:#fff;padding:.75rem 2rem;border-radius:var(--button-radius);background-color:var(--primary-color);font-weight:700;text-decoration:none;box-shadow:0 .5rem 1.5rem #0f2c4633;transition:background-color .3s,transform .2s ease}.button:hover{background-color:var(--secondary-color);transform:translateY(-1px);color:#fff}.button--margin-bottom{margin-bottom:1rem}.heading{margin:0;font-size:2.6rem;font-family:var(--font-family-heading);letter-spacing:.02em;color:var(--primary-color);padding:2rem 0;text-align:center}.heading__pre-text{display:block;font-size:1.25rem;font-family:var(--font-family-body);color:var(--muted-text-color)}.adventures{background:#fffffff5;margin-top:2rem;box-shadow:var(--card-shadow);border:1px solid var(--card-border);border-radius:var(--surface-radius)}.adventures__card-container{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;text-align:center}.adventures__card{background-color:#fff;flex:0 1 18rem;height:100%;margin:1rem;border-radius:var(--surface-radius);box-shadow:var(--card-shadow);overflow:hidden;transition:transform .25s ease-in-out,box-shadow .25s ease-in-out}.adventures__card:hover{transform:translateY(-4px);box-shadow:var(--card-shadow-hover)}.adventures__card-img{width:100%;height:auto;display:block}.adventures__card-heading{margin:0;padding:1.25rem;font-size:1.4rem;font-family:var(--font-family-heading);color:var(--primary-color)}.adventures__card-date{color:var(--primary-color);font-size:1.05rem;margin:0;padding:1.25rem}@media (min-width: 62em){.adventures__card{flex:0 1 22.333rem}}@media (max-width: 800px){.heading{font-size:1.8rem}.adventures__card-container{gap:1rem}}.portal-shell{min-height:calc(100vh - 80px);display:grid;grid-template-columns:255px 1fr;background:#f3f6f7;color:#163047;font-family:var(--font-family-body)}.portal-sidebar{background:#092f4a;color:#fff;padding:2.2rem 1.35rem;display:flex;flex-direction:column;min-height:780px}.portal-sidebar h1{font-family:var(--font-family-heading);font-size:1.55rem;font-weight:650}.portal-eyebrow{color:#79b9cb;text-transform:uppercase;letter-spacing:.15em;font-size:.69rem;font-weight:800;margin-bottom:.25rem}.portal-sidebar nav{display:grid;gap:.35rem;margin-top:3rem}.portal-sidebar nav button,.logout-button{border:0;color:#d8e7ed;background:transparent;padding:.8rem 1rem;text-align:left;border-radius:10px;cursor:pointer;font-weight:650}.portal-sidebar nav button{display:flex;align-items:center}.portal-sidebar nav button small{font:inherit}.portal-sidebar nav button span{display:inline-block;width:1.7rem;font-size:1.1rem}.portal-sidebar nav button:hover,.portal-sidebar nav button.active{background:#ffffff1c;color:#fff}.logout-button{margin-top:auto;border-top:1px solid rgba(255,255,255,.14);border-radius:0}.portal-content{padding:clamp(1.5rem,4vw,3.6rem);max-width:1400px;width:100%}.portal-heading{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-bottom:2rem}.portal-heading h2{font-family:var(--font-family-heading);font-weight:650;font-size:clamp(2rem,4vw,3rem);color:#0a2e48;line-height:1.15}.portal-heading>div>p:last-child{color:#69808d;margin-top:.4rem}.primary-button,.secondary-button{border:0;border-radius:8px;padding:.78rem 1.05rem;cursor:pointer;font-weight:750;white-space:nowrap}.primary-button{background:#0c4869;color:#fff;box-shadow:0 6px 15px #092f4a26}.primary-button:hover{background:#126088}.secondary-button{background:#edf3f5;color:#153e57;border:1px solid #d4e0e5}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-bottom:1.25rem}.stat-card,.portal-card{background:#fff;border:1px solid #e0e8eb;box-shadow:0 8px 25px #1630470e;border-radius:14px}.stat-card{padding:1.4rem;display:grid}.stat-card span{color:#657d89;font-size:.8rem;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.stat-card strong{color:#0a304b;font-family:var(--font-family-heading);font-size:2.5rem;line-height:1.25}.stat-card small{color:#82939b}.dashboard-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:1.25rem}.open-payouts{order:1}.popular-pieces{order:2;grid-column:1 / -1}.portal-card{padding:1.35rem}.card-title{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:1px solid #edf1f2}.card-title h3{font-family:var(--font-family-heading);font-size:1.3rem}.card-title button{border:0;background:none;color:#237494;cursor:pointer;font-weight:700}.compact-list button{width:100%;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:.8rem;background:none;border:0;border-bottom:1px solid #edf1f2;padding:.8rem 0;text-align:left;cursor:pointer;color:inherit}.compact-list button:last-child{border-bottom:0}.compact-list button>span:nth-child(2){display:grid}.compact-list small,.ranking small{color:#738995}.compact-list i{font-size:1.6rem;color:#8ba0aa}.date-tile{background:#eaf2f5;border-radius:8px;width:48px;height:50px;text-align:center;display:flex;flex-direction:column;justify-content:center;color:#236078;font-size:.68rem;text-transform:uppercase}.date-tile b{font-size:1.15rem;line-height:1.05}.ranking>div{display:grid;grid-template-columns:28px 1fr auto;gap:.65rem;align-items:center;padding:.72rem 0;border-bottom:1px solid #edf1f2}.ranking>div>span{border-radius:50%;background:#eaf2f5;text-align:center;width:24px;height:24px;color:#326c82;font-size:.8rem}.ranking p{display:grid}.ranking strong{color:#28728f}.empty-state{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#83949c;text-align:center}.empty-state span{font-size:2rem;color:#acc2cb}.list-heading{align-items:end}.list-tools{display:flex;gap:.7rem}.list-tools input{min-width:220px}input,select,textarea{width:100%;max-width:100%;box-sizing:border-box;border:1px solid #cfdce1;background:#fbfcfc;border-radius:7px;padding:.7rem .75rem;color:#17354a}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;text-align:left;text-align-last:left;padding-right:2.4rem;background-image:linear-gradient(45deg,transparent 50%,#52717f 50%),linear-gradient(135deg,#52717f 50%,transparent 50%);background-position:calc(100% - 1rem) 50%,calc(100% - .7rem) 50%;background-size:.32rem .32rem,.32rem .32rem;background-repeat:no-repeat}textarea{min-height:90px;resize:vertical}.list-card{padding:0 1.3rem}.service-row{display:grid;grid-template-columns:52px 1fr auto;gap:1rem;align-items:center;padding:1.1rem 0;border-bottom:1px solid #e8eef0}.service-row:last-child{border:0}.service-row h3{font-family:var(--font-family-heading);margin-top:.2rem}.service-row p{color:#718590;font-size:.9rem}.type-pill{display:inline-block;color:#2c7189;background:#eaf4f6;border-radius:99px;padding:.18rem .55rem;font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.row-actions{display:flex;gap:.4rem}.row-actions button,.row-actions a,.piece-meta button{border:0;background:#edf3f5;color:#20566e;border-radius:6px;padding:.5rem .65rem;cursor:pointer;font-weight:650}.attachment-status{display:inline-flex;align-items:center;border-radius:6px;padding:.5rem .65rem;font-size:.78rem;font-weight:750;white-space:nowrap;text-decoration:none}.attachment-status.complete{color:#276044;background:#e8f5ee}.attachment-status.missing{color:#8a6427;background:#fff5df}.payout-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.38rem .65rem;font-size:.75rem;font-style:normal;font-weight:800;white-space:nowrap}.payout-status.received{color:#23603f;background:#dff3e7}.payout-status.submitted{color:#795b13;background:#fff0b8}.payout-status.filled{color:#8a4b16;background:#ffe4c7}.payout-status.missing{color:#8f3535;background:#fbe3e3}button.danger{color:#9a3e3e;background:#fbefef}.piece-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.repertoire-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:.75rem;align-items:end;margin-bottom:1rem}.repertoire-filters label{display:grid;gap:.3rem;color:#536d79;font-size:.79rem;font-weight:750;min-width:0}.repertoire-filters>.secondary-button{margin-left:.4rem}.piece-card h3{font-family:var(--font-family-heading);font-size:1.25rem;margin-top:.8rem}.hymnal-number{display:block;width:fit-content;margin-top:.75rem;padding:.22rem .5rem;border-radius:6px;background:#f0f6f8;color:#205f7b;font-size:.8rem;letter-spacing:.03em}.piece-card>p{color:#718590;min-height:2.5rem}.music-icon{float:right;font-size:2rem;color:#a7c1cb}.piece-meta{border-top:1px solid #e8eef0;padding-top:.8rem;margin-top:.8rem;display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:#3f7182}.piece-meta span{display:flex;gap:.35rem}.location-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.location-card{display:flex;flex-direction:column;min-width:0}.location-card.clickable{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.location-card.clickable:hover,.location-card.clickable:focus-visible{transform:translateY(-2px);box-shadow:0 12px 30px #1630471f;outline:2px solid #79b9cb;outline-offset:2px}.location-card-head{display:flex;align-items:center;justify-content:space-between}.location-icon{width:2.5rem;height:2.5rem;display:grid;place-items:center;border-radius:50%;background:#eaf4f6;color:#2c7189;font-size:1.25rem}.location-card h3{margin-top:.8rem;color:#0a304b}.location-card>p{color:#718590;min-height:3rem;overflow-wrap:anywhere}.location-distance{display:grid;margin-top:.8rem;color:#286b85}.location-distance small,.location-notes{color:#82939b}.location-notes{margin-top:.65rem}.location-actions{display:flex;justify-content:flex-end;gap:.4rem;border-top:1px solid #e8eef0;padding-top:.8rem;margin-top:auto}.location-actions button{border:0;background:#edf3f5;color:#20566e;border-radius:6px;padding:.5rem .65rem;cursor:pointer;font-weight:650}.editor{margin-bottom:1.2rem;border-top:4px solid #2e829c}.editor-title{display:flex;align-items:start;justify-content:space-between;margin-bottom:1rem}.editor-title h3{font-family:var(--font-family-heading);font-size:1.45rem}.editor-title>button{border:0;background:none;font-size:1.6rem;color:#72858d;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;align-items:stretch}.form-grid>*,.reference-field>*{min-width:0}.form-grid label,.notes-label{display:grid;align-content:space-between;gap:.3rem;color:#536d79;font-size:.79rem;font-weight:750}.form-grid .wide{grid-column:1 / -1}.form-grid label small{font-weight:500;color:#82939b}.calendar-detail-link{display:grid;gap:.3rem;color:#536d79;font-size:.79rem;font-weight:750}.calendar-detail-link a,.calendar-detail-link p{min-height:42px;display:flex;align-items:center;padding:.7rem .75rem;border:1px solid #cfdce1;border-radius:7px;background:#fbfcfc;color:#205f7b;font-size:.9rem;font-weight:650;text-decoration:none}.calendar-detail-link p,.calendar-detail-link small{color:#82939b;font-weight:500}.payout-panel{margin-top:1.2rem;padding:1.1rem;border:1px solid #dce7ea;border-radius:10px;background:#f8fbfc}.payout-panel-head{padding-bottom:.85rem;margin-bottom:.9rem;border-bottom:1px solid #e1eaed}.payout-panel-head h4{color:#173d54;font-size:1rem}.payout-panel-head p{margin-top:.15rem;color:#718590;font-size:.8rem}.payout-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.payout-state-field,.trip-field{display:grid;grid-template-rows:auto 44px minmax(2.1rem,auto);gap:.35rem;color:#536d79;font-size:.79rem;font-weight:750}.payout-state-field small,.trip-field small{color:#718590;font-size:.76rem;font-weight:500;line-height:1.35}.payout-state-field select,.trip-field input{height:44px}.reference-field{display:grid;grid-template-columns:1fr 42px;gap:.4rem}.reference-field button{border:1px solid #cfdce1;background:#edf3f5;color:#20566e;border-radius:7px;cursor:pointer;font-size:1.1rem}.editor-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem}.document-upload{margin:1.3rem 0;padding:1rem;border:1px dashed #aac3cd;border-radius:10px;background:#f6fafb;display:flex;align-items:center;justify-content:space-between;gap:1rem}.document-upload p{color:#718590;font-size:.86rem}.document-upload b{display:block;margin-top:.35rem;color:#286b85;font-size:.85rem}.document-upload label{display:inline-block}.program-head{display:flex;justify-content:space-between;align-items:center;margin:1.5rem 0 .7rem}.program-head p{color:#738791;font-size:.85rem}.program-item{display:grid;grid-template-columns:28px 1fr 1.4fr 1fr 34px;gap:.45rem;align-items:center;margin-bottom:.45rem}.program-item>b{color:#73909c;text-align:center}.program-item>button{border:0;background:#fbefef;color:#a34a4a;border-radius:6px;height:38px;cursor:pointer}.piece-reference{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:.35rem}.piece-reference button{border:1px solid #cfdce1;border-radius:7px;background:#edf3f5;color:#20566e;cursor:pointer}.piece-reference button:disabled{cursor:not-allowed;opacity:.45}.piece-combobox{position:relative;min-width:0}.piece-combobox-options{position:absolute;z-index:30;top:calc(100% + .3rem);left:0;right:0;max-height:260px;overflow-y:auto;padding:.3rem;border:1px solid #cfdce1;border-radius:9px;background:#fff;box-shadow:0 12px 32px #092f4a33}.piece-combobox-options button{display:block;width:100%;padding:.65rem .7rem;border:0;border-radius:6px;background:#fff;color:#17354a;text-align:left;font-weight:500}.piece-combobox-options button:hover,.piece-combobox-options button[aria-selected=true]{background:#eaf4f6;color:#174d65}.piece-combobox-options button.add-piece-option{position:sticky;top:0;z-index:1;margin-bottom:.3rem;border-bottom:1px solid #dce7ea;border-radius:6px 6px 0 0;background:#f2f8fa;color:#205f7b;font-weight:750}.piece-combobox-options small{display:block;padding:.7rem;color:#718590}.portal-select{position:relative;min-width:0;font-size:1rem;font-weight:400}.portal-select>button{width:100%;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.7rem .75rem;border:1px solid #cfdce1;border-radius:7px;background:#fbfcfc;color:#17354a;text-align:left;cursor:pointer}.portal-select>button.placeholder{color:#78878e}.portal-select>button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-select>button i{flex:0 0 auto;width:0;height:0;border-left:.32rem solid transparent;border-right:.32rem solid transparent;border-top:.42rem solid #52717f}.portal-select-options{position:absolute;z-index:35;top:calc(100% + .3rem);left:0;right:0;max-height:260px;overflow-y:auto;padding:.3rem;border:1px solid #cfdce1;border-radius:9px;background:#fff;box-shadow:0 12px 32px #092f4a33}.portal-select-options button{display:block;width:100%;padding:.65rem .7rem;border:0;border-radius:6px;background:#fff;color:#17354a;text-align:left;cursor:pointer}.portal-select-options button:hover,.portal-select-options button[aria-selected=true]{background:#eaf4f6;color:#174d65}.text-combobox{position:relative;min-width:0}.text-combobox-options{position:absolute;z-index:35;top:calc(100% + .3rem);left:0;right:0;max-height:260px;overflow-y:auto;padding:.3rem;border:1px solid #cfdce1;border-radius:9px;background:#fff;box-shadow:0 12px 32px #092f4a33}.text-combobox-options button{display:block;width:100%;padding:.65rem .7rem;border:0;border-radius:6px;background:#fff;color:#17354a;text-align:left;cursor:pointer}.text-combobox-options button:hover,.text-combobox-options button[aria-selected=true]{background:#eaf4f6;color:#174d65}.text-combobox-options small{display:block;padding:.65rem .7rem;color:#718590;font-weight:500}.text-combobox-options .new-value-hint{border-top:1px solid #e2eaed;color:#205f7b}.piece-editor-modal .form-grid input,.piece-editor-modal .text-combobox>input{min-height:42px}.hymn-number-field{display:grid;grid-template-columns:1fr}.hymn-number-field.with-code{grid-template-columns:auto minmax(0,1fr)}.hymn-number-field>span{display:grid;place-items:center;min-width:3.2rem;padding:0 .65rem;border:1px solid #cfdce1;border-right:0;border-radius:7px 0 0 7px;background:#eaf2f5;color:#205f7b;font-size:.85rem;font-weight:800}.hymn-number-field.with-code input{border-radius:0 7px 7px 0}.notes-label{margin-top:1rem}.backup-card{display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:1rem;margin-bottom:1rem}.backup-card p,.storage-warning{color:#6b808a}.backup-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:#e7f1f4;color:#2d7791;font-size:1.5rem}.storage-warning{padding:1rem;background:#fff9e9;border:1px solid #f0dfad;border-radius:9px;font-size:.9rem}.master-data-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.master-list{display:flex;flex-direction:column;gap:.7rem}.master-list h3{font-family:var(--font-family-heading)}.master-list>p{color:#718590;font-size:.82rem}.master-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem}.master-list-row button{border:0;border-radius:6px;padding:.5rem .65rem;cursor:pointer}.hymnals-list{grid-column:1 / -1}.hymnal-row{grid-template-columns:100px minmax(0,1fr) auto}.master-data-actions{grid-column:1 / -1;display:flex;justify-content:flex-end}.portal-toast{background:#e8f5ee;border:1px solid #b9ddc9;color:#245e40;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;display:flex;justify-content:space-between;cursor:pointer}.calendar-list{padding:clamp(1.1rem,3vw,2rem)}.calendar-list-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:#002c4d;font-size:clamp(1rem,2.4vw,1.35rem);padding-bottom:.8rem}.calendar-list-head>strong>span{color:var(--secondary-color);margin-right:.45rem}.calendar-list-head>div{display:flex;gap:.35rem}.calendar-list-head button{width:2.5rem;height:2.5rem;border:0;border-radius:999px;background:var(--primary-color);color:#fff;cursor:pointer;font-size:1.35rem}.calendar-service{display:grid;grid-template-columns:1fr auto;align-items:center;gap:1rem;border-top:1px solid var(--card-border);padding:1rem 0}.calendar-service-main{min-width:0;border:0;background:transparent;color:#002c4d;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;text-align:left}.calendar-service-main>span{display:grid}.calendar-service-main>span:last-child{text-align:right}.calendar-service-main b{font-size:.92rem}.calendar-service-main small{color:#6e818c}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:1.25rem;background:#041927ad;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.service-modal{width:min(980px,100%);max-height:calc(100dvh - 2.5rem);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;border-radius:16px;box-shadow:0 30px 90px #00142359}.service-modal .editor{margin:0;border-radius:16px}.piece-editor-backdrop{z-index:1100}.piece-editor-modal{width:min(720px,100%);max-height:calc(100dvh - 2.5rem);overflow-y:auto;overscroll-behavior:contain;border-radius:16px}.piece-editor-modal .editor{margin:0}.location-history-modal{width:min(720px,100%);max-height:calc(100dvh - 2.5rem);overflow-y:auto;border-radius:16px}.location-history{padding:1.35rem}.location-history .editor-title{margin-bottom:.3rem}.location-history .editor-title small{color:#718590}.location-history-list button{width:100%;display:grid;grid-template-columns:105px minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.85rem .2rem;border:0;border-top:1px solid #e5ecef;background:transparent;color:#17354a;text-align:left;cursor:pointer}.location-history-list button:hover{background:#f5f9fa}.location-history-list time{color:#2c7189;font-weight:750}.location-history-list span{display:grid;min-width:0}.location-history-list small{color:#718590}.location-history-list i{color:#8ba0aa;font-size:1.4rem}.merge-editor-modal{width:min(760px,100%);max-height:calc(100dvh - 2.5rem);overflow-y:auto;border-radius:16px}.merge-editor{margin:0}.merge-intro{color:#607782;margin-bottom:1rem}.merge-groups{display:grid;gap:1rem}.merge-groups fieldset{border:1px solid #dce7ea;border-radius:10px;padding:.75rem}.merge-groups legend{padding:0 .35rem;color:#536d79;font-size:.78rem;font-weight:750}.merge-groups label{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.7rem;border-radius:8px;cursor:pointer}.merge-groups label+label{border-top:1px solid #edf1f2}.merge-groups label.selected{background:#eaf4f6;color:#174d65}.merge-groups input{width:20px;height:20px}.merge-groups label span{display:grid;min-width:0}.merge-groups label small{color:#718590;overflow-wrap:anywhere}.merge-groups label>b{font-size:.75rem;white-space:nowrap}.portal-login{min-height:75vh;display:grid;place-items:center;padding:3rem 1rem;background:radial-gradient(circle at 50% 10%,#edf6f7,#e5ecef)}.portal-loading{min-height:70vh;display:grid;place-items:center;color:#5c7682;background:#f3f6f7}.login-card{width:min(430px,100%);background:#fff;padding:clamp(1.6rem,5vw,2.6rem);border-radius:18px;border:1px solid #dce6e9;box-shadow:0 22px 60px #092f4a21;text-align:center}.login-mark{display:grid;place-items:center;margin:0 auto 1.2rem;width:58px;height:58px;border-radius:50%;background:#0b3653;color:#fff;font-family:var(--font-family-heading);font-size:1.25rem}.login-card h1{font-family:var(--font-family-heading);color:#0a304b;font-size:2rem}.login-intro{color:#6c808a;margin:.65rem 0 1.4rem}.portal-form{display:grid;gap:.9rem;text-align:left}.login-switch{border:0;background:transparent;color:#286b85;cursor:pointer;padding:.25rem;font-weight:700}.portal-form label{display:grid;gap:.3rem;font-size:.8rem;font-weight:750;color:#4a6471}.form-error{color:#9a3737;background:#fbeeee;padding:.6rem;border-radius:6px;font-size:.85rem}.privacy-note{color:#85959c;font-size:.76rem;margin-top:1.1rem}@media (max-width: 950px){.portal-shell{grid-template-columns:1fr}.portal-sidebar{min-height:auto;padding:1rem}.portal-sidebar>div,.logout-button{display:none}.portal-sidebar nav{margin:0;display:flex;overflow-x:auto}.portal-sidebar nav button{white-space:nowrap}.stat-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.piece-grid{grid-template-columns:1fr 1fr}}@media (max-width: 950px){.repertoire-filters{grid-template-columns:1fr 1fr}}@media (max-width: 950px){.repertoire-filters>.secondary-button{margin-left:0}}@media (max-width: 650px){.portal-content{padding:1.2rem .85rem}.portal-heading,.list-heading{align-items:stretch;flex-direction:column;gap:1rem}.list-tools{flex-direction:column}.stat-grid,.piece-grid,.form-grid{grid-template-columns:1fr}.service-row{grid-template-columns:50px 1fr}.row-actions{grid-column:1 / -1;justify-content:flex-end;flex-wrap:wrap}.calendar-list{padding:1rem}.calendar-list-head{align-items:flex-start}.calendar-list-head>strong{max-width:70%}.calendar-service{grid-template-columns:1fr;gap:.7rem}.calendar-service-main{flex-direction:column;gap:.4rem}.calendar-service-main>span:last-child{text-align:left}.calendar-service .row-actions{justify-content:flex-start}.modal-backdrop{padding:0;place-items:stretch}.service-modal{width:100%;max-height:100dvh;border-radius:0}.service-modal .editor{min-height:100dvh;border-radius:0;padding:1rem}.program-head,.document-upload{align-items:stretch;flex-direction:column}.editor-actions{position:sticky;bottom:0;margin:1rem -1rem -1rem;padding:.85rem 1rem;background:#fff;border-top:1px solid #dce7ea}.program-item{grid-template-columns:28px 1fr 34px;padding-bottom:.7rem;border-bottom:1px solid #e4ebee}.program-item>.portal-select,.program-item .piece-reference,.program-item>input{grid-column:2 / 3}.piece-editor-modal{width:100%}.piece-editor-modal .editor{min-height:100dvh;border-radius:0}.backup-card{grid-template-columns:45px 1fr}.backup-card button{grid-column:1 / -1}}@media (max-width: 950px){.location-grid{grid-template-columns:1fr 1fr}}@media (max-width: 650px){.location-grid{grid-template-columns:1fr}}@media (max-width: 950px){.portal-shell{display:block;min-height:100dvh;padding-bottom:calc(74px + env(safe-area-inset-bottom))}.portal-sidebar{position:fixed;inset:auto 0 0;z-index:900;min-height:0;padding:.35rem .35rem calc(.35rem + env(safe-area-inset-bottom));box-shadow:0 -8px 30px #041f3033}.portal-sidebar nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.15rem;margin:0;overflow:visible}.portal-sidebar nav button{min-width:0;min-height:58px;padding:.35rem .1rem;flex-direction:column;justify-content:center;gap:.1rem;text-align:center;border-radius:8px}.portal-sidebar nav button span{width:auto;font-size:1.15rem;line-height:1}.portal-sidebar nav button small{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:.61rem;line-height:1.2}.portal-content{max-width:none}.logout-button{display:block;position:fixed;top:4.65rem;right:.65rem;z-index:850;width:auto;margin:0;padding:.45rem .7rem;border:1px solid #d4e0e5;border-radius:999px;background:#fffffff2;color:#20566e;box-shadow:0 4px 15px #092f4a1f;font-size:.72rem}}@media (max-width: 650px){.portal-shell,.portal-content{width:100%;max-width:100%;overflow-x:clip}.portal-content{padding:3.5rem .75rem 1.25rem}.portal-heading{margin-bottom:1.15rem}.portal-heading h2{font-size:clamp(1.65rem,9vw,2.15rem)}.portal-heading>div>p:last-child{font-size:.9rem}.primary-button,.secondary-button{min-height:44px;padding:.7rem .85rem}.list-tools{width:100%;gap:.5rem}.list-tools input{min-width:0;min-height:44px;font-size:16px}.list-tools button{width:100%}.stat-grid{grid-template-columns:1fr 1fr;gap:.6rem}.stat-card{padding:.85rem;min-width:0}.stat-card span{font-size:.65rem}.stat-card strong{font-size:1.8rem}.stat-card small{font-size:.72rem;line-height:1.3}.stat-card:last-child:nth-child(odd){grid-column:1 / -1}.portal-card{border-radius:11px}.dashboard-grid{gap:.75rem}.card-title{gap:.5rem}.card-title h3{font-size:1.08rem}.compact-list button{grid-template-columns:44px minmax(0,1fr) 18px;gap:.6rem}.open-payouts .compact-list button{grid-template-columns:44px minmax(0,1fr)}.open-payouts .payout-status{grid-column:2;justify-self:start}.compact-list button>span:nth-child(2){min-width:0}.compact-list b,.compact-list small{overflow-wrap:anywhere}.calendar-list-head{align-items:center;font-size:.95rem}.calendar-list-head>strong{max-width:calc(100% - 6rem);line-height:1.3}.calendar-list-head button{width:2.6rem;height:2.6rem}.calendar-list{margin-inline:0;padding:.75rem}.calendar-service{width:100%;min-width:0;padding:.85rem 0;gap:.55rem}.calendar-service-main{width:100%;min-width:0;min-height:44px;padding:0}.calendar-service-main>span{min-width:0}.calendar-service-main strong,.calendar-service-main b,.calendar-service-main small{overflow-wrap:anywhere}.calendar-service .row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0}.calendar-service .row-actions>*{min-height:40px;display:grid;place-items:center;text-align:center}.piece-card>p,.location-card>p{min-height:0}.location-grid{width:100%;min-width:0;gap:.75rem}.location-card{width:100%;min-width:0;padding:1rem;overflow:hidden}.location-card h3,.location-card p,.location-notes{overflow-wrap:anywhere}.location-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.location-actions button{min-width:0;min-height:42px}.repertoire-filters{grid-template-columns:1fr}.repertoire-filters>.secondary-button{margin-top:.35rem}.piece-meta{align-items:flex-start;gap:.6rem}.piece-meta span{flex-wrap:wrap;justify-content:flex-end}input,select,textarea{min-width:0;font-size:16px}.modal-backdrop{width:100vw;max-width:100vw;overflow:hidden;overscroll-behavior:none}.service-modal,.piece-editor-modal{width:100vw;max-width:100vw;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}.merge-editor-modal{width:100%;max-height:100dvh;border-radius:0;overflow-y:auto}.location-history-modal{width:100%;max-height:100dvh;border-radius:0}.location-history{min-height:100dvh;border-radius:0}.location-history-list button{grid-template-columns:86px minmax(0,1fr) auto;gap:.55rem}.merge-editor-modal .editor{min-height:100dvh;border-radius:0;padding:.85rem;padding-bottom:0}.merge-groups label{grid-template-columns:24px minmax(0,1fr)}.merge-groups label>b{grid-column:2}.service-modal .editor,.piece-editor-modal .editor{width:100%;min-width:0;padding:.85rem;padding-bottom:0}.service-modal input[type=date],.service-modal input[type=time]{display:block;width:100%;min-width:0;max-width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none}.editor-title{position:sticky;top:-.85rem;z-index:5;margin:-.85rem -.85rem 1rem;padding:.85rem;background:#fff;border-bottom:1px solid #e2eaed}.editor-title h3{font-size:1.2rem}.form-grid{gap:.75rem}.form-grid .wide{grid-column:auto}.payout-panel{padding:.8rem;gap:.75rem}.payout-fields{grid-template-columns:1fr;gap:.75rem}.check-grid{display:grid;grid-template-columns:1fr;gap:.6rem}.check-grid label{min-height:36px}.check-grid input{width:22px;height:22px}.document-upload{margin:1rem 0;padding:.8rem}.document-upload label{width:100%;text-align:center}.program-head{margin:1.2rem 0 .7rem;gap:.7rem}.program-head button{width:100%}.program-item{grid-template-columns:24px minmax(0,1fr) 38px;gap:.4rem;margin-bottom:.8rem}.program-item>*{min-width:0}.piece-reference{min-width:0}.program-item>button{height:44px}.notes-label textarea{min-height:110px}.editor-actions{z-index:6;display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.editor-actions button{width:100%;min-width:0;white-space:normal}.backup-card{padding:1rem;gap:.75rem}.master-data-grid{grid-template-columns:1fr}.hymnals-list,.master-data-actions{grid-column:auto}.hymnal-row{grid-template-columns:72px minmax(0,1fr)}.hymnal-row button{grid-column:1 / -1}.backup-card p{font-size:.86rem}.portal-toast{font-size:.85rem}}@media (max-width: 360px){.portal-sidebar nav button small{font-size:.56rem}.portal-content{padding-inline:.55rem}.stat-card{padding:.7rem}.calendar-list{padding:.8rem}}
