.choir-seasons{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:24px 0}.choir-season{padding:24px;text-align:left;display:grid;gap:10px;white-space:normal}.choir-season strong{font-size:21px}.choir-hero{border-radius:20px;padding:28px;margin:20px 0;border:1px solid #cadbd4;background:#edf5ef}.choir-hero h1,.choir-hero h2{margin:6px 0 18px}.choir-hero p:last-child{margin-bottom:0}.theme-spring{background:#fbf0ef;border-color:#edcfca}.theme-summer{background:#eaf6f7;border-color:#c4e1e4}.theme-autumn{background:#fbf3e5;border-color:#ead6b2}.theme-winter{background:#edf0f9;border-color:#cdd5ed}.choir-timeline,.choir-posts{display:grid;gap:18px;margin-top:20px}.choir-meeting,.choir-note,.choir-notice{background:white;border:1px solid var(--line);border-radius:16px;padding:24px;margin:18px 0;color:var(--navy);font-size:15px;overflow-wrap:anywhere}.choir-meeting h3,.choir-notice h3{margin:8px 0 15px}.choir-meeting details{margin:18px 0}.choir-homework{background:#eff6e9;border-left:4px solid #6d9352;padding:18px;margin:20px 0}.choir-reception-date{border:2px solid var(--teal);border-radius:14px;padding:18px;margin:20px 0;background:#ecf8f3}.choir-reception-date p{margin:4px 0 0}.choir-top{display:flex;gap:18px;align-items:end}.choir-top label{flex:1}.choir-portal{max-width:900px;padding-bottom:80px}.choir-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 14px;scrollbar-width:thin}.choir-tabs button{white-space:nowrap;flex-shrink:0}.choir-tabs button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}.choir-section-title{margin-top:30px}.choir-rsvp{margin-top:20px;padding-top:20px;border-top:1px solid var(--line);max-width:650px}.choir-rsvp button{justify-self:start}.rsvp-status{margin:0;color:var(--teal)}.choir-note summary{display:flex;flex-direction:column;gap:6px;font-size:17px}.choir-note summary::before{content:'＋';float:left}.choir-note[open] summary::before{content:'−'}.choir-note summary small{font-size:12px}.choir-note h4{margin:24px 0 8px;color:var(--teal);font-size:17px}.choir-arrived{background:#e3f5ec;padding:14px 18px;border-radius:10px;color:#145b3e;font-weight:650}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}.choir-file{display:inline-block;padding:12px 18px;background:#edf6f3;border-radius:10px;font-weight:650}.choir-audio-row{display:flex;align-items:center;gap:20px;justify-content:space-between;padding:22px;background:white;border:1px solid var(--line);border-radius:14px;margin:16px 0}.choir-audio-row h3{margin:7px 0 0}.choir-audio-row button{flex-shrink:0}.choir-player{position:sticky;bottom:12px;background:white;border:2px solid var(--teal);border-radius:16px;padding:16px 20px;box-shadow:0 6px 24px #17394922;z-index:2;max-height:70vh;overflow:auto}.player-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.choir-player audio{width:100%;margin-top:12px}.choir-player details{margin:8px 0}.choir-player p{margin:8px 0}.player-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:12px 0}.choir-qr{text-align:center}.choir-qr svg{display:block;max-width:290px;width:100%;height:auto;margin:24px auto}.choir-qr h2{margin-bottom:12px}#choir-camera{display:block;width:100%;max-height:50vh;border-radius:12px;margin:15px 0;background:#132a35}#portal-status{font-size:13px;color:var(--muted);margin:16px 0;min-height:22px}.choir-public .footnote{line-height:1.9}@media(max-width:650px){.choir-top{flex-wrap:wrap;gap:12px}.choir-top label{flex-basis:100%}.choir-top button{font-size:13px;min-height:44px}.choir-hero{padding:23px 20px}.choir-meeting,.choir-note,.choir-notice{padding:20px}.choir-tabs{margin-right:-16px;padding-right:16px}.choir-player{bottom:8px;padding:12px;max-height:65vh}.choir-audio-row{padding:18px}.choir-audio-row h3{font-size:16px}.player-controls button{font-size:13px}.choir-seasons{grid-template-columns:1fr}.choir-public header>span:last-child{font-size:12px}.choir-rsvp{gap:14px}}@media print{.choir-public header,.choir-public .trial,.choir-top,#portal-status,#portal-nav,#choir-player,.choir-public .footnote,.choir-qr button{display:none!important}.choir-public main{padding:0;max-width:none}.choir-hero{border:0;padding:12px}.choir-qr{break-inside:avoid;border:1px solid #999;max-width:420px;margin:20px auto}.choir-qr svg{width:230px}}

.choir-hero-compact{padding:16px 22px;margin:14px 0}.choir-hero-compact h2{margin:0;font-size:20px}.choir-hero-compact p{margin:0;font-size:13px}.choir-hero-compact p:nth-of-type(3),.choir-hero-compact small{display:none}

.choir-portal select,#choir-body select{appearance:none;min-height:48px;padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,#526975 50%),linear-gradient(135deg,#526975 50%,transparent 50%);background-position:calc(100% - 20px) 21px,calc(100% - 15px) 21px;background-size:5px 5px;background-repeat:no-repeat}
