/* Session detail, application, and review share one accessible native dialog. */
#session-dialog { width:min(620px, calc(100vw - 32px)); max-height:90vh; max-height:90dvh; padding:44px; overscroll-behavior:contain; }
#session-dialog [hidden] { display:none !important; }
#session-dialog .close { display:grid; place-items:center; width:44px; height:44px; padding:0; top:12px; right:12px; line-height:1; border-radius:50%; }
#session-dialog .close:hover { background:var(--pink-soft); }
#session-dialog > .eyebrow { padding-right:28px; margin-bottom:20px; }
#dialog-title { font-size:32px; font-weight:700; letter-spacing:-.035em; line-height:1.3; padding-right:12px; }
#dialog-description { font-size:15px; line-height:1.9; margin:24px 0; }
#session-dialog .application-primary { width:100%; justify-content:space-between; min-height:56px; }
.application-secondary { display:block; width:100%; min-height:44px; margin-top:12px; padding:10px; border:0; border-radius:12px; background:transparent; color:var(--muted); font-size:14px; }
.application-secondary:hover { background:var(--pink-soft); color:var(--ink); }
.application-intro { margin:20px 0 8px; font-size:16px; line-height:1.7; color:var(--muted); }
.application-required { margin:0 0 24px; font-size:12px; color:var(--muted); }
.application-fields { display:grid; grid-template-columns:1fr 1fr; gap:24px 16px; }
.application-field { display:flex; flex-direction:column; gap:9px; font-size:14px; font-weight:600; min-width:0; }
.application-wide { grid-column:1 / -1; }
.application-field input { width:100%; min-width:0; min-height:52px; padding:13px 15px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--ink); font-size:16px; font-weight:400; }
.application-field input::placeholder { color:var(--muted); opacity:.85; }
.application-age { position:relative; }
.application-age input { padding-right:40px; }
.application-age > span { position:absolute; right:16px; top:13px; font-size:16px; font-weight:400; color:var(--muted); pointer-events:none; }
#session-application fieldset { min-width:0; padding:0; margin:0; border:0; }
#session-application legend { margin-bottom:10px; padding:0; font-size:14px; font-weight:600; }
#session-dialog .application-hint { margin:8px 0 0; color:var(--muted); font-size:12px; line-height:1.7; font-weight:400; }
#session-dialog #application-days-hint { margin:0 0 12px; }
.application-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:7px; }
.application-genders { display:grid; grid-template-columns:1fr 1fr 1.65fr; gap:8px; }
.application-choice { position:relative; min-width:0; cursor:pointer; }
.application-choice input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:inherit; }
.application-choice span { display:flex; align-items:center; justify-content:center; min-height:48px; padding:10px 4px; border:1px solid var(--line); border-radius:12px; background:var(--surface); font-size:14px; text-align:center; }
.application-choice input:checked + span { border-color:var(--pink-deep); background:var(--pink-soft); color:var(--pink-deep); font-weight:700; box-shadow:inset 0 0 0 1px var(--pink-deep); }
.application-choice input:checked + span::after { content:'✓'; margin-left:3px; font-size:11px; }
.application-choice input:disabled { cursor:not-allowed; }
.application-choice input:disabled + span { background:#f0eceb; color:#a69c9f; border-color:transparent; }
.application-field input:focus-visible,.application-choice input:focus-visible + span { outline:3px solid var(--pink-deep); outline-offset:3px; }
.application-field input[aria-invalid=true] { border-color:#a53343; }
.application-error { color:#a53343; font-size:14px; line-height:1.7; margin:20px 0 0; }
#session-dialog .application-preview-note { margin-top:28px; }
.application-step { margin:28px 0 8px; font-size:13px; color:var(--pink-deep); font-weight:600; }
#application-review-title { margin:0; font-size:22px; line-height:1.5; letter-spacing:-.03em; }
#application-summary div { grid-template-columns:100px minmax(0,1fr); gap:12px; font-size:14px; }
#application-summary dd { overflow-wrap:anywhere; }
@media (max-width:650px) {
  #session-dialog { padding:40px 22px 24px; border-radius:24px; }
  #dialog-title { font-size:28px; }
  #session-dialog > .eyebrow { font-size:10px; }
  .application-fields { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:22px 12px; }
  .application-days { gap:4px; }
  .application-choice span { font-size:13px; }
  .application-choice input:checked + span::after { margin-left:1px; font-size:9px; }
}
