    /* CSS domain: weather */
    .weather-page-layout {
      display: grid;
      grid-template-rows: minmax(282px, 1.08fr) minmax(306px, 1.16fr) minmax(0, 1.9fr);
      gap: var(--dashboard-weather-layout-gap);
      min-height: 0;
      align-content: start;
    }

    .weather-local-card {
      display: grid;
      grid-template-columns: 1fr;
      grid-template-rows: auto 1fr;
      gap: var(--dashboard-weather-content-gap);
      min-height: 0;
      background:
        radial-gradient(circle at top left, rgba(85, 140, 210, 0.16), transparent 46%),
        linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.005));
      height: 100%;
      padding-top: var(--dashboard-weather-local-card-padding-y);
      padding-bottom: var(--dashboard-weather-local-card-padding-y);
      align-content: start;
    }

    .weather-panel-heading {
      display: grid;
      gap: var(--dashboard-weather-heading-gap);
    }

    .weather-panel-title {
      font-size: var(--dashboard-weather-panel-title-size);
      font-weight: var(--dashboard-card-title-weight);
      line-height: 1.1;
      color: rgba(255,255,255,0.96);
    }

    .weather-panel-subtitle {
      font-size: var(--dashboard-weather-panel-subtitle-size);
      color: var(--muted);
    }

    .weather-local-content {
      display: grid;
      grid-template-columns: minmax(0, 1.02fr) auto minmax(320px, 0.98fr);
      gap: var(--dashboard-weather-content-gap);
      min-width: 0;
      align-items: center;
      min-height: 0;
    }

    .weather-local-main {
      display: flex;
      align-items: center;
      gap: var(--dashboard-weather-metric-value-size);
      min-width: 0;
      align-self: center;
    }

    .weather-symbol {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: rgba(255,255,255,0.78);
      flex-shrink: 0;
    }

    .weather-symbol svg {
      width: 100%;
      height: 100%;
      display: block;
    }

    .weather-symbol-large {
      width: var(--dashboard-weather-symbol-large-size);
      height: var(--dashboard-weather-symbol-large-size);
    }

    .weather-symbol-medium {
      width: var(--dashboard-weather-symbol-medium-size);
      height: var(--dashboard-weather-symbol-medium-size);
    }

    .weather-symbol-pollen {
      width: var(--dashboard-weather-symbol-pollen-size);
      height: var(--dashboard-weather-symbol-pollen-size);
      border-radius: 50%;
      background: radial-gradient(circle at center, rgba(129, 195, 63, 0.18), rgba(129, 195, 63, 0.08));
      color: #98cf52;
      padding: var(--dashboard-weather-pollen-symbol-padding);
    }

    .weather-pollen-card.is-level-0 .weather-symbol-pollen {
      background: radial-gradient(circle at center, rgba(74, 198, 92, 0.22), rgba(74, 198, 92, 0.08));
      color: #6fd97b;
      box-shadow: 0 0 24px rgba(74, 198, 92, 0.16);
    }

    .weather-pollen-card.is-level-1 .weather-symbol-pollen {
      background: radial-gradient(circle at center, rgba(129, 195, 63, 0.24), rgba(129, 195, 63, 0.10));
      color: #98cf52;
      box-shadow: 0 0 26px rgba(129, 195, 63, 0.18);
    }

    .weather-pollen-card.is-level-2 .weather-symbol-pollen {
      background: radial-gradient(circle at center, rgba(241, 202, 79, 0.24), rgba(241, 202, 79, 0.10));
      color: #f1ca4f;
      box-shadow: 0 0 28px rgba(241, 202, 79, 0.20);
    }

    .weather-pollen-card.is-level-3 .weather-symbol-pollen {
      background: radial-gradient(circle at center, rgba(241, 146, 73, 0.24), rgba(241, 146, 73, 0.10));
      color: #f19249;
      box-shadow: 0 0 28px rgba(241, 146, 73, 0.22);
    }

    .weather-pollen-card.is-level-4 .weather-symbol-pollen {
      background: radial-gradient(circle at center, rgba(227, 88, 88, 0.24), rgba(227, 88, 88, 0.10));
      color: #e35858;
      box-shadow: 0 0 30px rgba(227, 88, 88, 0.24);
    }

    .weather-local-stack {
      display: grid;
      gap: var(--dashboard-weather-local-stack-gap);
      min-width: 0;
    }

    .weather-local-value {
      font-size: var(--dashboard-weather-local-value-size);
      font-weight: var(--dashboard-weather-primary-value-weight);
      line-height: 0.94;
      letter-spacing: var(--dashboard-home-tight-letter-spacing);
    }

    .weather-local-condition {
      font-size: var(--dashboard-weather-local-condition-size);
      font-weight: var(--dashboard-weather-condition-weight);
      color: rgba(255,255,255,0.82);
    }

    .weather-local-feel {
      font-size: var(--dashboard-weather-local-feel-size);
      color: rgba(255,255,255,0.58);
      line-height: 1.35;
    }

    .weather-local-divider {
      width: 1px;
      height: 78%;
      background: linear-gradient(180deg, transparent, rgba(255,255,255,0.12), transparent);
      justify-self: center;
    }

    .weather-local-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0;
      border-radius: var(--dashboard-weather-metric-radius);
      border: 1px solid rgba(255,255,255,0.08);
      background: rgba(255,255,255,0.03);
      overflow: hidden;
      height: 100%;
    }

    .weather-local-metric {
      border-radius: 0;
      background: transparent;
      padding: var(--dashboard-weather-local-metric-padding);
      display: grid;
      gap: var(--dashboard-weather-local-metric-gap);
      min-height: var(--dashboard-weather-local-metric-min-height);
      align-content: start;
      box-shadow: inset -1px 0 0 rgba(255,255,255,0.07), inset 0 -1px 0 rgba(255,255,255,0.07);
    }

    .weather-local-metric-label,
    .weather-chart-footnote {
      font-size: var(--dashboard-weather-label-size);
      color: var(--muted);
      line-height: 1.3;
    }

    .weather-local-metric-value {
      font-size: var(--dashboard-weather-metric-value-size);
      font-weight: var(--dashboard-metric-value-weight);
      line-height: 1.05;
    }

    .weather-summary-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--dashboard-weather-layout-gap);
      min-height: 0;
      height: 100%;
    }

    .weather-forecast-card,
    .weather-pollen-card,
    .weather-chart-card {
      min-height: 0;
      display: grid;
      gap: var(--dashboard-weather-card-gap);
      align-content: start;
      height: 100%;
    }

    .weather-forecast-card,
    .weather-pollen-card {
      padding-top: 20px;
      padding-bottom: 20px;
    }

    .weather-pollen-card.is-level-0 {
      box-shadow: inset 0 0 0 1px rgba(98, 200, 104, 0.10);
    }

    .weather-pollen-card.is-level-1 {
      box-shadow: inset 0 0 0 1px rgba(120, 214, 87, 0.12);
    }

    .weather-pollen-card.is-level-2 {
      box-shadow: inset 0 0 0 1px rgba(241, 202, 79, 0.16);
    }

    .weather-pollen-card.is-level-3 {
      box-shadow: inset 0 0 0 1px rgba(241, 146, 73, 0.18);
    }

    .weather-pollen-card.is-level-4 {
      box-shadow: inset 0 0 0 1px rgba(227, 88, 88, 0.20);
    }

    .weather-forecast-card {
      grid-template-rows: auto auto 1fr auto;
      align-content: stretch;
      gap: var(--dashboard-weather-small-gap);
    }

    .weather-forecast-main {
      display: grid;
      grid-template-columns: var(--dashboard-weather-forecast-icon-column) 1fr;
      gap: var(--dashboard-weather-content-gap);
      align-items: center;
      max-width: none;
      padding: var(--dashboard-weather-forecast-main-padding);
    }

    .weather-forecast-extremes {
      display: grid;
      grid-template-columns: auto auto auto;
      align-items: center;
      justify-content: start;
      column-gap: var(--dashboard-weather-forecast-extremes-gap);
      min-width: 0;
    }

    .weather-forecast-extreme {
      display: grid;
      justify-items: start;
      gap: var(--dashboard-weather-forecast-extreme-gap);
    }

    .weather-forecast-extreme-value {
      font-size: var(--dashboard-weather-forecast-value-size);
      font-weight: var(--dashboard-weather-forecast-value-weight);
      line-height: var(--dashboard-weather-forecast-value-line-height);
      letter-spacing: var(--dashboard-weather-forecast-value-letter-spacing);
    }

    .weather-forecast-extreme-label {
      font-size: var(--dashboard-weather-label-size);
      text-transform: uppercase;
      letter-spacing: var(--dashboard-weather-label-letter-spacing);
      color: var(--muted);
    }

    .weather-forecast-extreme-divider {
      width: 1px;
      height: 40px;
      background: rgba(255,255,255,0.14);
    }

    .weather-summary-note {
      font-size: var(--dashboard-weather-summary-note-size);
      line-height: 1.35;
      color: rgba(255,255,255,0.8);
    }

    .weather-chart-footnote {
      color: rgba(255,255,255,0.76);
    }

    .weather-forecast-list {
      display: grid;
      gap: 0;
      margin-top: var(--dashboard-weather-forecast-list-top);
      border-radius: var(--dashboard-weather-forecast-list-radius);
      background: rgba(255,255,255,0.03);
      border: 1px solid rgba(255,255,255,0.06);
      overflow: hidden;
      width: 100%;
    }

    .weather-forecast-row {
      display: grid;
      grid-template-columns: 1fr auto;
      align-items: center;
      gap: var(--dashboard-weather-forecast-row-gap);
      padding: var(--dashboard-weather-forecast-row-padding);
      box-shadow: inset 0 -1px 0 rgba(255,255,255,0.06);
    }

    .weather-forecast-row:last-child {
      box-shadow: none;
    }

    .weather-forecast-row-label {
      font-size: var(--dashboard-weather-forecast-row-size);
      color: rgba(255,255,255,0.68);
    }

    .weather-forecast-row-value {
      font-size: var(--dashboard-weather-forecast-row-size);
      font-weight: var(--dashboard-weather-row-value-weight);
      color: rgba(255,255,255,0.94);
    }

    .weather-forecast-footer {
      margin-top: 0;
      font-size: var(--dashboard-weather-forecast-row-size);
      color: rgba(255,255,255,0.74);
    }

    .weather-summary-stat {
      border-radius: var(--dashboard-weather-inner-radius);
      background: rgba(255,255,255,0.04);
      padding: var(--dashboard-weather-summary-stat-padding);
      display: grid;
      gap: var(--dashboard-weather-summary-stat-gap);
      min-height: var(--dashboard-weather-summary-stat-min-height);
    }

    .weather-summary-stat-value {
      font-size: var(--dashboard-weather-metric-value-size);
      font-weight: var(--dashboard-metric-value-weight);
      line-height: var(--dashboard-insight-value-line-height);
    }

    .weather-pollen-main {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: var(--dashboard-weather-content-gap);
      align-items: center;
      max-width: none;
    }

    .weather-pollen-value {
      font-size: var(--dashboard-weather-pollen-value-size);
      font-weight: var(--dashboard-weather-pollen-value-weight);
      line-height: var(--dashboard-weather-pollen-value-line-height);
      letter-spacing: var(--dashboard-weather-pollen-value-letter-spacing);
    }

    .weather-pollen-card.is-level-0 .weather-pollen-value {
      color: #8ae18d;
    }

    .weather-pollen-card.is-level-1 .weather-pollen-value {
      color: #a3de65;
    }

    .weather-pollen-card.is-level-2 .weather-pollen-value {
      color: #f0d45e;
    }

    .weather-pollen-card.is-level-3 .weather-pollen-value {
      color: #f4a05d;
    }

    .weather-pollen-card.is-level-4 .weather-pollen-value {
      color: #ee6a6a;
    }

    .weather-pollen-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: var(--dashboard-weather-card-gap);
    }

    .weather-pollen-info {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.24);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: rgba(255,255,255,0.62);
      font-size: 14px;
      font-weight: 700;
      flex-shrink: 0;
    }

    .weather-pollen-stack {
      display: grid;
      gap: 4px;
      min-width: 0;
    }

    .weather-pollen-type {
      font-size: 13px;
      color: rgba(255,255,255,0.68);
    }

    .weather-pollen-divider {
      height: 1px;
      background: rgba(255,255,255,0.08);
      margin: 2px 0 0;
    }

    .weather-pollen-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: var(--dashboard-weather-small-gap);
    }

    .weather-pollen-note {
      font-size: 14px;
      color: rgba(255,255,255,0.74);
    }

    .weather-pollen-card .weather-summary-stat-value,
    .weather-pollen-card .weather-local-metric-label,
    .weather-pollen-card .weather-summary-note,
    .weather-forecast-card .weather-local-metric-label,
    .weather-forecast-card .weather-summary-note {
      letter-spacing: 0;
    }

    .weather-chart-card {
      background:
        linear-gradient(180deg, rgba(255,255,255,0.018), rgba(255,255,255,0.008)),
        rgba(255,255,255,0.015);
      padding: 20px 18px 14px;
      min-height: 0;
    }

    .weather-chart-top {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 16px;
    }

    .weather-chart-heading {
      display: grid;
      gap: var(--dashboard-control-tile-gap);
      min-width: 0;
    }

    .weather-chart-metric-tabs {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 4px;
      border-radius: 16px;
      background: rgba(255,255,255,0.04);
      align-self: start;
      flex-shrink: 0;
    }

    .weather-chart-metric-tab {
      border: 0;
      border-radius: 12px;
      background: transparent;
      color: var(--muted);
      font-size: 14px;
      font-weight: 700;
      padding: 8px 16px;
      cursor: pointer;
      transition: background 0.18s ease, color 0.18s ease;
    }

    .weather-chart-metric-tab.is-active {
      background: rgba(255,255,255,0.1);
      color: var(--text);
      box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
    }

    .weather-chart-svg {
      min-height: var(--dashboard-weather-chart-page-min-height);
    }

    .weather-chart-footnote {
      text-align: right;
      padding-right: 8px;
    }
