/* Shared platform components. Generated from ten existing component owners in their original cascade order. */

/* skiweather-signal-pills.css */
/* P39 shared quantitative signal pills. */
:root {
  --sw-precip-dry-bg: rgba(255,255,255,.05);
  --sw-precip-dry-fg: #8da7b5;
  --sw-precip-dry-border: rgba(116,188,224,.16);
  --sw-precip-light-bg: rgba(40,172,226,.10);
  --sw-precip-light-fg: #087ab6;
  --sw-precip-light-border: rgba(40,172,226,.30);
  --sw-precip-moderate-bg: rgba(40,172,226,.18);
  --sw-precip-moderate-fg: #075f91;
  --sw-precip-moderate-border: rgba(40,172,226,.48);
  --sw-precip-heavy-bg: rgba(242,167,25,.18);
  --sw-precip-heavy-fg: #8a5b00;
  --sw-precip-heavy-border: rgba(242,167,25,.58);
  --sw-precip-extreme-bg: rgba(223,60,35,.20);
  --sw-precip-extreme-fg: #a83223;
  --sw-precip-extreme-border: rgba(223,60,35,.66);
}

.sw-precip-pill[data-sw-precip-intensity] {
  display: inline-flex;
  min-height: 1.25rem;
  align-items: center;
  padding: .1rem .34rem;
  border: 1px solid var(--sw-precip-light-border);
  border-radius: 999px;
  background: var(--sw-precip-light-bg);
  color: var(--sw-precip-light-fg);
  font-size: clamp(.62rem, .59rem + .05vw, .68rem);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}
.sw-precip-pill[data-sw-precip-intensity="dry"] {
  border-color: var(--sw-precip-dry-border);
  background: var(--sw-precip-dry-bg);
  color: var(--sw-precip-dry-fg);
}
.sw-precip-pill[data-sw-precip-intensity="light"] {
  border-color: var(--sw-precip-light-border);
  background: var(--sw-precip-light-bg);
  color: var(--sw-precip-light-fg);
}
.sw-precip-pill[data-sw-precip-intensity="moderate"] {
  border-color: var(--sw-precip-moderate-border);
  background: var(--sw-precip-moderate-bg);
  color: var(--sw-precip-moderate-fg);
}
.sw-precip-pill[data-sw-precip-intensity="heavy"] {
  border-color: var(--sw-precip-heavy-border);
  background: var(--sw-precip-heavy-bg);
  color: var(--sw-precip-heavy-fg);
}
.sw-precip-pill[data-sw-precip-intensity="extreme"] {
  border-color: var(--sw-precip-extreme-border);
  background: var(--sw-precip-extreme-bg);
  color: var(--sw-precip-extreme-fg);
}
body.sw-page-weather .sw-regional-weather-table__precip.sw-precip-pill {
  min-height: 1.18rem;
  padding: .08rem .32rem;
}

