/* (Full stylesheet with upload prompt styles) */
:root{
  --msdga-primary:#5B21B6; --msdga-primary-2:#7C3AED; --msdga-accent:#9333EA;
  --msdga-gradient:linear-gradient(90deg, var(--msdga-primary) 0%, var(--msdga-primary-2) 50%, var(--msdga-accent) 100%);
  --text-dark:#1F2937; --text-muted:#6B7280; --bg-page:#FFFFFF; --bg-card:#FFFFFF; --border:#E5E7EB; --chip:#EEF2FF; --shadow:0 8px 24px rgba(0,0,0,.08);
  --step-min:150px; --content-max:1120px; --sticky-top:0;
}
#family-intake-app{ padding:1rem 1.25rem; max-width:var(--content-max, 1120px); margin:0 auto; color:var(--text-dark); }
#family-intake-app *{ box-sizing:border-box }
#family-intake-app .hidden { display:none!important }
#family-intake-app .panel{ margin:1rem 0; padding:1rem 1.25rem; background:var(--bg-card); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow); scroll-margin-top: var(--msdga-sticky-offset, var(--sticky-top, 0px)); }
#family-intake-app .panel h2{ scroll-margin-top: var(--msdga-sticky-offset, var(--sticky-top, 0px)); }
#family-intake-app .row{ display:flex; flex-wrap:wrap; gap:12px; align-items:center }
#family-intake-app .muted{ color:var(--text-muted) }
#family-intake-app .chips{ display:flex; flex-wrap:wrap; gap:8px }
#family-intake-app .chips .chip{ display:inline-flex; align-items:center; gap:.35rem; background:var(--chip); color:var(--msdga-primary); border:1px solid #C7D2FE; padding:.25rem .6rem; border-radius:999px; font-weight:600 }
#family-intake-app .widget-header{ position:sticky; top:var(--msdga-sticky-offset, var(--sticky-top, 0px)); z-index:10010; background:rgba(255,255,255,.92); backdrop-filter:blur(3px); border-radius:14px; box-shadow:var(--shadow); padding:.6rem .75rem; margin-bottom:12px }
#family-intake-app .progress-steps{ background:var(--msdga-gradient); border-radius:14px; padding:.7rem; color:#fff; box-shadow:var(--shadow) }
#family-intake-app .steps{ display:grid; grid-template-columns:repeat(auto-fit, minmax(var(--step-min), 1fr)); gap:8px; align-items:stretch } /* stretch to unify heights */
#family-intake-app .step-link{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  width:100%;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.14); color:#fff;
  padding:.5rem .8rem; border-radius:999px; user-select:none; font-weight:700;
  min-height:40px; height:40px; line-height:1; /* consistent pill height */
  cursor:pointer; white-space:nowrap; /* prevent label wrapping */
}
#family-intake-app .step-link .label{ white-space:nowrap; } /* ensure single-line label */
#family-intake-app .step-link.active{ background:#fff; color:var(--msdga-primary); border-color:#fff }
#family-intake-app .mark{ display:inline-flex; align-items:center; justify-content:center; width:22px; min-width:22px; height:22px; border-radius:50%; border:2px solid currentColor; font-size:12px; font-weight:800; line-height:1; }
#family-intake-app .mark::before{ content:attr(data-step-num) }
#family-intake-app .progress-wrapper{ width:100%; height:10px; border-radius:20px; background:#E5E7EB; overflow:hidden; margin:8px 0 2px; box-shadow:inset 0 0 4px rgba(0,0,0,.08) }
#family-intake-app .progress-bar{ height:100%; width:0; background:var(--msdga-gradient); transition:width .45s ease }
#family-intake-app .btn{ background:var(--msdga-primary); color:#fff; border:1px solid transparent; border-radius:12px; padding:.55rem .9rem; font-weight:700; line-height:1.1; letter-spacing:.2px; box-shadow:0 1px 2px rgba(0,0,0,.08); cursor:pointer; text-transform:none; margin:0 }
#family-intake-app .btn:hover{ filter:brightness(.98) }
/* FIXED: .btn[disabled] selector */
#family-intake-app .btn[disabled]{ opacity:.55; pointer-events:none }
#family-intake-app .btn.secondary{ background:#fff; color:var(--msdga-primary); border-color:var(--msdga-primary) }
#family-intake-app .btn.ghost{ background:#fff; color:var(--msdga-primary); border-color:#E5E7EB }
#family-intake-app .btn.small{ padding:.35rem .6rem; font-size:.92rem }
#family-intake-app .btn.btn-cat, #family-intake-app .btn.role, #family-intake-app .btn.gtype, #family-intake-app .btn.role-inline, #family-intake-app .btn.gtype-inline{ background:#fff; color:var(--msdga-primary); border-color:var(--msdga-primary) }
#family-intake-app.js-wizard .panel[data-step]{ opacity:0; visibility:hidden; height:0; overflow:hidden; transform:translateY(6px); transition:opacity .28s ease, transform .28s ease }
#family-intake-app.js-wizard .panel[data-step].active{ opacity:1; visibility:visible; height:auto; overflow:visible; transform:translateY(0) }
#family-intake-app h2{ margin:.25rem 0 .5rem 0; font-size:1.35rem; line-height:1.25 }
#family-intake-app .breadcrumb{ font-size:.95rem; color:#334155; margin:.35rem 0 .75rem }
#family-intake-app .tag{ display:inline-block; background:#fff; border:1px solid var(--border); border-radius:999px; padding:.2rem .6rem; font-weight:700; color:var(--msdga-primary) }
#family-intake-app .modal-backdrop{ position:fixed; inset:0; background:rgba(17,24,39,.55); display:none; align-items:center; justify-content:center; z-index:2147483647 }
#family-intake-app .modal-backdrop[aria-hidden="true"]{ display:none!important }
#family-intake-app .modal{ width:96vw; max-width:980px; height:85vh; max-height:96vh; background:#fff; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,.3); overflow:hidden; display:flex; flex-direction:column; z-index:2147483646 }
#family-intake-app .modal-header{ display:flex; align-items:center; justify-content:space-between; padding:.6rem .9rem; border-bottom:1px solid #E5E7EB }
#family-intake-app .modal-title{ font-weight:800; color:var(--msdga-primary) }
#family-intake-app .modal-body{ flex:1 }
#family-intake-app .modal iframe{ width:100%; height:100%; border:0 }
#family-intake-app .modal-actions{ padding:.6rem .9rem; border-top:1px solid #E5E7EB; display:flex; justify-content:space-between; align-items:center; gap:8px }
#family-intake-app .modal-hint{ color:#374151; font-size:.92rem }
body.msdga-modal-open .elementor-sticky--effects{ transform:none!important }
/* Upload prompt */
#family-intake-app .upload-prompt { padding:.75rem .9rem }
#family-intake-app .upload-prompt .row { margin-top:.25rem }
#family-intake-app .upload-prompt .muted { color: var(--text-muted) }
#family-intake-app .upload-prompt #btn-open-upload-link { background:#fff; color:var(--msdga-primary); border-color:var(--msdga-primary) }
#family-intake-app .upload-prompt #btn-confirm-uploaded { background:#059669; border-color:#059669 }
#family-intake-app .upload-prompt #btn-skip-upload { background:#fff; color:#92400E; border-color:#F59E0B }
#family-intake-app .msdga-intro-note {
  background: #F9FAFB;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  margin-top: .75rem;
}

