:root {
  --swcc-bg: #09111d;
  --swcc-panel: #111d2e;
  --swcc-panel-soft: #17263a;
  --swcc-text: #eef5ff;
  --swcc-muted: #9fb1c7;
  --swcc-line: rgba(255,255,255,.13);
  --swcc-accent: #87d8ff;
  --swcc-good: #6ee7a2;
  --swcc-watch: #ffd166;
  --swcc-storm: #ff9f5a;
  --swcc-extreme: #ff6b8a;
  --swcc-map-bg: #07111f;
}

.swcc-shell {
  box-sizing: border-box;
  width: 100%;
  border: 1px solid var(--swcc-line);
  border-radius: 22px;
  background: radial-gradient(circle at top left, rgba(135,216,255,.14), transparent 28rem), var(--swcc-bg);
  color: var(--swcc-text);
  padding: clamp(16px, 3vw, 28px);
  box-shadow: 0 22px 70px rgba(0,0,0,.24);
  overflow: hidden;
}

.swcc-shell * { box-sizing: border-box; }
.swcc-shell a { color: var(--swcc-accent); }
.swcc-shell h2, .swcc-shell h3, .swcc-shell h4, .swcc-shell p { margin-top: 0; }

.swcc-topbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.swcc-topbar h2 {
  color: var(--swcc-text);
  font-size: clamp(1.35rem, 2vw, 2.15rem);
  line-height: 1.1;
  margin: 0;
}

.swcc-eyebrow {
  color: var(--swcc-accent);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .72rem;
  font-weight: 700;
  margin-bottom: .35rem;
}

.swcc-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.swcc-actions .button,
.swcc-actions button {
  border: 1px solid var(--swcc-line);
  background: rgba(255,255,255,.08);
  color: var(--swcc-text);
  border-radius: 999px;
  padding: .45rem .75rem;
  cursor: pointer;
}

.swcc-status {
  min-height: 1.4em;
  color: var(--swcc-muted);
  font-size: .92rem;
  margin-bottom: 18px;
}

.swcc-grid { display: grid; gap: 14px; }
.swcc-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 14px; }
.swcc-card-grid-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.swcc-main-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }

.swcc-card,
.swcc-panel,
.swcc-impact,
.swcc-sources {
  background: linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.032));
  border: 1px solid var(--swcc-line);
  border-radius: 18px;
}

.swcc-card {
  min-height: 128px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
}

.swcc-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: var(--swcc-good);
}

.swcc-card.swcc-watch::before { background: var(--swcc-watch); }
.swcc-card.swcc-storm::before,
.swcc-card.swcc-strong::before { background: var(--swcc-storm); }
.swcc-card.swcc-extreme::before { background: var(--swcc-extreme); }
.swcc-card.swcc-unknown::before { background: var(--swcc-muted); }

.swcc-card span {
  color: var(--swcc-muted);
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 700;
}

.swcc-card strong {
  display: block;
  color: var(--swcc-text);
  font-size: clamp(1.35rem, 3vw, 2.1rem);
  line-height: 1.1;
  margin: .45rem 0;
}

.swcc-card em {
  color: var(--swcc-muted);
  font-style: normal;
  font-size: .9rem;
}

.swcc-panel {
  padding: 18px;
  min-width: 0;
}

.swcc-panel header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}

.swcc-panel h3,
.swcc-impact h3 {
  color: var(--swcc-text);
  font-size: 1.05rem;
  margin: 0;
}

.swcc-panel header p {
  color: var(--swcc-muted);
  font-size: .86rem;
  max-width: 28rem;
  margin: 0;
}

.swcc-chart {
  display: block;
  width: 100%;
  height: auto;
  min-height: 180px;
  color: var(--swcc-accent);
}

