/*
 * Valve Gestionale 1.9.4 — Area Famiglie coerente con Area Società
 * Margini uniformi, icone vettoriali, tipografia e componenti condivisi.
 */
:root{
  --vc-page:#f2f3f4;
  --vc-card:#ffffff;
  --vc-text:#1f2924;
  --vc-muted:#64736b;
  --vc-line:#dfe6e2;
  --vc-green:#0b7d4b;
  --vc-green-dark:#06633b;
  --vc-green-soft:#edf8f2;
  --vc-red:#d93643;
  --vc-red-soft:#fff0f2;
  --vc-orange:#e88b00;
  --vc-orange-soft:#fff5e7;
  --vc-radius-xl:24px;
  --vc-radius-lg:18px;
  --vc-radius-md:13px;
  --vc-shadow:0 10px 28px rgba(27,51,39,.07);
  --vc-stage-max:1660px;
}

/* Lo stage Famiglie usa esattamente la stessa geometria dello stage Società. */
body.vfa-standalone-app .vfa-app-stage,
body.vsg-standalone-app .vsg-app-stage{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:28px 24px 64px!important;
  box-sizing:border-box!important;
}
body.vfa-standalone-app .vfa-app-content,
body.vsg-standalone-app .vsg-wrap,
body.vsg-standalone-app .vsg-main{
  width:100%!important;
  max-width:var(--vc-stage-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  box-sizing:border-box!important;
}
body.vfa-standalone-app .vfa-app-content :is(
  .vds-family-top,.vds-quick-nav,.vfa-overview,.vfa-athlete-switcher,
  .vrr-wrap,.vds-wrap,.valve-wrap,.vsg-family-messages
){
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
  box-sizing:border-box!important;
}
body.vfa-standalone-app .vfa-app-content > :first-child{margin-top:0!important}

/* Hero famiglia identico per proporzioni, colori e peso al hero società. */
body.vfa-standalone-app .vds-family-top{
  display:grid!important;
  grid-template-columns:112px minmax(0,1fr) 120px!important;
  align-items:center!important;
  gap:26px!important;
  min-height:180px!important;
  padding:24px 34px 48px!important;
  border:0!important;
  border-radius:26px!important;
  background:linear-gradient(112deg,#087043 0%,#15905a 64%,#4aad78 100%)!important;
  box-shadow:0 16px 38px rgba(7,88,51,.15)!important;
  overflow:hidden!important;
}
body.vfa-standalone-app .vds-family-top:before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  right:-10px!important;
  top:-118px!important;
  width:330px!important;
  height:330px!important;
  border:34px solid rgba(255,255,255,.05)!important;
  background:none!important;
  clip-path:polygon(50% 0,62% 36%,100% 38%,70% 60%,80% 100%,50% 77%,20% 100%,30% 60%,0 38%,38% 36%)!important;
  pointer-events:none!important;
}
body.vfa-standalone-app .vds-family-brand,
body.vfa-standalone-app .vds-family-copy,
body.vfa-standalone-app .vds-logout{position:relative!important;z-index:2!important}
body.vfa-standalone-app .vds-family-brand img{width:104px!important;height:104px!important;object-fit:contain!important}
body.vfa-standalone-app .vds-family-copy>span{
  margin:0 0 6px!important;
  padding:0!important;
  background:none!important;
  color:rgba(255,255,255,.9)!important;
  font-size:12px!important;
  font-weight:600!important;
  letter-spacing:.12em!important;
}
body.vfa-standalone-app .vds-family-copy h2{
  margin:0 0 9px!important;
  color:#fff!important;
  font-size:clamp(36px,3.2vw,50px)!important;
  line-height:1.04!important;
  letter-spacing:-.04em!important;
  font-weight:700!important;
}
body.vfa-standalone-app .vds-family-copy h2 .vds-wave{font-size:.75em!important}
body.vfa-standalone-app .vds-family-copy p{
  margin:0!important;
  max-width:820px!important;
  color:rgba(255,255,255,.88)!important;
  font-size:14px!important;
  line-height:1.5!important;
}
body.vfa-standalone-app .vds-logout{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  justify-self:end!important;
  min-width:104px!important;
  min-height:46px!important;
  padding:0 17px!important;
  border:0!important;
  border-radius:13px!important;
  background:#fff!important;
  color:var(--vc-green)!important;
  box-shadow:0 8px 20px rgba(0,0,0,.09)!important;
  font-size:12px!important;
  font-weight:600!important;
  text-decoration:none!important;
}
body.vfa-standalone-app .vds-logout svg{width:18px!important;height:18px!important}

/* Barra menu Famiglie identica al sistema della Società. */
body.vfa-standalone-app .vds-quick-nav{
  position:relative!important;
  z-index:5!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:6px!important;
  min-height:68px!important;
  margin:-27px 30px 26px!important;
  padding:7px!important;
  border:1px solid var(--vc-line)!important;
  border-radius:19px!important;
  background:#fff!important;
  box-shadow:0 12px 30px rgba(18,52,36,.10)!important;
  overflow:hidden!important;
}
body.vfa-standalone-app .vds-quick-nav a{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  min-height:52px!important;
  padding:9px 14px!important;
  border:0!important;
  border-radius:13px!important;
  background:transparent!important;
  color:#536159!important;
  font-size:13px!important;
  font-weight:600!important;
  line-height:1.2!important;
  text-decoration:none!important;
  white-space:nowrap!important;
}
body.vfa-standalone-app .vds-quick-nav a:is(:hover,.is-active){background:var(--vc-green-soft)!important;color:var(--vc-green)!important}
body.vfa-standalone-app .vds-quick-nav svg{width:21px!important;height:21px!important;flex:0 0 21px!important}

/* Riepilogo: niente testi sovrapposti; stessa grammatica delle card società. */
body.vfa-standalone-app .vfa-overview{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  margin:0 0 24px!important;
}
body.vfa-standalone-app .vfa-overview-card{
  position:relative!important;
  display:grid!important;
  grid-template-columns:56px minmax(0,1fr)!important;
  grid-template-areas:"icon copy" "status status"!important;
  align-items:center!important;
  gap:8px 14px!important;
  min-height:142px!important;
  padding:18px!important;
  border:1px solid var(--vc-line)!important;
  border-radius:var(--vc-radius-lg)!important;
  background:#fff!important;
  box-shadow:var(--vc-shadow)!important;
  overflow:hidden!important;
}
body.vfa-standalone-app .vfa-overview-icon{
  grid-area:icon!important;
  display:grid!important;
  place-items:center!important;
  width:54px!important;
  height:54px!important;
  border-radius:17px!important;
  background:var(--vc-green-soft)!important;
  color:var(--vc-green)!important;
}
body.vfa-standalone-app .vfa-overview-icon svg{width:25px!important;height:25px!important}
body.vfa-standalone-app .vfa-overview-copy{
  grid-area:copy!important;
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
}
body.vfa-standalone-app .vfa-overview-copy>span{
  color:#526159!important;
  font-size:12px!important;
  font-weight:600!important;
  line-height:1.35!important;
}
body.vfa-standalone-app .vfa-overview-copy>strong{
  order:2!important;
  margin-top:5px!important;
  color:var(--vc-green)!important;
  font-size:30px!important;
  line-height:1!important;
  font-weight:700!important;
}
body.vfa-standalone-app .vfa-overview-copy>small,
body.vfa-standalone-app .vfa-overview-copy .vui-status-detail{
  order:3!important;
  display:block!important;
  margin-top:6px!important;
  color:var(--vc-muted)!important;
  font-size:11px!important;
  line-height:1.4!important;
}
body.vfa-standalone-app .vfa-overview-status{
  grid-area:status!important;
  justify-self:start!important;
  display:inline-flex!important;
  align-items:center!important;
  min-height:28px!important;
  margin-top:4px!important;
  padding:5px 11px!important;
  border-radius:999px!important;
  background:var(--vc-green-soft)!important;
  color:var(--vc-green)!important;
  font-size:10.5px!important;
  font-weight:600!important;
  line-height:1!important;
  white-space:nowrap!important;
}
body.vfa-standalone-app .vfa-overview-card.is-incomplete{border-color:#f2d3d6!important}
body.vfa-standalone-app .vfa-overview-card.is-incomplete .vfa-overview-icon,
body.vfa-standalone-app .vfa-overview-card.is-incomplete .vfa-overview-status{background:var(--vc-red-soft)!important;color:var(--vc-red)!important}
body.vfa-standalone-app .vfa-overview-card.is-incomplete .vfa-overview-copy>strong{color:var(--vc-red)!important}

/* Testate di pagina e delle schede: stesso peso e stessa iconografia della Società. */
body.vfa-standalone-app .vrr-title,
body.vfa-standalone-app .vds-section-title,
body.vfa-standalone-app .vds-athlete-title,
body.vfa-standalone-app .valve-head{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:space-between!important;
  gap:16px!important;
  margin:24px 0 15px!important;
  padding:0!important;
  background:transparent!important;
  color:var(--vc-text)!important;
}
body.vfa-standalone-app .vrr-title>div>span,
body.vfa-standalone-app .vds-section-title span,
body.vfa-standalone-app .vds-athlete-title span,
body.vfa-standalone-app .valve-head span{
  color:var(--vc-green)!important;
  font-size:10.5px!important;
  font-weight:600!important;
  letter-spacing:.12em!important;
}
body.vfa-standalone-app .vrr-title h2,
body.vfa-standalone-app .vds-section-title h2,
body.vfa-standalone-app .vds-section-title h3,
body.vfa-standalone-app .vds-athlete-title h2,
body.vfa-standalone-app .valve-head h2{
  display:flex!important;
  align-items:center!important;
  gap:11px!important;
  margin:5px 0 0!important;
  padding:0!important;
  background:none!important;
  color:var(--vc-text)!important;
  font-size:28px!important;
  line-height:1.15!important;
  letter-spacing:-.025em!important;
  font-weight:700!important;
  text-shadow:none!important;
}
body.vfa-standalone-app .vrr-title h2 svg,
body.vfa-standalone-app .vds-section-title h3 svg{width:24px!important;height:24px!important;color:var(--vc-green)!important;flex:0 0 24px!important}
body.vfa-standalone-app :is(.vrr-title p,.vds-section-title p,.vds-athlete-title p,.valve-head p){color:var(--vc-muted)!important;font-size:12px!important;line-height:1.5!important}

/* Card atleta e struttura a tre colonne. */
body.vfa-standalone-app .vrr-card,
body.vfa-standalone-app .vds-card,
body.vfa-standalone-app .valve-box,
body.vfa-standalone-app .vfa-photo-family-card,
body.vfa-standalone-app .vfa-privacy-family-section{
  padding:22px!important;
  border:1px solid var(--vc-line)!important;
  border-radius:var(--vc-radius-xl)!important;
  background:#fff!important;
  box-shadow:var(--vc-shadow)!important;
}
body.vfa-standalone-app .vrr-athlete-header{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  margin:0 0 18px!important;
  padding:16px 18px!important;
  border:1px solid #dbe8e0!important;
  border-radius:17px!important;
  background:#f8fbf9!important;
}
body.vfa-standalone-app .vrr-athlete-header span{color:var(--vc-green)!important;font-size:10px!important;font-weight:600!important;letter-spacing:.12em!important}
body.vfa-standalone-app .vrr-athlete-header h3{margin:4px 0 0!important;color:var(--vc-text)!important;font-size:24px!important;line-height:1.15!important;font-weight:700!important}
body.vfa-standalone-app .vfa-family-main-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1.05fr) minmax(0,1.08fr)!important;
  gap:0!important;
  align-items:start!important;
}
body.vfa-standalone-app .vfa-family-column{min-width:0!important;padding:2px 24px 0!important}
body.vfa-standalone-app .vfa-family-column:first-child{padding-left:0!important}
body.vfa-standalone-app .vfa-family-column:last-child{padding-right:0!important}
body.vfa-standalone-app .vfa-family-column+.vfa-family-column{border-left:1px solid var(--vc-line)!important}

