/* Frontline Hostel Registration — step-by-step look (2.41.0).
   Everything is scoped under #fhr-wrap.fhrw-on, so if the wizard script does
   not run, none of this applies and the classic form looks as before. */

#fhr-wrap.fhrw-on { --fw-navy:#0f2a4a; --fw-gold:#f4b400; --fw-line:#e3e6ea; --fw-ink:#1d2327; --fw-mute:#667085; max-width:640px; }
#fhr-wrap.fhrw-on .fhrw-off,
#fhr-wrap.fhrw-on .fhrw-hide,
#fhr-wrap.fhrw-on #fhr-rescode-box.fhrw-folded { display:none !important; }
#fhr-wrap.fhrw-on > .fhr-title { display:none; }

/* Header */
#fhr-wrap .fhrw-head { background:var(--fw-navy); color:#fff; border-radius:16px; padding:16px 18px 12px; margin:0 0 14px; }
#fhr-wrap .fhrw-kicker { font-size:12px; opacity:.75; }
#fhr-wrap .fhrw-title { font-size:21px; font-weight:800; margin:2px 0 10px; line-height:1.25; color:#fff; }
#fhr-wrap .fhrw-bar { height:6px; background:rgba(255,255,255,.2); border-radius:4px; overflow:hidden; }
#fhr-wrap .fhrw-bar i { display:block; height:6px; background:var(--fw-gold); border-radius:4px; transition:width .3s; }
#fhr-wrap .fhrw-steps { display:flex; justify-content:space-between; list-style:none; margin:8px 0 0; padding:0; gap:4px; }
#fhr-wrap .fhrw-steps li { font-size:11px; opacity:.7; margin:0; padding:0; color:#fff; }
#fhr-wrap .fhrw-steps li.on { opacity:1; color:var(--fw-gold); font-weight:700; }
#fhr-wrap .fhrw-steps li.done { opacity:.95; cursor:pointer; }
#fhr-wrap .fhrw-steps li.done:after { content:" \2713"; }
#fhr-wrap .fhrw-reslink { text-align:center; font-size:13px; color:#cfd6e0; margin:12px 0 0; }
#fhr-wrap .fhrw-reslink a { color:var(--fw-gold); font-weight:700; }

/* Sections become clean white cards */
#fhr-wrap.fhrw-on .fhr-section { min-width:0; max-width:100%; box-sizing:border-box; background:#fff; border:1px solid var(--fw-line); border-radius:16px; padding:18px 16px; margin:0 0 12px; box-shadow:0 1px 3px rgba(16,24,40,.06); color:var(--fw-ink); }
#fhr-wrap.fhrw-on .fhr-section legend { background:none; color:var(--fw-navy); font-size:17px; font-weight:800; letter-spacing:0; text-transform:none; padding:0; border:0; box-shadow:none; float:left; width:100%; margin:0 0 10px; border-radius:0; }
#fhr-wrap.fhrw-on .fhr-section legend + * { clear:both; }
#fhr-wrap.fhrw-on .fhr-section label { color:#344054; font-weight:600; }
#fhr-wrap.fhrw-on .fhr-section input[type=text], #fhr-wrap.fhrw-on .fhr-section input[type=email],
#fhr-wrap.fhrw-on .fhr-section input[type=tel], #fhr-wrap.fhrw-on .fhr-section input[type=date],
#fhr-wrap.fhrw-on .fhr-section input[type=number], #fhr-wrap.fhrw-on .fhr-section select,
#fhr-wrap.fhrw-on .fhr-section textarea { border:1.5px solid #d0d5dd; border-radius:10px; min-height:46px; font-size:16px; background:#fff; color:var(--fw-ink); box-sizing:border-box; }
#fhr-wrap.fhrw-on .fhr-section input:focus, #fhr-wrap.fhrw-on .fhr-section select:focus { border-color:var(--fw-navy); outline:none; box-shadow:0 0 0 3px rgba(15,42,74,.15); }
#fhr-wrap.fhrw-on .fhrw-bad { border-color:#d92d20 !important; box-shadow:0 0 0 3px rgba(217,45,32,.15) !important; border-radius:10px; }

