/* Shared public weather projection; all colors follow the existing theme tokens. */
.home-hero--without-weather { grid-template-columns:minmax(0,1fr); }
.weather-card { min-width:0; padding:var(--space-6); }
.weather-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-3); }
.weather-card-heading h2 { margin-bottom:var(--space-2); font-size:clamp(1.1rem,2.3vw,1.4rem); }
.weather-card-heading .eyebrow { margin-bottom:var(--space-2); }
.weather-card-heading .muted { margin:0; overflow-wrap:anywhere; }
.weather-card-heading .badge { flex-shrink:0; }
.weather-main { display:flex; align-items:center; gap:var(--space-4); padding-block:var(--space-6); }
.weather-icon { width:clamp(76px,11vw,116px); height:auto; flex-shrink:0; color:var(--brand); }
.weather-icon-accent { color:var(--accent); }
.weather-icon-water { color:var(--brand); }
.weather-condition { font-weight:600; margin:0 0 var(--space-2); }
.weather-temperature { font-size:clamp(2.2rem,4vw,3.4rem); line-height:1.1; letter-spacing:-.04em; margin:0; font-weight:600; }
.weather-temperature span { font-size:.6em; font-weight:400; }
.weather-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-4); margin:0; padding-bottom:var(--space-4); }
.weather-details dt { font-size:.85rem; color:var(--muted); margin-bottom:var(--space-1); }
.weather-details dd { margin:0; font-weight:600; display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-1); }
.weather-details dd span { font-weight:400; }
.weather-wind-arrow { width:20px; height:20px; flex-shrink:0; color:var(--brand); }
.weather-footer { border-top:1px solid var(--line); padding-top:var(--space-3); font-size:.78rem; color:var(--muted); }
.weather-footer p { margin:0 0 var(--space-1); }
.weather-footer a { color:inherit; }
.weather-delay { font-size:.9rem; color:var(--warning); background:var(--warning-bg); padding:var(--space-2) var(--space-3); border-radius:var(--radius-sm); }
.weather-unavailable { margin-block:var(--space-8); color:var(--muted); }
.weather-card--status { margin-block:var(--space-6); }
.weather-fieldset { margin:var(--space-6) 0; border:1px solid var(--line); border-radius:var(--radius-sm); padding:var(--space-3); }
.weather-fieldset legend { font-weight:600; padding-inline:var(--space-2); }
.weather-field-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-2); }
.weather-field-options .checkbox { display:flex; align-items:center; min-height:44px; gap:var(--space-2); font-size:.9rem; margin:0; }
.weather-admin-grid { align-items:start; }
.weather-card.weather-summary { padding:var(--space-3); }
.weather-summary-heading { display:flex; justify-content:space-between; align-items:baseline; gap:var(--space-2); flex-wrap:wrap; }
.weather-summary-heading h2 { font-size:1rem; margin:0; }
.weather-summary-heading .muted { font-size:.8rem; }
.weather-summary-conditions { display:flex; justify-content:space-between; align-items:center; gap:var(--space-3); padding-block:var(--space-4); }
.weather-summary-main { display:flex; align-items:center; gap:var(--space-3); min-width:0; }
.weather-summary .weather-icon { width:52px; }
.weather-summary .weather-temperature { font-size:2rem; }
.weather-summary .weather-condition { font-size:.85rem; margin:var(--space-1) 0 0; }
.weather-summary-wind { display:grid; gap:2px; font-size:.82rem; }
.weather-summary-wind span { color:var(--muted); }
.weather-summary-opening { display:flex; justify-content:space-between; align-items:center; gap:var(--space-2); border-top:1px solid var(--line); padding-block:var(--space-3); font-size:.85rem; }
.weather-summary-opening div { display:grid; gap:var(--space-1); }
.weather-summary-opening span { font-size:.8rem; color:var(--muted); }
.weather-summary-opening a { flex-shrink:0; padding-block:var(--space-2); }
.weather-summary-footer { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:var(--space-1) var(--space-2); padding-top:var(--space-2); font-size:.72rem; }
.weather-source { font-size:inherit; min-width:0; }
.weather-source summary { cursor:pointer; }
.weather-source[open] { flex-basis:100%; }
.weather-source p { margin-top:var(--space-2); }
.weather-summary-delay,.weather-summary-unavailable { font-size:.82rem; margin:var(--space-2) 0; color:var(--muted); }
@media(max-width:374px) {
  .weather-summary .weather-icon { width:36px; }
  .weather-summary .weather-temperature { font-size:1.7rem; }
  .weather-summary-heading h2 { font-size:.9rem; }
  .weather-summary-heading .muted,.weather-summary-wind { font-size:.75rem; }
  .weather-summary-main { gap:var(--space-2); }
  .weather-summary-opening { align-items:center; }
  .weather-summary-opening div { min-width:0; }
}
@media(min-width:768px) {
  .weather-card--status .weather-card-body { display:grid; grid-template-columns:minmax(200px,.8fr) minmax(0,1.2fr); align-items:center; gap:var(--space-8); }
  .weather-card--status .weather-details { grid-template-columns:repeat(2,minmax(0,1fr)); padding-block:var(--space-4); }
}
@media(max-width:374px) {
  .weather-card { padding:var(--space-4); }
  .weather-card-heading { flex-wrap:wrap; }
  .weather-main { gap:var(--space-3); }
  .weather-field-options { grid-template-columns:1fr; }
}