/* Titoli interni: niente emoji colorate, icona SVG coerente. */
body.vfa-standalone-app .vfa-standard-section-head{
  display:block!important;
  margin:0 0 13px!important;
  padding:0!important;
  background:transparent!important;
}
body.vfa-standalone-app .vfa-standard-section-head .vfa-standard-kicker{display:none!important}
body.vfa-standalone-app .vfa-standard-section-head h4{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  margin:0!important;
  color:var(--vc-text)!important;
  font-size:18px!important;
  line-height:1.25!important;
  font-weight:600!important;
  letter-spacing:-.015em!important;
}
body.vfa-standalone-app .vfa-standard-emoji{
  display:grid!important;
  place-items:center!important;
  width:38px!important;
  height:38px!important;
  flex:0 0 38px!important;
  border-radius:12px!important;
  background:var(--vc-green-soft)!important;
  color:var(--vc-green)!important;
  font-size:0!important;
}
body.vfa-standalone-app .vfa-standard-emoji svg{width:20px!important;height:20px!important}

/* Riepiloghi, pagamenti e abbigliamento. */
body.vfa-standalone-app .vrr-summary-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:0!important;
  overflow:hidden!important;
  border:1px solid var(--vc-line)!important;
  border-radius:14px!important;
  background:#fff!important;
}
body.vfa-standalone-app .vrr-summary-grid>div{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  min-height:47px!important;
  padding:11px 13px!important;
  border:0!important;
  border-bottom:1px solid var(--vc-line)!important;
  background:#fff!important;
}
body.vfa-standalone-app .vrr-summary-grid>div:last-child{border-bottom:0!important;background:#f7fbf8!important}
body.vfa-standalone-app .vrr-summary-grid span{color:#536159!important;font-size:11px!important;font-weight:600!important}
body.vfa-standalone-app .vrr-summary-grid strong{color:var(--vc-text)!important;font-size:12px!important;font-weight:600!important;text-align:right!important}
body.vfa-standalone-app .vrr-summary-grid>div:last-child strong{color:var(--vc-green)!important;font-size:18px!important}
body.vfa-standalone-app .vrr-payment-list,
body.vfa-standalone-app .vrr-family-clothing{
  overflow:hidden!important;
  border:1px solid var(--vc-line)!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:none!important;
}
body.vfa-standalone-app .vrr-payment-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:10px 13px!important;
  align-items:center!important;
  padding:14px!important;
  border:0!important;
  border-bottom:1px solid var(--vc-line)!important;
  background:#fff!important;
}
body.vfa-standalone-app .vrr-payment-row:last-child{border-bottom:0!important}
body.vfa-standalone-app .vrr-payment-row strong{color:var(--vc-text)!important;font-size:12.5px!important;line-height:1.4!important}
body.vfa-standalone-app .vrr-payment-row small{display:block!important;margin-top:4px!important;color:var(--vc-muted)!important;font-size:10.5px!important;line-height:1.4!important}
body.vfa-standalone-app .vrr-payment-row .vrr-actions,
body.vfa-standalone-app .vrr-payment-row>form{grid-column:1/-1!important;display:flex!important;gap:8px!important;flex-wrap:wrap!important}
body.vfa-standalone-app .vrr-family-clothing{padding:14px!important}
body.vfa-standalone-app .vrr-family-clothing-head{margin-bottom:10px!important}
body.vfa-standalone-app .vrr-family-clothing-item{
  min-height:56px!important;
  padding:10px 12px!important;
  border:1px solid var(--vc-line)!important;
  border-radius:12px!important;
  background:#fff!important;
}

/* Visite, documenti, fototessera e moduli: stesso sistema di card e controlli. */
body.vfa-standalone-app :is(.vds-athlete-panel,.vds-medical-card,.vds-documents-card,.vds-check-row,.vrr-step,.vrr-choice-card,.vrr-conditional-box,.vrr-profile-section,.vrr-fee-preview,.vrr-items label,.valve-doc-row){
  border:1px solid var(--vc-line)!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:none!important;
}
body.vfa-standalone-app .vds-check-row{padding:14px!important}
body.vfa-standalone-app .vds-check-main strong{color:var(--vc-text)!important;font-size:12px!important}
body.vfa-standalone-app :is(.vds-check-main small,.vds-medical-copy p,.vds-upload-details small,.vrr-muted,.vrr-choice-card small){color:var(--vc-muted)!important;font-size:11px!important;line-height:1.45!important}
body.vfa-standalone-app .vrr-step{margin:12px 0!important;overflow:hidden!important}
body.vfa-standalone-app .vrr-step>summary{
  min-height:54px!important;
  padding:14px 17px!important;
  background:#f8faf9!important;
  color:var(--vc-text)!important;
  font-size:13px!important;
  font-weight:600!important;
}
body.vfa-standalone-app .vrr-step[open]>summary{border-bottom:1px solid var(--vc-line)!important}
body.vfa-standalone-app :is(input[type=text],input[type=email],input[type=tel],input[type=date],input[type=number],select,textarea){
  min-height:46px!important;
  padding:10px 12px!important;
  border:1px solid #dbe3df!important;
  border-radius:12px!important;
  background:#fff!important;
  color:var(--vc-text)!important;
  font-family:"Poppins",sans-serif!important;
  font-size:12.5px!important;
  font-weight:400!important;
  box-shadow:none!important;
}
body.vfa-standalone-app textarea{min-height:110px!important}
body.vfa-standalone-app :is(.vrr-form-grid label>span,.valve-form-grid label>span,.vds-upload-form label>span){color:#4f5d56!important;font-size:11.5px!important;font-weight:600!important}

/* Badge e pulsanti condividono forma, peso e colori dell'Area Società. */
body.vfa-standalone-app :is(.vrr-badge,.vds-badge,.valve-status){
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:27px!important;
  padding:5px 10px!important;
  border-radius:999px!important;
  font-size:10px!important;
  font-weight:600!important;
  line-height:1!important;
}
body.vfa-standalone-app :is(.vrr-button,.vds-button,.valve-btn,.vfa-payment-action){
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  min-height:42px!important;
  padding:8px 14px!important;
  border:1px solid var(--vc-green)!important;
  border-radius:11px!important;
  background:var(--vc-green)!important;
  color:#fff!important;
  font-family:"Poppins",sans-serif!important;
  font-size:11.5px!important;
  font-weight:600!important;
  line-height:1!important;
  text-decoration:none!important;
  box-shadow:none!important;
}
body.vfa-standalone-app :is(.vrr-button.vrr-dark,.valve-btn.valve-secondary,.vfa-payment-action.is-receipt,.vrr-proof-link){background:#fff!important;color:var(--vc-green)!important}
body.vfa-standalone-app :is(.vrr-button,.vds-button,.valve-btn,.vfa-payment-action):hover{background:var(--vc-green-dark)!important;color:#fff!important}

/* Selettore atleti. */
body.vfa-standalone-app .vfa-athlete-switcher{margin:0 0 22px!important;padding:0!important;background:transparent!important}
body.vfa-standalone-app .vfa-athlete-tabs{display:flex!important;justify-content:center!important;gap:8px!important;flex-wrap:wrap!important}
body.vfa-standalone-app .vfa-athlete-tab{
  min-width:260px!important;
  padding:10px 14px!important;
  border:1px solid var(--vc-line)!important;
  border-radius:14px!important;
  background:#fff!important;
  color:var(--vc-text)!important;
  box-shadow:0 5px 15px rgba(27,51,39,.04)!important;
}
body.vfa-standalone-app .vfa-athlete-tab.is-active{border-color:var(--vc-green)!important;background:#f8fcf9!important}

@media(max-width:1120px){
  body.vfa-standalone-app .vfa-overview{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.vfa-standalone-app .vfa-family-main-grid{grid-template-columns:1fr!important;gap:20px!important}
  body.vfa-standalone-app .vfa-family-column{padding:0!important;border-left:0!important}
}
@media(max-width:760px){
  body.vfa-standalone-app .vfa-app-stage,
  body.vsg-standalone-app .vsg-app-stage{padding:0 9px 44px!important}
  body.vfa-standalone-app .vds-family-top{
    grid-template-columns:1fr!important;
    min-height:230px!important;
    padding:68px 18px 54px!important;
    border-radius:0 0 24px 24px!important;
  }
  body.vfa-standalone-app .vds-family-brand{display:none!important}
  body.vfa-standalone-app .vds-family-copy h2{font-size:30px!important}
  body.vfa-standalone-app .vds-family-copy p{font-size:13px!important}
  body.vfa-standalone-app .vds-logout{position:absolute!important;right:14px!important;top:14px!important}
  body.vfa-standalone-app .vds-quick-nav{
    display:flex!important;
    margin:-27px 10px 22px!important;
    overflow-x:auto!important;
    scrollbar-width:none!important;
  }
  body.vfa-standalone-app .vds-quick-nav a{flex:0 0 auto!important;min-width:180px!important}
  body.vfa-standalone-app .vfa-overview{grid-template-columns:1fr!important;gap:10px!important}
  body.vfa-standalone-app .vrr-title h2,
  body.vfa-standalone-app .vds-section-title h2,
  body.vfa-standalone-app .vds-section-title h3,
  body.vfa-standalone-app .vds-athlete-title h2,
  body.vfa-standalone-app .valve-head h2{font-size:24px!important}
  body.vfa-standalone-app .vrr-card,
  body.vfa-standalone-app .vds-card,
  body.vfa-standalone-app .valve-box{padding:16px!important}
}