/* skiweather-experience.css */
/* P22 experience convergence: one shell, resort-card vocabulary, journey and state language. */
:root{--sw-experience-content-max:1280px;--sw-experience-radius:var(--sw-card-radius,16px);--sw-experience-gap:var(--sw-space-4,1rem);--sw-signal-snow:#2aaee3;--sw-signal-weather:#4a91e2;--sw-signal-positive:#35b77b;--sw-signal-attention:#e0a82f;--sw-signal-risk:#df5546;--sw-signal-neutral:#7896a8}
body.sw-page-modern-flow.sw-experience-shell .sw-main-shell,body.sw-page-modern-flow.sw-experience-shell .sw-dark-shell{max-width:var(--sw-experience-content-max);margin-inline:auto}
body.sw-experience-shell--intelligence{--sw-page-content-max:var(--sw-experience-content-max)}
body.sw-experience-shell--decision{--sw-page-content-max:var(--sw-experience-content-max)}
.sw-signal{display:inline-flex;align-items:baseline;gap:.28rem;min-width:0;padding:.28rem .48rem;border:1px solid color-mix(in srgb,var(--sw-signal-color,var(--sw-signal-neutral)) 30%,transparent);border-radius:999px;background:color-mix(in srgb,var(--sw-signal-color,var(--sw-signal-neutral)) 9%,transparent);color:inherit;font-size:var(--sw-text-xs);line-height:1.1}.sw-signal__label{text-transform:uppercase;letter-spacing:.05em;opacity:.75}.sw-signal__value{font-size:var(--sw-text-sm)}.sw-signal__meta{opacity:.7}.sw-signal--snow{--sw-signal-color:var(--sw-signal-snow)}.sw-signal--weather{--sw-signal-color:var(--sw-signal-weather)}.sw-signal--positive{--sw-signal-color:var(--sw-signal-positive)}.sw-signal--attention{--sw-signal-color:var(--sw-signal-attention)}.sw-signal--risk{--sw-signal-color:var(--sw-signal-risk)}.sw-signal--neutral{--sw-signal-color:var(--sw-signal-neutral)}
.sw-resort-card{container-type:inline-size;min-width:0}
.sw-resort-card[data-sw-resort-card="1"]{display:grid;gap:var(--sw-space-3);min-width:0;padding:var(--sw-space-4);border:1px solid var(--sw-dark-border-strong,rgba(40,172,226,.22));border-radius:var(--sw-experience-radius);background:var(--sw-dark-surface,#071d2b);color:var(--sw-dark-ink,#edf7fc)}.sw-resort-card[data-sw-resort-card="1"] .sw-resort-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sw-space-3);min-width:0}.sw-resort-card[data-sw-resort-card="1"] .sw-resort-card__identity{min-width:0}.sw-resort-card[data-sw-resort-card="1"] .sw-resort-card__identity h3{margin:0;font-size:var(--sw-title-sm);line-height:1.15}.sw-resort-card[data-sw-resort-card="1"] .sw-resort-card__identity h3 a{color:inherit;text-decoration:none}.sw-resort-card[data-sw-resort-card="1"] .sw-resort-card__identity p{margin:.22rem 0 0;color:var(--sw-dark-muted);font-size:var(--sw-text-sm)}.sw-resort-card[data-sw-resort-card="1"] .sw-resort-card__scores{display:flex;gap:var(--sw-space-2);flex-wrap:wrap;justify-content:flex-end}.sw-resort-card[data-sw-resort-card="1"] .sw-resort-card__evidence{display:grid;gap:var(--sw-space-1);font-size:var(--sw-text-sm);color:var(--sw-dark-muted)}.sw-resort-card[data-sw-resort-card="1"] .sw-resort-card__evidence p{margin:0}.sw-resort-card[data-sw-resort-card="1"] .sw-resort-card__evidence strong{color:var(--sw-dark-ink)}.sw-resort-card[data-sw-resort-card="1"] .sw-resort-card__risk{color:color-mix(in srgb,var(--sw-signal-risk) 58%,var(--sw-dark-ink))}.sw-resort-card[data-sw-resort-card="1"] .sw-resort-actions{margin-top:0}.sw-resort-card[data-sw-resort-card="1"].sw-resort-card--compact{padding:var(--sw-space-3);gap:var(--sw-space-2)}
.sw-decision-journey{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--sw-space-1);padding:var(--sw-space-2);border:1px solid var(--sw-dark-border);border-radius:var(--sw-experience-radius);background:color-mix(in srgb,var(--sw-dark-surface) 78%,transparent);overflow:auto}.sw-decision-journey__step{display:flex;align-items:center;justify-content:center;gap:.35rem;min-height:2.3rem;padding:.35rem .5rem;border-radius:.55rem;color:var(--sw-dark-muted);font-size:var(--sw-text-sm);font-weight:var(--sw-font-weight-semibold);text-decoration:none;white-space:nowrap}.sw-decision-journey__step span{display:grid;place-items:center;width:1.35rem;height:1.35rem;border:1px solid currentColor;border-radius:999px;font-size:var(--sw-text-xs)}.sw-decision-journey__step.is-current{background:rgba(40,172,226,.13);color:#eafaff}.sw-decision-journey__step.is-done{color:#74d9b0}.sw-decision-journey__step:hover,.sw-decision-journey__step:focus-visible{background:rgba(40,172,226,.1);color:#fff}
.sw-next-action{display:flex;align-items:center;gap:var(--sw-space-3);padding:var(--sw-space-3) var(--sw-space-4);border:1px solid var(--sw-dark-border);border-radius:var(--sw-experience-radius);background:rgba(7,29,43,.72);color:var(--sw-dark-ink)}.sw-next-action>span{font-size:var(--sw-text-xs);text-transform:uppercase;letter-spacing:.06em;color:#7fdfff}.sw-next-action>strong{margin-right:auto;font-size:var(--sw-text)}
.sw-experience-state{display:flex;align-items:center;justify-content:space-between;gap:var(--sw-space-4);padding:var(--sw-space-4);border:1px solid var(--sw-dark-border);border-left:3px solid var(--sw-state-accent,var(--sw-signal-neutral));border-radius:var(--sw-experience-radius);background:rgba(7,29,43,.65);color:var(--sw-dark-ink)}.sw-experience-state__copy{display:grid;grid-template-columns:auto 1fr;gap:.18rem .6rem;align-items:center}.sw-experience-state__copy strong{font-size:var(--sw-text)}.sw-experience-state__copy span:last-child{grid-column:2;color:var(--sw-dark-muted);font-size:var(--sw-text-sm)}.sw-experience-state--loading{--sw-state-accent:var(--sw-signal-weather)}.sw-experience-state--stale,.sw-experience-state--limited{--sw-state-accent:var(--sw-signal-attention)}.sw-experience-state--error{--sw-state-accent:var(--sw-signal-risk)}.sw-experience-state--success{--sw-state-accent:var(--sw-signal-positive)}.sw-experience-state__spinner{width:.9rem;height:.9rem;border:2px solid rgba(255,255,255,.25);border-top-color:#7fdfff;border-radius:50%;animation:sw-exp-spin .8s linear infinite}@keyframes sw-exp-spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.sw-decision-journey{grid-template-columns:repeat(6,minmax(7rem,1fr));justify-content:flex-start}.sw-next-action,.sw-experience-state{align-items:flex-start;flex-direction:column}.sw-resort-card[data-sw-resort-card="1"] .sw-resort-card__head{flex-direction:column}.sw-resort-card[data-sw-resort-card="1"] .sw-resort-card__scores{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){.sw-experience-state__spinner{animation:none}}

body.sw-experience-shell>.sw-decision-journey,body.sw-experience-shell .sw-dark-shell>.sw-decision-journey{width:min(calc(100% - 32px),var(--sw-experience-content-max));margin:var(--sw-space-3) auto 0;box-sizing:border-box}
@media(max-width:760px){body.sw-experience-shell>.sw-decision-journey,body.sw-experience-shell .sw-dark-shell>.sw-decision-journey{width:min(calc(100% - 20px),var(--sw-experience-content-max))}}

/* ========================================================================
   P68 — shared resort-card architecture
   The page keeps ownership of content and business semantics. This layer owns
   only geometry, interaction rhythm and state language shared across variants.
   ======================================================================== */
:root {
  --sw-resort-card-radius: .82rem;
  --sw-resort-card-gap: .7rem;
  --sw-resort-card-padding: .78rem;
  --sw-resort-card-action-height: 2rem;
  --sw-resort-card-transition: 180ms var(--sw-ease-elastic, cubic-bezier(.2,.8,.2,1));
  --sw-resort-card-state-saved: rgba(53, 183, 123, .32);
  --sw-resort-card-state-compare: rgba(42, 174, 227, .36);
}

:where(
  [data-sw-resort-card-system="p68"],
  [data-sw-resort-card="1"]
) {
  min-width: 0;
  border-radius: var(--sw-resort-card-radius);
  transition: border-color var(--sw-resort-card-transition), box-shadow var(--sw-resort-card-transition), transform var(--sw-resort-card-transition);
}

:where([data-sw-resort-card-system="p68"]):hover,
:where([data-sw-resort-card-system="p68"]):focus-within {
  transform: translateY(-1px);
}

:where([data-sw-resort-card-system="p68"])[data-sw-saved="true"] {
  box-shadow: inset 0 0 0 1px var(--sw-resort-card-state-saved);
}

:where([data-sw-resort-card-system="p68"])[data-sw-compared="true"] {
  border-color: color-mix(in srgb, var(--sw-primary, #28ace2) 50%, transparent);
}

:where([data-sw-resort-card-system="p68"])[data-sw-saved="true"][data-sw-compared="true"] {
  box-shadow: inset 0 0 0 1px var(--sw-resort-card-state-saved), 0 0 0 1px var(--sw-resort-card-state-compare);
}

:where([data-sw-resort-card-system="p68"]) :is(
  .sw-resort-result__action,
  .sw-tool-button,
  .sw-resort-actions a,
  .sw-resort-actions button
) {
  min-height: var(--sw-resort-card-action-height);
}

:where([data-sw-resort-card-variant="compact"]) {
  --sw-resort-card-padding: .62rem;
  --sw-resort-card-gap: .48rem;
}

:where([data-sw-resort-card-variant="decision"], [data-sw-resort-card-variant="recommendation"]) {
  --sw-resort-card-accent: var(--sw-primary, #28ace2);
}

:where([data-sw-resort-card-variant="comparison"]) {
  --sw-resort-card-accent: var(--sw-vivid-gold, #f2a719);
}

:where([data-sw-resort-card-variant="saved"]) {
  --sw-resort-card-accent: var(--sw-signal-positive, #35b77b);
}

/* Canonical renderer variants. Existing legacy/detail cards are deliberately
   excluded unless they opt into data-sw-resort-card="1". */
.sw-resort-card[data-sw-resort-card="1"] {
  gap: var(--sw-resort-card-gap);
  padding: var(--sw-resort-card-padding);
  border-radius: var(--sw-resort-card-radius);
}

.sw-resort-card[data-sw-resort-card="1"][data-sw-resort-card-variant="decision"],
.sw-resort-card[data-sw-resort-card="1"][data-sw-resort-card-variant="recommendation"],
.sw-resort-card[data-sw-resort-card="1"][data-sw-resort-card-variant="comparison"],
.sw-resort-card[data-sw-resort-card="1"][data-sw-resort-card-variant="saved"] {
  border-top-color: color-mix(in srgb, var(--sw-resort-card-accent) 66%, transparent);
}

@media (prefers-reduced-motion: reduce) {
  :where([data-sw-resort-card-system="p68"]),
  :where([data-sw-resort-card-system="p68"]):hover,
  :where([data-sw-resort-card-system="p68"]):focus-within {
    transition: none;
    transform: none;
  }
}

/* P71 — passive cross-page membership cues on adopted resort cards. */
:where([data-sw-resort-card-system="p68"]) .sw-resort-card__journey-state {
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  margin-left: auto;
  flex-wrap: wrap;
}
:where([data-sw-resort-card-system="p68"]) .sw-resort-card__journey-state > span {
  display: inline-flex;
  align-items: center;
  min-height: 1.34rem;
  padding: .12rem .38rem;
  border: 1px solid rgba(123,184,211,.18);
  border-radius: 999px;
  background: rgba(7,29,43,.28);
  color: var(--sw-dark-muted,#9db6c2);
  font-size: .58rem;
  font-weight: 600;
  letter-spacing: .035em;
  line-height: 1;
  text-transform: lowercase;
}
:where([data-sw-resort-card-system="p68"]) .sw-resort-card__journey-state > [data-sw-membership="saved"] {
  border-color: rgba(53,183,123,.28);
  background: rgba(53,183,123,.1);
  color: #91deb8;
}
:where([data-sw-resort-card-system="p68"]) .sw-resort-card__journey-state > [data-sw-membership="compare"] {
  border-color: rgba(40,172,226,.3);
  background: rgba(40,172,226,.1);
  color: #92d9f4;
}

/* skiweather-resort-actions.css */
/* P21b canonical resort action rail. Shared by resort/profile/region/intelligence surfaces. */
.sw-resort-action-rail{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;width:100%;padding:.55rem .7rem;border:1px solid rgba(76,160,203,.18);border-radius:.85rem;background:linear-gradient(135deg,rgba(242,249,253,.94),rgba(232,244,250,.9));box-shadow:0 5px 18px rgba(6,34,49,.07)}
.sw-resort-action-rail__label{margin-right:.2rem;color:#55778b;font-size:var(--sw-text-xs,.75rem);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.sw-resort-actions{display:flex;align-items:center;gap:.38rem;flex-wrap:wrap;min-width:0}
.sw-resort-actions .sw-action{min-height:32px;padding:.38rem .58rem;font-size:var(--sw-text-sm,.875rem);border-radius:.6rem}
.sw-resort-actions--compact .sw-action{min-height:29px;padding:.3rem .5rem;font-size:var(--sw-text-xs,.78rem)}
body.sw-dark-workspace .sw-resort-action-rail{background:#061d29;border-color:rgba(94,204,244,.18);box-shadow:none}
body.sw-dark-workspace .sw-resort-action-rail__label{color:#8bb4c9}
body.sw-dark-workspace .sw-resort-actions .sw-action{background:#082735;border-color:rgba(82,214,255,.24);color:#e9f8ff!important}
body.sw-dark-workspace .sw-resort-actions .sw-action-role--primary{background:linear-gradient(135deg,#0e7da6,#0b5470);border-color:#42c5ef}
@media(max-width:720px){.sw-resort-action-rail{align-items:flex-start}.sw-resort-action-rail__label{flex:1 0 100%}.sw-resort-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.sw-resort-actions .sw-action{white-space:normal;text-align:center}}

/* skiweather-page-families.css */
/* P32 — canonical page-family geometry and top-composition contract. */
:root {
  --sw-family-content-max: 1280px;
  --sw-family-gutter: clamp(10px, 1.5vw, 16px);
  --sw-family-section-gap: clamp(12px, 1.4vw, 18px);
  --sw-family-block-gap: 10px;
  --sw-family-radius: 14px;
  --sw-family-control-h: 36px;
}

/* One content axis per family is resolved by the page-family contract through
   data-sw-family-track-mode. Do not re-declare widths per route/family here. */

.sw-family-track,
body.sw-dark-workspace .sw-dark-shell,
body.sw-page-intelligence-workspace .sw-intelligence-shell {
  box-sizing: border-box;
  width: min(calc(100% - 32px), var(--sw-family-content-max));
  max-width: var(--sw-family-content-max);
  margin-inline: auto;
}
.sw-family-stack { display:grid; gap:var(--sw-family-section-gap); min-width:0; }
.sw-family-stack--compact { gap:var(--sw-family-block-gap); }
.sw-family-stack > * { min-width:0; }

/* P105 — page families now provide hero variables/track only.
 * All hero paint and typography live in skiweather-hero.css. */
body[data-sw-page-family]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) {
  --sw-hero-content-max:var(--sw-family-content-max,1480px);
  --sw-family-accent:var(--sw-accent-data,#28ace2);
  --sw-family-accent-2:var(--sw-accent-positive,#2baa72);
  --sw-card-accent:var(--sw-family-accent);
  --sw-card-accent-2:var(--sw-family-accent-2);
  --sw-family-line-gradient:var(--sw-family-spectrum-line-cool,var(--sw-line-gradient));
  --sw-action-radius:var(--sw-ui-action-radius,.62rem);
  --sw-action-height:var(--sw-ui-action-height,2.1rem);
  --sw-action-height-compact:var(--sw-ui-action-height-compact,1.82rem);
  --sw-action-font-size:var(--sw-ui-action-font-size,.84rem);
  --sw-action-font-weight:600;
  --sw-control-radius:.64rem;
}
body[data-sw-page-family="decision"] { --sw-family-accent:var(--sw-accent-action,#e96c1a);--sw-family-accent-2:var(--sw-accent-data,#28ace2);--sw-family-line-gradient:var(--sw-line-gradient-action,var(--sw-family-spectrum-line)); }
body[data-sw-page-family="intelligence"] { --sw-family-accent:var(--sw-accent-data,#28ace2);--sw-family-accent-2:var(--sw-accent-positive,#2baa72);--sw-family-line-gradient:var(--sw-family-spectrum-line,var(--sw-line-gradient)); }
body[data-sw-page-family="detail"] { --sw-family-accent:var(--sw-accent-data,#28ace2);--sw-family-accent-2:var(--sw-accent-positive,#2baa72); }
body[data-sw-page-family="media"] { --sw-family-accent:var(--sw-accent-data,#28ace2);--sw-family-accent-2:var(--sw-accent-positive,#2baa72); }
body[data-sw-page-family="report"] { --sw-family-accent:var(--sw-accent-premium,#f2a719);--sw-family-accent-2:var(--sw-accent-data,#28ace2);--sw-family-line-gradient:linear-gradient(90deg,transparent,var(--sw-accent-premium,#f2a719) 26%,var(--sw-accent-data,#28ace2) 70%,transparent); }
body[data-sw-page-family="content"] { --sw-family-accent:var(--sw-accent-data,#28ace2);--sw-family-accent-2:var(--sw-accent-premium,#f2a719);--sw-family-line-gradient:linear-gradient(90deg,transparent,var(--sw-accent-data,#28ace2) 24%,var(--sw-accent-premium,#f2a719) 74%,transparent); }
body[data-sw-page-family="map"] { --sw-family-accent:var(--sw-accent-data,#28ace2);--sw-family-accent-2:var(--sw-accent-positive,#2baa72); }

/* P116: section-heading paint/typography moved to skiweather-surface.css.
 * This file keeps family composition only. */

/* Workflow rail: intentionally compact and shown only by route markup where needed. */
.sw-family-track > .sw-decision-journey,
.sw-family-stack > .sw-decision-journey,
.sw-layout > .sw-decision-journey {
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}
body[data-sw-page-family="decision"] .sw-decision-journey {
  gap:2px;
  padding:5px;
  border-radius:11px;
}
body[data-sw-page-family="decision"] .sw-decision-journey__step {
  min-height:32px;
  padding:.28rem .44rem;
  border-radius:8px;
  font-size:.75rem;
}
body[data-sw-page-family="decision"] .sw-decision-journey__step span {
  width:1.12rem;height:1.12rem;font-size:.62rem;
}

/* Shared dark command geometry. Generic surface radius/paint is owned by
 * skiweather-surface.css; families only retain composition padding. */
body:is(.sw-family--decision,.sw-family--intelligence) :where(.sw-tool-command,.sw-mountain-command) {
  padding:clamp(14px,1.5vw,18px) !important;
}

/* Resort/profile contextual navigation must use the detail-family content track. */
body[data-sw-page-family="detail"] .sw-resort-section-nav__inner {
  width:min(calc(100% - 32px),var(--sw-family-content-max)) !important;
  max-width:var(--sw-family-content-max) !important;
  margin-inline:auto !important;
  padding-inline:0 !important;
}

@media(max-width:760px) {
  .sw-family-track,
  body.sw-dark-workspace .sw-dark-shell,
  body.sw-page-intelligence-workspace .sw-intelligence-shell {
    width:min(calc(100% - 20px),var(--sw-family-content-max)) !important;
  }
  body[data-sw-page-family="detail"] .sw-resort-section-nav__inner { width:min(calc(100% - 20px),var(--sw-family-content-max)) !important; }
}

/* Compact overflow actions used by dense command surfaces. */
.sw-family-more-actions { position:relative; }
.sw-family-more-actions > summary {
  min-height:var(--sw-family-control-h);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.42rem .7rem;
  border:1px solid rgba(82,214,255,.24);
  border-radius:.65rem;
  background:#082735;
  color:#e3f7ff;
  font-size:.78rem;
  font-weight:700;
  cursor:pointer;
  list-style:none;
}
.sw-family-more-actions > summary::-webkit-details-marker { display:none; }
.sw-family-more-actions > summary::after { content:'▾'; margin-left:.38rem; opacity:.72; font-size:.7em; }
.sw-family-more-actions[open] > summary::after { transform:rotate(180deg); }
.sw-family-more-actions__menu {
  position:absolute;
  z-index:30;
  top:calc(100% + 6px);
  right:0;
  width:max-content;
  min-width:190px;
  max-width:min(300px,calc(100vw - 24px));
  display:grid;
  gap:5px;
  padding:7px;
  border:1px solid rgba(82,214,255,.22);
  border-radius:11px;
  background:#041923;
  box-shadow:0 18px 40px rgba(0,0,0,.34);
}
.sw-family-more-actions__menu .sw-component-action { width:100%; justify-content:flex-start; }
@media(max-width:575.98px) {
  .sw-family-more-actions__menu { position:fixed; right:10px; left:10px; top:auto; bottom:74px; width:auto; }
}

/* P105: hero responsive hardening moved to skiweather-hero.css. */

/* Container-level hardening for family content. This catches narrow embedded
   columns even when the viewport itself is wide. */
.sw-family-track,
.sw-family-stack {
  min-width:0;
  max-width:100%;
}

/* ======================================================================
   P44 — whole-site page-family convergence

   This existing postlude is the single geometry owner for family-level
   surfaces, sections, metrics and toolbars. It adds no stylesheet request.
   Route CSS should only specialize domain content inside these primitives.
   ====================================================================== */
:root {
  --sw-family-standard-max:1280px;
  --sw-family-wide-max:1480px;
  --sw-family-surface-border:rgba(112,192,226,.17);
  --sw-family-surface-dark:var(--sw-family-spectral-dark,var(--sw-surface-dark-gradient,linear-gradient(150deg,#082232,#031018)));
  --sw-family-surface-dark-2:var(--sw-family-spectral-dark-hover,var(--sw-surface-dark-gradient-hover,linear-gradient(150deg,#092739,#031018)));
  --sw-family-surface-light:var(--sw-family-spectral-light,var(--sw-surface-light-gradient,linear-gradient(145deg,#f5fbfe,#fff)));
  --sw-family-surface-shadow:var(--sw-surface-shadow-light,0 .28rem .76rem rgba(4,35,54,.085));
  --sw-family-section-pad:clamp(.8rem,1.25vw,1.05rem);
  --sw-family-compact-gap:.55rem;
}
body[data-sw-family-track-mode="standard"] { --sw-family-content-max:var(--sw-family-standard-max); }
body[data-sw-family-track-mode="wide"] { --sw-family-content-max:var(--sw-family-wide-max); }
body[data-sw-family-track-mode="viewport"] { --sw-family-content-max:none; }

.sw-family-surface {
  position:relative;
  min-width:0;
  max-width:100%;
  border:1px solid var(--sw-family-surface-border);
  border-radius:var(--sw-family-radius);
  background:var(--sw-family-surface-light);
  box-shadow:var(--sw-family-surface-shadow);
  box-sizing:border-box;
  transition:border-color var(--sw-motion-subtle,140ms ease),box-shadow var(--sw-motion-interactive,240ms ease),background var(--sw-motion-interactive,240ms ease);
}
.sw-family-surface::before {
  position:absolute;
  z-index:1;
  inset:0 .72rem auto;
  height:1px;
  border-radius:999px;
  content:"";
  pointer-events:none;
  background:var(--sw-family-line-gradient,linear-gradient(90deg,transparent,var(--sw-family-accent,#28ace2) 26%,var(--sw-family-accent,#28ace2) 58%,var(--sw-family-accent-2,#2baa72) 84%,transparent));
  opacity:.26;
  transition:opacity var(--sw-motion-subtle,140ms ease);
}
.sw-family-surface:hover::before,.sw-family-surface:focus-within::before { opacity:.52; }
body[data-sw-family-surface="dark"] .sw-family-surface,
.sw-family-surface--dark {
  background:var(--sw-family-surface-dark);
  color:#edf8fe;
  box-shadow:var(--sw-surface-shadow-dark,var(--sw-family-surface-shadow));
}
body[data-sw-family-surface="dark"] .sw-family-surface:hover,
body[data-sw-family-surface="dark"] .sw-family-surface:focus-within,
.sw-family-surface--dark:hover,.sw-family-surface--dark:focus-within {
  border-color:color-mix(in srgb,var(--sw-family-accent,#28ace2) 28%,var(--sw-family-surface-border));
  background:var(--sw-family-surface-dark-2);
  box-shadow:var(--sw-surface-shadow-dark-hover,var(--sw-surface-shadow-dark));
}
.sw-family-surface--data { background:var(--sw-family-surface-light); }
body[data-sw-family-surface="dark"] .sw-family-surface--data { background:var(--sw-family-surface-dark); }
.sw-family-surface--related { overflow:hidden; }

.sw-family-section { min-width:0; }
.sw-family-section > .sw-family-section-head {
  padding:var(--sw-family-section-pad) var(--sw-family-section-pad) 0;
}
.sw-family-section > .sw-family-section__body {
  min-width:0;
  padding:var(--sw-family-section-pad);
}
.sw-family-section > .sw-family-section-head + .sw-family-section__body {
  padding-top:clamp(.62rem,1vw,.82rem);
}

.sw-family-toolbar {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.55rem;
  min-width:0;
  max-width:100%;
}
.sw-family-toolbar > * { min-width:0; }

.sw-family-metrics {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.48rem;
  min-width:0;
}
.sw-family-metric {
  min-width:0;
}

.sw-family-metric[data-sw-tone="positive"],.sw-family-metric--positive { --sw-surface-tone:var(--sw-accent-positive,#2baa72); }
.sw-family-metric[data-sw-tone="warning"],.sw-family-metric--warning { --sw-surface-tone:var(--sw-accent-premium,#f2a719); }
.sw-family-metric[data-sw-tone="alert"],.sw-family-metric--alert { --sw-surface-tone:var(--sw-accent-alert,#df3c23); }
.sw-family-metric[data-sw-tone="action"],.sw-family-metric--action { --sw-surface-tone:var(--sw-accent-action,#e96c1a); }

.sw-family-grid {
  min-width:0;
  max-width:100%;
}
.sw-family-card {
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.sw-family-card--compact { min-height:0; }
.sw-family-card-grid { align-items:stretch; }
.sw-family-card-grid > * { min-width:0;height:100%; }
.sw-family-compact-list { min-width:0; max-width:100%; }


.sw-family-state {
  display:grid;
  gap:.2rem;
  min-width:0;
  padding:.78rem .86rem;
  border:1px dashed var(--sw-family-surface-border);
  border-radius:.72rem;
  color:var(--sw-dark-muted,#91b2c5);
}
.sw-family-state strong { color:var(--sw-dark-heading,#f4fbff); }
.sw-family-state span { line-height:1.4; }

/* Family aliases keep older components visually intact while their PHP markup
   converges on the canonical primitives. */
.sw-dark-workspace-v2 .sw-family-section-head.sw-dark-section__head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
}
.sw-dark-workspace-v2 .sw-family-section__body.sw-dark-section__body { min-width:0; }
.sw-dark-workspace-v2 .sw-family-metrics.sw-dark-metrics { grid-template-columns:repeat(4,minmax(0,1fr)); }
.sw-dark-workspace-v2 .sw-family-metric.sw-dark-metric { padding:.58rem .66rem; }

@media (max-width:900px) {
  .sw-family-metrics,
  .sw-dark-workspace-v2 .sw-family-metrics.sw-dark-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  :root { --sw-family-section-pad:.72rem; }
  .sw-family-toolbar { align-items:stretch; gap:.42rem; }
  .sw-family-toolbar > :where(.sw-action,.sw-component-action,button,a,select,input) { max-width:100%; }
  .sw-family-section-head__actions { width:100%; }
}
@media (max-width:520px) {
  .sw-family-metrics,
  .sw-dark-workspace-v2 .sw-family-metrics.sw-dark-metrics { grid-template-columns:1fr; }
}

/* P65.8 — detail-family navigation has one canonical centered content track.
   This postlude intentionally wins over older mobile/detail experiments. */
body[data-sw-page-family="detail"] .sw-resort-section-nav[data-sw-resort-nav-contract="p65.8"] .sw-resort-section-nav__inner {
  width:min(calc(100% - 32px),var(--sw-page-content-max,var(--sw-family-content-max,var(--sw-page-max,1640px)))) !important;
  max-width:var(--sw-page-content-max,var(--sw-family-content-max,var(--sw-page-max,1640px))) !important;
  margin-inline:auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
@media(max-width:820px){
  body[data-sw-page-family="detail"] .sw-resort-section-nav[data-sw-resort-nav-contract="p65.8"] .sw-resort-section-nav__inner {
    width:min(calc(100% - 20px),var(--sw-page-content-max,var(--sw-family-content-max,var(--sw-page-max,1640px)))) !important;
  }
}

/* ======================================================================
   P105 — converged page-family contract.

   Families own width, surface, density and composition only. Hero typography,
   media treatment, metrics and responsive geometry are owned by hero.css.
   ====================================================================== */
body[data-sw-page-family]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) {
  --sw-hero-content-max:var(--sw-family-wide-max,1480px);
}

/* Resort/profile navigation remains part of the detail composition rather than
   the hero itself. Keep the edge subtle and reuse semantic accents sparingly. */
body[data-sw-page-family="detail"] .sw-resort-section-nav {
  position:relative;
  border-top:0 !important;
  border-bottom-color:rgba(82,170,211,.13) !important;
  background:linear-gradient(180deg,#031b28 0%,#031722 100%) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 .4rem 1rem rgba(0,9,18,.09);
}
body[data-sw-page-family="detail"] .sw-resort-section-nav::before {
  position:absolute;
  inset:0 0 auto;
  height:1px;
  content:"";
  background:linear-gradient(90deg,transparent 0%,rgba(40,172,226,.48) 22%,rgba(43,170,114,.32) 52%,rgba(242,167,25,.28) 78%,transparent 100%);
  opacity:.72;
  pointer-events:none;
}
body[data-sw-page-family="detail"] .sw-resort-section-nav__link {
  border-radius:.55rem !important;
  transition:background var(--sw-motion-fast,140ms) ease,color var(--sw-motion-fast,140ms) ease,transform var(--sw-motion-fast,140ms) ease !important;
}
body[data-sw-page-family="detail"] .sw-resort-section-nav__link:hover,
body[data-sw-page-family="detail"] .sw-resort-section-nav__link:focus-visible { background:rgba(40,172,226,.065) !important; }
body[data-sw-page-family="detail"] .sw-resort-section-nav__link.is-active {
  background:linear-gradient(180deg,rgba(27,112,151,.34),rgba(16,75,104,.29)) !important;
  color:#effbff !important;
}
body[data-sw-page-family="detail"] .sw-resort-section-nav__link.is-active::after {
  height:2px !important;
  background:linear-gradient(90deg,var(--sw-accent-data,#28ace2),var(--sw-accent-positive,#2baa72)) !important;
  box-shadow:0 0 .5rem rgba(40,172,226,.18);
}

/* Cooler factual surfaces: color is a cue, not decoration. */
body[data-sw-page-family="detail"] {
  --sw-card-bg:
    radial-gradient(105% 108% at 0% 0%,rgba(32,157,207,.060) 0%,rgba(32,157,207,.018) 38%,transparent 62%),
    linear-gradient(135deg,#eaf3f8 0%,#f2f7fa 48%,#f7fafc 100%);
  --sw-card-radius:.72rem;
  --sw-card-border:rgba(20,91,129,.17);
  --sw-card-border-hover:rgba(36,183,238,.30);
  --sw-card-shadow:var(--sw-surface-shadow-light,0 4px 13px rgba(3,29,45,.07));
  --sw-card-shadow-hover:var(--sw-surface-shadow-light-hover,0 8px 20px rgba(3,38,58,.11));
}
body[data-sw-page-family="detail"] .sw-card { box-shadow:var(--sw-card-shadow) !important; }
body[data-sw-page-family="detail"] .sw-card:hover { box-shadow:var(--sw-card-shadow-hover) !important; }
body[data-sw-page-family="detail"] main#sector > .sw-card-grid-section { padding-top:clamp(.72rem,1.05vw,1rem) !important; }

/* P116 — Resort Intelligence Graph bridge: geometry only. Visual surface
   comes from the canonical sw-surface classes emitted by the component. */
.sw-resort-network-bridge{max-width:1480px;margin:.85rem auto 1rem;padding:.9rem 1rem}
.sw-resort-network-bridge>header{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:.7rem}
.sw-resort-network-bridge>header span{display:block;font-size:.62rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.sw-resort-network-bridge>header h2{margin:.12rem 0 0;font-size:1.18rem;font-weight:600}
.sw-resort-network-bridge>header p{margin:.2rem 0 0;font-size:.78rem}
.sw-resort-network-bridge>header>a{flex:0 0 auto;text-decoration:none;font-size:.76rem;font-weight:600}
.sw-resort-network-bridge__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}
.sw-resort-network-bridge__grid article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem .65rem;padding:.72rem}
.sw-resort-network-bridge__grid small{font-size:.63rem}.sw-resort-network-bridge__grid h3{margin:.08rem 0 0;font-size:.88rem;line-height:1.15}.sw-resort-network-bridge__grid h3 a{text-decoration:none}.sw-resort-network-bridge__grid strong{font-size:1rem}.sw-resort-network-bridge__grid strong span{font-size:.54rem}.sw-resort-network-bridge__grid p{grid-column:1/-1;margin:.22rem 0 0;font-size:.7rem;line-height:1.4}
@media(max-width:1050px){.sw-resort-network-bridge__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.sw-resort-network-bridge>header{align-items:flex-start;flex-direction:column}.sw-resort-network-bridge__grid{grid-template-columns:1fr}}

/* P1202: shell-level typography, density and review paint moved to
   skiweather-family-shell.css, the final family postlude. */


/* P177 — Resort family narrative convergence ---------------------------------
 * The closing resort story, network bridge and continuation rail are one
 * canonical dark narrative family across Overview/Profile/Weather/Snow/History.
 * Paint belongs here so route CSS cannot independently drift back to light cards. */
body.sw-page-resort,
body.sw-page-resort-layout {
  --sw-resort-family-dark:#061923;
  --sw-resort-family-dark-2:#082633;
  --sw-resort-family-dark-3:#0a2d3b;
  --sw-resort-family-border:rgba(40,172,226,.24);
  --sw-resort-family-border-soft:rgba(121,210,244,.13);
  --sw-resort-family-ink:#eef9fd;
  --sw-resort-family-muted:rgba(222,241,249,.70);
  --sw-resort-family-link:#8edcff;
}
body.sw-page-resort .sw-resort-family-narrative__intelligence .sw-decision-support,
body.sw-page-resort-layout .sw-resort-family-narrative__intelligence .sw-decision-support {
  --sw-decision-bg:linear-gradient(145deg,var(--sw-resort-family-dark-2),var(--sw-resort-family-dark));
  --sw-decision-border:var(--sw-resort-family-border);
  --sw-decision-ink:var(--sw-resort-family-ink);
  --sw-decision-muted:var(--sw-resort-family-muted);
  background:linear-gradient(145deg,var(--sw-resort-family-dark-2),var(--sw-resort-family-dark)) !important;
  border-color:var(--sw-resort-family-border) !important;
  box-shadow:0 .34rem 1rem rgba(0,10,16,.18),inset 0 1px 0 rgba(255,255,255,.025);
}
body.sw-page-resort .sw-resort-family-narrative__intelligence .sw-decision-support__item,
body.sw-page-resort-layout .sw-resort-family-narrative__intelligence .sw-decision-support__item {
  background:color-mix(in srgb,var(--sw-resort-family-dark-2) 96%,var(--sw-decision-accent) 4%) !important;
}
body.sw-page-resort .sw-resort-family-narrative__intelligence a.sw-decision-support__item:hover,
body.sw-page-resort-layout .sw-resort-family-narrative__intelligence a.sw-decision-support__item:hover {
  background:color-mix(in srgb,var(--sw-resort-family-dark-2) 90%,var(--sw-decision-accent) 10%) !important;
}
body.sw-page-resort .sw-resort-family-narrative__intelligence .sw-decision-support__confidence,
body.sw-page-resort-layout .sw-resort-family-narrative__intelligence .sw-decision-support__confidence {
  background:rgba(40,172,226,.075); border-color:rgba(82,202,243,.25);
}
body.sw-page-resort .sw-resort-family-narrative__intelligence .sw-decision-support__actions .sw-action--quiet,
body.sw-page-resort-layout .sw-resort-family-narrative__intelligence .sw-decision-support__actions .sw-action--quiet {
  color:var(--sw-resort-family-link); border-color:rgba(93,200,238,.20); background:rgba(8,42,56,.62);
}
body.sw-page-resort .sw-resort-network-bridge,
body.sw-page-resort-layout .sw-resort-network-bridge {
  color:var(--sw-resort-family-ink) !important;
  border:1px solid var(--sw-resort-family-border) !important;
  background:linear-gradient(145deg,var(--sw-resort-family-dark-2),var(--sw-resort-family-dark)) !important;
  box-shadow:0 .34rem 1rem rgba(0,10,16,.17),inset 0 1px 0 rgba(255,255,255,.025) !important;
}
body.sw-page-resort .sw-resort-network-bridge>header span,
body.sw-page-resort-layout .sw-resort-network-bridge>header span { color:#6fcff2; }
body.sw-page-resort .sw-resort-network-bridge>header h2,
body.sw-page-resort-layout .sw-resort-network-bridge>header h2,
body.sw-page-resort .sw-resort-network-bridge__grid h3,
body.sw-page-resort-layout .sw-resort-network-bridge__grid h3 { color:var(--sw-resort-family-ink); }
body.sw-page-resort .sw-resort-network-bridge>header p,
body.sw-page-resort-layout .sw-resort-network-bridge>header p,
body.sw-page-resort .sw-resort-network-bridge__grid p,
body.sw-page-resort-layout .sw-resort-network-bridge__grid p { color:var(--sw-resort-family-muted); }
body.sw-page-resort .sw-resort-network-bridge a,
body.sw-page-resort-layout .sw-resort-network-bridge a { color:var(--sw-resort-family-link); }
body.sw-page-resort .sw-resort-network-bridge__grid article,
body.sw-page-resort-layout .sw-resort-network-bridge__grid article {
  color:var(--sw-resort-family-ink) !important;
  border:1px solid var(--sw-resort-family-border-soft) !important;
  background:linear-gradient(145deg,#0a2a38,#071f2b) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02) !important;
}
body.sw-page-resort .sw-resort-network-bridge__grid article small,
body.sw-page-resort-layout .sw-resort-network-bridge__grid article small { color:#93cce1; }
body.sw-page-resort .sw-resort-network-bridge__grid article strong,
body.sw-page-resort-layout .sw-resort-network-bridge__grid article strong { color:#dff6ff; }
body.sw-page-resort .sw-resort-network-bridge__grid article strong span,
body.sw-page-resort-layout .sw-resort-network-bridge__grid article strong span { color:#8eb6c7; }
/* P177.4: one family-level interaction treatment for related ski-area cards. */
body.sw-page-resort .sw-resort-network-bridge__grid article,
body.sw-page-resort-layout .sw-resort-network-bridge__grid article {
  transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease;
  transform:translateY(0);
}
body.sw-page-resort .sw-resort-network-bridge__grid article:hover,
body.sw-page-resort .sw-resort-network-bridge__grid article:focus-within,
body.sw-page-resort-layout .sw-resort-network-bridge__grid article:hover,
body.sw-page-resort-layout .sw-resort-network-bridge__grid article:focus-within {
  transform:translateY(-2px);
  border-color:rgba(91,207,244,.38) !important;
  background:linear-gradient(145deg,#0d3343,#082633) !important;
  box-shadow:0 .42rem 1.1rem rgba(0,10,16,.24),inset 0 1px 0 rgba(255,255,255,.04) !important;
}
body.sw-page-resort .sw-resort-network-bridge__grid article:hover h3 a,
body.sw-page-resort .sw-resort-network-bridge__grid article:focus-within h3 a,
body.sw-page-resort-layout .sw-resort-network-bridge__grid article:hover h3 a,
body.sw-page-resort-layout .sw-resort-network-bridge__grid article:focus-within h3 a {
  color:#7edcff !important;
}
@media (prefers-reduced-motion:reduce) {
  body.sw-page-resort .sw-resort-network-bridge__grid article,
  body.sw-page-resort-layout .sw-resort-network-bridge__grid article { transition:none; }
}
body.sw-page-resort .sw-resort-next,
body.sw-page-resort-layout .sw-resort-next {
  border-color:var(--sw-resort-family-border) !important;
  background:linear-gradient(145deg,var(--sw-resort-family-dark-2),var(--sw-resort-family-dark)) !important;
  box-shadow:0 .3rem .92rem rgba(0,10,16,.16),inset 0 1px 0 rgba(255,255,255,.025) !important;
}
body.sw-page-resort .sw-resort-next__copy::before,
body.sw-page-resort-layout .sw-resort-next__copy::before {
  background:linear-gradient(var(--sw-accent-data,#28ace2),var(--sw-accent-positive,#2baa72));
}
body.sw-page-resort .sw-resort-next h2,
body.sw-page-resort-layout .sw-resort-next h2 { color:var(--sw-resort-family-ink) !important; }
body.sw-page-resort .sw-resort-next p,
body.sw-page-resort-layout .sw-resort-next p { color:var(--sw-resort-family-muted) !important; }
body.sw-page-resort .sw-resort-next__action,
body.sw-page-resort-layout .sw-resort-next__action {
  color:#dff6ff !important; border-color:rgba(84,194,235,.22) !important; background:rgba(8,42,56,.72) !important;
}
body.sw-page-resort .sw-resort-next__action:hover,
body.sw-page-resort .sw-resort-next__action:focus-visible,
body.sw-page-resort-layout .sw-resort-next__action:hover,
body.sw-page-resort-layout .sw-resort-next__action:focus-visible {
  color:#fff !important; border-color:rgba(84,194,235,.44) !important; background:#0b3545 !important;
}
body.sw-page-resort .sw-detail-intelligence-stack,
body.sw-page-resort-layout .sw-detail-intelligence-stack { gap:.68rem; }
body.sw-page-resort .sw-resort-family-narrative__network,
body.sw-page-resort-layout .sw-resort-family-narrative__network { margin-bottom:.25rem; }
body.sw-page-resort .sw-resort-family-narrative__next,
body.sw-page-resort-layout .sw-resort-family-narrative__next { margin-top:clamp(.72rem,1.2vw,1rem); }
@media(max-width:760px){
  body.sw-page-resort .sw-resort-network-bridge,
  body.sw-page-resort-layout .sw-resort-network-bridge { padding:.78rem; }
}


/* P177.3 — resort-family closing narrative convergence -----------------------
 * Keep the same closing sequence on Overview/Profile/Weather/Snow/History,
 * while making "Why this resort matters now" a concise decision read rather
 * than another full dashboard block. All rules remain in the central family
 * stylesheet; route-specific overrides are intentionally avoided. */
body.sw-page-resort .sw-resort-family-narrative__intelligence .sw-resort-story--family-compact,
body.sw-page-resort-layout .sw-resort-family-narrative__intelligence .sw-resort-story--family-compact {
  border-radius:.72rem;
}
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__head,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__head {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:.7rem 1rem;
  padding:.68rem .82rem .6rem;
}
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__lead,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__lead { gap:.12rem; }
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__eyebrow,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__eyebrow {
  font-size:.56rem;
  letter-spacing:.085em;
}
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__title,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__title {
  max-width:none;
  font-size:1.02rem;
  line-height:1.15;
  font-weight:560;
}
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__summary,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__summary {
  max-width:78rem;
  margin-top:.04rem;
  font-size:.73rem;
  line-height:1.38;
}
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__confidence,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__confidence {
  min-width:4.5rem;
  padding:.3rem .42rem;
}
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__confidence small,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__confidence small { font-size:.5rem; }
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__confidence strong,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__confidence strong { font-size:.82rem; }
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__grid,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__grid {
  grid-template-columns:repeat(4,minmax(0,1fr));
}
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__item,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__item {
  min-height:0;
  padding:.48rem .58rem .48rem .68rem;
}
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__label,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__label { font-size:.52rem; }
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__item-title,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__item-title {
  font-size:.76rem;
  line-height:1.2;
}
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__detail,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__detail {
  margin-top:.08rem;
  font-size:.64rem;
  line-height:1.3;
}
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__item-action,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__item-action {
  margin-top:.12rem;
  font-size:.61rem;
}
body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__foot,
body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__foot { display:none; }

@media(max-width:900px){
  body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__grid,
  body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:560px){
  body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__head,
  body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__head { grid-template-columns:1fr; }
  body.sw-page-resort .sw-resort-story--family-compact .sw-decision-support__grid,
  body.sw-page-resort-layout .sw-resort-story--family-compact .sw-decision-support__grid { grid-template-columns:1fr 1fr; }
}

/* skiweather-family-shell.css */
/* ======================================================================
   P1202 — canonical family-shell contract

   This file is a final postlude. It owns family-level typography, density,
   section rhythm, generic card paint and cross-family stacking. Route CSS
   may own domain geometry/content visualizations, but not redefine these
   contracts.
   ====================================================================== */

:root{
  --sw-shell-gap-compact:.68rem;
  --sw-shell-gap-regular:.9rem;
  --sw-shell-gap-spacious:1.15rem;
  --sw-shell-card-gap-compact:.52rem;
  --sw-shell-card-gap-regular:.72rem;
  --sw-shell-pad-compact:.72rem;
  --sw-shell-pad-regular:.9rem;
  --sw-shell-control-h-compact:2.2rem;
  --sw-shell-control-h-regular:2.45rem;
  --sw-shell-radius:.74rem;
}

body[data-sw-family-density="compact"]{
  --sw-family-section-gap:var(--sw-shell-gap-compact);
  --sw-family-card-gap:var(--sw-shell-card-gap-compact);
  --sw-family-card-pad:var(--sw-shell-pad-compact);
  --sw-family-control-h:var(--sw-shell-control-h-compact);
}
body[data-sw-family-density="regular"]{
  --sw-family-section-gap:var(--sw-shell-gap-regular);
  --sw-family-card-gap:var(--sw-shell-card-gap-regular);
  --sw-family-card-pad:var(--sw-shell-pad-regular);
  --sw-family-control-h:var(--sw-shell-control-h-regular);
}
body[data-sw-family-density="spacious"]{
  --sw-family-section-gap:var(--sw-shell-gap-spacious);
  --sw-family-card-gap:.86rem;
  --sw-family-card-pad:1rem;
  --sw-family-control-h:2.55rem;
}

/* Canonical family stacks. Content height always wins; family shells never
   manufacture blank vertical space. */
body.sw-family-shell :where(.sw-family-stack,.sw-composition-stack,.sw-intelligence-page,.sw-intelligence-shell){
  min-width:0;
}
body.sw-family-shell :where(.sw-family-stack,.sw-composition-stack,.sw-intelligence-page){
  gap:var(--sw-family-section-gap,var(--sw-shell-gap-regular));
}
body.sw-family-shell .sw-family-compact-feed{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr));
  gap:.5rem;
  min-height:0!important;
  height:auto!important;
  align-items:start!important;
}
body.sw-family-shell .sw-family-compact-feed>*{
  min-height:0!important;
  height:auto!important;
  align-self:start!important;
}

/* ----------------------------------------------------------------------
   Intelligence shell — My SkiWeather is the scale reference.
   ---------------------------------------------------------------------- */
body.sw-page-shell[data-sw-family-shell="intelligence"]{
  --sw-intelligence-body-size:.77rem;
  --sw-intelligence-section-title-size:1.08rem;
  --sw-intelligence-card-heading-size:.86rem;
  --sw-intelligence-card-copy-size:.73rem;
  --sw-intelligence-kicker-size:.61rem;
  --sw-intelligence-heading-weight:600;
  --sw-intelligence-copy-weight:400;
  
  
}
body.sw-page-shell[data-sw-family-shell="intelligence"] .sw-clean-slant-hero h1{
  
  
}
body.sw-page-shell[data-sw-family-shell="intelligence"] :is(.sw-clean-slant-hero__lead,p.sw-clean-slant-hero__lead){
  max-width:52rem;
  
  
  
}
body.sw-page-shell[data-sw-family-shell="intelligence"] .sw-clean-slant-hero__eyebrow{
  
  
  
}
body.sw-page-shell[data-sw-family-shell="intelligence"] :where(.sw-family-track,.sw-intelligence-shell,.sw-intelligence-page) :is(h2,.sw-section-title,.sw-section-heading__title){
  
  
  
  
  
}
body.sw-page-shell[data-sw-family-shell="intelligence"] :where(.sw-family-track,.sw-intelligence-shell,.sw-intelligence-page) :is(h3,.sw-card-title,.sw-surface-title){
  
  
  
  
  
}
body.sw-page-shell[data-sw-family-shell="intelligence"] :where(.sw-family-track,.sw-intelligence-shell,.sw-intelligence-page) :is(p,.sw-card-description,.sw-section-lead,.sw-section-heading__note){
  
  
  
  
}
body.sw-page-shell[data-sw-family-shell="intelligence"] :where(.sw-family-track,.sw-intelligence-shell,.sw-intelligence-page) :is(.sw-rn-kicker,.sw-watch-kicker,.sw-my-kicker,.sw-intelligence-kicker,[class*="__kicker"],[class*="__eyebrow"]){
  
  
  
  
  
}
body.sw-page-shell[data-sw-family-shell="intelligence"] :where(.sw-family-track,.sw-intelligence-shell,.sw-intelligence-page) :is(button,.sw-action,.sw-control,select,input){
  
  
}
body.sw-page-shell[data-sw-family-shell="intelligence"] :where(.sw-intelligence-surface,.sw-family-surface,.sw-decision-surface){
  border-radius:var(--sw-shell-radius);
}

/* ----------------------------------------------------------------------
   Review shell — same quiet dark surface foundation as intelligence pages.
   ---------------------------------------------------------------------- */
body.sw-page-shell[data-sw-family-shell="review"]{
  --sw-review-shell-border:rgba(72,174,215,.20);
  --sw-review-shell-border-hover:rgba(72,190,232,.34);
}
body.sw-page-shell[data-sw-family-shell="review"] :is(.sw-card,.sw-review-card){
  border:1px solid var(--sw-review-shell-border)!important;
  outline:0!important;
  box-shadow:0 7px 22px rgba(0,0,0,.13)!important;
}
body.sw-page-shell[data-sw-family-shell="review"] :is(.sw-card,.sw-review-card):hover{
  border-color:var(--sw-review-shell-border-hover)!important;
}
body.sw-page-shell[data-sw-family-shell="review"] .sw-review-press-image-grid{
  height:clamp(6.8rem,7.5vw,8.2rem)!important;
  aspect-ratio:auto!important;
}

/* ----------------------------------------------------------------------
   Media/gallery shell — family geometry only. Gallery route CSS owns media
   crop/detail internals, never the page track or pagination language.
   ---------------------------------------------------------------------- */
body.sw-page-shell[data-sw-family-shell="webcam-gallery"] .sw-webcam-gallery-shell{
  gap:var(--sw-family-section-gap,var(--sw-shell-gap-compact));
}
body.sw-page-shell[data-sw-family-shell="webcam-gallery"] :where(.sw-webcam-gallery-toolbar,.sw-webcam-gallery-topbar){
  min-width:0;
}

/* ----------------------------------------------------------------------
   Review, report, form and workspace shells share the same central rhythm.
   ---------------------------------------------------------------------- */
body.sw-page-shell[data-sw-family-shell="review"] :where(.sw-family-track,.sw-review-grid-section),
body.sw-page-shell[data-sw-family-shell="data-results"] .sw-family-track,
body.sw-page-shell[data-sw-family-shell="form"] .sw-family-track,
body.sw-page-shell[data-sw-family-shell="workspace"] .sw-family-track{
  gap:var(--sw-family-section-gap,var(--sw-shell-gap-compact));
}

/* Search overlays are application overlays. Raising only the dropdown cannot
   escape an isolated ancestor, so the shell raises the active owner itself. */
body.sw-page-shell :where([data-sw-search-anchor],[data-sw-search-owner]):has([data-sw-search-results-surface]:not([hidden])){
  position:relative;
  z-index:12020!important;
  isolation:auto!important;
}
body.sw-page-shell [data-sw-search-results-surface]:not([hidden]){
  z-index:12021!important;
  text-align:left!important;
}
body.sw-page-shell :where(.sw-family-surface,.sw-surface):has([data-sw-search-results-surface]:not([hidden])){
  z-index:12019!important;
  isolation:auto!important;
  overflow:visible!important;
}

/* Pagination is one family-level primitive. Never center it per route. */
body.sw-page-shell .sw-slant-pagination,
body.sw-page-shell .sw-pagination{
  text-align:left;
}
body.sw-page-shell :is(.sw-slant-pagination__list,.sw-pagination__list){
  justify-content:flex-start!important;
  margin-inline:0 auto!important;
}

/* Compact family surfaces should not stretch a row merely because a sibling
   exposes expandable content. */
body.sw-page-shell[data-sw-family-density="compact"] :where(.sw-family-card-grid,.sw-family-grid){
  align-items:start;
}
body.sw-page-shell[data-sw-family-density="compact"] :where(.sw-family-card-grid,.sw-family-grid)>*{
  min-height:0;
}



/* ======================================================================
   P1205 canonical landing shell
   The landing page owns story/order; this postlude owns reusable type,
   section rhythm, action/card material and the minimum readable text scale.
   Loaded after route CSS by page.php, so routes cannot silently drift.
   ====================================================================== */
body.sw-page-shell[data-sw-family-shell="landing"]{
  --sw-family-section-gap:clamp(1.15rem,1.1rem + .75vw,1.9rem);
  --sw-family-card-gap:clamp(.72rem,.68rem + .35vw,1.05rem);
  --sw-family-card-pad:clamp(.9rem,.84rem + .38vw,1.18rem);
  --sw-family-control-height:2.5rem;
  --sw-landing-track:min(var(--sw-page-max,1640px),calc(100vw - var(--sw-page-gutter,1rem) - var(--sw-page-gutter,1rem)));
  --sw-landing-section-pad:clamp(1.9rem,2.2vw + 1rem,3.05rem);
  --sw-landing-section-title:clamp(1.58rem,1.34rem + .86vw,2.18rem);
  --sw-landing-card-title:clamp(1rem,.95rem + .2vw,1.14rem);
  --sw-landing-body:clamp(.91rem,.885rem + .09vw,.99rem);
  --sw-landing-small:clamp(.78rem,.755rem + .08vw,.84rem);
  --sw-landing-eyebrow:clamp(.76rem,.74rem + .06vw,.81rem);
  --sw-home-track:var(--sw-landing-track);
  --sw-home-bg:var(--sw-dark-bg,#020a0f);
  --sw-home-band-1:color-mix(in srgb,var(--sw-dark-bg,#020a0f) 82%,#08263a 18%);
  --sw-home-band-2:color-mix(in srgb,var(--sw-dark-bg,#020a0f) 70%,#092c43 30%);
  --sw-home-band-3:color-mix(in srgb,var(--sw-dark-bg,#020a0f) 76%,#082438 24%);
  --sw-home-surface:color-mix(in srgb,var(--sw-dark-bg,#020a0f) 70%,#0a2b40 30%);
  --sw-home-surface-strong:color-mix(in srgb,var(--sw-dark-bg,#020a0f) 62%,#0c3148 38%);
  --sw-home-line:color-mix(in srgb,var(--sw-accent-data,#28ace2) 18%,transparent);
  --sw-home-line-strong:color-mix(in srgb,var(--sw-accent-data,#28ace2) 36%,transparent);
  --sw-home-copy:var(--sw-dark-ink,#eef7fb);
  --sw-home-muted:var(--sw-dark-muted,#aabac3);
  --sw-home-dim:var(--sw-dark-dim,#70838f);
  --sw-home-card-shadow:0 .42rem 1.05rem rgba(0,0,0,.24),.44rem .62rem 1.08rem color-mix(in srgb,var(--sw-accent-data,#28ace2) 8%,transparent),.82rem 1.04rem 1.75rem color-mix(in srgb,var(--sw-accent-data,#28ace2) 4%,transparent),inset 1px 1px 0 rgba(229,248,255,.09),inset -.72rem -.86rem 1.55rem rgba(0,0,0,.17);
  --sw-home-card-shadow-hover:0 .58rem 1.26rem rgba(0,0,0,.29),.56rem .76rem 1.28rem color-mix(in srgb,var(--sw-accent-data,#28ace2) 12%,transparent),.94rem 1.18rem 2rem color-mix(in srgb,var(--sw-accent-data,#28ace2) 6%,transparent),inset 1px 1px 0 rgba(235,250,255,.13),inset -.8rem -.95rem 1.68rem rgba(0,0,0,.19);
  overflow-x:clip;
  background:var(--sw-home-bg)!important;
  color:var(--sw-home-copy);
}
body.sw-page-shell[data-sw-family-shell="landing"] :where(#level,main#sector){background:var(--sw-home-bg)!important}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-track{width:var(--sw-landing-track);max-width:var(--sw-landing-track);margin-inline:auto}
body.sw-page-shell[data-sw-family-shell="landing"] main#sector .sw-home-section__inner{padding:var(--sw-landing-section-pad) 0!important}

body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section{position:relative;color:var(--sw-home-copy);isolation:isolate}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section::after{position:absolute;right:0;bottom:0;left:0;height:1px;content:"";pointer-events:none;background:linear-gradient(90deg,transparent 3%,color-mix(in srgb,var(--sw-accent-data,#28ace2) 20%,transparent) 26%,color-mix(in srgb,var(--sw-accent-positive,#2baa72) 10%,transparent) 66%,transparent 97%)}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section__head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.72fr);gap:clamp(1rem,3vw,3rem);align-items:end;margin-bottom:clamp(1.05rem,1.7vw,1.65rem)}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section__head.sw-home-section-heading--compact{align-items:center}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section__head h2,
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-finder-band__copy h2{margin:.16rem 0 0;color:var(--sw-dark-ink,#eef7fb);text-shadow:0 1px 0 rgba(0,0,0,.36),0 .35rem 1.15rem rgba(0,0,0,.16)}
body.sw-page-shell[data-sw-family-shell="landing"] :where(.sw-home-eyebrow,.sw-home-story__type,.sw-home-kicker){color:var(--sw-accent-data,#28ace2);}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section__head>p,
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section__head>div>p{position:relative;max-width:44rem;margin:.42rem 0 0;color:color-mix(in srgb,var(--sw-home-muted,#aabac3) 90%,transparent);}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section__head>p{margin:0;padding-left:.82rem}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section__head>p::before{position:absolute;top:.12rem;bottom:.12rem;left:0;width:2px;border-radius:999px;content:"";background:linear-gradient(180deg,var(--sw-vivid-cyan,#28ace2),var(--sw-vivid-green,#2baa72),var(--sw-vivid-gold,#f2a719));box-shadow:0 0 .7rem color-mix(in srgb,var(--sw-accent-data,#28ace2) 24%,transparent);opacity:.94}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-section-heading__actions{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-section-heading__side{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:.68rem}

/* Readability floor. Labels may remain compact, but explanatory content on the
   landing page may not collapse into the old sub-.8rem homepage scale. */
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section :where(p,li,dd){}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section :where(small,.sw-home-meta-chip,.sw-home-data-row__meta){}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section :where(h3,h4):not(.sw-map-label){}

/* Canonical vivid landing material. It intentionally keeps gradients and
   directional shadows: convergence must not mean flattening the homepage. */
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card{position:relative;border-color:color-mix(in srgb,var(--sw-accent-data,#28ace2) 22%,transparent);box-shadow:var(--sw-home-card-shadow)!important;transition:transform var(--sw-motion-base,240ms) var(--sw-ease-emphasized,ease-out),box-shadow var(--sw-motion-base,240ms) var(--sw-ease-emphasized,ease-out),border-color var(--sw-motion-fast,160ms) ease}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card::after{position:absolute;right:.85rem;bottom:0;left:.85rem;height:1px;border-radius:999px;content:"";pointer-events:none;background:linear-gradient(90deg,transparent,var(--sw-vivid-cyan,#28ace2),color-mix(in srgb,var(--sw-vivid-green,#2baa72) 75%,var(--sw-vivid-gold,#f2a719)),transparent);opacity:.4;transition:opacity .2s ease,transform .24s ease}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card:hover,
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card:focus-within{border-color:color-mix(in srgb,var(--sw-accent-data,#28ace2) 42%,transparent);box-shadow:var(--sw-home-card-shadow-hover)!important}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card:hover::after,
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card:focus-within::after{opacity:.86;transform:scaleX(.96)}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card--decision{--sw-landing-accent:var(--sw-vivid-cyan,#28ace2)}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card--evidence{--sw-landing-accent:var(--sw-vivid-green,#2baa72)}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card--editorial{--sw-landing-accent:var(--sw-vivid-gold,#f2a719)}

/* Landing actions reuse the canonical action primitive; this family layer adds
   the vivid material response once rather than repainting buttons per module. */
body.sw-page-shell[data-sw-family-shell="landing"] .sw-action.sw-home-action{gap:.58rem;min-height:2.45rem;padding:.52rem .84rem;border-radius:999px;box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 .32rem .82rem rgba(0,0,0,.16)}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-action.sw-home-action--primary{color:#fff!important;border-color:color-mix(in srgb,var(--sw-accent-data,#28ace2) 58%,transparent)!important;background:linear-gradient(135deg,color-mix(in srgb,var(--sw-accent-data,#28ace2) 86%,#4bd1f3 14%),color-mix(in srgb,var(--sw-accent-data,#28ace2) 68%,#075780 32%))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 .4rem .94rem rgba(0,0,0,.2),.32rem .46rem 1rem color-mix(in srgb,var(--sw-accent-data,#28ace2) 15%,transparent)}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-action.sw-home-action:hover,
body.sw-page-shell[data-sw-family-shell="landing"] .sw-action.sw-home-action:focus-visible{transform:translateY(-1px);filter:saturate(1.08) brightness(1.03)}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-action__arrow{transition:transform .18s ease}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-action:hover .sw-home-action__arrow{transform:translateX(3px)}

body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-module{min-width:0}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-module>.sw-home-frontpage-block__head h3{}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-module>.sw-home-frontpage-block__head span{}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-module :where(p){}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-module :where(small,em){}
body.sw-page-shell[data-sw-family-shell="landing"] [data-sw-landing-hero="1"] small{}
body.sw-page-shell[data-sw-family-shell="landing"] [data-sw-landing-hero="1"] .sw-home-hero__links a{}
body.sw-page-shell[data-sw-family-shell="landing"] [data-sw-landing-hero="1"] .sw-home-hero__finder-kicker{}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-finder-workflow__step b{}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-finder-workflow__step em{}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-finder-workflow__arrow{}

@media(max-width:760px){
  body.sw-page-shell[data-sw-family-shell="landing"]{--sw-landing-section-title:clamp(1.42rem,1.18rem + 1.3vw,1.72rem);--sw-landing-body:.91rem}
  body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section__head{grid-template-columns:1fr;align-items:start;gap:.7rem}
  body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-section-heading__actions{justify-content:flex-start}
}
@media(prefers-reduced-motion:reduce){
  body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card,
  body.sw-page-shell[data-sw-family-shell="landing"] .sw-action.sw-home-action{transition:none!important}
}

/* ======================================================================
   P1206 homepage clarity convergence
   Resort Personality is the visual reference: restrained Source Sans type,
   compact section rhythm, clean dark surfaces and vivid accents used as
   hierarchy rather than as competing decoration. This final postlude owns
   homepage typography/material so historical route CSS cannot drift again.
   ====================================================================== */
body.sw-page-shell[data-sw-family-shell="landing"]{
  --sw-landing-track:min(var(--sw-family-content-max,1480px),calc(100vw - var(--sw-page-gutter,1rem) - var(--sw-page-gutter,1rem)));
  --sw-landing-section-pad:clamp(1.28rem,.94rem + 1.05vw,1.92rem);
  --sw-landing-section-title:clamp(1.22rem,1.12rem + .38vw,1.56rem);
  --sw-landing-card-title:clamp(.90rem,.86rem + .12vw,1.01rem);
  --sw-landing-body:clamp(.82rem,.80rem + .06vw,.88rem);
  --sw-landing-small:clamp(.70rem,.685rem + .04vw,.75rem);
  --sw-landing-eyebrow:clamp(.63rem,.615rem + .04vw,.68rem);
  --sw-family-section-gap:clamp(.94rem,.84rem + .42vw,1.34rem);
  --sw-family-card-gap:clamp(.62rem,.58rem + .18vw,.82rem);
  --sw-family-card-pad:clamp(.82rem,.78rem + .18vw,.98rem);
  --sw-home-card-shadow:0 .48rem 1.2rem rgba(0,0,0,.22),.16rem .24rem .74rem color-mix(in srgb,var(--sw-accent-data,#28ace2) 7%,transparent),inset 0 1px 0 rgba(230,248,255,.07);
  --sw-home-card-shadow-hover:0 .68rem 1.55rem rgba(0,0,0,.27),.2rem .3rem .92rem color-mix(in srgb,var(--sw-accent-data,#28ace2) 12%,transparent),inset 0 1px 0 rgba(236,250,255,.11);
  
}
body.sw-page-shell[data-sw-family-shell="landing"] :where(.sw-home-hero,.sw-landing-section,.sw-home-finder-band,[class*="sw-home-"]){
  
}

/* Hero: same clean typographic language as the intelligence family. The brand
   stays prominent, but no longer behaves as a separate italic display system. */
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-hero h1{
  
  
  
  
  
  
  text-shadow:0 1px 1px rgba(0,0,0,.48),0 .32rem 1rem rgba(0,19,31,.28)!important;
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-hero__lead{
  max-width:48rem!important;
  
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-hero__intro{
  max-width:46rem!important;
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-kicker{
  margin-bottom:.52rem!important;
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-hero__links{gap:.56rem .86rem!important;margin-top:.76rem!important}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-hero__links a{
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-hero__planner-head strong{
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-hero__planner-head small,
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-hero__planner-grid small{
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-hero__planner-grid strong{
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-hero__planner-grid>*>span{
  
  
  
}

/* Section hierarchy: one title scale, one lead scale, one kicker scale. */
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section__head{
  grid-template-columns:minmax(0,1fr) minmax(220px,.52fr)!important;
  gap:clamp(.8rem,2vw,1.6rem)!important;
  align-items:end!important;
  margin-bottom:clamp(.78rem,.72rem + .28vw,1.04rem)!important;
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section__head h2,
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-finder-band__copy h2,
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-intelligence-heading h2{
  
  
  
  
  
  text-shadow:none!important;
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section__head>p,
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section__head>div>p,
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-intelligence-heading p{
  max-width:48rem!important;
  
  
  
}
/* P1213.9: the earlier compact pass suppressed the editorial gradient lead
   marker. The canonical definition above remains active; no later reset here. */
body.sw-page-shell[data-sw-family-shell="landing"] :is(.sw-home-eyebrow,.sw-home-kicker,[class*="__eyebrow"],[class*="__kicker"]){
  
  
  
  
  
}

/* The homepage historically accumulated microtype from many compact passes.
   The shell now owns a readable floor for semantic copy and metadata. */
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section :where(p,li,dd){
  
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section :where(small,[class*="__meta"],.sw-home-meta-chip,.sw-home-data-row__meta){
  
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section :where(h3,h4,.sw-card-title,.sw-surface-title){
  
  
  
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section :where(button,.sw-action,.sw-control,select,input){
  
  
}

/* Keep important editorial/decision titles one deliberate step above a normal
   card title instead of allowing each module to invent its own scale. */
body.sw-page-shell[data-sw-family-shell="landing"] :is(.sw-home-cockpit__decision h3,.sw-home-opportunity-feature h3,.sw-home-story--featured h3,.sw-home-frontpage-block__head h3){
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-cockpit__score strong{
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] :is(.sw-home-cockpit__metrics small,.sw-home-opportunity-feature__eyebrow,.sw-home-opportunity-resort>span,.sw-home-alpine-briefing--rail>span,.sw-home-live-evidence__item small,.sw-home-hero__snapshot-item span,.sw-home-season-focus__signals small){
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] :is(.sw-home-cockpit__metrics strong,.sw-home-cockpit-signal>strong,.sw-home-opportunity-resort>strong,.sw-home-live-evidence__item>strong){
  
}

/* Embedded data stays dense but no longer drops into 0.5rem microtype. */
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-fragment tbody :is(td,th,a,span,strong,small,b,em){
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-fragment thead :is(th,td,a,span,strong,small,b,em){
  
  
}

/* Cleaner Resort-Personality-like material: restrained dark cards with vivid
   accent rails/hover response. Colour remains expressive without every card
   competing through a different shadow language. */
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card{
  border:1px solid color-mix(in srgb,var(--sw-accent-data,#28ace2) 18%,transparent)!important;
  border-radius:var(--sw-shell-radius,12px)!important;
  background:linear-gradient(145deg,color-mix(in srgb,var(--sw-home-surface,#082131) 94%,#0d3952 6%),color-mix(in srgb,var(--sw-home-bg,#020a0f) 90%,#071c29 10%))!important;
  box-shadow:var(--sw-home-card-shadow)!important;
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card:hover,
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card:focus-within{
  border-color:color-mix(in srgb,var(--sw-landing-accent,var(--sw-accent-data,#28ace2)) 38%,transparent)!important;
  box-shadow:var(--sw-home-card-shadow-hover)!important;
  transform:translateY(-1px);
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card::after{
  right:.7rem!important;
  left:.7rem!important;
  opacity:.34!important;
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card:hover::after,
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-card:focus-within::after{opacity:.72!important}

/* Controls and pills use one compact scale rather than several historical
   0.49–0.72rem variants. */
body.sw-page-shell[data-sw-family-shell="landing"] :is(.sw-home-meta-chip,.sw-home-review__links a,.sw-home-row-detail__actions a,.sw-home-outlook-panel__head>a,.sw-home-intelligence-card__action,.sw-home-intelligence-card__decision,.sw-home-opportunity-resorts>header>a,.sw-home-alpine-briefing--rail>a){
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-action.sw-home-action{
  min-height:2.32rem!important;
  padding:.48rem .78rem!important;
  
  
}

/* Reduce visual noise between sections while preserving the vivid SkiWeather
   gradient signature. */
body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section::after{
  background:linear-gradient(90deg,transparent 4%,color-mix(in srgb,var(--sw-vivid-cyan,#28ace2) 24%,transparent) 28%,color-mix(in srgb,var(--sw-vivid-green,#2baa72) 14%,transparent) 64%,color-mix(in srgb,var(--sw-vivid-gold,#f2a719) 10%,transparent) 84%,transparent 97%)!important;
  opacity:.72;
}

@media(max-width:760px){
  body.sw-page-shell[data-sw-family-shell="landing"]{
    --sw-landing-section-title:clamp(1.16rem,1.02rem + .8vw,1.38rem);
    --sw-landing-card-title:.91rem;
    --sw-landing-body:.82rem;
    --sw-landing-small:.70rem;
    --sw-landing-eyebrow:.63rem;
  }
  body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-hero h1{}
  body.sw-page-shell[data-sw-family-shell="landing"] .sw-landing-section__head{grid-template-columns:1fr!important;align-items:start!important}
}

/* P1206 microtype retirement for high-frequency homepage navigation and compact
   evidence controls that are not ordinary paragraph/small elements. */
body.sw-page-shell[data-sw-family-shell="landing"] :is(.sw-home-storyline a,.sw-home-storyline span,.sw-home-discovery-card a,.sw-home-finder-quickviews strong,.sw-home-finder-quickviews small,.sw-home-live-panel__footer,.sw-home-live-panel__evidence,.sw-home-live-panel__why,.sw-home-row-detail__panel strong,.sw-home-row-detail__panel small,.sw-home-row-detail__values span){
  
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-storyline a{
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-discovery__head h3{
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-discovery__head p,
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-discovery-card p{
  
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-discovery-card h4{
  
  
}
body.sw-page-shell[data-sw-family-shell="landing"] .sw-home-discovery-card>strong{
  
  
}

/* skiweather-intelligence-family.css */
/* ======================================================================
   P163 — intelligence-family convergence

   Resort Personality is the visual reference for the intelligence family.
   This postlude owns shared intelligence-page geometry, section rhythm and
   family-level type. Route styles may still own specialist grids, meters,
   maps and data visualisations, but must not invent another page shell,
   section-header scale or surface spacing system.
   ====================================================================== */

body.sw-page-shell[data-sw-family-shell="intelligence"] {
  --sw-intel-family-section-gap: clamp(.72rem, .64rem + .32vw, 1rem);
  --sw-intel-family-surface-pad: clamp(.84rem, .78rem + .22vw, 1.05rem);
  --sw-intel-family-card-gap: clamp(.52rem, .48rem + .16vw, .68rem);
  --sw-intel-family-section-title: var(--sw-type-h4);
  --sw-intel-family-card-title: var(--sw-type-h5);
  --sw-intel-family-body: var(--sw-type-body);
  --sw-intel-family-support: var(--sw-type-support);
  --sw-intel-family-meta: var(--sw-type-small);
  --sw-intel-family-eyebrow: var(--sw-type-card-eyebrow);
  --sw-intel-family-copy-max: 78ch;
  --sw-intel-family-heading-max: 54rem;
  --sw-family-section-gap: var(--sw-intel-family-section-gap);
}

/* One track. Pages can use either the canonical family track or a legacy
   route shell; both resolve to the same axis and spacing. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector > :is(
  .sw-family-track,
  .sw-intelligence-page,
  .sw-intelligence-shell,
  .sw-briefing-workspace
) {
  box-sizing: border-box;
  width: min(calc(100% - 2rem), var(--sw-family-content-max, 1280px));
  max-width: var(--sw-family-content-max, 1280px);
  margin-inline: auto;
}

body.sw-page-shell[data-sw-family-shell="intelligence"] :is(
  .sw-family-stack,
  .sw-intelligence-page,
  .sw-intelligence-shell,
  .sw-twins-shell,
  .sw-briefing-workspace
) {
  gap: var(--sw-intel-family-section-gap);
}

/* Route-owned intelligence sections converge on the Resort Personality
   surface rhythm. This deliberately does not target nested family cards. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-intro,
  .sw-personality-types,
  .sw-personality-results,
  .sw-personality-method,
  .sw-personality-empty,
  .sw-watch-intro,
  .sw-watch-section,
  .sw-watch-method,
  .sw-watch-disclaimer,
  .sw-watch-empty,
  .sw-twins-intro,
  .sw-twins-search,
  .sw-twins-origin,
  .sw-twins-results,
  .sw-twins-method,
  .sw-twins-empty,
  .sw-intel-intro,
  .sw-intel-section,
  .sw-rn-intro,
  .sw-rn-section,
  .sw-rn-group,
  .sw-my-section,
  .sw-my-tools,
  .sw-my-ranking-panel,
  .sw-my-decision-panel,
  .sw-p143-trips,
  .sw-p144-briefing,
  .sw-p147-discovery,
  .sw-briefing-lead,
  .sw-briefing-editorial,
  .sw-briefing-personal
).sw-intelligence-surface,
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-types,
  .sw-personality-results,
  .sw-personality-method,
  .sw-watch-section,
  .sw-watch-method,
  .sw-watch-disclaimer,
  .sw-twins-origin,
  .sw-twins-results,
  .sw-twins-method,
  .sw-intel-section,
  .sw-rn-section,
  .sw-rn-group,
  .sw-my-tools,
  .sw-my-ranking-panel,
  .sw-my-decision-panel,
  .sw-p144-briefing,
  .sw-p147-discovery,
  .sw-briefing-editorial,
  .sw-briefing-personal
) {
  padding: var(--sw-intel-family-surface-pad);
}

/* Legacy route sections that position themselves independently are pulled
   back onto the family track. Inside an existing .sw-family-track they remain
   full width and do not gain a second horizontal inset. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector > :is(
  .sw-personality-intro,
  .sw-personality-types,
  .sw-personality-results,
  .sw-personality-method,
  .sw-personality-empty,
  .sw-watch-intro,
  .sw-watch-section,
  .sw-watch-method,
  .sw-watch-disclaimer,
  .sw-watch-empty,
  .sw-intelligence-track
) {
  width: min(calc(100% - 2rem), var(--sw-family-content-max, 1280px));
  max-width: var(--sw-family-content-max, 1280px);
  margin: var(--sw-intel-family-section-gap) auto 0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] .sw-family-track > :is(
  .sw-intelligence-track,
  .sw-personality-intro,
  .sw-personality-types,
  .sw-personality-results,
  .sw-personality-method,
  .sw-watch-intro,
  .sw-watch-section,
  .sw-watch-method,
  .sw-watch-disclaimer,
  .sw-twins-intro,
  .sw-twins-search,
  .sw-twins-origin,
  .sw-twins-results,
  .sw-twins-method
) {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

/* One section-heading composition. Both canonical component markup and the
   existing intelligence routes map to this contract during migration. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-section-heading,
  .sw-personality-section-head,
  .sw-watch-section__head,
  .sw-twins-section-head,
  .sw-intel-section__head,
  .sw-intelligence-section-head,
  .sw-rn-section__head,
  .sw-my-section-head,
  .sw-my-panel__head
) {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: .72rem 1rem;
  min-width: 0;
  margin: 0 0 .72rem;
  padding: 0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-section-heading__copy,
  .sw-personality-section-head > div,
  .sw-watch-section__head > div,
  .sw-twins-section-head > div,
  .sw-intel-section__head > div,
  .sw-intelligence-section-head > div,
  .sw-rn-section__head > div,
  .sw-my-section-head > div,
  .sw-my-panel__head > div
) {
  min-width: 0;
  max-width: var(--sw-intel-family-heading-max);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-section-heading__side,
  .sw-twins-section-head__actions,
  .sw-my-panel__actions
) {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .34rem;
}

/* Intelligence typography is deliberately tighter than editorial/content
   pages. Hero typography remains owned by the clean-slant hero contract. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-family-track,
  .sw-intelligence-page,
  .sw-intelligence-shell,
  .sw-intelligence-track,
  .sw-briefing-workspace
) h2:not(.sw-clean-slant-hero h2) {
  font-size: var(--sw-intel-family-section-title) !important;
  font-style: normal !important;
  font-weight: 500 !important;
  line-height: 1.16 !important;
  letter-spacing: -.010em !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-family-track,
  .sw-intelligence-page,
  .sw-intelligence-shell,
  .sw-intelligence-track,
  .sw-briefing-workspace
) h3 {
  font-size: var(--sw-intel-family-card-title) !important;
  font-style: normal !important;
  font-weight: 500 !important;
  line-height: 1.20 !important;
  letter-spacing: -.004em !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-family-track,
  .sw-intelligence-page,
  .sw-intelligence-shell,
  .sw-intelligence-track,
  .sw-briefing-workspace
) :is(p,li,dd,blockquote) {
  font-size: var(--sw-intel-family-body) !important;
  font-weight: 300 !important;
  line-height: 1.46 !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-section-heading__note,
  .sw-section-lead,
  .sw-card-description,
  .sw-surface-description,
  [class$="__description"],
  [class$="__hint"],
  [class$="__note"]
) {
  font-size: var(--sw-intel-family-support) !important;
  line-height: 1.43 !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-kicker,
  .sw-watch-kicker,
  .sw-twins-kicker,
  .sw-rn-kicker,
  .sw-my-kicker,
  .sw-intel-kicker,
  .sw-intelligence-kicker,
  .sw-section-heading__eyebrow,
  [class$="__eyebrow"]
) {
  font-size: var(--sw-intel-family-eyebrow) !important;
  font-weight: 500 !important;
  line-height: 1.16 !important;
  letter-spacing: .055em !important;
  text-transform: uppercase !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  small,
  .sw-meta,
  .sw-card-meta,
  [class$="__meta"]
) {
  font-size: var(--sw-intel-family-meta) !important;
  line-height: 1.34 !important;
}

/* Cards share one compact internal rhythm. Specialist grids remain route-owned. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-family-card {
  border-radius: .70rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-type,
  .sw-personality-resort,
  .sw-watch-anomaly,
  .sw-watch-risk,
  .sw-twins-pair,
  .sw-change-card,
  .sw-briefing-card,
  .sw-rn-card
).sw-family-card {
  padding: clamp(.68rem, .64rem + .12vw, .80rem);
}

/* Intro/search rows retain their route-specific columns but use the same
   vertical density as the rest of the family. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-intro__copy,
  .sw-personality-search,
  .sw-watch-intro__copy,
  .sw-twins-intro,
  .sw-twins-search,
  .sw-intel-intro
) {
  padding: var(--sw-intel-family-surface-pad);
}

body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-intro p,
  .sw-watch-intro p,
  .sw-twins-intro p,
  .sw-twins-search p,
  .sw-intel-intro p,
  .sw-section-heading__note
) {
  max-width: var(--sw-intel-family-copy-max);
  margin-top: .34rem;
}

/* Actions should read as controls, not a second typographic system. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-action,
  button,
  input,
  select,
  textarea
) {
  font-size: clamp(.76rem, .75rem + .025vw, .81rem) !important;
}

@media (max-width: 760px) {
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector > :is(
    .sw-family-track,
    .sw-intelligence-page,
    .sw-intelligence-shell,
    .sw-briefing-workspace,
    .sw-personality-intro,
    .sw-personality-types,
    .sw-personality-results,
    .sw-personality-method,
    .sw-personality-empty,
    .sw-watch-intro,
    .sw-watch-section,
    .sw-watch-method,
    .sw-watch-disclaimer,
    .sw-watch-empty,
    .sw-intelligence-track
  ) {
    width: min(calc(100% - 1rem), var(--sw-family-content-max, 1280px));
  }
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
    .sw-section-heading,
    .sw-personality-section-head,
    .sw-watch-section__head,
    .sw-twins-section-head,
    .sw-intel-section__head,
    .sw-intelligence-section-head,
    .sw-rn-section__head,
    .sw-my-section-head,
    .sw-my-panel__head
  ) {
    align-items: flex-start;
    flex-direction: column;
  }
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
    .sw-section-heading__side,
    .sw-twins-section-head__actions,
    .sw-my-panel__actions
  ) {
    justify-content: flex-start;
  }
}


/* ======================================================================
   P164 — shared intelligence composition + restrained hierarchy
   ====================================================================== */
body.sw-page-shell[data-sw-family-shell="intelligence"] {
  --sw-intel-family-label: var(--sw-type-label);
  --sw-intel-family-pill: var(--sw-type-small);
  --sw-intel-family-score: var(--sw-type-h5);
  --sw-intel-family-value: var(--sw-type-support);
  --sw-intel-family-emphasis: var(--sw-type-h4);
}

body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-section-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:.62rem .9rem;
  min-width:0;
  margin:0 0 .62rem;
  padding:0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-section-head__copy {
  min-width:0;
  max-width:var(--sw-intel-family-heading-max);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-section-head__actions,
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-actions {
  display:flex;
  flex:0 0 auto;
  flex-wrap:wrap;
  align-items:center;
  gap:.32rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-section-title {
  margin:0!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-section-lead {
  max-width:var(--sw-intel-family-copy-max);
  margin:.30rem 0 0!important;
}

body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-eyebrow,
  .sw-intelligence-card-eyebrow,
  .sw-intelligence-label,
  .sw-personality-resort__type,
  .sw-personality-confidence span,
  .sw-personality-facts span,
  .sw-watch-risk__position,
  .sw-watch-anomaly__rank small
) {
  font-size:var(--sw-intel-family-label)!important;
  font-weight:500!important;
  line-height:1.15!important;
  letter-spacing:.055em!important;
  text-transform:uppercase!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-card-eyebrow {
  display:block;
  margin:0 0 .18rem;
  color:color-mix(in srgb,var(--sw-family-card-tone,var(--sw-accent-data,#28ace2)) 82%,#fff 18%);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-card-title {
  margin:0!important;
  color:var(--sw-dark-heading,#f4fbff);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-card-meta {
  display:block;
  margin-top:.16rem;
  color:var(--sw-dark-muted,#91b1c5);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-card-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.62rem;
  min-width:0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-card-head__copy {min-width:0;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-card-score {
  flex:0 0 auto;
  min-width:3.15rem;
  padding:.32rem .38rem;
  border:1px solid rgba(255,255,255,.055);
  border-radius:.52rem;
  background:rgba(255,255,255,.022);
  text-align:center;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-card-score strong {
  display:block;
  color:var(--sw-dark-heading,#f4fbff);
  font-size:var(--sw-intel-family-score)!important;
  font-weight:500!important;
  line-height:1!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-card-score .sw-intelligence-label {
  display:block;
  margin-top:.16rem;
  color:var(--sw-dark-quiet,#789aae);
}

body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-facts,
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-metrics {
  display:grid;
  gap:.36rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-facts {
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:.52rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-facts>div,
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-metric {
  min-width:0;
  padding:.44rem .48rem;
  border:1px solid rgba(255,255,255,.05);
  border-radius:.52rem;
  background:rgba(255,255,255,.02);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-facts strong,
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-metric strong {
  display:block;
  margin-top:.14rem;
  color:var(--sw-dark-heading,#f4fbff);
  font-size:var(--sw-intel-family-value)!important;
  font-weight:500!important;
  line-height:1.18!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-metric small {
  display:block;
  margin-top:.08rem;
  color:var(--sw-dark-quiet,#789aae);
}

body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-reasons span,.sw-personality-traits span,.sw-personality-signature span,
  .sw-rn-chips span,.sw-rn-card__meta span,.sw-p37-change__signals span,
  .sw-change-card__change,.sw-p37-personal__summary span
) {
  font-size:var(--sw-intel-family-pill)!important;
  font-weight:400!important;
  line-height:1.18!important;
}


body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-twins-pair__bridge strong,.sw-watch-risk__score span,.sw-rn-focus__metrics strong,.sw-briefing-score strong
) {
  font-size:var(--sw-intel-family-emphasis)!important;
  font-weight:500!important;
  line-height:1.05!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-twins-intro__rules small,.sw-watch-risk__score small,.sw-twins-pair__bridge span
) {
  font-size:var(--sw-intel-family-label)!important;
  font-weight:500!important;
  letter-spacing:.05em!important;
}

body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-empty {
  display:grid;
  gap:.18rem;
  min-width:0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-empty__title {
  color:var(--sw-dark-heading,#f4fbff);
  font-size:var(--sw-intel-family-card-title)!important;
  font-weight:500!important;
  line-height:1.22!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-empty__text {
  color:var(--sw-dark-muted,#91b1c5);
  font-size:var(--sw-intel-family-support)!important;
  font-weight:300!important;
  line-height:1.42!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-empty .sw-intelligence-actions {margin-top:.34rem;}

/* Resort Personality is the family reference, but its cards use the same
   restrained hierarchy as every other intelligence card. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-resort__description {
  min-height:3.2em;
  margin:.46rem 0!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-confidence {
  min-width:3.15rem;
  padding:.32rem .38rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-confidence strong {
  font-size:var(--sw-intel-family-score)!important;
  font-weight:500!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-resort__footer>span {
  font-size:var(--sw-intel-family-meta)!important;
  line-height:1.3!important;
}

@media(max-width:760px){
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-section-head{
    align-items:flex-start;
    flex-direction:column;
  }
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-section-head__actions{justify-content:flex-start;}
}
@media(max-width:560px){
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-facts{grid-template-columns:1fr;}
}

/* ======================================================================
   P165 — intelligence storytelling & information hierarchy

   P164 converged construction. P165 gives those shared components one
   narrative grammar: context -> task/read -> primary result -> evidence ->
   next action. Explanatory and method material is intentionally subordinate.
   ====================================================================== */
body.sw-page-shell[data-sw-family-shell="intelligence"] {
  --sw-intel-story-strong: rgba(40,172,226,.30);
  --sw-intel-story-soft: rgba(40,172,226,.10);
  --sw-intel-story-muted: rgba(175,207,224,.68);
}

body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-story-role="context"] {
  border-color: color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 72%,transparent);
  background: color-mix(in srgb,var(--sw-dark-surface,#071d2b) 96%,transparent);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-story-role="primary"] {
  border-color: color-mix(in srgb,var(--sw-accent-data,#28ace2) 34%,var(--sw-dark-border,rgba(40,172,226,.18)));
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-story-role="supporting"] {
  border-color: color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 74%,transparent);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-story-role="method"] {
  opacity:.96;
}

/* Compact narrative guide: orientation rather than another feature panel. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story {
  box-sizing:border-box;
  width:min(calc(100% - 2rem),var(--sw-family-content-max,1280px));
  max-width:var(--sw-family-content-max,1280px);
  margin:var(--sw-intel-family-section-gap) auto 0;
  border:1px solid color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 78%,transparent);
  border-radius:.68rem;
  background:color-mix(in srgb,var(--sw-dark-surface,#071d2b) 97%,transparent);
  overflow:hidden;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-family-track > .sw-intelligence-story {
  width:100%; max-width:none; margin-inline:0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__head {
  display:flex;
  align-items:baseline;
  gap:.38rem .72rem;
  padding:.56rem .74rem .5rem;
  border-bottom:1px solid color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 65%,transparent);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__head .sw-intelligence-eyebrow {flex:0 0 auto;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__title {
  font-size:var(--sw-intel-family-body)!important;
  line-height:1.22!important;
  font-weight:500!important;
  color:var(--sw-dark-heading,#f3f9fc);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__summary {
  min-width:0;
  font-size:var(--sw-intel-family-support)!important;
  line-height:1.35!important;
  font-weight:300!important;
  color:var(--sw-dark-muted,#91b1c5);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__steps {
  display:grid;
  grid-template-columns:repeat(var(--sw-story-cols,4),minmax(0,1fr));
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__steps[data-sw-story-count="3"] {--sw-story-cols:3;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__steps[data-sw-story-count="4"] {--sw-story-cols:4;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__steps[data-sw-story-count="5"] {--sw-story-cols:5;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__step {
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:.42rem;
  min-width:0;
  padding:.58rem .66rem;
  color:inherit;
  text-decoration:none;
  background:transparent;
  border-right:1px solid color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 62%,transparent);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__step:last-child {border-right:0;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector a.sw-intelligence-story__step:hover {
  background:color-mix(in srgb,var(--sw-accent-data,#28ace2) 5%,transparent);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__index {
  display:grid;
  place-items:center;
  width:1.18rem;
  height:1.18rem;
  margin-top:.02rem;
  border:1px solid color-mix(in srgb,var(--sw-accent-data,#28ace2) 28%,transparent);
  border-radius:999px;
  color:var(--sw-accent-data,#28ace2);
  font-size:.54rem!important;
  font-weight:600!important;
  line-height:1!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__copy {
  display:grid;
  gap:.07rem;
  min-width:0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__copy .sw-intelligence-label {
  font-size:.49rem!important;
  letter-spacing:.055em!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__copy > strong {
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:.72rem!important;
  line-height:1.22!important;
  font-weight:500!important;
  color:var(--sw-dark-heading,#f3f9fc);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__copy > small {
  display:block;
  font-size:.61rem!important;
  line-height:1.32!important;
  font-weight:300!important;
  color:var(--sw-intel-story-muted);
}

/* Methodology is available, but it does not compete with live intelligence. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-disclosure {
  padding:0!important;
  overflow:hidden;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-disclosure > summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.62rem .78rem;
  cursor:pointer;
  list-style:none;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-disclosure > summary::-webkit-details-marker {display:none;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-disclosure > summary > span:first-child {
  display:grid;
  gap:.08rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-disclosure > summary strong {
  font-size:var(--sw-intel-family-card-title)!important;
  line-height:1.2!important;
  font-weight:500!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-disclosure > summary small {
  font-size:var(--sw-intel-family-meta)!important;
  font-weight:300!important;
  color:var(--sw-dark-muted,#91b1c5);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-disclosure__toggle {
  flex:0 0 auto;
  width:1.42rem;
  height:1.42rem;
  display:grid;
  place-items:center;
  border:1px solid color-mix(in srgb,var(--sw-accent-data,#28ace2) 26%,transparent);
  border-radius:999px;
  color:var(--sw-accent-data,#28ace2);
  font-size:.82rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-disclosure[open] .sw-intelligence-disclosure__toggle {transform:rotate(45deg);}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-disclosure__body {
  padding:.08rem .78rem .78rem;
  border-top:1px solid color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 58%,transparent);
}

/* P165 hierarchy corrections: uppercase is a label treatment, never a title. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-eyebrow,.sw-intelligence-label,.sw-intelligence-card-eyebrow,
  .sw-personality-kicker,.sw-watch-kicker,.sw-twins-kicker,.sw-rn-kicker,.sw-my-kicker,.sw-intel-kicker,
  .sw-personality-type__count,.sw-watch-risk__position
) {
  font-size:clamp(.48rem,.47rem + .02vw,.53rem)!important;
  line-height:1.15!important;
  letter-spacing:.055em!important;
  font-weight:500!important;
}

/* Stronger information hierarchy inside result cards. Labels and metadata
   recede; resort/relationship title and the actual signal remain dominant. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-signature,.sw-personality-traits,.sw-personality-reasons,
  .sw-watch-reasons,.sw-twins-pair__meta
) {gap:.28rem;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-signature span,.sw-personality-traits span,.sw-personality-reasons span,
  .sw-watch-reason span
) {
  font-size:clamp(.60rem,.59rem + .02vw,.64rem)!important;
  line-height:1.25!important;
  font-weight:400!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-facts > div {
  padding:.54rem .58rem!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-facts strong {
  font-size:.76rem!important;
  font-weight:500!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-resort__footer {
  margin-top:.48rem!important;
  padding-top:.42rem!important;
}

@media(max-width:900px){
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__steps {grid-template-columns:repeat(2,minmax(0,1fr));}
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__step:nth-child(2n){border-right:0;}
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__step:nth-child(n+3){border-top:1px solid color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 62%,transparent);}
}
@media(max-width:560px){
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__head {display:grid;gap:.12rem;}
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__steps {grid-template-columns:1fr;}
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__step {border-right:0;border-top:1px solid color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 62%,transparent);}
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__step:first-child {border-top:0;}
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story-context {
  border-color: color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 72%,transparent);
  background: color-mix(in srgb,var(--sw-dark-surface,#071d2b) 96%,transparent);
}

/* ======================================================================
   P166 — evidence + decision consistency

   Meaning is explicit: score kind, evidence coverage, confidence and
   freshness are separate concepts. Unknown/stale states are never styled as
   negative evidence. Components are intentionally compact so evidence
   semantics add clarity without becoming a new dashboard layer.
   ====================================================================== */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-score {
  display:inline-grid;
  grid-template-columns:auto;
  align-content:center;
  justify-items:end;
  gap:.02rem;
  min-width:3.35rem;
  padding:.30rem .42rem;
  border:1px solid color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 72%,transparent);
  border-radius:.52rem;
  background:color-mix(in srgb,var(--sw-dark-surface-2,#0a2231) 86%,transparent);
  color:var(--sw-dark-heading,#f3f9fc);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-score strong {
  font-size:clamp(.72rem,.70rem + .04vw,.78rem)!important;
  line-height:1.05!important;
  font-weight:550!important;
  letter-spacing:-.01em!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-score > span {
  font-size:clamp(.46rem,.45rem + .015vw,.50rem)!important;
  line-height:1.1!important;
  font-weight:500!important;
  letter-spacing:.045em!important;
  text-transform:uppercase;
  color:var(--sw-dark-muted,#91b1c5);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-score > small {
  max-width:12rem;
  font-size:var(--sw-intel-family-meta)!important;
  font-weight:300!important;
  color:var(--sw-dark-muted,#91b1c5);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-score--compact {
  display:inline-flex;
  align-items:baseline;
  justify-items:initial;
  min-width:0;
  gap:.26rem;
  padding:.20rem .34rem;
  border-radius:999px;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-score--compact strong {font-size:.68rem!important;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-score[data-sw-evidence-state="unknown"] {
  border-style:dashed;
  opacity:.78;
}
/* score type communicates meaning, not quality. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-score[data-sw-score-kind="similarity"] {border-color:color-mix(in srgb,var(--sw-accent-data,#28ace2) 34%,transparent);}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-score[data-sw-score-kind="opportunity"] {border-color:color-mix(in srgb,var(--sw-accent-positive,#33c78a) 34%,transparent);}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-score:is([data-sw-score-kind="risk"],[data-sw-score-kind="caution"]) {border-color:color-mix(in srgb,var(--sw-accent-warning,#f6a326) 36%,transparent);}

body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-meta {
  display:flex;
  flex-wrap:wrap;
  gap:.24rem;
  min-width:0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-item {
  display:inline-flex;
  align-items:baseline;
  gap:.22rem;
  max-width:100%;
  padding:.18rem .32rem;
  border:1px solid color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 66%,transparent);
  border-radius:999px;
  background:color-mix(in srgb,var(--sw-dark-surface-2,#0a2231) 72%,transparent);
  white-space:nowrap;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-item > span {
  font-size:clamp(.46rem,.45rem + .015vw,.50rem)!important;
  line-height:1.1!important;
  font-weight:500!important;
  letter-spacing:.04em!important;
  text-transform:uppercase;
  color:var(--sw-dark-muted,#91b1c5);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-item > strong {
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:clamp(.58rem,.57rem + .02vw,.62rem)!important;
  line-height:1.15!important;
  font-weight:450!important;
  color:var(--sw-dark-heading,#f3f9fc);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-item[data-sw-evidence-state="unknown"] {
  border-style:dashed;
  opacity:.68;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-item[data-sw-evidence-state="stale"] {
  border-color:color-mix(in srgb,var(--sw-accent-warning,#f6a326) 28%,var(--sw-dark-border,rgba(40,172,226,.18)));
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-decision-meta {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.28rem;
  margin:.34rem 0;
}

body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-signal-state {
  display:inline-flex;
  align-items:baseline;
  gap:.28rem;
  max-width:100%;
  padding:.22rem .38rem;
  border:1px solid color-mix(in srgb,var(--sw-accent-data,#28ace2) 26%,transparent);
  border-radius:.46rem;
  background:color-mix(in srgb,var(--sw-dark-surface-2,#0a2231) 72%,transparent);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-signal-state strong {
  font-size:clamp(.60rem,.59rem + .02vw,.64rem)!important;
  line-height:1.2!important;
  font-weight:500!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-signal-state small {
  font-size:var(--sw-intel-family-meta)!important;
  font-weight:300!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-signal-state[data-sw-evidence-state="unknown"] {border-style:dashed;opacity:.72;}

body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure {
  margin-top:.42rem;
  border-top:1px solid color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 52%,transparent);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure > summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
  padding:.38rem 0 .12rem;
  list-style:none;
  cursor:pointer;
  color:var(--sw-dark-muted,#91b1c5);
  font-size:var(--sw-intel-family-meta)!important;
  font-weight:450!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure > summary::-webkit-details-marker {display:none;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure[open] > summary > span:last-child {transform:rotate(45deg);}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure__body {padding:.30rem 0 .08rem;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure__body :is(p,ul) {margin:.18rem 0!important;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure__body ul {padding-left:1.05rem;}


/* P167.1 — compact evidence disclosure
   Use for card-level explanations where evidence is short and categorical.
   Keeps the disclosure subordinate to the card title/description and prevents
   prose/list typography from inflating inside compact result cards. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure--compact-list {
  margin-top:.46rem;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 74%,transparent);
  border-radius:.62rem;
  background:color-mix(in srgb,var(--sw-dark-surface-2,#0a2231) 70%,transparent);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure--compact-list > summary {
  min-height:2rem;
  padding:.40rem .54rem;
  border:0;
  color:color-mix(in srgb,var(--sw-dark-muted,#91b1c5) 90%,#fff 10%);
  font-size:clamp(.58rem,.57rem + .018vw,.62rem)!important;
  font-weight:450!important;
  line-height:1.2!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure--compact-list > summary > span:last-child {
  display:grid;
  width:1.08rem;
  height:1.08rem;
  flex:0 0 1.08rem;
  place-items:center;
  border:1px solid color-mix(in srgb,var(--sw-accent-data,#28ace2) 18%,transparent);
  border-radius:999px;
  color:var(--sw-dark-quiet,#789aae);
  font-size:.68rem;
  line-height:1;
  transition:transform 150ms ease,color 150ms ease,border-color 150ms ease;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure--compact-list[open] > summary {
  border-bottom:1px solid color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 56%,transparent);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure--compact-list[open] > summary > span:last-child {
  color:var(--sw-accent-data,#28ace2);
  border-color:color-mix(in srgb,var(--sw-accent-data,#28ace2) 32%,transparent);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure--compact-list .sw-intelligence-evidence-disclosure__body {
  padding:.46rem .54rem .50rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure--compact-list .sw-intelligence-evidence-disclosure__body > p {
  max-width:56ch;
  margin:0!important;
  color:var(--sw-dark-quiet,#789aae);
  font-size:clamp(.62rem,.61rem + .02vw,.66rem)!important;
  font-weight:300!important;
  line-height:1.42!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure--compact-list .sw-intelligence-evidence-disclosure__body > ul {
  display:flex;
  flex-wrap:wrap;
  gap:.28rem;
  margin:.38rem 0 0!important;
  padding:0!important;
  list-style:none;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure--compact-list .sw-intelligence-evidence-disclosure__body > ul > li {
  width:auto;
  margin:0!important;
  padding:.23rem .38rem;
  border:1px solid color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 58%,transparent);
  border-radius:999px;
  background:color-mix(in srgb,var(--sw-dark-surface-3,#0c2838) 72%,transparent);
  color:color-mix(in srgb,var(--sw-dark-muted,#91b1c5) 86%,#fff 14%);
  font-size:clamp(.60rem,.59rem + .018vw,.64rem)!important;
  font-weight:400!important;
  line-height:1.18!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure--compact-list .sw-intelligence-evidence-meta {
  margin:.38rem 0 0;
  gap:.22rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure--compact-list .sw-intelligence-evidence-item {
  padding:.18rem .30rem;
  border-color:color-mix(in srgb,var(--sw-dark-border,rgba(40,172,226,.18)) 48%,transparent);
  background:transparent;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure--compact-list .sw-intelligence-evidence-item > span {
  font-size:.49rem!important;
  letter-spacing:.045em!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure--compact-list .sw-intelligence-evidence-item > strong {
  font-size:.60rem!important;
  font-weight:450!important;
}

/* Existing page-specific score containers adopt the same restrained scale. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(.sw-twins-pair__bridge,.sw-watch-anomaly__title,.sw-rn-card__head,.sw-briefing-score) .sw-intelligence-score {vertical-align:middle;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-twins-pair__bridge .sw-intelligence-score {margin-inline:auto;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-watch-anomaly__title > .sw-intelligence-score {flex:0 0 auto;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-rn-card__head > .sw-intelligence-score {flex:0 0 auto;}

@media(max-width:560px){
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-item {white-space:normal;}
}

/* --------------------------------------------------------------------------
   P167 — cross-page intelligence context
   One compact, shared context switcher. It is intentionally subordinate to
   the page task and does not become another hero/panel.
   -------------------------------------------------------------------------- */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.72rem;
  min-width:0;
  padding:.48rem .62rem;
  border:1px solid color-mix(in srgb,var(--sw-accent-data,#28ace2) 18%,var(--sw-dark-border,rgba(40,172,226,.18)));
  border-radius:.72rem;
  background:color-mix(in srgb,var(--sw-dark-surface-2,#0a2231) 78%,transparent);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context__identity {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:baseline;
  column-gap:.34rem;
  row-gap:.04rem;
  min-width:0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context__identity > .sw-intelligence-label {
  grid-column:1/-1;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context__identity > strong {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:clamp(.78rem,.76rem + .04vw,.84rem)!important;
  line-height:1.18!important;
  font-weight:520!important;
  color:var(--sw-dark-heading,#f3f9fc);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context__identity > small {
  font-size:clamp(.58rem,.57rem + .015vw,.62rem)!important;
  line-height:1.18!important;
  font-weight:300!important;
  color:var(--sw-dark-muted,#91b1c5);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context__links {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-items:center;
  gap:.24rem;
  min-width:0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context__links .sw-action {
  min-height:1.8rem;
  padding:.28rem .46rem!important;
  font-size:clamp(.59rem,.58rem + .015vw,.63rem)!important;
  font-weight:450!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context__links .sw-action.is-current {
  border-color:color-mix(in srgb,var(--sw-accent-data,#28ace2) 42%,var(--sw-dark-border,rgba(40,172,226,.18)));
  background:color-mix(in srgb,var(--sw-accent-data,#28ace2) 10%,var(--sw-dark-surface-2,#0a2231));
  color:var(--sw-dark-heading,#f3f9fc);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context__clear {
  margin-inline-start:.18rem;
  font-size:clamp(.56rem,.55rem + .015vw,.60rem)!important;
  font-weight:350!important;
  color:var(--sw-dark-muted,#91b1c5);
  text-decoration:none;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context__clear:hover {color:var(--sw-dark-heading,#f3f9fc);}

@media(max-width:760px){
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context {align-items:flex-start;flex-direction:column;}
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context__links {justify-content:flex-start;width:100%;}
}

/* P168.2 — family convergence / no-local-reinvention guard.
   Typography is derived from the global semantic ladder. Route styles own
   composition only. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-flag {
  margin-inline-end:.34rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-rank {
  display:inline-grid;
  min-width:1.7rem;
  min-height:1.34rem;
  place-items:center;
  padding:.12rem .34rem;
  border:1px solid color-mix(in srgb,var(--sw-accent-data,#28ace2) 34%,transparent);
  border-radius:999px;
  background:color-mix(in srgb,var(--sw-accent-data,#28ace2) 8%,transparent);
  color:color-mix(in srgb,var(--sw-accent-data,#28ace2) 74%,#fff 26%);
  font-size:var(--sw-type-label)!important;
  font-weight:600!important;
  line-height:1!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search {
  position:relative;
  z-index:30;
  overflow:visible!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search__field {
  position:relative;
  z-index:31;
  min-width:0;
  overflow:visible;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search__status {
  position:absolute;
  top:50%;
  right:.72rem;
  max-width:7rem;
  overflow:hidden;
  color:var(--sw-dark-quiet,#789aae);
  font-size:var(--sw-type-small)!important;
  line-height:1.1;
  text-overflow:ellipsis;
  white-space:nowrap;
  transform:translateY(-50%);
  pointer-events:none;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search__field > .sw-control {
  width:100%;
  padding-right:7.6rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure > summary {
  padding-inline:.48rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-evidence-disclosure__body {
  padding-inline:.48rem;
}
@media(max-width:560px){
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search__status{
    position:static;display:block;max-width:none;margin:.3rem 0 0;transform:none;
  }
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search__field>.sw-control{padding-right:.75rem;}
}

/* ======================================================================
   P168 — Intelligence family hardening + regression guardrails

   FAMILY OWNED HERE:
   - type scale and uppercase-label scale
   - section/surface rhythm
   - canonical card paint/density
   - action/evidence/metric hierarchy
   - responsive density and overflow safety

   ROUTE OWNED:
   - domain-specific grid geometry
   - charts, maps, matrices and specialist visualisations
   - data-driven accent/tone selection

   New intelligence pages should use data-sw-intel-role and sw-intel-card
   variants instead of creating route-specific visual primitives.
   ====================================================================== */
body.sw-page-shell[data-sw-family-shell="intelligence"] {
  --sw-intel-type-label: var(--sw-type-card-eyebrow);
  --sw-intel-type-meta: var(--sw-type-small);
  --sw-intel-type-support: var(--sw-type-support);
  --sw-intel-type-body: var(--sw-type-body);
  --sw-intel-type-card-title: var(--sw-type-h4);
  --sw-intel-type-section-title: var(--sw-type-h4);
  --sw-intel-radius-card: .72rem;
  --sw-intel-radius-surface: .78rem;
  --sw-intel-space-1: .24rem;
  --sw-intel-space-2: .38rem;
  --sw-intel-space-3: .54rem;
  --sw-intel-space-4: .72rem;
  --sw-intel-space-5: .92rem;
}

/* Canonical role hierarchy. Role changes prominence, never the domain logic. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-intel-role] {
  min-width: 0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-intel-role="context"] {
  --sw-intel-role-opacity: .92;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-intel-role="task"] {
  --sw-intel-role-opacity: .96;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-intel-role="primary"] {
  --sw-intel-role-opacity: 1;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-intel-role="supporting"] {
  --sw-intel-role-opacity: .94;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-intel-role="evidence"] {
  --sw-intel-role-opacity: .90;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-intel-role="next"] {
  --sw-intel-role-opacity: .96;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-intel-role="method"] {
  --sw-intel-role-opacity: .82;
}

/* Canonical card variants. Route styles may arrange these cards but should
   not repaint their typography, border language or basic density. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-family-card {
  min-width: 0;
  border-radius: var(--sw-intel-radius-card) !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-family-card--compact {
  padding: var(--sw-intel-space-4) !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-family-card--result {
  padding: clamp(.72rem,.68rem + .10vw,.84rem) !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-family-card--supporting {
  padding: var(--sw-intel-space-4) !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-family-card--evidence {
  padding: var(--sw-intel-space-3) var(--sw-intel-space-4) !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-family-card--featured {
  padding: var(--sw-intel-space-5) !important;
}

/* Locked type hierarchy. This deliberately outranks route CSS so a page
   cannot accidentally turn labels, pills or supporting prose into headings. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-eyebrow,
  .sw-intelligence-label,
  .sw-intelligence-card-eyebrow,
  .sw-personality-kicker,
  .sw-personality-resort__type,
  .sw-twins-kicker,
  .sw-twins-resort__kicker,
  .sw-watch-kicker,
  .sw-rn-kicker,
  .sw-intel-kicker,
  .sw-my-kicker,
  [class$="__eyebrow"]
) {
  font-size: var(--sw-intel-type-label) !important;
  font-weight: 520 !important;
  line-height: 1.15 !important;
  letter-spacing: .055em !important;
  text-transform: uppercase !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-card-meta,
  .sw-intelligence-evidence-item,
  .sw-intelligence-evidence-item > span,
  .sw-personality-resort__head small,
  .sw-personality-resort__footer > span,
  .sw-twins-count,
  .sw-twins-pair__rank,
  .sw-twins-pair__bridge small,
  .sw-my-empty,
  [class$="__meta"]
) {
  font-size: var(--sw-intel-type-meta) !important;
  line-height: 1.28 !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-section-lead,
  .sw-card-description,
  .sw-surface-description,
  .sw-personality-resort__description,
  .sw-twins-pair__evidence p,
  [class$="__description"],
  [class$="__hint"],
  [class$="__note"]
) {
  font-size: var(--sw-intel-type-support) !important;
  font-weight: 300 !important;
  line-height: 1.42 !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-card-title,
  .sw-intelligence-family-card h3,
  .sw-personality-resort h3,
  .sw-twins-resort h3,
  .sw-rn-card h3
) {
  font-size: var(--sw-intel-type-card-title) !important;
  font-weight: 520 !important;
  line-height: 1.18 !important;
  letter-spacing: -.006em !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-section-title,
  .sw-intelligence-section-head h2,
  .sw-personality-section-head h2,
  .sw-twins-section-head h2,
  .sw-watch-section__head h2,
  .sw-rn-section__head h2,
  .sw-my-panel__head h2
) {
  font-size: var(--sw-intel-type-section-title) !important;
  font-weight: 520 !important;
  line-height: 1.16 !important;
  letter-spacing: -.01em !important;
}

/* Pills/chips are evidence or metadata, not body copy. Long values wrap
   safely instead of enlarging the component or forcing horizontal overflow. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-reasons span,
  .sw-personality-traits span,
  .sw-personality-signature span,
  .sw-rn-chips > *,
  .sw-my-changes > *,
  .sw-intelligence-signal-state,
  .sw-intelligence-evidence-item
) {
  max-width: 100%;
  overflow-wrap: anywhere;
  font-size: var(--sw-intel-type-meta) !important;
  font-weight: 400 !important;
  line-height: 1.18 !important;
}

/* One surface density contract for semantic roles. No role gains nested-panel
   weight merely because a route-specific stylesheet adds padding. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-surface[data-sw-intel-role] {
  border-radius: var(--sw-intel-radius-surface) !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-surface[data-sw-intel-role="context"],
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-surface[data-sw-intel-role="supporting"],
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-surface[data-sw-intel-role="evidence"],
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-surface[data-sw-intel-role="next"] {
  padding: var(--sw-intel-family-surface-pad) !important;
}

/* Methodology is always subordinate and collapsed by markup by default. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-intel-role="method"] > summary > span:first-child > strong {
  font-size: var(--sw-intel-type-body) !important;
  font-weight: 500 !important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-intel-role="method"] > summary > span:first-child > small {
  font-size: var(--sw-intel-type-meta) !important;
  font-weight: 300 !important;
  line-height: 1.35 !important;
}

/* Expanded evidence must remain denser than the card it explains. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-intel-variant="evidence"] .sw-intelligence-evidence-disclosure__body :is(p,li) {
  font-size: var(--sw-intel-type-support) !important;
  font-weight: 300 !important;
  line-height: 1.40 !important;
}

/* Defensive overflow/edge-state rules: long resort names, one-result grids,
   unknown evidence and translated strings must not destabilise the layout. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-card-head__copy,
  .sw-personality-resort__head > div,
  .sw-twins-resort__identity,
  .sw-rn-card__head > div,
  .sw-briefing-card,
  .sw-my-panel
) {
  min-width: 0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-card-title,
  .sw-personality-resort h3,
  .sw-twins-resort h3,
  .sw-rn-card h3,
  .sw-briefing-card strong
) {
  overflow-wrap: anywhere;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-evidence-state="unknown"] {
  opacity: .72;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-evidence-state="stale"] {
  opacity: .86;
}

@media (max-width: 760px) {
  body.sw-page-shell[data-sw-family-shell="intelligence"] {
    --sw-intel-family-section-gap: .68rem;
    --sw-intel-family-surface-pad: .72rem;
  }
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-family-card--result,
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-family-card--featured {
    padding: .72rem !important;
  }
}

@media (max-width: 560px) {
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
    .sw-intelligence-section-head,
    .sw-personality-section-head,
    .sw-twins-section-head,
    .sw-watch-section__head,
    .sw-rn-section__head,
    .sw-my-panel__head
  ) {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: .46rem !important;
  }
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
    .sw-intelligence-section-head__actions,
    .sw-twins-section-head__actions,
    .sw-my-panel__actions
  ) {
    width: 100%;
    justify-content: flex-start !important;
  }
}


/* ======================================================================
   P168.2 — final intelligence-family convergence postlude
   Global semantic typography is the authority. The family only maps roles;
   route styles must not invent smaller text tiers.
   ====================================================================== */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-story__copy > strong,
  .sw-intelligence-context__identity > strong,
  .sw-intelligence-evidence-item > strong
){
  font-size:var(--sw-type-small)!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-story__copy > small,
  .sw-intelligence-score > small,
  .sw-intelligence-context__identity > small,
  .sw-intelligence-evidence-disclosure > summary,
  .sw-intelligence-evidence-disclosure--compact-list > summary,
  .sw-intelligence-evidence-disclosure--compact-list .sw-intelligence-evidence-disclosure__body > p,
  .sw-intelligence-evidence-disclosure--compact-list .sw-intelligence-evidence-disclosure__body > ul > li
){
  font-size:var(--sw-type-pill)!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-story__index,
  .sw-intelligence-story__copy .sw-intelligence-label,
  .sw-intelligence-score > span,
  .sw-intelligence-evidence-disclosure--compact-list .sw-intelligence-evidence-item > span
){
  font-size:var(--sw-type-label)!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-score strong{
  font-size:var(--sw-type-h5)!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-score--compact strong{
  font-size:var(--sw-type-support)!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-facts strong{
  font-size:var(--sw-type-support)!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context__links .sw-action{
  font-size:var(--sw-type-small)!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-context__clear{
  font-size:var(--sw-type-pill)!important;
}
/* Search surfaces are application overlays. They must escape adjacent cards. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(.sw-intelligence-search,.sw-twins-search,.sw-personality-search):has([data-sw-search-results-surface]:not([hidden])){
  z-index:12020!important;
  overflow:visible!important;
  isolation:auto!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector [data-sw-search-results-surface]:not([hidden]){
  z-index:12021!important;
}

/* P168.2 semantic component sizes: values use the global ladder too. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-type__count,
  .sw-watch-anomaly__value,
  .sw-rn-focus__metrics small,
  .sw-region-card__score small
){font-size:var(--sw-type-small)!important;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-rn-focus__metrics span,
  .sw-watch-risk__score small
){font-size:var(--sw-type-label)!important;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-rn-focus__metrics strong,
  .sw-watch-risk__score span,
  .sw-region-card__score strong
){font-size:var(--sw-type-h4)!important;}


/* ======================================================================
   P168.3 — convergence cleanup

   Resort Personality remains the intelligence-family reference. Global
   primitives own hero typography, actions, surfaces and semantic type.
   This family layer only maps intelligence-specific roles to that system.
   ====================================================================== */

/* Do not create an intelligence-only reading scale. Ordinary prose is the
   global body tier; supporting copy is one tier lower. */
body.sw-page-shell[data-sw-family-shell="intelligence"] {
  --sw-intel-family-body: var(--sw-type-body);
  --sw-intel-family-support: var(--sw-type-support);
  --sw-intel-family-meta: var(--sw-type-small);
  --sw-intel-family-eyebrow: var(--sw-type-card-eyebrow);
  --sw-intel-type-label: var(--sw-type-card-eyebrow);
  --sw-intel-type-meta: var(--sw-type-small);
  --sw-intel-type-support: var(--sw-type-support);
  --sw-intel-type-body: var(--sw-type-body);
  --sw-intel-type-card-title: var(--sw-type-h4);
  --sw-intel-type-section-title: var(--sw-type-h4);
}

/* Canonical family-card interior: route CSS owns grid geometry only. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-family-card,
  .sw-personality-resort,
  .sw-personality-type,
  .sw-twins-pair,
  .sw-twins-resort,
  .sw-region-card,
  .sw-region-resort,
  .sw-alert-row,
  .sw-my-feed-item
) {
  color: var(--sw-dark-heading,#f4fbff);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-family-card,
  .sw-personality-resort,
  .sw-personality-type,
  .sw-twins-pair,
  .sw-region-card,
  .sw-region-resort,
  .sw-alert-row,
  .sw-my-feed-item
) :is(p,.sw-intelligence-card-copy) {
  font-size: var(--sw-type-support)!important;
  font-weight: 400!important;
  line-height: 1.44!important;
  color: var(--sw-dark-muted,#91b1c5);
}

/* Card/status eyebrows are intentionally compact. Never allow a plain route
   span with uppercase text to inherit body-size typography. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-card-eyebrow,
  .sw-my-feed-item__label,
  .sw-alert-row__label,
  .sw-region-card__eyebrow,
  .sw-region-summary__label,
  .sw-region-detail-head__eyebrow,
  .sw-region-improvement__eyebrow
) {
  display:block;
  margin:0 0 .18rem;
  color:color-mix(in srgb,var(--sw-family-card-tone,var(--sw-surface-tone,var(--sw-accent-data,#28ace2))) 82%,#fff 18%);
  font-size:var(--sw-type-card-eyebrow)!important;
  font-weight:500!important;
  line-height:1.16!important;
  letter-spacing:.055em!important;
  text-transform:uppercase!important;
}

/* Shared rank treatment for all intelligence result families. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-rank,
  .sw-twins-pair__rank,
  .sw-region-card__rank,
  .sw-watch-anomaly__rank
) {
  color:color-mix(in srgb,var(--sw-family-card-tone,var(--sw-surface-tone,var(--sw-accent-data,#28ace2))) 84%,#fff 16%);
  font-size:var(--sw-type-support)!important;
  font-weight:600!important;
  line-height:1!important;
  letter-spacing:-.015em!important;
}

/* Resort Personality's interpretation block is explanatory support, not a
   second headline/card system. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-method__body {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,1.85fr);
  gap:.72rem;
  align-items:start;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-method__body > div:first-child h2 {
  font-size:var(--sw-type-h4)!important;
  margin:0!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-method__body > div:first-child p,
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-method__rules > .sw-family-card > span {
  font-size:var(--sw-type-support)!important;
  font-weight:400!important;
  line-height:1.44!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-method__rules > .sw-family-card > strong {
  font-size:var(--sw-type-support)!important;
  font-weight:500!important;
  line-height:1.25!important;
}

/* Regional cards use the same hierarchy as Resort Personality cards. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-region-card h2,
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-region-resort h3 {
  font-size:var(--sw-type-h4)!important;
  font-weight:500!important;
  line-height:1.20!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-region-card p,
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-region-resort p,
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-region-summary small {
  font-size:var(--sw-type-support)!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-region-summary strong {
  font-size:var(--sw-type-h5)!important;
  font-weight:500!important;
}

/* Feed/alert cards: title first, signal label second, detail third. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(.sw-my-feed-item,.sw-alert-row) strong {
  font-size:var(--sw-type-h5)!important;
  font-weight:500!important;
  line-height:1.20!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(.sw-my-feed-item,.sw-alert-row) small {
  font-size:var(--sw-type-small)!important;
  line-height:1.35!important;
}

/* Card hover is a capability from the global surface owner. Route cards that
   are actionable opt into that capability through canonical classes/attrs. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-type,
  .sw-personality-resort:has(a),
  .sw-twins-pair,
  .sw-region-card,
  .sw-region-resort,
  .sw-alert-row,
  .sw-my-feed-item
) {
  transition:transform var(--sw-motion-interactive,240ms ease),border-color var(--sw-motion-subtle,140ms ease),background var(--sw-motion-interactive,240ms ease),box-shadow var(--sw-motion-interactive,240ms ease);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-type,
  .sw-personality-resort:has(a),
  .sw-twins-pair,
  .sw-region-card,
  .sw-region-resort,
  .sw-alert-row,
  .sw-my-feed-item
):is(:hover,:focus-within) {
  transform:var(--sw-surface-lift,translateY(-2px));
  border-color:var(--sw-surface-border-hover,var(--sw-surface-border))!important;
  background:var(--sw-surface-bg-hover,var(--sw-surface-bg))!important;
  box-shadow:var(--sw-surface-shadow-hover,var(--sw-surface-shadow))!important;
}

@media(max-width:760px){
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-method__body{grid-template-columns:1fr;}
}

/* --------------------------------------------------------------------------
   P169 — connected intelligence journeys
   Route vocabulary and button appearance remain centrally owned. This layer
   only composes existing global action primitives into compact journey rows.
   -------------------------------------------------------------------------- */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-journey-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.32rem;
  min-width:0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-journey-actions .sw-action {
  flex:0 0 auto;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-personality-resort__footer,
  .sw-rn-focus footer,
  .sw-twins-resort__actions,
  .sw-watch-anomaly__main,
  .sw-watch-risk__body
) .sw-intelligence-journey-actions {
  margin-top:.38rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-personality-resort__primary-actions .sw-intelligence-journey-actions {
  margin-top:0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-twins-resort__actions .sw-intelligence-journey-actions {
  display:contents;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-rn-focus footer .sw-intelligence-journey-actions {
  margin-top:0;
}
@media(max-width:640px){
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-journey-actions {
    width:100%;
  }
}


/* P205 — family search panel contract. Routes own column geometry; the family
   owns control spacing, open-overlay stacking and readable search composition. */
body.sw-page-shell[data-sw-family-shell="intelligence"] .sw-intelligence-search-panel{
  position:relative;z-index:20;overflow:visible!important;isolation:isolate;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] .sw-intelligence-search-form{
  box-sizing:border-box;padding:.66rem .7rem;border:1px solid color-mix(in srgb,var(--sw-accent-data,#28ace2) 16%,transparent);border-radius:.68rem;background:rgba(2,18,27,.34);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] .sw-intelligence-search-form>label{margin-bottom:.36rem;color:var(--sw-dark-heading,#f4fbff);font-size:var(--sw-intel-family-meta);font-weight:500;}
body.sw-page-shell[data-sw-family-shell="intelligence"] .sw-intelligence-search-panel.sw-search-surface-open{z-index:12020!important;isolation:auto!important;}

/* ======================================================================
   P206 — canonical linked-resort card behaviour across intelligence pages.
   Resort Personality remains the visual reference; route CSS owns only grid
   geometry while this family layer owns hover/focus emphasis and link rhythm.
   ====================================================================== */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-resort-card,
  [data-sw-resort-card],
  .sw-personality-resort,
  .sw-rn-card,
  .sw-rn-starter,
  .sw-region-card,
  .sw-region-resort,
  .sw-watch-anomaly,
  .sw-watch-risk,
  .sw-twins-pair
) {
  position:relative;
  --sw-surface-lift:translateY(-2px);
  transition:transform var(--sw-motion-interactive,240ms ease),border-color var(--sw-motion-subtle,140ms ease),background var(--sw-motion-interactive,240ms ease),box-shadow var(--sw-motion-interactive,240ms ease);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-resort-card,
  [data-sw-resort-card],
  .sw-personality-resort,
  .sw-rn-card,
  .sw-rn-starter,
  .sw-region-card,
  .sw-region-resort,
  .sw-watch-anomaly,
  .sw-watch-risk,
  .sw-twins-pair
):is(:hover,:focus-within) {
  transform:var(--sw-surface-lift,translateY(-2px));
  border-color:var(--sw-surface-border-hover,color-mix(in srgb,var(--sw-family-card-tone,var(--sw-accent-data,#28ace2)) 34%,transparent));
  background:var(--sw-surface-bg-hover,var(--sw-surface-bg,linear-gradient(135deg,rgba(7,33,47,.96),rgba(3,22,32,.96))));
  box-shadow:var(--sw-surface-shadow-hover,0 12px 28px rgba(0,0,0,.16));
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
  .sw-intelligence-resort-card,
  [data-sw-resort-card],
  .sw-personality-resort,
  .sw-rn-card,
  .sw-rn-starter,
  .sw-region-card,
  .sw-region-resort,
  .sw-watch-anomaly,
  .sw-watch-risk,
  .sw-twins-pair
) a:focus-visible {
  outline:2px solid color-mix(in srgb,var(--sw-accent-data,#28ace2) 74%,white 26%);
  outline-offset:3px;
  border-radius:.28rem;
}
@media (prefers-reduced-motion:reduce){
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
    .sw-intelligence-resort-card,[data-sw-resort-card],.sw-personality-resort,.sw-rn-card,.sw-rn-starter,.sw-region-card,.sw-region-resort,.sw-watch-anomaly,.sw-watch-risk,.sw-twins-pair
  ){transition:none;}
  body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector :is(
    .sw-intelligence-resort-card,[data-sw-resort-card],.sw-personality-resort,.sw-rn-card,.sw-rn-starter,.sw-region-card,.sw-region-resort,.sw-watch-anomaly,.sw-watch-risk,.sw-twins-pair
  ):is(:hover,:focus-within){transform:none;}
}

/* ======================================================================
   P209 — intelligence-family convergence: search overlays + compact state
   ----------------------------------------------------------------------
   Search/autocomplete is an application overlay, not document content.
   Keep it above later panels across all intelligence routes and give every
   intelligence search the same comfortable internal rhythm.
   ====================================================================== */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search-panel{
  position:relative!important;
  z-index:40!important;
  overflow:visible!important;
  contain:none!important;
  isolation:auto!important;
  padding:clamp(.82rem,1.05vw,1rem)!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search-form{
  position:relative;
  z-index:2;
  width:100%;
  min-width:0;
  padding:.78rem .82rem!important;
  border-radius:.72rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search-form :is(input,.sw-control){
  min-height:2.7rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search-panel.sw-search-surface-open,
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search-panel:has([data-sw-search-results-surface]:not([hidden])){
  z-index:32000!important;
  overflow:visible!important;
  isolation:auto!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search-panel [data-sw-search-anchor]{
  position:relative!important;
  z-index:32001!important;
  overflow:visible!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search-panel [data-sw-search-results-surface]:not([hidden]){
  z-index:32002!important;
  max-height:min(27rem,60vh);
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search-panel.sw-search-surface-open ~ *{
  position:relative;
  z-index:0!important;
}

/* Compact status tiles replace the old circular/elliptical briefing metrics.
   This is a family rule because decision surfaces recur across intelligence
   routes; route CSS should only own the number of columns. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-decision-surface__aside{
  min-width:0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-decision-surface__aside > *{
  box-sizing:border-box!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:3.15rem!important;
  aspect-ratio:auto!important;
  border-radius:.66rem!important;
  display:grid!important;
  align-content:center!important;
  justify-items:start!important;
  padding:.52rem .64rem!important;
  background:linear-gradient(145deg,rgba(9,45,61,.54),rgba(4,27,38,.68))!important;
  border:1px solid color-mix(in srgb,var(--sw-accent-data,#28ace2) 15%,transparent)!important;
  text-align:left!important;
}

/* P210 — intelligence search composition. Keep route geometry local, but make
   spacing/readability consistent across the family. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search-panel{
  overflow:visible!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search-form{
  display:block;
  box-sizing:border-box;
  padding:.84rem .9rem!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search-form>label{
  display:block;
  margin:0 0 .42rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-search-form [data-sw-search-anchor]{
  min-width:0;
}


/* Global narrative rule: intelligence journeys are never numbered. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__index{display:none!important;}
/* Unnumbered intelligence journeys: labels/copy own the full step width. */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__step{grid-template-columns:minmax(0,1fr)!important;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__index{display:none!important;}

/* SW_UNNUMBERED_INTELLIGENCE_STORIES */
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__step{grid-template-columns:minmax(0,1fr)!important;}
body.sw-page-shell[data-sw-family-shell="intelligence"] main#sector .sw-intelligence-story__index{display:none!important;}

/* SW_ALPINE_WATCH_CARD_REFINEMENT_BEGIN */
/* Alpine Watch uses the canonical intelligence-family card surface. This block
   only defines family-level geometry and semantic zones for the route. */
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-section__head {
  align-items:flex-start;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-section__head > div {
  flex:1 1 auto;
  width:auto;
  max-width:none!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-section__head :is(p,.sw-section-heading__note,.sw-section-lead) {
  max-width:none!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.72rem;
  align-items:stretch;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card {
  min-width:0;
  display:flex;
  flex-direction:column;
  padding:clamp(.72rem,.9vw,.9rem)!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.55rem;
  min-width:0;
  margin-bottom:.58rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__rank {
  color:var(--sw-dark-muted,#9ab1bd);
  font-size:var(--sw-type-small)!important;
  font-weight:600;
  line-height:1.2;
  white-space:normal;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__identity {
  display:block;
  min-width:0;
  margin:0 0 .62rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__identity h3 {
  min-width:0;
  margin:0!important;
  font-size:var(--sw-type-h4)!important;
  font-weight:520!important;
  line-height:1.18!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
  hyphens:auto;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__identity h3 a {
  display:inline;
  color:inherit;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__identity > span {
  display:block;
  margin-top:.18rem;
  color:var(--sw-dark-muted,#9ab1bd);
  font-size:var(--sw-type-small)!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__body {
  display:grid;
  gap:.5rem;
  min-width:0;
  margin-bottom:.68rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__summary {
  margin:0!important;
  color:var(--sw-dark-heading,#f4fbff);
  font-size:var(--sw-type-support)!important;
  font-weight:500!important;
  line-height:1.4!important;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__facts {
  display:grid;
  gap:.42rem;
  margin:0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__facts > div {
  display:grid;
  grid-template-columns:minmax(4.2rem,.32fr) minmax(0,1fr);
  gap:.45rem;
  align-items:start;
  min-width:0;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__facts dt {
  margin:0;
  color:var(--sw-dark-muted,#9ab1bd);
  font-size:var(--sw-type-small)!important;
  font-weight:500;
  line-height:1.35;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__facts dd {
  min-width:0;
  margin:0;
  font-size:var(--sw-type-support)!important;
  line-height:1.4;
  overflow-wrap:anywhere;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__watch {
  display:grid;
  gap:.12rem;
  margin-top:.04rem;
  padding-top:.48rem;
  border-top:1px solid color-mix(in srgb,var(--sw-surface-border,#2a4b59) 72%,transparent);
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__watch strong {
  font-size:var(--sw-type-small)!important;
  font-weight:600;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__watch span {
  font-size:var(--sw-type-support)!important;
  line-height:1.4;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__footer {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.34rem;
  margin-top:auto;
  padding-top:.2rem;
}
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__footer .sw-intelligence-journey-actions {
  margin-top:0;
}
/* Scores stay as compact metadata. Alpine Watch resort cards no longer use
   colored meter/progress bars. */
body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card .sw-watch-meter {
  display:none!important;
}
@media(max-width:1120px){
  body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:820px){
  body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:560px){
  body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-grid{grid-template-columns:1fr;}
  body.sw-page-shell[data-sw-family-shell="intelligence"].sw-page-alpine-watch main#sector .sw-watch-resort-card__facts > div{grid-template-columns:1fr;gap:.08rem;}
}
/* SW_ALPINE_WATCH_CARD_REFINEMENT_END */

/* skiweather-composition.css */
/* P117 — canonical composition
   Owns section rhythm, section heading/action geometry, grid presets and
   pagination placement. Component paint remains in the P116 surface/card layer. */

:root {
  --sw-composition-gap:clamp(.78rem,1.2vw,1.05rem);
  --sw-composition-gap-compact:clamp(.52rem,.85vw,.72rem);
  --sw-composition-gap-relaxed:clamp(1rem,1.7vw,1.4rem);
  --sw-composition-pad:clamp(.82rem,1.35vw,1.12rem);
  --sw-composition-head-gap:.72rem;
  --sw-composition-grid-min:15rem;
  --sw-composition-media-min:17rem;
}

.sw-composition-stack,
.sw-family-stack {
  display:grid;
  gap:var(--sw-composition-gap);
  min-width:0;
  max-width:100%;
}
.sw-composition-stack--compact,
.sw-family-stack--compact { gap:var(--sw-composition-gap-compact); }

.sw-composition {
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.sw-composition--density-compact { --sw-composition-local-gap:var(--sw-composition-gap-compact); }
.sw-composition--density-regular { --sw-composition-local-gap:var(--sw-composition-gap); }
.sw-composition--density-relaxed { --sw-composition-local-gap:var(--sw-composition-gap-relaxed); }

.sw-composition__body {
  display:grid;
  gap:var(--sw-composition-local-gap,var(--sw-composition-gap));
  min-width:0;
  padding:var(--sw-composition-pad);
}
.sw-composition__head + .sw-composition__body { padding-top:clamp(.58rem,.9vw,.78rem); }

/* Intro/decision compositions are denser at the top and permit strong content
   blocks without inventing route-specific wrapper geometry. */
.sw-composition--intro .sw-composition__body,
.sw-composition--decision .sw-composition__body { gap:var(--sw-composition-gap-compact); }
.sw-composition--form .sw-composition__body { max-width:100%; }
.sw-composition--related .sw-composition__body { padding-bottom:clamp(.9rem,1.4vw,1.18rem); }

.sw-composition-grid {
  display:grid;
  gap:var(--sw-composition-gap-compact);
  min-width:0;
  max-width:100%;
  align-items:stretch;
}
.sw-composition-grid > * { min-width:0; max-width:100%; }
.sw-composition-grid--auto { grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--sw-composition-grid-min)),1fr)); }
.sw-composition-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sw-composition-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.sw-composition-grid--four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.sw-composition-grid--dense { grid-template-columns:repeat(auto-fill,minmax(min(100%,13.5rem),1fr)); gap:.52rem; }
.sw-composition-grid--media { grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--sw-composition-media-min)),1fr)); gap:clamp(.56rem,.9vw,.78rem); }
.sw-composition-grid--metrics { grid-template-columns:repeat(4,minmax(0,1fr)); gap:.48rem; }
.sw-composition-grid--list { grid-template-columns:minmax(0,1fr); }

.sw-composition-toolbar,
.sw-family-toolbar {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem;
  min-width:0;
  max-width:100%;
}
.sw-composition-toolbar > *,
.sw-family-toolbar > * { min-width:0; }

.sw-composition-pagination {
  display:flex;
  justify-content:center;
  width:100%;
  min-width:0;
  margin-top:clamp(.72rem,1.25vw,1rem);
}
.sw-composition-pagination > * { max-width:100%; }

.sw-composition-state {
  display:grid;
  gap:.2rem;
  min-width:0;
  padding:.78rem .86rem;
  border:1px dashed var(--sw-local-border,var(--sw-dark-divider,rgba(255,255,255,.14)));
  border-radius:var(--sw-card-radius,.72rem);
  color:var(--sw-local-muted,var(--sw-dark-muted,#91b2c5));
}
.sw-composition-state strong { color:var(--sw-local-ink,var(--sw-dark-heading,#f4fbff)); }
.sw-composition-state span { line-height:1.4; }

/* Existing family primitives now inherit the same grammar. This is deliberate:
   P117 converges old markup without forcing simultaneous route rewrites. */
.sw-family-section {
  --sw-composition-local-gap:var(--sw-composition-gap);
}
.sw-family-section > .sw-family-section-head {
  gap:var(--sw-composition-head-gap);
  padding:var(--sw-composition-pad) var(--sw-composition-pad) 0;
}
.sw-family-section > .sw-family-section__body {
  display:grid;
  gap:var(--sw-composition-local-gap);
  padding:var(--sw-composition-pad);
}
.sw-family-section > .sw-family-section-head + .sw-family-section__body {
  padding-top:clamp(.58rem,.9vw,.78rem);
}

/* Canonical media result composition. Do not set explicit card heights: image
   ratio/card ownership remains with skiweather-media/webcam-gallery. */
.sw-webcam-gallery-grid.sw-composition-grid {
  grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--sw-composition-media-min)),1fr));
}
.sw-webcam-gallery-shell[data-sw-composition-stack] > [data-sw-gallery-content] { min-width:0; }
.sw-webcam-gallery-shell [data-sw-gallery-pagination] { min-width:0; }

/* Page-family rhythm: hero/nav are outside the stack; once inside a family
   track every major section receives the same vertical cadence. */
.sw-family-track > :where(.sw-composition,.sw-family-section,.sw-card-grid-section,.sw-webcam-gallery-topbar,.sw-webcam-gallery-subnav,.sw-webcam-gallery-controls,[data-sw-gallery-content]) {
  margin-block:0;
}

@media(max-width:980px) {
  .sw-composition-grid--four { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sw-composition-grid--three { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sw-composition-grid--metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:680px) {
  .sw-composition-grid--two,
  .sw-composition-grid--three,
  .sw-composition-grid--four,
  .sw-composition-grid--metrics { grid-template-columns:minmax(0,1fr); }
}

@media(prefers-reduced-motion:reduce) {
  .sw-composition *, .sw-composition-grid * { scroll-behavior:auto !important; }
}

/* skiweather-dark-page-family.css */
/* P116 dark-page family compatibility.
 * Surface/card paint is owned by skiweather-surface.css. This file now keeps
 * only dark-family typography and the shrinking Bootstrap-era action bridge.
 */
body.sw-dark-workspace {
  --sw-dark-family-border:var(--sw-surface-border-dark,rgba(94,194,236,.18));
  --sw-dark-family-text:var(--sw-surface-ink-dark,#edf8fe);
  --sw-dark-family-muted:var(--sw-surface-muted-dark,#91b2c5);
}
body.sw-dark-workspace :where(h1,h2,h3) {
  font-family:var(--sw-font-family,"Source Sans Pro",Arial,Helvetica,sans-serif);
  font-weight:600;
  letter-spacing:-.018em;
}
body.sw-dark-workspace :where(p,li,small,.sw-dark-section__head p) {
  font-family:var(--sw-font-family,"Source Sans Pro",Arial,Helvetica,sans-serif);
}
body.sw-dark-workspace .sw-family-action-list { display:grid;gap:8px; }
body.sw-dark-workspace .sw-family-action-list>.sw-action { width:100%;justify-content:flex-start; }

/* P110 — canonical dark-family action skin -----------------------------------------
 * Buttons are one component across decision/intelligence/media dark pages.
 * Family/route sheets may set semantic variant or composition, not repaint
 * ordinary controls independently. */
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) :where(.sw-action,.sw-card-action) {
  /* Set these on the component itself. The generic P106 action depth also
     defines local custom properties; inherited body variables cannot beat it. */
  --sw-action-border-color: var(--sw-dark-border-strong,rgba(40,172,226,.24));
  --sw-action-background: linear-gradient(145deg,rgba(8,50,70,.78),rgba(3,29,42,.88));
  --sw-action-color: #dff4fe;
  --sw-action-hover-border-color: color-mix(in srgb,var(--sw-accent-data,#28ace2) 58%,transparent);
  --sw-action-hover-background: linear-gradient(145deg,rgba(12,74,101,.90),rgba(5,42,59,.94));
  --sw-action-hover-color: #fff;
  --sw-action-shadow: inset 1px 1px 0 rgba(255,255,255,.045),0 .18rem .5rem rgba(0,0,0,.16);
  --sw-action-hover-shadow: inset 1px 1px 0 rgba(255,255,255,.06),0 .32rem .72rem rgba(0,0,0,.22);
}
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) :where(.sw-action--ghost) {
  --sw-action-border-color: var(--sw-dark-border-strong,rgba(40,172,226,.24));
  --sw-action-background: rgba(4,31,45,.48);
  --sw-action-color: #d6eef9;
  --sw-action-hover-background: rgba(10,67,92,.76);
  --sw-action-hover-color: #fff;
}
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) :where(.sw-action--brand) {
  --sw-action-border-color: color-mix(in srgb,var(--sw-accent-data,#28ace2) 62%,transparent);
  --sw-action-background: linear-gradient(145deg,var(--sw-primary,#006fae),#075279);
  --sw-action-color: #fff;
  --sw-action-hover-border-color: var(--sw-accent-data,#28ace2);
  --sw-action-hover-background: linear-gradient(145deg,#087fba,var(--sw-primary-strong,#063b64));
  --sw-action-hover-color: #fff;
}
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) :where(.sw-action--primary) {
  --sw-action-border-color: color-mix(in srgb,var(--sw-accent-action,#e96c1a) 72%,transparent);
  --sw-action-background: linear-gradient(145deg,var(--sw-accent-action,#e96c1a),var(--sw-vivid-orange-dark,#c6530d));
  --sw-action-color: #fff;
  --sw-action-hover-border-color: var(--sw-vivid-orange,#e96c1a);
  --sw-action-hover-background: linear-gradient(145deg,#f27e32,var(--sw-vivid-orange-deep,#a74408));
  --sw-action-hover-color: #fff;
}
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) :where(.sw-action--quiet) {
  --sw-action-color: #8edfff;
  --sw-action-hover-color: #c8f1ff;
}
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) :where(.sw-action):is([aria-pressed="true"],.is-selected,.is-active) {
  --sw-action-border-color:color-mix(in srgb,var(--sw-accent-data,#28ace2) 56%,transparent);
  --sw-action-background:linear-gradient(145deg,color-mix(in srgb,var(--sw-accent-data,#28ace2) 24%,#062738),color-mix(in srgb,var(--sw-accent-data,#28ace2) 11%,#031c29));
  --sw-action-color:#d9f5ff;
  --sw-action-hover-border-color:color-mix(in srgb,var(--sw-accent-data,#28ace2) 72%,transparent);
  --sw-action-hover-background:linear-gradient(145deg,color-mix(in srgb,var(--sw-accent-data,#28ace2) 31%,#073047),color-mix(in srgb,var(--sw-accent-data,#28ace2) 16%,#032332));
  --sw-action-hover-color:#fff;
}
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) :where(.sw-action--success) {
  --sw-action-border-color:color-mix(in srgb,var(--sw-accent-positive,#2baa72) 48%,transparent);
  --sw-action-background:color-mix(in srgb,var(--sw-accent-positive,#2baa72) 13%,var(--sw-dark-surface-strong,#051825));
  --sw-action-color:#9ce8c3;
}
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) :where(.sw-action--warning) {
  --sw-action-border-color:color-mix(in srgb,var(--sw-accent-premium,#f2a719) 48%,transparent);
  --sw-action-background:color-mix(in srgb,var(--sw-accent-premium,#f2a719) 12%,var(--sw-dark-surface-strong,#051825));
  --sw-action-color:#ffd47a;
}
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) :where(.sw-action--danger) {
  --sw-action-border-color:color-mix(in srgb,var(--sw-accent-alert,#df3c23) 48%,transparent);
  --sw-action-background:color-mix(in srgb,var(--sw-accent-alert,#df3c23) 12%,var(--sw-dark-surface-strong,#051825));
  --sw-action-color:#ffafa4;
}

/* P110 compatibility bridge.
 * A few older dark tools still emit Bootstrap-era .btn markup. Keep those from
 * falling back to Bootstrap's white/light appearance while their route markup
 * is migrated. New code should use .sw-action directly. */
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) .btn:not(.btn-close):not(.sw-action) {
  min-height:var(--sw-action-height-compact,1.95rem);
  padding:var(--sw-action-padding-y,.3rem) var(--sw-action-padding-x,.62rem);
  border:1px solid var(--sw-dark-border-strong,rgba(40,172,226,.24));
  border-radius:var(--sw-action-radius,.62rem);
  background:linear-gradient(145deg,rgba(8,50,70,.78),rgba(3,29,42,.88));
  color:#dff4fe;
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.045),0 .18rem .5rem rgba(0,0,0,.16);
  font:600 var(--sw-action-font-size,.82rem)/1.1 var(--sw-font-family,"Source Sans Pro",Arial,sans-serif);
  text-decoration:none;
  transition:border-color var(--sw-motion-fast,140ms) ease,background var(--sw-motion-fast,140ms) ease,color var(--sw-motion-fast,140ms) ease,box-shadow var(--sw-motion-fast,140ms) ease,transform var(--sw-motion-fast,140ms) ease;
}
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) .btn:not(.btn-close):not(.sw-action):hover,
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) .btn:not(.btn-close):not(.sw-action):focus-visible {
  border-color:color-mix(in srgb,var(--sw-accent-data,#28ace2) 58%,transparent);
  background:linear-gradient(145deg,rgba(12,74,101,.90),rgba(5,42,59,.94));
  color:#fff;
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.06),0 .32rem .72rem rgba(0,0,0,.22);
}
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) :is(.btn-primary,.btn-info):not(.sw-action) {
  border-color:color-mix(in srgb,var(--sw-accent-data,#28ace2) 62%,transparent);
  background:linear-gradient(145deg,var(--sw-primary,#006fae),#075279);
  color:#fff;
}
body[data-sw-family-surface="dark"]:not([data-sw-page="home"]):not([data-sw-page="homepage"]) :is(.btn-danger,.btn-outline-danger):not(.sw-action) {
  border-color:color-mix(in srgb,var(--sw-accent-alert,#df3c23) 48%,transparent);
  background:color-mix(in srgb,var(--sw-accent-alert,#df3c23) 12%,var(--sw-dark-surface-strong,#051825));
  color:#ffafa4;
}

/* skiweather-p23-experience.css */
/* P1213.7 — compact decision vocabulary. Geometry lives here; typography is
 * intentionally quiet and is reinforced by skiweather-type-governance.css. */
/* P1220: legacy .sw-why-matters presentation retired.
 * swWhyItMatters() now renders the canonical decision-support component. */
.sw-home-p23-today{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,.65fr));
  gap:var(--sw-space-2,.5rem);
  margin-top:var(--sw-space-3,.75rem);
}
.sw-home-p23-today__lead,.sw-home-p23-today__signal{
  padding:.72rem .82rem;
  border:1px solid rgba(86,168,204,.2);
  border-radius:12px;
  background:rgba(3,22,31,.62);
}
.sw-home-p23-today__lead span,.sw-home-p23-today__signal span{
  display:block;
  color:#77cfee;
  font-size:.62rem;
  font-weight:500;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.sw-home-p23-today__lead strong{display:block;margin:.12rem 0;font-size:1.02rem;font-weight:500}
.sw-home-p23-today__lead small,.sw-home-p23-today__signal small{color:#8ca6b5}
.sw-home-p23-today__signal strong{display:block;margin:.16rem 0;font-size:.94rem;font-weight:500}
.sw-home-deeper-links{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center;margin-top:.8rem}
.sw-home-deeper-links a{color:#a8d8ec;font-size:.82rem;text-decoration:none}
.sw-home-deeper-links a:hover{text-decoration:underline}
.sw-snow-viewport-summary{max-height:min(42vh,420px);overflow:auto;overscroll-behavior:contain}
@media(max-width:760px){
  .sw-home-p23-today{grid-template-columns:1fr}
  .sw-home-p23-today__signal{display:grid;grid-template-columns:auto 1fr;gap:.2rem .5rem}
  .sw-home-p23-today__signal span{grid-row:1/3}
  .sw-home-p23-today__signal strong,.sw-home-p23-today__signal small{margin:0}
}

/* skiweather-decision-product.css */
/* P24 shared adaptive decision UX. No route-specific geometry. */
.sw-profile-selector{display:flex;align-items:center;gap:.7rem;padding:.65rem .8rem;border:1px solid rgba(148,190,207,.18);border-radius:var(--sw-radius-card,16px);background:linear-gradient(145deg,rgba(5,25,35,.96),rgba(3,18,27,.94));color:#eaf7fb}.sw-profile-selector label{font-size:.78rem;color:#a8c2cc}.sw-profile-selector small{font-size:var(--sw-text-sm,.875rem);color:#94b5c1}.sw-profile-selector select{min-width:12rem;background:#071e29;color:#eefaff;border:1px solid rgba(148,190,207,.22);border-radius:10px;padding:.45rem .65rem}.sw-profile-selector__hint{margin-left:auto;color:#86aab7;font-size:.75rem}
@media(max-width:720px){.sw-profile-selector{align-items:stretch;flex-direction:column}.sw-profile-selector select{width:100%}.sw-profile-selector__hint{margin-left:0}}
.sw-my-alternatives{display:grid;gap:.45rem}.sw-my-alternative{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.3rem .8rem;padding:.65rem .75rem;border:1px solid rgba(148,190,207,.14);border-radius:12px;color:inherit;text-decoration:none}.sw-my-alternative small{grid-column:1/-1;color:#8facb7}
/* P25 centralized convergence: compact decision surfaces, mobile, fallback ladder. */
.sw-fallback{display:flex;gap:var(--sw-space-2,.5rem);align-items:flex-start;padding:var(--sw-space-3,.75rem) var(--sw-space-4,1rem);border:1px solid color-mix(in srgb,currentColor 22%,transparent);border-radius:var(--sw-radius-card,14px);background:rgba(8,22,32,.72);font-size:var(--sw-text-sm,.875rem)}.sw-fallback strong{white-space:nowrap}.sw-fallback--positive{color:#baf4d8}.sw-fallback--attention{color:#ffe29a}.sw-fallback--risk{color:#ffc0bb}.sw-fallback--info{color:#c9e9f7}
.sw-p25-last-visit{display:grid;gap:var(--sw-space-2,.5rem);margin-top:var(--sw-space-3,.75rem)}.sw-p25-last-visit__row{display:grid;grid-template-columns:minmax(9rem,1fr) 2fr auto;gap:var(--sw-space-3,.75rem);align-items:center;padding:.55rem .7rem;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:rgba(255,255,255,.025)}.sw-p25-last-visit__row small{color:var(--sw-text-muted,#93a4b5)}
.sw-shortlist-smart__summary{min-height:0}.sw-shortlist-smart__ranking{display:grid;gap:.35rem}.sw-shortlist-smart__row{min-height:2.55rem}
.bench-summary-panel .bench-tradeoff-explorer,.bench-summary-panel .bench-contribution,.bench-summary-panel .bench-sensitivity{margin-top:.5rem}.bench-summary-panel .bench-evidence-bridge{padding:.65rem .8rem}.bench-summary-panel .sw-decision-surface__description{max-width:62rem}
@media(max-width:760px){.sw-p25-last-visit__row{grid-template-columns:1fr auto}.sw-p25-last-visit__row small{grid-column:1/-1}.sw-my-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.sw-my-ranking-tabs,.sw-shortlist-smart__tabs{display:flex;overflow-x:auto;scrollbar-width:none}.sw-my-ranking-tabs button,.sw-shortlist-smart__tabs button{flex:0 0 auto;min-height:2.6rem}.bench-workspace-actions,.bench-actions{flex-wrap:wrap}.sw-resort-section-nav{overscroll-behavior-inline:contain}}

/* P26 decision-memory/proactive-state additions: shared, route-agnostic. */
.sw-benchmark-memory{display:flex;gap:.45rem;align-items:center;margin:.35rem 0 0;padding:.38rem .55rem;border:1px solid color-mix(in srgb,var(--sw-border,#294158) 78%,transparent);border-radius:var(--sw-radius-sm,.55rem);background:color-mix(in srgb,var(--sw-panel,#0d1a29) 86%,transparent);font-size:var(--sw-text-sm,.82rem);color:var(--sw-muted,#9db0c3)}
.sw-benchmark-memory strong{color:var(--sw-text,#eaf2fa);font-weight:700}.sw-benchmark-memory.is-change{border-color:color-mix(in srgb,#f2b84b 45%,var(--sw-border,#294158));}
.sw-my-attention-summary{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.62rem .72rem;border-radius:var(--sw-radius-card,.78rem);border:1px solid var(--sw-border,#294158);background:var(--sw-panel,#0d1a29);margin-bottom:var(--sw-space-3,.75rem)}
.sw-my-attention-summary strong{font-size:var(--sw-text,.95rem)}.sw-my-attention-summary span{font-size:var(--sw-text-sm,.82rem);color:var(--sw-muted,#9db0c3)}
@media(max-width:640px){.sw-my-attention-summary{align-items:flex-start;flex-direction:column}.sw-benchmark-memory{align-items:flex-start;flex-direction:column;gap:.15rem}}
/* P27 retained My SkiWeather progressive-disclosure surface. */
.bench-summary-panel .bench-summary-grid--primary{grid-template-columns:repeat(3,minmax(0,1fr))}.bench-summary-panel .bench-summary-more{margin-top:var(--sw-space-2,8px)}
.sw-my-more-intelligence{padding:0;overflow:hidden}.sw-my-more-intelligence>summary{cursor:pointer;list-style:none;padding:var(--sw-space-3,12px) var(--sw-space-4,16px);font-weight:700;color:#f5fbff;border-bottom:1px solid transparent}.sw-my-more-intelligence[open]>summary{border-bottom-color:rgba(148,163,184,.14)}.sw-my-more-intelligence>summary::-webkit-details-marker{display:none}.sw-my-more-intelligence>summary::after{content:"+";float:right;color:#8dd8ff}.sw-my-more-intelligence[open]>summary::after{content:"−"}.sw-my-more-intelligence>.sw-my-seasonbar,.sw-my-more-intelligence>.sw-my-changes-head,.sw-my-more-intelligence>.sw-my-changes,.sw-my-more-intelligence>.sw-p25-last-visit,.sw-my-more-intelligence>.sw-my-alerts,.sw-my-more-intelligence>.sw-my-alternatives{margin-left:var(--sw-space-4,16px);margin-right:var(--sw-space-4,16px)}.sw-my-more-intelligence>.sw-my-alternatives{margin-bottom:var(--sw-space-4,16px)}
/* P28 canonical recommendation surface. */
.sw-decision-v4{border:1px solid var(--sw-family-card-border,rgba(121,182,205,.2));border-radius:var(--sw-family-radius,var(--sw-radius-card,14px));background:var(--sw-family-card-bg,linear-gradient(145deg,rgba(6,28,39,.96),rgba(3,19,28,.96)));box-shadow:var(--sw-family-card-shadow,none);padding:var(--sw-space-4,1rem);color:var(--sw-dark-ink,#eaf7fb)}.sw-decision-v4 header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.sw-decision-v4 header span,.sw-decision-v4 small{color:#9dbbc8;font-size:var(--sw-text-xs,.75rem)}.sw-decision-v4 h2{margin:.15rem 0 0;font-size:var(--sw-title-sm,1.3rem);line-height:1.15;color:#fff}.sw-decision-v4__score{font-size:1.55rem;line-height:1;color:#fff}.sw-decision-v4__score small{margin-left:.12rem}.sw-decision-v4__why{margin-top:.8rem;padding-top:.75rem;border-top:1px solid rgba(150,194,211,.12)}.sw-decision-v4__why ol{margin:.35rem 0 0;padding-left:1.1rem;display:grid;gap:.2rem;font-size:var(--sw-text-sm,.875rem)}.sw-decision-v4__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-top:.75rem}.sw-decision-v4__facts>div{padding:.6rem .7rem;border:1px solid var(--sw-dark-divider,rgba(237,247,252,.075));border-radius:10px;background:rgba(7,38,53,.58)}.sw-decision-v4__facts strong{display:block;margin-top:.12rem;font-size:var(--sw-text-sm,.875rem);line-height:1.35}.sw-decision-v4 footer{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.75rem;color:#a8c7d4;font-size:var(--sw-text-xs,.75rem)}
.sw-p28-flow-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.sw-p28-flow-actions a,.sw-p28-flow-actions button{min-height:40px}.sw-p28-context-note{color:#9dbbc8;font-size:var(--sw-text-sm,.875rem)}
@media(max-width:720px){.sw-decision-v4__facts{grid-template-columns:1fr}.sw-decision-v4 header{align-items:center}.sw-decision-v4{padding:.85rem}.sw-p28-flow-actions>*{min-height:44px}}
@media(max-width:460px){.sw-decision-v4__score{font-size:1.25rem}.sw-decision-v4 h2{font-size:1.12rem}}

/* P29 handoff, regional matrix and mobile convergence. */
.sw-p29-today{display:grid;gap:var(--sw-space-3,12px);padding:var(--sw-space-4,16px)}
.sw-p29-today__attention{min-width:0}.sw-p29-today__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sw-space-2,8px)}
.sw-p29-today__grid>article,.sw-p29-today__grid>a{min-width:0;padding:var(--sw-space-3,12px);border:1px solid rgba(148,163,184,.14);border-radius:var(--sw-radius-card,14px);background:rgba(5,25,35,.62);color:#eef9fc;text-decoration:none}
.sw-p29-today__grid>article:first-child{grid-column:span 2}.sw-p29-today__grid span,.sw-p29-today__grid small{display:block;color:#9fb8c4;font-size:var(--sw-text-sm,.875rem)}.sw-p29-today__grid strong{display:block;margin:.18rem 0;font-size:var(--sw-title-sm,1.3rem);line-height:1.15;color:#fff}.sw-p29-today__grid .is-risk{border-color:rgba(251,191,36,.2)}
.sw-profile-selector--compact{margin-top:var(--sw-space-2,8px);display:flex;align-items:center;gap:var(--sw-space-2,8px);flex-wrap:wrap}.sw-profile-selector--compact select{min-height:40px}
.bench-decision-handoff{display:flex;align-items:center;gap:var(--sw-space-2,8px);margin-top:var(--sw-space-3,12px);padding-top:var(--sw-space-3,12px);border-top:1px solid rgba(148,163,184,.14)}.bench-decision-handoff__label{font-size:var(--sw-text-xs,.75rem);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9dbbc8}.bench-decision-handoff__actions{display:flex;gap:var(--sw-space-2,8px);flex-wrap:wrap}.bench-handoff-action{min-height:40px}
.sw-region-opportunity-matrix{margin-bottom:var(--sw-space-4,16px)}.sw-region-matrix-wrap{overflow:auto;border-radius:var(--sw-radius-card,14px);border:1px solid rgba(148,163,184,.13)}.sw-region-matrix{width:100%;border-collapse:collapse;min-width:640px;background:rgba(4,20,29,.62)}.sw-region-matrix th,.sw-region-matrix td{padding:var(--sw-space-3,12px);text-align:left;border-bottom:1px solid rgba(148,163,184,.1);font-size:var(--sw-text-sm,.875rem)}.sw-region-matrix thead th{color:#9dbbc8;font-size:var(--sw-text-xs,.75rem);text-transform:uppercase;letter-spacing:.06em}.sw-region-matrix tbody th a{color:#f1fbff;text-decoration:none}.sw-region-matrix tbody th small{display:block;margin-top:.15rem;color:#8ea9b6;font-weight:600}.sw-region-matrix tbody tr:last-child>*{border-bottom:0}
@media(max-width:900px){.sw-p29-today__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sw-p29-today__grid>article:first-child{grid-column:1/-1}}
@media(max-width:620px){.sw-p29-today{padding:var(--sw-space-3,12px)}.sw-p29-today__grid{grid-template-columns:1fr 1fr}.sw-p29-today__grid>article:first-child{grid-column:1/-1}.sw-p29-today__grid strong{font-size:var(--sw-text-lg,1.05rem)}.bench-decision-handoff{align-items:flex-start;flex-direction:column}.bench-decision-handoff__actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.bench-handoff-action{justify-content:center;min-height:44px}}
@media(max-width:430px){.sw-p29-today__grid{grid-template-columns:1fr}.sw-p29-today__grid>article:first-child{grid-column:auto}.bench-decision-handoff__actions{grid-template-columns:1fr}}

/* P46 explainable decision intelligence: compact, shared, no extra asset. */
.sw-explain{margin-top:.65rem;padding:.68rem .75rem;border:1px solid rgba(121,182,205,.14);border-radius:10px;background:rgba(255,255,255,.025);color:#e8f5fa}.sw-explain__meta{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;color:#9dbbc8;font-size:.72rem}.sw-explain__evidence{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .42rem;border-radius:999px;background:rgba(140,178,194,.1);color:#c8dce5}.sw-explain__evidence.is-fresh{background:rgba(51,181,125,.12);color:#9be0bd}.sw-explain__evidence.is-mixed{background:rgba(246,163,38,.12);color:#f6c878}.sw-explain__evidence.is-limited,.sw-explain__evidence.is-stale{background:rgba(235,99,88,.12);color:#f1aaa4}.sw-explain__reasons{margin:.45rem 0 0;padding:0;list-style:none;display:grid;gap:.28rem}.sw-explain__reasons li{position:relative;padding-left:.8rem;font-size:.8rem;line-height:1.35;color:#dcecf2}.sw-explain__reasons li::before{content:'•';position:absolute;left:0;color:#7fb6ca}.sw-explain__reasons li.is-positive::before{color:#6bd0a0}.sw-explain__caution{margin:.45rem 0 0;padding-top:.42rem;border-top:1px solid rgba(255,255,255,.06);font-size:.76rem;line-height:1.35;color:#edc78c}.sw-explain__reversal{margin:.45rem 0 0;font-size:.75rem;color:#a9c2cd}.sw-explain__reversal small{color:#789bab;margin-right:.25rem}.sw-decision-v4>.sw-explain{margin-top:.75rem}.sw-decision-v4__evidence{font-weight:700}.sw-decision-v4__evidence.is-fresh{color:#9be0bd}.sw-decision-v4__evidence.is-mixed{color:#f6c878}.sw-decision-v4__evidence.is-limited,.sw-decision-v4__evidence.is-stale{color:#f1aaa4}@media(max-width:720px){.sw-explain{padding:.6rem .65rem}.sw-explain__reasons li{font-size:.78rem}}

/* P1221.1 — compact explanation typography stays subordinate to card body copy. */
body.sw-page-shell main#sector .sw-explain--compact .sw-explain__reasons li{font-size:.72rem!important;line-height:1.35!important;font-weight:300!important;}
body.sw-page-shell main#sector .sw-explain--compact :is(.sw-explain__caution,.sw-explain__reversal){font-size:.68rem!important;line-height:1.35!important;font-weight:300!important;}
body.sw-page-shell main#sector .sw-explain--compact .sw-explain__meta{font-size:.64rem!important;font-weight:400!important;}
