:root {
  --ink: #0e1216;
  --ink-soft: #424a51;
  --muted: #707980;
  --green: #2f8653;
  --green-dark: #226840;
  --green-soft: #eaf4ee;
  --orange: #f47a24;
  --orange-soft: #fff2e8;
  --canvas: #f6f7f5;
  --surface: #ffffff;
  --line: #dfe4df;
  --line-strong: #cbd3cc;
  --danger: #b83b32;
  --radius: 14px;
  --shadow: 0 12px 40px rgba(14,18,22,.07);
  --font: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* PV Mieterstrom */
.tenant-hero{background:linear-gradient(130deg,#102238 0%,#193c4e 58%,#168d77 100%);color:#fff;border-radius:24px;padding:clamp(26px,4vw,48px);display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:34px;box-shadow:0 18px 45px rgba(12,32,47,.18)}
.tenant-hero h1{font-size:clamp(34px,5vw,62px);line-height:1;margin:.12em 0 .25em;color:#fff}.tenant-hero p{font-size:18px;line-height:1.65;max-width:800px;color:#d9ecea}.tenant-hero .eyebrow{color:#81e2ce}.tenant-hero .button:not(.button-primary){background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3);color:#fff}.tenant-hero aside{border-left:1px solid rgba(255,255,255,.25);padding-left:26px;display:flex;flex-direction:column;align-items:flex-start}.tenant-hero aside>span{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#9fded3;margin-bottom:16px}.tenant-hero aside strong{font-size:31px;line-height:1.1;color:#fff}.tenant-hero aside small{color:#d6e4e6;margin:3px 0 18px}
.tenant-jump{position:sticky;top:72px;z-index:5;display:flex;gap:7px;overflow:auto;margin:18px 0 28px;padding:8px;background:rgba(247,249,248,.94);border:1px solid #dce4e2;border-radius:14px;backdrop-filter:blur(10px)}.tenant-jump a{white-space:nowrap;padding:9px 12px;border-radius:9px;color:#40545c;font-size:13px;font-weight:700}.tenant-jump a:hover{background:#fff;color:#08745f}
.tenant-section{scroll-margin-top:135px;margin:0 0 38px}.tenant-section>.section-heading-row{margin-bottom:18px}.tenant-section h2{font-size:clamp(25px,3vw,38px);margin:.15em 0}.tenant-section .section-heading-row p{max-width:850px;color:#66777d;line-height:1.65}
.tenant-proof{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}.tenant-proof.confirmed{background:#dff4eb;color:#12735c}.tenant-proof.open,.tenant-proof.assumption{background:#fff2d7;color:#8a5b04}.tenant-proof.past{background:#edf0f2;color:#647179}
.tenant-system{background:#f4f8f7;border:1px solid #dce7e4;border-radius:20px;padding:28px}.tenant-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:stretch;gap:10px;margin:22px 0}.tenant-flow article{background:#fff;border:1px solid #dde8e5;border-radius:14px;padding:18px}.tenant-flow article b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#0d806a;color:#fff}.tenant-flow h3{margin:14px 0 5px}.tenant-flow p{font-size:13px;line-height:1.55;color:#6c797e}.tenant-flow>i{align-self:center;font-style:normal;color:#72a99e;font-size:24px}
.tenant-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.tenant-contact-card{border:1px solid #dfe7e6;border-radius:17px;background:#fff;padding:22px;box-shadow:0 7px 24px rgba(20,45,55,.05);display:flex;flex-direction:column}.tenant-contact-card.is-priority{border-color:#56ad9b;background:linear-gradient(145deg,#fff,#f0faf7)}.tenant-contact-card header{display:flex;gap:13px;align-items:flex-start}.tenant-contact-card header h3{font-size:22px;margin:6px 0 3px}.tenant-contact-card header p{margin:0;color:#718086;font-size:13px}.tenant-contact-card>p{line-height:1.6;color:#52656c;min-height:52px}.tenant-rank{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#15364a;color:#fff;font-weight:800;font-size:18px;flex:0 0 auto}.tenant-contact-card dl{display:grid;grid-template-columns:105px 1fr;gap:7px;margin:6px 0 14px;font-size:14px}.tenant-contact-card dt{color:#77858a}.tenant-contact-card dd{margin:0;font-weight:650;overflow-wrap:anywhere}.tenant-warning{background:#fff7e6;border-left:3px solid #e8a523;border-radius:0 8px 8px 0;padding:11px 13px;font-size:12px;line-height:1.55;color:#69532a;margin-top:auto}.tenant-warning strong{display:block;color:#855c0b}.tenant-contact-card footer{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.tenant-copy-section{background:#132d3e;border-radius:21px;padding:28px;color:#fff}.tenant-copy-section h2,.tenant-copy-section h3{color:#fff}.tenant-copy-section .section-heading-row p{color:#c3d3d9}.tenant-copy-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:14px}.tenant-copy-grid article{background:#fff;color:#263b45;border-radius:15px;padding:18px;display:flex;flex-direction:column}.tenant-copy-grid article header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.tenant-copy-grid h3{color:#183345;margin:3px 0 10px}.tenant-copy-grid textarea{width:100%;min-height:360px;resize:vertical;border:1px solid #d8e1e0;background:#f8faf9;border-radius:10px;padding:13px;color:#3a4b53;line-height:1.5;font:13px/1.5 inherit}.tenant-copy-grid article:first-child textarea{min-height:450px}.tenant-subject{font-size:13px;background:#eff7f4;padding:9px;border-radius:8px}.tenant-confidential{margin-top:12px;background:#f2f5f4;border-radius:9px;padding:11px;font-size:12px;line-height:1.5}.tenant-confidential p{margin:4px 0 0}
.tenant-training-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.tenant-training-grid article{border:1px solid #dce5e3;border-radius:15px;padding:18px;background:#fff}.tenant-training-grid header{display:flex;justify-content:space-between;gap:6px;align-items:flex-start}.tenant-format{font-size:11px;font-weight:800;color:#14745f;text-transform:uppercase}.tenant-training-grid h3{margin:15px 0}.tenant-training-grid dl{display:grid;grid-template-columns:55px 1fr;gap:5px;font-size:13px}.tenant-training-grid dt{color:#7a878b}.tenant-training-grid dd{margin:0}.tenant-training-grid p{font-size:13px;color:#64747a;line-height:1.55}.tenant-training-grid a{font-size:13px;font-weight:750}.tenant-checklist{display:grid;grid-template-columns:.7fr 1.3fr;gap:28px;margin-top:16px;background:#eff7f4;border-radius:15px;padding:22px}.tenant-checklist h3{font-size:23px;margin:7px 0}.tenant-checklist ul{columns:2;column-gap:32px;margin:0}.tenant-checklist li{break-inside:avoid;margin:0 0 9px;color:#4e6269;font-size:14px}
.tenant-map-section{background:#f4f6f6;border-radius:20px;padding:28px}.tenant-map-legend{display:flex;gap:12px;font-size:12px;font-weight:800}.tenant-map-legend .supplier{color:#d78014}.tenant-map-legend .training{color:#2d6eb7}.tenant-map-legend .mixed{color:#13826b}.tenant-map-layout{display:grid;grid-template-columns:minmax(380px,1.25fr) minmax(280px,.75fr);gap:22px}.tenant-map{position:relative;min-height:580px;background:linear-gradient(150deg,#e8f3f1,#dce8ec);border-radius:17px;overflow:hidden}.tenant-map>svg{position:absolute;inset:6% 16%;width:68%;height:88%}.tenant-map>svg path{fill:#fff;stroke:#9eb8b6;stroke-width:3;filter:drop-shadow(0 10px 18px rgba(39,68,76,.12))}.tenant-pin{position:absolute;transform:translate(-50%,-50%);z-index:2}.tenant-pin i{display:block;width:16px;height:16px;background:#d78014;border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 8px rgba(0,0,0,.25)}.tenant-pin.training i{background:#2d6eb7}.tenant-pin.mixed i{background:#13826b}.tenant-pin span{display:none;position:absolute;left:16px;top:-17px;width:160px;background:#fff;border-radius:8px;padding:8px;color:#273d47;box-shadow:0 5px 18px rgba(20,40,50,.2);font-size:12px;font-weight:800}.tenant-pin span small{display:block;font-weight:500;color:#748087}.tenant-pin:hover{z-index:4}.tenant-pin:hover span{display:block}.tenant-map-list{display:flex;flex-direction:column;gap:8px}.tenant-map-list>a{display:flex;align-items:center;gap:10px;padding:11px;background:#fff;border-radius:10px;color:#334b55}.tenant-map-list>a i{width:10px;height:10px;background:#d78014;border-radius:50%;flex:0 0 auto}.tenant-map-list>a i.training{background:#2d6eb7}.tenant-map-list>a i.mixed{background:#13826b}.tenant-map-list>a span{display:flex;flex-direction:column;min-width:0}.tenant-map-list>a small{color:#718087}.tenant-map-list>a b{margin-left:auto}.tenant-online{margin-top:auto;background:#18394b;color:#fff;border-radius:12px;padding:16px}.tenant-online span{display:block;color:#c9d9df;font-size:13px;margin-top:5px}
.tenant-product-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.tenant-product-grid article{border:1px solid #dce4e3;border-radius:15px;padding:18px;background:#fff;display:flex;flex-direction:column;min-height:295px}.tenant-product-mark{font-size:11px;letter-spacing:.16em;color:#87949a}.tenant-product-grid h3{font-size:21px;margin:13px 0 5px}.tenant-product-grid article>strong{font-size:13px;color:#0f7764}.tenant-product-grid p{font-size:13px;line-height:1.6;color:#617278}.tenant-product-grid footer{display:flex;flex-direction:column;gap:5px;margin-top:auto;font-size:12px;font-weight:700}.tenant-document-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.tenant-calculator{background:linear-gradient(145deg,#f2f6f5,#fff);border:1px solid #dce6e3;border-radius:21px;padding:28px}.tenant-calc-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:14px;background:#fff;border:1px solid #dae4e2;border-radius:12px;margin-bottom:14px}.tenant-calc-toolbar label{flex:1;font-size:13px;font-weight:750}.tenant-calc-toolbar select{display:block;width:100%;margin-top:5px}.tenant-calc-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tenant-calc-inputs fieldset{border:1px solid #dce4e3;border-radius:13px;background:#fff;padding:17px}.tenant-calc-inputs legend{font-weight:800;color:#17374a;padding:0 5px}.tenant-calc-inputs label{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:9px 0;font-size:13px}.tenant-calc-inputs label span{display:flex;align-items:center;gap:4px}.tenant-calc-inputs input{width:115px;text-align:right}.tenant-calc-inputs dl{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:13px;border-top:1px solid #e1e7e6;padding-top:11px}.tenant-calc-inputs dd{margin:0}.tenant-calc-inputs p{font-size:12px;line-height:1.55;color:#6b797d}.tenant-calc-results{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}.tenant-calc-results article{background:#fff;border:1px solid #dce4e3;border-radius:12px;padding:15px}.tenant-calc-results article span{display:block;color:#64747a;font-size:12px;min-height:30px}.tenant-calc-results strong{display:block;font-size:23px;color:#17374a;margin:7px 0}.tenant-calc-results small{color:#77858a}.tenant-calc-results .featured{background:#183c4e;border-color:#183c4e}.tenant-calc-results .featured span,.tenant-calc-results .featured small{color:#c8dae0}.tenant-calc-results .featured strong{color:#fff}.tenant-calc-results .positive{background:#e6f6ef;border-color:#a9d8c8}.tenant-calc-results .positive strong{color:#08705a}.tenant-calc-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:16px}.tenant-calc-breakdown h3{margin-top:0}.tenant-cost-bar{display:grid;grid-template-columns:150px 1fr 90px;align-items:center;gap:10px;margin:8px 0;font-size:12px}.tenant-cost-bar i{display:block;height:9px;background:#dce5e3;border-radius:999px;overflow:hidden}.tenant-cost-bar i b{display:block;height:100%;background:#11816b;border-radius:inherit}.tenant-cost-bar strong{text-align:right}.tenant-calc-breakdown .notice{margin:0}
.tenant-sources{display:grid;grid-template-columns:.75fr 1.25fr;gap:25px;background:#152d3c;color:#fff;border-radius:18px;padding:25px}.tenant-sources h2{color:#fff}.tenant-sources p{color:#c8d7db}.tenant-sources>div:last-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tenant-sources a{display:flex;flex-direction:column;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:9px;padding:11px;color:#fff}.tenant-sources a small{color:#a9c9c3;margin-top:4px}
.tenant-calc-toolbar-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.tenant-inline-detail{display:block;margin-top:14px;padding-top:11px;border-top:1px solid #e1e7e6;font-size:12px;font-weight:800}

/* PV Mieterstrom · Kostendetail */
.detail-breadcrumb{display:flex;gap:8px;align-items:center;color:#738087;font-size:13px;margin:0 0 15px}.detail-breadcrumb a{font-weight:750}.tenant-cost-hero{background:linear-gradient(130deg,#102238,#193c4e 58%,#168d77);color:#fff;border-radius:24px;padding:clamp(26px,4vw,46px);display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:30px;box-shadow:0 18px 45px rgba(12,32,47,.18)}.tenant-cost-hero h1{font-size:clamp(33px,5vw,56px);line-height:1.02;color:#fff;margin:.15em 0 .25em}.tenant-cost-hero p{color:#d9ecea;line-height:1.65;max-width:820px}.tenant-cost-hero .eyebrow{color:#81e2ce}.tenant-cost-hero .button:not(.button-primary){background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3);color:#fff}.tenant-cost-hero aside{border-left:1px solid rgba(255,255,255,.25);padding-left:24px;display:flex;flex-direction:column;align-items:flex-start}.tenant-cost-hero aside>span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#9fded3;margin-bottom:16px}.tenant-cost-hero aside strong{font-size:28px;color:#fff}.tenant-cost-hero aside small{color:#d6e4e6;margin:2px 0 17px}.tenant-detail-switch{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:15px 0 26px;padding:8px;background:#edf2f0;border-radius:12px}.tenant-detail-switch>span{font-size:12px;font-weight:800;color:#6e7c80;padding:0 6px}.tenant-detail-switch a{padding:8px 11px;border-radius:8px;font-size:13px;font-weight:750}.tenant-detail-switch a.active{background:#fff;color:#0a765f;box-shadow:0 2px 8px rgba(19,45,50,.08)}
.tenant-audit-finding{display:grid;grid-template-columns:1fr minmax(270px,.42fr);gap:24px;background:#fff8ec;border:1px solid #f0c981;border-left:5px solid #ee922c;border-radius:15px;padding:22px;margin-bottom:14px}.tenant-audit-finding>div{display:flex;gap:15px}.tenant-audit-icon{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;border-radius:50%;background:#ee922c;color:#fff;font-size:24px;font-weight:900}.tenant-audit-finding h2{font-size:25px;margin:4px 0}.tenant-audit-finding p{color:#665846;line-height:1.6}.tenant-audit-finding dl{display:grid;grid-template-columns:1fr auto;gap:8px 15px;align-content:center;margin:0;background:#fff;border:1px solid #edd6af;border-radius:11px;padding:16px;font-size:13px}.tenant-audit-finding dd{margin:0;font-weight:850;text-align:right}.tenant-audit-finding dd.good{color:#08705a}.tenant-audit-finding dd.warn{color:#b46108}.tenant-basis-warning{display:flex;gap:18px;align-items:flex-start;background:#eaf2f4;border-left:4px solid #24758b;border-radius:0 12px 12px 0;padding:15px 18px;margin:0 0 34px}.tenant-basis-warning strong{white-space:nowrap;color:#16495b}.tenant-basis-warning p{margin:0;color:#506a73;font-size:13px;line-height:1.6}
.tenant-detail-section{scroll-margin-top:100px;margin:0 0 38px}.tenant-detail-section h2{font-size:clamp(26px,3vw,38px);margin:.15em 0}.tenant-detail-section .section-heading-row p{max-width:900px;color:#66777d;line-height:1.65}.tenant-sew-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.tenant-detail-table-wrap{overflow:auto;border:1px solid #dce5e3;border-radius:13px;background:#fff}.tenant-detail-table{width:100%;border-collapse:collapse;min-width:850px;font-size:13px}.tenant-detail-table th,.tenant-detail-table td{padding:13px 14px;border-bottom:1px solid #e5eae8;text-align:left;vertical-align:top}.tenant-detail-table thead th{background:#f1f5f4;color:#52666d;font-size:11px;text-transform:uppercase;letter-spacing:.045em;white-space:nowrap}.tenant-detail-table tbody td:first-child{width:43%}.tenant-detail-table td>strong{display:block;color:#203943}.tenant-detail-table td>small{display:block;color:#66777d;line-height:1.45;margin-top:4px}.tenant-detail-table td>em{display:block;color:#849095;font-style:normal;font-size:11px;margin-top:4px}.tenant-detail-table td:nth-child(2),.tenant-detail-table td:nth-child(3),.tenant-detail-table td:nth-child(4){white-space:nowrap}.tenant-detail-table tfoot th{background:#16394b;color:#fff;border-bottom:0;font-size:14px}.tenant-proof.calculated{background:#e8eef8;color:#335d92}.tenant-proof.public{background:#e9f3ff;color:#17659c}.tenant-proof.historic{background:#f1eafa;color:#67449c}.tenant-source-limit{border:1px solid #ecd3aa;background:#fff7e8;border-radius:13px;padding:18px}.tenant-source-limit>strong{font-size:18px;color:#574328}.tenant-source-limit p,.tenant-source-limit li{font-size:13px;line-height:1.55;color:#6c5d45}.tenant-source-limit ul{padding-left:19px}.tenant-source-limit .button,.tenant-source-limit .tenant-proof{margin-top:9px}.tenant-own-costs{background:#f2f6f5;border:1px solid #dce6e3;border-radius:20px;padding:clamp(18px,3vw,28px)}.tenant-cost-block{background:#fff;border:1px solid #dbe4e2;border-radius:15px;margin:0 0 16px;overflow:hidden}.tenant-cost-block:last-child{margin-bottom:0}.tenant-cost-block>header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:18px}.tenant-cost-block>header>div{display:flex;gap:13px}.tenant-block-number{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border-radius:10px;background:#173b4d;color:#fff;font-weight:900}.tenant-cost-block h3{font-size:21px;margin:0 0 3px}.tenant-cost-block header p{margin:0;color:#6a7a7f;font-size:13px;line-height:1.5;max-width:820px}.tenant-cost-block>header>strong{font-size:21px;color:#0b7762;white-space:nowrap}.tenant-cost-block .tenant-detail-table-wrap{border-width:1px 0 0;border-radius:0}.tenant-total-audit{background:#132f40;color:#fff;border-radius:20px;padding:clamp(20px,3vw,30px)}.tenant-total-audit h2{color:#fff}.tenant-total-audit .section-heading-row p{color:#c5d5da}.tenant-total-flow{display:flex;gap:8px;align-items:stretch;overflow:auto;padding-bottom:8px}.tenant-total-flow article{min-width:160px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13);border-radius:11px;padding:13px}.tenant-total-flow article span{display:block;color:#bcd0d7;font-size:11px;min-height:34px}.tenant-total-flow article strong{font-size:18px;color:#fff}.tenant-total-flow article.featured{background:#0d806a}.tenant-total-flow>i{align-self:center;font-style:normal;color:#91b3bd;font-size:21px}.tenant-result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:11px}.tenant-result-grid article{background:#fff;color:#17374a;border-radius:11px;padding:14px}.tenant-result-grid span{display:block;color:#63757b;font-size:11px;min-height:32px}.tenant-result-grid strong{display:block;font-size:21px}.tenant-result-grid small{color:#77858a}.tenant-result-grid .positive{background:#dff5ec}.tenant-result-grid .positive strong{color:#08705a}.tenant-open-checks{display:grid;grid-template-columns:.65fr 1.35fr;gap:30px;background:#edf5f2;border-radius:18px;padding:25px}.tenant-open-checks ol{margin:0;padding-left:22px}.tenant-open-checks li{padding:7px 0;color:#53686e}

/* PV Mieterstrom · Ladeinfrastruktur */
.charging-entry-card{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:24px 28px;border:1px solid #b9ddd4;border-radius:18px;background:linear-gradient(135deg,#eaf8f3,#fff)}.charging-entry-card h2{font-size:28px;margin:.15em 0}.charging-entry-card p{max-width:850px;color:#536a70;line-height:1.6;margin-bottom:0}.charging-entry-card .button{flex:0 0 auto}.charging-hero{background:linear-gradient(128deg,#11293b 0%,#174b58 58%,#11816b 100%);color:#fff;border-radius:24px;padding:clamp(27px,4vw,48px);display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:34px;box-shadow:0 18px 45px rgba(12,32,47,.18)}.charging-hero h1{font-size:clamp(36px,5vw,62px);line-height:1;color:#fff;margin:.14em 0 .28em}.charging-hero p{font-size:17px;line-height:1.65;color:#d7e9e8;max-width:850px}.charging-hero .eyebrow{color:#83e3cd}.charging-hero .button:not(.button-primary){background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.28);color:#fff}.charging-hero aside{border-left:1px solid rgba(255,255,255,.25);padding-left:26px;display:flex;flex-direction:column;align-items:flex-start}.charging-hero aside>span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#9fded3;margin-bottom:17px}.charging-hero aside strong{font-size:27px;color:#fff}.charging-hero aside small{color:#d5e4e5;margin:3px 0 18px;line-height:1.4}.charging-project{padding:28px;background:#f2f7f5;border:1px solid #dae7e3;border-radius:20px}.charging-flow{display:grid;grid-template-columns:1fr auto 1.2fr auto 1.25fr;gap:12px;align-items:stretch;margin:22px 0}.charging-flow article{background:#fff;border:1px solid #d9e4e1;border-radius:15px;padding:20px}.charging-flow article>span{font-size:11px;font-weight:850;color:#11806a;text-transform:uppercase;letter-spacing:.06em}.charging-flow article>strong{display:block;font-size:20px;color:#17394a;margin:8px 0}.charging-flow article>small{display:block;color:#68787e;line-height:1.5}.charging-flow>i{align-self:center;color:#44767a;font-size:11px;font-style:normal;font-weight:850;text-transform:uppercase;writing-mode:vertical-rl}.charging-flow-wallboxes>div{display:flex;gap:5px;margin:12px 0}.charging-flow-wallboxes b{display:grid;place-items:center;width:27px;height:31px;border-radius:7px;background:#13806b;color:#fff}.charging-facts,.charging-funding-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.charging-facts article{background:#fff;border-left:4px solid #14816b;border-radius:0 12px 12px 0;padding:17px}.charging-facts span{display:block;font-size:11px;color:#708087;text-transform:uppercase}.charging-facts strong{display:block;font-size:21px;color:#193b4b;margin:6px 0}.charging-facts p{font-size:13px;line-height:1.55;color:#627278;margin-bottom:0}.charging-funding{padding:28px;border:1px solid #dfe6e4;border-radius:20px}.charging-grants{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0}.charging-grants article{border:1px solid #dce5e3;background:#f7f9f8;border-radius:13px;padding:17px}.charging-grants span{display:block;color:#65767b;font-size:12px;min-height:34px}.charging-grants strong{display:block;font-size:25px;color:#173b4d;margin:7px 0}.charging-grants small{display:block;color:#7a898e;line-height:1.45}.charging-grants .featured{background:#e4f5ef;border-color:#a6d8c8}.charging-grants .featured strong{color:#0a765f}.charging-grants .charging-grant-total{background:#173b4d;border-color:#173b4d}.charging-grants .charging-grant-total span,.charging-grants .charging-grant-total small{color:#c3d6dc}.charging-grants .charging-grant-total strong{color:#fff}.charging-funding-grid article{background:#f4f7f6;border-radius:13px;padding:18px}.charging-funding-grid h3{font-size:18px;margin:0 0 10px}.charging-funding-grid ul{padding-left:18px}.charging-funding-grid li,.charging-funding-grid p{font-size:13px;line-height:1.55;color:#596c72;margin:0 0 7px}.notice.warning{background:#fff7e8;border-color:#f1c477}.charging-calculator{background:#eef5f2;border:1px solid #d5e4df;border-radius:22px;padding:clamp(20px,3vw,30px)}.charging-calculator-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.charging-calculator-actions>span{font-size:12px;color:#667a80}.charging-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.charging-controls>label{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid #d9e4e1;border-radius:11px;padding:12px;font-size:12px;font-weight:800;color:#52666d}.charging-controls input,.charging-controls select{width:100%}.input-suffix{display:flex;align-items:center;gap:7px}.input-suffix input{min-width:0}.input-suffix b{font-size:12px;color:#66777d}.charging-variant-warning{margin:0 0 12px;background:#fff0da;border-left:4px solid #ee922c;padding:11px 14px;border-radius:0 9px 9px 0;color:#7a510c;font-size:13px;font-weight:750}.charging-result-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:12px 0 18px}.charging-result-grid article{background:#fff;border:1px solid #d9e3e0;border-radius:12px;padding:15px}.charging-result-grid span{display:block;color:#68797f;font-size:11px;min-height:30px}.charging-result-grid strong{display:block;font-size:21px;color:#173b4d;margin:7px 0}.charging-result-grid small{display:block;color:#78878b;line-height:1.45}.charging-result-grid .positive{background:#e0f5ed;border-color:#a7d8c7}.charging-result-grid .positive strong{color:#08705a}.charging-result-grid .featured{background:#173b4d;border-color:#173b4d}.charging-result-grid .featured span,.charging-result-grid .featured small{color:#bfd4da}.charging-result-grid .featured strong,.charging-result-grid .featured b{color:#fff}.charging-table-wrap{overflow:auto;border:1px solid #d6e2de;border-radius:14px;background:#fff}.charging-cost-table{width:100%;border-collapse:collapse;min-width:1050px;font-size:12px}.charging-cost-table th,.charging-cost-table td{padding:11px 12px;border-bottom:1px solid #e4eae8;text-align:left;vertical-align:middle}.charging-cost-table thead th{position:sticky;top:0;background:#173b4d;color:#fff;z-index:1;font-size:10px;text-transform:uppercase;letter-spacing:.045em}.charging-cost-table td:first-child{width:42%}.charging-cost-table td:first-child strong{display:block;font-size:13px;color:#263f49}.charging-cost-table td:first-child small{display:block;color:#66787e;line-height:1.45;margin-top:3px}.charging-cost-table td:first-child em{display:block;color:#8a969a;font-size:10px;font-style:normal;margin-top:4px}.charging-cost-table input{width:105px;text-align:right}.charging-group-row th{background:#eaf2ef;color:#155f52;font-size:12px;text-transform:uppercase;letter-spacing:.05em}.charging-cost-foot{display:grid;grid-template-columns:220px 250px 1fr;gap:10px;margin-top:12px}.charging-cost-foot>div,.charging-cost-foot>p{background:#fff;border:1px solid #d9e4e1;border-radius:11px;padding:13px;margin:0}.charging-cost-foot span{display:block;color:#6c7c81;font-size:11px}.charging-cost-foot strong{display:block;color:#173b4d;font-size:19px;margin:5px 0}.charging-cost-foot small,.charging-cost-foot p{font-size:11px;line-height:1.5;color:#718085}.charging-technical{background:#153646;color:#fff;border-radius:21px;padding:28px}.charging-technical h2,.charging-technical h3{color:#fff}.charging-technical .section-heading-row p{color:#c6d8dc}.charging-layer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.charging-layer-grid article{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:13px;padding:17px}.charging-layer-grid h3{font-size:17px;margin:0 0 8px}.charging-layer-grid p{font-size:12px;line-height:1.6;color:#c6d8dc}.charging-safety-chain{display:flex;align-items:center;gap:7px;overflow:auto;margin:16px 0;padding:11px;background:rgba(0,0,0,.15);border-radius:11px}.charging-safety-chain span{white-space:nowrap;background:#fff;color:#173b4d;border-radius:8px;padding:9px 11px;font-size:11px;font-weight:800}.charging-safety-chain i{font-style:normal;color:#8fdcca}.charging-technical .charging-funding-grid article{background:#fff}.charging-technical .charging-funding-grid h3{color:#193b4b}.charging-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.charging-product-grid article{border:1px solid #dce5e3;border-radius:15px;padding:18px;background:#fff;display:flex;flex-direction:column}.charging-product-grid article.is-priority{border-color:#64b39f;background:linear-gradient(145deg,#fff,#edf9f5)}.charging-product-grid header h3{font-size:20px;margin:10px 0 4px}.charging-product-grid header>strong{display:block;color:#0d7863;font-size:13px;min-height:38px}.charging-product-grid p{font-size:12px;line-height:1.6;color:#607278}.charging-product-grid article>div{background:#f2f6f4;border-radius:9px;padding:11px;margin:8px 0}.charging-product-grid article>div p{margin:4px 0 0}.charging-product-grid article>a{font-size:12px;font-weight:800;margin-top:auto}.charging-checklist{display:grid;grid-template-columns:.7fr 1.3fr;gap:30px;background:#edf5f2;border-radius:19px;padding:27px}.charging-checklist ol{margin:0;padding-left:22px}.charging-checklist li{font-size:13px;line-height:1.55;color:#53686f;margin-bottom:9px}.charging-sources>div:last-child{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1150px){.tenant-product-grid{grid-template-columns:repeat(3,1fr)}.tenant-training-grid{grid-template-columns:repeat(2,1fr)}.tenant-copy-grid{grid-template-columns:1fr 1fr}.tenant-copy-grid article:first-child{grid-column:1/-1}.tenant-calc-results{grid-template-columns:repeat(3,1fr)}.tenant-sew-layout{grid-template-columns:1fr}.tenant-source-limit{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}.tenant-source-limit>strong,.tenant-source-limit>.button,.tenant-source-limit>.tenant-proof{grid-column:1/-1}.charging-result-grid{grid-template-columns:repeat(3,1fr)}.charging-layer-grid,.charging-product-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.tenant-hero,.tenant-cost-hero,.charging-hero{grid-template-columns:1fr}.tenant-hero aside,.tenant-cost-hero aside,.charging-hero aside{border-left:0;border-top:1px solid rgba(255,255,255,.25);padding:20px 0 0;display:grid;grid-template-columns:auto 1fr;column-gap:15px}.tenant-hero aside>span,.tenant-cost-hero aside>span,.charging-hero aside>span{grid-column:1/-1}.tenant-contact-grid,.tenant-copy-grid,.tenant-training-grid,.tenant-document-row,.tenant-calc-inputs,.tenant-calc-breakdown,.tenant-sources,.tenant-audit-finding,.tenant-open-checks,.charging-facts,.charging-funding-grid,.charging-checklist{grid-template-columns:minmax(0,1fr)}.tenant-contact-card,.tenant-contact-card header>div{min-width:0}.tenant-contact-card .tenant-proof{white-space:normal}.tenant-copy-grid article:first-child{grid-column:auto}.tenant-product-grid{grid-template-columns:1fr 1fr}.tenant-flow,.charging-flow{grid-template-columns:1fr}.tenant-flow>i{transform:rotate(90deg);justify-self:center}.charging-flow>i{writing-mode:horizontal-tb;justify-self:center}.tenant-map-layout{grid-template-columns:1fr}.tenant-map{min-height:480px}.tenant-calc-results,.tenant-result-grid,.charging-result-grid{grid-template-columns:1fr 1fr}.tenant-checklist{grid-template-columns:1fr}.tenant-checklist ul{columns:1}.tenant-sources>div:last-child,.charging-sources>div:last-child{grid-template-columns:1fr}.tenant-basis-warning{flex-direction:column;gap:5px}.tenant-source-limit{display:block}.charging-entry-card{align-items:flex-start;flex-direction:column}.charging-grants{grid-template-columns:1fr 1fr}.charging-controls{grid-template-columns:1fr 1fr}.charging-cost-foot{grid-template-columns:1fr 1fr}.charging-cost-foot>p{grid-column:1/-1}}
@media(max-width:520px){.tenant-product-grid,.tenant-calc-results,.tenant-result-grid,.charging-result-grid,.charging-layer-grid,.charging-product-grid,.charging-grants,.charging-controls,.charging-cost-foot{grid-template-columns:1fr}.tenant-section,.tenant-system,.tenant-copy-section,.tenant-map-section,.tenant-calculator,.tenant-own-costs,.tenant-total-audit,.tenant-cost-hero,.charging-hero,.charging-project,.charging-funding,.charging-calculator,.charging-technical{border-radius:14px}.tenant-section>.section-heading-row{align-items:flex-start;flex-direction:column}.tenant-proof{white-space:normal;max-width:100%}.tenant-contact-card dl{grid-template-columns:1fr}.tenant-contact-card dt{margin-top:4px}.tenant-calc-toolbar{align-items:stretch;flex-direction:column}.tenant-calc-toolbar-actions,.charging-calculator-actions{justify-content:flex-start}.tenant-cost-bar{grid-template-columns:110px 1fr 75px}.tenant-map{min-height:430px}.tenant-audit-finding>div{flex-direction:column}.tenant-cost-block>header{flex-direction:column}.tenant-cost-block>header>strong{padding-left:47px}.tenant-detail-switch{align-items:stretch;flex-direction:column}.tenant-detail-switch a{width:100%}.charging-cost-foot>p{grid-column:auto}}

* { box-sizing: border-box; }
html { color-scheme: light; background: var(--canvas); }
body { margin: 0; color: var(--ink); background: var(--canvas); font-family: var(--font); font-size: 15px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
a { color: var(--green-dark); text-decoration: none; }
a:hover { color: var(--green); }
button, input, select, textarea { font: inherit; }
button, summary { cursor: pointer; }
img { max-width: 100%; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.topbar { position: fixed; z-index: 20; top: 0; left: 0; right: 0; height: 74px; display: grid; grid-template-columns: 230px minmax(260px, 680px) 1fr auto; gap: 18px; align-items: center; padding: 0 28px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.topbar > .button { justify-self: end; }
.brand, .guest-brand { display: flex; align-items: center; gap: 12px; min-width: 0; color: var(--ink); font-weight: 750; letter-spacing: -.01em; }
.brand img { width: 142px; height: 46px; object-fit: contain; object-position: left center; }
.brand span, .guest-brand span { border-left: 1px solid var(--line-strong); padding-left: 12px; }
.top-search { height: 44px; display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); background: var(--canvas); border-radius: 10px; padding: 0 10px 0 14px; }
.top-search:focus-within { border-color: var(--green); box-shadow: 0 0 0 3px rgba(47,134,83,.12); background: white; }
.top-search svg, .hero-search svg, .search-main svg { width: 19px; fill: none; stroke: var(--muted); stroke-width: 1.8; flex: 0 0 auto; }
.top-search input { min-width: 0; width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); }
kbd { color: var(--muted); border: 1px solid var(--line-strong); border-bottom-width: 2px; border-radius: 5px; padding: 0 6px; font-size: 12px; background: white; }
.user-menu { position: relative; }
.user-menu summary { width: 38px; height: 38px; list-style: none; display: grid; place-items: center; border-radius: 50%; background: var(--green-soft); color: var(--green-dark); font-weight: 800; }
.user-menu summary::-webkit-details-marker { display: none; }
.user-menu div { position: absolute; right: 0; top: 48px; width: 210px; padding: 16px; border-radius: 10px; background: white; border: 1px solid var(--line); box-shadow: var(--shadow); }
.user-menu strong, .user-menu small { display: block; }
.user-menu small { color: var(--muted); text-transform: capitalize; margin-bottom: 9px; }
.user-menu-link { display: block; margin: 3px -7px 8px; padding: 8px 7px; border-radius: 7px; color: var(--green-dark); font-size: 13px; font-weight: 750; }
.user-menu-link:hover { background: var(--green-soft); }

.sidebar { position: fixed; z-index: 10; left: 0; top: 74px; bottom: 0; width: 246px; padding: 26px 16px 18px; background: var(--surface); border-right: 1px solid var(--line); display: flex; flex-direction: column; justify-content: space-between; overflow-y: auto; }
.sidebar nav { display: grid; gap: 3px; }
.sidebar nav { scrollbar-width: none; }
.sidebar nav::-webkit-scrollbar { display: none; }
.sidebar nav a { padding: 10px 12px; color: var(--ink-soft); border-radius: 8px; font-weight: 580; }
.sidebar nav a:hover { background: var(--canvas); color: var(--ink); }
.sidebar nav a.active { color: var(--green-dark); background: var(--green-soft); }
.sidebar-foot { border-top: 1px solid var(--line); padding: 16px 10px 0; color: var(--ink-soft); font-size: 13px; }
.sidebar-foot small { display: block; color: var(--muted); margin: 4px 0 0 15px; }
.status-dot { display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: var(--green); }
.main-content { min-height: 100vh; margin-left: 246px; padding: 112px clamp(28px,4vw,68px) 80px; }

.button { display: inline-flex; justify-content: center; align-items: center; gap: 7px; min-height: 42px; padding: 9px 15px; border: 1px solid var(--line-strong); border-radius: 8px; background: white; color: var(--ink); font-weight: 680; line-height: 1.1; }
.button:hover { border-color: var(--green); color: var(--green-dark); }
.button-primary { border-color: var(--green); background: var(--green); color: white; }
.button-primary:hover { background: var(--green-dark); border-color: var(--green-dark); color: white; }
.button-compact { min-height: 38px; padding: 8px 13px; }
.button-full { width: 100%; }
.link-button { border: 0; padding: 6px 0; background: transparent; color: var(--green-dark); font-weight: 700; }
.danger-text { color: var(--danger); }

.eyebrow { display: inline-block; margin-bottom: 8px; color: var(--green-dark); font-size: 12px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
h1, h2, h3 { margin-top: 0; line-height: 1.15; letter-spacing: -.025em; }
h1 { margin-bottom: 12px; font-size: clamp(32px,4vw,48px); font-weight: 760; }
h2 { font-size: 21px; }
p { margin-top: 0; }
.muted { color: var(--muted); }
.page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 34px; }
.page-header h1 { margin-bottom: 10px; }
.page-header p { max-width: 760px; margin-bottom: 0; color: var(--muted); font-size: 17px; }
.page-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.page-actions form { margin: 0; }

.dashboard-hero { position: relative; overflow: hidden; margin: -8px 0 30px; padding: 42px clamp(24px,4vw,48px); border-radius: 18px; background: white; border: 1px solid var(--line); box-shadow: var(--shadow); }
.dashboard-hero::after { content: ""; position: absolute; width: 260px; height: 260px; right: -110px; top: -125px; border: 48px solid var(--green-soft); border-radius: 50%; }
.dashboard-hero-compact{margin-bottom:14px;padding:16px 22px;border-radius:12px}.dashboard-hero-compact::after{display:none}.dashboard-hero-compact .eyebrow{margin-bottom:2px;font-size:10px}.dashboard-hero-compact h1{font-size:25px;margin:0 0 10px}.dashboard-hero-compact .hero-search{max-width:720px;margin:0}.dashboard-task-panel{margin-bottom:16px;padding:18px 20px}.dashboard-task-panel .panel-heading{margin-bottom:10px}.dashboard-task-panel h2{margin-bottom:2px}.dashboard-task-panel .panel-heading p{font-size:12px;margin:0}.dashboard-task-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px}.dashboard-task-list>div{display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--line);min-width:0}.dashboard-task-list a{min-width:0}.dashboard-task-list strong,.dashboard-task-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-task-list strong{font-size:13px}.dashboard-task-list small{font-size:11px;color:var(--muted)}.task-date{flex:0 0 auto;padding:2px 6px;border-radius:5px;background:var(--canvas);font-size:11px;color:var(--ink-soft);height:max-content}.task-date.is-due{background:#fff1dd;color:#965b09}.task-page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:16px}.task-page-heading h1{font-size:30px;margin:0 0 4px}.task-page-heading p{margin:0;color:var(--muted);font-size:13px}.task-page-heading .eyebrow{margin-bottom:2px}.task-counts{font-size:13px;color:var(--muted)}.task-counts strong{font-size:20px;color:var(--green-dark)}.task-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;align-items:start}.task-main,.task-create,.project-task-panel{padding:16px 18px}.task-toolbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:10px;font-size:12px;color:var(--muted)}.task-filters{display:flex;gap:5px}.task-filters a{padding:5px 10px;border-radius:6px;color:var(--ink-soft)}.task-filters a.active{background:var(--green-soft);color:var(--green-dark);font-weight:750}.task-row{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.task-row:last-child{border-bottom:0}.task-row>form{margin:1px 0 0}.task-check{width:21px;height:21px;min-width:21px;border-radius:6px;border:1.5px solid var(--green);background:white;color:white;padding:0;font-size:14px;line-height:18px}.is-done .task-check,.project-task-item:has(.task-check:not(:empty)) .task-check{background:var(--green)}.task-row-content{flex:1;min-width:0}.task-row-content strong{font-size:13px}.task-row-content p,.project-task-item p{font-size:12px;color:var(--ink-soft);margin:3px 0}.task-row-content small,.project-task-item small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.task-row.is-done .task-row-content strong{text-decoration:line-through;color:var(--muted)}.task-edit{font-size:11px;max-width:120px}.task-edit summary{color:var(--green-dark)}.task-edit[open]{position:relative;z-index:2;max-width:none}.task-edit form{position:absolute;right:0;min-width:260px;padding:12px;background:white;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.task-create h2{font-size:17px;margin:0 0 12px}.task-create form,.task-edit form,.project-task-create form{display:grid;gap:9px}.task-create label,.task-edit label,.project-task-create label{display:grid;gap:4px;font-size:11px;font-weight:700;color:var(--ink-soft)}.task-create input,.task-create select,.task-create textarea,.task-edit input,.task-edit textarea,.project-task-create input{width:100%;min-width:0;padding:8px;border:1px solid var(--line-strong);border-radius:6px;font-size:13px}.task-empty{font-size:13px;color:var(--muted);margin:12px 0}.project-task-panel{margin:14px 0}.project-task-panel .panel-heading{margin-bottom:7px}.project-task-panel h2{font-size:18px;margin:0}.project-task-item{display:flex;gap:9px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--line)}.project-task-item strong{font-size:13px}.project-task-create{margin-top:8px;font-size:12px}.project-task-create summary{color:var(--green-dark);font-weight:750}.project-task-create form{grid-template-columns:2fr 140px 2fr auto;margin-top:8px;align-items:end}.project-task-create .button{min-height:35px}
@media(max-width:920px){.task-layout{grid-template-columns:1fr}.dashboard-task-list{grid-template-columns:1fr}.project-task-create form{grid-template-columns:1fr 140px}.project-task-create .button{justify-self:start}}@media(max-width:620px){.dashboard-hero-compact{padding:13px}.dashboard-hero-compact h1{font-size:22px}.task-page-heading{align-items:start;flex-direction:column;gap:5px}.project-task-create form{grid-template-columns:1fr}.task-edit form{right:0;min-width:min(78vw,280px)}}
.dashboard-hero h1 { position: relative; z-index: 1; }
.hero-search { position: relative; z-index: 1; max-width: 950px; height: 64px; display: flex; align-items: center; gap: 14px; padding: 7px 8px 7px 20px; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--canvas); }
.hero-search:focus-within { border-color: var(--green); box-shadow: 0 0 0 4px rgba(47,134,83,.12); background: white; }
.hero-search svg { width: 24px; }
.hero-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 17px; }
.quick-searches { position: relative; z-index: 1; display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; color: var(--muted); font-size: 13px; }
.quick-searches a { padding: 2px 9px; border-radius: 99px; background: var(--green-soft); }
.module-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 28px; }
.module-link { min-height: 152px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.75); color: var(--ink); transition: .18s ease; }
.module-link:hover { transform: translateY(-2px); border-color: #b9c9bd; background: white; box-shadow: 0 10px 28px rgba(14,18,22,.06); color: var(--ink); }
.module-link div { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.module-link strong { font-size: 17px; }
.module-link div span { min-width: 26px; height: 26px; display: grid; place-items: center; border-radius: 99px; background: var(--green-soft); color: var(--green-dark); font-size: 12px; font-weight: 800; }
.module-link p { min-height: 42px; margin: 15px 0 10px; color: var(--muted); font-size: 13px; }
.module-link em { color: var(--green-dark); font-size: 13px; font-style: normal; font-weight: 700; }
.dashboard-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; background: white; }
.panel-wide { grid-column: span 2; }
.panel-heading { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 16px; }
.panel-heading h2 { margin-bottom: 0; }
.metric-panel { background: var(--green); color: white; }
.metric-panel .eyebrow, .metric-panel a { color: #dff3e7; }
.metric { display: block; margin: 8px 0 2px; font-size: 58px; line-height: 1; }
.row-list, .simple-list { display: grid; }
.row-list a { display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); color: var(--ink); }
.row-list a:first-child { border-top: 0; }
.row-list small, .simple-list small { display: block; color: var(--muted); font-size: 12px; }
.type-mark { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; font-weight: 800; }
.type-mark.knowledge { color: var(--green-dark); background: var(--green-soft); }
.simple-list a { padding: 10px 0; border-top: 1px solid var(--line); color: var(--ink); font-weight: 650; }
.simple-list a:first-child { border-top: 0; }

.section-heading-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 20px; }
.section-heading-row h2 { margin: 4px 0 5px; }
.section-heading-row p { margin: 0; color: var(--muted); }
.partner-overview { margin: 4px 0 30px; padding: clamp(22px,3vw,30px); border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(135deg,#fff 0%,#f4f8f5 100%); }
.partner-area-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.partner-area-card { display: grid; grid-template-columns: 58px 1fr; gap: 17px; min-height: 210px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: white; color: var(--ink); transition: .18s ease; }
.partner-area-card:hover { transform: translateY(-2px); border-color: #b4c8ba; box-shadow: var(--shadow); color: var(--ink); }
.partner-area-mark { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 15px; background: var(--green); color: white; font-size: 23px; font-weight: 850; }
.partner-area-card h3 { margin: 10px 0 8px; font-size: 22px; }
.partner-area-card p { min-height: 42px; margin: 0; color: var(--muted); }
.partner-area-card footer { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.partner-area-card footer span { padding-right: 9px; border-right: 1px solid var(--line-strong); }
.partner-area-card footer strong { margin-left: auto; color: var(--green-dark); }

.partner-hub-hero { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0,1fr) 205px; gap: 28px; margin: -8px 0 28px; padding: clamp(28px,4vw,46px); border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(135deg,#fff 0%,#f3f8f5 62%,#e6f2e9 100%); box-shadow: var(--shadow); }
.partner-hub-hero::after { content: ""; position: absolute; width: 250px; height: 250px; right: -120px; bottom: -155px; border: 42px solid rgba(47,134,83,.08); border-radius: 50%; }
.partner-hub-brand { grid-column: 1 / -1; display: flex; align-items: center; gap: 13px; position: relative; z-index: 1; }
.partner-hub-brand > span { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px; background: var(--green); color: white; font-size: 19px; font-weight: 850; }
.partner-hub-brand small,.partner-hub-brand strong { display: block; }
.partner-hub-brand small { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.partner-hub-brand strong { margin-top: 2px; }
.partner-hub-copy { position: relative; z-index: 1; }
.partner-hub-copy h1 { margin: 12px 0 10px; font-size: clamp(38px,5vw,62px); }
.partner-hub-copy > p { max-width: 820px; color: var(--ink-soft); font-size: 18px; }
.partner-hub-hero > aside { position: relative; z-index: 1; align-self: end; display: grid; grid-template-columns: auto 1fr; gap: 3px 10px; padding: 20px; border: 1px solid rgba(47,134,83,.16); border-radius: 14px; background: rgba(255,255,255,.76); }
.partner-hub-hero > aside .eyebrow { grid-column: 1 / -1; margin-bottom: 7px; }
.partner-hub-hero > aside strong { color: var(--green-dark); font-size: 22px; }
.partner-hub-hero > aside small { align-self: center; color: var(--muted); }
.button-quiet { background: transparent; }
.partner-hub-layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 24px; align-items: start; }
.partner-hub-layout > main { min-width: 0; display: grid; gap: 24px; }
.partner-info-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.partner-info-grid article,.partner-documents-section,.partner-hub-sidebar > section { padding: clamp(22px,3vw,30px); border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.partner-info-grid h2 { margin: 0 0 12px; }
.partner-documents-section { scroll-margin-top: 110px; }
.partner-document-group + .partner-document-group { margin-top: 28px; }
.partner-document-group > h3 { display: flex; align-items: center; gap: 9px; margin-bottom: 12px; font-size: 16px; }
.partner-document-group > h3 span { min-width: 25px; height: 25px; display: grid; place-items: center; border-radius: 99px; background: var(--green-soft); color: var(--green-dark); font-size: 11px; }
.partner-document-grid { display: grid; gap: 11px; }
.partner-document-card { display: grid; grid-template-columns: 54px 1fr; gap: 15px; padding: 18px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); transition: .18s ease; }
.partner-document-card:hover { border-color: var(--green); box-shadow: 0 8px 22px rgba(14,18,22,.05); color: var(--ink); }
.document-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 10px; background: #eaf1fa; color: #285a88; font-size: 11px; font-weight: 850; }
.partner-document-card h4 { margin: 9px 0 5px; font-size: 18px; }
.partner-document-card p { margin: 0; color: var(--muted); }
.partner-document-card footer { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 13px; color: var(--muted); font-size: 11px; }
.partner-document-card footer span { padding-right: 8px; border-right: 1px solid var(--line-strong); }
.partner-document-card footer strong { margin-left: auto; color: var(--green-dark); }
.partner-hub-sidebar { display: grid; gap: 15px; }
.partner-hub-sidebar .section-kicker { margin-bottom: 12px; }

.flash { margin-bottom: 22px; padding: 14px 16px; border-radius: 9px; border: 1px solid; }
.flash ul { margin-bottom: 0; }
.flash.success { border-color: #b8d9c5; background: var(--green-soft); color: var(--green-dark); }
.flash.error { border-color: #efc4be; background: #fff0ee; color: #862b24; }
.notice { margin: 0 0 24px; padding: 18px 20px; border-left: 4px solid var(--orange); background: var(--orange-soft); border-radius: 0 9px 9px 0; }
.notice p { margin: 5px 0 0; }
.notice.danger { border-color: var(--danger); background: #fff0ee; }

.record-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.record-card { min-height: 246px; display: flex; flex-direction: column; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: white; color: var(--ink); }
.record-card:hover { border-color: #b4c8ba; box-shadow: var(--shadow); color: var(--ink); }
.record-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.record-card h2 { margin-bottom: 11px; font-size: 20px; }
.record-card p { color: var(--muted); }
.record-card footer { display: flex; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.record-card footer span { max-width: 70%; }
.status-pill, .type-badge { display: inline-flex; width: fit-content; padding: 4px 9px; border-radius: 99px; background: #eef0ee; color: var(--ink-soft); font-size: 11px; font-weight: 800; letter-spacing: .03em; }
.status-pill.good { background: var(--green-soft); color: var(--green-dark); }
.type-badge.knowledge { background: var(--green-soft); color: var(--green-dark); }
.type-badge.document { background: #eaf1fa; color: #285a88; }
.type-badge.partner { background: #f1ebfa; color: #674695; }
.type-badge.term { background: var(--orange-soft); color: #a94e12; }
.type-badge.implementation { background: #e8f5f5; color: #276f70; }
.type-badge.product { background: #f5f0e8; color: #7b5c2e; }
.favorite { color: var(--orange); font-size: 18px; }
.empty-inline, .empty-state { padding: 60px 30px; border: 1px dashed var(--line-strong); border-radius: var(--radius); text-align: center; background: rgba(255,255,255,.55); }
.empty-state { max-width: 680px; margin: 10vh auto; }
.empty-state > span { color: var(--orange); font-size: 52px; font-weight: 800; }

.search-workbench { margin-bottom: 26px; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.search-main { height: 56px; display: flex; align-items: center; gap: 13px; padding: 6px 7px 6px 17px; border: 1px solid var(--line-strong); border-radius: 9px; background: var(--canvas); }
.search-main input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 17px; }
.filter-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; margin-top: 14px; }
.filter-grid label { color: var(--muted); font-size: 11px; font-weight: 700; }
.filter-grid select { margin-top: 4px; }
.result-summary { display: flex; gap: 8px; margin: 12px 0; color: var(--muted); }
.result-summary strong { color: var(--ink); }
.result-card { display: grid; grid-template-columns: 115px 1fr; gap: 2px 20px; padding: 22px 0; border-top: 1px solid var(--line); color: var(--ink); }
.result-card h2 { grid-column: 2; margin-bottom: 8px; }
.result-card > p { grid-column: 2; color: var(--muted); }
.result-card footer { grid-column: 2; display: flex; gap: 8px; flex-wrap: wrap; color: var(--muted); font-size: 11px; }
.result-card footer span { padding-right: 8px; border-right: 1px solid var(--line-strong); }
.result-card footer time { margin-left: auto; }

.editor-form { display: grid; gap: 18px; }
.form-section { display: grid; grid-template-columns: minmax(190px,260px) 1fr; gap: clamp(24px,4vw,62px); padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.form-section.single { grid-template-columns: 1fr; }
.section-intro { display: flex; gap: 14px; align-items: flex-start; }
.section-intro > span { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--green-soft); color: var(--green-dark); font-size: 11px; font-weight: 800; }
.section-intro h2 { margin: 4px 0 7px; }
.section-intro p { color: var(--muted); font-size: 13px; }
.form-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.form-fields.one-column { grid-template-columns: 1fr; }
.form-fields label, .stack-form label, .inline-filter label, .upload-drop label { display: flex; flex-direction: column; gap: 6px; color: var(--ink-soft); font-size: 13px; font-weight: 700; }
.form-fields label small, .upload-control small { color: var(--muted); font-weight: 500; }
.span-2 { grid-column: span 2; }
input, select, textarea { width: 100%; min-height: 43px; border: 1px solid var(--line-strong); border-radius: 7px; padding: 9px 11px; background: white; color: var(--ink); outline: 0; }
textarea { resize: vertical; line-height: 1.55; }
select[multiple] { min-height: 130px; }
input:focus, select:focus, textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(47,134,83,.11); }
fieldset { margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 8px; }
legend { padding: 0 6px; font-size: 13px; font-weight: 750; }
.checkbox-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px 14px; }
.checkbox-label { flex-direction: row !important; align-items: flex-start; gap: 8px !important; padding: 5px 0; }
.checkbox-label input { width: 16px; min-height: 16px; margin-top: 2px; padding: 0; accent-color: var(--green); }
.checkbox-label.child { padding-left: 13px; color: var(--muted); }
.file-readonly { padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); }
.file-readonly strong, .file-readonly span { display: block; }
.file-readonly span { color: var(--muted); font-size: 13px; }
.sticky-actions { position: sticky; z-index: 5; bottom: 14px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 16px; border: 1px solid var(--line-strong); border-radius: 10px; background: rgba(255,255,255,.95); box-shadow: var(--shadow); backdrop-filter: blur(10px); }
.sticky-actions span { color: var(--muted); font-size: 12px; }

.detail-header { margin-bottom: 30px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.detail-header h1 { max-width: 1040px; margin-top: 14px; }
.detail-header > p { max-width: 900px; color: var(--ink-soft); font-size: 18px; }
.detail-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; color: var(--muted); font-size: 12px; }
.detail-layout { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 28px; align-items: start; }
.knowledge-body { display: grid; gap: 18px; }
.knowledge-body > section { padding: clamp(24px,3vw,36px); border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.knowledge-body h2 { margin-top: 26px; color: var(--green-dark); }
.knowledge-body h2:first-child { margin-top: 0; }
.knowledge-body h3 { margin-top: 20px; }
.knowledge-body p, .knowledge-body li { max-width: 880px; }
.knowledge-body li { margin-bottom: 6px; }
.knowledge-body .technical { border-top: 4px solid var(--green); }
.knowledge-body .warnings { border-top: 4px solid var(--orange); background: #fffdfb; }
.section-kicker { display: block; margin-bottom: 18px; color: var(--green-dark); font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.customer-copy > div:first-child { display: flex; justify-content: space-between; align-items: flex-start; }
.copy-content { white-space: normal; line-height: 1.75; }
.copy-button { padding: 6px 9px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--canvas); color: var(--green-dark); font-size: 12px; font-weight: 750; }
.detail-aside { display: grid; gap: 16px; }
.detail-aside > section, .detail-aside > form { padding: 20px; border: 1px solid var(--line); border-radius: 11px; background: white; }
.detail-aside h2 { margin-bottom: 13px; font-size: 16px; }
.detail-aside dl, .metadata { margin: 0; }
.detail-aside dt, .metadata dt { margin-top: 12px; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.detail-aside dd, .metadata dd { margin: 4px 0 0; overflow-wrap: anywhere; }
.tag { display: inline-flex; margin: 2px 2px 2px 0; padding: 4px 8px; border-radius: 99px; background: var(--green-soft); color: var(--green-dark); font-size: 11px; }
.tag.neutral { background: #eef0ee; color: var(--ink-soft); }
.source-list { display: grid; gap: 8px; }
.source-list a { padding: 13px 15px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); }
.source-list a:hover { border-color: var(--green); }
.source-list span, .source-list p { display: block; margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.attachment-list { display: grid; gap: 8px; margin-top: 14px; }
.attachment-list a { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); }
.attachment-list a > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 7px; background: #eaf1fa; color: #285a88; font-size: 10px; font-weight: 800; }
.attachment-list small { display: block; color: var(--muted); }
.audit-list { display: grid; gap: 7px; margin-top: 12px; }
.audit-list span { padding-top: 7px; border-top: 1px solid var(--line); }
.audit-list small { display: block; color: var(--muted); font-size: 11px; }
.detail-definition { display: grid; grid-template-columns: minmax(150px,220px) 1fr; margin: 0; }
.detail-definition dt, .detail-definition dd { margin: 0; padding: 14px 0; border-top: 1px solid var(--line); }
.detail-definition dt { color: var(--muted); font-size: 12px; font-weight: 750; }
.detail-definition dd p:last-child { margin-bottom: 0; }

.table-wrap { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th { padding: 13px 16px; background: var(--canvas); color: var(--muted); font-size: 11px; text-align: left; text-transform: uppercase; }
.data-table td { padding: 15px 16px; border-top: 1px solid var(--line); vertical-align: middle; }
.data-table td:first-child { min-width: 280px; }
.data-table td a { color: var(--ink); }
.data-table td small { display: block; color: var(--muted); }
.document-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 24px; align-items: start; }
.document-preview { min-height: 600px; overflow: hidden; display: grid; place-items: center; border: 1px solid var(--line); border-radius: var(--radius); background: #e9ece9; }
.document-preview iframe { width: 100%; height: 78vh; min-height: 650px; border: 0; background: white; }
.document-preview img { display: block; max-height: 78vh; object-fit: contain; }
.file-placeholder { text-align: center; }
.file-placeholder > strong { display: block; color: var(--green-dark); font-size: 50px; }
.upload-drop { max-width: 760px; }
.upload-drop input { margin: 12px 0; padding: 20px; border-style: dashed; }

.sales-list { display: grid; gap: 18px; }
.sales-card { padding: 26px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.sales-card h2 { margin-bottom: 9px; }
.sales-card > p { color: var(--muted); }
.sales-card details { margin-top: 12px; border-top: 1px solid var(--line); padding-top: 12px; }
.sales-card summary { font-weight: 750; }
.sales-card .copy-content, .sales-card .prose { margin-top: 12px; padding: 18px; border-radius: 8px; background: var(--canvas); }
.copy-toolbar { display: flex; justify-content: flex-end; margin-top: -24px; }
.inline-filter { display: flex; gap: 10px; align-items: end; max-width: 620px; margin-bottom: 24px; }
.inline-filter label { flex: 1; }
.backlog-prose { max-width: 960px; }
.backlog-prose h2 { margin-top: 32px; color: var(--green-dark); }

.guest-shell { min-height: 100vh; background: linear-gradient(120deg,#f3f6f3,#fff 54%,#eef5f0); }
.guest-main { min-height: 100vh; display: grid; place-content: center; padding: 32px; }
.guest-brand { width: fit-content; margin: 0 auto 24px; }
.guest-brand img { width: 165px; height: 55px; object-fit: contain; }
.auth-card { width: min(100%,520px); margin: auto; padding: clamp(28px,5vw,48px); border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.95); box-shadow: 0 24px 80px rgba(14,18,22,.1); }
.auth-card h1 { font-size: 38px; }
.auth-card .lead { color: var(--muted); font-size: 16px; }
.install-card { width: min(100%,760px); }
.stack-form { display: grid; gap: 16px; margin-top: 28px; }
.auth-links { display: flex; justify-content: center; margin-top: 18px; font-size: 14px; font-weight: 750; }
.password-rules { padding: 12px 14px; border-radius: 9px; background: var(--green-soft); color: var(--green-dark); font-size: 12px; line-height: 1.55; }
.security-page-header { margin-bottom: 22px; }
.security-panel { max-width: 760px; padding: clamp(24px,4vw,38px); }
.security-account { display: grid; gap: 4px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.security-account strong { margin-top: 5px; font-size: 22px; }
.security-account span,.security-account small { color: var(--muted); }
.security-form { max-width: 560px; }
.security-form .button { justify-self: start; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.privacy-note { margin: 18px 0 0; color: var(--muted); font-size: 12px; text-align: center; }

@media (max-width: 1180px) {
  .module-strip { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .record-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .filter-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .topbar { grid-template-columns: 200px minmax(230px,1fr) 1fr auto; }
  .topbar::after { display: none; }
}

@media (max-width: 900px) {
  .topbar { position: sticky; height: auto; min-height: 70px; grid-template-columns: 1fr auto auto; padding: 10px 18px; }
  .brand { min-width: 180px; }
  .brand img { width: 125px; }
  .top-search { grid-column: 1 / -1; grid-row: 2; }
  .sidebar { position: static; width: auto; height: auto; padding: 10px 16px; border-right: 0; border-bottom: 1px solid var(--line); }
  .sidebar nav { display: flex; overflow-x: auto; padding-bottom: 4px; }
  .sidebar nav a { flex: 0 0 auto; }
  .sidebar-foot { display: none; }
  .main-content { margin-left: 0; padding: 34px 22px 70px; }
  .module-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dashboard-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .panel-wide { grid-column: span 2; }
  .form-section { grid-template-columns: 1fr; gap: 18px; }
  .detail-layout, .document-layout { grid-template-columns: 1fr; }
  .detail-aside { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .document-preview { min-height: 480px; }
  .partner-hub-layout { grid-template-columns: 1fr; }
  .partner-hub-sidebar { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 640px) {
  body { font-size: 14px; }
  .topbar { grid-template-columns: 1fr auto; }
  .topbar > .button { display: none; }
  .brand span { display: none; }
  .user-menu { grid-column: 2; grid-row: 1; }
  .top-search { grid-column: 1 / -1; }
  .top-search kbd { display: none; }
  .main-content { padding: 28px 15px 60px; }
  .page-header, .detail-header .page-actions { align-items: stretch; flex-direction: column; }
  .page-actions .button, .page-actions form, .page-actions form button { width: 100%; }
  h1 { font-size: 32px; }
  .dashboard-hero { padding: 26px 18px; }
  .hero-search { height: auto; flex-wrap: wrap; padding: 12px; }
  .hero-search input { width: calc(100% - 40px); }
  .hero-search button { width: 100%; }
  .module-strip, .dashboard-grid, .record-grid, .filter-grid, .form-fields, .form-grid { grid-template-columns: 1fr; }
  .panel-wide, .span-2 { grid-column: span 1; }
  .record-card { min-height: 220px; }
  .result-card { grid-template-columns: 1fr; }
  .result-card h2, .result-card > p, .result-card footer { grid-column: 1; }
  .result-card footer time { margin-left: 0; }
  .form-section { padding: 20px 16px; }
  .checkbox-grid { grid-template-columns: 1fr; }
  .sticky-actions { position: static; align-items: stretch; flex-direction: column; }
  .detail-aside { grid-template-columns: 1fr; }
  .detail-definition { grid-template-columns: 1fr; }
  .detail-definition dt { padding-bottom: 2px; }
  .detail-definition dd { padding-top: 3px; border-top: 0; }
  .table-wrap { overflow-x: auto; }
  .data-table { min-width: 850px; }
  .inline-filter { align-items: stretch; flex-direction: column; }
  .section-heading-row { align-items: flex-start; flex-direction: column; gap: 10px; }
  .partner-area-grid,.partner-info-grid,.partner-hub-sidebar { grid-template-columns: 1fr; }
  .partner-area-card { grid-template-columns: 46px 1fr; padding: 17px; }
  .partner-area-mark { width: 46px; height: 46px; border-radius: 11px; font-size: 18px; }
  .partner-area-card footer strong,.partner-document-card footer strong { width: 100%; margin: 4px 0 0; }
  .partner-hub-hero { grid-template-columns: 1fr; padding: 25px 18px; }
  .partner-hub-brand { grid-column: 1; }
  .partner-hub-hero > aside { grid-template-columns: auto 1fr; }
  .partner-hub-copy h1 { font-size: 38px; }
  .partner-document-card { grid-template-columns: 44px 1fr; padding: 15px; }
  .document-icon { width: 44px; height: 44px; }
  .guest-main { padding: 18px; }
  .guest-brand { margin-bottom: 14px; }
  .auth-card { padding: 26px 20px; }
  .auth-card h1 { font-size: 32px; }
}

/* PV · Einkauf & Preise */
.pv-price-heading { align-items: flex-end; }
.pv-price-mode { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 920px; margin: 0 0 24px; padding: 5px; border: 1px solid var(--line); border-radius: 14px; background: #f0f4f1; }
.pv-price-mode a { display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; border-radius: 10px; color: var(--muted); }
.pv-price-mode a:hover { color: var(--ink); }
.pv-price-mode a.active { background: white; color: var(--green); box-shadow: 0 3px 15px rgba(19,63,49,.09); }
.pv-price-mode strong { font-size: 14px; }
.pv-price-mode span { font-size: 12px; }
.pv-price-mode.compact { max-width: 680px; }
.pv-price-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 22px; }
.pv-price-kpis article { min-width: 0; padding: 19px; border: 1px solid var(--line); border-radius: 14px; background: white; box-shadow: 0 5px 20px rgba(20,56,45,.055); }
.pv-price-kpis article > span { display: block; margin-bottom: 7px; color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.pv-price-kpis article > strong { display: block; margin-bottom: 6px; color: var(--green); font-size: clamp(24px,2.4vw,34px); letter-spacing: -.035em; }
.pv-price-kpis article a { display: block; color: var(--ink); font-size: 13px; font-weight: 700; }
.pv-price-kpis article small { display: block; margin-top: 6px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.pv-price-kpis .pv-price-kpi-meta { background: #123f31; color: white; }
.pv-price-kpis .pv-price-kpi-meta > span,.pv-price-kpis .pv-price-kpi-meta small { color: #c9dfd3; }
.pv-price-kpis .pv-price-kpi-meta > strong,.pv-price-kpis .pv-price-kpi-meta a { color: white; }
.pv-price-workbench { padding: 0; overflow: hidden; }
.pv-price-workbench > .panel-heading,.pv-assumptions > .panel-heading { padding: 24px 24px 0; }
.pv-price-filters { display: grid; grid-template-columns: repeat(5,minmax(120px,1fr)) auto; gap: 10px; align-items: end; padding: 20px 24px; border-bottom: 1px solid var(--line); }
.pv-price-filters label,.assumption-form label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; font-weight: 700; }
.pv-price-filters select,.assumption-form input { min-width: 0; }
.pv-price-filters > div { display: flex; gap: 7px; }
.pv-price-table { min-width: 1360px; }
.pv-price-split span { display: block; white-space: nowrap; font-size: 11px; line-height: 1.55; }
.data-table td small,.data-table td > a:not(.table-title) { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.table-title { display: block; margin-top: 5px; color: var(--ink); font-weight: 750; line-height: 1.35; }
.line-pill,.price-basis { display: inline-flex; width: fit-content; padding: 3px 7px; border-radius: 999px; background: #e9f2ed; color: #225e45; font-size: 10px; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.line-pill.premium { background: #e7ecf7; color: #324f85; }
.line-pill.watch { background: #fff0df; color: #90521e; }
.line-pill.budget { background: #f0eaf7; color: #664283; }
.price-basis.confidential { background: #fde8d9; color: #943f18; }
.price-change { font-size: 11px; font-weight: 800; }
.price-change.up { color: #a13e24; }
.price-change.down { color: #277049; }
.table-note { margin: 0; padding: 14px 24px 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.pv-price-lower-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; margin: 20px 0; }
.pv-reference-row { display: grid; grid-template-columns: auto 1fr auto; gap: 13px; align-items: center; padding: 13px 0; border-top: 1px solid var(--line); color: var(--ink); }
.pv-reference-row > span { padding: 5px 7px; border-radius: 5px; background: #e9f2ed; color: var(--green); font-size: 10px; font-weight: 850; }
.pv-reference-row strong,.pv-reference-row small { display: block; }
.pv-reference-row small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.pv-reference-row b { color: var(--green); font-size: 12px; }
.compact { margin-top: 9px; font-size: 12px; }
.compact-steps { display: grid; gap: 9px; margin: 0 0 18px; padding-left: 20px; color: var(--muted); font-size: 13px; }
.pv-assumptions { padding: 0; overflow: hidden; }
.pv-assumptions .data-table { min-width: 1000px; }
.assumption-form { display: grid; grid-template-columns: 110px 80px minmax(180px,1fr) minmax(220px,1.25fr) auto; gap: 8px; align-items: end; }
.assumption-form label span { font-size: 9px; text-transform: uppercase; }
.assumption-form input { padding: 8px 9px; font-size: 12px; }
.pv-detail-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin: 0 0 20px; }
.pv-detail-metrics > div { padding: 17px 19px; border: 1px solid var(--line); border-radius: 12px; background: white; }
.pv-detail-metrics span,.pv-detail-metrics small { display: block; color: var(--muted); font-size: 11px; }
.pv-detail-metrics strong { display: block; margin-top: 5px; font-size: 19px; }
.pv-detail-metrics small { margin-top: 4px; }
.pv-detail-notes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 20px 0; }
.pv-detail-notes article { padding: 16px 18px; border-left: 3px solid var(--green); background: #f2f6f3; }
.pv-detail-notes span { color: var(--green); font-size: 10px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.pv-detail-notes p { margin: 7px 0 0; font-size: 12px; line-height: 1.55; }
.pv-observation-form { margin-top: 20px; }
.pv-observation-form code,.notice code { padding: 2px 5px; border-radius: 4px; background: #edf1ee; color: #164f38; font-size: .9em; }
.pv-observation-form .form-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.pv-observation-form .span-3 { grid-column: 1/-1; }
.pv-supplier-table { min-width: 1120px; }
.pv-prices-feature { background: linear-gradient(135deg,#133f31,#336e51); }
.pv-rate-section { margin: 0 0 24px; scroll-margin-top: 110px; }
.pv-rate-section > .panel-heading { margin-bottom: 14px; }
.pv-rate-section > .panel-heading p,.pv-cost-calculator-section .panel-heading p,.pv-benchmark-panel .panel-heading p,.pv-price-workbench .panel-heading p { max-width: 820px; margin: 5px 0 0; color: var(--muted); }
.pv-rate-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; }
.pv-rate-card { min-width: 0; padding: 20px; border: 1px solid var(--line); border-top: 4px solid var(--green); border-radius: 14px; background: white; box-shadow: 0 5px 20px rgba(20,56,45,.055); }
.pv-rate-card.is-open { border-top-color: var(--orange); }
.pv-rate-card > span { display: block; min-height: 32px; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.pv-rate-card > strong { display: inline-block; margin: 7px 4px 2px 0; color: var(--green-dark); font-size: clamp(30px,3vw,42px); letter-spacing: -.04em; }
.pv-rate-card.is-open > strong { color: #a55a20; font-size: 28px; }
.pv-rate-card > b { color: var(--ink-soft); font-size: 12px; }
.pv-rate-card > small { display: block; min-height: 34px; margin: 5px 0 12px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.pv-rate-suggestion { display: grid; gap: 2px; min-height: 72px; margin: 0 0 13px; padding: 10px 11px; border-radius: 9px; background: #edf5ef; }
.pv-rate-suggestion span { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.pv-rate-suggestion strong { color: var(--green-dark); font-size: 14px; }
.pv-rate-suggestion small { color: var(--muted); font-size: 9px; }
.pv-rate-card form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding-top: 12px; border-top: 1px solid var(--line); }
.pv-rate-card form label { display: grid; gap: 4px; color: var(--muted); font-size: 9px; font-weight: 800; }
.pv-rate-card form input,.pv-rate-card form select { width: 100%; min-width: 0; padding: 8px; font-size: 11px; }
.pv-rate-card form .span-2,.pv-rate-card form button { grid-column: 1/-1; }
.pv-rate-card details { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.pv-rate-card details summary { cursor: pointer; color: var(--green); font-size: 10px; font-weight: 800; }
.pv-rate-card details ol { display: grid; gap: 6px; margin: 9px 0 0; padding-left: 18px; }
.pv-rate-card details li strong,.pv-rate-card details li span { display: block; font-size: 9px; }
.pv-rate-card details li span { color: var(--muted); }
.pv-cost-calculator-section { margin-bottom: 24px; padding: clamp(22px,3vw,32px); overflow: hidden; scroll-margin-top: 110px; }
.pv-cost-calculator-grid { display: grid; grid-template-columns: minmax(260px,.72fr) minmax(480px,1.28fr); gap: 18px; margin-bottom: 20px; }
.pv-cost-inputs { display: grid; align-content: start; gap: 12px; padding: 18px; border-radius: 12px; background: var(--canvas); }
.pv-cost-inputs > label { position: relative; display: grid; gap: 5px; color: var(--ink-soft); font-size: 11px; font-weight: 800; }
.pv-cost-inputs > label > small { color: var(--muted); font-size: 9px; font-weight: 600; }
.pv-cost-inputs > label > span { position: absolute; right: 10px; bottom: 10px; color: var(--muted); font-size: 10px; }
.pv-cost-inputs input[type="number"] { width: 100%; padding-right: 46px; }
.pv-cost-inputs fieldset { margin: 0; padding: 0; border: 0; }
.pv-cost-inputs legend { margin-bottom: 6px; color: var(--ink-soft); font-size: 11px; font-weight: 800; }
.pv-factor-row { display: grid; grid-template-columns: repeat(4,1fr); gap: 5px; }
.pv-factor-row label { position: relative; cursor: pointer; }
.pv-factor-row input { position: absolute; width: 1px; height: 1px; inset: 50% auto auto 50%; opacity: 0; }
.pv-factor-row span { display: grid; place-items: center; padding: 9px 5px; border: 1px solid var(--line); border-radius: 8px; background: white; color: var(--muted); font-size: 11px; font-weight: 800; }
.pv-factor-row input:checked + span { border-color: var(--green); background: var(--green); color: white; }
.pv-calculator-status { padding: 12px; border-left: 4px solid var(--orange); border-radius: 0 8px 8px 0; background: var(--orange-soft); }
.pv-calculator-status.is-complete { border-color: var(--green); background: var(--green-soft); }
.pv-calculator-status strong,.pv-calculator-status span { display: block; }
.pv-calculator-status strong { font-size: 11px; }
.pv-calculator-status span { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.pv-cost-results { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.pv-cost-results article { padding: 18px; border: 1px solid var(--line); border-radius: 11px; background: white; }
.pv-cost-results article > span,.pv-cost-results article > small { display: block; color: var(--muted); font-size: 10px; }
.pv-cost-results article > span b { float: right; color: var(--green); font-size: 10px; }
.pv-cost-results article > strong { display: block; margin: 7px 0 3px; font-size: clamp(22px,2.3vw,31px); }
.pv-cost-results article.total { grid-column: 1/-1; background: var(--green-dark); color: white; }
.pv-cost-results article.total > span,.pv-cost-results article.total > small { color: #cde1d4; }
.pv-cost-results article.total > strong { color: white; font-size: clamp(30px,3.4vw,46px); }
.pv-factor-table { min-width: 840px; }
.pv-benchmark-grid { display: grid; gap: 18px; margin-bottom: 24px; }
.pv-benchmark-panel { padding: 0; overflow: hidden; }
.pv-benchmark-panel > .panel-heading { padding: 24px 24px 0; }
.pv-stat-strip { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 1px; margin: 18px 24px; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--line); }
.pv-stat-strip div { min-width: 0; padding: 12px; background: var(--canvas); }
.pv-stat-strip span,.pv-stat-strip strong,.pv-stat-strip small { display: block; }
.pv-stat-strip span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.pv-stat-strip strong { margin-top: 3px; font-size: 15px; }
.pv-stat-strip small { margin-top: 2px; color: var(--muted); font-size: 8px; line-height: 1.3; }
.pv-benchmark-panel .data-table { min-width: 1040px; }
.pv-benchmark-panel tr.is-watchlist { background: #fffaf3; }
.pv-manufacturer-values { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; padding: 14px 24px 18px; border-top: 1px solid var(--line); }
.pv-manufacturer-values > strong { margin-right: 4px; font-size: 10px; text-transform: uppercase; }
.pv-manufacturer-values > span { padding: 5px 8px; border-radius: 99px; background: #eaf2ed; color: var(--green-dark); font-size: 9px; font-weight: 750; }
.pv-manufacturer-values > small { flex-basis: 100%; color: var(--muted); font-size: 9px; }
.pv-assumptions > summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 22px; list-style: none; }
.pv-assumptions > summary::-webkit-details-marker { display: none; }
.pv-assumptions > summary span strong,.pv-assumptions > summary span small { display: block; }
.pv-assumptions > summary span small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.pv-assumptions > summary b { color: var(--green); font-size: 11px; }
.pv-assumptions[open] > summary { border-bottom: 1px solid var(--line); }
.pv-margin-section,.pv-deal-radar { margin-bottom: 24px; padding: clamp(22px,3vw,32px); scroll-margin-top: 110px; }
.pv-margin-layout { display: grid; grid-template-columns: minmax(360px,.88fr) minmax(500px,1.12fr); gap: 18px; }
.pv-margin-inputs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; align-content: start; padding: 18px; border-radius: 12px; background: var(--canvas); }
.pv-margin-inputs label { display: grid; gap: 5px; color: var(--ink-soft); font-size: 10px; font-weight: 800; }
.pv-margin-inputs input,.pv-margin-inputs select,.pv-margin-inputs textarea { width: 100%; min-width: 0; }
.pv-margin-inputs .span-2 { grid-column: 1/-1; }
.pv-margin-inputs label small { color: var(--muted); font-size: 9px; font-weight: 600; line-height: 1.4; }
.pv-margin-results { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.pv-margin-results article { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 11px; background: white; }
.pv-margin-results article.accent { border-color: #7bae8b; background: var(--green-dark); color: white; }
.pv-margin-results span,.pv-margin-results small,.pv-margin-results strong { display: block; }
.pv-margin-results span { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.pv-margin-results strong { margin: 7px 0 3px; font-size: clamp(22px,2.4vw,31px); }
.pv-margin-results small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.pv-margin-results .accent span,.pv-margin-results .accent small { color: #cfe2d6; }
.pv-margin-results .accent strong { color: white; }
.pv-margin-save { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 17px; padding-top: 15px; border-top: 1px solid var(--line); }
.pv-margin-save span { color: var(--muted); font-size: 10px; }
.pv-margin-history,.pv-deal-entry { margin-top: 18px; border: 1px solid var(--line); border-radius: 11px; background: white; }
.pv-margin-history > summary,.pv-deal-entry > summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 17px; list-style: none; }
.pv-margin-history > summary::-webkit-details-marker,.pv-deal-entry > summary::-webkit-details-marker { display: none; }
.pv-margin-history > summary span,.pv-deal-entry > summary span { display: grid; gap: 3px; }
.pv-margin-history > summary small,.pv-deal-entry > summary small { color: var(--muted); font-size: 9px; }
.pv-margin-history > summary b,.pv-deal-entry > summary b { color: var(--green); font-size: 10px; }
.pv-margin-history[open] > summary,.pv-deal-entry[open] > summary { border-bottom: 1px solid var(--line); }
.pv-margin-history .data-table { min-width: 850px; }
.pv-brand-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; margin: 18px 0; }
.pv-brand-grid article { min-width: 0; padding: 15px; border: 1px solid var(--line); border-top: 4px solid var(--green); border-radius: 10px; background: white; }
.pv-brand-grid article.strategy-core_watch { border-top-color: #4e849d; }
.pv-brand-grid article.strategy-benchmark { border-top-color: var(--orange); background: #fffaf4; }
.pv-brand-grid article.strategy-disabled { border-top-color: #aab2ad; opacity: .78; }
.pv-brand-grid article > div { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.pv-brand-grid article > div strong { font-size: 15px; }
.pv-brand-grid article > div span { padding: 4px 6px; border-radius: 99px; background: var(--green-soft); color: var(--green-dark); font-size: 8px; font-weight: 850; }
.pv-brand-grid p { min-height: 35px; margin: 10px 0 5px; font-size: 10px; font-weight: 750; }
.pv-brand-grid small { display: block; min-height: 37px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.pv-brand-grid form { display: grid; gap: 5px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.pv-brand-grid form input,.pv-brand-grid form select { width: 100%; min-width: 0; padding: 7px; font-size: 9px; }
.pv-deal-table { min-width: 1160px; }
.pv-deal-table tr.is-expired { opacity: .62; }
.pv-deal-table tr.is-verify { background: #fffaf3; }
.deal-flag,.deal-expiring { display: block; width: max-content; margin-bottom: 5px; padding: 4px 7px; border-radius: 99px; background: #edf0ee; color: var(--muted); font-size: 8px; font-weight: 850; text-transform: uppercase; }
.deal-flag.good { background: var(--green-soft); color: var(--green-dark); }
.deal-flag.watch,.deal-expiring { background: var(--orange-soft); color: #89501e; }
.deal-flag.expired { background: #f0e7e5; color: #81493e; }
.deal-expiring { margin-top: 5px; }
.pv-deal-entry form { padding: 18px; }
.pv-deal-entry .span-3 { grid-column: 1/-1; }
.pv-deal-entry .button { margin-top: 14px; }

/* PV · Lager & Mengeneinkauf */
.pv-stock-entry { display:flex; justify-content:space-between; gap:24px; align-items:center; margin:-7px 0 24px; padding:18px 22px; border:1px solid #c7ddd1; border-radius:14px; background:linear-gradient(110deg,#edf7f1,#f8fbf9); color:var(--ink); }
.pv-stock-entry strong { display:block; margin:3px 0; color:var(--green-dark); font-size:20px; }
.pv-stock-entry p { margin:0; color:var(--muted); font-size:12px; }
.pv-stock-entry > b { flex:0 0 auto; color:var(--green); font-size:12px; }
.pv-stock-heading { align-items:flex-end; }
.pv-stock-hero { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr); gap:28px; margin-bottom:18px; padding:clamp(26px,3.5vw,44px); border-radius:18px; background:linear-gradient(135deg,#103b2e,#1c5d43); color:white; box-shadow:var(--shadow); }
.pv-stock-hero::after { content:""; position:absolute; width:260px; height:260px; right:-130px; top:-150px; border:46px solid rgba(244,122,36,.23); border-radius:50%; }
.pv-stock-hero > * { position:relative; z-index:1; }
.pv-stock-hero .eyebrow { color:#c6e1d3; }
.pv-stock-hero h2 { max-width:790px; margin:8px 0 12px; color:white; font-size:clamp(30px,4vw,48px); line-height:1.03; letter-spacing:-.035em; }
.pv-stock-hero > div > p { max-width:820px; margin:0; color:#d5e6dd; font-size:15px; line-height:1.65; }
.pv-stock-hero-metrics { display:grid; align-content:center; gap:8px; }
.pv-stock-hero-metrics article { padding:14px 16px; border:1px solid rgba(255,255,255,.14); border-radius:11px; background:rgba(255,255,255,.08); }
.pv-stock-hero-metrics span,.pv-stock-hero-metrics small { display:block; color:#c9dfd4; font-size:10px; }
.pv-stock-hero-metrics strong { display:block; margin:3px 0; color:white; font-size:22px; }
.pv-stock-section { margin:26px 0; scroll-margin-top:100px; }
.pv-stock-section > .panel-heading { margin-bottom:14px; }
.pv-stock-section > .panel-heading p { max-width:880px; margin:5px 0 0; color:var(--muted); }
.pv-stock-decision-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.pv-stock-decision-grid article { display:flex; flex-direction:column; min-width:0; padding:20px; border:1px solid var(--line); border-top:4px solid #89968f; border-radius:13px; background:white; box-shadow:0 5px 20px rgba(20,56,45,.045); }
.pv-stock-decision-grid article.is-stock { border-top-color:#17865d; }
.pv-stock-decision-grid article.is-project_pool { border-top-color:#d89435; }
.pv-stock-decision-grid article.is-project_only { border-top-color:#9a6656; }
.pv-stock-decision-top { display:flex; gap:11px; align-items:center; }
.pv-stock-decision-top > span { display:grid; place-items:center; flex:0 0 34px; width:34px; height:34px; border-radius:50%; background:var(--green); color:white; font-size:12px; font-weight:850; }
.is-project_pool .pv-stock-decision-top > span { background:#d89435; }
.is-project_only .pv-stock-decision-top > span { background:#8c5c50; }
.pv-stock-decision-top small { display:block; color:var(--muted); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.pv-stock-decision-top h3 { margin:2px 0 0; font-size:18px; }
.pv-stock-decision-grid article > p { min-height:105px; margin:15px 0; color:var(--ink-soft); font-size:11px; line-height:1.55; }
.pv-stock-decision-grid dl { display:grid; gap:10px; margin:0 0 16px; }
.pv-stock-decision-grid dl > div { padding-top:9px; border-top:1px solid var(--line); }
.pv-stock-decision-grid dt { color:var(--muted); font-size:8px; font-weight:850; text-transform:uppercase; letter-spacing:.05em; }
.pv-stock-decision-grid dd { margin:3px 0 0; font-size:10px; line-height:1.45; }
.pv-stock-decision-grid article > a { margin-top:auto; color:var(--green); font-size:10px; font-weight:800; }
.pv-stock-calculator { padding:clamp(22px,3vw,30px); scroll-margin-top:100px; }
.pv-stock-calculator .panel-heading p { max-width:820px; margin:5px 0 0; color:var(--muted); }
.pv-stock-calculator-grid { display:grid; grid-template-columns:minmax(300px,.7fr) minmax(0,1.3fr); gap:24px; margin-top:18px; }
.pv-stock-calculator-inputs { display:grid; gap:12px; align-content:start; }
.pv-stock-calculator-inputs label { display:grid; gap:5px; color:var(--muted); font-size:10px; font-weight:800; }
.pv-stock-calculator-note { padding:13px 14px; border-left:3px solid var(--orange); background:#fff8f1; }
.pv-stock-calculator-note strong { font-size:11px; }
.pv-stock-calculator-note p { margin:5px 0 0; color:var(--muted); font-size:9px; line-height:1.5; }
.pv-stock-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.pv-stock-results article { padding:17px; border:1px solid var(--line); border-radius:11px; background:var(--canvas); }
.pv-stock-results article.total { grid-column:1/-1; background:#153f31; color:white; }
.pv-stock-results span,.pv-stock-results small { display:block; color:var(--muted); font-size:9px; }
.pv-stock-results article.total span,.pv-stock-results article.total small { color:#c7ddd2; }
.pv-stock-results strong { display:block; margin:5px 0; color:var(--green-dark); font-size:20px; }
.pv-stock-results article.total strong { color:white; }
.pv-stock-product-grid { display:grid; gap:14px; }
.pv-stock-product-card { padding:0; overflow:hidden; }
.pv-stock-product-card > header { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:center; padding:21px 23px; }
.pv-stock-product-card > header h3 { margin:3px 0 4px; font-size:21px; }
.pv-stock-product-card > header p { margin:0; color:var(--muted); font-size:10px; }
.pv-stock-best { min-width:160px; padding:11px 13px; border-radius:9px; background:var(--green-soft); text-align:right; }
.pv-stock-best span,.pv-stock-best small { display:block; color:var(--green); font-size:8px; font-weight:800; text-transform:uppercase; }
.pv-stock-best strong { display:block; margin:3px 0; color:var(--green-dark); font-size:19px; }
.pv-stock-strategy { display:grid; grid-template-columns:150px minmax(0,1fr); gap:14px; padding:13px 23px; border-block:1px solid var(--line); background:#f3f7f4; }
.pv-stock-strategy strong { color:var(--green); font-size:9px; text-transform:uppercase; letter-spacing:.04em; }
.pv-stock-strategy p { margin:0; font-size:10px; line-height:1.5; }
.pv-stock-tier-table { min-width:1040px; }
.pv-stock-tier-table tr.is-verify { background:#fff9f2; }
.pv-stock-product-card > footer { padding:11px 20px; border-top:1px solid var(--line); text-align:right; }
.pv-stock-next { display:grid; grid-template-columns:minmax(230px,.35fr) minmax(0,.65fr); gap:30px; margin:28px 0 14px; padding:clamp(24px,3vw,34px); }
.pv-stock-next h2 { margin:6px 0 0; font-size:31px; }
.pv-stock-next ol { display:grid; gap:10px; margin:0; padding-left:20px; }
.pv-stock-next li { padding-left:5px; color:var(--muted); font-size:11px; line-height:1.55; }
.pv-stock-next li strong { color:var(--ink); }
.pv-stock-import-note { margin:14px 0 0; color:var(--muted); font-size:9px; text-align:right; }

@media (max-width: 1240px) {
  .pv-price-filters { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .pv-price-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pv-rate-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pv-brand-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .pv-stat-strip { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .pv-stock-decision-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 850px) {
  .pv-price-lower-grid,.pv-detail-notes { grid-template-columns: 1fr; }
  .pv-detail-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pv-observation-form .form-grid.three { grid-template-columns: 1fr 1fr; }
  .pv-observation-form .span-3 { grid-column: 1/-1; }
  .pv-cost-calculator-grid { grid-template-columns: 1fr; }
  .pv-margin-layout { grid-template-columns: 1fr; }
  .pv-brand-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pv-stock-hero,.pv-stock-calculator-grid,.pv-stock-next { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
  .pv-price-mode,.pv-price-kpis,.pv-price-filters,.pv-detail-metrics,.pv-observation-form .form-grid.three { grid-template-columns: 1fr; }
  .pv-price-filters > div { align-items: stretch; flex-direction: column; }
  .pv-observation-form .span-3 { grid-column: 1; }
  .pv-price-heading { align-items: flex-start; }
  .pv-rate-grid,.pv-cost-results,.pv-stat-strip { grid-template-columns: 1fr; }
  .pv-cost-results article.total { grid-column: 1; }
  .pv-margin-inputs,.pv-margin-results,.pv-brand-grid { grid-template-columns: 1fr; }
  .pv-margin-inputs .span-2 { grid-column: 1; }
  .pv-margin-save { align-items: stretch; flex-direction: column; }
  .pv-stock-heading { align-items:flex-start; }
  .pv-stock-entry { align-items:flex-start; flex-direction:column; }
  .pv-stock-decision-grid,.pv-stock-results { grid-template-columns:1fr; }
  .pv-stock-results article.total { grid-column:1; }
  .pv-stock-product-card > header,.pv-stock-strategy { grid-template-columns:1fr; }
  .pv-stock-best { text-align:left; }
}

@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; transition: none !important; } }

/* PV-Projektgeschäft */
.pv-hero { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0,1fr) 220px; gap: 34px; margin: -8px 0 28px; padding: clamp(30px,4vw,52px); border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(135deg,#0f392c 0%,#15523c 66%,#1e6949 100%); color: white; box-shadow: var(--shadow); }
.pv-hero::after { content: ""; position: absolute; width: 300px; height: 300px; right: -145px; top: -165px; border: 54px solid rgba(244,122,36,.22); border-radius: 50%; }
.pv-hero > div,.pv-hero > aside { position: relative; z-index: 1; }
.pv-hero .eyebrow,.pv-hero a { color: #d9f0e2; }
.pv-hero h1 { max-width: 900px; margin: 8px 0 12px; font-size: clamp(42px,6vw,72px); }
.pv-hero > div > p { max-width: 830px; color: #d8e5df; font-size: 19px; }
.pv-hero .button { color: var(--ink); }
.pv-hero .button-primary { color: white; background: var(--orange); border-color: var(--orange); }
.pv-hero > aside { align-self: center; display: grid; grid-template-columns: auto 1fr; gap: 4px 10px; padding: 22px; border: 1px solid rgba(255,255,255,.18); border-radius: 14px; background: rgba(255,255,255,.08); }
.pv-hero > aside .eyebrow { grid-column: 1/-1; margin-bottom: 10px; }
.pv-hero > aside strong { color: white; font-size: 25px; }
.pv-hero > aside small { align-self: center; color: #d8e5df; }
.pv-model-intro,.pv-calculator-section,.pv-scenarios-section,.pv-reference-section,.pv-readiness-section,.pv-documents-section { margin-bottom: 24px; padding: clamp(24px,3vw,34px); border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.pv-role-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-bottom: 20px; }
.pv-role-grid article { position: relative; overflow: hidden; min-height: 225px; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.pv-role-grid article > span { display: grid; place-items: center; width: 34px; height: 34px; margin-bottom: 18px; border-radius: 50%; background: var(--green); color: white; font-size: 11px; font-weight: 850; }
.pv-role-grid article:nth-child(2) > span { background: var(--orange); }
.pv-role-grid h3 { margin-bottom: 3px; font-size: 23px; }
.pv-role-grid strong { color: var(--green-dark); }
.pv-role-grid p { margin: 12px 0 0; color: var(--muted); }
.pv-calculator-section { scroll-margin-top: 95px; }
.pv-calculator { display: grid; gap: 18px; }
.pv-calculator label { position: relative; display: flex; flex-direction: column; gap: 5px; color: var(--ink-soft); font-size: 12px; font-weight: 750; }
.pv-calculator label > span { position: absolute; right: 11px; bottom: 11px; color: var(--muted); font-weight: 700; pointer-events: none; }
.pv-calculator label input { padding-right: 36px; }
.pv-calculator-toolbar { display: grid; grid-template-columns: minmax(260px,1.5fr) minmax(230px,1.2fr) .65fr .8fr; gap: 12px; padding: 18px; border-radius: 11px; background: var(--canvas); }
.pv-size-row { display: flex; gap: 12px; max-width: 450px; }
.pv-size-row label { flex: 1; }
.pv-comparison-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.pv-side { display: grid; align-content: start; gap: 14px; padding: clamp(20px,3vw,30px); border-radius: 14px; }
.pv-side legend { padding: 0 8px; font-size: 16px; }
.pv-side legend span { display: inline-grid; place-items: center; width: 28px; height: 28px; margin-right: 7px; border-radius: 50%; background: var(--ink-soft); color: white; font-size: 11px; }
.pv-side.own { border-color: #aad0b7; background: linear-gradient(180deg,#f7fbf8,#fff); }
.pv-side.own legend span { background: var(--green); }
.pv-side.benchmark { background: linear-gradient(180deg,#fafafa,#fff); }
.pv-inline-fields,.pv-cost-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.pv-cost-grid label { padding: 12px; border: 1px solid var(--line); border-radius: 9px; background: white; }
.pv-cost-grid label b { display: grid; place-items: center; width: 22px; height: 22px; margin-bottom: 5px; border-radius: 6px; background: var(--green-soft); color: var(--green-dark); }
.pv-side-result { margin-top: auto; padding: 20px; border-radius: 10px; background: var(--ink); color: white; }
.pv-side-result small,.pv-side-result strong { display: block; }
.pv-side-result small { color: #bfc8c3; text-transform: uppercase; letter-spacing: .06em; }
.pv-side-result strong { margin: 5px 0; font-size: clamp(28px,3vw,40px); }
.pv-side-result p { margin: 0; color: #bfc8c3; font-size: 12px; }
.pv-side.own .pv-side-result { background: var(--green-dark); }
.pv-kpi-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.pv-kpi-grid article { min-height: 122px; padding: 18px; border: 1px solid var(--line); border-radius: 11px; }
.pv-kpi-grid small,.pv-kpi-grid strong,.pv-kpi-grid span { display: block; }
.pv-kpi-grid small { color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.pv-kpi-grid strong { margin: 8px 0 2px; font-size: 25px; }
.pv-kpi-grid span { color: var(--muted); font-size: 12px; }
.pv-calculator .negative { color: #ffb0a9; }
.pv-stress-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--line); }
.pv-stress-grid div { padding: 14px 16px; background: var(--canvas); }
.pv-stress-grid span,.pv-stress-grid strong { display: block; }
.pv-stress-grid span { color: var(--muted); font-size: 11px; }
.pv-stress-grid strong { margin-top: 3px; }
.pv-calculator-notes { display: grid; grid-template-columns: .7fr 1.3fr; gap: 12px; }
.pv-calculator-notes .span-2 { grid-column: 1/-1; }
.pv-calculator-notes label > small { margin-top: 2px; color: var(--muted); font-weight: 600; }
.pv-completeness { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-left: 4px solid var(--orange); border-radius: 0 8px 8px 0; background: var(--orange-soft); }
.pv-completeness.is-complete { border-color: var(--green); background: var(--green-soft); }
.pv-completeness span { color: var(--muted); font-size: 12px; }
.pv-save-row { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding-top: 14px; border-top: 1px solid var(--line); }
.pv-save-row label { min-width: 220px; }
.pv-scenario-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.pv-scenario-card { display: flex; flex-direction: column; min-height: 310px; padding: 21px; border: 1px solid var(--line); border-radius: 12px; }
.pv-scenario-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 11px; }
.pv-scenario-card h3 { margin: 15px 0 6px; }
.pv-scenario-card > p { color: var(--muted); }
.pv-scenario-card dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 10px 0; }
.pv-scenario-card dl div { padding: 10px; border-radius: 8px; background: var(--canvas); }
.pv-scenario-card dt { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.pv-scenario-card dd { margin: 3px 0 0; font-weight: 800; }
.pv-scenario-card dd.negative { color: var(--danger); }
.pv-card-warning { padding: 9px 11px; border-radius: 7px; background: var(--orange-soft); color: #8c481b; font-size: 11px; }
.pv-scenario-card footer { display: flex; align-items: center; gap: 11px; flex-wrap: wrap; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); }
.pv-scenario-card footer small { margin-right: auto; color: var(--muted); }
.pv-scenario-card footer form { margin: 0; }
.pv-reference-table td:first-child { min-width: 250px; }
.pv-reference-table td:nth-child(5) { min-width: 300px; }
.pv-reference-table td:last-child { min-width: 150px; }
.pv-gate-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.pv-gate-grid article { padding: 20px; border: 1px solid var(--line); border-radius: 11px; background: var(--canvas); }
.pv-gate-grid article > span { color: var(--orange); font-size: 12px; font-weight: 850; }
.pv-gate-grid h3 { margin: 7px 0; }
.pv-gate-grid p { margin: 0; color: var(--muted); }
.pv-pilot-checklist { display: grid; grid-template-columns: .8fr 1.2fr; gap: 28px; margin-top: 20px; padding: 25px; border-radius: 12px; background: var(--green-dark); color: white; }
.pv-pilot-checklist .section-kicker { color: #cce8d6; }
.pv-pilot-checklist p { color: #d9e9df; }
.pv-pilot-checklist ul { margin: 0; padding-left: 22px; }
.pv-pilot-checklist li { margin-bottom: 9px; }
.pv-documents-section { scroll-margin-top: 95px; }
.type-badge.pv_reference,.type-badge.pv_scenario { background: var(--orange-soft); color: #95450f; }
.pv-dashboard-feature { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 30px; align-items: center; margin: 0 0 28px; padding: clamp(24px,3vw,34px); border-radius: var(--radius); background: linear-gradient(135deg,#123f31,#1e6c4b); color: white; box-shadow: var(--shadow); }
.pv-dashboard-feature:hover { color: white; transform: translateY(-2px); }
.pv-dashboard-feature .eyebrow { color: #bfe4cc; }
.pv-dashboard-feature h2 { margin: 3px 0 8px; font-size: 28px; }
.pv-dashboard-feature p { max-width: 790px; margin: 0; color: #d6e8de; }
.pv-dashboard-feature aside { display: grid; grid-template-columns: repeat(2,auto); gap: 8px 20px; }
.pv-dashboard-feature aside span { color: #d6e8de; font-size: 12px; }
.pv-dashboard-feature aside strong { color: white; font-size: 20px; }
.pv-dashboard-feature aside b { grid-column: 1/-1; margin-top: 7px; color: #ffd2b3; }

@media (max-width: 1180px) {
  .pv-calculator-toolbar { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pv-kpi-grid,.pv-stress-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pv-scenario-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .pv-hero,.pv-comparison-grid { grid-template-columns: 1fr; }
  .pv-role-grid,.pv-gate-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .pv-hero { padding: 26px 18px; }
  .pv-hero h1 { font-size: 40px; }
  .pv-role-grid,.pv-calculator-toolbar,.pv-inline-fields,.pv-cost-grid,.pv-kpi-grid,.pv-stress-grid,.pv-calculator-notes,.pv-scenario-grid,.pv-gate-grid,.pv-pilot-checklist { grid-template-columns: 1fr; }
  .pv-calculator-notes .span-2 { grid-column: 1; }
  .pv-size-row,.pv-save-row,.pv-completeness { align-items: stretch; flex-direction: column; }
  .pv-reference-table { min-width: 1050px; }
  .pv-dashboard-feature { grid-template-columns: 1fr; }
}

/* PV-Netzanmeldung & Inbetriebnahme */
.grid-module-hero,.grid-project-hero { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 32px; margin: -8px 0 24px; padding: clamp(28px,4vw,46px); border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(135deg,#fff 0%,#f0f7f2 60%,#e4f1e8 100%); box-shadow: var(--shadow); }
.grid-module-hero::after,.grid-project-hero::after { content:""; position:absolute; width:260px; height:260px; right:-120px; top:-150px; border:44px solid rgba(244,122,36,.12); border-radius:50%; }
.grid-module-hero > *,.grid-project-hero > * { position:relative; z-index:1; }
.grid-module-hero h1,.grid-project-hero h1 { max-width:920px; margin:6px 0 12px; font-size:clamp(40px,5vw,66px); }
.grid-module-hero > div > p,.grid-project-hero > div > p { max-width:850px; color:var(--ink-soft); font-size:18px; }
.grid-module-hero > aside,.grid-project-hero > aside { align-self:end; padding:22px; border:1px solid rgba(47,134,83,.18); border-radius:14px; background:rgba(255,255,255,.78); }
.grid-module-hero > aside strong,.grid-project-hero > aside strong { display:block; margin-bottom:6px; color:var(--green-dark); font-size:28px; }
.grid-module-hero > aside p,.grid-project-hero > aside p { color:var(--muted); font-size:13px; }
.grid-project-hero progress { width:100%; height:10px; margin:10px 0; accent-color:var(--green); }
.grid-project-hero > aside small { display:block; color:var(--muted); }
.project-tabs { display:flex; gap:6px; margin:22px 0 18px; padding-bottom:1px; border-bottom:1px solid var(--line); }
.project-tabs a { padding:9px 12px; color:var(--muted); font-weight:700; }
.project-tabs a.active { margin-bottom:-1px; border-bottom:2px solid var(--green); color:var(--green-dark); }
.grid-metrics { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:9px; margin-bottom:24px; }
.grid-metrics article { min-height:105px; display:flex; flex-direction:column; justify-content:center; padding:16px; border:1px solid var(--line); border-radius:11px; background:white; }
.grid-metrics strong { font-size:29px; line-height:1; }
.grid-metrics span { margin-top:9px; color:var(--muted); font-size:11px; }
.grid-metrics .is-alert { border-color:#efc4be; background:#fff5f3; color:var(--danger); }
.grid-projects-panel { margin-bottom:24px; }
.grid-project-list { display:grid; }
.grid-project-list > a { display:grid; grid-template-columns:18px minmax(220px,1.5fr) minmax(170px,1fr) 90px minmax(150px,.8fr) auto; gap:16px; align-items:center; padding:16px 4px; border-top:1px solid var(--line); color:var(--ink); }
.grid-project-list > a:first-child { border-top:0; }
.grid-project-list small,.grid-project-list div > span { display:block; color:var(--muted); font-size:11px; }
.grid-project-list b { color:var(--green-dark); font-size:12px; }
.traffic-light { display:inline-block; width:13px; height:13px; border-radius:50%; box-shadow:0 0 0 4px rgba(14,18,22,.05); }
.traffic-light.gruen { background:#2f9b59; }.traffic-light.gelb { background:#e7a922; }.traffic-light.rot { background:#c9483e; }
.traffic-badge { display:inline-flex; align-items:center; gap:8px; padding:4px 9px; border-radius:99px; background:white; font-size:11px; font-weight:800; }
.traffic-badge.gruen { color:#236d40; }.traffic-badge.gelb { color:#8a6110; }.traffic-badge.rot { color:#9c3028; }
.operator-search { display:flex; gap:9px; max-width:760px; margin-bottom:22px; }
.operator-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.operator-card { display:flex; flex-direction:column; min-height:360px; padding:24px; border:1px solid var(--line); border-radius:var(--radius); background:white; }
.operator-card.favorite-operator { border-top:4px solid var(--green); }
.operator-card header { display:flex; justify-content:space-between; gap:15px; }
.operator-card h2 { margin:7px 0 4px; }.operator-card header p,.operator-card > p { color:var(--muted); }
.operator-card .favorite { font-size:11px; }.operator-card dl,.product-library-grid dl { display:grid; grid-template-columns:130px 1fr; gap:8px 14px; margin:14px 0; font-size:12px; }
.operator-card dt,.product-library-grid dt { color:var(--muted); }.operator-card dd,.product-library-grid dd { margin:0; }
.operator-card footer { display:flex; gap:8px; flex-wrap:wrap; margin-top:auto; padding-top:16px; border-top:1px solid var(--line); }
.product-editor { margin-bottom:22px; border:1px solid var(--line); border-radius:var(--radius); background:white; }
.product-editor > summary { padding:18px 22px; color:var(--green-dark); font-weight:800; }
.product-editor form { padding:0 22px 22px; }
.product-library-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; margin-bottom:24px; }
.product-library-grid > article { min-height:310px; display:flex; flex-direction:column; padding:22px; border:1px solid var(--line); border-radius:var(--radius); background:white; }
.product-library-grid header,.product-library-grid footer { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.product-library-grid header { justify-content:space-between; }.product-library-grid h2 { margin:16px 0 8px; }.product-library-grid dd { font-weight:700; }
.product-library-grid footer { margin-top:auto; padding-top:14px; border-top:1px solid var(--line); font-size:12px; }.product-library-grid footer form { margin-left:auto; }
.form-inline-action { display:flex; align-items:end; }.form-inline-action .button { width:100%; }
.grid-summary-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:22px; margin-bottom:24px; align-items:start; }
.grid-summary-layout > main { display:grid; gap:18px; }.grid-summary-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.grid-summary-cards article,.grid-process-sidebar > section { padding:22px; border:1px solid var(--line); border-radius:var(--radius); background:white; }
.grid-summary-cards h2 { margin:5px 0 8px; }.grid-summary-cards p { margin:0; color:var(--muted); }
.grid-process-sidebar { display:grid; gap:14px; }.project-technical-data { padding:26px; }.technical-data-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; overflow:hidden; border:1px solid var(--line); border-radius:11px; background:var(--line); }
.technical-data-grid dl { margin:0; padding:18px; background:var(--canvas); }.technical-data-grid dt { margin-top:12px; color:var(--muted); font-size:10px; text-transform:uppercase; }.technical-data-grid dt:first-child { margin-top:0; }.technical-data-grid dd { margin:3px 0 0; font-weight:750; }.technical-data-grid small { display:block; color:var(--muted); font-weight:500; }
.grid-workflow-section,.grid-documents-section { scroll-margin-top:95px; margin-bottom:24px; padding:clamp(22px,3vw,32px); border:1px solid var(--line); border-radius:var(--radius); background:white; }
.workflow-list { display:grid; gap:12px; }.workflow-step { border:1px solid var(--line); border-radius:11px; overflow:hidden; background:white; }.workflow-step.status-erledigt { border-color:#add3ba; }.workflow-step.status-problem { border-color:#e1a8a2; }
.workflow-step > header { display:flex; align-items:center; gap:13px; padding:16px 18px; background:var(--canvas); }.workflow-step > header > span { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--green); color:white; font-size:11px; font-weight:850; }.workflow-step h3 { margin:0 0 2px; font-size:17px; }.workflow-step header small { color:var(--muted); }
.workflow-fields { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; padding:16px; }.workflow-fields label { display:flex; flex-direction:column; gap:4px; color:var(--muted); font-size:10px; font-weight:750; }.workflow-fields .span-2 { grid-column:1/-1; }
.project-document-categories { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.project-document-categories > article { min-height:112px; padding:17px; border:1px solid var(--line); border-radius:10px; background:var(--canvas); }.project-document-categories article > header { display:flex; justify-content:space-between; gap:10px; }.project-document-categories h3 { margin:0; font-size:15px; }.project-document-categories header > span { min-width:24px; height:24px; display:grid; place-items:center; border-radius:99px; background:var(--green-soft); color:var(--green-dark); font-size:10px; font-weight:800; }
.grid-feature { background:linear-gradient(135deg,#173a58,#245d78); }.grid-feature .eyebrow { color:#c8e6f3; }.grid-feature aside { grid-template-columns:repeat(3,auto); }.grid-feature aside b { color:#d5edf6; }
.type-badge.grid_project,.type-badge.grid_operator,.type-badge.pv_product { background:#e6f2f7; color:#285c74; }

@media (max-width:1180px) {
  .grid-metrics { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .grid-project-list > a { grid-template-columns:18px minmax(220px,1.5fr) minmax(150px,1fr) 80px auto; }.grid-project-list > a > div:nth-of-type(4) { display:none; }
  .workflow-fields { grid-template-columns:repeat(3,minmax(0,1fr)); }.product-library-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .grid-module-hero,.grid-project-hero,.grid-summary-layout { grid-template-columns:1fr; }.grid-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .operator-grid,.grid-summary-cards,.technical-data-grid { grid-template-columns:1fr; }.grid-project-list > a { grid-template-columns:18px 1fr auto; }.grid-project-list > a > div:not(:first-of-type) { display:none; }
}
@media (max-width:640px) {
  .grid-module-hero,.grid-project-hero { padding:24px 18px; }.grid-module-hero h1,.grid-project-hero h1 { font-size:38px; }
  .project-tabs { overflow-x:auto; }.project-tabs a { white-space:nowrap; }.grid-metrics,.product-library-grid,.project-document-categories,.workflow-fields { grid-template-columns:1fr; }
  .operator-search { flex-direction:column; }.operator-card { padding:18px; }.operator-card header { flex-direction:column; }.operator-card dl,.product-library-grid dl { grid-template-columns:1fr; }
  .workflow-fields .span-2 { grid-column:1; }.grid-feature aside { grid-template-columns:repeat(2,auto); }
}

/* PV / Zählerschrank-Check */
.meter-check-hero,.meter-check-detail-hero { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:32px; margin:-8px 0 24px; padding:clamp(28px,4vw,46px); border:1px solid var(--line); border-radius:20px; background:linear-gradient(135deg,#fff 0%,#f3f7f4 58%,#e6f1e9 100%); box-shadow:var(--shadow); }
.meter-check-hero::after,.meter-check-detail-hero::after { content:""; position:absolute; width:270px; height:270px; right:-125px; bottom:-165px; border:44px solid rgba(47,134,83,.1); border-radius:50%; }
.meter-check-hero > *,.meter-check-detail-hero > * { position:relative; z-index:1; }
.meter-check-hero h1,.meter-check-detail-hero h1 { max-width:900px; margin:5px 0 12px; font-size:clamp(40px,5vw,64px); }
.meter-check-hero > div > p,.meter-check-detail-hero > div > p { max-width:850px; color:var(--ink-soft); font-size:18px; }
.meter-check-hero > aside,.meter-check-detail-hero > aside { align-self:end; padding:22px; border:1px solid rgba(47,134,83,.18); border-radius:14px; background:rgba(255,255,255,.82); }
.meter-metric-row { display:grid; gap:11px; }.meter-metric-row > span { display:grid; grid-template-columns:16px 32px 1fr; gap:8px; align-items:center; color:var(--muted); font-size:12px; }.meter-metric-row strong { color:var(--ink); font-size:20px; }
.meter-check-detail-hero > aside strong { display:block; color:var(--green-dark); font-size:31px; }.meter-check-detail-hero > aside small { display:block; color:var(--muted); }.meter-check-detail-hero progress { width:100%; margin-top:12px; accent-color:var(--green); }
.meter-check-detail-hero.result-gelb { background:linear-gradient(135deg,#fff 0%,#fff9ec 100%); }.meter-check-detail-hero.result-rot { background:linear-gradient(135deg,#fff 0%,#fff2ef 100%); }
.meter-check-list { display:grid; }.meter-check-list > a { display:grid; grid-template-columns:38px minmax(240px,1fr) 90px auto; gap:14px; align-items:center; padding:15px 4px; border-top:1px solid var(--line); color:var(--ink); }.meter-check-list > a:first-child { border-top:0; }.meter-check-list small { display:block; color:var(--muted); }.meter-check-list > a > span:not(.meter-result-mark),.meter-check-list em { color:var(--muted); font-size:12px; font-style:normal; }.meter-result-mark { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:var(--canvas); }
.meter-knowledge-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:24px 0; }.meter-knowledge-layout .panel { min-height:260px; }.meter-knowledge-layout h2 { font-size:25px; }.meter-reviewed { display:block; margin-top:14px; color:var(--muted); }
.meter-standard-cases { margin-bottom:24px; }.meter-standard-cases > div:last-child { display:flex; gap:8px; flex-wrap:wrap; }.meter-standard-cases > div:last-child span { padding:8px 11px; border-radius:99px; background:var(--green-soft); color:var(--green-dark); font-size:12px; font-weight:750; }
.meter-plan-grid { align-items:stretch; }.check-card { min-height:58px; flex-direction:row !important; align-items:center; gap:10px !important; padding:14px; border:1px solid var(--line); border-radius:10px; background:var(--canvas); }.check-card input { width:18px; height:18px; accent-color:var(--green); }
.meter-question-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.meter-question-grid fieldset { margin:0; padding:16px; border:1px solid var(--line); border-radius:11px; background:var(--canvas); }.meter-question-grid legend { padding:0 5px; color:var(--ink); font-size:13px; font-weight:750; }.meter-question-grid fieldset > div { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }.meter-question-grid label { cursor:pointer; }.meter-question-grid label input { position:absolute; opacity:0; }.meter-question-grid label span { display:block; padding:7px 5px; border:1px solid var(--line); border-radius:7px; background:white; color:var(--muted); text-align:center; font-size:10px; font-weight:700; }.meter-question-grid label input:checked + span { border-color:var(--green); background:var(--green-soft); color:var(--green-dark); }
.meter-result-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:24px; }.result-panel { border-top-width:4px; }.result-panel.good { border-top-color:var(--green); }.result-panel.unclear { border-top-color:#e7a922; }.result-panel.questions { border-top-color:#3b728f; }.result-panel.photos { border-top-color:var(--orange); }.result-panel ul,.result-panel ol { margin:0; padding-left:20px; }.result-panel li { margin:8px 0; }
.meter-photo-section { scroll-margin-top:95px; margin-bottom:24px; padding:clamp(22px,3vw,32px); border:1px solid var(--line); border-radius:var(--radius); background:white; }.meter-photo-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }.meter-photo-grid > article { min-height:210px; display:flex; flex-direction:column; padding:14px; border:1px solid var(--line); border-radius:10px; background:var(--canvas); }.meter-photo-grid > article.complete { border-color:#a9cfb6; background:#f4faf6; }.meter-photo-grid article > header { display:flex; gap:8px; align-items:flex-start; }.meter-photo-grid article > header > span { color:var(--green); font-weight:850; }.meter-photo-grid h3 { margin:2px 0 9px; font-size:13px; }.meter-photo-grid p { color:var(--muted); font-size:12px; }.meter-photo-preview { display:grid; gap:7px; color:var(--ink); }.meter-photo-preview img { width:100%; height:92px; object-fit:cover; border-radius:7px; background:white; }.meter-photo-preview > span { height:92px; display:grid; place-items:center; border-radius:7px; background:white; color:var(--green-dark); font-weight:850; }.meter-photo-preview small { line-height:1.3; }.meter-upload-link { margin-top:auto; padding-top:10px; border-top:1px solid var(--line); font-size:11px; font-weight:750; }
.meter-note { margin-top:18px; padding:16px; border-radius:10px; background:var(--green-soft); }.meter-note p { margin:5px 0 0; }.meter-answer-list { display:grid; }.meter-answer-list > div { display:flex; justify-content:space-between; gap:18px; padding:11px 0; border-top:1px solid var(--line); }.meter-answer-list > div:first-child { border-top:0; }.meter-answer-list strong { flex:0 0 auto; padding:3px 8px; border-radius:99px; background:#eef0ee; font-size:10px; }.meter-answer-list .answer-ja { background:var(--green-soft); color:var(--green-dark); }.meter-answer-list .answer-nein { background:#fff0ee; color:var(--danger); }.meter-answer-list .answer-unklar,.meter-answer-list .answer-nicht_geprueft { background:var(--orange-soft); color:#8a551c; }
.grid-meter-link { scroll-margin-top:95px; display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.7fr); gap:24px; align-items:center; margin-bottom:24px; background:linear-gradient(135deg,#fff 0%,#f0f7f2 100%); }.grid-meter-link h2 { margin:4px 0 8px; font-size:27px; }.grid-meter-link p { margin:0; color:var(--muted); }.grid-meter-link aside .button { margin-top:12px; }.grid-meter-link .simple-list span { display:flex; align-items:center; gap:8px; }
.meter-feature { background:linear-gradient(135deg,#473516,#87652b); }.meter-feature .eyebrow { color:#f3dfb6; }.meter-feature p,.meter-feature aside span { color:#f3e8d2; }.meter-feature aside { grid-template-columns:repeat(3,auto); }.meter-feature aside b { color:#fff1c9; }
.type-badge.meter_cabinet_check { background:var(--orange-soft); color:#8a551c; }

.meter-learning-teaser { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:28px; align-items:center; margin:24px 0; padding:clamp(24px,3vw,34px); overflow:hidden; border:1px solid #abc9b5; border-radius:var(--radius); background:linear-gradient(135deg,#fff 0%,#edf7f0 100%); }.meter-learning-teaser h2 { margin:5px 0 10px; font-size:30px; }.meter-learning-teaser p { max-width:760px; color:var(--muted); }.meter-learning-teaser img { width:100%; height:250px; object-fit:cover; object-position:center 17%; border:1px solid rgba(47,134,83,.2); border-radius:12px; background:white; box-shadow:0 14px 35px rgba(27,68,44,.12); }
.meter-learning-hero { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:34px; margin:-8px 0 18px; padding:clamp(30px,5vw,56px); border:1px solid #a8c9b4; border-radius:22px; background:radial-gradient(circle at 90% 15%,rgba(77,151,101,.18),transparent 34%),linear-gradient(140deg,#fff 0%,#edf6f0 100%); box-shadow:var(--shadow); }.meter-learning-hero h1 { max-width:900px; margin:8px 0 14px; font-size:clamp(42px,5.4vw,72px); line-height:1.02; }.meter-learning-hero p { max-width:820px; color:var(--ink-soft); font-size:19px; }.meter-learning-hero .back-link { display:block; margin-bottom:24px; color:var(--muted); font-size:12px; font-weight:750; }.meter-learning-hero aside { align-self:end; padding:24px; border:1px solid rgba(47,134,83,.25); border-radius:14px; background:rgba(255,255,255,.87); }.meter-learning-hero aside strong,.meter-learning-hero aside span,.meter-learning-hero aside small { display:block; }.meter-learning-hero aside strong { color:var(--green-dark); font-size:31px; }.meter-learning-hero aside span { margin:5px 0 13px; font-weight:800; }.meter-learning-hero aside small { color:var(--muted); line-height:1.55; }
.meter-learning-nav { position:sticky; z-index:5; top:72px; display:flex; gap:5px; overflow-x:auto; margin-bottom:24px; padding:7px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.95); box-shadow:0 7px 24px rgba(20,54,34,.08); backdrop-filter:blur(12px); }.meter-learning-nav a { flex:1 0 auto; padding:10px 14px; border-radius:8px; color:var(--muted); text-align:center; font-size:12px; font-weight:800; }.meter-learning-nav a:hover { background:var(--green-soft); color:var(--green-dark); }
.meter-diagram-panel,.meter-learning-section,.meter-generations,.meter-field-guide { scroll-margin-top:140px; margin-bottom:24px; }.meter-diagram-panel { padding:clamp(24px,3.5vw,38px); }.meter-diagram-panel .panel-heading p { max-width:820px; margin-bottom:0; color:var(--muted); }.meter-diagram-stage { overflow:auto; border:1px solid #b7c5bd; border-radius:14px; background:#eef4f0; }.meter-diagram-stage img { display:block; width:100%; min-width:820px; height:auto; }
.meter-zone-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:14px; }.meter-zone-grid article { padding:16px; border:1px solid var(--line); border-radius:10px; background:var(--canvas); }.meter-zone-grid strong { color:var(--green-dark); }.meter-zone-grid p { margin:6px 0 0; color:var(--muted); font-size:12px; }
.meter-learning-section { padding:clamp(12px,2vw,18px) 0; }.section-intro { margin-bottom:20px; }.section-intro h2 { margin:4px 0 8px; font-size:clamp(30px,4vw,44px); }.section-intro p { max-width:850px; color:var(--muted); }
.meter-component-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.meter-component-grid > article { display:grid; grid-template-columns:128px minmax(0,1fr); gap:18px; min-height:210px; padding:20px; border:1px solid var(--line); border-radius:13px; background:white; }.meter-component-grid article > div:last-child > span { color:var(--green); font-size:10px; font-weight:850; letter-spacing:.7px; text-transform:uppercase; }.meter-component-grid h3 { margin:4px 0 2px; font-size:22px; }.meter-component-grid article strong { color:var(--ink-soft); font-size:12px; }.meter-component-grid article p { margin:10px 0 0; color:var(--muted); font-size:13px; }
.component-visual { position:relative; align-self:center; height:145px; display:flex; justify-content:center; align-items:center; gap:4px; padding:16px; border:1px solid #c7cfca; border-radius:10px; background:linear-gradient(145deg,#f4f6f4,#dfe4e1); box-shadow:inset 0 0 0 7px #f9faf9; }.component-visual i { display:block; border:2px solid #59665f; background:#fbfcfb; box-shadow:0 3px 5px rgba(0,0,0,.08); }
.component-visual.sls i:first-child { width:64px; height:88px; border-radius:4px; background:linear-gradient(#e7eae8 0 25%,#fafbfa 25%); }.component-visual.sls i:first-child::after { content:""; position:absolute; width:12px; height:35px; left:57px; top:60px; border-radius:3px; background:#26302b; }.component-visual.sls i:not(:first-child),.component-visual.meter i:not(:first-child),.component-visual.rfz i:not(:first-child),.component-visual.apz i:not(:first-child),.component-visual.rcd i:not(:first-child),.component-visual.contactor i:not(:first-child),.component-visual.reserve i:not(:first-child) { display:none; }
.component-visual.spd i { width:20px; height:78px; border-radius:3px; background:linear-gradient(#e34c42 0 33%,#fafbfa 33%); }.component-visual.meter i:first-child { width:78px; height:108px; border-radius:7px; background:linear-gradient(#dae2dd 0 27%,#fcfdfc 27%); }.component-visual.meter i:first-child::after { content:"000123"; position:absolute; top:41px; left:41px; padding:4px; background:#9eafa6; font:700 10px monospace; }
.component-visual.rfz i:first-child,.component-visual.apz i:first-child,.component-visual.reserve i:first-child { width:84px; height:64px; border-style:dashed; background:#edf5ef; }.component-visual.rfz i:first-child::after,.component-visual.apz i:first-child::after,.component-visual.reserve i:first-child::after { position:absolute; top:62px; left:0; width:100%; color:#397454; text-align:center; font-weight:900; }.component-visual.rfz i:first-child::after { content:"RfZ"; }.component-visual.apz i:first-child::after { content:"APZ"; }.component-visual.reserve i:first-child::after { content:"frei"; color:#69776f; }
.component-visual.rcd i:first-child { width:64px; height:84px; border-radius:4px; background:linear-gradient(#dce1de 0 26%,#fbfcfb 26%); }.component-visual.rcd i:first-child::after { content:"T"; position:absolute; top:54px; left:59px; width:17px; height:17px; border-radius:2px; background:#43855a; color:white; text-align:center; font:800 11px/17px Arial; }.component-visual.mcb i { width:25px; height:81px; border-radius:3px; background:linear-gradient(#dce1de 0 21%,#fbfcfb 21%); }.component-visual.contactor i:first-child { width:68px; height:86px; border-radius:4px; background:linear-gradient(#e7a647 0 26%,#fbfcfb 26%); }.component-visual.terminal i { width:21px; height:50px; border-radius:3px; background:#d7ddd9; }.component-visual.terminal i::after { content:""; display:block; width:9px; height:9px; margin:20px auto; border-radius:50%; background:#68776f; }
.meter-generations { padding:clamp(24px,3.5vw,38px); }.meter-generation-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }.meter-generation-grid article { padding:20px; border:1px solid var(--line); border-radius:12px; background:var(--canvas); }.meter-generation-grid article > span { display:block; margin-top:15px; color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; }.meter-generation-grid h3 { margin:3px 0 8px; }.meter-generation-grid ul { padding-left:19px; color:var(--muted); font-size:13px; }.meter-generation-grid li { margin:7px 0; }.meter-generation-grid article > strong { color:var(--green-dark); font-size:12px; }
.generation-sketch { height:180px; position:relative; overflow:hidden; border:4px solid #737e78; border-radius:4px; background:#ecefed; }.generation-sketch::after { content:""; position:absolute; inset:9px; border:1px solid #a6afa9; }.generation-sketch span { position:absolute; z-index:1; display:block; }.generation-sketch .dial { width:86px; height:106px; left:50%; top:25px; transform:translateX(-50%); border:4px solid #5b655f; border-radius:8px; background:#f8f9f8; }.generation-sketch .dial::after { content:"↻"; position:absolute; inset:35px 20px; border:2px solid #66736c; border-radius:50%; text-align:center; font-size:23px; }.generation-sketch .fuse { width:38px; height:38px; bottom:14px; border:3px solid #665f4f; border-radius:50%; background:#d8d1bd; }.generation-sketch .fuse:nth-child(2){left:28%}.generation-sketch .fuse:nth-child(3){right:28%}.generation-sketch .rail { width:75%; height:20px; left:12.5%; bottom:22px; border-top:7px solid #727d77; background:repeating-linear-gradient(90deg,#f8f9f8 0 17px,#69766f 17px 19px); }.generation-sketch .display { width:82px; height:104px; left:50%; top:25px; transform:translateX(-50%); border:3px solid #56635c; border-radius:7px; background:linear-gradient(#cfd9d3 0 30%,#fafbfa 30%); }.generation-sketch .display::after { content:"000000"; position:absolute; top:14px; left:13px; font:800 11px monospace; }.generation-sketch .comms { width:72%; height:34px; left:14%; bottom:16px; border:2px solid #64806e; border-radius:3px; background:#dcebe1; }
.meter-real-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }.meter-real-gallery article { overflow:hidden; border:1px solid var(--line); border-radius:13px; background:white; }.meter-real-gallery article.featured { grid-column:span 2; grid-row:span 2; }.meter-real-gallery article > a { display:block; height:270px; overflow:hidden; background:#e7ebe8; }.meter-real-gallery article.featured > a { height:650px; }.meter-real-gallery img { width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .25s ease; }.meter-real-gallery article.featured img { object-fit:contain; }.meter-real-gallery article:hover img { transform:scale(1.025); }.meter-real-gallery article > div { padding:18px; }.meter-real-gallery h3 { margin:4px 0 8px; font-size:20px; }.meter-real-gallery p { color:var(--muted); font-size:13px; }.meter-real-gallery small { display:block; color:var(--muted); font-size:10px; line-height:1.5; }.meter-real-gallery .page-actions { margin-top:12px; }.real-photo-focus { margin:12px 0; padding:12px 12px 12px 30px; border-radius:8px; background:var(--green-soft); color:var(--green-dark); font-size:12px; }.real-photo-focus li { margin:5px 0; }
.meter-source-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:14px; }.meter-source-links a { padding:18px; border:1px solid #aac9b5; border-radius:11px; background:var(--green-soft); color:var(--green-dark); }.meter-source-links strong,.meter-source-links span { display:block; }.meter-source-links span { margin-top:5px; font-size:12px; }
.meter-field-guide { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:30px; padding:clamp(24px,3.5vw,38px); }.meter-field-guide h2 { margin:4px 0 12px; font-size:36px; }.meter-field-guide ol { padding-left:22px; }.meter-field-guide li { margin:12px 0; color:var(--muted); }.meter-field-guide aside { align-self:start; padding:22px; border-radius:12px; background:#fff5e8; }.meter-field-guide aside strong { color:#855b22; font-size:18px; }.meter-field-guide aside p { color:#715d42; font-size:13px; }

@media (max-width:1180px) { .meter-photo-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:900px) { .meter-check-hero,.meter-check-detail-hero,.grid-meter-link,.meter-learning-teaser,.meter-learning-hero,.meter-field-guide { grid-template-columns:1fr; }.meter-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.meter-feature aside { grid-template-columns:repeat(2,auto); }.meter-zone-grid,.meter-generation-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.meter-real-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }.meter-real-gallery article.featured { grid-column:span 2; }.meter-learning-teaser img { height:320px; } }
@media (max-width:640px) { .meter-check-hero,.meter-check-detail-hero,.meter-learning-hero { padding:24px 18px; }.meter-check-hero h1,.meter-check-detail-hero h1,.meter-learning-hero h1 { font-size:38px; }.meter-knowledge-layout,.meter-question-grid,.meter-result-grid,.meter-photo-grid,.meter-zone-grid,.meter-component-grid,.meter-generation-grid,.meter-real-gallery,.meter-source-links { grid-template-columns:1fr; }.meter-question-grid fieldset > div { grid-template-columns:repeat(2,minmax(0,1fr)); }.meter-check-list > a { grid-template-columns:34px 1fr auto; }.meter-check-list > a > span:not(.meter-result-mark) { display:none; }.meter-component-grid > article { grid-template-columns:94px minmax(0,1fr); padding:15px; }.component-visual { height:118px; padding:10px; }.meter-real-gallery article.featured { grid-column:span 1; grid-row:span 1; }.meter-real-gallery article.featured > a,.meter-real-gallery article > a { height:380px; }.meter-learning-nav { top:64px; }.meter-learning-teaser img { height:230px; } }

/* Finanzierung */
.finance-hero { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:36px; margin:-8px 0 18px; padding:clamp(30px,5vw,58px); border:1px solid #b6cabd; border-radius:22px; background:radial-gradient(circle at 90% 15%,rgba(47,134,83,.2),transparent 32%),linear-gradient(140deg,#fff 0%,#edf6f0 100%); box-shadow:var(--shadow); }.finance-hero::after { content:"€"; position:absolute; right:6%; top:-50px; color:rgba(38,104,62,.055); font-size:310px; font-weight:900; line-height:1; }.finance-hero > * { position:relative; z-index:1; }.finance-hero h1 { max-width:940px; margin:7px 0 14px; font-size:clamp(42px,5.5vw,72px); line-height:1.02; }.finance-hero p { max-width:820px; color:var(--ink-soft); font-size:19px; }.finance-hero aside { align-self:end; padding:24px; border:1px solid rgba(47,134,83,.24); border-radius:14px; background:rgba(255,255,255,.88); }.finance-hero aside span,.finance-hero aside strong,.finance-hero aside small { display:block; }.finance-hero aside span { color:var(--muted); font-size:11px; font-weight:800; text-transform:uppercase; }.finance-hero aside strong { margin:5px 0 12px; color:var(--green-dark); font-size:31px; }.finance-hero aside small { color:var(--muted); line-height:1.7; }
.finance-status-line { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:24px; padding:12px 16px; border:1px solid var(--line); border-radius:11px; background:white; color:var(--muted); font-size:11px; }.finance-status-line strong { color:var(--ink); margin-right:3px; }.finance-proof { display:inline-flex; width:max-content; align-items:center; padding:4px 8px; border-radius:99px; font-size:9px; font-weight:850; letter-spacing:.35px; text-transform:uppercase; }.finance-proof.confirmed { background:var(--green-soft); color:var(--green-dark); }.finance-proof.assumption { background:#fff1db; color:#8a5918; }.finance-proof.open { background:#f1f2f2; color:#66716b; }
.finance-calculator { scroll-margin-top:92px; margin-bottom:28px; padding:clamp(22px,3.5vw,38px); border:1px solid #abc7b5; border-radius:var(--radius); background:white; box-shadow:var(--shadow); }.finance-calculator .section-heading-row h2 { margin:4px 0 7px; font-size:clamp(30px,4vw,44px); }.finance-calculator .section-heading-row p { max-width:800px; color:var(--muted); }.finance-live-note { display:flex; align-items:center; gap:7px; color:var(--green-dark); font-size:11px; font-weight:800; }.finance-live-note i { width:8px; height:8px; border-radius:50%; background:var(--green); box-shadow:0 0 0 5px var(--green-soft); }
.finance-input-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.finance-input-grid fieldset { min-width:0; margin:0; padding:19px; border:1px solid var(--line); border-radius:12px; background:var(--canvas); }.finance-input-grid fieldset.marian { border-top:4px solid #75857b; }.finance-input-grid fieldset.bees { border-top:4px solid var(--green); background:#f7fbf8; }.finance-input-grid legend { padding:0 7px; color:var(--ink); font-size:13px; font-weight:850; }.finance-input-grid label { display:grid; grid-template-columns:minmax(0,1fr) minmax(110px,.65fr); gap:10px; align-items:center; margin:10px 0; color:var(--muted); font-size:12px; }.finance-input-grid label > span { display:flex; align-items:center; gap:5px; color:var(--muted); }.finance-input-grid input,.finance-input-grid select { width:100%; padding:9px 10px; border:1px solid #c8d1cb; border-radius:7px; background:white; color:var(--ink); font:inherit; font-weight:750; }.finance-input-grid fieldset > small { display:block; margin-top:12px; color:var(--muted); font-size:10px; line-height:1.5; }.finance-input-grid fieldset > small .finance-proof { margin-right:4px; }
.finance-result-callout { display:grid; grid-template-columns:auto auto minmax(260px,1fr); gap:14px 24px; align-items:center; margin:18px 0 12px; padding:18px 20px; border-radius:12px; background:linear-gradient(135deg,#173d27,#245d39); color:white; }.finance-result-callout > span { color:#bad2c3; font-size:10px; font-weight:850; text-transform:uppercase; }.finance-result-callout strong { font-size:19px; white-space:nowrap; }.finance-result-callout strong b { color:#b9e0c5; font-size:24px; }.finance-result-callout p { margin:0; color:#cee0d3; font-size:11px; line-height:1.55; }
.finance-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:11px; }.finance-table-wrap table { width:100%; min-width:720px; border-collapse:collapse; }.finance-table-wrap th,.finance-table-wrap td { padding:13px 15px; border-bottom:1px solid var(--line); text-align:right; font-size:12px; }.finance-table-wrap tr:last-child th,.finance-table-wrap tr:last-child td { border-bottom:0; }.finance-table-wrap th:first-child,.finance-table-wrap td:first-child { text-align:left; }.finance-table-wrap thead th { background:#f2f5f3; color:var(--muted); font-size:10px; text-transform:uppercase; }.finance-table-wrap tbody th { color:var(--ink-soft); font-weight:700; }.finance-comparison .result-strong { color:var(--green-dark); font-size:16px; font-weight:900; }.finance-comparison tr.highlight { background:#eef7f1; }.finance-comparison tr.highlight td { color:var(--green-dark); font-size:16px; font-weight:900; }
.finance-term-matrix { display:grid; grid-template-columns:260px minmax(0,1fr); gap:24px; align-items:start; margin-top:22px; }.finance-term-matrix h3 { margin:5px 0; font-size:25px; }.finance-term-matrix .finance-table-wrap table { min-width:650px; }.finance-disclaimer { margin:18px 0 0; }.finance-disclaimer p { margin-bottom:0; }
.finance-section,.finance-sales,.finance-documents { scroll-margin-top:92px; margin:34px 0; }.finance-provider-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }.finance-provider-grid > article { padding:22px; border:1px solid var(--line); border-radius:14px; background:white; }.finance-provider-grid > article.featured { border-color:#96bfa3; background:linear-gradient(145deg,#fff,#eff8f2); box-shadow:0 14px 35px rgba(27,68,44,.1); }.finance-provider-grid header { display:flex; gap:13px; align-items:center; min-height:68px; }.provider-mark { flex:0 0 50px; height:50px; display:grid; place-items:center; border-radius:13px; color:white; font-weight:900; }.provider-mark.marian { background:#607269; }.provider-mark.bees { background:var(--green-dark); font-size:12px; }.provider-mark.cash { background:#a16c2a; font-size:22px; }.finance-provider-grid h3 { margin:4px 0 0; font-size:22px; }.finance-provider-grid header p { margin:2px 0 0; color:var(--muted); font-size:11px; }.finance-provider-grid dl { margin:18px 0; }.finance-provider-grid dl > div { display:contents; }.finance-provider-grid dt,.finance-provider-grid dd { padding:9px 0; border-top:1px solid var(--line); font-size:11px; }.finance-provider-grid dt { float:left; clear:left; color:var(--muted); }.finance-provider-grid dd { margin-left:110px; color:var(--ink); text-align:right; font-weight:750; }.finance-provider-grid dd.open-value { color:#9a6623; }.finance-provider-grid .button { width:100%; justify-content:center; }.finance-provider-grid .muted { font-size:11px; line-height:1.55; }
.finance-sales { padding:clamp(24px,4vw,42px); border-radius:20px; background:#173d27; color:white; }.finance-sales > div:first-child p { max-width:780px; color:#c9ddcf; }.finance-sales h2 { max-width:900px; margin:5px 0 10px; font-size:clamp(31px,4vw,46px); }.finance-sales .eyebrow { color:#a9d3b5; }.finance-sales-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:26px; }.finance-sales-grid article { padding:18px; border:1px solid rgba(255,255,255,.16); border-radius:11px; background:rgba(255,255,255,.065); }.finance-sales-grid article > span { color:#9dccaa; font-size:10px; font-weight:850; }.finance-sales-grid h3 { margin:6px 0 8px; font-size:18px; }.finance-sales-grid p { color:#c9ddcf; font-size:12px; }.finance-sales blockquote { margin:22px 0 0; padding:18px 20px; border-left:4px solid #93c6a1; border-radius:0 10px 10px 0; background:rgba(255,255,255,.08); font-size:17px; line-height:1.55; }.finance-sales blockquote small { display:block; margin-top:8px; color:#a9c5b1; font-size:10px; }
.finance-open-questions { display:grid; grid-template-columns:320px minmax(0,1fr); gap:34px; margin:34px 0; }.finance-open-questions h2 { margin:5px 0 10px; font-size:31px; }.finance-open-questions p { color:var(--muted); }.finance-open-questions ol { columns:2; column-gap:42px; margin:0; padding-left:24px; }.finance-open-questions li { break-inside:avoid; margin:0 0 12px; padding-left:5px; color:var(--ink-soft); font-size:12px; }.finance-knowledge { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.7fr); gap:28px; margin:34px 0; }.finance-knowledge h2 { margin:5px 0 9px; }.finance-knowledge p { color:var(--muted); }.finance-source-list { display:grid; gap:7px; }.finance-source-list a { padding:12px; border:1px solid var(--line); border-radius:8px; background:var(--canvas); color:var(--ink); }.finance-source-list strong,.finance-source-list small { display:block; }.finance-source-list strong { font-size:11px; }.finance-source-list small { margin-top:3px; color:var(--muted); font-size:9px; }
.finance-feature { background:linear-gradient(135deg,#153d27,#2b7750); }.finance-feature .eyebrow { color:#b4ddc0; }.finance-feature p,.finance-feature aside span { color:#d5e8da; }.finance-feature aside b { color:#c6ebd0; }.finance-feature aside { grid-template-columns:repeat(3,auto); }

@media (max-width:1050px) { .finance-input-grid,.finance-provider-grid { grid-template-columns:1fr; }.finance-sales-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.finance-input-grid label { grid-template-columns:minmax(0,1fr) 180px; } }
@media (max-width:820px) { .finance-hero,.finance-term-matrix,.finance-open-questions,.finance-knowledge { grid-template-columns:1fr; }.finance-hero aside { max-width:350px; }.finance-result-callout { grid-template-columns:1fr; gap:6px; }.finance-open-questions ol { columns:1; }.finance-feature aside { grid-template-columns:repeat(2,auto); } }
@media (max-width:580px) { .finance-hero { padding:25px 18px; }.finance-hero h1 { font-size:38px; }.finance-calculator { padding:20px 14px; }.finance-input-grid label { grid-template-columns:1fr; }.finance-sales-grid { grid-template-columns:1fr; }.finance-sales { padding:24px 18px; } }

/* PV · Projekte */
.pv-projects-hero { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:38px; margin:-8px 0 18px; padding:clamp(30px,5vw,58px); border:1px solid #a8c5b1; border-radius:22px; background:radial-gradient(circle at 87% 9%,rgba(238,146,50,.2),transparent 30%),linear-gradient(140deg,#fff 0%,#edf7f0 100%); box-shadow:var(--shadow); }.pv-projects-hero::after { content:"PV"; position:absolute; right:3%; bottom:-72px; color:rgba(38,104,62,.055); font-size:240px; font-weight:950; line-height:1; }.pv-projects-hero > * { position:relative; z-index:1; }.pv-projects-hero h1 { margin:5px 0 13px; font-size:clamp(48px,6vw,78px); line-height:1; }.pv-projects-hero > div > p { max-width:830px; color:var(--ink-soft); font-size:19px; }.pv-projects-hero aside { align-self:end; padding:23px; border:1px solid rgba(47,134,83,.24); border-radius:14px; background:rgba(255,255,255,.88); }.pv-projects-hero aside strong,.pv-projects-hero aside small { display:block; }.pv-projects-hero aside strong { margin:5px 0 10px; color:var(--green-dark); font-size:28px; }.pv-projects-hero aside small { color:var(--muted); line-height:1.7; }
.pv-project-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:16px; }.pv-project-metrics article { padding:18px; border:1px solid var(--line); border-radius:12px; background:white; }.pv-project-metrics article.attention { border-color:#e7c594; background:#fffaf2; }.pv-project-metrics span,.pv-project-metrics small,.pv-project-metrics strong { display:block; }.pv-project-metrics span { color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; }.pv-project-metrics strong { margin:3px 0; color:var(--green-dark); font-size:30px; }.pv-project-metrics small { color:var(--muted); font-size:10px; }
.project-filter-bar { display:flex; gap:10px; align-items:end; margin:16px 0 28px; padding:14px; border:1px solid var(--line); border-radius:12px; background:white; }.project-filter-bar label { flex:1; color:var(--muted); font-size:10px; font-weight:800; }.project-filter-bar label:nth-child(2) { max-width:230px; }.project-filter-bar input,.project-filter-bar select { width:100%; margin-top:5px; padding:10px; border:1px solid #c7d0ca; border-radius:8px; background:white; }
.pv-project-area { scroll-margin-top:90px; margin:28px 0 36px; }.pv-project-area .section-heading-row h2 { margin:4px 0 6px; font-size:38px; }.pv-project-area .section-heading-row p { color:var(--muted); }.pv-project-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.pv-project-card { overflow:hidden; display:grid; grid-template-columns:210px minmax(0,1fr); min-height:270px; border:1px solid var(--line); border-radius:15px; background:white; color:var(--ink); box-shadow:0 8px 28px rgba(25,60,38,.06); transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }.pv-project-card:hover { transform:translateY(-3px); border-color:#91b59d; box-shadow:0 15px 36px rgba(25,60,38,.12); }.pv-project-cover { position:relative; min-height:270px; overflow:hidden; background:linear-gradient(145deg,#163e27,#397b50); }.pv-project-cover img { width:100%; height:100%; object-fit:cover; }.pv-project-cover > span { position:absolute; inset:0; display:grid; place-content:center; color:#d4e8da; text-align:center; }.pv-project-cover > span b { font-size:60px; line-height:1; }.pv-project-cover > span small { margin-top:6px; font-size:10px; text-transform:uppercase; }.pv-project-cover em { position:absolute; left:12px; top:12px; padding:5px 8px; border-radius:99px; background:rgba(14,44,27,.82); color:white; font-size:9px; font-style:normal; font-weight:850; }.pv-project-card-body { display:flex; flex-direction:column; padding:21px; }.project-card-meta { display:flex; justify-content:space-between; gap:8px; align-items:center; color:var(--muted); font-size:10px; }.pv-project-card h3 { margin:12px 0 7px; font-size:25px; }.pv-project-card p { margin:0 0 12px; color:var(--muted); font-size:12px; }.pv-project-card p strong { color:var(--ink-soft); }.pv-project-card address { color:var(--ink-soft); font-size:13px; font-style:normal; line-height:1.6; }.pv-project-card footer { display:flex; justify-content:space-between; gap:12px; margin-top:auto; padding-top:16px; border-top:1px solid var(--line); color:var(--muted); font-size:10px; }.pv-project-card footer b { color:var(--green-dark); }
.pv-project-principle { display:grid; grid-template-columns:330px minmax(0,1fr); gap:34px; margin:36px 0; padding:clamp(24px,4vw,40px); border-radius:18px; background:#173d27; color:white; }.pv-project-principle h2 { margin:5px 0 9px; font-size:36px; }.pv-project-principle p { color:#cbded1; }.pv-project-principle .eyebrow { color:#a9d1b4; }.pv-project-principle ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin:0; padding:0; list-style:none; counter-reset:steps; }.pv-project-principle li { position:relative; padding:17px 17px 17px 52px; border:1px solid rgba(255,255,255,.13); border-radius:10px; background:rgba(255,255,255,.06); counter-increment:steps; }.pv-project-principle li::before { content:counter(steps,decimal-leading-zero); position:absolute; left:16px; top:18px; color:#94c6a1; font-size:10px; font-weight:900; }.pv-project-principle li strong,.pv-project-principle li span { display:block; }.pv-project-principle li span { margin-top:4px; color:#c6d9cb; font-size:10px; }
.pv-project-form .form-section { scroll-margin-top:90px; }.pv-project-form textarea { min-height:110px; }.pv-project-form .section-intro > span { background:var(--green-soft); color:var(--green-dark); }
.pv-project-detail-hero { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:34px; min-height:390px; margin:-8px 0 14px; padding:clamp(30px,5vw,56px); border:1px solid #aac4b2; border-radius:22px; background:linear-gradient(140deg,#fff,#eef7f1); box-shadow:var(--shadow); }.pv-project-detail-hero.has-cover::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,29,17,.94) 0%,rgba(10,38,22,.82) 55%,rgba(10,35,21,.2) 100%); }.pv-project-detail-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }.pv-project-detail-hero > div,.pv-project-detail-hero > aside { position:relative; z-index:2; }.pv-project-detail-hero.has-cover,.pv-project-detail-hero.has-cover h1,.pv-project-detail-hero.has-cover .back-link { color:white; }.pv-project-detail-hero .back-link { display:block; margin-bottom:25px; color:var(--muted); font-size:11px; font-weight:800; }.pv-project-detail-hero h1 { max-width:900px; margin:8px 0 14px; font-size:clamp(42px,5.5vw,70px); line-height:1.02; }.pv-project-detail-hero > div > p { max-width:820px; color:var(--ink-soft); font-size:17px; }.pv-project-detail-hero.has-cover > div > p { color:#d7e6dc; }.pv-project-detail-hero aside { align-self:end; padding:22px; border:1px solid rgba(47,134,83,.24); border-radius:13px; background:rgba(255,255,255,.9); color:var(--ink); }.pv-project-detail-hero aside strong,.pv-project-detail-hero aside small,.pv-project-detail-hero aside b { display:block; }.pv-project-detail-hero aside strong { margin:6px 0 2px; font-size:21px; }.pv-project-detail-hero aside small { color:var(--muted); }.address-state { width:max-content; margin-top:13px; padding:5px 8px; border-radius:99px; font-size:9px; text-transform:uppercase; }.address-state.confirmed { background:var(--green-soft); color:var(--green-dark); }.address-state.candidate,.status-pill.candidate { background:#e6f0f8; color:#245f7d; }.address-state.open { background:#fff0d8; color:#8b5b1b; }
.pv-project-detail-hero + .project-tabs { position:sticky; z-index:5; top:72px; margin-bottom:22px; padding:7px; border:1px solid var(--line); border-radius:11px; background:rgba(255,255,255,.95); box-shadow:0 7px 24px rgba(20,54,34,.08); backdrop-filter:blur(12px); }.pv-project-overview-grid { scroll-margin-top:140px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:30px; }.pv-project-overview-grid .panel { min-height:300px; }.pv-project-overview-grid h2 { margin:5px 0 12px; font-size:29px; }.crm-reference-card p { color:var(--ink-soft); line-height:1.65; }.crm-reference-card dl { display:grid; grid-template-columns:100px 1fr; gap:7px 12px; margin:17px 0; font-size:11px; }.crm-reference-card dt { color:var(--muted); }.crm-reference-card dd { margin:0; text-align:right; font-weight:750; }.crm-reference-card > small { display:block; margin-top:13px; color:var(--muted); font-size:9px; }.project-location-card address { margin:20px 0; color:var(--ink-soft); font-size:17px; font-style:normal; line-height:1.65; }.location-status { width:max-content; padding:8px 11px; border-radius:8px; font-size:10px; font-weight:800; }.location-status.good { background:var(--green-soft); color:var(--green-dark); }.location-status.candidate { background:#e6f0f8; color:#245f7d; }.location-status.attention { background:#fff2dc; color:#8a5a1d; }
.pv-project-plan-section,.pv-project-media-section,.pv-project-history-section { scroll-margin-top:140px; margin:34px 0; }.pv-project-plan-section .section-heading-row h2,.pv-project-media-section .section-heading-row h2,.pv-project-history-section .section-heading-row h2 { margin:4px 0; font-size:37px; }.project-phase-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }.project-phase-grid article { padding:18px; border:1px solid var(--line); border-top:4px solid #b5bdb8; border-radius:11px; background:white; }.project-phase-grid article[class*="fotos-vorhanden"] { border-top-color:#d99332; }.project-phase-grid article[class*="in-prufung"] { border-top-color:#3e7d9c; }.project-phase-grid article[class*="geklart"] { border-top-color:var(--green); }.project-phase-grid article > span { color:var(--muted); font-size:9px; font-weight:850; text-transform:uppercase; }.project-phase-grid h3 { margin:6px 0 5px; font-size:18px; }.project-phase-grid p { color:var(--muted); font-size:10px; }.project-notes-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:14px; }.project-notes-grid article { min-height:210px; padding:21px; border:1px solid var(--line); border-radius:12px; background:white; }.project-notes-grid article.questions { border-color:#e5c797; background:#fffaf2; }.project-notes-grid article.next { border-color:#9fc4aa; background:#f4faf6; }.project-notes-grid h3 { margin:4px 0 11px; font-size:22px; }.project-notes-grid p,.project-notes-grid li { color:var(--muted); font-size:12px; }.project-notes-grid ul { padding-left:18px; }
.pv-project-media-section { padding:clamp(22px,3.5vw,36px); border:1px solid #adc8b5; border-radius:16px; background:#f8fbf9; }.pv-project-media-section .section-heading-row p { max-width:760px; color:var(--muted); }.project-media-upload { display:grid; grid-template-columns:190px minmax(260px,1.2fr) minmax(220px,1fr); gap:10px; align-items:end; margin:18px 0 28px; padding:18px; border:1px solid var(--line); border-radius:12px; background:white; }.project-media-upload label { color:var(--muted); font-size:10px; font-weight:800; }.project-media-upload input,.project-media-upload select { width:100%; margin-top:5px; padding:10px; border:1px solid #c6d0c9; border-radius:8px; background:white; }.project-media-upload .files input { padding:7px; }.project-media-upload .files small { display:block; margin-top:4px; font-size:8px; font-weight:500; }.project-media-upload .check { grid-column:1 / span 2; display:flex; gap:8px; align-items:center; }.project-media-upload .check input { width:16px; margin:0; }.project-media-upload .button { grid-column:3; grid-row:2; }.project-media-group { margin-top:26px; }.project-media-group > header { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }.project-media-group h3 { margin:0; font-size:23px; }.project-media-group header span { color:var(--muted); font-size:10px; }.project-media-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }.project-media-grid article { position:relative; overflow:hidden; border:1px solid var(--line); border-radius:11px; background:white; }.project-media-grid article.is-cover { border:2px solid var(--green); }.project-media-grid article > a { display:block; color:var(--ink); }.project-media-grid img,.project-file-placeholder { width:100%; height:190px; display:grid; place-items:center; object-fit:cover; background:#e6ece8; color:var(--green-dark); font-size:28px; font-weight:900; }.project-media-grid a > div { padding:12px; }.project-media-grid strong,.project-media-grid small { display:block; }.project-media-grid strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }.project-media-grid small { margin-top:4px; color:var(--muted); font-size:9px; }.project-media-grid article > em { position:absolute; left:8px; top:8px; padding:4px 7px; border-radius:99px; background:var(--green-dark); color:white; font-size:8px; font-style:normal; font-weight:850; }.project-media-grid article > form { padding:0 12px 10px; }.project-media-grid article > form button { font-size:9px; }.media-empty-state { padding:55px 20px; border:2px dashed #bdccc2; border-radius:13px; text-align:center; }.media-empty-state > span { color:#9ab4a2; font-size:48px; }.media-empty-state h3 { margin:8px 0 5px; }.media-empty-state p { color:var(--muted); }
.project-history-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:28px; align-items:start; }.project-timeline { position:relative; min-width:0; }.project-timeline::before { content:""; position:absolute; left:8px; top:8px; bottom:8px; width:2px; background:#c8d8cd; }.project-timeline article { position:relative; display:grid; grid-template-columns:18px minmax(0,1fr); gap:15px; min-width:0; margin-bottom:12px; }.project-timeline i { z-index:1; width:18px; height:18px; margin-top:18px; border:4px solid white; border-radius:50%; background:var(--green); box-shadow:0 0 0 1px #9dc3a8; }.project-timeline article > div { min-width:0; padding:18px; border:1px solid var(--line); border-radius:11px; background:white; }.project-timeline span { color:var(--green-dark); font-size:9px; font-weight:850; text-transform:uppercase; }.project-timeline h3 { margin:5px 0 7px; }.project-timeline p,.project-timeline li { overflow-wrap:anywhere; word-break:break-word; }.project-timeline p { color:var(--muted); font-size:12px; }.project-timeline small { color:var(--muted); font-size:9px; }.project-update-form { position:sticky; top:140px; }.project-update-form h3 { margin:5px 0 13px; font-size:24px; }.project-update-form label { display:block; margin:10px 0; color:var(--muted); font-size:10px; font-weight:800; }.project-update-form input,.project-update-form select,.project-update-form textarea { width:100%; margin-top:5px; padding:10px; border:1px solid #c7d0ca; border-radius:8px; }.project-update-form .button { width:100%; justify-content:center; }.pv-projects-feature { background:linear-gradient(135deg,#142f20,#2c6743); }.pv-projects-feature .eyebrow { color:#b6d8c0; }.pv-projects-feature p,.pv-projects-feature aside span { color:#d2e5d7; }.pv-projects-feature aside { grid-template-columns:repeat(3,auto); }.pv-projects-feature aside b { color:#c9e9d2; }.type-badge.pv_project { background:var(--green-soft); color:var(--green-dark); }
.project-gps { margin-top:18px; padding-top:15px; border-top:1px solid var(--line); display:grid; gap:5px; }.project-gps span { color:var(--green-dark); font-size:11px; font-weight:850; }.project-gps small { color:var(--muted); font-size:10px; line-height:1.45; }.project-gps code { width:max-content; max-width:100%; padding:4px 6px; border-radius:5px; background:#edf2ef; color:var(--ink-soft); font-size:9px; }.project-gps > div { display:flex; flex-wrap:wrap; gap:7px 12px; margin-top:4px; }.project-gps a { color:var(--green); font-size:10px; font-weight:800; }
.grounding-callout { display:flex; justify-content:space-between; gap:20px; align-items:center; margin:14px 0 10px; padding:18px 20px; border:1px solid #d6bd8e; border-left:5px solid #c68127; border-radius:12px; background:#fff8eb; }.grounding-callout h3 { margin:3px 0 4px; font-size:23px; }.grounding-callout p { margin:0; color:var(--muted); font-size:11px; }.grounding-callout > strong { flex:0 0 44px; height:44px; display:grid; place-items:center; border-radius:50%; background:#c68127; color:white; font-size:24px; }.grounding-callout.status-vorhanden { border-color:#9bc3a6; border-left-color:var(--green); background:#f1f8f3; }.grounding-callout.status-vorhanden > strong { background:var(--green); }
.pv-checklist-panel,.project-notes-details { scroll-margin-top:140px; margin-top:10px; border:1px solid var(--line); border-radius:12px; background:white; }.pv-checklist-panel > summary,.project-notes-details > summary { cursor:pointer; display:flex; justify-content:space-between; gap:18px; align-items:center; padding:16px 18px; list-style:none; }.pv-checklist-panel > summary::-webkit-details-marker,.project-notes-details > summary::-webkit-details-marker { display:none; }.pv-checklist-panel > summary span,.project-notes-details > summary span { display:grid; gap:3px; }.pv-checklist-panel > summary b,.project-notes-details > summary b { font-size:15px; }.pv-checklist-panel > summary small,.project-notes-details > summary small { color:var(--muted); font-size:9px; }.pv-checklist-panel > summary em,.project-notes-details > summary em { color:var(--green-dark); font-size:9px; font-style:normal; font-weight:800; }.pv-checklist-panel[open] > summary,.project-notes-details[open] > summary { border-bottom:1px solid var(--line); }.pv-checklist-body { padding:16px 18px 18px; }.pv-checklist-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-bottom:14px; }.pv-checklist-grid label { display:grid; gap:6px; padding:12px; border:1px solid var(--line); border-radius:9px; background:var(--canvas); }.pv-checklist-grid label > span { min-height:28px; color:var(--ink-soft); font-size:10px; font-weight:800; }.pv-checklist-grid select,.pv-checklist-grid input { width:100%; padding:8px; border:1px solid #c7d0ca; border-radius:7px; background:white; color:var(--ink); font-size:10px; }.check-status { width:max-content; padding:4px 7px; border-radius:99px; background:#eef1ef; font-size:9px; }.check-status.status-vorhanden,.check-status.status-erledigt { background:var(--green-soft); color:var(--green-dark); }.check-status.status-erforderlich { background:#fff0d8; color:#8b5b1b; }.pv-checklist-grid label > small { color:var(--muted); font-size:9px; }.project-notes-details .project-notes-grid { margin:0; padding:12px; }
.pv-roof-estimator-section { scroll-margin-top:140px; margin:38px 0; padding:clamp(22px,3.5vw,38px); border:1px solid #a9c5b2; border-radius:18px; background:linear-gradient(145deg,#f7fbf8,#edf5f0); }.pv-roof-estimator-section .section-heading-row h2 { margin:4px 0 7px; font-size:37px; }.pv-roof-estimator-section .section-heading-row p { max-width:850px; color:var(--muted); }.pv-roof-estimator-section .section-heading-row > strong { color:var(--green-dark); font-size:11px; }.roof-method-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:18px 0 12px; }.roof-method-grid article { position:relative; min-height:145px; padding:18px 18px 16px 50px; border:1px solid var(--line); border-radius:11px; background:white; }.roof-method-grid article > span { position:absolute; left:16px; top:18px; width:25px; height:25px; display:grid; place-items:center; border-radius:50%; background:var(--green-soft); color:var(--green-dark); font-size:10px; font-weight:900; }.roof-method-grid h3 { margin:1px 0 7px; font-size:18px; }.roof-method-grid p { margin:0; color:var(--muted); font-size:10px; }.roof-source-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0 0 20px; }.roof-source-links a { display:grid; gap:3px; padding:12px; border:1px solid #cddbd1; border-radius:9px; background:rgba(255,255,255,.72); }.roof-source-links strong { color:var(--green-dark); font-size:10px; }.roof-source-links span { color:var(--muted); font-size:9px; line-height:1.4; }.roof-estimate-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:22px 0; }.roof-estimate-card { padding:20px; border:1px solid #a9c3b1; border-radius:13px; background:white; box-shadow:0 8px 28px rgba(15,58,34,.05); }.roof-estimate-card > header { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; }.roof-estimate-card header > div { display:flex; gap:7px; align-items:center; }.roof-estimate-card header small { color:var(--muted); font-size:9px; }.roof-estimate-card header > strong { color:var(--muted); font-size:9px; }.roof-estimate-card h3 { margin:13px 0; font-size:22px; }.roof-estimate-result { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-bottom:15px; }.roof-estimate-result > div { padding:12px; border-radius:9px; background:var(--green-soft); }.roof-estimate-result strong,.roof-estimate-result span { display:block; }.roof-estimate-result strong { color:var(--green-dark); font-size:23px; }.roof-estimate-result span { color:var(--muted); font-size:8px; text-transform:uppercase; }.roof-estimate-card dl { display:grid; gap:5px; margin:0; }.roof-estimate-card dl > div { display:flex; justify-content:space-between; gap:15px; padding-bottom:5px; border-bottom:1px solid #edf0ed; font-size:10px; }.roof-estimate-card dt { color:var(--muted); }.roof-estimate-card dd { margin:0; text-align:right; font-weight:750; }.roof-source-note,.roof-estimate-note { margin:13px 0 0; padding:11px; border-radius:8px; background:#f2f5f3; color:var(--muted); font-size:9px; }.roof-estimate-note { background:#fff7eb; }.roof-warning-list { margin:12px 0; padding-left:17px; color:#8a5a1d; font-size:9px; }.roof-estimate-card > footer { display:flex; justify-content:space-between; gap:14px; align-items:center; margin-top:12px; padding-top:10px; border-top:1px solid var(--line); }.roof-estimate-card footer small { color:var(--muted); font-size:8px; }.roof-estimator-panel { margin-top:18px; overflow:hidden; border:1px solid #9dbda6; border-radius:13px; background:white; }.roof-estimator-panel > summary { display:flex; justify-content:space-between; gap:18px; align-items:center; padding:17px 19px; list-style:none; }.roof-estimator-panel > summary::-webkit-details-marker { display:none; }.roof-estimator-panel summary span { display:grid; }.roof-estimator-panel summary b { font-size:15px; }.roof-estimator-panel summary small,.roof-estimator-panel summary em { color:var(--muted); font-size:9px; }.roof-estimator-panel summary em { color:var(--green-dark); font-style:normal; font-weight:800; }.roof-estimator-panel[open] > summary { border-bottom:1px solid var(--line); }.roof-estimator-panel > form { padding:18px; }.roof-form-grid { display:grid; grid-template-columns:2fr 1.3fr 1fr 1fr; gap:8px; }.roof-form-grid label,.roof-input-groups label,.roof-form-notes label { display:grid; gap:4px; color:var(--muted); font-size:9px; font-weight:800; }.roof-form-grid input,.roof-form-grid select,.roof-input-groups input,.roof-form-notes textarea { width:100%; padding:9px; border:1px solid #c6d1c9; border-radius:7px; background:white; color:var(--ink); }.roof-input-groups { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin:12px 0; }.roof-input-groups fieldset { min-width:0; margin:0; padding:14px; border:1px solid var(--line); border-radius:10px; background:var(--canvas); }.roof-input-groups legend { padding:0 5px; color:var(--green-dark); font-size:10px; font-weight:850; }.roof-input-groups label { position:relative; margin-bottom:8px; }.roof-input-groups label > span { position:absolute; right:8px; bottom:9px; color:#879087; font-size:8px; }.roof-input-groups input { padding-right:48px; }.roof-or { margin:7px 0; color:#9aa29d; font-size:8px; font-weight:850; text-align:center; text-transform:uppercase; }.roof-live-result { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; margin:12px 0; }.roof-live-result article { padding:12px; border:1px solid var(--line); border-radius:9px; background:white; }.roof-live-result article.primary { border-color:#79aa87; background:var(--green-soft); }.roof-live-result span,.roof-live-result strong,.roof-live-result small { display:block; }.roof-live-result span { color:var(--muted); font-size:8px; text-transform:uppercase; }.roof-live-result strong { margin-top:4px; color:var(--green-dark); font-size:15px; }.roof-live-result small { margin-top:3px; color:var(--muted); font-size:8px; }.roof-form-notes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }.roof-form-notes textarea { resize:vertical; }.roof-estimator-submit { display:flex; justify-content:space-between; gap:24px; align-items:center; margin-top:12px; padding:14px; border-radius:9px; background:#fff7e9; }.roof-estimator-submit p { max-width:720px; margin:0; color:#745228; font-size:9px; }.roof-estimator-submit .button { flex:0 0 auto; }

@media (max-width:1180px) { .pv-project-card { grid-template-columns:160px minmax(0,1fr); }.project-media-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.project-media-upload { grid-template-columns:repeat(2,minmax(0,1fr)); }.project-media-upload .button { grid-column:auto; grid-row:auto; }.project-media-upload .check { grid-column:auto; }.roof-source-links { grid-template-columns:repeat(2,minmax(0,1fr)); }.roof-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.roof-live-result { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:900px) { .pv-projects-hero,.pv-project-detail-hero,.pv-project-principle,.project-history-layout { grid-template-columns:1fr; }.pv-project-metrics,.project-phase-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.pv-project-card-grid { grid-template-columns:1fr; }.pv-project-overview-grid { grid-template-columns:1fr; }.project-update-form { position:static; }.project-media-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.pv-projects-feature aside { grid-template-columns:repeat(2,auto); }.pv-checklist-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.roof-method-grid,.roof-input-groups { grid-template-columns:1fr; }.roof-estimate-grid { grid-template-columns:1fr; } }
@media (max-width:620px) { .pv-projects-hero,.pv-project-detail-hero { padding:24px 18px; }.pv-projects-hero h1,.pv-project-detail-hero h1 { font-size:39px; }.pv-project-metrics,.project-phase-grid,.project-notes-grid,.project-media-grid,.project-media-upload,.pv-project-principle ol,.pv-checklist-grid,.roof-source-links,.roof-form-grid,.roof-live-result,.roof-form-notes { grid-template-columns:1fr; }.project-filter-bar { align-items:stretch; flex-direction:column; }.project-filter-bar label:nth-child(2) { max-width:none; }.pv-project-card { grid-template-columns:1fr; }.pv-project-cover { min-height:210px; }.pv-project-card-body { min-height:260px; }.pv-project-principle { padding:24px 18px; }.project-media-upload .check,.project-media-upload .button { grid-column:1; }.project-media-grid img,.project-file-placeholder { height:250px; }.pv-project-detail-hero + .project-tabs { top:64px; }.pv-project-media-section,.pv-roof-estimator-section { padding:18px 12px; }.grounding-callout { align-items:flex-start; padding:16px; }.grounding-callout h3 { font-size:20px; }.pv-checklist-panel > summary,.project-notes-details > summary { align-items:flex-start; }.pv-checklist-panel > summary em,.project-notes-details > summary em { display:none; }.roof-estimate-result { grid-template-columns:1fr; }.roof-estimator-submit { align-items:stretch; flex-direction:column; }.roof-estimator-submit .button { width:100%; } }

.roof-photo-plan { margin:15px 0; padding:13px; border:1px solid #d4e0d7; border-radius:10px; background:#f8faf8; }
.roof-photo-plan figcaption { display:flex; justify-content:space-between; gap:12px; align-items:baseline; margin-bottom:9px; }
.roof-photo-plan figcaption span { color:var(--green-dark); font-size:10px; font-weight:850; }
.roof-photo-plan figcaption small { color:var(--muted); font-size:8px; }
.roof-photo-stage { position:relative; overflow:hidden; border-radius:7px; background:#dce5df; }
.roof-photo-stage img { display:block; width:100%; height:auto; }
.roof-photo-stage svg { position:absolute; inset:0; width:100%; height:100%; }
.roof-photo-area { fill:rgba(240,171,53,.14); stroke:#ffbf4c; stroke-width:22; stroke-dasharray:42 25; stroke-linejoin:round; }
.roof-photo-module { fill:rgba(18,73,45,.82); stroke:rgba(255,255,255,.9); stroke-width:9; }
.roof-photo-legend { display:flex; flex-wrap:wrap; gap:7px 13px; align-items:center; margin-top:8px; color:var(--muted); font-size:8px; }
.roof-photo-legend span { display:flex; gap:5px; align-items:center; }
.roof-photo-legend i { width:13px; height:9px; display:inline-block; border-radius:2px; }
.roof-photo-legend i.area { border:2px dashed #d99121; background:#fff1d3; }
.roof-photo-legend i.module { background:#245f40; }
.roof-photo-legend em { margin-left:auto; color:#8b5c21; font-style:normal; font-weight:800; }
.roof-photo-plan p { margin:9px 0 5px; color:#435449; font-size:9px; line-height:1.5; }
.roof-photo-plan > a { color:var(--green-dark); font-size:8px; font-weight:800; }
@media (max-width:620px) { .roof-photo-plan figcaption { align-items:flex-start; flex-direction:column; gap:2px; }.roof-photo-legend em { width:100%; margin-left:0; } }

.roof-photo-reference { stroke:#f8f5df; stroke-width:24; stroke-linecap:round; filter:drop-shadow(0 2px 3px rgba(18,73,45,.75)); }
.roof-photo-reference-point,.roof-photo-pending { fill:#f1b83f; stroke:white; stroke-width:12; }
.roof-photo-obstacle { fill:rgba(157,43,43,.28); stroke:#cf4949; stroke-width:18; stroke-dasharray:34 20; }
.roof-photo-legend i.reference { height:3px; background:#c28a20; }
.roof-photo-editor { margin:13px 0; overflow:hidden; border:1px solid #a8c4b0; border-radius:11px; background:#f8fbf9; scroll-margin-top:145px; }
.roof-photo-editor > summary { display:flex; justify-content:space-between; gap:16px; align-items:center; padding:13px 15px; list-style:none; cursor:pointer; }
.roof-photo-editor > summary::-webkit-details-marker { display:none; }
.roof-photo-editor summary span { display:grid; gap:2px; }
.roof-photo-editor summary b { color:var(--green-dark); font-size:12px; }
.roof-photo-editor summary small,.roof-photo-editor summary em { color:var(--muted); font-size:8px; }
.roof-photo-editor summary em { color:var(--green-dark); font-style:normal; font-weight:800; }
.roof-photo-editor[open] > summary { border-bottom:1px solid var(--line); }
.roof-photo-editor > form { padding:14px; }
.roof-photo-editor-fields { display:grid; grid-template-columns:2fr 1fr .75fr 1.4fr 1fr; gap:7px; margin-bottom:10px; }
.roof-photo-editor-fields label,.roof-photo-editor-notes { position:relative; display:grid; gap:4px; color:var(--muted); font-size:8px; font-weight:800; }
.roof-photo-editor-fields input,.roof-photo-editor-fields select,.roof-photo-editor-notes textarea { width:100%; padding:8px; border:1px solid #c6d1c9; border-radius:7px; background:white; color:var(--ink); }
.roof-photo-editor-fields label > span { position:absolute; right:8px; bottom:8px; color:#879087; }
.roof-photo-editor-fields label:nth-child(2) input,.roof-photo-editor-fields label:nth-child(3) input { padding-right:28px; }
.roof-photo-editor-toolbar { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-bottom:9px; }
.roof-photo-editor-toolbar .button { min-height:33px; padding:7px 10px; font-size:8px; }
.roof-photo-editor-toolbar .button.is-active { border-color:var(--green-dark); background:var(--green-dark); color:white; }
.roof-photo-editor-stage { position:relative; overflow:hidden; border:2px solid #789f84; border-radius:8px; background:#dce5df; touch-action:none; }
.roof-photo-editor-stage img { display:block; width:100%; height:auto; pointer-events:none; user-select:none; }
.roof-photo-editor-stage svg { position:absolute; inset:0; width:100%; height:100%; cursor:crosshair; }
.roof-photo-editor-stage .is-draggable { cursor:grab; }
.roof-photo-editor-stage .is-draggable:active { cursor:grabbing; }
.roof-photo-editor-status { margin:7px 0 10px; color:var(--green-dark); font-size:8px; font-weight:750; }
.roof-photo-editor-notes textarea { resize:vertical; }
.roof-photo-editor-save { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-top:10px; padding:11px; border-radius:8px; background:#fff7e9; }
.roof-photo-editor-save p { max-width:620px; margin:0; color:#745228; font-size:8px; }

.pv-project-cost-section { scroll-margin-top:140px; margin:38px 0; padding:clamp(22px,3.5vw,38px); border:1px solid #c6d9cb; border-radius:18px; background:#f7faf8; }
.pv-project-cost-section .section-heading-row h2 { margin:4px 0 7px; font-size:37px; }
.pv-project-cost-section .section-heading-row p { max-width:800px; color:var(--muted); }
.pv-project-cost-headline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:19px 0 10px; }
.pv-project-cost-headline > div { padding:14px; border:1px solid var(--line); border-radius:10px; background:white; }
.pv-project-cost-headline > div.primary { border-color:#81aa8c; background:var(--green-soft); }
.pv-project-cost-headline span,.pv-project-cost-headline strong,.pv-project-cost-headline small { display:block; }
.pv-project-cost-headline span { color:var(--muted); font-size:8px; text-transform:uppercase; }
.pv-project-cost-headline strong { margin:4px 0; color:var(--green-dark); font-size:24px; }
.pv-project-cost-headline small { color:var(--muted); font-size:8px; }
.pv-project-cost-compare { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.pv-project-cost-compare article { padding:18px; border:1px solid var(--line); border-radius:11px; background:white; }
.pv-project-cost-compare article.result { border-color:#79aa87; background:#f0f8f2; }
.pv-project-cost-compare h3 { min-height:42px; margin:5px 0 8px; font-size:17px; }
.pv-project-cost-compare article > strong { display:block; margin-bottom:13px; color:var(--green-dark); font-size:26px; }
.pv-project-cost-compare dl { display:grid; gap:7px; margin:0; }
.pv-project-cost-compare dl div { display:flex; justify-content:space-between; gap:10px; padding-bottom:6px; border-bottom:1px solid #edf0ed; font-size:8px; }
.pv-project-cost-compare dd { margin:0; text-align:right; font-weight:800; }
.pv-project-cost-compare .positive { color:var(--green-dark); }
.pv-project-cost-note { margin:10px 0 0; padding:11px; border-radius:8px; background:#fff7e9; color:#745228; font-size:8px; }
.pv-cost-models { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.45fr); gap:10px; align-items:start; }
.pv-cost-model-card { overflow:hidden; border:1px solid var(--line); border-radius:12px; background:white; }
.pv-cost-model-card > header { padding:20px; border-bottom:1px solid var(--line); background:#f6f8f6; }
.pv-cost-model-card.own > header { background:var(--green-soft); }
.pv-cost-model-card h3 { margin:5px 0 7px; font-size:21px; }
.pv-cost-model-card header > strong { color:var(--green-dark); font-size:29px; }
.pv-cost-model-card > p { margin:0; padding:16px 20px; color:var(--muted); font-size:9px; line-height:1.55; }
.pv-cost-row { display:flex; justify-content:space-between; gap:16px; align-items:center; margin:0 20px; padding:13px 0; border-bottom:1px solid #edf0ed; font-size:10px; }
.pv-cost-row strong { flex:0 0 auto; text-align:right; }
.pv-cost-row.highlight { color:var(--green-dark); }
.pv-cost-row.total { margin-top:3px; border-top:2px solid #9cb5a4; border-bottom:0; color:var(--green-dark); font-size:12px; }
.pv-cost-row.missing { margin:0; padding:12px 20px; border:0; background:#fff4df; color:#7a5620; }
.pv-own-cost-blocks { margin:0; padding:0 20px; list-style:none; counter-reset:none; }
.pv-own-cost-blocks li { display:grid; grid-template-columns:27px minmax(0,1fr) auto; gap:11px; align-items:start; padding:14px 0; border-bottom:1px solid #edf0ed; }
.pv-own-cost-blocks .number { width:27px; height:27px; display:grid; place-items:center; border-radius:50%; background:var(--green-soft); color:var(--green-dark); font-size:9px; font-weight:900; }
.pv-own-cost-blocks li > div { display:grid; gap:3px; }
.pv-own-cost-blocks b { color:var(--ink); font-size:11px; }
.pv-own-cost-blocks small { color:var(--green-dark); font-size:8px; font-weight:750; }
.pv-own-cost-blocks p { margin:2px 0; color:var(--muted); font-size:8px; line-height:1.45; }
.pv-own-cost-blocks a { width:max-content; max-width:100%; color:var(--green); font-size:8px; font-weight:800; }
.pv-own-cost-blocks li > strong { padding-top:4px; color:var(--green-dark); font-size:14px; text-align:right; white-space:nowrap; }
.pv-cost-bridge { display:grid; grid-template-columns:repeat(7,max-content); gap:10px; justify-content:center; align-items:center; margin:13px 0; padding:16px; border:1px solid #b8cdbd; border-radius:11px; background:white; }
.pv-cost-bridge > div { display:grid; gap:3px; min-width:116px; }
.pv-cost-bridge span { color:var(--muted); font-size:8px; text-transform:uppercase; }
.pv-cost-bridge strong { color:var(--green-dark); font-size:17px; }
.pv-cost-bridge i { color:#89958d; font-size:11px; font-style:normal; font-weight:900; }
.pv-cost-bridge .primary { padding:9px 11px; border-radius:8px; background:var(--green-soft); }
.pv-cost-outcome { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.pv-cost-outcome article { padding:15px; border:1px solid var(--line); border-radius:10px; background:white; }
.pv-cost-outcome article.primary { border-color:#75a783; background:var(--green-soft); }
.pv-cost-outcome span,.pv-cost-outcome strong,.pv-cost-outcome small { display:block; }
.pv-cost-outcome span { color:var(--muted); font-size:8px; text-transform:uppercase; }
.pv-cost-outcome strong { margin:5px 0; color:var(--green-dark); font-size:22px; }
.pv-cost-outcome small { color:var(--muted); font-size:8px; }
@media (max-width:920px) { .roof-photo-editor-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }.pv-project-cost-compare { grid-template-columns:1fr; }.pv-project-cost-compare h3 { min-height:0; } }
@media (max-width:920px) { .pv-cost-models { grid-template-columns:1fr; }.pv-cost-bridge { grid-template-columns:1fr; justify-content:stretch; }.pv-cost-bridge i { transform:rotate(90deg); text-align:center; }.pv-cost-outcome { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) { .roof-photo-editor-fields,.pv-project-cost-headline,.pv-cost-outcome { grid-template-columns:1fr; }.roof-photo-editor-save { align-items:stretch; flex-direction:column; }.roof-photo-editor-save .button { width:100%; }.pv-project-cost-section { padding:18px 12px; }.pv-project-cost-section .section-heading-row form,.pv-project-cost-section .section-heading-row .button { width:100%; }.pv-own-cost-blocks { padding:0 12px; }.pv-own-cost-blocks li { grid-template-columns:24px minmax(0,1fr); }.pv-own-cost-blocks li > strong { grid-column:2; padding-top:2px; text-align:left; }.pv-cost-row { margin:0 12px; }.pv-cost-row.missing { margin:0; padding:12px; } }

/* Konkrete variable Projektkosten */
.pv-variable-cost-section { background:#f8faf8; }
.pv-variable-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:20px 0 12px; }
.pv-variable-summary-grid article { display:flex; min-height:190px; flex-direction:column; padding:20px; border:1px solid var(--line); border-radius:13px; background:white; }
.pv-variable-summary-grid article.primary { border-color:#2f7450; background:#173d2c; color:white; }
.pv-variable-summary-grid article.reference { background:#f3f5f4; }
.pv-variable-summary-grid span { color:var(--muted); font-size:9px; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
.pv-variable-summary-grid .primary span,.pv-variable-summary-grid .primary small { color:#cde0d4; }
.pv-variable-summary-grid h3 { min-height:44px; margin:7px 0 10px; font-size:17px; line-height:1.22; }
.pv-variable-summary-grid .primary h3,.pv-variable-summary-grid .primary strong { color:white; }
.pv-variable-summary-grid strong { display:block; margin-bottom:8px; color:var(--green-dark); font-size:28px; }
.pv-variable-summary-grid small { display:block; color:var(--muted); font-size:9px; line-height:1.5; }
.pv-variable-summary-grid a { width:max-content; max-width:100%; margin-top:auto; padding-top:14px; color:var(--green); font-size:9px; font-weight:850; }
.pv-variable-summary-grid .primary a { color:#d7ebdf; }
.pv-variable-scope-callout,.pv-variable-exclusions { display:grid; grid-template-columns:220px minmax(0,1fr); gap:22px; margin:12px 0; padding:16px 18px; border-left:4px solid var(--orange); border-radius:9px; background:#fff3e5; }
.pv-variable-scope-callout strong,.pv-variable-exclusions strong { color:#7a4e1e; font-size:12px; }
.pv-variable-scope-callout p,.pv-variable-exclusions p { margin:0; color:#745228; font-size:10px; line-height:1.55; }
.pv-variable-scenario-list { display:grid; gap:14px; margin-top:16px; }
.pv-variable-scenario-card { overflow:hidden; border:1px solid var(--line); border-radius:13px; background:white; }
.pv-variable-scenario-card > header { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px; align-items:start; padding:19px 21px; border-bottom:1px solid var(--line); background:var(--green-soft); }
.pv-variable-scenario-card.reference > header { background:#f1f3f2; }
.pv-variable-scenario-card header h3 { margin:5px 0 6px; font-size:21px; }
.pv-variable-scenario-card header p { max-width:830px; margin:0; color:var(--muted); font-size:9px; line-height:1.5; }
.pv-variable-scenario-card header > strong { color:var(--green-dark); font-size:25px; white-space:nowrap; }
.pv-variable-table-wrap { overflow-x:auto; }
.pv-variable-cost-table { width:100%; min-width:980px; border-collapse:collapse; }
.pv-variable-cost-table th,.pv-variable-cost-table td { padding:11px 12px; border-bottom:1px solid #e8ece9; text-align:right; vertical-align:top; font-size:9px; }
.pv-variable-cost-table th:first-child,.pv-variable-cost-table td:first-child { text-align:left; }
.pv-variable-cost-table thead th { background:#f7f9f7; color:#4f6257; font-size:8px; text-transform:uppercase; }
.pv-variable-cost-table tbody th { width:36%; color:var(--ink); font-size:10px; }
.pv-variable-cost-table tbody th small,.pv-variable-cost-table td small { display:block; margin-top:4px; color:var(--muted); font-size:8px; font-weight:500; line-height:1.45; text-transform:none; }
.pv-variable-cost-table td:nth-child(2) { white-space:nowrap; }
.pv-variable-cost-table td:nth-child(3),.pv-variable-cost-table td:nth-child(4) { white-space:nowrap; }
.pv-variable-cost-table td:last-child { width:29%; text-align:left; }
.pv-variable-cost-table td:last-child a,.pv-variable-cost-table td:last-child span { color:var(--green-dark); font-weight:800; }
.pv-variable-cost-table tfoot th,.pv-variable-cost-table tfoot td { border-bottom:0; background:#173d2c; color:white; font-weight:900; }
.pv-variable-exclusions { margin-top:16px; }
@media (max-width:900px) { .pv-variable-summary-grid { grid-template-columns:1fr; }.pv-variable-summary-grid article { min-height:0; }.pv-variable-summary-grid h3 { min-height:0; }.pv-variable-scope-callout,.pv-variable-exclusions { grid-template-columns:1fr; gap:7px; }.pv-variable-scenario-card > header { grid-template-columns:1fr; }.pv-variable-scenario-card header > strong { white-space:normal; } }
@media (max-width:620px) { .pv-variable-summary-grid strong { font-size:25px; }.pv-variable-scenario-card > header { padding:16px 14px; }.pv-variable-scope-callout,.pv-variable-exclusions { padding:14px; } }

/* PV-Kunden-Gesamtprojekt */
.customer-project-actions { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 10px; }
.pv-customer-summary-hero { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(245px,.65fr); gap:24px; margin-bottom:18px; padding:30px; overflow:hidden; border-radius:18px; background:linear-gradient(135deg,#173d2c 0%,#245c3d 64%,#327551 100%); color:white; }
.pv-customer-summary-hero h1 { margin:10px 0 12px; max-width:850px; color:white; font-size:clamp(30px,4vw,50px); line-height:1.04; }
.pv-customer-summary-hero p { max-width:810px; color:#e5f0e9; line-height:1.6; }
.pv-customer-summary-hero .back-link,.pv-customer-summary-hero .eyebrow { color:#c5e2cf; }
.pv-customer-summary-hero .button:not(.button-primary) { border-color:rgba(255,255,255,.42); background:rgba(255,255,255,.08); color:white; }
.pv-customer-summary-hero aside { align-self:stretch; display:flex; flex-direction:column; justify-content:center; padding:22px; border:1px solid rgba(255,255,255,.18); border-radius:14px; background:rgba(255,255,255,.08); backdrop-filter:blur(7px); }
.pv-customer-summary-hero aside strong { margin:7px 0; color:white; font-size:23px; }
.pv-customer-summary-hero aside small { color:#e6efe9; line-height:1.55; }
.pv-customer-sew-status { display:block; width:max-content; max-width:100%; margin-top:18px; padding:7px 10px; border-radius:999px; background:#fff0cb; color:#745112; font-size:9px; text-transform:uppercase; letter-spacing:.04em; }
.pv-customer-map-note { display:flex; justify-content:space-between; gap:18px; align-items:center; margin:0 0 18px; padding:14px 18px; border:1px solid #a9c7b2; border-radius:12px; background:#f1f8f3; }
.pv-customer-map-note > div { display:flex; gap:12px; align-items:center; }
.pv-customer-map-note p,.pv-customer-map-note small { margin:0; }
.pv-customer-map-note strong,.pv-customer-map-note small { display:block; }
.pv-customer-map-note small { margin-top:3px; color:var(--muted); font-size:9px; line-height:1.45; }
.pv-customer-map-note > a { flex:0 0 auto; color:var(--green-dark); font-size:10px; font-weight:900; }
.pv-customer-map-pin { width:36px; height:36px; display:grid; place-items:center; flex:0 0 auto; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:var(--green); color:white; font-size:13px; font-weight:900; }
.pv-customer-map-pin b { transform:rotate(45deg); }
.pv-customer-total-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:18px 0 28px; }
.pv-customer-total-grid article { min-width:0; padding:20px; border:1px solid var(--line); border-radius:13px; background:white; box-shadow:0 8px 24px rgba(29,55,40,.05); }
.pv-customer-total-grid article.primary { border-color:#6aa07a; background:var(--green-soft); }
.pv-customer-total-grid article.sew { border-color:#dfc98d; background:#fffbf0; }
.pv-customer-total-grid span,.pv-customer-total-grid strong,.pv-customer-total-grid small { display:block; }
.pv-customer-total-grid span { color:var(--muted); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.pv-customer-total-grid strong { margin:7px 0; color:var(--green-dark); font-size:clamp(23px,2.5vw,33px); line-height:1; }
.pv-customer-total-grid small { color:var(--muted); font-size:9px; line-height:1.45; }
.pv-customer-comparison,.pv-customer-result-section,.pv-customer-cost-section,.pv-customer-project-section { margin:24px 0; padding:25px; border:1px solid var(--line); border-radius:15px; background:#f8faf8; }
.pv-customer-model-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:16px; }
.pv-customer-model-card { overflow:hidden; border:1px solid var(--line); border-radius:13px; background:white; }
.pv-customer-model-card > header { padding:22px; border-bottom:1px solid var(--line); background:#fffaf0; }
.pv-customer-model-card.own > header { background:var(--green-soft); }
.pv-customer-model-card header span { color:var(--muted); font-size:9px; font-weight:800; text-transform:uppercase; }
.pv-customer-model-card h3 { margin:6px 0 9px; font-size:23px; }
.pv-customer-model-card header strong { display:block; color:var(--green-dark); font-size:33px; line-height:1; }
.pv-customer-model-card header small { display:block; margin-top:7px; color:var(--muted); }
.pv-customer-model-card dl { margin:0; padding:0 22px; }
.pv-customer-model-card dl div { display:flex; justify-content:space-between; gap:16px; padding:15px 0; border-bottom:1px solid #edf0ed; }
.pv-customer-model-card dl div.result { color:var(--green-dark); font-size:12px; font-weight:800; }
.pv-customer-model-card dt,.pv-customer-model-card dd { margin:0; }
.pv-customer-model-card dd { text-align:right; font-weight:850; }
.pv-customer-model-card > p { margin:0; padding:17px 22px 20px; color:var(--muted); font-size:9px; line-height:1.55; }
.pv-customer-outcomes { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:14px; }
.pv-customer-outcomes article { padding:18px; border:1px solid var(--line); border-radius:11px; background:white; }
.pv-customer-outcomes article.primary { border-color:#6aa07a; background:var(--green-soft); }
.pv-customer-outcomes article.saving { border-color:#b6d8bd; background:#f1fbf3; }
.pv-customer-outcomes span,.pv-customer-outcomes strong,.pv-customer-outcomes small { display:block; }
.pv-customer-outcomes span { color:var(--muted); font-size:8px; font-weight:800; text-transform:uppercase; }
.pv-customer-outcomes strong { margin:7px 0; color:var(--green-dark); font-size:25px; line-height:1; }
.pv-customer-outcomes small { color:var(--muted); font-size:8px; line-height:1.45; }
.pv-customer-cost-blocks { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:15px; }
.pv-customer-cost-blocks article { display:grid; grid-template-columns:30px minmax(0,1fr); gap:11px; padding:17px; border:1px solid var(--line); border-radius:11px; background:white; }
.pv-customer-cost-blocks article > span { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:var(--green-soft); color:var(--green-dark); font-weight:900; }
.pv-customer-cost-blocks small,.pv-customer-cost-blocks strong { display:block; }
.pv-customer-cost-blocks small { color:var(--muted); font-size:8px; font-weight:800; text-transform:uppercase; }
.pv-customer-cost-blocks strong { margin:5px 0 7px; color:var(--green-dark); font-size:21px; }
.pv-customer-cost-blocks p { margin:0; color:var(--muted); font-size:8px; line-height:1.45; }
.pv-customer-open-costs { margin-top:11px; padding:13px 15px; border-radius:9px; background:#fff3da; color:#725221; font-size:9px; line-height:1.5; }
.pv-customer-table-wrap { max-width:100%; margin-top:14px; overflow-x:auto; border:1px solid var(--line); border-radius:11px; background:white; }
.pv-customer-project-table { width:100%; min-width:1180px; border-collapse:collapse; }
.pv-customer-project-table th,.pv-customer-project-table td { padding:13px 12px; border-bottom:1px solid #e7ebe8; text-align:right; vertical-align:top; white-space:nowrap; font-size:9px; }
.pv-customer-project-table thead th { background:#edf3ef; color:#3f5949; font-size:8px; text-transform:uppercase; letter-spacing:.03em; }
.pv-customer-project-table th:first-child,.pv-customer-project-table td:first-child { text-align:left; }
.pv-customer-project-table tbody th { min-width:190px; white-space:normal; }
.pv-customer-project-table tbody th a { color:var(--green-dark); font-size:11px; font-weight:850; }
.pv-customer-project-table small { display:block; margin-top:4px; color:var(--muted); font-size:8px; font-weight:500; line-height:1.4; text-transform:none; }
.pv-customer-project-table td.strong { color:var(--green-dark); font-weight:850; }
.pv-customer-project-table td.saving { color:#2d7645; }
.pv-customer-project-table tfoot th,.pv-customer-project-table tfoot td { border-bottom:0; background:var(--green-soft); color:var(--green-dark); font-weight:900; }
.pv-customer-caution { display:grid; grid-template-columns:minmax(230px,.65fr) minmax(0,1.35fr); gap:24px; align-items:center; margin:24px 0 8px; padding:22px 25px; border:1px solid #dfc98d; border-radius:13px; background:#fffaf0; }
.pv-customer-caution h2 { margin:5px 0 0; font-size:20px; }
.pv-customer-caution p { margin:0; color:#665a40; font-size:9px; line-height:1.6; }
@media (max-width:1000px) { .pv-customer-total-grid,.pv-customer-outcomes,.pv-customer-cost-blocks { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .pv-customer-summary-hero,.pv-customer-model-grid,.pv-customer-caution { grid-template-columns:1fr; }.pv-customer-summary-hero { padding:22px 18px; }.pv-customer-map-note { align-items:flex-start; flex-direction:column; }.pv-customer-comparison,.pv-customer-result-section,.pv-customer-cost-section,.pv-customer-project-section { padding:18px 12px; } }
@media (max-width:520px) { .pv-customer-total-grid,.pv-customer-outcomes,.pv-customer-cost-blocks { grid-template-columns:1fr; }.pv-customer-summary-hero .page-actions,.customer-project-actions { align-items:stretch; flex-direction:column; }.pv-customer-summary-hero .button,.customer-project-actions .button { width:100%; }.pv-customer-model-card header strong { font-size:27px; } }

/* Reonic-basierte Projektkosten: Dachplanung bleibt vollständig in Reonic. */
.reonic-cost-hero,.reonic-project-hero { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:34px; margin:-8px 0 18px; padding:clamp(28px,4vw,48px); border:1px solid #a8c4b0; border-radius:20px; background:linear-gradient(135deg,#f9fcfa,#eaf5ed); box-shadow:var(--shadow); }
.reonic-cost-hero h1,.reonic-project-hero h1 { max-width:900px; margin:8px 0 12px; font-size:clamp(39px,5vw,64px); line-height:1.02; }
.reonic-cost-hero p,.reonic-project-hero p { max-width:820px; color:var(--ink-soft); font-size:15px; line-height:1.65; }
.reonic-cost-hero aside,.reonic-project-hero aside { align-self:end; padding:20px; border:1px solid #b9d1c0; border-radius:12px; background:white; }
.reonic-cost-hero aside strong,.reonic-cost-hero aside span,.reonic-cost-hero aside small,.reonic-project-hero aside span,.reonic-project-hero aside strong,.reonic-project-hero aside small { display:block; }
.reonic-cost-hero aside strong { color:var(--green-dark); font-size:34px; }.reonic-cost-hero aside span,.reonic-project-hero aside span { margin:4px 0; font-weight:850; }.reonic-cost-hero aside small,.reonic-project-hero aside small { color:var(--muted); font-size:11px; line-height:1.5; }
.reonic-workflow-strip { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:10px; align-items:center; margin:16px 0 30px; }.reonic-workflow-strip article { display:flex; gap:12px; align-items:center; min-height:76px; padding:15px; border:1px solid var(--line); border-radius:11px; background:white; }.reonic-workflow-strip article > span { flex:0 0 auto; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--green-dark); color:white; font-size:12px; font-weight:900; }.reonic-workflow-strip b,.reonic-workflow-strip small { display:block; }.reonic-workflow-strip small { margin-top:3px; color:var(--muted); font-size:9px; }.reonic-workflow-strip > i { color:#8aa896; font-size:22px; font-style:normal; }.reonic-workflow-strip.compact { margin-bottom:18px; }
.reonic-pilot-section,.reonic-result-section,.reonic-handoff-section { margin:30px 0; }.reonic-pilot-section .section-heading-row h2,.reonic-result-section .section-heading-row h2,.reonic-handoff-section .section-heading-row h2 { margin:4px 0; font-size:35px; }.reonic-project-list { display:grid; gap:9px; }.reonic-project-row { display:grid; grid-template-columns:minmax(260px,1.4fr) repeat(3,minmax(150px,.75fr)) auto; gap:18px; align-items:center; padding:19px; border:1px solid var(--line); border-radius:12px; background:white; color:var(--ink); transition:.18s ease; }.reonic-project-row:hover { transform:translateY(-1px); border-color:#7fa78a; box-shadow:0 10px 28px rgba(23,65,38,.09); }.reonic-project-row span,.reonic-project-row strong,.reonic-project-row small { display:block; }.reonic-project-row span { color:var(--muted); font-size:10px; font-weight:850; text-transform:uppercase; }.reonic-project-row h3 { margin:4px 0; font-size:18px; }.reonic-project-row strong { margin:3px 0; color:var(--green-dark); font-size:17px; }.reonic-project-row strong.pending { color:#a06620; }.reonic-project-row small { color:var(--muted); font-size:10px; }.reonic-project-row > b { color:var(--green); font-size:11px; white-space:nowrap; }
.reonic-legal-callout { margin:28px 0; padding:20px 24px; border-left:4px solid #db9033; border-radius:0 10px 10px 0; background:#fff6e9; }.reonic-legal-callout strong { display:block; margin-bottom:5px; }.reonic-legal-callout p { margin:0; color:#765124; font-size:11px; line-height:1.6; }
.reonic-calculator { display:grid; gap:14px; }.reonic-input-panel { padding:clamp(20px,3vw,30px); border:1px solid var(--line); border-radius:15px; background:white; }.reonic-input-panel.primary { border-color:#92b69d; background:#f5faf6; }.reonic-input-panel > header { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; margin-bottom:18px; }.reonic-input-panel h2 { margin:4px 0; font-size:29px; }.reonic-input-panel p { margin:0; color:var(--muted); font-size:10px; }
.reonic-field-grid { display:grid; gap:11px; }.reonic-field-grid.main-inputs { grid-template-columns:repeat(2,minmax(0,1fr)); }.reonic-field-grid.pricing-inputs { grid-template-columns:repeat(4,minmax(0,1fr)); }.reonic-field-grid label,.reonic-cost-input-groups label,.reonic-notes { position:relative; display:grid; gap:5px; color:var(--muted); font-size:11px; font-weight:800; }.reonic-field-grid input,.reonic-field-grid select,.reonic-cost-input-groups input,.reonic-notes textarea { width:100%; min-height:45px; padding:10px 12px; border:1px solid #bfcac2; border-radius:8px; background:white; color:var(--ink); font:inherit; font-size:13px; }.reonic-field-grid label > span,.reonic-cost-input-groups label > span { position:absolute; right:11px; bottom:12px; color:var(--muted); }.reonic-cost-input-groups { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }.reonic-cost-input-groups fieldset { min-width:0; margin:0; padding:17px; border:1px solid var(--line); border-radius:10px; }.reonic-cost-input-groups legend { padding:0 5px; color:var(--green-dark); font-size:13px; font-weight:900; }.reonic-cost-input-groups label { margin:9px 0; }.reonic-cost-input-groups fieldset > small { display:block; color:var(--muted); font-size:10px; line-height:1.5; }.reonic-notes { margin-top:13px; }.reonic-save { margin-top:14px; }
.reonic-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:18px 0; }.reonic-kpi-grid article { padding:17px; border:1px solid var(--line); border-radius:10px; background:white; }.reonic-kpi-grid article.primary { background:var(--green-dark); color:white; }.reonic-kpi-grid article.positive { border-color:#94c2a0; background:var(--green-soft); }.reonic-kpi-grid span,.reonic-kpi-grid strong,.reonic-kpi-grid small { display:block; }.reonic-kpi-grid span { color:var(--muted); font-size:10px; text-transform:uppercase; }.reonic-kpi-grid .primary span,.reonic-kpi-grid .primary small { color:#c9e1d0; }.reonic-kpi-grid strong { margin:7px 0; font-size:22px; }.reonic-kpi-grid small { color:var(--muted); font-size:10px; }.reonic-warning-list { margin:12px 0; padding:12px 16px; border-radius:9px; background:#fff3e1; color:#7c5424; }.reonic-warning-list p { margin:3px 0; font-size:11px; }
.reonic-block-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }.reonic-block-grid > article { overflow:hidden; border:1px solid var(--line); border-radius:12px; background:white; }.reonic-block-grid article > header { display:flex; justify-content:space-between; gap:16px; padding:16px; background:#f2f6f3; }.reonic-block-grid article > header span { font-weight:900; }.reonic-block-grid ul { margin:0; padding:0 16px; list-style:none; }.reonic-block-grid li { display:flex; justify-content:space-between; gap:14px; padding:12px 0; border-bottom:1px solid #edf0ed; }.reonic-block-grid li:last-child { border:0; }.reonic-block-grid li b,.reonic-block-grid li small { display:block; }.reonic-block-grid li b { font-size:10px; }.reonic-block-grid li small { margin-top:3px; color:var(--muted); font-size:8px; }.reonic-block-grid li > strong { font-size:11px; white-space:nowrap; }
.reonic-customer-total { margin-top:18px; padding:24px; border-radius:15px; background:#153f2a; color:white; }.reonic-customer-total > header { display:flex; justify-content:space-between; gap:22px; align-items:center; }.reonic-customer-total h2 { margin:4px 0; font-size:28px; }.reonic-customer-total header p { margin:0; color:#c9ddd0; font-size:10px; }.reonic-customer-total header > strong { font-size:34px; }.reonic-customer-total > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin:18px 0; }.reonic-customer-total article { display:grid; grid-template-columns:30px minmax(0,1fr); gap:3px 10px; padding:14px; border:1px solid rgba(255,255,255,.16); border-radius:9px; background:rgba(255,255,255,.07); }.reonic-customer-total article > span { grid-row:1 / span 3; width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:#d9eadf; color:#174329; font-weight:900; }.reonic-customer-total article b,.reonic-customer-total article small,.reonic-customer-total article strong { grid-column:2; }.reonic-customer-total article small { color:#c7d9cd; font-size:8px; }.reonic-customer-total article strong { margin-top:4px; }.reonic-customer-total > p { margin:0; color:#d7e6dc; font-size:9px; }
.reonic-handoff-section { scroll-margin-top:120px; padding:clamp(20px,3vw,30px); border:1px solid #c3d4c8; border-radius:15px; background:#f8fbf9; }.reonic-handoff-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:10px; background:white; }.reonic-handoff-table { width:100%; border-collapse:collapse; }.reonic-handoff-table th,.reonic-handoff-table td { padding:11px 13px; border-bottom:1px solid #e8ede9; text-align:left; font-size:11px; }.reonic-handoff-table thead th { color:var(--muted); font-size:10px; text-transform:uppercase; }.reonic-offer-guidance { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-top:14px; }.reonic-offer-guidance article { padding:15px; border:1px solid var(--line); border-radius:9px; background:white; }.reonic-offer-guidance p { margin:5px 0 0; color:var(--muted); font-size:11px; line-height:1.55; }.reonic-source-note { color:var(--muted); font-size:10px; }.reonic-empty-result { margin:24px 0; padding:40px; border:2px dashed #b9cbbf; border-radius:13px; text-align:center; }.reonic-empty-result p { color:var(--muted); }
@media (max-width:1100px) { .reonic-project-row { grid-template-columns:minmax(240px,1.3fr) repeat(2,minmax(140px,.7fr)) auto; }.reonic-project-row .reonic-project-input { grid-column:2; }.reonic-cost-input-groups,.reonic-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.reonic-field-grid.pricing-inputs { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .reonic-cost-hero,.reonic-project-hero { grid-template-columns:1fr; }.reonic-workflow-strip { grid-template-columns:1fr; }.reonic-workflow-strip > i { display:none; }.reonic-project-row { grid-template-columns:1fr; }.reonic-project-row .reonic-project-input { grid-column:auto; }.reonic-field-grid.main-inputs,.reonic-field-grid.pricing-inputs,.reonic-cost-input-groups,.reonic-kpi-grid,.reonic-block-grid,.reonic-customer-total > div,.reonic-offer-guidance { grid-template-columns:1fr; }.reonic-input-panel > header,.reonic-customer-total > header { flex-direction:column; align-items:flex-start; }.reonic-customer-total header > strong { font-size:28px; } }

/* Balkonkraftwerk-Anschlussleitfaden */
.bkw-connection-guide { margin:28px 0; padding:28px; border:1px solid var(--line); border-radius:17px; background:linear-gradient(180deg,#f8fbf9,#f0f6f2); }
.bkw-connection-guide .section-heading-row p { max-width:800px; }
.bkw-legal-summary { display:grid; grid-template-columns:130px minmax(0,1fr); gap:18px; align-items:start; margin:18px 0; padding:17px 19px; border:1px solid #d9bd72; border-radius:12px; background:#fff9e9; }
.bkw-legal-summary strong { color:#715319; font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.bkw-legal-summary p { margin:0; color:#625636; font-size:10px; line-height:1.65; }
.bkw-connection-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.bkw-connection-grid > article { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:13px; background:white; }
.bkw-connection-grid > article.good { border-color:#a8c7b0; }
.bkw-connection-grid > article.recommended { border:2px solid #4f8c62; box-shadow:0 10px 28px rgba(46,102,65,.12); }
.bkw-connection-grid header { padding:17px 18px 14px; border-bottom:1px solid #e7ebe8; background:#f8faf8; }
.bkw-connection-grid .recommended header { background:var(--green-soft); }
.bkw-connection-grid header span,.bkw-connection-grid header strong { display:block; }
.bkw-connection-grid header span { color:var(--muted); font-size:8px; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
.bkw-connection-grid header strong { margin-top:5px; color:var(--green-dark); font-size:17px; }
.bkw-connection-grid ul { margin:0; padding:15px 30px 8px; color:#4e5e53; font-size:9px; line-height:1.55; }
.bkw-verdict { display:block; margin:4px 18px 17px; color:var(--green-dark); font-size:10px; }
.bkw-wire-picture { min-height:115px; display:flex; gap:8px; align-items:center; justify-content:center; padding:17px 12px 10px; background:#fbfcfb; color:#385243; }
.bkw-wire-picture > b { font-size:8px; white-space:nowrap; }
.bkw-wire-picture > em { color:#89a292; font-size:17px; font-style:normal; }
.bkw-panels { width:60px; display:grid; grid-template-columns:repeat(2,1fr); gap:3px; flex:0 0 auto; }
.bkw-panels i { height:28px; display:block; border:2px solid #50705c; border-radius:2px; background:repeating-linear-gradient(90deg,#cfe4d5 0,#cfe4d5 6px,#eef6f0 7px,#eef6f0 9px); transform:skewY(-8deg); }
.bkw-device,.bkw-box,.bkw-dock { min-width:63px; padding:12px 7px; border:2px solid #638371; border-radius:8px; background:white; color:#294b36; text-align:center; font-size:9px; font-weight:900; line-height:1.3; }
.bkw-device small { font-size:7px; font-weight:700; }
.bkw-box { border-style:dashed; }
.bkw-dock { border-color:#2f6d44; background:#e2f0e6; }
.bkw-schuko { position:relative; width:43px; height:43px; flex:0 0 auto; border:3px solid #555; border-radius:12px; background:#f5f5f5; }
.bkw-schuko i { position:absolute; top:12px; width:6px; height:15px; border-radius:4px; background:#555; }
.bkw-schuko i:first-child { left:10px; }.bkw-schuko i:nth-child(2) { right:10px; }.bkw-schuko span { position:absolute; left:11px; right:11px; bottom:4px; height:4px; border:1px solid #777; border-radius:50%; }
.bkw-rst { position:relative; width:45px; height:45px; flex:0 0 auto; border:5px double #292e2a; border-radius:50%; background:#535c56; box-shadow:0 0 0 3px #aeb5b0; }
.bkw-rst i { position:absolute; width:7px; height:7px; border-radius:50%; background:#e8d8a7; }
.bkw-rst i:first-child { left:8px; top:8px; }.bkw-rst i:nth-child(2) { right:8px; top:8px; }.bkw-rst i:nth-child(3) { left:14px; bottom:7px; }
.bkw-panel { display:grid; grid-template-columns:repeat(2,22px); gap:3px; padding:6px; border:2px solid #64786a; border-radius:4px; background:#eef1ef; }
.bkw-panel.wide { grid-template-columns:repeat(3,22px); }
.bkw-panel i { height:37px; display:grid; place-items:center; border:1px solid #7f8a82; border-radius:2px; background:white; font-size:6px; font-style:normal; font-weight:900; }
.bkw-product-card { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); gap:22px; margin-top:14px; padding:22px; border:1px solid #9db7a5; border-radius:13px; background:white; }
.bkw-product-card h3 { margin:6px 0 9px; color:var(--green-dark); font-size:21px; }
.bkw-product-card p { margin:0; color:var(--muted); font-size:9px; line-height:1.6; }
.bkw-product-card dl { margin:0; }
.bkw-product-card dl div { display:flex; justify-content:space-between; gap:15px; padding:7px 0; border-bottom:1px solid #edf0ee; font-size:8px; }
.bkw-product-card dt,.bkw-product-card dd { margin:0; }.bkw-product-card dd { color:var(--green-dark); font-family:ui-monospace,monospace; font-weight:900; }
.bkw-product-actions { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:8px; }
.bkw-responsibility-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:14px; }
.bkw-responsibility-grid article { padding:20px; border:1px solid var(--line); border-radius:12px; background:white; }
.bkw-responsibility-grid h3 { margin:6px 0 9px; color:var(--green-dark); font-size:18px; }
.bkw-responsibility-grid ul { margin:0; padding-left:18px; color:#4c5c51; font-size:9px; line-height:1.6; }
.bkw-cost-section { margin-top:14px; padding:22px; border:1px solid #a7c3af; border-radius:13px; background:#f7fbf8; }
.bkw-cost-section .section-heading-row { align-items:flex-start; }
.bkw-cost-section .section-heading-row h2 { margin:5px 0 8px; font-size:27px; }
.bkw-target-price { flex:0 0 240px; padding:15px 17px; border-radius:10px; background:#173d2c; color:#e9f4ed; font-size:9px; text-transform:uppercase; letter-spacing:.03em; }
.bkw-target-price b,.bkw-target-price small { display:block; }.bkw-target-price b { margin:4px 0; color:white; font-size:23px; line-height:1.05; }.bkw-target-price small { color:#c7ded0; font-size:7px; text-transform:none; }
.bkw-time-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:18px; }
.bkw-time-grid article { padding:15px; border:1px solid var(--line); border-radius:10px; background:white; }
.bkw-time-grid span,.bkw-time-grid strong { display:block; }.bkw-time-grid span { color:var(--muted); font-size:7px; font-weight:850; text-transform:uppercase; }.bkw-time-grid strong { margin:5px 0; color:var(--green-dark); font-size:17px; }.bkw-time-grid p { margin:0; color:var(--muted); font-size:8px; line-height:1.45; }
.bkw-time-summary { margin:8px 0 14px; padding:12px 14px; border-radius:9px; background:#e9f4ec; color:#3a5744; font-size:9px; line-height:1.55; }.bkw-time-summary strong { color:var(--green-dark); }
.bkw-cost-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.bkw-cost-card { overflow:hidden; border:1px solid var(--line); border-radius:11px; background:white; }.bkw-cost-card.electrician { border-color:#d6bd7b; }
.bkw-cost-card header { padding:16px 17px; border-bottom:1px solid var(--line); background:#eef6f0; }.bkw-cost-card.electrician header { background:#fff8e7; }
.bkw-cost-card header span,.bkw-cost-card header strong { display:block; }.bkw-cost-card header span { color:var(--muted); font-size:8px; font-weight:850; text-transform:uppercase; }.bkw-cost-card header strong { margin-top:4px; color:var(--green-dark); font-size:21px; }
.bkw-cost-card dl { margin:0; padding:0 17px; }.bkw-cost-card dl div { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid #edf0ee; font-size:8px; }.bkw-cost-card dt,.bkw-cost-card dd { margin:0; }.bkw-cost-card dt { color:#4d5c52; }.bkw-cost-card dd { flex:0 0 auto; color:var(--green-dark); font-weight:900; text-align:right; }
.bkw-cost-card > p { margin:0; padding:13px 17px 16px; color:var(--muted); font-size:7px; line-height:1.5; }
.bkw-electric-scenarios { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-top:12px; }.bkw-electric-scenarios article { padding:17px; border:1px solid var(--line); border-radius:10px; background:white; }.bkw-electric-scenarios article.best { border-color:#7ca789; background:#f0f8f2; }.bkw-electric-scenarios article.warning { border-color:#deb978; background:#fff9ec; }
.bkw-electric-scenarios span,.bkw-electric-scenarios strong,.bkw-electric-scenarios b { display:block; }.bkw-electric-scenarios span { color:var(--muted); font-size:8px; font-weight:850; text-transform:uppercase; }.bkw-electric-scenarios strong { margin:5px 0; color:var(--green-dark); font-size:19px; }.bkw-electric-scenarios p { color:var(--muted); font-size:8px; line-height:1.5; }.bkw-electric-scenarios b { padding-top:9px; border-top:1px solid rgba(95,119,102,.2); color:var(--green-dark); font-size:10px; }
.bkw-economy-note { display:grid; grid-template-columns:170px minmax(0,1fr); gap:18px; margin-top:12px; padding:15px 17px; border-radius:10px; background:#173d2c; color:#eaf4ed; }.bkw-economy-note strong { font-size:10px; text-transform:uppercase; }.bkw-economy-note p { margin:0; color:#d5e7db; font-size:9px; line-height:1.55; }
.bkw-anker-note { display:flex; justify-content:space-between; gap:24px; align-items:center; margin-top:14px; padding:20px; border:1px solid #d7bd76; border-radius:12px; background:#fff9e9; }
.bkw-anker-note h3 { margin:5px 0 8px; font-size:18px; }.bkw-anker-note p { margin:0; max-width:900px; color:#665a3d; font-size:9px; line-height:1.6; }.bkw-anker-note .button { flex:0 0 auto; }
.bkw-source-links { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:14px; }
.bkw-source-links a { min-width:0; padding:13px; border:1px solid var(--line); border-radius:10px; background:white; color:var(--green-dark); }
.bkw-source-links strong,.bkw-source-links span { display:block; }.bkw-source-links strong { font-size:9px; }.bkw-source-links span { margin-top:4px; color:var(--muted); font-size:7px; line-height:1.4; }
.bkw-project-decision { margin:14px 0 0; padding:16px 18px; border-radius:11px; background:#173d2c; color:#eef7f1; font-size:10px; line-height:1.6; }
@media (max-width:980px) { .bkw-source-links { grid-template-columns:repeat(3,minmax(0,1fr)); }.bkw-product-card { grid-template-columns:1fr; }.bkw-product-actions { grid-column:auto; }.bkw-time-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.bkw-cost-columns,.bkw-electric-scenarios { grid-template-columns:1fr; } }
@media (max-width:760px) { .bkw-connection-guide { padding:20px 12px; }.bkw-connection-grid,.bkw-responsibility-grid { grid-template-columns:1fr; }.bkw-legal-summary { grid-template-columns:1fr; gap:6px; }.bkw-anker-note { align-items:flex-start; flex-direction:column; }.bkw-source-links { grid-template-columns:repeat(2,minmax(0,1fr)); }.bkw-cost-section { padding:18px 12px; }.bkw-target-price { flex-basis:auto; width:100%; }.bkw-economy-note { grid-template-columns:1fr; gap:7px; } }
@media (max-width:540px) { .bkw-time-grid { grid-template-columns:1fr; } }
@media (max-width:460px) { .bkw-wire-picture { gap:5px; padding-inline:5px; }.bkw-wire-picture > b { font-size:7px; }.bkw-panels { width:49px; }.bkw-device,.bkw-box,.bkw-dock { min-width:54px; padding-inline:4px; }.bkw-source-links { grid-template-columns:1fr; }.bkw-product-actions,.bkw-product-actions .button { width:100%; } }

/* PV Mieterstrom · konkrete Ladeinfrastruktur-Projektakten */
.charging-projects-header { align-items:flex-end; }
.charging-projects-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0 0 20px; }
.charging-projects-summary article { padding:18px 20px; border:1px solid var(--line); border-radius:12px; background:white; }
.charging-projects-summary span,.charging-projects-summary strong { display:block; }
.charging-projects-summary span { color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.charging-projects-summary strong { margin-top:6px; color:var(--green-dark); font-size:30px; }
.charging-project-list { display:grid; gap:14px; }
.charging-project-card { overflow:hidden; border:1px solid var(--line); border-radius:15px; background:white; box-shadow:0 7px 24px rgba(29,61,42,.06); }
.charging-project-card > header { display:flex; justify-content:space-between; gap:24px; padding:22px 24px; border-bottom:1px solid var(--line); background:linear-gradient(135deg,#f8fbf9,#eef6f1); }
.charging-project-card header small { display:block; margin-top:7px; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.04em; }
.charging-project-card h2 { margin:5px 0 0; font-size:24px; }
.charging-project-card header > strong { color:var(--green-dark); font-size:25px; text-align:right; }
.charging-project-card header > strong small { font-size:9px; font-weight:600; }
.charging-project-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding:20px 24px; }
.charging-project-card-grid dl { margin:0; }
.charging-project-card-grid dt { color:var(--muted); font-size:9px; font-weight:800; text-transform:uppercase; }
.charging-project-card-grid dd { margin:4px 0 12px; color:var(--ink); font-size:13px; font-weight:700; }
.charging-project-progress { padding:0 24px 18px; }
.charging-project-progress > span,.charging-check-progress > span { height:8px; display:block; overflow:hidden; border-radius:99px; background:linear-gradient(90deg,var(--green) 0 var(--progress),#e5ebe7 var(--progress) 100%); }
.charging-project-progress small { display:block; margin-top:6px; color:var(--muted); font-size:10px; }
.charging-project-card > footer { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:15px 24px; border-top:1px solid var(--line); background:#fbfcfb; }
.charging-project-card footer > span { color:var(--muted); font-size:11px; }

.charging-project-hero { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:34px; padding:30px; border-radius:18px; background:linear-gradient(135deg,#173d2c,#24593f); color:white; box-shadow:var(--shadow); }
.charging-project-hero h1 { margin:7px 0 11px; color:white; font-size:clamp(29px,4vw,45px); }
.charging-project-hero p { max-width:850px; margin:0; color:#d6e8dc; font-size:14px; line-height:1.65; }
.charging-project-hero .eyebrow { color:#b9d8c3; }
.charging-project-hero aside { display:flex; flex-direction:column; justify-content:center; padding:21px; border:1px solid rgba(255,255,255,.22); border-radius:13px; background:rgba(255,255,255,.08); }
.charging-project-hero aside span { color:#bcd6c5; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.charging-project-hero aside strong { margin:5px 0 2px; color:white; font-size:23px; }
.charging-project-hero aside small { margin-bottom:20px; color:#cce1d3; font-size:10px; }
.charging-project-hero aside b { margin-top:6px; color:#fff; font-size:27px; }
.charging-project-origin { margin:14px 0; }
.charging-project-origin p { margin:3px 0 0; }
.charging-project-form { display:grid; grid-template-columns:minmax(0,1fr); min-width:0; gap:0; }
.charging-project-master-grid,.charging-project-parameter-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.charging-project-master-grid label,.charging-project-parameter-grid label,.charging-project-check-grid label,.charging-open-grid label,.charging-update-form label { display:flex; flex-direction:column; gap:6px; color:var(--ink-soft); font-size:11px; font-weight:750; }
.charging-project-master-grid .span-2,.charging-update-form .span-2 { grid-column:span 2; }

.charging-site-plan { display:grid; grid-template-columns:190px minmax(160px,1fr) 150px minmax(390px,1.7fr); gap:12px; align-items:center; min-height:260px; margin-top:18px; padding:24px; border:1px solid #c8d8cd; border-radius:14px; background:linear-gradient(180deg,#f6faf7,#eaf3ed); }
.charging-plan-house,.charging-plan-distribution { min-height:160px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:2px solid #557865; border-radius:12px; background:white; text-align:center; box-shadow:0 7px 20px rgba(40,81,55,.08); }
.charging-plan-house span,.charging-plan-distribution span { color:var(--muted); font-size:9px; font-weight:850; text-transform:uppercase; }
.charging-plan-house b,.charging-plan-distribution b { margin:8px 0; color:var(--green-dark); font-size:18px; }
.charging-plan-house small,.charging-plan-distribution small { max-width:130px; color:var(--muted); font-size:9px; line-height:1.4; }
.charging-plan-trench { position:relative; min-height:110px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.charging-plan-trench i { width:100%; height:8px; display:block; margin:11px 0; border-radius:99px; background:repeating-linear-gradient(90deg,#d58441 0,#d58441 11px,#e5b88f 11px,#e5b88f 18px); }
.charging-plan-trench span { color:#805126; font-size:12px; font-weight:850; }
.charging-plan-trench small { color:var(--muted); font-size:9px; }
.charging-plan-garages { display:grid; grid-template-columns:repeat(6,minmax(45px,1fr)); gap:6px; align-items:end; }
.charging-plan-garages article { min-height:140px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:2px solid #6e8375; border-radius:7px 7px 2px 2px; background:white; }
.charging-plan-garages article b { color:#52675a; font-size:10px; }
.charging-plan-garages article i { width:32px; height:42px; display:grid; place-items:center; margin:10px 0; border-radius:6px; background:#276844; color:white; font-size:8px; font-style:normal; font-weight:900; }
.charging-plan-garages article small { color:var(--muted); font-size:8px; }
.charging-plan-garages em { grid-column:1/-1; color:var(--muted); font-size:9px; font-style:normal; text-align:center; }
.charging-route-description { margin:13px 0 0; padding:15px 17px; border-left:4px solid var(--green); background:#f3f8f5; color:#476052; font-size:12px; line-height:1.6; }

.charging-project-parameter-grid { margin-bottom:18px; padding:18px; border:1px solid var(--line); border-radius:12px; background:#f8faf9; }
.charging-project-calculation .charging-cost-table input { min-width:90px; }
.charging-technical-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.charging-technical-summary article { padding:18px; border:1px solid var(--line); border-radius:11px; background:#f9fbf9; }
.charging-technical-summary h3 { margin:0 0 7px; color:var(--green-dark); font-size:16px; }
.charging-technical-summary p { margin:0; color:var(--muted); font-size:11px; line-height:1.6; }
.charging-check-progress { margin:0 0 16px; }
.charging-project-check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.charging-project-check-grid article { display:grid; grid-template-columns:minmax(170px,.8fr) minmax(130px,.45fr) minmax(230px,1.3fr); gap:12px; align-items:center; padding:14px; border:1px solid var(--line); border-radius:10px; background:white; }
.charging-project-check-grid article > strong { color:var(--ink); font-size:12px; }
.charging-project-check-grid textarea { min-height:61px; }
.charging-open-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:15px; }
.charging-project-save { position:sticky; z-index:6; bottom:12px; display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:15px; padding:13px 16px; border:1px solid #9fbbab; border-radius:11px; background:rgba(250,253,251,.95); box-shadow:var(--shadow); backdrop-filter:blur(8px); }
.charging-project-save span { color:var(--muted); font-size:10px; }
.charging-update-form { display:grid; grid-template-columns:180px 1fr; gap:12px; margin-bottom:17px; padding:17px; border:1px solid var(--line); border-radius:12px; background:#f8faf9; }
.charging-update-form button { width:max-content; }
.charging-update-list { display:grid; gap:9px; }
.charging-update-list article { padding:15px 17px; border:1px solid var(--line); border-radius:10px; background:white; }
.charging-update-list article > span,.charging-update-list article > small { color:var(--muted); font-size:9px; }
.charging-update-list h3 { margin:5px 0; font-size:16px; }
.charging-update-list p { margin:5px 0; color:var(--ink-soft); font-size:11px; line-height:1.55; }
.charging-project-entry { display:grid; grid-template-columns:minmax(240px,.75fr) minmax(360px,1.25fr) auto; gap:22px; align-items:center; }
.charging-project-entry h2 { margin:5px 0 8px; }
.charging-project-entry p { margin:0; color:var(--muted); font-size:11px; line-height:1.6; }
.charging-project-entry-list { display:grid; gap:8px; }
.charging-project-entry-list a { display:grid; grid-template-columns:auto 1fr auto; gap:5px 10px; align-items:center; padding:14px; border:1px solid var(--line); border-radius:10px; background:#f8faf9; color:var(--ink); }
.charging-project-entry-list a strong { font-size:12px; }.charging-project-entry-list a small { grid-column:2; color:var(--muted); font-size:9px; }.charging-project-entry-list a b { grid-column:3; grid-row:1/3; color:var(--green-dark); font-size:10px; }

.technical-document-actions { display:flex; justify-content:space-between; gap:12px; margin-bottom:16px; }
.charging-technical-document { max-width:1100px; margin:0 auto; padding:46px 52px; border:1px solid var(--line); background:white; box-shadow:var(--shadow); color:#23342a; font-size:12px; line-height:1.6; }
.technical-document-head { display:flex; justify-content:space-between; gap:30px; padding-bottom:20px; border-bottom:2px solid #24583e; }
.technical-document-head img { width:180px; height:auto; }.technical-document-head > div span { display:block; margin-top:7px; color:#64756a; font-size:10px; text-transform:uppercase; letter-spacing:.05em; }
.technical-document-head dl { display:grid; grid-template-columns:auto auto; gap:3px 18px; margin:0; font-size:10px; }.technical-document-head dt { color:#75847b; }.technical-document-head dd { margin:0; font-weight:800; text-align:right; }
.technical-document-title { padding:34px 0 24px; }.technical-document-title > span { color:#2f7650; font-size:11px; font-weight:850; text-transform:uppercase; letter-spacing:.05em; }.technical-document-title h1 { margin:7px 0 9px; font-size:34px; }.technical-document-title p { max-width:780px; margin:0; color:#607068; font-size:14px; }
.technical-document-warning { display:grid; grid-template-columns:130px 1fr; gap:18px; padding:16px 18px; border:1px solid #d5b56a; border-radius:9px; background:#fff9e9; }.technical-document-warning strong { color:#71531d; text-transform:uppercase; }.technical-document-warning p { margin:0; color:#665a3b; }.technical-document-warning.small { margin-top:13px; }
.charging-technical-document section { padding:27px 0 20px; border-bottom:1px solid #dfe5e1; break-inside:auto; }.charging-technical-document section h2 { margin:0 0 13px; color:#1f5238; font-size:21px; }.charging-technical-document section h3 { margin:0 0 8px; color:#24583e; font-size:15px; }.charging-technical-document section > p { color:#4e6056; }
.technical-document-data,.technical-document-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }.technical-document-data dl { margin:0; padding:15px; border:1px solid #dfe5e1; border-radius:8px; background:#fafcfb; }.technical-document-data dl { display:grid; grid-template-columns:1fr 1fr; gap:7px 15px; }.technical-document-data dt { color:#6c7b72; }.technical-document-data dd { margin:0; font-weight:800; text-align:right; }.technical-document-columns article { padding:17px; border:1px solid #dfe5e1; border-radius:8px; background:#fafcfb; }.technical-document-columns ul { margin:0; padding-left:18px; }
.charging-route-svg { width:100%; height:auto; margin:18px 0 8px; border:1px solid #d7e0da; border-radius:10px; background:#f8fbf9; }.charging-route-svg .building { fill:#fff;stroke:#5e7a68;stroke-width:3; }.charging-route-svg .roof { fill:none;stroke:#d07b37;stroke-width:5; }.charging-route-svg .device { fill:#eef6f0;stroke:#347350;stroke-width:2; }.charging-route-svg .distribution { fill:#e2f1e7;stroke:#245e3f;stroke-width:3; }.charging-route-svg .garage { fill:#fff;stroke:#718578;stroke-width:2; }.charging-route-svg .wallbox { fill:#2f7650; }.charging-route-svg .cable { fill:none;stroke:#d07b37;stroke-width:8;stroke-dasharray:14 8; }.charging-route-svg .branch { fill:none;stroke:#2f7650;stroke-width:3; }.charging-route-svg .label { fill:#294936;font:800 14px system-ui,sans-serif; }.charging-route-svg .device-title { fill:#1f5238;font:850 16px system-ui,sans-serif; }.charging-route-svg .device-sub { fill:#52645a;font:11px system-ui,sans-serif; }.charging-route-svg .note { fill:#75837b;font:10px system-ui,sans-serif; }.charging-route-svg .wb-text { fill:#fff;font:850 8px system-ui,sans-serif; }
.technical-legend { display:flex; flex-wrap:wrap; gap:18px; color:#63736a; font-size:10px; }.technical-legend i { width:10px; height:10px; display:inline-block; margin-right:5px; border-radius:50%; }.technical-legend .green { background:#2f7650; }.technical-legend .orange { background:#d07b37; }.technical-legend .gray { background:#9ca9a1; }
.charging-single-line { display:grid; grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr; gap:7px; align-items:center; }.charging-single-line article { min-height:110px; padding:13px; border:1px solid #d9e1dc; border-radius:8px; background:#fafcfb; }.charging-single-line article.featured { border-color:#6e9b7d;background:#eef7f1; }.charging-single-line span,.charging-single-line b,.charging-single-line small { display:block; }.charging-single-line span { color:#6d7d73;font-size:8px;font-weight:850;text-transform:uppercase; }.charging-single-line b { margin:6px 0;color:#24583e;font-size:14px; }.charging-single-line small { color:#68776e;font-size:9px;line-height:1.45; }.charging-single-line > i { color:#2f7650;font-size:18px;font-style:normal; }
.technical-document-table { width:100%; border-collapse:collapse; font-size:10px; }.technical-document-table th,.technical-document-table td { padding:9px; border:1px solid #dfe5e1; vertical-align:top; text-align:left; }.technical-document-table th { background:#edf5ef;color:#24583e; }.technical-document-footer { display:flex; justify-content:space-between; gap:25px; padding-top:27px; color:#6c7a72; font-size:9px; }.technical-document-footer div { display:flex; flex-direction:column; }.technical-document-footer div:last-child { text-align:right; }

.charging-basis-grid small { color:var(--muted); font-size:9px; }
.charging-unit-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.charging-unit-layout > div > h3 { margin:0 0 10px; color:var(--green-dark); font-size:17px; }
.charging-unit-list { display:grid; gap:12px; }
.charging-unit-card { overflow:hidden; border:1px solid var(--line); border-radius:13px; background:#f9fbfa; }
.charging-unit-card > header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 15px; background:#eaf3ed; color:var(--green-dark); font-size:12px; }
.charging-unit-remove { width:27px; height:27px; display:grid; place-items:center; padding:0; border:1px solid #c8d8cd; border-radius:50%; background:white; color:#8d3b34; font-size:18px; cursor:pointer; }
.charging-unit-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; padding:15px; }
.charging-unit-fields label,.charging-parameter-grid label,.charging-rate-grid label,.charging-labor-grid label { display:flex; flex-direction:column; gap:6px; color:var(--ink-soft); font-size:10px; font-weight:750; }
.charging-unit-fields .span-2 { grid-column:1/-1; }
.charging-unit-checks { display:flex; flex-wrap:wrap; gap:8px 14px; padding:0 15px 15px; }
.charging-unit-checks label { display:flex; align-items:center; gap:6px; color:var(--ink-soft); font-size:10px; font-weight:700; }
.charging-unit-checks input { width:auto; }
.charging-tech-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; }
.charging-tech-cards article { padding:17px; border:1px solid var(--line); border-radius:11px; background:#f8faf9; }
.charging-tech-cards article > span { display:block; color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; }
.charging-tech-cards article > strong { display:block; margin:7px 0 11px; color:var(--green-dark); font-size:18px; }
.charging-tech-cards dl { display:grid; grid-template-columns:auto 1fr; gap:5px 10px; margin:0; font-size:10px; }
.charging-tech-cards dt { color:var(--muted); }.charging-tech-cards dd { margin:0; font-weight:800; text-align:right; }
.charging-info-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; margin-top:13px; }
.charging-info-columns article { padding:17px; border-left:4px solid var(--green); border-radius:0 10px 10px 0; background:#f3f8f5; }
.charging-info-columns h3 { margin:0 0 7px; font-size:15px; }.charging-info-columns p { margin:0; color:var(--muted); font-size:10px; line-height:1.6; }
.charging-result-grid-v2 { grid-template-columns:repeat(5,minmax(0,1fr)); }
.charging-total-band { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:12px 0 18px; }
.charging-total-band > div { padding:16px; border:1px solid var(--line); border-radius:11px; background:white; }
.charging-total-band span,.charging-total-band strong { display:block; }.charging-total-band span { min-height:27px; color:var(--muted); font-size:10px; }.charging-total-band strong { margin-top:5px; color:var(--green-dark); font-size:21px; }
.charging-total-band .featured { background:var(--green-dark); border-color:var(--green-dark); }.charging-total-band .featured span { color:#c9ded1; }.charging-total-band .featured strong { color:white; }
.charging-cost-details,.charging-parameter-panel { margin-top:10px; border:1px solid var(--line); border-radius:11px; background:white; }
.charging-cost-details summary,.charging-parameter-panel summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px; color:var(--green-dark); font-size:12px; font-weight:850; cursor:pointer; }
.charging-cost-details summary strong { margin-left:auto; }.charging-cost-details .charging-table-wrap { border:0; border-top:1px solid var(--line); border-radius:0 0 11px 11px; }
.charging-cost-details .charging-cost-table { min-width:760px; }
.charging-funding-v2 .charging-grants { grid-template-columns:repeat(4,minmax(0,1fr)); }
.charging-copy-block { margin-top:11px; padding:18px; border:1px solid var(--line); border-radius:11px; background:#f8faf9; }
.charging-copy-block h3 { margin:0 0 7px; color:var(--green-dark); font-size:15px; }.charging-copy-block p { margin:0; color:var(--ink-soft); font-size:11px; line-height:1.7; }
.charging-parameter-panel[open] { padding-bottom:16px; }.charging-parameter-panel[open] summary { border-bottom:1px solid var(--line); margin-bottom:15px; }
.charging-parameter-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; padding:0 16px; }
.charging-rate-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; padding:0 16px; }
.charging-labor-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; padding:0 16px; }.charging-parameter-panel h3 { margin:20px 16px 9px; color:var(--green-dark); font-size:14px; }
.charging-parameter-panel .form-hint { margin:14px 16px 0; }
.charging-warning-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }.charging-warning-grid article { padding:13px 15px; border-left:4px solid #d88a37; border-radius:0 9px 9px 0; background:#fff7e8; color:#6c5637; font-size:10px; line-height:1.5; }
.technical-document-table tr.total td { background:#eef6f0; color:#1f5238; font-size:11px; }
.charging-cost-estimate-document .technical-document-title p { max-width:none; }

@media (max-width:1100px) { .charging-site-plan { grid-template-columns:160px 1fr 140px; }.charging-plan-garages { grid-column:1/-1; }.charging-project-check-grid { grid-template-columns:1fr; }.charging-project-entry { grid-template-columns:1fr; }.charging-project-entry > .button { width:max-content; }.charging-parameter-grid,.charging-labor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:900px) { .charging-project-hero { grid-template-columns:1fr; }.charging-project-card-grid,.charging-project-master-grid,.charging-project-parameter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.charging-project-hero aside { display:grid;grid-template-columns:1fr 1fr;gap:8px 14px; }.charging-site-plan { grid-template-columns:1fr; }.charging-plan-trench i { max-width:440px; }.charging-technical-summary,.charging-open-grid,.charging-unit-layout { grid-template-columns:1fr; }.charging-single-line { grid-template-columns:1fr; }.charging-single-line > i { transform:rotate(90deg);text-align:center; }.charging-technical-document { padding:34px 28px; }.charging-tech-cards,.charging-info-columns,.charging-result-grid-v2,.charging-total-band { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:650px) { .charging-projects-summary,.charging-project-card-grid,.charging-project-master-grid,.charging-project-parameter-grid,.technical-document-data,.technical-document-columns,.charging-tech-cards,.charging-info-columns,.charging-result-grid-v2,.charging-total-band,.charging-parameter-grid,.charging-rate-grid,.charging-labor-grid,.charging-warning-grid { grid-template-columns:1fr; }.charging-project-card > header,.charging-project-card > footer,.technical-document-head { align-items:flex-start;flex-direction:column; }.charging-project-card header > strong { text-align:left; }.charging-project-master-grid .span-2,.charging-update-form .span-2 { grid-column:auto; }.charging-plan-garages { grid-template-columns:repeat(3,1fr); }.charging-project-check-grid article { grid-template-columns:1fr; }.charging-update-form { grid-template-columns:1fr; }.charging-project-save { align-items:stretch;flex-direction:column; }.technical-document-warning { grid-template-columns:1fr; }.charging-technical-document { padding:25px 17px; }.technical-document-head dl { width:100%; }.technical-document-title h1 { font-size:27px; }.charging-unit-fields { grid-template-columns:1fr; }.charging-unit-fields .span-2 { grid-column:auto; }.charging-funding-v2 .charging-grants { grid-template-columns:1fr; } }

@media print {
  @page { size:A4; margin:13mm; }
  body.app-shell { display:block; background:white; }
  .topbar,.sidebar,.no-print,.flash { display:none !important; }
  .main-content { width:auto !important; max-width:none !important; margin:0 !important; padding:0 !important; }
  .charging-technical-document { max-width:none; margin:0; padding:0; border:0; box-shadow:none; font-size:9.4pt; }
  .technical-document-head img { width:42mm; }
  .technical-document-title { padding:8mm 0 5mm; }
  .technical-document-title h1 { font-size:23pt; }
  .technical-document-warning,.technical-document-columns article,.technical-document-data dl,.charging-single-line article { break-inside:avoid; }
  .charging-technical-document section { padding:6mm 0 4mm; }
  .charging-technical-document section h2 { font-size:15pt; }
  .charging-route-svg { max-height:83mm; }
  .technical-document-footer { break-inside:avoid; }
}

/* PV · Wirtschaftlichkeit */
.pv-economics-header{align-items:flex-end}.pv-economics-header p{max-width:850px}.pv-economics-guardrail{margin-bottom:16px}.pv-economics-tabs{position:sticky;z-index:4;top:72px;overflow-x:auto;margin:0 0 22px;padding:7px;border:1px solid var(--line);border-radius:12px;background:rgba(246,247,245,.96);backdrop-filter:blur(12px)}.pv-economics-tabs a{white-space:nowrap;border-radius:8px}.pv-economics-tabs a.active{margin:0;border:0;background:#fff;box-shadow:0 3px 12px rgba(18,58,43,.09)}
.pv-economics-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:18px}.pv-economics-kpis article,.pv-economics-result-grid article{min-width:0;padding:18px;border:1px solid var(--line);border-radius:13px;background:#fff}.pv-economics-kpis span,.pv-economics-result-grid span{display:block;min-height:30px;color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.035em}.pv-economics-kpis strong,.pv-economics-result-grid strong{display:block;margin:7px 0 4px;color:#173a49;font-size:clamp(21px,2.2vw,30px);letter-spacing:-.025em}.pv-economics-kpis small,.pv-economics-result-grid small{display:block;color:var(--muted);font-size:11px;line-height:1.4}.pv-economics-kpis .is-positive{border-color:#a8d7c6;background:#e8f7f1}.pv-economics-kpis .is-positive strong{color:#08705a}.pv-economics-kpis .is-warning{border-color:#efc684;background:#fff8ed}.pv-economics-kpis .is-warning strong{color:#a05f0b}
.pv-economics-section{padding:clamp(19px,2.8vw,28px);margin-bottom:18px}.pv-economics-section>.panel-heading p{max-width:860px;margin:5px 0 0;color:var(--muted);line-height:1.55}.pv-economics-cost-table{min-width:1080px}.pv-economics-cost-table td:first-child{min-width:250px}.pv-economics-cost-table tfoot th{padding:15px 16px;background:#163e31;color:#fff;text-align:left}.pv-economics-contract-note{margin:15px 0 0;padding:14px 16px;border-left:4px solid var(--orange);background:#fff7ea;color:#62553f;font-size:12px;line-height:1.6}.pv-economics-result-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:24px}.pv-economics-result-grid.is-scenario{grid-template-columns:repeat(4,minmax(0,1fr))}
.pv-economics-project-link{display:inline-block;margin-top:8px;font-size:12px;font-weight:800}
.pv-economics-parameter-list{border:1px solid var(--line);border-radius:13px;overflow:hidden}.pv-economics-parameter-row{display:grid;grid-template-columns:minmax(210px,1.15fr) 150px minmax(190px,1fr) 145px 180px auto;gap:10px;align-items:end;padding:15px;background:#fff;border-top:1px solid var(--line)}.pv-economics-parameter-row:first-child{border-top:0}.pv-economics-parameter-row>div{align-self:center}.pv-economics-parameter-row>div strong,.pv-economics-parameter-row>div small{display:block}.pv-economics-parameter-row>div small{margin-top:4px;color:var(--muted);font-size:10px}.pv-economics-parameter-row label,.pv-economics-inline-edit label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:750}.pv-economics-parameter-row label small{font-size:9px}.pv-economics-two-column{display:grid;grid-template-columns:1.2fr .8fr;gap:17px;margin-bottom:24px}.pv-economics-two-column>.panel{padding:22px}.pv-economics-footnote{margin:14px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.pv-economics-preset-list{display:grid;gap:8px}.pv-economics-preset-list a{display:grid;grid-template-columns:1fr auto;gap:2px 14px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#f8faf8;color:var(--ink)}.pv-economics-preset-list a span{font-size:12px;font-weight:800}.pv-economics-preset-list a strong{color:var(--green-dark);font-size:18px}.pv-economics-preset-list a small{grid-column:1/-1;color:var(--muted);font-size:10px}
.pv-economics-presets{display:flex;gap:6px;flex-wrap:wrap}.pv-economics-scenario-panel form{display:grid;gap:14px}.pv-economics-form-block{padding:18px;border:1px solid var(--line);border-radius:13px;background:#f8faf8}.pv-economics-form-block h3{margin:0 0 12px;font-size:17px}.pv-economics-form-block>p{margin:-5px 0 13px;color:var(--muted);font-size:11px}.pv-economics-form-block .form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.pv-economics-form-block .form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.pv-economics-form-block .span-2{grid-column:span 2}.pv-economics-history{margin-bottom:24px;padding:0}.pv-economics-history>summary{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;cursor:pointer}.pv-economics-history>summary span{display:flex;flex-direction:column}.pv-economics-history>summary small{margin-top:3px;color:var(--muted);font-size:11px}.pv-economics-history .table-wrap{border-width:1px 0 0;border-radius:0 0 var(--radius) var(--radius)}
.pv-economics-market-table{min-width:1120px}.pv-economics-market-table tr.is-default{background:#eef8f3}.pv-economics-market-table tr.is-addon{background:#fff9ef}.pv-economics-market-table td.positive{color:#08705a;font-weight:850}.pv-economics-inline-edit{margin-top:8px;border-top:1px solid var(--line);padding-top:7px}.pv-economics-inline-edit summary{color:var(--green-dark);font-size:11px;font-weight:800;cursor:pointer}.pv-economics-inline-edit form{display:grid;gap:7px;min-width:270px;margin-top:9px}.pv-economics-inline-edit input,.pv-economics-inline-edit select{width:100%}
.pv-economics-contract-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:17px;margin-bottom:18px}.pv-economics-contract-grid>.panel{position:relative;padding:25px}.pv-economics-contract-grid h2{font-size:25px}.pv-economics-contract-grid>.is-active{border-color:#9fd1bf}.pv-economics-contract-grid>.is-disabled{background:#f0f2f1;color:#687278}.phase-pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#dbf2e9;color:#08705a;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.is-disabled .phase-pill{background:#e0e4e2;color:#65716c}.pv-economics-contract-grid>.is-disabled>strong,.pv-economics-contract-grid>.is-disabled>small{display:block;margin-top:12px}.pv-economics-contract-grid>.is-disabled>small{color:var(--muted);line-height:1.55}.pv-contract-party-list{display:grid;gap:8px;margin-top:18px}.pv-contract-party-list>div{display:grid;grid-template-columns:34px 1fr;gap:11px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#f8faf8}.pv-contract-party-list>div>b{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#173c31;color:#fff}.pv-contract-party-list p{margin:0}.pv-contract-party-list strong,.pv-contract-party-list span{display:block}.pv-contract-party-list span{margin-top:3px;color:var(--muted);font-size:11px;line-height:1.5}
.pv-compliance-list{display:grid;gap:11px}.pv-compliance-list>article{padding:18px;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:0 12px 12px 0;background:#fff}.pv-compliance-list>article.is-open{border-left-color:var(--orange);background:#fffaf3}.pv-compliance-list article>header{display:flex;justify-content:space-between;gap:20px}.pv-compliance-list header span{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e7f4ed;color:#1d704e;font-size:9px;font-weight:850;text-transform:uppercase}.pv-compliance-list .is-open header span{background:#fff0d7;color:#98610c}.pv-compliance-list h3{margin:7px 0 0;font-size:19px}.pv-compliance-list header small{color:var(--muted);font-size:10px;white-space:nowrap}.pv-compliance-list article>p{max-width:930px;color:var(--ink-soft);font-size:12px;line-height:1.6}.pv-compliance-list article>aside{padding:10px 12px;border-radius:8px;background:#f2f5f3;color:#52645c;font-size:11px;line-height:1.5}.pv-compliance-list article>aside strong{display:block;color:var(--ink);margin-bottom:3px}.pv-compliance-list article>a{display:inline-block;margin-top:9px;font-size:11px;font-weight:800}.pv-compliance-list article>details{margin-top:10px}.pv-compliance-list article>details>summary{color:var(--green-dark);font-size:11px;font-weight:800;cursor:pointer}.pv-compliance-list article>details form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:10px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fff}.pv-compliance-list article>details label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:750}.pv-compliance-list article>details .span-3{grid-column:1/-1}.pv-compliance-list article>details button{width:max-content}
@media(max-width:1200px){.pv-economics-parameter-row{grid-template-columns:repeat(3,minmax(0,1fr))}.pv-economics-parameter-row>div{grid-column:1/-1}.pv-economics-result-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.pv-economics-header{align-items:flex-start}.pv-economics-kpis,.pv-economics-result-grid,.pv-economics-result-grid.is-scenario{grid-template-columns:repeat(2,minmax(0,1fr))}.pv-economics-two-column,.pv-economics-contract-grid{grid-template-columns:1fr}.pv-economics-form-block .form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.pv-economics-tabs{top:64px}.pv-economics-kpis,.pv-economics-result-grid,.pv-economics-result-grid.is-scenario,.pv-economics-parameter-row,.pv-economics-form-block .form-grid.four,.pv-economics-form-block .form-grid.three,.pv-compliance-list article>details form{grid-template-columns:1fr}.pv-economics-form-block .span-2,.pv-compliance-list article>details .span-3{grid-column:auto}.pv-economics-section{padding:16px 12px}.pv-economics-section>.panel-heading,.pv-compliance-list article>header{align-items:flex-start;flex-direction:column}.pv-economics-parameter-row>div{grid-column:auto}.pv-economics-header .page-actions{align-items:stretch;flex-direction:column}.pv-economics-header .page-actions .button{width:100%}}

/* PV-Projekt · beeinflussbare Kostenmatrix */
.pv-variable-cost-section,.pv-variable-scenario-list,.pv-cost-matrix,.pv-matrix-groups,.pv-matrix-group,.pv-matrix-comparison-wrap,.pv-variable-table-wrap{min-width:0;max-width:100%}.pv-cost-matrix{overflow:visible;width:100%}.pv-cost-matrix>header{position:relative;align-items:center;padding:24px 26px;background:linear-gradient(135deg,#edf7f1,#fff)}.pv-cost-matrix>header h3{font-size:24px}.pv-cost-matrix>header p{max-width:900px;font-size:11px}.pv-matrix-head-totals{min-width:210px;text-align:right}.pv-matrix-head-totals>span,.pv-matrix-head-totals>small{display:block;color:var(--muted);font-size:10px}.pv-matrix-head-totals>strong{display:block;margin:5px 0;color:var(--green-dark);font-size:29px;white-space:nowrap}
.pv-matrix-comparison-wrap{overflow-x:auto;padding:22px 24px 8px}.pv-matrix-comparison{width:100%;min-width:780px;border-spacing:0;border-collapse:separate;overflow:hidden;border:1px solid var(--line);border-radius:12px}.pv-matrix-comparison th,.pv-matrix-comparison td{padding:13px 15px;border-bottom:1px solid var(--line);text-align:right;font-size:12px}.pv-matrix-comparison th:first-child{text-align:left}.pv-matrix-comparison thead th{background:#f2f5f3;color:#4e6257;font-size:10px;text-transform:uppercase;letter-spacing:.035em}.pv-matrix-comparison thead th:nth-child(3){background:#dff2e9;color:#176445}.pv-matrix-comparison tbody th{width:40%;color:var(--ink);font-size:12px}.pv-matrix-comparison tbody th small{display:block;margin-top:3px;color:var(--muted);font-size:9px;font-weight:500}.pv-matrix-comparison tbody td:nth-child(3){background:#f0faf5;color:#126a49;font-weight:850}.pv-matrix-comparison tbody tr.total th,.pv-matrix-comparison tbody tr.total td{background:#173d2c;color:#fff;font-size:14px;font-weight:900}.pv-matrix-comparison tbody tr.gap th,.pv-matrix-comparison tbody tr.gap td{border-bottom:0;background:#fff8eb;color:#805321;font-weight:850}
.pv-matrix-groups{display:grid;gap:14px;padding:18px 24px 24px}.pv-matrix-group{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff}.pv-matrix-group-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 18px;background:#f6f8f6;border-bottom:1px solid var(--line)}.pv-matrix-group-heading>div>span{display:block;color:var(--green-dark);font-size:17px;font-weight:900}.pv-matrix-group-heading>div>small{display:block;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.45}.pv-matrix-group-heading dl{display:grid;grid-template-columns:auto auto;gap:3px 11px;margin:0;text-align:right}.pv-matrix-group-heading dt{color:var(--muted);font-size:9px}.pv-matrix-group-heading dd{margin:0;color:var(--ink);font-size:12px;font-weight:850}.pv-matrix-group-heading dd:last-child{color:var(--green)}
.pv-cost-input-table{min-width:1240px}.pv-cost-input-table th,.pv-cost-input-table td{padding:13px 12px;font-size:10px}.pv-cost-input-table tbody th{width:26%;font-size:11px}.pv-cost-input-table td:last-child{width:21%}.pv-cost-input-table tbody tr.has-manual-price{background:#eff9f4}.pv-cost-input-table tbody tr.has-manual-price td:nth-child(5),.pv-cost-input-table tbody tr.has-manual-price td:nth-child(6){background:#e2f4eb}.pv-cost-input-table .manual-price-cell{min-width:185px}.manual-price-cell label{display:block}.manual-price-input-wrap{position:relative;display:block}.manual-price-cell input{width:100%;min-width:155px;height:43px;padding:8px 29px 8px 10px;border:2px solid #79a993;background:#fff;text-align:right;font-weight:850}.manual-price-cell input::placeholder{color:#65716c;font-size:9px;font-weight:650;opacity:1}.manual-price-cell input:focus{border-color:#08705a;outline:3px solid rgba(8,112,90,.15);box-shadow:none}.manual-price-input-wrap>em{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#173c31;font-style:normal;font-weight:850;pointer-events:none}.manual-price-cell label>small{display:block;margin:4px 0 0;color:var(--muted);font-size:8px}.manual-price-cell .manual-source-note{height:33px;margin-top:7px;border:1px solid var(--line);padding-right:10px;font-size:9px;font-weight:500;text-align:left}.manual-badge{display:inline-flex!important;margin-top:5px!important;padding:3px 6px;border-radius:999px;background:#d8f0e4;color:#126846!important;font-size:8px!important;font-weight:850!important}.pv-cost-input-table tfoot th,.pv-cost-input-table tfoot td{font-size:11px}
.pv-matrix-save{position:sticky;z-index:5;bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 24px 24px;padding:14px 16px;border:1px solid #9cc8ae;border-radius:11px;background:rgba(247,252,249,.96);box-shadow:0 12px 28px rgba(21,61,42,.14);backdrop-filter:blur(10px)}.pv-matrix-save strong,.pv-matrix-save span{display:block}.pv-matrix-save strong{color:var(--green-dark);font-size:12px}.pv-matrix-save span{margin-top:3px;color:var(--muted);font-size:9px}.pv-reference-details{margin-top:16px;border:1px solid var(--line);border-radius:13px;background:#fff}.pv-reference-details>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 20px;cursor:pointer}.pv-reference-details>summary span{display:flex;flex-direction:column}.pv-reference-details>summary small{margin-top:3px;color:var(--muted);font-size:10px}.pv-reference-details>summary em{color:var(--muted);font-size:9px;font-style:normal;text-transform:uppercase}.pv-reference-details[open]>summary{border-bottom:1px solid var(--line)}
@media(max-width:800px){.pv-cost-matrix>header{grid-template-columns:1fr}.pv-matrix-head-totals{text-align:left}.pv-matrix-group-heading{align-items:flex-start;flex-direction:column}.pv-matrix-group-heading dl{text-align:left}.pv-matrix-save{position:static;align-items:stretch;flex-direction:column}.pv-matrix-save .button{width:100%}}
@media(max-width:620px){html,body.app-shell{max-width:100%;overflow-x:hidden}.pv-matrix-comparison-wrap,.pv-matrix-groups{padding-left:12px;padding-right:12px}.pv-matrix-save{margin-left:12px;margin-right:12px}.pv-cost-matrix>header{padding:19px 15px}.pv-matrix-head-totals>strong{font-size:25px}}

/* PV · Sigenergy Komponentenvergleich */
.pv-sigenergy-entry{margin-top:12px;border-color:#9dc9b6;background:linear-gradient(118deg,#f1faf5,#fff 58%,#edf6f2)}.pv-sigenergy-entry b{color:var(--green-dark)}
.sigen-page-heading h1{max-width:850px}.sigen-scope-strip{display:grid;grid-template-columns:1.2fr 1.4fr .45fr;gap:1px;overflow:hidden;margin-bottom:16px;border:1px solid var(--line);border-radius:13px;background:var(--line)}.sigen-scope-strip>div{min-width:0;padding:16px 18px;background:#fff}.sigen-scope-strip span,.sigen-scope-strip strong{display:block}.sigen-scope-strip span{margin-bottom:5px;color:var(--muted);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.045em}.sigen-scope-strip strong{color:var(--ink);font-size:11px;line-height:1.5}.sigen-seed-warning{margin-bottom:18px}
.sigen-comparison{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fff}.sigen-preset-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;padding:0;background:var(--line);border-bottom:1px solid var(--line)}.sigen-preset-tabs button{appearance:none;border:0;border-radius:0;padding:17px 20px;background:#f5f7f5;color:var(--muted);text-align:left;cursor:pointer}.sigen-preset-tabs button strong,.sigen-preset-tabs button span{display:block}.sigen-preset-tabs button strong{font-size:18px}.sigen-preset-tabs button span{margin-top:3px;font-size:10px}.sigen-preset-tabs button.active{background:#173d2c;color:#fff}.sigen-preset-tabs button.active span{color:#cae1d5}
.sigen-preset-panel{padding:26px}.sigen-preset-heading{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:21px}.sigen-preset-heading h2{margin:3px 0 0;font-size:24px}.sigen-saving{min-width:225px;padding-left:22px;border-left:3px solid #2b9c69;text-align:right}.sigen-saving>span,.sigen-saving>small{display:block;color:var(--muted);font-size:10px}.sigen-saving>strong{display:block;margin:3px 0;color:#0b7d57;font-size:28px}.sigen-saving small b{color:#0b7d57}
.sigen-compare-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.sigen-compare-side{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff}.sigen-compare-side>header{min-height:139px;padding:21px 22px;border-bottom:1px solid var(--line);background:#f5f7f5}.sigen-compare-side.premium>header{background:linear-gradient(135deg,#e9f4ee,#fff)}.sigen-compare-side.budget>header{background:linear-gradient(135deg,#f1faf6,#fff);border-top:4px solid #16805c}.sigen-compare-side>header>span{color:var(--green);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.055em}.sigen-compare-side>header h3{margin:4px 0 7px;font-size:21px}.sigen-compare-side>header p{margin:0;color:var(--muted);font-size:10px;line-height:1.55}.sigen-component-lines{padding:5px 20px}.sigen-component-line{display:grid;grid-template-columns:minmax(0,1fr) 125px 112px;align-items:center;gap:13px;padding:14px 2px;border-bottom:1px solid var(--line)}.sigen-component-line>div>span,.sigen-component-line>div>strong{display:block}.sigen-component-line>div>span{margin-bottom:3px;color:var(--muted);font-size:8px;font-weight:850;text-transform:uppercase}.sigen-component-line>div>strong{font-size:11px;line-height:1.4}.sigen-component-line>span{color:var(--muted);font-size:10px;text-align:right}.sigen-component-line>span b{font-weight:650}.sigen-component-line>strong{font-size:12px;text-align:right;white-space:nowrap}.sigen-component-line select{width:100%;height:38px;border-color:#8bb8a3;background:#fff;font-size:10px;font-weight:750}.sigen-component-line.backup{background:#fff8eb}.sigen-side-total{padding:18px 22px;background:#173d2c;color:#fff}.sigen-side-total span,.sigen-side-total small{display:block}.sigen-side-total span{color:#c8ded3;font-size:9px;text-transform:uppercase}.sigen-side-total strong{display:block;margin:3px 0;font-size:27px}.sigen-side-total small{color:#c8ded3;font-size:9px}.sigen-tech-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:0;background:var(--line)}.sigen-tech-facts div{padding:13px;background:#f7f9f7;text-align:center}.sigen-tech-facts dt{color:var(--muted);font-size:8px}.sigen-tech-facts dd{margin:4px 0 0;color:var(--ink);font-size:11px;font-weight:850}.sigen-technical-warning{margin:18px 0 0}.sigen-backup-option{margin-top:15px;border:1px solid var(--line);border-radius:11px;background:#fafbfa}.sigen-backup-option summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 16px;cursor:pointer}.sigen-backup-option summary span strong,.sigen-backup-option summary span small{display:block}.sigen-backup-option summary span strong{font-size:11px}.sigen-backup-option summary span small{margin-top:3px;color:var(--muted);font-size:9px}.sigen-backup-option summary>b{color:var(--green-dark);font-size:12px}.sigen-backup-option>label{display:flex;align-items:flex-start;gap:11px;padding:15px 16px;border-top:1px solid var(--line)}.sigen-backup-option>label input{width:18px;height:18px}.sigen-backup-option>label span strong,.sigen-backup-option>label span small{display:block}.sigen-backup-option>label span small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.5}
.sigen-price-editor{margin-top:18px;padding:24px}.sigen-price-list{overflow:hidden;border:1px solid var(--line);border-radius:12px}.sigen-price-row{display:grid;grid-template-columns:minmax(250px,1fr) 175px 230px auto;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid var(--line);background:#fff}.sigen-price-row:last-child{border-bottom:0}.sigen-price-row:focus-within{background:#f2faf6}.sigen-price-product>span,.sigen-price-product>a,.sigen-price-product>small{display:block}.sigen-price-product>span{color:var(--muted);font-size:8px;font-weight:850;text-transform:uppercase}.sigen-price-product>a{margin:3px 0;color:var(--green-dark);font-size:12px;font-weight:850}.sigen-price-product>small{color:var(--muted);font-size:9px}.sigen-price-input-wrap{position:relative;display:block}.sigen-price-input-wrap input{width:100%;height:43px;padding:8px 30px 8px 11px;border:2px solid #75ab91;background:#fff;text-align:right;font-size:14px;font-weight:900}.sigen-price-input-wrap input:focus{border-color:#08705a;outline:3px solid rgba(8,112,90,.15)}.sigen-price-input-wrap input[aria-invalid="true"]{border-color:#c66723}.sigen-price-input-wrap em{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--green-dark);font-style:normal;font-weight:900;pointer-events:none}.sigen-price-source>.price-basis{display:inline-flex}.sigen-price-source>small,.sigen-price-source>a{display:block;margin-top:4px;font-size:8px}.sigen-price-source>small{color:var(--muted)}.sigen-price-source>a{color:var(--green)}.sigen-handoff{display:flex;align-items:center;justify-content:space-between;gap:30px;margin:18px 0;padding:22px 24px;border:1px solid #acd2bf;border-radius:13px;background:linear-gradient(120deg,#eff9f4,#fff)}.sigen-handoff h2{margin:4px 0 7px;font-size:20px}.sigen-handoff p{max-width:950px;margin:0;color:var(--muted);font-size:10px;line-height:1.6}
@media(max-width:1000px){.sigen-scope-strip{grid-template-columns:1fr 1fr}.sigen-scope-strip>div:last-child{grid-column:1/-1}.sigen-price-row{grid-template-columns:minmax(220px,1fr) 170px 210px}.sigen-price-row>.button{grid-column:2/4;width:100%}}
@media(max-width:800px){.sigen-preset-panel{padding:18px 14px}.sigen-preset-heading{align-items:flex-start;flex-direction:column}.sigen-saving{min-width:0;padding:0;border-left:0;text-align:left}.sigen-compare-columns{grid-template-columns:1fr}.sigen-price-row{grid-template-columns:1fr 160px}.sigen-price-source{grid-column:1/2}.sigen-price-row>.button{grid-column:2/3;grid-row:2}.sigen-handoff{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.sigen-scope-strip,.sigen-preset-tabs{grid-template-columns:1fr}.sigen-scope-strip>div:last-child{grid-column:auto}.sigen-preset-tabs button{text-align:center}.sigen-component-line{grid-template-columns:minmax(0,1fr) 90px}.sigen-component-line>strong{grid-column:2;text-align:right}.sigen-component-line>span{grid-row:1;grid-column:2}.sigen-component-line>div{grid-row:1/3}.sigen-tech-facts{grid-template-columns:1fr}.sigen-price-editor{padding:17px 12px}.sigen-price-row{grid-template-columns:1fr}.sigen-price-source,.sigen-price-row>.button{grid-column:auto;grid-row:auto}.sigen-price-row>.button{width:100%}}

/* PV · Modulvergleich */
.pv-module-entry{border-color:#9fc9b5;background:linear-gradient(118deg,#eef9f3,#fff 58%,#f1f6f3)}.pv-module-entry b{color:var(--green-dark)}
.module-page-heading h1{max-width:880px}.module-confidential-note{margin-bottom:18px}.module-highlight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.module-highlight-grid article{padding:19px}.module-highlight-grid article>span,.module-highlight-grid article>strong,.module-highlight-grid article>b,.module-highlight-grid article>small{display:block}.module-highlight-grid article>span{color:var(--muted);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.045em}.module-highlight-grid article>strong{margin-top:8px;font-size:16px;line-height:1.35}.module-highlight-grid article>b{margin-top:9px;color:var(--green-dark);font-size:22px}.module-highlight-grid article>small{margin-top:7px;color:var(--muted);font-size:9px;line-height:1.5}.module-count-highlight{background:#173d2c;color:#fff}.module-count-highlight>span,.module-count-highlight>small{color:#c9ddd3!important}.module-count-highlight>b{color:#fff!important}
.module-calculator{margin-bottom:18px;padding:24px}.module-calculator-layout{display:grid;grid-template-columns:1.45fr .75fr;gap:22px}.module-calculator-inputs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.module-calculator-inputs label{position:relative;display:grid;align-content:start;gap:5px;color:var(--muted);font-size:9px;font-weight:800}.module-calculator-inputs label>small{min-height:28px;color:var(--muted);font-size:8px;font-weight:500;line-height:1.4}.module-calculator-inputs input{width:100%;height:47px;padding-right:60px;border:2px solid #92bba7;background:#fff;color:var(--ink);font-size:15px;font-weight:900;text-align:right}.module-calculator-inputs input:focus{border-color:#08705a;outline:3px solid rgba(8,112,90,.13)}.module-calculator-inputs label>span{position:absolute;right:11px;top:36px;color:var(--green-dark);font-size:9px}.module-calculator-explain{display:grid;gap:9px}.module-calculator-explain>div{padding:14px 15px;border:1px solid var(--line);border-radius:10px;background:#f6f8f6}.module-calculator-explain span,.module-calculator-explain strong{display:block}.module-calculator-explain span{color:var(--green);font-size:8px;font-weight:900;text-transform:uppercase}.module-calculator-explain strong{margin-top:5px;font-size:11px}.module-calculator-explain p{margin:6px 0 0;color:var(--muted);font-size:9px;line-height:1.55}.module-calculator-explain code{font-size:8px}
.module-table-panel{overflow:hidden;margin-bottom:20px}.module-table-panel>.panel-heading{padding:24px 24px 15px}.module-filter-row{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr)) auto;gap:10px;padding:0 24px 17px}.module-filter-row label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:800}.module-filter-row select{width:100%}.module-filter-row .button{align-self:end}.module-comparison-table{min-width:1460px}.module-comparison-table th,.module-comparison-table td{padding:13px 11px;font-size:10px;vertical-align:top}.module-comparison-table td:first-child{min-width:265px}.module-comparison-table td:nth-child(2){min-width:195px}.module-comparison-table td:nth-child(5){min-width:185px}.module-comparison-table td:nth-child(8){min-width:195px}.module-comparison-table td>strong,.module-comparison-table td>small,.module-comparison-table td>a,.module-comparison-table td>em{display:block}.module-comparison-table td>small{margin-top:4px;color:var(--muted);font-size:8px;line-height:1.45}.module-comparison-table td>em{margin-top:7px;padding:6px 7px;border-left:2px solid var(--orange);background:#fff8ed;color:#83561c;font-size:8px;font-style:normal;line-height:1.4}.module-rank{display:inline-grid;place-items:center;min-width:37px;height:25px;margin-bottom:7px;padding:0 7px;border-radius:999px;background:#173d2c;color:#fff;font-size:10px;font-weight:900}.module-appearance,.module-availability{display:inline-flex;margin-bottom:7px;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.025em}.module-appearance.full_black{background:#1f2b27;color:#fff}.module-appearance.transparent_full_black{background:#dfe9e4;color:#244638}.module-appearance.black_frame,.module-appearance.transparent{background:#edf0ee;color:#53625b}.module-availability.available{background:#dff3e8;color:#086a48}.module-availability.preorder{background:#fff0d8;color:#9a6109}.module-availability.unavailable{background:#eceeed;color:#69736e}.module-cost-breakdown span{display:flex;justify-content:space-between;gap:15px;padding:3px 0;border-bottom:1px dotted #d9dfdc;color:var(--muted);font-size:8px}.module-cost-breakdown span:last-child{border-bottom:0}.module-cost-breakdown b{color:var(--ink);font-size:9px}.module-all-in{color:var(--green-dark);font-size:13px}.module-scope-note{margin:15px 24px 24px}.module-scope-note p{font-size:9px;line-height:1.55}
.module-manufacturer-section{margin-bottom:20px}.module-manufacturer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.module-manufacturer-grid article{padding:18px;border-top:3px solid var(--green)}.module-manufacturer-grid article.strategy-core_watch{border-top-color:var(--orange)}.module-manufacturer-grid article.strategy-benchmark{border-top-color:#8b9691}.module-manufacturer-grid article>div{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.module-manufacturer-grid article>div strong{font-size:16px}.module-manufacturer-grid article>div span{padding:4px 6px;border-radius:999px;background:#e5f3eb;color:#176446;font-size:7px;font-weight:850;text-transform:uppercase}.module-manufacturer-grid article.strategy-core_watch>div span{background:#fff0da;color:#98610c}.module-manufacturer-grid article.strategy-benchmark>div span{background:#eceeed;color:#647069}.module-manufacturer-grid article p{min-height:66px;color:var(--muted);font-size:9px;line-height:1.55}.module-manufacturer-grid article a{font-size:8px;font-weight:800}.module-handoff{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:20px;padding:23px 25px;border-color:#a8d0bc;background:linear-gradient(120deg,#eef8f3,#fff)}.module-handoff h2{margin:4px 0 7px}.module-handoff p{max-width:900px;margin:0;color:var(--muted);font-size:10px;line-height:1.55}
@media(max-width:1180px){.module-highlight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-calculator-layout{grid-template-columns:1fr}.module-calculator-inputs{grid-template-columns:repeat(3,minmax(0,1fr))}.module-manufacturer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.module-calculator-inputs,.module-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}.module-filter-row .button{width:100%}.module-handoff{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.module-highlight-grid,.module-calculator-inputs,.module-filter-row,.module-manufacturer-grid{grid-template-columns:1fr}.module-calculator,.module-table-panel>.panel-heading{padding-left:14px;padding-right:14px}.module-filter-row{padding-left:14px;padding-right:14px}.module-scope-note{margin-left:14px;margin-right:14px}}
.pv-quick-notes{scroll-margin-top:145px;margin:0 0 24px;padding:22px;background:#f8fbf8;border:1px solid #cbded0}
.pv-quick-notes-head{display:flex;justify-content:space-between;align-items:start;gap:18px}
.pv-quick-notes-head h2{margin:4px 0 5px;font-size:23px}
.pv-quick-notes-head p{margin:0;color:var(--muted);font-size:12px}
.pv-quick-note-editor{margin-top:17px;border:1px solid #b8d2c1;border-radius:11px;background:#fff}
.pv-quick-note-editor>summary{cursor:pointer;padding:13px 16px;color:var(--green-dark);font-weight:800;list-style:none}
.pv-quick-note-editor>summary::-webkit-details-marker{display:none}
.pv-quick-note-editor[open]>summary{border-bottom:1px solid var(--line)}
.pv-quick-note-editor form{padding:16px}
.pv-quick-note-types{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;padding:0;border:0}
.pv-quick-note-types legend{margin-bottom:7px;color:var(--muted);font-size:11px;font-weight:800}
.pv-quick-note-types label{position:relative;cursor:pointer;padding:9px 12px;border:1px solid #c8d9ce;border-radius:9px;background:#fff;font-size:12px;font-weight:700}
.pv-quick-note-types label:has(input:checked){border-color:var(--green);background:var(--green-soft);color:var(--green-dark)}
.pv-quick-note-types label:focus-within{outline:2px solid var(--green);outline-offset:2px}
.pv-quick-note-types input{position:absolute;opacity:0;pointer-events:none}
.pv-quick-note-types label span{margin-right:4px;font-size:17px}
.pv-quick-note-field{display:block;margin:11px 0;color:var(--ink);font-size:12px;font-weight:800}
.pv-quick-note-field small{color:var(--muted);font-weight:400}
.pv-quick-note-field input,.pv-quick-note-field textarea{display:block;width:100%;margin-top:6px;padding:10px 11px;border:1px solid #c8d9ce;border-radius:8px;background:#fff;font:inherit;font-weight:400}
.pv-quick-note-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}
.pv-quick-note-actions small{color:var(--muted);font-size:10px}
.pv-recent-notes{display:grid;gap:9px;margin-top:16px}
.pv-recent-notes article{display:flex;gap:11px;padding:12px;border:1px solid var(--line);border-radius:9px;background:#fff}
.pv-note-type-icon{display:flex;flex:none;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--green-soft);color:var(--green-dark);font-size:17px}
.pv-recent-notes article>div{min-width:0}
.pv-recent-notes small,.pv-recent-notes strong{display:block}
.pv-recent-notes small{color:var(--muted);font-size:10px}
.pv-recent-notes strong{margin:2px 0 4px}
.pv-recent-notes p{margin:4px 0 0;color:var(--ink-soft);font-size:12px;overflow-wrap:anywhere}
.pv-contact-line{display:flex;justify-content:space-between;gap:12px;margin:5px 0!important;font-size:12px}
.pv-contact-line span{color:var(--muted)}
.pv-contact-line a{overflow-wrap:anywhere;text-align:right}
@media(max-width:650px){.pv-quick-notes{padding:15px}.pv-quick-notes-head,.pv-quick-note-actions{align-items:stretch;flex-direction:column}.pv-quick-note-types label{flex:1 0 calc(50% - 8px);text-align:center}.pv-quick-note-actions .button{width:100%;justify-content:center}}
@media(max-width:640px){body:has(.pv-project-detail-hero) .sidebar{display:none}body:has(.pv-project-detail-hero) .main-content{padding-top:16px}body:has(.pv-project-detail-hero) .pv-project-detail-hero{min-height:0;padding:20px 16px}body:has(.pv-project-detail-hero) .pv-project-detail-hero h1{font-size:32px}}

/* Dokumentenübergabe für PV-Projekte */
.handoff-checklist-panel{border-color:#a9c5b2;background:#fbfdfb}
.handoff-checklist-intro{margin:0 0 16px;color:var(--muted);font-size:11px;line-height:1.55}
.handoff-checklist-group{margin:0 0 17px}
.handoff-checklist-group h3{margin:0 0 8px;padding:0 0 6px;border-bottom:1px solid var(--line);color:var(--green-dark);font-size:13px}
.handoff-checklist-group .pv-checklist-grid{margin-bottom:0}
.handoff-checklist-group .pv-checklist-grid label{background:#fff}
.handoff-checklist-group .pv-checklist-grid a{color:var(--green-dark);font-size:10px;font-weight:800;text-decoration:underline}
