.weather-dashboard-panel {
  display: grid;
  gap: 14px;
  margin-top: 8px;
}

.weather-section-head {
  align-items: center;
}

.weather-search-shell {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.1fr);
  gap: 12px;
  align-items: stretch;
}

.weather-search-field {
  position: relative;
  display: grid;
  gap: 8px;
}

.weather-search-field span {
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
}

.weather-search-field input {
  min-height: 48px;
  padding: 0 18px;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.84);
  color: var(--text);
}

.weather-search-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
}

.search-result-panel {
  margin-top: 14px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255, 250, 242, 0.96);
  box-shadow: var(--shadow-lg);
}

.search-result-panel[hidden] {
  display: none;
}

.search-result-item {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 16px;
  border: 0;
  border-radius: 16px;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  text-align: left;
}

.search-result-item:hover {
  background: rgba(171, 106, 27, 0.08);
}

.search-result-item strong {
  font-family: var(--font-body);
  font-size: 16px;
}

.search-result-item span,
.search-result-empty {
  color: var(--muted);
  font-size: 14px;
}

.search-result-empty {
  padding: 14px 16px;
}

.active-location-strip,
.weather-current-panel,
.forecast-card,
.forecast-summary-card,
.forecast-focus-card,
.weather-detail-card,
.current-stat,
.hero-insight-card,
.life-suggestion-card {
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.52);
  box-shadow: var(--shadow-lg);
}

.active-location-strip {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 14px;
  border-radius: 16px;
}

.active-location-strip > div:first-child {
  min-width: 0;
  flex: 1 1 auto;
}

.active-location-label,
.weather-tag,
.forecast-day,
.life-suggestion-card span,
.current-emphasis-card span,
.focus-stat span,
.focus-column-card span {
  color: var(--muted);
  font-size: 13px;
}

.active-location-strip strong {
  display: block;
  margin-top: 2px;
  font-size: 22px;
  font-family: var(--font-body);
  font-weight: 700;
}

.active-location-strip p {
  margin: 4px 0 0;
  color: var(--muted);
  max-width: 48ch;
}

.active-location-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.weather-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(171, 106, 27, 0.1);
  color: var(--brand-deep);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.01em;
  white-space: nowrap;
  box-shadow: inset 0 0 0 1px rgba(171, 106, 27, 0.06);
}

.weather-overview-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, 0.6fr);
  gap: 14px;
  align-items: stretch;
}

.weather-live-rail {
  display: grid;
  gap: 10px;
  align-content: start;
}

.weather-metrics {
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 0;
}

.hero-insight-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.hero-insight-card {
  min-height: 82px;
  padding: 12px;
  border-radius: 16px;
}

.hero-insight-card strong {
  display: block;
  margin-top: 6px;
  font-family: var(--font-number);
  font-size: 20px;
}

.hero-insight-card p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.weather-status-list div {
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.45);
}

.weather-status-list {
  display: grid;
  gap: 10px;
  margin: 0;
}

.weather-status-list div {
  padding: 12px;
  border-radius: var(--radius-sm);
}

.weather-status-list dt {
  color: var(--muted);
  font-size: 12px;
}

.weather-status-list dd {
  margin: 8px 0 0;
  font-weight: 700;
}

.fetch-state {
  margin: 18px 0 0;
  font-weight: 700;
}

.fetch-state.loading {
  color: var(--brand-deep);
}

.fetch-state.success {
  color: #20663b;
}

.fetch-state.error {
  color: #9e3b28;
}

.weather-current-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(240px, 0.7fr);
  gap: 18px;
  padding: 22px;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(255, 252, 246, 0.94) 0%, rgba(244, 234, 216, 0.86) 100%);
}

.current-display {
  display: grid;
  gap: 18px;
}

.current-headline {
  display: flex;
  align-items: start;
  gap: 18px;
}

.current-symbol {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 22px;
  background: rgba(171, 106, 27, 0.1);
  font-size: 34px;
}

.current-topline {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 16px;
}

.current-temp {
  font-family: var(--font-number);
  font-size: clamp(54px, 10vw, 88px);
  line-height: 0.9;
  letter-spacing: -0.04em;
}

.current-condition {
  font-family: var(--font-body);
  font-size: 28px;
  font-weight: 700;
}