/* Hostel / block chips */
#fhr-wrap .fhrw-chips { display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 6px; }
#fhr-wrap .fhrw-chip { padding:10px 16px; border-radius:22px; background:#fff; border:1.5px solid #d0d5dd; color:var(--fw-ink); font-size:14px; font-weight:600; cursor:pointer; line-height:1.2; }
#fhr-wrap .fhrw-chip.on { background:var(--fw-navy); border-color:var(--fw-navy); color:#fff; }
#fhr-wrap .fhrw-chip:disabled { opacity:.45; cursor:not-allowed; }

/* Room-type cards */
#fhr-wrap .fhrw-cards { display:grid; gap:10px; margin:6px 0; }
#fhr-wrap .fhrw-card { display:flex; gap:12px; align-items:center; text-align:left; width:100%; background:#fff; border:2px solid var(--fw-line); border-radius:14px; padding:12px; cursor:pointer; color:var(--fw-ink); font:inherit; }
#fhr-wrap .fhrw-card.on { border-color:var(--fw-navy); box-shadow:0 2px 12px rgba(15,42,74,.15); }
#fhr-wrap .fhrw-card:disabled { opacity:.45; }
#fhr-wrap .fhrw-ic { flex:none; width:56px; height:56px; border-radius:12px; background:linear-gradient(135deg,#1d4e89,#0f2a4a); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:13px; text-align:center; line-height:1.1; padding:2px; box-sizing:border-box; }
#fhr-wrap .fhrw-ct { display:flex; flex-direction:column; gap:3px; min-width:0; }
#fhr-wrap .fhrw-cn { font-weight:700; font-size:15px; }
#fhr-wrap .fhrw-cp { font-weight:800; color:var(--fw-navy); font-size:16px; }
#fhr-wrap .fhrw-few { display:inline-block; margin-left:6px; font-size:11px; font-weight:700; background:#fdecea; color:#c62828; padding:1px 8px; border-radius:9px; vertical-align:middle; }

/* Programme search */
#fhr-wrap .fhrw-search { position:relative; }
#fhr-wrap .fhrw-search-list { position:absolute; left:0; right:0; top:100%; z-index:50; background:#fff; border:1px solid #d0d5dd; border-radius:12px; margin-top:4px; box-shadow:0 8px 24px rgba(16,24,40,.15); max-height:320px; overflow:auto; }
#fhr-wrap .fhrw-search-list button { display:block; width:100%; text-align:left; background:none; border:0; border-bottom:1px solid #f2f4f7; padding:11px 14px; font-size:14px; color:var(--fw-ink); cursor:pointer; }
#fhr-wrap .fhrw-search-list button:hover { background:#f5f8ff; }
#fhr-wrap .fhrw-search-list .fhrw-other { color:#1d4e89; font-weight:600; }
#fhr-wrap .fhrw-none { padding:10px 14px; font-size:13px; color:var(--fw-mute); }

/* Review summary */
#fhr-wrap .fhrw-summary { background:#fff; border:1px solid var(--fw-line); border-radius:16px; padding:8px 16px; margin:0 0 12px; color:var(--fw-ink); }
#fhr-wrap .fhrw-sum-h { font-weight:800; color:var(--fw-navy); font-size:16px; padding:8px 0; }
#fhr-wrap .fhrw-row { display:flex; gap:10px; align-items:baseline; padding:9px 0; border-top:1px solid #f2f4f7; font-size:14px; }
#fhr-wrap .fhrw-row span { color:var(--fw-mute); flex:none; width:96px; }
#fhr-wrap .fhrw-row b { flex:1; text-align:right; word-break:break-word; }
#fhr-wrap .fhrw-edit { color:#2271b1; font-size:12px; font-weight:700; text-decoration:none; flex:none; }

