/* An uncluttered, mobile-first application journey. No personal data in decoration. */
.joining { --join-ink:#183d54; --join-muted:#526d7e; --join-blue:#0878b8; --join-line:#d9e6ef; background:#f2f7fb; }
.joining .member-main { max-width:1080px; padding:10px 28px 56px; }
.joining .member-header { padding-inline:max(28px,calc((100% - 1024px)/2)); }
.joining #apply-intro { display:none; }
.joining .footnote { max-width:650px; margin:32px auto 0; text-align:center; line-height:1.8; }
.joining .apply-sync:empty { display:none; }
.joining #apply-content { color:var(--join-ink); }
.join-progress { max-width:560px; margin:12px auto 34px; }
.join-progress ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; padding:0; margin:0; }
.join-progress li { position:relative; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:7px; min-width:0; color:#566f7e; font-size:12px; }
.join-progress li:not(:last-child):after { content:''; height:1px; background:#c9dce9; width:calc(100% - 48px); position:absolute; top:17px; left:calc(50% + 24px); }
.join-progress li>span { width:34px; height:34px; display:grid; place-items:center; border:1px solid #c9dce9; border-radius:50%; background:#fff; font-size:13px; font-weight:600; }
.join-progress li[aria-current=step] { color:#075d90; }
.join-progress li[aria-current=step]>span { background:var(--join-blue); color:#fff; border-color:var(--join-blue); }
.join-progress li.is-done>span { background:#dff1fd; color:#075d90; border-color:#b5d6eb; }
.join-progress .member-icon { width:18px; height:18px; }
.joining #join-heading:focus { outline:0; }
.join-hero { border-radius:24px; background:#e0f2ff; padding:38px 40px 30px; margin-bottom:26px; overflow-wrap:anywhere; }
.join-kicker { font-size:10px; font-weight:650; color:#44697f; letter-spacing:.1em; margin:0 0 12px; display:block; }
.joining .join-hero h1 { margin:0; font-size:30px; line-height:1.55; max-width:790px; text-wrap:pretty; letter-spacing:.02em; }
.join-invitation { font-size:18px; font-weight:650; margin:22px 0 8px; white-space:pre-wrap; }
.join-introduction { font-size:14px; color:#365e77; line-height:1.95; white-space:pre-wrap; margin:0; max-width:720px; }
.join-event-facts { display:grid; grid-template-columns:1fr 1fr; gap:20px; border-top:1px solid #bddcf0; padding-top:23px; margin:26px 0 0; }
.join-event-facts>div { display:grid; grid-template-columns:24px minmax(0,1fr); column-gap:10px; row-gap:4px; align-content:start; }
.join-event-facts svg { grid-row:1/3; color:#236e98; margin-top:1px; }
.join-event-facts dt { font-size:11px; color:#44697f; }
.join-event-facts dd { margin:0; font-size:16px; font-weight:600; }
.join-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; align-items:start; gap:26px; }
.join-layout>* { min-width:0; }
.join-side { display:grid; gap:18px; }
.join-fee { padding:25px; background:white; border:1px solid var(--join-line); border-radius:20px; }
.join-fee-heading { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:8px; }
.joining .join-fee h2 { font-size:14px; margin:0; }
.join-fee .join-total { font-size:33px; font-weight:700; letter-spacing:-.02em; margin:10px 0 14px; color:var(--join-ink); }
.join-price-label { background:#dff2fb; color:#085b87; padding:4px 8px; border-radius:6px; font-size:11px; }
.join-fee p { font-size:12px; line-height:1.85; color:var(--join-muted); margin:8px 0 0; }
.join-breakdown { display:grid; gap:10px; margin:0 0 14px; }
.join-breakdown>div { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; justify-content:space-between; font-size:13px; }
.join-breakdown dd { margin:0; font-weight:650; }
.join-fee .join-payment-timing { padding-top:16px; margin-top:16px; border-top:1px solid var(--join-line); color:#335b72; }
.join-fee .join-price-deadline { font-size:11px; }
.join-security { display:flex; gap:10px; padding:0 8px; align-items:flex-start; }
.join-security>svg { margin-top:2px; color:#3c7290; }
.join-security strong { font-size:12px; font-weight:650; }
.join-security p { font-size:11px; color:var(--join-muted); line-height:1.9; margin:5px 0 0; }
.join-section { background:#fff; padding:28px; border-radius:20px; margin:0 0 18px; min-width:0; }
.joining .join-section h2 { font-size:17px; font-weight:650; margin:0 0 22px; line-height:1.6; }
.join-copy { white-space:pre-wrap; font-size:14px; line-height:1.95; overflow-wrap:anywhere; margin:0; }
.join-after-flow { list-style:none; margin:0; padding:0; display:grid; }
.join-after-flow li { display:flex; gap:14px; position:relative; padding-bottom:22px; }
.join-after-flow li:last-child { padding-bottom:0; }
.join-after-flow li:not(:last-child):after { content:''; position:absolute; top:33px; bottom:3px; width:1px; background:#cfdfeb; left:14px; }
.join-after-flow li>span { border-radius:50%; background:#edf6fc; color:#086c9e; width:29px; height:29px; display:grid; place-items:center; flex-shrink:0; font-size:12px; font-weight:600; }
.join-after-flow strong { font-size:14px; font-weight:650; display:block; margin:3px 0 4px; }
.join-after-flow p { font-size:12px; color:var(--join-muted); margin:0; line-height:1.8; }
.join-note { font-size:12px; line-height:1.9; color:#486a80; background:#f0f7fc; border-radius:10px; padding:13px 15px; margin:20px 0 0; }
.joining:has(.join-bottom) .member-main { padding-bottom:calc(150px + env(safe-area-inset-bottom)); }
.joining .join-bottom { position:fixed; z-index:20; bottom:0; left:0; width:100%; padding:12px max(16px,calc((100% - 440px)/2)) calc(10px + env(safe-area-inset-bottom)); margin:0; text-align:center; background:#fff; border-top:1px solid #dde8f0; }
.joining .primary { background:var(--join-blue); border-color:var(--join-blue); color:#fff; font-size:15px; min-height:54px; border-radius:13px; padding:15px 22px; font-weight:650; }
.joining .primary:hover:not(:disabled) { background:#05669e; border-color:#05669e; }
.join-bottom .primary { width:100%; }
.join-bottom>p,.join-form-actions>p { font-size:11px; text-align:center; color:var(--join-muted); line-height:1.8; margin:10px 0 0; }
.join-page-title { margin:0 0 28px; }
.join-page-title .join-kicker { margin-bottom:8px; }
.joining .join-page-title h1 { font-size:28px; margin:0 0 10px; line-height:1.5; }
.join-page-title>p { font-size:13px; margin:0; color:var(--join-muted); line-height:1.9; }
.joining .join-input-form,.joining #join-confirm { margin:0; display:block; }
.join-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.join-field { min-width:0; margin:0 0 22px; }
.join-field:last-child,.join-pair:last-child .join-field { margin-bottom:0; }
.joining .join-field>label { display:flex; flex-direction:row; flex-wrap:wrap; align-items:baseline; gap:6px; font-size:13px; font-weight:550; margin:0 0 9px; color:var(--join-ink); }
.joining .join-field input,.joining .join-field select,.joining .join-field textarea { display:block; box-sizing:border-box; width:100%; max-width:100%; min-width:0; min-height:50px; border:1px solid #b9cbd8; background:#fff; border-radius:10px; padding:12px 13px; color:#183d54; font-size:16px; line-height:1.5; margin:0; font-family:inherit; }
.joining .join-field input::placeholder,.joining .join-field textarea::placeholder { color:#617889; opacity:1; font-size:14px; }
.joining .join-field textarea { resize:vertical; }
.joining input:focus,.joining select:focus,.joining textarea:focus { outline:2px solid #1685bf; outline-offset:2px; }
.joining input[aria-invalid=true],.joining textarea[aria-invalid=true],.joining select[aria-invalid=true] { border-color:#a33335; }
.join-hint { color:var(--join-muted); display:block; font-size:11px; line-height:1.85; margin:8px 0 0; font-weight:400; }
.join-required,.join-optional { display:inline-block; font-size:10px; font-weight:500; white-space:nowrap; }
.join-required { color:#075c8d; background:#e7f4fc; padding:2px 6px; border-radius:4px; }
.join-optional { color:#5c7381; }
.join-event-mini { padding:22px 8px 5px; }
.joining .join-event-mini h2 { font-size:17px; line-height:1.75; margin:0 0 17px; overflow-wrap:anywhere; }
.join-event-mini>p { display:flex; align-items:flex-start; gap:9px; color:var(--join-muted); font-size:12px; margin:11px 0 0; line-height:1.75; overflow-wrap:anywhere; }
.join-event-mini .member-icon { height:18px; width:18px; margin-top:1px; }
.join-question { margin:24px 0; padding:0; border:0; min-width:0; }
.join-question:first-of-type { margin-top:0; }
.join-question:last-child { margin-bottom:0; }
.join-question legend { display:block; font-size:14px; font-weight:550; line-height:1.8; padding:0; margin:0 0 10px; }
.join-question legend .join-required,.join-question legend .join-optional { margin-left:5px; }
.join-question>.join-hint { margin:0 0 12px; }
.join-options { display:grid; gap:9px; }
.joining .join-choice { display:flex; flex-direction:row; align-items:flex-start; gap:12px; border:1px solid #cbdbe6; padding:14px 15px; border-radius:11px; font-size:14px; font-weight:400; line-height:1.75; margin:0; cursor:pointer; background:white; }
.join-choice input { width:19px; min-width:19px; height:19px; min-height:19px; padding:0; accent-color:var(--join-blue); margin:3px 0 0; flex-shrink:0; }
.join-choice span { min-width:0; overflow-wrap:anywhere; }
.join-choice:has(input:checked) { border-color:#147cae; background:#eef8ff; }
.join-choice:has(input:focus-visible) { outline:2px solid #1685bf; outline-offset:2px; }
.joining .join-check { margin-top:12px; }
.join-check:first-child { margin-top:0; }
.join-form-actions { display:grid; gap:10px; margin-top:25px; }
.join-form-actions .primary { width:100%; }
.joining .join-back,.joining .join-edit { border:0; background:transparent; color:#086fa8; font-weight:550; font-size:13px; min-height:44px; box-shadow:none; }
.joining .join-back:hover,.joining .join-edit:hover { background:#e4f2fc; }
.joining .join-back { justify-self:center; padding:10px 18px; }
.join-section-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.join-section-top h2 { margin:0!important; }
.joining .join-edit { padding:8px 10px; flex-shrink:0; }
.join-review-name { font-size:26px; font-weight:650; margin:20px 0 24px; overflow-wrap:anywhere; }
.join-review-name small { font-size:12px; font-weight:400; margin-left:8px; }
.join-review-layout>.join-review { grid-column:1; grid-row:1; margin:0; }
.join-review-layout>.join-side { grid-column:2; grid-row:1 / span 2; }
.join-review-layout>#join-confirm { grid-column:1; grid-row:2; }
.join-review-list { margin:0; }
.join-review-list>div { padding:15px 0; border-top:1px solid #e4edf3; }
.join-review-list>div:last-child { padding-bottom:0; }
.join-review-list dt { font-size:11px; color:var(--join-muted); margin:0 0 7px; overflow-wrap:anywhere; }
.join-review-list dd { font-size:15px; margin:0; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; }
.join-terms { margin-bottom:24px; }
.join-terms h3 { font-size:13px; margin:0 0 9px; }
.join-terms .join-copy { font-size:12px; color:var(--join-muted); }
.join-errors { background:#fff1f0; border:1px solid #e6b9b6; color:#822d32; border-radius:12px; padding:17px 19px; margin-bottom:18px; font-size:13px; line-height:1.9; }
.join-errors strong { display:block; }
.join-errors ul { margin:6px 0 0; padding-left:20px; }
.join-errors a { color:#822d32; text-decoration:underline; }
.join-field-error { display:block; color:#a02b34; font-size:12px; margin:7px 0 0; line-height:1.7; }
.join-page-title .join-update { background:#e2f1fb; color:#245672; padding:14px 17px; border-radius:10px; margin-top:18px; }
@media(min-width:861px) { .join-input-form+.join-side,#join-confirm+.join-side { position:sticky; top:22px; } }
@media(max-width:860px) {
  .join-layout { grid-template-columns:minmax(0,1fr); gap:22px; }
  .join-side { grid-row:auto; }
  .join-overview-body+.join-side { grid-row:1; }
  .join-input-form+.join-side { display:none; }
  .join-review-layout>.join-side { grid-column:1; grid-row:2; }
  .join-review-layout>#join-confirm { grid-row:3; }
  .join-layout:has(#join-confirm) .join-event-mini { background:white; padding:20px 24px; border-radius:18px; }
  .join-layout:has(#join-confirm) .join-side { gap:12px; }
  .join-layout:has(#join-confirm) .join-security { display:none; }
  .join-layout:has(#join-confirm) .join-fee { padding:20px 24px; }
  .join-layout:has(#join-confirm) .join-fee .join-total { font-size:28px; }
  .join-side .join-fee { border:0; }
}
@media(max-width:600px) {
  .joining .member-main { padding:4px 16px 36px; }
  .joining .member-header { padding:15px 20px; min-height:62px; }
  .join-progress { margin:8px 0 26px; }
  .join-progress li { font-size:11px; }
  .join-hero { padding:26px 23px; border-radius:19px; margin-bottom:20px; }
  .joining .join-hero h1 { font-size:24px; line-height:1.6; }
  .join-invitation { font-size:16px; margin:20px 0 10px; line-height:1.8; }
  .join-introduction { font-size:13px; }
  .join-event-facts { grid-template-columns:1fr; gap:17px; margin-top:22px; padding-top:21px; }
  .join-event-facts dd { font-size:15px; }
  .join-section { padding:24px 21px; border-radius:17px; margin-bottom:15px; }
  .joining .join-section h2 { font-size:16px; margin-bottom:20px; }
  .join-fee { padding:25px; }
  .join-page-title { margin-bottom:23px; padding:0 4px; }
  .joining .join-page-title h1 { font-size:24px; }
  .join-page-title>p { font-size:12px; }
  .join-pair { gap:12px; }
  .joining .join-field>label { font-size:12px; }
  .join-pair .join-field>label { column-gap:4px; }
  .join-options .join-choice { padding:13px; }
  .join-review-name { font-size:25px; }
  .join-bottom { margin-top:24px; }
}
@media(prefers-reduced-motion:reduce) { .joining * { scroll-behavior:auto!important; } }

/* Organizer editor uses the same spacing and labels without changing other dialogs. */
.form-editor-intro { color:var(--muted); font-size:13px; line-height:1.9; }
.form-editor-section { border:0; margin:24px 0; padding:0; min-width:0; }
.form-editor-section>legend { font-size:17px; font-weight:650; margin-bottom:14px; padding:0; }
.form-editor-section input,.form-editor-section textarea,.form-editor-section select { min-width:0; max-width:100%; box-sizing:border-box; }
.form-editor-section textarea { min-height:90px; }
.form-editor-section label>small { font-size:11px; line-height:1.8; color:var(--muted); font-weight:400; }
.form-question-card { border:1px solid var(--line); background:#f7fafc; padding:20px; border-radius:14px; margin:14px 0; min-width:0; }
.form-question-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; }
.form-question-toolbar strong { font-size:14px; }
.form-question-tools { display:flex; gap:5px; }
.form-question-tools button { min-width:40px; min-height:40px; padding:7px; }
.form-option-row { display:flex; align-items:center; gap:8px; margin:9px 0; }
.form-option-row label { flex:1; min-width:0; margin:0; font-size:11px; }
.form-option-row input { width:100%; }
.form-option-row>button { flex-shrink:0; margin-top:17px; padding:8px; min-height:42px; }
.form-question-add { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.form-question-add button { font-size:13px; }
.form-answers dl { margin:12px 0 0; }
.form-answers dl>div { padding:12px 0; border-bottom:1px solid var(--line); }
.form-answers dt { font-size:12px; color:var(--muted); margin-bottom:6px; }
.form-answers dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; }
.form-answers small { color:var(--muted); }
@media(max-width:500px) { .form-question-card { padding:16px 13px; }.form-question-tools { gap:2px; }.form-question-toolbar { gap:5px; }.form-option-row { gap:6px; } }

.choir-intake{--brand:#00856a;--accent:#00856a;--accent-strong:#00705a;--primary:#00705a;--blue:#00705a;--blue-deep:#00705a;--brand-soft:#edf8f3;background:#f3f8f5}.choir-intake .primary{background:#00705a;color:white}.choir-intake .join-hero{background:#fff;border-color:#dcebe3}.choir-intake .join-kicker,.choir-intake .join-total,.choir-intake .join-price-label{color:#00705a}.choir-intake .join-progress li[aria-current] span,.choir-intake .join-progress li.is-done span{background:#00705a;color:white}.choir-intake .application-state-label{background:#e7f5ee;color:#00634e}.join-rehearsals{list-style:none;margin:16px 0 0;padding:0}.join-rehearsals li{display:grid;grid-template-columns:1fr auto;gap:6px 14px;padding:16px 0;border-top:1px solid #e2ece6}.join-rehearsals li span:last-child{grid-column:1/-1;color:#53695e}@media(max-width:380px){.join-rehearsals li{grid-template-columns:1fr}.join-rehearsals li span:last-child{grid-column:auto}}

.choir-intake.joining{--join-blue:#00705a;--join-line:#dce8e3;--join-ink:#153e32;background:#f3f8f5}.choir-intake .join-progress li[aria-current=step]{color:#00705a}.choir-intake .join-event-facts svg{color:#00705a}

.choir-intake.apply-app .application-welcome{border-color:#cfdfd7}.choir-intake.apply-app .application-stage[data-state=confirmed]{background:#e4f4ec}.choir-intake.apply-app .application-stage[data-state=reserved]{background:#eff8f3}.choir-intake.apply-app .application-stage[data-state=pending] .application-state-label{background:#e7f5ee;color:#00634e}.choir-intake .identity-avatar,.choir-intake .event-date-icon{background:#e9f5ef;color:#00705a}.choir-intake .identity-part{color:#00705a}.choir-intake.apply-app .process-strip .is-complete>span{background:#e7f5ee;border-color:#b7d8c8;color:#00634e}.choir-intake .application-event-meta .season-period{font-size:15px;line-height:1.7}
