:root {
  color-scheme: light;
  --ecker-orange: #FCB723;
  --ecker-orange-hover: #E39A00;
  --ecker-orange-soft: #FFF3D6;
  --ecker-orange-surface: #FFF9ED;
  --ecker-blue: #3572B7;
  --ecker-blue-dark: #2A669C;
  --ecker-blue-light: #55AADE;
  --ecker-ink: #1C1C1A;
  --ecker-text-muted: #66717A;
  --ecker-border: #D9E0E5;
  --ecker-border-strong: #B8C2CA;
  --ecker-page: #EEF3F7;
  --ecker-surface: #FFFFFF;
  --ecker-surface-muted: #F6F8FA;
  --ecker-disabled: #E9EDF0;
  --ecker-success: #2E8B57;
  --ecker-warning: #D97706;
  --ecker-danger: #C63B32;
  --ecker-content-width: 1180px;
  --ecker-control-height: 46px;
  --ecker-radius-chip: 6px;
  --ecker-radius-control: 8px;
  --ecker-radius-card: 12px;
  --ecker-radius-panel: 16px;
  --ecker-space-1: 4px;
  --ecker-space-2: 8px;
  --ecker-space-3: 12px;
  --ecker-space-4: 16px;
  --ecker-space-6: 24px;
  --ecker-space-8: 32px;
  --ecker-space-12: 48px;
  --ecker-shadow-card: 0 6px 20px rgb(28 28 26 / 8%);
  --ecker-focus-ring: 0 0 0 4px rgb(252 183 35 / 28%);
  --ecker-transition: 160ms ease;

  /* compatibility aliases used by the existing application */
  --bg: var(--ecker-page);
  --card: var(--ecker-surface);
  --text: var(--ecker-ink);
  --muted: var(--ecker-text-muted);
  --line: var(--ecker-border);
  --accent: var(--ecker-orange);
  --accent2: var(--ecker-blue-dark);
  --ok: var(--ecker-success);
  --warn: var(--ecker-warning);
  --danger: var(--ecker-danger);
  --shadow: var(--ecker-shadow-card);
  font-family: Arial, Helvetica, sans-serif;
  font-synthesis: none;
}
*, *::before, *::after { box-sizing: border-box; }
html { min-width:320px; background:var(--ecker-page); color:var(--ecker-ink); font-size:16px; }
body { min-width:320px; min-height:100vh; margin:0; color:var(--ecker-ink); background:var(--ecker-page); font-family:Arial, Helvetica, sans-serif; line-height:1.5; }
body.modal-open { overflow:hidden; }
img { display:block; max-width:100%; }
a { color:var(--ecker-blue-dark); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover { color:var(--ecker-blue); }
:where(a,button,input,select,textarea,[tabindex]):focus-visible { outline:2px solid var(--ecker-orange-hover); outline-offset:2px; box-shadow:var(--ecker-focus-ring); }

.ecker-header { background:var(--ecker-surface); border-bottom:6px solid var(--ecker-orange); }
.ecker-header__brand { width:min(calc(100% - 64px), var(--ecker-content-width)); min-height:132px; margin-inline:auto; padding:var(--ecker-space-6) 0; display:flex; align-items:center; }
.company-logo { width:220px; height:92px; object-fit:contain; object-position:left center; background:#fff; }
main { width:min(calc(100% - 64px), var(--ecker-content-width)); margin-inline:auto; padding:var(--ecker-space-8) 0 var(--ecker-space-12); }
.page-intro { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--ecker-space-8); margin-bottom:var(--ecker-space-8); }
.eyebrow { margin-bottom:var(--ecker-space-2); color:var(--ecker-text-muted); font-size:12px; font-weight:700; letter-spacing:.06em; }
h1 { margin:0 0 var(--ecker-space-2); font-size:34px; line-height:1.15; font-weight:700; }
.lead { max-width:75ch; margin:0 0 var(--ecker-space-2); color:var(--ecker-text-muted); font-size:16px; }
.version { color:var(--ecker-text-muted); font-size:13px; }

.card { position:relative; overflow:hidden; margin-bottom:var(--ecker-space-8); background:var(--ecker-surface); border:1px solid var(--ecker-border); border-radius:var(--ecker-radius-panel); box-shadow:var(--ecker-shadow-card); }
.card::before { position:absolute; inset:0 0 auto; height:4px; background:var(--ecker-orange); content:""; }
.card > h2 { margin:0; padding:22px 24px 18px; color:var(--ecker-ink); background:var(--ecker-surface); border-bottom:1px solid var(--ecker-border); font-size:24px; line-height:1.25; font-weight:700; }
.card-body { padding:24px; }
.grid { display:grid; gap:16px 24px; }
.grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.grid-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.grid-5 { grid-template-columns:repeat(5,minmax(0,1fr)); }
label { display:block; margin-bottom:8px; color:var(--ecker-ink); font-size:13px; font-weight:700; line-height:1.35; }
input, select, button { font:inherit; }
input[type="number"], input[type="text"], input[type="date"], select { width:100%; min-height:var(--ecker-control-height); padding:11px 14px; border:1px solid var(--ecker-border); border-radius:var(--ecker-radius-control); background:var(--ecker-surface); color:var(--ecker-ink); transition:border-color var(--ecker-transition),box-shadow var(--ecker-transition); }
input[type="number"]:hover, input[type="text"]:hover, input[type="date"]:hover, select:hover { border-color:var(--ecker-border-strong); }
input[type="range"] { width:100%; accent-color:var(--ecker-orange-hover); }
input[type="file"] { width:100%; min-height:54px; padding:12px; border:1px dashed var(--ecker-border-strong); border-radius:var(--ecker-radius-card); background:var(--ecker-surface-muted); color:var(--ecker-ink); }
.checkbox { display:flex; align-items:center; gap:10px; margin:4px 0 16px; color:var(--ecker-ink); font-weight:700; }
.checkbox input { width:18px; height:18px; margin:0; accent-color:var(--ecker-orange-hover); }
button { min-height:44px; padding:10px 16px; border:1px solid var(--ecker-orange); border-radius:var(--ecker-radius-control); background:var(--ecker-orange); color:var(--ecker-ink); cursor:pointer; font-weight:700; transition:background var(--ecker-transition),border-color var(--ecker-transition),transform var(--ecker-transition); }
button:hover:not(:disabled) { background:var(--ecker-orange-hover); border-color:var(--ecker-orange-hover); }
button.secondary { background:var(--ecker-surface); color:var(--ecker-blue-dark); border-color:var(--ecker-border-strong); }
button.secondary:hover:not(:disabled) { background:var(--ecker-surface-muted); border-color:var(--ecker-blue); }
button:disabled { opacity:.48; cursor:not-allowed; }
.metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:16px 0; }
.metric { min-height:88px; padding:14px 16px; background:var(--ecker-surface-muted); border:1px solid var(--ecker-border); border-radius:var(--ecker-radius-card); }
.metric .k { color:var(--ecker-text-muted); font-size:12px; line-height:1.4; }
.metric .v { margin-top:6px; color:var(--ecker-ink); font-size:21px; font-weight:700; line-height:1.25; }
.notice { margin:12px 0; padding:12px 14px; border:1px solid; border-radius:var(--ecker-radius-control); font-size:13px; line-height:1.5; }
.notice.info { color:var(--ecker-blue-dark); background:#F1F7FC; border-color:#BFD2E7; }
.notice.ok { color:#1F6540; background:#EFF8F3; border-color:#BFDCCB; }
.notice.warn { color:#7A4D05; background:var(--ecker-orange-surface); border-color:#F1D38D; }
.notice.error { color:#8C2B25; background:#FFF2F1; border-color:#E8BFBC; }
.small { color:var(--ecker-text-muted); font-size:12.5px; line-height:1.45; }
.hidden { display:none !important; }
.table-wrap { overflow:auto; max-height:390px; border:1px solid var(--ecker-border); border-radius:var(--ecker-radius-card); background:var(--ecker-surface); }
table { border-collapse:collapse; width:100%; background:var(--ecker-surface); font-size:12px; }
th,td { padding:8px 10px; border-bottom:1px solid var(--ecker-border); text-align:right; white-space:nowrap; }
th { position:sticky; top:0; z-index:2; background:var(--ecker-orange-surface); color:var(--ecker-ink); font-weight:700; }
th:first-child,td:first-child { text-align:left; }
.tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.tab-btn { min-height:40px; padding:8px 12px; background:var(--ecker-surface); color:var(--ecker-blue-dark); border-color:var(--ecker-border-strong); }
.tab-btn.active { background:var(--ecker-blue); color:#fff; border-color:var(--ecker-blue); }
.tab-pane { display:none; }
.tab-pane.active { display:block; }
.chart { width:100%; min-height:440px; }
.heatmap { width:100%; min-height:900px; }
.section-title { margin:20px 0 10px; color:var(--ecker-ink); font-size:19px; line-height:1.3; }
.flex { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.statusbar { display:flex; align-items:center; gap:10px; min-height:34px; }
.status-pill { padding:7px 12px; border:1px solid var(--ecker-border); border-radius:999px; background:var(--ecker-surface); white-space:nowrap; }
.spinner { width:18px; height:18px; border:3px solid #E5E9EC; border-top-color:var(--ecker-orange-hover); border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
hr { margin:20px 0; border:0; border-top:1px solid var(--ecker-border); }
.help-details,.tariff-details { margin:12px 0 16px; border:1px solid var(--ecker-border); border-radius:var(--ecker-radius-card); background:var(--ecker-surface-muted); }
.help-details summary,.tariff-details summary { cursor:pointer; padding:11px 14px; color:var(--ecker-blue-dark); font-weight:700; user-select:none; }
.details-body { padding:0 14px 14px; color:#46515A; font-size:13px; line-height:1.5; }
.analysis-tab-info { margin:0 0 12px; }
.preset-action { display:flex; align-items:end; }
.preset-action button { width:100%; }

.ecker-footer { background:var(--ecker-surface); border-top:6px solid var(--ecker-orange); color:var(--ecker-text-muted); font-size:12.5px; }
.footer-inner { width:min(calc(100% - 64px), var(--ecker-content-width)); margin-inline:auto; padding:24px 0 28px; line-height:1.55; }
.footer-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.footer-title { margin-bottom:4px; color:var(--ecker-ink); font-weight:700; }
.footer-link-button { min-height:auto; margin-top:8px; padding:0; border:0; background:transparent; color:var(--ecker-blue-dark); text-decoration:underline; text-underline-offset:3px; font-size:12.5px; }
.footer-link-button:hover:not(:disabled) { background:transparent; border:0; color:var(--ecker-blue); }
.footer-legal-short { margin-top:18px; padding-top:16px; border-top:1px solid var(--ecker-border); }
.copyright { margin-top:10px; color:var(--ecker-ink); font-weight:700; }

/* legal acknowledgement dialog */
.legal-gate { position:fixed; inset:0; z-index:9999; display:grid; place-items:center; padding:24px; background:rgba(28,28,26,.58); }
.legal-dialog { width:min(900px,100%); max-height:min(92vh,900px); display:flex; flex-direction:column; overflow:hidden; background:var(--ecker-surface); border:1px solid var(--ecker-border); border-radius:var(--ecker-radius-panel); box-shadow:0 20px 60px rgba(28,28,26,.22); }
.legal-dialog-head { display:flex; align-items:center; gap:24px; padding:20px 24px; border-bottom:6px solid var(--ecker-orange); }
.legal-dialog-logo { width:150px; height:72px; object-fit:contain; object-position:left center; flex:0 0 auto; }
.legal-dialog h2 { margin:0; font-size:24px; line-height:1.25; }
.legal-scroll { overflow:auto; padding:20px 24px; color:#3E474D; font-size:14px; }
.legal-scroll h3 { margin:18px 0 6px; color:var(--ecker-ink); font-size:16px; }
.legal-scroll h3:first-child { margin-top:0; }
.legal-scroll p { margin:0 0 10px; max-width:82ch; }
.legal-confirm { display:flex; gap:10px; align-items:flex-start; margin:0; padding:16px 24px; border-top:1px solid var(--ecker-border); background:var(--ecker-orange-surface); font-size:14px; }
.legal-confirm input { width:18px; height:18px; margin:2px 0 0; accent-color:var(--ecker-orange-hover); flex:0 0 auto; }
.legal-actions { padding:0 24px 12px; background:var(--ecker-orange-surface); }
.legal-actions button { width:100%; }
.legal-local-note { padding:0 24px 18px; background:var(--ecker-orange-surface); color:var(--ecker-text-muted); font-size:12px; }

@media (max-width: 999px) { .grid-3,.grid-4,.grid-5 {grid-template-columns:repeat(2,minmax(0,1fr));} .metrics {grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width: 699px) {
  .ecker-header__brand, main, .footer-inner { width:min(calc(100% - 32px), var(--ecker-content-width)); }
  .ecker-header__brand { min-height:104px; padding:16px 0; }
  .company-logo { width:165px; height:68px; }
  main { padding:24px 0 32px; }
  .page-intro { flex-direction:column; gap:12px; margin-bottom:24px; }
  h1 { font-size:28px; }
  .card { margin-bottom:24px; }
  .card > h2 { padding:18px 16px 14px; font-size:22px; }
  .card-body { padding:16px; }
  .grid-2,.grid-3,.grid-4,.grid-5 { grid-template-columns:1fr; }
  .metrics { grid-template-columns:1fr; }
  .heatmap { min-height:700px; }
  input[type="number"],input[type="text"],input[type="date"],select,button { min-height:48px; }
  label { font-size:14px; }
  .footer-grid { grid-template-columns:1fr; }
  .legal-gate { padding:12px; }
  .legal-dialog-head { align-items:flex-start; flex-direction:column; gap:12px; padding:16px; }
  .legal-dialog-logo { width:130px; height:62px; }
  .legal-scroll,.legal-confirm { padding-left:16px; padding-right:16px; }
  .legal-actions,.legal-local-note { padding-left:16px; padding-right:16px; }
}

.tariff-details { margin:14px 0; border:1px solid var(--line); border-radius:9px; background:#fbfcfd; }
.tariff-details summary { cursor:pointer; padding:10px 12px; font-weight:700; color:#34414d; }
.details-body { padding:0 12px 12px; }

/* Netzentgelt / 2.500-h-Entscheidungsdarstellung */
.net-tariff-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin:6px 0 12px; }
.net-threshold-label { font-size:25px; font-weight:800; color:var(--accent2); line-height:1.1; }
.net-tariff-grid { margin-bottom:16px; }
.tariff-card { border:1px solid var(--line); border-radius:12px; padding:14px; background:#fbfcfd; }
.tariff-card h3 { font-size:15px; margin:0 0 12px; }
.tariff-low { border-left:5px solid #C63B32; }
.tariff-high { border-left:5px solid #2E8B57; }
.net-path { margin:12px 0 14px; }
.net-scale { position:relative; height:132px; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; }
.net-scale-zones { position:absolute; left:18px; right:18px; top:46px; height:28px; border-radius:14px; overflow:hidden; display:flex; box-shadow:inset 0 0 0 1px rgba(0,0,0,.05); }
.net-zone-good { background:#E7F4EC; }
.net-zone-bad { background:#FBE8E6; }
.net-scale-line { position:absolute; left:18px; right:18px; top:59px; height:2px; background:#B8C2CA; }
.net-marker { position:absolute; top:27px; transform:translateX(-50%); text-align:center; min-width:115px; z-index:3; }
.net-marker::after { content:""; display:block; width:3px; height:50px; margin:5px auto 0; background:currentColor; border-radius:2px; }
.net-marker-current { color:#C63B32; }
.net-marker-threshold { color:#66717A; top:18px; }
.net-marker-after { color:#3572B7; top:75px; }
.net-marker .marker-title { font-size:11px; font-weight:750; line-height:1.15; }
.net-marker .marker-value { font-size:13px; font-weight:800; line-height:1.2; white-space:nowrap; }
.net-arrow { position:absolute; top:91px; height:2px; background:#3572B7; transform-origin:left center; z-index:2; }
.net-arrow::after { content:""; position:absolute; right:-1px; top:-4px; width:0; height:0; border-top:5px solid transparent; border-bottom:5px solid transparent; border-left:8px solid #3572B7; }
.net-scale-caption { position:absolute; left:18px; right:18px; bottom:7px; display:flex; justify-content:space-between; font-size:11px; color:var(--muted); }
.net-target-box { border-radius:11px; padding:12px 14px; border:1px solid var(--line); margin-top:10px; }
.net-target-box.good { background:#eff9f3; border-color:#bfe1ca; color:#12532e; }
.net-target-box.warn { background:#fff8e8; border-color:#ead49e; color:#704900; }
.net-target-box.bad { background:#fff0f0; border-color:#e7b7b7; color:#862222; }
.metric.emphasis { border:2px solid var(--accent); background:#F1F7FC; }
.metric.danger { border:2px solid #C63B32; background:#FFF2F1; }
.metric.success { border:2px solid #2E8B57; background:#EFF8F3; }
@media (max-width:700px) {
  .net-tariff-head { align-items:stretch; flex-direction:column; }
  .net-scale { height:154px; }
  .net-marker { min-width:90px; }
}
.tariff-card.active-low { box-shadow:0 0 0 3px rgba(162,43,43,.12); background:#FFF2F1; }
.tariff-card.active-high { box-shadow:0 0 0 3px rgba(23,107,58,.12); background:#EFF8F3; }
.net-arrow-left::after { display:none; }
.net-arrow-left::before { content:""; position:absolute; left:-1px; top:-4px; width:0; height:0; border-top:5px solid transparent; border-bottom:5px solid transparent; border-right:8px solid #3572B7; }

/* Web 5.4: klare Trennung 6.1 Ist / 6.2 Zielzustand */
.net-subsection { margin-top:18px; padding-top:4px; }
.net-subsection + .net-subsection { margin-top:26px; padding-top:22px; border-top:2px solid #D9E0E5; }
.net-subsection-target { background:var(--ecker-orange-surface); border-radius:12px; padding-left:10px; padding-right:10px; padding-bottom:8px; }
.section-explain { margin:-4px 0 12px; }

/* Web 5.5: Netzebenen-Preset */
.net-level-grid { margin:10px 0 12px; align-items:start; }
.net-price-year { font-size:13px; font-weight:700; color:var(--muted); padding-bottom:3px; }
#net-trafo-loss-wrap.disabled { opacity:.55; }
#net-tariff-source-note { margin:8px 0 14px; }


/* Web 5.6: universelle Tariflogik und Hilfetafeln */
.help-details { margin:10px 0 14px; border:1px solid #D9E0E5; border-radius:9px; background:#F6F8FA; }
.help-details summary { cursor:pointer; padding:9px 12px; font-weight:700; color:#2A669C; user-select:none; }
.help-details .details-body { padding:0 12px 12px; color:#46515A; font-size:13px; line-height:1.5; }
.analysis-tab-info { margin:0 0 12px; }
.preset-action { display:flex; align-items:end; }
.preset-action button { width:100%; }
#net-threshold-hours { font-weight:750; }

/* Web 5.8: Standort-/PVGIS- und SMARD-Onlinebausteine */
.subcard { margin:16px 0; padding:16px; border:1px solid var(--ecker-border); border-radius:var(--ecker-radius-card); background:var(--ecker-surface-muted); }
.subcard .section-title { margin-top:0; }
.span-2 { grid-column:span 2; }
.action-bottom { display:flex; align-items:flex-end; }
.action-bottom > button,.action-bottom > .button-link { width:100%; }
.button-link { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 14px; border:1px solid var(--ecker-orange-hover); border-radius:8px; background:var(--ecker-orange); color:var(--ecker-ink); font-weight:700; text-decoration:none; }
.button-link:hover { background:var(--ecker-orange-hover); color:#fff; }
.button-link.secondary { background:#fff; color:var(--ecker-blue-dark); border-color:var(--ecker-blue); }
.button-link.secondary:hover { background:var(--ecker-blue); color:#fff; }
.source-note { margin-top:12px; color:#5B6670; font-size:12.5px; line-height:1.5; }
.source-note a { color:var(--ecker-blue-dark); }
.source-badge { min-height:44px; display:flex; align-items:center; padding:10px 12px; border:1px solid #BFD0E1; border-radius:8px; background:#EFF5FB; color:var(--ecker-blue-dark); font-weight:700; }
.online-progress { border-left:4px solid var(--ecker-blue); }
@media (max-width:999px) { .span-2 { grid-column:span 1; } }

.map-preview{width:100%;height:320px;border:1px solid var(--border,#D9E0E5);border-radius:12px;margin-top:14px;background:#f7f9fa;}

/* Web 6.0: tabellarischer Analyseablauf nach Portalstandard */
.workflow-tabs {
  position:sticky; top:0; z-index:50;
  display:grid; grid-template-columns:repeat(7,minmax(0,1fr));
  gap:6px; margin:0 0 24px; padding:8px;
  border:1px solid var(--ecker-border); border-radius:14px;
  background:rgba(255,255,255,.96); box-shadow:0 6px 18px rgba(28,28,26,.06);
  backdrop-filter:blur(8px);
}
.workflow-tab {
  min-height:58px; display:flex; align-items:center; justify-content:center; gap:8px;
  padding:9px 10px; border:1px solid transparent; border-radius:10px;
  background:transparent; color:var(--ecker-text-muted); font-weight:700; line-height:1.15;
}
.workflow-tab:hover { background:var(--ecker-orange-surface); color:var(--ecker-ink); border-color:#F3D690; }
.workflow-tab.active { background:var(--ecker-orange); color:var(--ecker-ink); border-color:var(--ecker-orange-hover); box-shadow:0 2px 7px rgba(28,28,26,.08); }
.workflow-num { width:25px; height:25px; display:inline-grid; place-items:center; flex:0 0 25px; border-radius:50%; background:#fff; border:1px solid currentColor; font-size:12px; font-weight:800; }
.workflow-pane { animation:workflowFade .16s ease-out; }
@keyframes workflowFade { from { opacity:.35; transform:translateY(4px); } to { opacity:1; transform:none; } }
.workflow-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:26px; padding-top:18px; border-top:1px solid var(--ecker-border); }
.workflow-actions > :last-child { justify-self:end; }
.workflow-actions > :first-child { justify-self:start; }
.workflow-actions button { min-width:190px; }

.section-lead-row { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:24px; align-items:end; margin-bottom:14px; }
.section-lead { margin:4px 0 0; max-width:82ch; color:var(--ecker-text-muted); line-height:1.55; }

/* Drei PVGIS-Anlagen mit eigener Standortkarte */
.plants-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; align-items:start; }
.plant-card { min-width:0; padding:15px; border:1px solid var(--ecker-border); border-radius:12px; background:#fff; box-shadow:0 2px 8px rgba(28,28,26,.035); }
.plant-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; padding-bottom:10px; border-bottom:3px solid var(--ecker-orange); }
.plant-index { margin-bottom:4px; color:var(--ecker-text-muted); font-size:11px; font-weight:800; letter-spacing:.08em; }
.plant-name-input { min-height:36px!important; padding:6px 8px!important; border:0!important; border-bottom:1px solid var(--ecker-border)!important; border-radius:0!important; background:transparent!important; color:var(--ecker-ink); font-size:16px; font-weight:800; }
.plant-status-dot { width:12px; height:12px; margin-top:7px; flex:0 0 12px; border-radius:50%; background:#C9D1D7; box-shadow:0 0 0 3px #F1F3F5; }
.plant-status-dot.loaded { background:#2E8B57; box-shadow:0 0 0 3px #E7F4EC; }
.plant-action { width:100%; margin:8px 0; }
.plant-map { height:210px; margin:9px 0 12px; border-radius:9px; }
.plant-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:12px; }
.plant-card label { margin-top:7px; font-size:12.5px; }
.plant-card input,.plant-card select,.plant-card button,.plant-card .button-link { min-height:40px; }
.plant-card .flex { gap:7px; }
.plant-card .flex button { flex:1 1 0; padding-left:9px; padding-right:9px; font-size:12px; }
.compact-grid { gap:8px; }
.compact-notice { margin:8px 0; padding:9px 10px; font-size:12px; }
.plant-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.plant-metrics .metric { padding:9px; }
#pv-multi-summary { margin-top:12px; }

.analysis-final-intro { margin-bottom:18px; padding:14px 16px; border-left:5px solid var(--ecker-orange); border-radius:8px; background:var(--ecker-orange-surface); }
.analysis-group-title { margin:28px 0 12px; padding-bottom:9px; border-bottom:2px solid var(--ecker-border); color:var(--ecker-ink); font-size:20px; }
.analysis-result-group { margin-top:32px; padding-top:2px; }
.export-group { margin-bottom:4px; }

@media (max-width:1100px) {
  .workflow-tabs { grid-template-columns:repeat(4,minmax(0,1fr)); position:relative; }
  .plants-grid { grid-template-columns:1fr; }
  .plant-card { max-width:none; }
  .plant-fields { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .plant-map { height:250px; }
}
@media (max-width:699px) {
  .workflow-tabs { display:flex; overflow-x:auto; gap:7px; padding:7px; scrollbar-width:thin; }
  .workflow-tab { min-width:145px; flex:0 0 auto; }
  .workflow-actions { grid-template-columns:1fr; }
  .workflow-actions button { width:100%; min-width:0; justify-self:stretch!important; }
  .section-lead-row { grid-template-columns:1fr; gap:12px; }
  .plant-fields { grid-template-columns:1fr 1fr; }
  .plant-map { height:220px; }
}
/* v6.0 – gemeinsamer Projektstandort und flexible Erzeugungsanlagen */
.project-location-card{margin:16px 0 18px;padding:18px;border-left:4px solid var(--ecker-orange);}
.project-location-card .project-map{height:270px;margin-top:0;}
.plant-mode-panel{margin-top:12px;padding-top:10px;border-top:1px solid var(--ecker-border);}
.profile-type-note{margin:4px 0 10px;padding:9px 10px;border-radius:8px;background:#f4f7f9;color:#4d5963;font-size:12.5px;line-height:1.45;}
.plant-profile-mapping{margin-top:10px;}
.plant-profile-mapping .details-body{padding-top:8px;}
@media(max-width:860px){.project-location-card .grid-2{grid-template-columns:1fr}.project-location-card .project-map{height:240px}}

/* Web 6.1: interaktive Projektstandortkarte im Stil des Graustrom-Tools */
.project-location-card{padding:20px;border-left:0;border-top:4px solid var(--ecker-orange);background:#fff;}
.project-location-search{margin-top:10px;}
.project-address-row{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:10px;align-items:end;}
.project-coordinate-row{max-width:640px;margin-top:10px;}
.project-map-shell{margin-top:16px;border:1px solid var(--ecker-border);border-radius:12px;background:#fff;overflow:hidden;}
.project-map-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 14px;border-bottom:1px solid var(--ecker-border);background:#fbfcfd;}
.project-map-coords{color:var(--ecker-blue-dark);font-size:12px;white-space:nowrap;}
.project-map-canvas{width:100%;height:430px;background:#e9eef2;}
.project-map-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px;border-top:1px solid var(--ecker-border);}
.project-map-actions button,.project-map-actions .button-link{width:100%;margin:0;}
.project-map-help{padding:0 12px 12px;color:#5b6670;}
.map-error{display:flex;align-items:center;justify-content:center;height:100%;min-height:320px;padding:28px;text-align:center;color:#9a3412;background:#fff7ed;}
@media(max-width:860px){.project-address-row{grid-template-columns:1fr}.project-map-canvas{height:360px}.project-map-actions{grid-template-columns:1fr}.project-map-head{display:block}.project-map-coords{margin-top:5px}}

/* Version 1.0: Erzeugungsanlagen, automatische Profile, PDF-Versand und Drucksperre */
.workflow-tabs{grid-template-columns:repeat(8,minmax(0,1fr));}
.bifacial-controls{margin:10px 0;padding:12px;border:1px solid #cbd8e4;border-radius:9px;background:#f4f8fb;}
.checkbox-field{display:flex;align-items:center;min-height:44px;}
.checkbox-field .checkbox,.consent-card .checkbox{display:flex;align-items:flex-start;gap:10px;margin:0;line-height:1.45;}
.checkbox-field input,.consent-card input{width:18px;height:18px;flex:0 0 18px;margin-top:2px;accent-color:var(--ecker-orange-hover);}
.consent-card{display:grid;gap:14px;background:#fff;}
.consent-card .checkbox{padding:12px;border:1px solid var(--ecker-border);border-radius:9px;background:var(--ecker-surface-muted);}
#contact-note{width:100%;min-height:105px;resize:vertical;border:1px solid var(--ecker-border);border-radius:8px;padding:10px 12px;font:inherit;background:#fff;color:var(--ecker-ink);}
#contact-note:focus{border-color:var(--ecker-orange-hover);box-shadow:var(--ecker-focus-ring);outline:0;}
#project-submit-status{margin-top:12px;}
.source-badge{font-size:12px;}
@media(max-width:1250px){.workflow-tabs{grid-template-columns:repeat(4,minmax(0,1fr));}}

@media print{
  @page{size:A4 portrait;margin:15mm;}
  body>*{display:none!important;}
  body::before{display:block!important;content:'Direkter Browserdruck ist deaktiviert. Die PDF-Lastganganalyse wird ausschließlich im vorgesehenen PDF-Schritt erzeugt und an die angegebene E-Mail-Adresse gesendet.';font:700 16pt Arial,Helvetica,sans-serif;line-height:1.5;color:#1C1C1A;padding:20mm;}
}


/* Web 6.7.0 – Layout-Fixing, VNBdigital und Batterie-Livewerte */
.workflow-tabs{
  display:grid!important;
  grid-template-columns:unset!important;
  grid-auto-flow:column;
  grid-auto-columns:minmax(138px,1fr);
  overflow-x:auto;
  overflow-y:hidden;
  gap:6px;
  scrollbar-width:thin;
  scroll-snap-type:x proximity;
}
.workflow-tab{min-width:0;scroll-snap-align:start;padding:8px 9px;white-space:normal;}
.workflow-label{display:block;min-width:0;text-align:center;overflow-wrap:anywhere;hyphens:auto;}

.plants-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:18px;align-items:start;}
.plant-card{width:100%;min-width:0;padding:18px;}
.plant-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;}
.plant-fields>div,.aligned-fields>div{min-width:0;}
.plant-fields label,.aligned-fields>div>label,.aligned-tariffs label{min-height:36px;display:flex;align-items:flex-end;overflow-wrap:anywhere;}
.bifacial-controls .grid-3{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px 14px;}
.bifacial-controls label{min-height:0;}
.plant-pvgis-actions{display:grid;grid-template-columns:minmax(180px,.9fr) minmax(190px,1.1fr);gap:10px;align-items:stretch;margin:10px 0;}
.plant-pvgis-actions button,.plant-pvgis-actions .source-badge{width:100%;min-height:48px;}

.vnb-card{border-left:4px solid var(--ecker-blue);background:#fbfdff;}
.vnb-grid{align-items:stretch;}
.vnb-auto-result{min-height:64px;align-items:flex-start;line-height:1.45;}
.vnb-override-check{margin-top:14px!important;margin-bottom:10px!important;}
#vnb-manual-wrap{max-width:720px;}

.battery-main-grid,.battery-soc-grid{margin:10px 0 18px;align-items:stretch;}
.battery-live-card{min-height:112px;padding:14px 16px;border:1px solid #BFD2E7;border-left:5px solid var(--ecker-blue);border-radius:12px;background:#F1F7FC;display:flex;flex-direction:column;justify-content:center;}
.battery-crate-value{font-size:30px;line-height:1.1;font-weight:800;color:var(--ecker-ink);margin:0 0 8px;}

.net-level-grid{grid-template-columns:1.05fr .85fr 1.1fr;align-items:stretch;}
.net-level-grid>div{display:flex;flex-direction:column;}
.net-level-grid input,.net-level-grid select{flex:0 0 auto;}
.net-level-grid .small{margin-top:7px;}
.net-tariff-grid{align-items:stretch;gap:18px;}
.tariff-card{height:100%;}
.tariff-card>.grid{align-items:start;}
.tariff-card>.grid>div{display:flex;flex-direction:column;}

.spot-source-grid{grid-template-columns:minmax(0,1fr) minmax(250px,.9fr) minmax(0,1fr);align-items:stretch;gap:18px;}
.spot-source-grid>div{display:flex;flex-direction:column;min-width:0;}
.spot-source-grid .action-bottom{justify-content:flex-end;}
.spot-source-grid .action-bottom button{min-height:64px;}
.spot-source-box{min-height:64px;margin:0;display:flex;align-items:center;}
.spot-file-grid{align-items:stretch;gap:18px;}
.spot-file-grid>div{display:flex;flex-direction:column;min-width:0;}
.spot-file-grid .notice{margin:0;min-height:54px;display:flex;align-items:center;}

@media(max-width:1100px){
  .workflow-tabs{position:relative;grid-auto-columns:minmax(145px,1fr);}
  .plants-grid{grid-template-columns:1fr;}
  .plant-fields{grid-template-columns:repeat(2,minmax(0,1fr));}
  .net-level-grid,.spot-source-grid{grid-template-columns:1fr 1fr;}
  .spot-source-grid>div:nth-child(2){order:3;grid-column:1/-1;}
  .spot-source-grid .action-bottom button{min-height:48px;}
}
@media(max-width:699px){
  .workflow-tabs{display:grid!important;grid-auto-columns:minmax(150px,1fr);padding:7px;}
  .plant-fields,.battery-main-grid,.battery-soc-grid,.net-level-grid,.spot-source-grid,.spot-file-grid{grid-template-columns:1fr!important;}
  .spot-source-grid>div:nth-child(2){grid-column:auto;order:initial;}
  .plant-pvgis-actions{grid-template-columns:1fr;}
  .aligned-fields>div>label,.plant-fields label,.aligned-tariffs label{min-height:0;}
}


/* Web 6.7.0 - Export-Gating und kompakte C-Rate */
.export-action-row{display:grid;grid-template-columns:minmax(280px,1.1fr) minmax(420px,1.9fr);gap:12px;align-items:stretch;margin-top:14px;}
.export-action-row>button{min-height:52px;}
.export-download-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.export-download-grid button{width:100%;min-height:52px;margin:0;}
@media(max-width:920px){.export-action-row{grid-template-columns:1fr}.export-download-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:620px){.export-download-grid{grid-template-columns:1fr}}

/* v6.7.0: klare Ausrichtungsstruktur und kundenorientierter PDF-Schritt */
.second-orientation-controls{margin:10px 0;padding:12px;border:1px solid #cbd8e4;border-radius:9px;background:#f4f8fb;}
.second-orientation-controls label{min-height:0;}
.export-action-row-single{display:block;}
.export-action-row-single>button{width:100%;min-height:54px;font-size:16px;}
.export-fineprint{margin-top:8px;line-height:1.45;color:var(--ecker-text-muted);}


/* Version 1.0 - öffentliche Startseite und Feinschliff */
.welcome-screen { display:grid; gap:24px; margin-bottom:32px; }
.welcome-hero { padding:40px; background:var(--ecker-surface); border:1px solid var(--ecker-border); border-top:6px solid var(--ecker-orange); border-radius:var(--ecker-radius-panel); box-shadow:var(--ecker-shadow-card); }
.welcome-hero h1 { max-width:780px; font-size:42px; margin-bottom:12px; }
.welcome-lead { max-width:820px; margin:0 0 16px; color:var(--ecker-ink); font-size:21px; line-height:1.45; }
.welcome-copy { max-width:850px; margin:0; color:var(--ecker-text-muted); font-size:16px; line-height:1.65; }
.welcome-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.welcome-actions > button,.welcome-actions > .button-link { min-width:210px; }
.welcome-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.welcome-benefit { padding:22px; background:var(--ecker-surface); border:1px solid var(--ecker-border); border-radius:var(--ecker-radius-card); }
.welcome-benefit-no { display:inline-flex; align-items:center; justify-content:center; min-width:36px; min-height:28px; padding:4px 8px; margin-bottom:14px; border-radius:var(--ecker-radius-chip); background:var(--ecker-orange-soft); color:var(--ecker-ink); font-size:12px; font-weight:700; }
.welcome-benefit h2 { margin:0 0 8px; font-size:19px; }
.welcome-benefit p { margin:0; color:var(--ecker-text-muted); font-size:14px; line-height:1.55; }
.welcome-video-card { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:24px; align-items:center; padding:24px; background:var(--ecker-surface); border:1px solid var(--ecker-border); border-radius:var(--ecker-radius-panel); }
.welcome-video-copy h2 { margin:0 0 8px; font-size:24px; }
.welcome-video-copy p { margin:0; color:var(--ecker-text-muted); }
.welcome-video-media { min-height:300px; display:grid; place-items:center; overflow:hidden; background:var(--ecker-surface-muted); border:1px solid var(--ecker-border); border-radius:var(--ecker-radius-card); }
.welcome-video-media video { width:100%; max-height:520px; background:#000; display:block; }
.welcome-video-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; min-height:300px; color:var(--ecker-text-muted); font-weight:700; }
.welcome-play-mark { position:relative; width:62px; height:62px; border:2px solid var(--ecker-orange-hover); border-radius:50%; background:var(--ecker-orange-soft); }
.welcome-play-mark::after { position:absolute; left:25px; top:18px; width:0; height:0; border-top:12px solid transparent; border-bottom:12px solid transparent; border-left:18px solid var(--ecker-ink); content:""; }
.load-explainer { margin:0 0 20px; padding:18px 20px; border-left:4px solid var(--ecker-orange); background:var(--ecker-orange-surface); border-radius:0 var(--ecker-radius-card) var(--ecker-radius-card) 0; }
.load-explainer h3 { margin:0 0 8px; font-size:19px; }
.load-explainer p { margin:0 0 8px; color:#46515A; font-size:14px; line-height:1.6; }
.load-explainer p:last-child { margin-bottom:0; }
.plant-pvgis-auto { display:grid; grid-template-columns:minmax(0,280px) 1fr; align-items:center; gap:12px; }
.plant-pvgis-auto .source-badge { min-height:46px; }
.plant-auto-note { padding:10px 12px; border:1px solid var(--ecker-border); border-radius:var(--ecker-radius-control); background:var(--ecker-surface); }
.spot-price-chart-wrap { margin-top:18px; padding:18px; overflow:hidden; border:1px solid var(--ecker-border); border-radius:var(--ecker-radius-card); background:var(--ecker-surface); }
.spot-chart-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:8px; }
.spot-chart-head h3 { margin:0; font-size:19px; }
.spot-price-chart { min-height:430px; }
@media (max-width: 899px){ .welcome-benefits{grid-template-columns:1fr;} .welcome-video-card{grid-template-columns:1fr;} .plant-pvgis-auto{grid-template-columns:1fr;} }
@media (max-width: 699px){ .welcome-hero{padding:24px 18px;} .welcome-hero h1{font-size:32px;} .welcome-lead{font-size:18px;} .welcome-actions>*{width:100%;} .welcome-video-card{padding:18px;} .welcome-video-media,.welcome-video-placeholder{min-height:220px;} .welcome-video-media video{max-height:360px;} .spot-chart-head{align-items:flex-start;flex-direction:column;} .spot-price-chart{min-height:360px;} }