/* Errors, saved note, footer */
#fhr-wrap .fhrw-err { background:#fef3f2; border:1px solid #fecdca; color:#b42318; border-radius:12px; padding:11px 14px; margin:0 0 10px; font-weight:600; font-size:14px; }
#fhr-wrap .fhrw-saved { text-align:center; font-size:12px; color:#9be3b5; margin:4px 0 8px; }
#fhr-wrap .fhrw-saved a { color:#cfd6e0; }
#fhr-wrap .fhrw-foot { position:sticky; bottom:0; z-index:40; display:flex; gap:10px; align-items:center; background:#fff; border:1px solid var(--fw-line); border-radius:16px 16px 0 0; padding:10px 12px; box-shadow:0 -4px 16px rgba(16,24,40,.12); margin-top:8px; }
#fhr-wrap .fhrw-foot button { border:0; border-radius:12px; font-weight:700; font-size:15px; cursor:pointer; min-height:48px; }
#fhr-wrap .fhrw-back { background:#eef0f4; color:#344054; width:48px; flex:none; }
#fhr-wrap .fhrw-next { background:var(--fw-navy); color:#fff; padding:0 22px; flex:none; }
#fhr-wrap .fhrw-sum { flex:1; min-width:0; font-size:11px; color:var(--fw-mute); line-height:1.3; }
#fhr-wrap .fhrw-sum b { display:block; font-size:14px; color:var(--fw-navy); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#fhr-wrap.fhrw-on .fhr-submit-wrap { margin:0; }
#fhr-wrap.fhrw-on #fhr-submit { width:100%; min-height:52px; border-radius:12px; background:#1b7f3b; border:0; color:#fff; font-size:16px; font-weight:800; }
#fhr-wrap.fhrw-on #fhr-submit:disabled { opacity:.7; }
#fhr-wrap .fhrw-backlast { display:block; margin:10px auto 0; background:none; border:0; color:#cfd6e0; font-weight:700; font-size:15px; cursor:pointer; padding:10px 16px; }

@media (max-width:480px) {
  #fhr-wrap .fhrw-steps li { font-size:9.5px; }
  #fhr-wrap .fhrw-title { font-size:19px; }
  #fhr-wrap.fhrw-on .fhr-section { padding:16px 13px; }
}

/* 2.41.1 — nothing may be wider than the phone screen. A <fieldset> grows to
   fit its widest child by default ("min-content"), which pushed the floor-plan
   text and colour key off the right edge on iPhone and Samsung. */
#fhr-wrap.fhrw-on { box-sizing:border-box; width:100%; overflow-wrap:anywhere; }
#fhr-wrap.fhrw-on fieldset { min-width:0 !important; }
#fhr-wrap.fhrw-on .fhr-section > *, #fhr-wrap.fhrw-on #fhr-floor-map-wrap, #fhr-wrap.fhrw-on #fhr-floor-map-wrap * { max-width:100%; box-sizing:border-box; }
#fhr-wrap.fhrw-on img, #fhr-wrap.fhrw-on canvas { max-width:100%; }
@media (max-width:600px) {
  /* Leave room for a floating chat bubble in the bottom-right corner. */
  #fhr-wrap .fhrw-foot { padding-right:74px; }
}
#fhr-wrap.fhrw-on .fhr-legend-label { white-space:normal; }
#fhr-wrap.fhrw-on .fhr-map-legend { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
@media (max-width:420px) { #fhr-wrap.fhrw-on .fhr-map-legend { grid-template-columns:minmax(0,1fr); } }

#fhr-wrap .fhrw-hint { font-size:12px; color:#667085; margin:6px 0 0; }
#fhr-wrap.fhrw-on .fhrw-gender { margin-bottom:14px; padding-bottom:12px; border-bottom:1px dashed #e3e6ea; }
#fhr-wrap .fhrw-steps li.done { text-decoration:underline; text-underline-offset:3px; }