#family-intake-app .msdga-intro-note p {
  margin: 0 0 .6rem 0;
}

#family-intake-app .msdga-doc-list {
  margin: .25rem 0 0 1.25rem;
}

#family-intake-app .msdga-doc-list li {
  margin: .3rem 0;
}

#family-intake-app .msdga-definitions {
  background: #EEF2FF;
  border-left: 4px solid var(--msdga-primary);
  padding: .75rem 1rem;
  border-radius: 10px;
  margin-bottom: .75rem;
}

#family-intake-app .msdga-definitions p {
  margin: 0 0 .35rem 0;
  font-size: .95rem;
}

#family-intake-app .msdga-definitions ul {
  margin: .25rem 0 0 1.25rem;
  font-size: .92rem;
}
/* Seat-first builder controls (Step 5) */
#family-intake-app .seat-controls{ display:flex; gap:12px; align-items:flex-start; margin-top:.5rem; }
#family-intake-app .seat-controls .seat-column{ flex:1 1 0; min-width:260px; background:#fff; border:1px solid var(--border);
  border-radius:12px; padding:.6rem .75rem; box-shadow:var(--shadow);
}
#family-intake-app #seat-addnew-guardian { display:none; }
#family-intake-app #seat-secondary-blocker { color:#92400E; }
/* Responsive */
@media (max-width:1024px){
  #family-intake-app .steps{ display:flex; gap:8px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:6px; scroll-snap-type:x mandatory }
  #family-intake-app .step-link{ flex:0 0 auto; min-width:170px; scroll-snap-align:start }
}
@media (max-width:840px){
  #family-intake-app .step-link{ min-width:150px; font-size:14px; height:36px; min-height:36px; } /* keep flat pills */
  #family-intake-app .progress-wrapper{ height:8px }
}
@media (max-width:640px){
  #family-intake-app{ padding:.75rem }
  #family-intake-app .step-link{ min-width:132px; font-size:13px; height:34px; min-height:34px; }
  #family-intake-app .progress-wrapper{ height:6px }
  #family-intake-app .panel{ padding:.9rem 1rem }
}
@media (max-width:840px){
  #family-intake-app .widget-header{ padding:.5rem .6rem }
  #family-intake-app .progress-steps{ padding:.5rem; border-radius:12px }
  #family-intake-app .steps{ display:flex; gap:6px; overflow-x:auto; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; align-items:center }
  #family-intake-app .step-link{ flex:0 0 auto; width:auto; min-width:unset; padding:.25rem .55rem; border-radius:999px; background:rgba(255,255,255,.92); color:var(--msdga-primary); border:1px solid rgba(255,255,255,.85); font-weight:700; font-size:13px; line-height:1; scroll-snap-align:start }
  #family-intake-app .step-link .mark{ width:22px; height:22px; min-width:22px; border-radius:50%; border:2px solid currentColor; display:inline-flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; background:transparent }
  #family-intake-app .step-link .label{ display:none; white-space:nowrap }
  #family-intake-app .step-link.active .label{ display:inline-block; margin-left:.35rem }
  #family-intake-app .step-link.active{ background:#fff; color:var(--msdga-primary); border-color:#fff }
  #family-intake-app .step-link.active .mark, #family-intake-app .step-link.done .mark{ background:var(--msdga-primary); color:#fff; border-color:var(--msdga-primary) }
  #family-intake-app .step-link:hover{ filter:brightness(.98) }
  #family-intake-app .step-link:focus-visible{ outline:2px solid #fff; outline-offset:2px }
  #family-intake-app .progress-wrapper{ height:6px }
}
@media (max-width:360px){
  #family-intake-app .step-link{ padding:.2rem .45rem; font-size:12px; height:32px; min-height:32px; }
  #family-intake-app .step-link .mark{ width:20px; height:20px; min-width:20px; font-size:11px }
}
/* Stack columns on small screens */
@media (max-width:840px){
  #family-intake-app .seat-controls{ flex-direction:column; }
}