/* P109 — Regional intelligence composition.
 * Dark surface/card paint comes from the family contract. */
.sw-region-intelligence { display:grid;gap:var(--sw-family-section-gap,16px); }

.sw-region-state { display:grid;gap:.58rem;padding:.82rem .88rem;color:var(--sw-dark-muted,#91b1c5); }
.sw-region-state>div { display:flex;gap:.4rem;flex-wrap:wrap; }
.sw-region-state strong { color:var(--sw-dark-heading,#f4fbff);font-weight:600; }
.sw-region-state--error { --sw-family-card-tone:var(--sw-accent-alert,#df3c23);--sw-family-card-tone-2:var(--sw-accent-premium,#f2a719); }

.sw-region-summary { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.62rem;margin-bottom:.15rem;padding:.88rem .92rem;align-items:stretch; }
.sw-region-summary article { display:grid;align-content:start;min-width:0;height:100%;padding:.68rem .72rem; }
.sw-region-summary span,.sw-region-detail-head span { display:block;color:var(--sw-family-card-tone,var(--sw-accent-data,#28ace2)); }
.sw-region-summary strong { display:block;margin:.16rem 0;color:var(--sw-dark-heading,#f4fbff); }
.sw-region-summary small { color:var(--sw-dark-muted,#91b1c5); }

.sw-region-detail-head { display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:.15rem 0 .55rem;padding:.82rem .88rem; }
.sw-region-detail-head h2 { margin:.1rem 0 0;color:var(--sw-dark-heading,#f4fbff); }
.sw-region-detail-head p { margin:.22rem 0 0;max-width:76ch;color:var(--sw-dark-muted,#91b1c5);line-height:1.5; }
.sw-region-detail-head>div:last-child { display:flex;gap:.36rem;flex-wrap:wrap;justify-content:flex-end; }

.sw-region-improvement { display:grid;grid-template-columns:auto minmax(0,1fr);gap:.18rem .6rem;align-items:baseline;margin:0 0 .65rem;padding:.64rem .72rem; }
.sw-region-improvement span { color:var(--sw-accent-positive,#2baa72); }
.sw-region-improvement strong {  }
.sw-region-improvement small { grid-column:2;color:var(--sw-dark-muted,#91b1c5); }

.sw-region-resorts,.sw-region-leaders { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.68rem;align-items:stretch; }
.sw-region-resorts>* , .sw-region-leaders>* { min-width:0;height:100%; }
.sw-region-resort { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.44rem .68rem;height:100%;padding:.78rem .82rem;color:#eaf6fb; }
.sw-region-resort span { color:var(--sw-family-card-tone,var(--sw-accent-data,#28ace2)); }
.sw-region-resort h3 { margin:.06rem 0;color:var(--sw-dark-heading,#f4fbff); }
.sw-region-resort p { margin:.12rem 0 0;color:var(--sw-dark-muted,#91b1c5);line-height:1.43; }
.sw-region-resort nav,.sw-region-resort>.sw-resort-actions { grid-column:1/-1;display:flex;gap:.36rem;flex-wrap:wrap;margin-top:auto; }
.sw-region-resort .sw-what-changed { grid-column:1/-1;margin-top:.08rem; }

.sw-region-card { display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.65rem;align-items:start;height:100%;padding:.78rem .82rem;color:#eaf6fb; }
.sw-region-card__rank { color:var(--sw-family-card-tone,var(--sw-accent-data,#28ace2)); }
.sw-region-card span { color:var(--sw-dark-muted,#91b1c5); }
.sw-region-card h2 { margin:.06rem 0;color:var(--sw-dark-heading,#f4fbff); }
.sw-region-card p { margin:.18rem 0 0;color:var(--sw-dark-muted,#91b1c5);line-height:1.43; }
.sw-region-card__score { display:grid;text-align:right; }
.sw-region-card__score strong { color:var(--sw-dark-heading,#f4fbff);font-weight:600; }
.sw-region-card__score small { color:var(--sw-dark-muted,#91b1c5); }
.sw-region-card>a { grid-column:2/-1;color:#8edfff;text-decoration:none; }
.sw-region-card>a:hover,.sw-region-card>a:focus-visible { color:#d7f5ff; }

.sw-region-evidence,.sw-region-shortlist,.sw-region-opportunity-matrix { padding:.88rem .94rem; }
.sw-region-webcams { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.56rem;margin-top:.68rem;align-items:stretch; }
.sw-region-webcam { display:grid;grid-template-columns:82px minmax(0,1fr);gap:.58rem;align-items:center;height:100%;padding:.46rem;color:#effaff;text-decoration:none; }
.sw-region-webcam img { width:82px;aspect-ratio:16/9;object-fit:cover;border-radius:.48rem;background:#031018; }
.sw-region-webcam span { display:grid;gap:.12rem;min-width:0; }
.sw-region-webcam strong { white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.sw-region-webcam small { color:var(--sw-dark-muted,#91b1c5); }
.sw-region-shortlist__item { display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.5rem .56rem;border-bottom:1px solid var(--sw-dark-divider,rgba(92,190,232,.10));color:#effaff;text-decoration:none; }
.sw-region-shortlist__item span { color:var(--sw-dark-muted,#91b1c5); }

.sw-region-matrix-wrap { margin-top:.7rem;overflow:auto;border:1px solid var(--sw-dark-border,rgba(116,188,224,.12));border-radius:.68rem;background:rgba(2,18,27,.36); }
.sw-region-matrix { width:100%;border-collapse:collapse;color:#eaf6fb; }
.sw-region-matrix th,.sw-region-matrix td { padding:.58rem .65rem;border-bottom:1px solid var(--sw-dark-divider,rgba(116,188,224,.09));text-align:left; }
.sw-region-matrix thead th { color:#83d9f7;background:rgba(255,255,255,.022); }
.sw-region-matrix tbody tr:last-child>* { border-bottom:0; }
.sw-region-matrix a { color:#eefaff;text-decoration:none; }
.sw-region-matrix small { display:block;color:var(--sw-dark-muted,#91b1c5); }

.sw-region-directory-head { display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:.15rem 0 .1rem; }
.sw-region-directory-head h2 { margin:.1rem 0 0;color:var(--sw-dark-heading,#f4fbff); }
.sw-region-directory-head p { margin:.22rem 0 0;color:var(--sw-dark-muted,#91b1c5);line-height:1.5; }

@media(max-width:1050px) { .sw-region-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:900px) { .sw-region-resorts,.sw-region-leaders { grid-template-columns:repeat(2,minmax(0,1fr)); }.sw-region-webcams{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media(max-width:620px) {
  .sw-region-summary,.sw-region-resorts,.sw-region-leaders,.sw-region-webcams { grid-template-columns:1fr; }
  .sw-region-detail-head,.sw-region-directory-head { align-items:flex-start;flex-direction:column; }
  .sw-region-detail-head>div:last-child { justify-content:flex-start; }
  .sw-region-improvement { grid-template-columns:1fr; }.sw-region-improvement small{grid-column:1;}
}


/* P205 — graph-enriched directory. Empty dynamic columns are suppressed when
   the shared cache has no publishable regional signal instead of displaying a
   large field of em dashes. */
.sw-region-matrix-note{margin:.55rem 0 0;padding:.48rem .58rem;border-left:2px solid var(--sw-accent-data,#28ace2);color:var(--sw-dark-muted,#91b1c5);background:rgba(40,172,226,.035);font-size:var(--sw-type-support,.78rem);line-height:1.4;}
.sw-region-matrix tr.has-live-intelligence{background:linear-gradient(90deg,rgba(40,172,226,.035),rgba(43,170,114,.018));}
.sw-region-matrix tr.has-live-intelligence td:nth-child(2),.sw-region-matrix tr.has-live-intelligence td:nth-child(3){color:#bdefff;}
.sw-region-matrix tr.has-live-intelligence td:nth-child(4){color:#f2c87b;}
.sw-region-matrix.is-directory-only :is(th,td):nth-child(2),
.sw-region-matrix.is-directory-only :is(th,td):nth-child(3),
.sw-region-matrix.is-directory-only :is(th,td):nth-child(4){display:none;}
.sw-region-matrix.is-directory-only{min-width:0;}

/* P206 — Europe-first regional directory and personality-style region cards.
 * Generic surface/hover paint remains centrally owned by the intelligence
 * family contract; this file only controls region layout and density. */
.sw-region-directory-head{margin-top:.28rem;padding:.2rem 0 .15rem;}
.sw-region-directory-head h2{font-size:var(--sw-intel-family-section-title)!important;}
.sw-region-leaders{grid-template-columns:repeat(3,minmax(0,1fr));gap:.72rem;}
.sw-region-card{
  min-height:9.2rem;
  padding:.88rem;
  border-radius:.70rem;
  align-content:start;
}
.sw-region-card__rank{align-self:start;padding:.28rem .38rem;border:1px solid color-mix(in srgb,var(--sw-family-card-tone,var(--sw-accent-data,#28ace2)) 24%,transparent);border-radius:999px;background:color-mix(in srgb,var(--sw-family-card-tone,var(--sw-accent-data,#28ace2)) 7%,transparent);font-size:var(--sw-intel-family-meta);font-weight:600;}
.sw-region-card h2{font-size:var(--sw-intel-family-card-title)!important;line-height:1.16!important;}
.sw-region-card p{max-width:46ch;}
.sw-region-card__score{min-width:58px;padding:.34rem .42rem;border:1px solid rgba(255,255,255,.06);border-radius:.58rem;background:rgba(255,255,255,.025);}
.sw-region-card>a{align-self:end;margin-top:auto;padding-top:.58rem;border-top:1px solid var(--sw-dark-divider,rgba(255,255,255,.055));font-size:var(--sw-intel-family-meta);font-weight:500;}

/* The matrix is supporting context. When no graph-derived comparison signal
 * exists, keep the directory counts accessible but collapsed by default. */
.sw-region-opportunity-matrix.is-counts-only{padding:.72rem .82rem;}
.sw-region-opportunity-matrix.is-counts-only .sw-region-matrix-wrap{display:none;}
.sw-region-opportunity-matrix.is-counts-only.is-open .sw-region-matrix-wrap{display:block;margin-top:.55rem;}
.sw-region-opportunity-matrix.is-counts-only .sw-region-matrix-note{margin:.42rem 0 0;}
.sw-region-matrix-toggle{margin-left:auto;}

@media(max-width:900px){.sw-region-leaders{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:620px){.sw-region-leaders{grid-template-columns:1fr;}.sw-region-card{min-height:0;}}

/* P207 — counts-only matrix is supporting context, never the primary region experience. */
.sw-region-opportunity-matrix.is-counts-only{padding:.66rem .78rem!important;background:linear-gradient(135deg,rgba(8,37,51,.74),rgba(4,26,37,.78));}
.sw-region-opportunity-matrix.is-counts-only .sw-region-matrix-wrap[hidden]{display:none!important;}
.sw-region-counts-togglebar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-top:.48rem;padding:.5rem .58rem;border:1px solid var(--sw-dark-divider,rgba(116,188,224,.10));border-radius:.62rem;background:rgba(255,255,255,.018);color:var(--sw-dark-muted,#91b1c5);}
.sw-region-counts-togglebar strong{color:var(--sw-dark-heading,#f4fbff);font-weight:600;}
.sw-region-counts-togglebar .sw-action{flex:0 0 auto;}
.sw-region-opportunity-matrix.is-counts-only .sw-region-matrix-wrap{max-height:28rem;overflow:auto;}
.sw-region-directory-head{margin-top:.7rem;}
.sw-region-leaders{gap:.78rem;}
.sw-region-card{min-height:8.6rem;}
@media(max-width:620px){.sw-region-counts-togglebar{align-items:flex-start;flex-direction:column;}.sw-region-counts-togglebar .sw-action{width:100%;justify-content:center;}}