.swcc-chart-bg { fill: rgba(0,0,0,.18); }
.swcc-chart-line { fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.swcc-chart-label { fill: var(--swcc-muted); font: 13px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.swcc-chart-empty { color: var(--swcc-muted); padding: 2rem; text-align: center; border: 1px dashed var(--swcc-line); border-radius: 14px; }
.swcc-threshold { stroke: var(--swcc-watch); stroke-width: 2; stroke-dasharray: 6 6; }
.swcc-kp-bar { fill: var(--swcc-good); opacity: .9; }
.swcc-kp-watch { fill: var(--swcc-watch); }
.swcc-kp-storm,
.swcc-kp-strong { fill: var(--swcc-storm); }
.swcc-kp-extreme { fill: var(--swcc-extreme); }
.swcc-kp-predicted { opacity: .48; }
.swcc-kp-estimated { opacity: .68; }

.swcc-dual-chart {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.swcc-dual-chart h4 { margin: 0 0 8px; color: var(--swcc-muted); font-size: .88rem; }

.swcc-aurora-canvas {
  display: block;
  width: 100%;
  height: var(--swcc-map-height, 420px);
  border-radius: 14px;
  border: 1px solid var(--swcc-line);
  background: var(--swcc-map-bg);
}

.swcc-mini-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.swcc-mini-stats span,
.swcc-clean-list li,
.swcc-event-list li small,
.swcc-event-list li span { color: var(--swcc-muted); }
.swcc-mini-stats span {
  border: 1px solid var(--swcc-line);
  border-radius: 999px;
  padding: .25rem .55rem;
  font-size: .82rem;
}

.swcc-score {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 12px;
}
.swcc-score strong { font-size: 3rem; line-height: 1; }
.swcc-score span { color: var(--swcc-accent); font-weight: 700; }
.swcc-clean-list { margin: 0; padding-left: 1.1rem; }

.swcc-impact {
  margin: 14px 0;
  padding: 18px;
}
.swcc-impact-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.swcc-impact-card {
  border: 1px solid var(--swcc-line);
  border-radius: 14px;
  padding: 12px;
  background: rgba(255,255,255,.04);
}
.swcc-impact-card strong { text-transform: uppercase; letter-spacing: .08em; color: var(--swcc-accent); font-size: .76rem; }
.swcc-impact-card p { color: var(--swcc-muted); margin: .45rem 0 0; font-size: .9rem; }

.swcc-table-wrap { overflow-x: auto; }
.swcc-table { width: 100%; border-collapse: collapse; min-width: 760px; }
.swcc-table th,
.swcc-table td {
  border-bottom: 1px solid var(--swcc-line);
  padding: .65rem .55rem;
  text-align: left;
  color: var(--swcc-text);
}
.swcc-table th { color: var(--swcc-muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }

.swcc-probs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.swcc-probs .swcc-card { min-height: 104px; }

.swcc-alert-list,
.swcc-event-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
.swcc-alert-list li,
.swcc-event-list li {
  border: 1px solid var(--swcc-line);
  border-radius: 14px;
  padding: 12px;
  background: rgba(0,0,0,.16);
}
.swcc-alert-list strong,
.swcc-event-list strong { display: block; color: var(--swcc-text); }
.swcc-alert-list span,
.swcc-event-list span { display: block; font-size: .84rem; margin-top: .2rem; }
.swcc-alert-list p { color: var(--swcc-muted); margin: .55rem 0 0; font-size: .9rem; }
.swcc-alert-strong,
.swcc-alert-extreme { border-color: rgba(255,107,138,.55) !important; }
.swcc-alert-watch { border-color: rgba(255,209,102,.55) !important; }

.swcc-donki-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.swcc-donki-section h4 { margin: 0 0 8px; color: var(--swcc-accent); }

.swcc-sources {
  margin-top: 14px;
  padding: 12px 16px;
  color: var(--swcc-muted);
}
.swcc-sources summary { cursor: pointer; color: var(--swcc-text); }
.swcc-sources ul { margin: 10px 0 0; padding: 0; list-style: none; columns: 2; }
.swcc-sources li { break-inside: avoid; margin-bottom: 6px; display: flex; gap: 7px; align-items: center; }
.swcc-sources small { color: var(--swcc-muted); margin-left: 4px; }
.swcc-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--swcc-muted); flex: 0 0 auto; }
.swcc-dot-ok { background: var(--swcc-good); }
.swcc-dot-bad { background: var(--swcc-extreme); }

.swcc-error {
  padding: 18px;
  border: 1px solid rgba(255,107,138,.4);
  border-radius: 16px;
  background: rgba(255,107,138,.08);
  color: var(--swcc-text);
}

.swcc-compact {
  padding: 14px;
  border-radius: 16px;
}
.swcc-compact .swcc-topbar h2 { font-size: 1.1rem; }
.swcc-compact .swcc-actions { display: none; }
.swcc-compact .swcc-card { min-height: 96px; padding: 12px; }
.swcc-compact .swcc-card strong { font-size: 1.35rem; }
.swcc-compact .swcc-impact-grid { grid-template-columns: 1fr; }

@media (max-width: 1100px) {
  .swcc-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .swcc-main-grid,
  .swcc-impact-grid,
  .swcc-donki-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .swcc-shell { border-radius: 16px; padding: 14px; }
  .swcc-topbar { display: block; }
  .swcc-actions { justify-content: flex-start; margin-top: 12px; }
  .swcc-card-grid,
  .swcc-card-grid-compact,
  .swcc-probs,
  .swcc-dual-chart { grid-template-columns: 1fr; }
  .swcc-panel header { display: block; }
  .swcc-sources ul { columns: 1; }
}

.swcc-report-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.swcc-report {
  border: 1px solid var(--swcc-line);
  border-radius: 14px;
  padding: 12px;
  background: rgba(0,0,0,.15);
}
.swcc-report h4 { margin: 0 0 6px; color: var(--swcc-accent); }
.swcc-report strong { display: block; color: var(--swcc-text); margin-bottom: 6px; }
.swcc-report p { color: var(--swcc-muted); font-size: .9rem; margin: 0; white-space: pre-wrap; }
@media (max-width: 900px) { .swcc-report-grid { grid-template-columns: 1fr; } }

/* v1.1 visual upgrades */
.swcc-situation {
  --swcc-gauge-color: var(--swcc-good);
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(320px, 1.15fr);
  gap: 16px;
  align-items: stretch;
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid var(--swcc-line);
  border-radius: 20px;
  background:
    radial-gradient(circle at top right, rgba(135,216,255,.12), transparent 28rem),
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.028));
}
.swcc-situation.swcc-watch { --swcc-gauge-color: var(--swcc-watch); border-color: rgba(255,209,102,.38); }
.swcc-situation.swcc-storm,
.swcc-situation.swcc-strong { --swcc-gauge-color: var(--swcc-storm); border-color: rgba(255,159,90,.42); }
.swcc-situation.swcc-extreme { --swcc-gauge-color: var(--swcc-extreme); border-color: rgba(255,107,138,.55); }
.swcc-situation-main span {
  display: block;
  color: var(--swcc-accent);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .72rem;
  font-weight: 800;
  margin-bottom: .45rem;
}
.swcc-situation-main strong {
  display: block;
  font-size: clamp(1.45rem, 3vw, 2.4rem);
  line-height: 1.05;
  color: var(--swcc-text);
  margin-bottom: .5rem;
}
.swcc-situation-main p { color: var(--swcc-muted); margin-bottom: 0; max-width: 46rem; }
.swcc-situation-gauges {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.swcc-situation-tape {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.swcc-chip {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  border: 1px solid var(--swcc-line);
  border-radius: 999px;
  padding: .35rem .65rem;
  color: var(--swcc-muted);
  background: rgba(0,0,0,.15);
  font-size: .84rem;
}
.swcc-chip b { color: var(--swcc-text); }
.swcc-chip.swcc-watch { border-color: rgba(255,209,102,.5); }
.swcc-chip.swcc-storm,
.swcc-chip.swcc-strong { border-color: rgba(255,159,90,.5); }
.swcc-chip.swcc-extreme { border-color: rgba(255,107,138,.55); }
.swcc-gauge-card {
  --swcc-gauge-color: var(--swcc-good);
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 7px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--swcc-line);
  border-radius: 16px;
  background: rgba(0,0,0,.14);
  text-align: center;
}
.swcc-gauge-card.swcc-watch { --swcc-gauge-color: var(--swcc-watch); }
.swcc-gauge-card.swcc-storm,
.swcc-gauge-card.swcc-strong { --swcc-gauge-color: var(--swcc-storm); }
.swcc-gauge-card.swcc-extreme { --swcc-gauge-color: var(--swcc-extreme); }
.swcc-gauge-card strong { color: var(--swcc-text); font-size: .9rem; }
.swcc-gauge-card em { color: var(--swcc-muted); font-style: normal; font-size: .78rem; line-height: 1.25; }
.swcc-gauge {
  display: grid;
  place-items: center;
  width: 86px;
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    radial-gradient(circle at center, var(--swcc-panel) 0 57%, transparent 58%),
    conic-gradient(var(--swcc-gauge-color) calc(var(--swcc-gauge-value) * 1%), rgba(255,255,255,.12) 0);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.swcc-gauge span { color: var(--swcc-text); font-weight: 800; font-size: 1rem; }

.swcc-visual-grid > .swcc-panel:first-child { grid-column: 1 / -1; }
.swcc-aurora-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr);
  gap: 14px;
  align-items: start;
}
.swcc-map-stack { min-width: 0; }
.swcc-aurora-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 8px;
  color: var(--swcc-muted);
  font-size: .82rem;
}
.swcc-aurora-legend i {
  display: inline-block;
  width: 18px;
  height: 10px;
  border-radius: 999px;
  margin-right: 5px;
  vertical-align: -1px;
}
.swcc-legend-green { background: #58ff80; }
.swcc-legend-yellow { background: #ffd658; }
.swcc-legend-red { background: #ff4b48; }
.swcc-legend-night { background: rgba(0,0,0,.45); border: 1px solid rgba(255,255,255,.16); }
.swcc-official-ovals {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.swcc-official-ovals figure {
  margin: 0;
  border: 1px solid var(--swcc-line);
  border-radius: 14px;
  overflow: hidden;
  background: rgba(0,0,0,.18);
}
.swcc-official-ovals img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.swcc-official-ovals figcaption {
  color: var(--swcc-muted);
  font-size: .78rem;
  padding: 7px 9px;
}
.swcc-solar-canvas {
  display: block;
  width: 100%;
  min-height: 300px;
  height: 320px;
  border: 1px solid var(--swcc-line);
  border-radius: 14px;
  background: rgba(0,0,0,.18);
}
.swcc-hpi-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.swcc-scale-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.swcc-scale-group {
  border: 1px solid var(--swcc-line);
  border-radius: 14px;
  padding: 12px;
  background: rgba(0,0,0,.14);
}
.swcc-scale-group h4 { margin: 0 0 10px; color: var(--swcc-accent); font-size: .9rem; }
.swcc-scale-row {
  display: grid;
  grid-template-columns: 2.6rem 1fr;
  gap: 7px;
  align-items: center;
  margin-bottom: 8px;
}
.swcc-scale-row span { color: var(--swcc-text); font-weight: 800; }
.swcc-scale-row small { grid-column: 2; color: var(--swcc-muted); font-size: .74rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.swcc-scale-bar {
  height: 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  overflow: hidden;
}
.swcc-scale-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--swcc-good), var(--swcc-watch), var(--swcc-storm), var(--swcc-extreme));
}

@media (max-width: 1100px) {
  .swcc-situation { grid-template-columns: 1fr; }
  .swcc-aurora-layout { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
  .swcc-situation-gauges,
  .swcc-official-ovals,
  .swcc-hpi-grid,
  .swcc-scale-board { grid-template-columns: 1fr; }
  .swcc-gauge { width: 76px; }
}
