:root{--yellow:#ffdd00;--green:#11aa00;--blue:#0011ff;--red:#dd0011;--purple:#bb00ff}
*{box-sizing:border-box}body{margin:0;background:#f6f7fb;color:#191c29;font:16px/1.6 system-ui,sans-serif}header{height:88px;background:#fff;border-bottom:1px solid #e2e4ee;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px)}a{color:inherit}.brand{text-decoration:none;display:flex;align-items:center;gap:8px;font-weight:750;font-size:23px}.logo{background:#0011ff;color:#fff;border-radius:12px;padding:1px 13px;margin-right:5px}.muted{font-weight:400;color:#666b7c}header form{display:flex;align-items:center;gap:18px}.account{font-size:14px;color:#545b70}button,input{font:inherit}button{cursor:pointer}.quiet{background:none;border:1px solid #d6d9e6;border-radius:8px;padding:7px 15px;color:#30364d}main{max-width:1150px;margin:58px auto;padding:0 26px;min-height:70vh}.eyebrow{font-size:12px;letter-spacing:2px;color:#0011ff;font-weight:750;margin-top:30px}h1{font-size:clamp(30px,4vw,44px);line-height:1.2;letter-spacing:-1.3px;margin:12px 0 17px}h2{font-size:19px;line-height:1.4;margin:22px 0 8px}.intro{color:#5c6375;max-width:650px;margin-bottom:38px}.section-label{display:flex;justify-content:space-between;margin:20px 0;font-weight:650}.section-label span{font-size:13px;font-weight:400;color:#666d7e}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.tile{position:relative;background:#fff;border:1px solid #dfe2ec;border-radius:16px;padding:25px;min-height:220px;text-decoration:none}.tile p{font-size:14px;color:#5c6375;margin:0}.badge{float:right;font-size:11px;color:#606779;padding:4px 8px;border-radius:20px;background:#f0f1f6}.active{border-color:#11aa00;box-shadow:0 4px 18px #0011ff10;transition:transform .15s}.active:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0011ff20}.active .badge{background:#eaf9e8;color:#17630f}.tile-link{display:flex;justify-content:space-between;color:#0011ff;margin-top:23px;font-size:13px;font-weight:650}.footnote,.help{font-size:13px;color:#5c6375}.footnote{margin-top:25px}.back{font-size:14px;color:#0011ff;text-decoration:none}.panel{background:white;border:1px solid #dfe2ec;border-radius:18px;padding:30px;max-width:690px}.panel h2{margin-top:0;margin-bottom:25px}.field{margin-bottom:24px}label{display:block;font-weight:600;font-size:14px;margin-bottom:7px}input{width:100%;border:1px solid #c8cddf;border-radius:8px;padding:12px;background:#fcfcff;color:#191c29}input:focus{outline:3px solid #d9ddff;border-color:#0011ff}a:focus-visible,button:focus-visible{outline:3px solid #0011ff;outline-offset:4px}.help{margin:7px 0}.primary{background:#0011ff;color:white;border:0;border-radius:9px;padding:12px 20px;font-weight:650}.actions{display:flex;align-items:center;gap:24px;border-top:1px solid #e5e7ef;padding-top:24px}.notice{background:#edfaeb;border:1px solid #11aa00;padding:14px;border-radius:9px}.errorlist{color:#dd0011;font-size:14px;padding-left:20px}.login{max-width:560px;margin:auto}footer{border-top:1px solid #e2e4ee;padding:24px;text-align:center;color:#646c7b;font-size:12px}@media(max-width:900px){.tiles{grid-template-columns:repeat(2,1fr)}}@media(max-width:580px){.tiles{grid-template-columns:1fr}header{padding:0 20px;height:74px}.account{display:none}main{margin-top:32px;padding:0 20px}.panel{padding:22px}.actions{align-items:flex-start;flex-direction:column;gap:16px}.brand{font-size:19px}}

/* Anlagenfarben nach der vorgegebenen Palette. */
header{border-top:5px solid transparent;border-image:linear-gradient(90deg,var(--yellow) 0% 20%,var(--green) 20% 40%,var(--blue) 40% 60%,var(--red) 60% 80%,var(--purple) 80% 100%) 1}
.tile{border-top:5px solid var(--accent)}
.tile:nth-child(1){--accent:var(--red)}
.tile:nth-child(2){--accent:var(--green)}
.tile:nth-child(3){--accent:var(--yellow)}
.tile:nth-child(4){--accent:var(--blue)}
.tile:nth-child(5),.tile:nth-child(6),.tile:nth-child(7){--accent:var(--purple)}
.logo{background:var(--yellow);color:#111}
.primary:hover{background:#000dcc}
.panel{border-top:4px solid var(--blue)}
@media(prefers-reduced-motion:reduce){.active{transition:none}.active:hover{transform:none}}

.system-icon{display:inline-block;width:44px;height:46px;vertical-align:middle;object-fit:contain}

.tile:nth-child(6){--accent:var(--blue)}

.currency-input{position:relative}.currency-input input{padding-right:48px}.currency-suffix{position:absolute;right:17px;top:50%;transform:translateY(-50%);color:#545b70;pointer-events:none}

textarea{font:inherit;width:100%;min-height:140px;padding:12px;border:1px solid #c8cddf;border-radius:8px;background:#fcfcff;color:#191c29;resize:vertical}textarea:focus{outline:3px solid #d9ddff;border-color:#0011ff}

.main-nav{display:flex;gap:6px;margin-right:auto;margin-left:42px}.main-nav a{text-decoration:none;font-size:14px;font-weight:600;color:#545b70;padding:9px 14px;border-radius:8px}.main-nav a:hover{background:#f0f1ff}.main-nav a.selected{color:var(--blue);background:#eceeff}.dashboard-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-tiles .tile:nth-child(1){--accent:var(--blue)}.dashboard-tiles .tile:nth-child(2){--accent:var(--green)}
@media(max-width:760px){header{height:auto;min-height:88px;flex-wrap:wrap;gap:12px;padding-top:14px;padding-bottom:14px}.main-nav{order:3;width:100%;margin:0;border-top:1px solid #e2e4ee;padding-top:10px}header form{margin-left:auto}.dashboard-tiles{grid-template-columns:1fr}}

.scenario-tiles .scenario-gas{--accent:var(--red)}.scenario-tiles .tile{min-height:300px}.scenario-number{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#61697b}.scenario-icons{display:flex;gap:12px;align-items:center;margin:20px 0}.scenario-investment{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #e5e7ef;margin-top:24px;padding-top:16px;font-size:14px}.scenario-investment span{color:#5c6375}.scenario-detail{border-top-color:var(--red)}.scenario-facts{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:12px 20px;margin:25px 0}.scenario-facts dt{color:#5c6375;font-size:14px}.scenario-facts dd{margin:0;overflow-wrap:anywhere}@media(max-width:580px){.scenario-facts{grid-template-columns:1fr;gap:4px}.scenario-facts dd{margin-bottom:14px}}

.scenario-components{display:grid;gap:20px;margin-top:20px}.scenario-total{font-size:28px;font-weight:700;margin:12px 0}

.scenario-tiles .scenario-heat-pump{--accent:var(--green)}.scenario-pump-detail{border-top-color:var(--green)}

.funding-label{font-size:11px;font-weight:650;color:#72009b;background:#f7e9ff;border-radius:6px;padding:5px 8px}.scenario-icons{flex-wrap:wrap}.scenario-edit-links{display:flex;flex-direction:column;gap:12px}

.dashboard-tiles .tile:nth-child(3){--accent:var(--purple)}.price-sections{display:grid;gap:24px}.price-panel{max-width:900px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:right;padding:14px 16px;border-bottom:1px solid #e2e4ee;white-space:nowrap}th:first-child,td:first-child{text-align:left}th{background:#f6f7fb;font-weight:650}th span{font-size:12px;font-weight:400;color:#5c6375}tbody tr:last-child td{border-bottom:0}

.price-entry td{vertical-align:top}.price-entry input{min-width:140px;max-width:230px}.price-entry .errorlist{white-space:normal;text-align:left;max-width:230px}.price-save{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}.price-entry{background:#fafaff}

.dashboard-tiles .tile:nth-child(4){--accent:var(--blue)}.fixed-cost-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.fixed-heading{display:flex;align-items:center;gap:15px}.fixed-heading h2{margin:0;font-size:23px}.fixed-amount{font-size:clamp(28px,3.5vw,40px)!important;font-weight:750;color:#191c29!important;letter-spacing:-1px;margin:28px 0 8px!important}.fixed-amount span{display:block;font-size:14px;font-weight:400;letter-spacing:0;color:#5c6375}.device-model{overflow-wrap:anywhere}.fixed-breakdown{margin-top:22px;font-size:14px}.fixed-breakdown summary{cursor:pointer;color:var(--blue)}.fixed-breakdown .scenario-facts{grid-template-columns:1.4fr 1fr;font-size:13px;gap:10px}.fixed-breakdown .scenario-facts dt{font-size:13px}.fixed-missing{font-size:22px!important;margin-top:25px!important;font-weight:650}.missing-list{font-size:14px;color:#5c6375;padding-left:20px}@media(max-width:680px){.fixed-cost-tiles{grid-template-columns:1fr}}

.fixed-cost-card .fixed-amount{font-size:clamp(40px,5vw,64px)!important;line-height:1.12;font-weight:800;color:var(--accent)!important;margin:32px 0 24px!important;letter-spacing:-2px;overflow-wrap:anywhere}.fixed-cost-card:nth-child(3) .fixed-amount{color:#987e00!important}.fixed-cost-card .fixed-amount span{margin-top:10px;letter-spacing:0;font-size:15px;color:#5c6375}

/* Ruhige, zentrierte Darstellung der jaehrlichen Fixkosten. */
.fixed-cost-card .fixed-amount{text-align:center;font-weight:400;letter-spacing:-1.5px;font-variant-numeric:tabular-nums;line-height:1.18;margin:36px 0 30px!important}
.fixed-cost-card .fixed-amount span{text-align:center;font-size:13px;font-weight:400;letter-spacing:.5px;margin-top:12px}

.fixed-cost-card .fixed-amount span{display:inline;font:inherit;letter-spacing:inherit;color:inherit;margin:0 0 0 .16em}

.dashboard-tiles .tile:nth-child(5),.consumption-tiles .tile{--accent:var(--red)}.gas-forecast{border-top-color:var(--red)}.consumption-amount{font-size:clamp(32px,4vw,52px)!important;font-weight:400;color:var(--red)!important;line-height:1.2;margin:24px 0!important}.consumption-amount span{font-size:16px;color:#5c6375}.gas-history{margin-top:24px}

.consumption-chart-panel{max-width:none;width:100%;margin-bottom:28px;border-top-color:var(--red)}.chart-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.chart-heading h2{margin:0}.chart-unit{font-size:12px;color:#697184}.chart-legend{display:flex;flex-wrap:wrap;gap:14px 24px;font-size:12px;color:#697184;margin:18px 0}.chart-legend span{display:inline-flex;align-items:center;gap:8px}.chart-series-key:before{content:'';width:9px;height:9px;border-radius:50%;background:var(--red)}.chart-history-key:before,.chart-estimate-key:before{content:'';width:24px;border-top:2px solid var(--red)}.chart-estimate-key:before{border-top-style:dashed}.consumption-chart{width:100%;overflow-x:auto}.consumption-chart svg{display:block;width:100%;min-width:620px;height:auto}.chart-data{font-size:13px;margin-top:18px;color:#5c6375}.chart-data summary{cursor:pointer}

.consumption-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;width:100%;min-width:0}.consumption-layout>.consumption-chart-panel{grid-column:1/-1;width:100%;max-width:none;min-width:0;margin:0}.consumption-layout>.consumption-tiles{width:100%;min-width:0;gap:28px;grid-template-columns:repeat(3,minmax(0,1fr))}.consumption-layout .tile{min-width:0}@media(max-width:900px){.consumption-layout>.consumption-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.consumption-layout{gap:24px}.consumption-layout>.consumption-tiles{grid-template-columns:minmax(0,1fr);gap:24px}}

.fixed-chart-panel{max-width:none;width:100%;margin-bottom:30px}.fixed-cost-chart{overflow-x:auto;width:100%}.fixed-cost-chart svg{width:100%;min-width:800px;display:block;height:auto}.fixed-legend-dot{display:inline-block;width:10px;height:10px;border-radius:3px}

.price-chart-panel{width:100%;max-width:none;margin-bottom:28px;border-top-color:var(--red)}.gas-price-chart{overflow-x:auto;width:100%}.gas-price-chart svg{display:block;width:100%;min-width:650px;height:auto}

.electricity-series-key:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--blue)}
.price-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.price-sections>.price-panel{max-width:none;min-width:0;padding:22px}.price-sections th,.price-sections td{padding:12px 8px}.price-sections .price-entry input{min-width:0;width:100%;padding:9px 6px;font-size:13px}.price-sections .price-entry td:first-child{width:39%}.price-sections .price-entry td:not(:first-child){width:30.5%}.price-sections .price-save{flex-wrap:wrap}.price-sections .price-save .help{font-size:12px}@media(max-width:1000px){.price-sections{grid-template-columns:minmax(0,1fr)}}

.price-delete{border:0;background:transparent;color:var(--red);font-size:12px;padding:5px 0;cursor:pointer}.price-delete:hover{text-decoration:underline}.price-sections .price-entry td:first-child{width:auto}.price-sections .price-entry td:not(:first-child){width:auto}.price-delete-cell{width:1%;white-space:nowrap}.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}

.import-tiles .tile{--accent:var(--yellow)}.pv-module-history{max-width:none;margin-top:28px;min-width:0}.pv-module-history table{font-variant-numeric:tabular-nums}.pv-module-history th:first-child{position:sticky;left:0;background:#f6f7fb;z-index:1}.pv-module-history td{font-size:13px}

.module-entry-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.module-entry-grid .field{margin:0 0 8px}.module-entry-grid input{min-width:0;padding:11px 8px}.module-entry-grid label{font-size:13px}.entry-mode{border:0;padding:0;margin:0 0 22px}.entry-mode legend{font-weight:600;font-size:14px;margin-bottom:8px}.entry-mode input{width:auto;margin-right:7px}.entry-mode label{font-weight:400}.module-entry-grid .errorlist{padding-left:14px;font-size:12px}@media(max-width:600px){.module-entry-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:380px){.module-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* PV-Eingabe nutzt auf Monitoren die gesamte Inhaltsbreite. */
.fixed-chart-panel + .price-panel{max-width:none;width:100%;min-width:0;margin-bottom:30px}
.year-navigation{display:flex;align-items:center;justify-content:center;gap:32px;margin:0 0 28px;font-size:28px}.year-navigation a{font-size:28px;padding:4px 16px}
.period-select{display:flex;flex-wrap:wrap;align-items:end;justify-content:center;gap:18px;margin-bottom:28px}.period-select label{margin:0}.period-select select{display:block;padding:8px 14px;border:1px solid #c8cddf;border-radius:8px;font:inherit;background:white}.comparison-chart svg{display:block;width:100%;height:auto}
.efficiency-chart{overflow-x:auto}.efficiency-chart svg{display:block;width:100%;height:auto}
.sonnen-history table{table-layout:fixed;width:100%;font-variant-numeric:tabular-nums}.sonnen-history th,.sonnen-history td{white-space:normal;overflow-wrap:anywhere;padding:12px 5px;font-size:12px}.sonnen-history thead th{font-size:11px;hyphens:auto}
.idm-month{max-width:260px}.idm-fields{border:0;padding:0;margin:0 0 24px}.idm-fields legend{font-weight:650;font-size:15px;margin-bottom:12px}.idm-entry-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.idm-entry-row .field{margin:0}.idm-entry-row input{min-width:0}@media(max-width:580px){.idm-entry-row{grid-template-columns:1fr}}
@media(max-width:700px){.sonnen-history table,.sonnen-history tbody,.sonnen-history tr,.sonnen-history td,.sonnen-history th{display:block;width:100%}.sonnen-history thead{display:none}.sonnen-history tbody tr{margin-bottom:20px;border:1px solid #e2e4ee;border-radius:8px;overflow:hidden}.sonnen-history td{display:flex;justify-content:space-between;gap:12px;text-align:right}.sonnen-history td:before{content:attr(data-label);text-align:left;color:#5c6375}}
.measurement-panel{max-width:none;width:100%;min-width:0;margin-bottom:30px}.measurement-panel table{font-size:12px}.measurement-panel th,.measurement-panel td{padding:10px 8px}.measurement-panel th:first-child{white-space:normal;min-width:160px}.measurement-panel details{margin-top:20px}
.fixed-assumptions-panel table{table-layout:fixed;width:100%;font-size:12px;font-variant-numeric:tabular-nums}
.fixed-assumptions-panel th,.fixed-assumptions-panel td{white-space:normal;overflow-wrap:anywhere;padding:12px 5px;vertical-align:top}
.fixed-assumptions-panel th:first-child{width:14%;font-weight:600}
.fixed-assumptions-panel thead th{font-size:11px;line-height:1.45;hyphens:auto}
.fixed-assumptions-panel tbody th{line-height:1.5}
@media(max-width:580px){.fixed-assumptions-panel{padding:16px 10px}.fixed-assumptions-panel table{font-size:10px}.fixed-assumptions-panel thead th{font-size:10px}.fixed-assumptions-panel th,.fixed-assumptions-panel td{padding:9px 2px}}
.panel:has(#pv-manual-fields){max-width:none;width:100%}
.panel:has(#pv-manual-fields) #id_month{max-width:260px}
.panel:has(#pv-manual-fields) .module-entry-grid{gap:18px 22px}
@media(max-width:600px){.panel:has(#pv-manual-fields) .module-entry-grid{gap:12px}}
