.weathercast-center-shell, .weathercast-admin-wrap {
  --wc-bg: #09111f;
  --wc-panel: #101b2f;
  --wc-panel-2: #13223b;
  --wc-border: rgba(255,255,255,.08);
  --wc-text: #edf4ff;
  --wc-muted: #aab8d0;
  --wc-accent: #57b3ff;
  --wc-accent-2: #84f7d3;
  --wc-danger: #ff8b7d;
  color: var(--wc-text);
}
.weathercast-center-shell { display: grid; gap: 24px; }
.weathercast-card, .weathercast-hero-card, .weathercast-admin-note {
  background: linear-gradient(180deg, var(--wc-panel), var(--wc-panel-2));
  border: 1px solid var(--wc-border);
  border-radius: 24px;
  box-shadow: 0 20px 45px rgba(0,0,0,.22);
  padding: 24px;
  color: var(--wc-text);
}
.weathercast-eyebrow { color: var(--wc-accent-2); text-transform: uppercase; letter-spacing: .12em; font-size: 12px; margin-bottom: 10px; }
.weathercast-hero-card h2 { margin: 0 0 8px; font-size: clamp(2rem, 4vw, 3.2rem); }
.weathercast-hero-copy, .weathercast-summary, .weathercast-subtle, .weathercast-search-help { color: var(--wc-muted); }
.weathercast-model-banner, .weathercast-location-chip {
  display: inline-block; margin-top: 14px; padding: 10px 14px; border-radius: 999px;
  background: rgba(87,179,255,.08); border: 1px solid rgba(87,179,255,.18);
}
.weathercast-search { margin-top: 18px; }
.weathercast-search label { display:block; margin-bottom: 10px; font-weight: 700; }
.weathercast-search-row { display:flex; gap:12px; flex-wrap:wrap; }
.weathercast-search input {
  flex:1 1 260px; min-width: 220px; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--wc-border);
  background: rgba(255,255,255,.04); color: var(--wc-text);
}
.weathercast-search button {
  padding: 14px 18px; border: 0; border-radius: 14px; background: linear-gradient(135deg, var(--wc-accent), #6695ff);
  color: #04111f; font-weight: 800; cursor: pointer;
}
.weathercast-top-grid, .weathercast-forecast-grid, .weathercast-index-grid { display:grid; gap:20px; }
.weathercast-top-grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.weathercast-forecast-grid { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.weathercast-index-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.weathercast-card-heading { font-size: 1.1rem; font-weight: 800; margin-bottom: 16px; }
.weathercast-current-grid { display:grid; grid-template-columns: 1.2fr 1fr; gap: 20px; align-items:center; }
.weathercast-big-number { font-size: clamp(2rem, 4vw, 3rem); font-weight: 900; line-height: 1; }
.weathercast-current-stats, .weathercast-hour-meta { display:grid; gap: 8px; color: var(--wc-muted); }
.weathercast-alert-list { display:grid; gap:14px; }
.weathercast-alert-item, .weathercast-forecast-item, .weathercast-hour-item, .weathercast-index-table {
  background: rgba(255,255,255,.03); border: 1px solid var(--wc-border); border-radius: 18px; padding: 16px;
}
.weathercast-alert-item h3, .weathercast-forecast-item h3, .weathercast-index-table h3 { margin-top: 0; }
.weathercast-hour-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.weathercast-hour-top { display:flex; justify-content:space-between; gap:10px; margin-bottom: 10px; }
.weathercast-hour-forecast { font-weight: 700; margin-bottom: 10px; }
.weathercast-tags { display:flex; flex-wrap:wrap; gap:8px; margin: 12px 0; }
.weathercast-tags span {
  border-radius: 999px; padding: 6px 10px; font-size: 12px; border: 1px solid var(--wc-border); background: rgba(255,255,255,.06);
}
.weathercast-level-low { border-left: 4px solid #8ab7ff; }
.weathercast-level-guarded { border-left: 4px solid #ffd87c; }
.weathercast-level-elevated { border-left: 4px solid #ff9b67; }
.weathercast-level-critical { border-left: 4px solid #ff6b7c; }
.weathercast-index-table table { width:100%; border-collapse: collapse; }
.weathercast-index-table th, .weathercast-index-table td { padding: 9px 0; text-align:left; border-bottom: 1px solid var(--wc-border); vertical-align: top; }
.weathercast-radar-frame iframe { width:100%; min-height: 420px; border: 0; border-radius: 18px; }
.weathercast-error { border-left: 4px solid var(--wc-danger); }
@media (max-width: 700px) {
  .weathercast-current-grid { grid-template-columns: 1fr; }
}