.current-summary,
.summary-copy,
.forecast-meta,
.trend-labels,
.trend-caption,
.detail-card-head p,
.focus-card-top p,
.focus-brief p,
.focus-column-card p {
  color: var(--muted);
}

.current-summary {
  margin: 10px 0 0;
  font-size: 18px;
  line-height: 1.7;
}

.current-emphasis {
  display: grid;
  grid-template-columns: minmax(0, 1fr) repeat(2, minmax(140px, 0.42fr));
  gap: 12px;
}

.current-emphasis-card {
  min-height: 128px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(255, 250, 242, 0.84);
}

.current-emphasis-card.primary {
  background: linear-gradient(135deg, rgba(255, 244, 225, 0.98) 0%, rgba(235, 212, 176, 0.86) 100%);
}

.current-emphasis-card strong,
.current-stat strong,
.forecast-temps strong,
.focus-temp-line strong,
.focus-column-card strong,
.focus-stat strong,
.life-suggestion-card strong {
  display: block;
  margin-top: 10px;
  font-family: var(--font-number);
}

.current-emphasis-card strong {
  font-size: 28px;
}

.current-emphasis-card p {
  margin: 10px 0 0;
  color: var(--muted);
  line-height: 1.65;
}

.current-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.current-stat {
  min-width: 0;
  padding: 14px 16px;
  border-radius: 18px;
}

