/* Atrium PV — public styles (v1.0.6) */
.atrium-pv-gallery, .atrium-pv-detail {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color: #14361F;
}
.atrium-pv-error, .atrium-pv-empty { padding: 1rem 1.25rem; border-radius: 12px; background: #FEF3C7; color: #78350F; }
.atrium-pv-error { background: #FEE2E2; color: #7F1D1D; }

/* ===== Gallery header ===== */
.atrium-pv-gallery__head {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 1.5rem; flex-wrap: wrap;
  margin-bottom: 1.75rem;
}
.atrium-pv-gallery__intro { max-width: 720px; }
.atrium-pv-gallery__title { margin: 0 0 .5rem; font-size: 2.25rem; font-weight: 800; color: #14361F; letter-spacing: -0.01em; }
.atrium-pv-gallery__lead  { margin: 0; color: #6B7280; font-size: 1rem; line-height: 1.55; }
.atrium-pv-gallery__pill {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 16px; border-radius: 999px;
  background: #EAF4DC; color: #5A8A2E;
  font-size: .875rem; font-weight: 600; white-space: nowrap;
}
.atrium-pv-gallery__pill .dot { width: 8px; height: 8px; border-radius: 50%; background: #7CB342; box-shadow: 0 0 0 4px rgba(124,179,66,.22); }

/* ===== Grid ===== */
.atrium-pv-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
}
.atrium-pv-grid--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.atrium-pv-grid--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.atrium-pv-grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 960px) {
  .atrium-pv-grid,
  .atrium-pv-grid--cols-3,
  .atrium-pv-grid--cols-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 640px)  {
  .atrium-pv-grid,
  .atrium-pv-grid--cols-2,
  .atrium-pv-grid--cols-3,
  .atrium-pv-grid--cols-4 { grid-template-columns: 1fr; }
}

/* Compact card variant — kleinere Höhe für /mieterstrom/ */
.atrium-pv-card--compact { padding: 20px 22px; }
.atrium-pv-card--compact .atrium-pv-card__title { font-size: 1.1rem; margin-bottom: 4px; }
.atrium-pv-card--compact .atrium-pv-card__addr  { margin-bottom: 18px; font-size: .85rem; }
.atrium-pv-card--compact .atrium-pv-kpi .v       { font-size: 1.55rem; }
.atrium-pv-card--compact .atrium-pv-kpi .l       { font-size: .72rem; }
.atrium-pv-card__cta {
  display: inline-block; margin-top: 16px;
  font-size: .85rem; font-weight: 600; color: #5A8A2E;
}
.atrium-pv-card:hover .atrium-pv-card__cta { text-decoration: underline; }

.atrium-pv-card {
  display: block;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 18px;
  padding: 28px;
  text-decoration: none !important;
  color: inherit;
  transition: transform .15s ease, box-shadow .2s ease, border-color .2s ease;
  position: relative;
}
.atrium-pv-card:hover {
  transform: translateY(-2px);
  border-color: #D1D5DB;
  box-shadow: 0 12px 30px -16px rgba(20,54,31,.18);
}
.atrium-pv-card__title { margin: 0 0 6px; font-size: 1.25rem; font-weight: 700; color: #14361F; line-height: 1.3; }
.atrium-pv-card__addr  { font-size: .9rem; color: #6B7280; margin-bottom: 28px; }
.atrium-pv-card__addr .sep { margin: 0 .35em; color: #C9CFD6; }

.atrium-pv-kpis {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 24px;
}
.atrium-pv-kpi .v {
  font-size: 2rem; font-weight: 800; line-height: 1.05;
  color: #111827;
  font-variant-numeric: tabular-nums;
}
.atrium-pv-kpi.is-accent .v { color: #7CB342; }
.atrium-pv-kpi .l { font-size: .78rem; color: #9CA3AF; margin-top: 6px; }

/* Live dot on card (optional) */
.atrium-pv-livebadge {
  position: absolute; top: 18px; right: 18px;
  display: inline-flex; align-items: center; gap: 6px;
  font-size: .7rem; font-weight: 600; color: #5A8A2E;
}
.atrium-pv-livebadge .dot { width: 7px; height: 7px; border-radius: 50%; background: #7CB342; box-shadow: 0 0 0 3px rgba(124,179,66,.22); animation: atriumPvPulse 1.8s ease-in-out infinite; }
.atrium-pv-livebadge.is-offline { color: #9CA3AF; }
.atrium-pv-livebadge.is-offline .dot { background: #D1D5DB; box-shadow: none; animation: none; }
@keyframes atriumPvPulse { 50% { box-shadow: 0 0 0 7px rgba(124,179,66,0); } }

/* ===== Detail ===== */
.atrium-pv-detail__head {
  display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap;
  margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid #E5E7EB;
}
.atrium-pv-detail__title { margin: 0; font-size: 1.85rem; font-weight: 800; color: #14361F; letter-spacing: -0.01em; }
.atrium-pv-detail__addr  { color: #6B7280; margin-top: .25rem; font-size: .95rem; }
.atrium-pv-kwp {
  font-size: 1.05rem; font-weight: 700; color: #5A8A2E;
  background: #EAF4DC; padding: .45rem 1rem; border-radius: 999px;
}

.atrium-pv-live {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 16px;
  margin-bottom: 1.75rem;
}
.atrium-pv-live__kpi {
  background: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 16px;
  padding: 1.1rem 1.25rem;
}
.atrium-pv-live__kpi .l { font-size: .75rem; color: #9CA3AF; text-transform: uppercase; letter-spacing: .04em; font-weight: 600; }
.atrium-pv-live__kpi .v { font-size: 1.85rem; font-weight: 800; margin-top: .35rem; color: #111827; font-variant-numeric: tabular-nums; line-height: 1.1; }
.atrium-pv-live__kpi .v small { font-size: .85rem; font-weight: 500; color: #9CA3AF; margin-left: 6px; }
.atrium-pv-live__kpi.is-accent .v { color: #7CB342; }

.atrium-pv-tabs {
  display: inline-flex; gap: 4px; padding: 4px;
  background: #F3F4F6; border-radius: 999px;
  margin-bottom: 1rem;
}
.atrium-pv-tabs button {
  border: 0; background: transparent;
  padding: .55rem 1.15rem; font-size: .9rem; font-weight: 600;
  color: #6B7280; border-radius: 999px; cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.atrium-pv-tabs button:hover { color: #14361F; }
.atrium-pv-tabs button.is-active { background: #14361F; color: #FFFFFF; }

.atrium-pv-chart-wrap {
  background: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 18px;
  padding: 1.25rem; min-height: 216px; position: relative;
}
.atrium-pv-chart-wrap > canvas { width: 100% !important; height: 100% !important; min-height: 204px; max-height: 216px; }

.atrium-pv-foot { margin-top: 1.5rem; }
.atrium-pv-back { color: #5A8A2E; text-decoration: none; font-weight: 600; }
.atrium-pv-back:hover { text-decoration: underline; }

@media (max-width: 600px) {
  .atrium-pv-gallery__title { font-size: 1.65rem; }
  .atrium-pv-detail__title { font-size: 1.35rem; }
  .atrium-pv-live__kpi .v { font-size: 1.4rem; }
  .atrium-pv-card { padding: 22px; }
  .atrium-pv-kpi .v { font-size: 1.65rem; }
}