.current-stat strong {
  display: block;
  max-width: 100%;
  font-size: 24px;
  line-height: 1.18;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.current-stat span {
  display: block;
  margin-top: 8px;
  color: var(--muted);
}

.forecast-grid {
  display: grid;
  gap: 16px;
}

.forecast-grid-wide {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.forecast-card,
.forecast-summary-card,
.forecast-focus-card,
.weather-detail-card,
.life-suggestion-card {
  border-radius: var(--radius-lg);
  padding: 22px;
}

.forecast-card {
  position: relative;
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.forecast-card:hover {
  transform: translateY(-2px);
}

.forecast-card.is-active {
  border-color: rgba(171, 106, 27, 0.4);
  background: linear-gradient(180deg, rgba(255, 248, 236, 0.98) 0%, rgba(245, 232, 212, 0.92) 100%);
}

.forecast-card.is-active::after {
  content: '已选中';
  position: absolute;
  top: 14px;
  right: 14px;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(171, 106, 27, 0.1);
  color: var(--brand-deep);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.01em;
  white-space: nowrap;
  box-shadow: inset 0 0 0 1px rgba(171, 106, 27, 0.06);
}

.forecast-card-header,
.detail-card-head,
.detail-row,
.trend-row,
.summary-list div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.forecast-card h3,
.forecast-focus-card h3,
.forecast-summary-card h3,
.detail-card-head h3 {
  margin: 0;
  font-family: var(--font-body);
  font-weight: 700;
}

.forecast-weather-symbol {
  font-size: 28px;
}

.forecast-temps {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-top: 18px;
}

.forecast-temps strong {
  font-size: 36px;
}

.forecast-temps span {
  color: var(--muted);
}

.forecast-meta {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.forecast-focus-layout,
.weather-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.75fr);
  gap: 18px;
  margin-top: 18px;
}

.forecast-focus-card {
  display: grid;
  gap: 20px;
  align-content: start;
  background: linear-gradient(145deg, rgba(255, 251, 245, 0.98) 0%, rgba(241, 228, 209, 0.92) 100%);
}

.focus-card-top {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
}

.forecast-chip,
.detail-highlight {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(171, 106, 27, 0.1);
  color: var(--brand-deep);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.01em;
  white-space: nowrap;
  box-shadow: inset 0 0 0 1px rgba(171, 106, 27, 0.06);
}

.focus-temp-line {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.focus-temp-line strong {
  font-size: clamp(42px, 7vw, 68px);
}

.focus-temp-line span {
  color: var(--muted);
}

.focus-columns,
.focus-stat-grid,
.life-suggestion-grid {
  display: grid;
  gap: 12px;
}

.focus-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.focus-column-card,
.focus-stat {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(255, 250, 242, 0.8);
}

.focus-column-card strong {
  font-size: 24px;
}

.forecast-focus-card .card-kicker,
.forecast-summary-card .card-kicker {
  font-family: var(--font-body);
}

.focus-column-card p {
  margin: 10px 0 0;
  line-height: 1.6;
}

.focus-stat-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.focus-stat strong {
  font-size: 21px;
}

.forecast-summary-card {
  display: grid;
  gap: 16px;
  align-content: start;
}

.summary-list {
  display: grid;
  gap: 12px;
}

.summary-list strong {
  color: var(--text);
}

.summary-copy {
  margin: 0;
  line-height: 1.75;
}

.life-suggestion-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.life-suggestion-card {
  min-height: 160px;
}

.life-suggestion-card strong {
  font-size: 24px;
}

.life-suggestion-card p {
  margin: 10px 0 0;
  color: var(--muted);
  line-height: 1.65;
}

.detail-grid,
.trend-rows {
  display: grid;
  gap: 12px;
}

.detail-grid {
  margin-top: 18px;
}

.detail-row {
  min-height: 56px;
  padding: 0 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 250, 242, 0.72);
}

.detail-row strong {
  font-size: 18px;
}

.trend-rows {
  margin-top: 18px;
}

.trend-row {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) 120px;
  gap: 14px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid transparent;
  border-radius: 18px;
  cursor: pointer;
}

.trend-row:hover {
  background: rgba(255, 250, 242, 0.72);
}

.trend-row.is-active {
  border-color: rgba(171, 106, 27, 0.3);
  background: rgba(255, 247, 233, 0.9);
}

.trend-track {
  position: relative;
  height: 12px;
  border-radius: 999px;
  background: rgba(130, 88, 32, 0.12);
  overflow: hidden;
}

.trend-fill {
  position: absolute;
  top: 0;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #b56f1f 0%, #d69a49 100%);
}

.trend-labels {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
}

.empty-state.weather-empty {
  padding: 42px 18px;
}

@media (max-width: 1080px) {
  .weather-search-shell,
  .weather-overview-layout,
  .weather-current-panel,
  .forecast-focus-layout,
  .weather-detail-layout {
    grid-template-columns: 1fr;
  }

  .hero-insight-grid,
  .life-suggestion-grid,
  .forecast-grid-wide,
  .focus-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .focus-columns,
  .current-emphasis {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .weather-section-head {
    flex-direction: row;
    align-items: center;
  }

  .weather-search-shell {
    grid-template-columns: 1fr;
  }

  .weather-search-actions {
    justify-content: flex-start;
  }

  .current-headline {
    flex-direction: column;
  }
}

@media (max-width: 480px) {
  .weather-dashboard-panel {
    gap: 10px;
    padding: 12px;
  }

  .weather-section-head {
    margin-bottom: 0;
  }

  .weather-section-head h2 {
    font-size: 20px;
  }

  .weather-search-actions {
    gap: 6px;
  }

  .weather-search-actions .secondary-link,
  .weather-search-actions .primary-link {
    min-height: 36px;
    padding: 0 10px;
    border-radius: 12px;
    font-size: 12px;
  }

  .weather-search-field {
    gap: 5px;
  }

  .weather-search-field input {
    min-height: 42px;
    padding: 0 12px;
    border-radius: 12px;
    font-size: 16px;
  }

  .active-location-strip {
    align-items: center;
    padding: 10px;
    border-radius: 12px;
  }

  .active-location-strip strong {
    font-size: 18px;
  }

  .active-location-strip p {
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.35;
  }

  .weather-tag {
    min-height: 28px;
    padding: 0 9px;
    font-size: 11px;
  }

  .weather-current-panel {
    gap: 12px;
    padding: 14px;
    border-radius: 18px;
  }

  .weather-live-rail {
    gap: 8px;
  }

  .weather-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .weather-metrics article,
  .weather-status-list div {
    padding: 8px;
    border-radius: 12px;
  }

  .weather-metrics strong {
    font-size: 18px;
  }

  .weather-metrics span,
  .weather-status-list dt,
  .weather-status-list dd,
  .fetch-state {
    font-size: 11px;
  }

  .weather-status-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .weather-status-list dd {
    margin-top: 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .fetch-state {
    margin-top: 0;
  }

  .hero-insight-grid,
  .life-suggestion-grid,
  .forecast-grid-wide,
  .focus-stat-grid {
    grid-template-columns: 1fr;
  }

  .current-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .forecast-card.is-active::after {
    position: static;
    display: inline-flex;
    margin-top: 12px;
    width: fit-content;
  }

  .trend-row {
    grid-template-columns: 1fr;
  }
}
