:root{--ofe-green: oklch(75.5% .177 125.8);--ofe-green-dark: oklch(62% .177 125.8);--ofe-green-deep: oklch(50% .12 125.8);--ofe-green-light: oklch(88% .12 125.8);--ofe-green-tint: oklch(94% .01 125.8);--ofe-green-glow: oklch(75.5% .177 125.8 / .2);--ofe-bg: oklch(99% 0 0);--ofe-surface: oklch(98% 0 0);--ofe-card: oklch(100% 0 0);--ofe-border: oklch(91% .002 285.9);--ofe-border-soft: oklch(95% 0 0);--ofe-gray: oklch(59.7% .003 285.9);--ofe-ink: oklch(18% .005 285.9);--ofe-text: oklch(30% .005 285.9);--ofe-text-muted: oklch(50% .003 285.9);--ofe-text-soft: oklch(65% .003 285.9);--ofe-dark: oklch(18% .005 285.9);--ofe-deep: oklch(12% .005 285.9);--ofe-success: oklch(70% .15 150);--ofe-warning: oklch(78% .16 85);--ofe-danger: oklch(57.7% .245 27.3);--ofe-success-text: oklch(52% .13 150);--ofe-warning-text: oklch(55% .14 70);--ofe-danger-text: oklch(50% .21 27.3);--ofe-chart-1: oklch(75.5% .177 125.8);--ofe-chart-2: oklch(62% .177 125.8);--ofe-chart-3: oklch(45% .08 125.8);--ofe-chart-4: oklch(59.7% .003 285.9);--ofe-chart-5: oklch(25% .005 285.9);--ofe-font-display: "Manrope", ui-sans-serif, system-ui, "Segoe UI", sans-serif;--ofe-font-body: "Inter", ui-sans-serif, system-ui, "Segoe UI", sans-serif;--ofe-shadow-sm: 0 1px 2px 0 oklch(18% .005 285.9 / .05);--ofe-shadow-md: 0 4px 12px -2px oklch(18% .005 285.9 / .08), 0 2px 4px -2px oklch(18% .005 285.9 / .04);--ofe-shadow-lg: 0 12px 24px -8px oklch(18% .005 285.9 / .1), 0 4px 8px -4px oklch(18% .005 285.9 / .06);--ofe-shadow-cta: 0 8px 20px -6px var(--ofe-green-glow);--ofe-ease-out: cubic-bezier(.21, .6, .35, 1);--ci-green: var(--ofe-green);--ci-green-rgb: 148, 194, 43;--ci-gray: var(--ofe-gray);--ci-dark: var(--ofe-ink);--bg-body: var(--ofe-bg);--bg-surface: var(--ofe-surface);--bg-card: var(--ofe-card);--bg-card-hover: var(--ofe-surface);--bg-card-highlight: var(--ofe-green-tint);--bg-input: var(--ofe-card);--bg-header: oklch(100% 0 0 / .88);--border: var(--ofe-border);--border-focus: var(--ofe-green);--border-subtle: var(--ofe-border-soft);--text-primary: var(--ofe-ink);--text-secondary: var(--ofe-text);--text-muted: var(--ofe-text-muted);--text-label: var(--ofe-text);--accent-primary: var(--ofe-green);--accent-primary-glow: var(--ofe-green-tint);--accent-blue: var(--ofe-green-deep);--accent-blue-glow: var(--ofe-green-tint);--accent-green: var(--ofe-success);--accent-green-glow: oklch(70% .15 150 / .12);--accent-orange: var(--ofe-warning);--accent-orange-glow: oklch(78% .16 85 / .14);--accent-red: var(--ofe-danger);--accent-red-glow: oklch(57.7% .245 27.3 / .1);--accent-purple: var(--ofe-chart-3);--accent-teal: var(--ofe-chart-2);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--shadow-sm: var(--ofe-shadow-sm);--shadow-md: var(--ofe-shadow-md);--shadow-lg: var(--ofe-shadow-lg);--shadow-glow-blue: var(--ofe-shadow-sm);--shadow-glow-green: var(--ofe-shadow-cta);--transition-fast: .18s var(--ofe-ease-out);--transition-med: .3s var(--ofe-ease-out);--transition-slow: .55s var(--ofe-ease-out)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;scroll-behavior:smooth}body{font-family:var(--ofe-font-body);background:var(--bg-body);color:var(--text-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}.app{max-width:1400px;margin:0 auto;padding:0 var(--space-4)}.header{position:sticky;top:0;z-index:100;background:var(--bg-header);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);padding:var(--space-4) 0;margin-bottom:var(--space-4)}.header-content{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.header-logo{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:inherit}.header-logo:hover h1,.header-logo:hover h1 .accent{color:var(--ofe-green-dark)}.logo-icon{width:40px;height:40px;flex-shrink:0}.logo-icon img{width:100%;height:100%;object-fit:contain}.header h1{font-family:var(--ofe-font-display);font-size:1.35rem;font-weight:800;letter-spacing:-.02em;color:var(--ofe-ink)}.header h1 .accent{color:var(--ofe-green)}.header-subtitle{font-size:.78rem;color:var(--text-muted);font-weight:400;margin-top:2px}.section-header{margin-bottom:var(--space-6)}.eyebrow{display:block;font-family:var(--ofe-font-display);font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ofe-green-deep);margin-bottom:var(--space-2)}.section-header h2{font-family:var(--ofe-font-display);font-size:1.45rem;font-weight:800;letter-spacing:-.02em;color:var(--ofe-ink);margin-bottom:var(--space-1)}.section-header p{color:var(--text-secondary);font-size:.85rem}.input-grid{display:grid;gap:var(--space-4)}.input-grid.cols-2{grid-template-columns:repeat(2,1fr)}.input-grid.cols-3{grid-template-columns:repeat(3,1fr)}.input-grid.cols-4{grid-template-columns:repeat(4,1fr)}.results-grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.results-grid.cols-3{grid-template-columns:repeat(3,1fr)}.results-grid.cols-4{grid-template-columns:repeat(4,1fr)}.results-grid.cols-5{grid-template-columns:repeat(5,1fr)}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.chart-card{min-height:340px}.chart-container{position:relative;height:300px}.chart-container canvas{width:100%!important}.mt-1{margin-top:var(--space-4)}.text-right{text-align:right}.mt-2{margin-top:var(--space-8)}.footer a{color:var(--ofe-green-deep);text-decoration:none}.footer a:hover{text-decoration:underline}.footer-links{display:flex;justify-content:center;gap:var(--space-4);margin-top:var(--space-2)}.footer-note{max-width:620px;margin:var(--space-4) auto 0;color:var(--ofe-text-soft)}.footer{text-align:center;line-height:1.7;padding:var(--space-8) 0;color:var(--text-muted);font-size:.75rem;border-top:1px solid var(--border-subtle);margin-top:var(--space-8)}@media(max-width:1200px){.input-grid.cols-4,.results-grid.cols-5{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){html{font-size:13px}.input-grid.cols-4,.input-grid.cols-3{grid-template-columns:repeat(2,1fr)}.results-grid.cols-5{grid-template-columns:repeat(3,1fr)}.results-grid.cols-4{grid-template-columns:repeat(2,1fr)}.kpi-bar{grid-template-columns:repeat(3,1fr)}.charts-grid{grid-template-columns:1fr}}@media(max-width:600px){.input-grid.cols-4,.input-grid.cols-3,.input-grid.cols-2,.results-grid.cols-5,.results-grid.cols-4,.results-grid.cols-3{grid-template-columns:1fr}.kpi-bar{grid-template-columns:repeat(2,1fr)}.tab-btn span:not(.tab-icon){display:none}.header h1{font-size:1rem}}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);border:1px solid transparent;font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-primary{background:var(--ofe-green);color:var(--ofe-ink);border-color:var(--ci-green);box-shadow:var(--shadow-glow-green);font-weight:700}.btn-primary:hover{transform:translateY(-1px);background:var(--ofe-green-dark);box-shadow:var(--ofe-shadow-md)}.btn-outline{background:transparent;color:var(--accent-blue);border-color:var(--border)}.btn-outline:hover{background:var(--accent-blue-glow);border-color:var(--accent-blue)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:.78rem}.btn-icon{font-size:1.1em;background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm)}.btn-icon:hover{color:var(--text-primary)}.btn-danger-sm{background:transparent;color:var(--text-muted);border:none;cursor:pointer;padding:2px 6px;font-size:1rem;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.btn-danger-sm:hover{color:var(--accent-red);background:var(--accent-red-glow)}.btn-danger-sm-lg{background:transparent;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;padding:var(--space-1) var(--space-3);font-size:1rem;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.btn-danger-sm-lg:hover{color:var(--accent-red);background:var(--accent-red-glow);border-color:var(--accent-red)}.kpi-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.kpi-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:2px;transition:all var(--transition-med);position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.kpi-positive:before{background:var(--ofe-green)}.kpi-neutral:before{background:var(--ofe-gray)}.kpi-negative:before{background:var(--accent-orange)}.kpi-label{font-size:.72rem;font-family:var(--ofe-font-display);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.kpi-value{font-family:var(--ofe-font-display);font-size:1.45rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--text-primary)}.kpi-unit{font-size:.72rem;color:var(--text-secondary)}.kpi-accent:before{background:var(--ofe-green)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4);transition:border-color var(--transition-med)}.card:hover{border-color:var(--ofe-green-tint)}.card-highlight{border-color:var(--accent-blue);background:var(--bg-card-highlight);box-shadow:var(--shadow-glow-blue)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.card-header h3{font-family:var(--ofe-font-display);font-size:1.05rem;font-weight:700;letter-spacing:-.015em;color:var(--ofe-ink)}.input-group{display:flex;flex-direction:column;gap:var(--space-1)}.input-group label{font-size:.78rem;font-weight:500;color:var(--text-label)}.input-group input,.input-group select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:.92rem;padding:var(--space-2) var(--space-3);transition:all var(--transition-fast);width:100%}.input-group input:focus,.input-group select:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-glow)}.input-group input:user-invalid,.input-group input.input-invalid{border-color:var(--danger);box-shadow:0 0 0 2px #e4001526;box-shadow:0 0 0 2px oklch(57.7% .245 27.3 / .15)}.input-hint{display:block;font-size:.72rem;color:var(--text-muted);margin-top:var(--space-1);line-height:1.3}.input-suffix{position:relative;display:flex;align-items:center}.input-suffix input{padding-right:4rem}.input-suffix span{position:absolute;right:var(--space-3);font-size:.75rem;color:var(--text-muted);pointer-events:none}input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.input-readonly{background:var(--bg-card)!important;color:var(--text-secondary);cursor:default;border-color:var(--border-subtle)!important}.radio-group{display:flex;flex-direction:column;gap:var(--space-2)}.radio-label{display:flex;align-items:center;gap:var(--space-2);font-size:.85rem;color:var(--text-secondary);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.radio-label:hover{color:var(--text-primary);background:var(--ofe-surface)}.radio-label input[type=radio]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;border:2px solid var(--border);border-radius:50%;background:var(--bg-input);cursor:pointer;position:relative;flex-shrink:0}.radio-label input[type=radio]:checked{border-color:var(--accent-blue);background:var(--accent-blue)}.radio-label input[type=radio]:checked:after{content:"";position:absolute;top:3px;left:3px;width:6px;height:6px;border-radius:50%;background:#fff}.radio-label input[type=radio]:checked+span{color:var(--text-primary);font-weight:500}.radio-group-horizontal{display:flex;flex-direction:row;gap:var(--space-4);flex-wrap:wrap}.chk-inline{display:inline-flex;align-items:center;gap:.25em;margin-left:.5em;font-weight:400;font-size:.85em;color:var(--text-secondary);cursor:pointer}.chk-inline input[type=checkbox]{margin:0;cursor:pointer}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table th{text-align:left;padding:var(--space-2) var(--space-3);color:var(--text-muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);white-space:nowrap}.data-table th small{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-muted);display:block}.data-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:middle}.data-table tbody tr:hover{background:var(--ofe-surface)}.data-table input{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:.85rem;padding:var(--space-1) var(--space-2);width:100%;min-width:60px;transition:border-color var(--transition-fast)}.data-table input:focus{outline:none;border-color:var(--accent-blue)}.data-table input[type=text]{min-width:90px}.sum-row td{border-top:2px solid var(--border);border-bottom:none;font-weight:600;color:var(--text-primary)}.data-table.compact td{padding:var(--space-1) var(--space-3)}.table-section-header td{background:var(--ofe-surface);font-size:.8rem;color:var(--text-muted);padding-top:var(--space-2)!important;border-bottom:none}.sz-hint-row td{font-size:.75rem;color:var(--text-muted);font-style:italic;border-bottom:none;padding-top:0!important;padding-bottom:var(--space-2)!important}.text-hint{font-size:.8rem;color:var(--text-muted);line-height:1.5;margin:0}.eol-ok{color:var(--ofe-success-text)}.eol-warn{color:var(--ofe-warning-text)}.eol-fail{color:var(--ofe-danger-text)}.info-box{background:var(--ofe-green-tint);border-left:3px solid var(--ofe-green);border-radius:var(--radius-sm);padding:var(--space-3, 12px) var(--space-4, 16px);font-size:.8rem;color:var(--text-muted);line-height:1.6}.info-box strong{color:var(--text-primary)}.info-box ul{margin:var(--space-2, 8px) 0 0 0;padding-left:1.2em}.info-box li{margin-bottom:4px}.details-summary{cursor:pointer;color:var(--text-muted);list-style:none}.details-summary:before{content:"▸ ";font-size:.85em}details[open]>.details-summary:before{content:"▾ "}.result-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:2px}.result-card.result-accent{border-color:var(--accent-blue);background:var(--accent-blue-glow)}.result-card.inline-result{justify-content:center}.result-label{font-size:.72rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.result-value{font-size:1.2rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.result-unit{font-size:.72rem;color:var(--text-secondary)}.variant-1{border-left:3px solid var(--accent-green)}.variant-2{border-left:3px solid var(--accent-blue)}.variant-3{border-left:3px solid var(--accent-orange)}.variant-4{border-left:3px solid var(--accent-purple)}.result-card.delta-positive{border-color:var(--accent-green);background:var(--accent-green-glow)}.result-card.delta-negative{border-color:var(--accent-red);background:var(--accent-red-glow)}.laufzeit-table td{font-variant-numeric:tabular-nums;text-align:right}.laufzeit-table th{text-align:right}.laufzeit-table td:first-child,.laufzeit-table th:first-child{text-align:center}.laufzeit-table .positive{color:var(--ofe-success-text)}.laufzeit-table .negative{color:var(--ofe-danger-text)}.laufzeit-table .eeg-end{border-top:2px solid var(--accent-orange);opacity:.5}.cashflow-summary{display:flex;flex-direction:column;gap:var(--space-2)}.cf-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:.9rem}.cf-row:nth-child(odd){background:var(--ofe-surface)}.cf-row .cf-label{color:var(--text-secondary);font-weight:500}.cf-row .cf-value{font-weight:700;font-variant-numeric:tabular-nums}.cf-row .cf-value.positive{color:var(--ofe-success-text)}.cf-row .cf-value.negative{color:var(--ofe-danger-text)}.cf-row.cf-total{background:var(--accent-blue-glow);border:1px solid var(--accent-blue);border-radius:var(--radius-md);margin-top:var(--space-2);font-size:1rem}.cf-row.cf-total .cf-label{color:var(--text-primary);font-weight:600}.cf-row.cf-total .cf-value{font-size:1.1rem}.cf-row.cf-indent{padding-left:var(--space-8);border-left:2px solid var(--border);margin-left:var(--space-3);opacity:.7}.cf-row.cf-indent .cf-label{font-size:.78rem;font-style:italic;color:var(--text-muted)}.cf-row.cf-indent .cf-value{font-size:.78rem;color:var(--text-muted)}.validation-msg{font-size:.78rem;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);margin-top:var(--space-2)}.validation-msg.warn{background:var(--accent-orange-glow);color:var(--accent-orange);border:1px solid oklch(78% .16 85 / .35)}.validation-msg.ok{background:var(--accent-green-glow);color:var(--accent-green);border:1px solid oklch(70% .15 150 / .35)}.validation-msg.error{background:var(--accent-red-glow);color:var(--accent-red);border:1px solid oklch(57.7% .245 27.3 / .3)}.validation-msg.info{background:var(--ofe-green-tint);color:var(--text-secondary);border:1px solid oklch(75.5% .177 125.8 / .3)}.varianten-toolbar{display:flex;justify-content:flex-start;margin-bottom:var(--space-4)}.varianten-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.variante-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);transition:all var(--transition-med)}.variante-card:hover{border-color:#94c22b66;transform:translateY(-2px);box-shadow:var(--shadow-md)}.variante-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.variante-name{font-size:1rem;font-weight:600;color:var(--text-primary)}.variante-card-body{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.variante-info{display:flex;justify-content:space-between;font-size:.82rem}.variante-info-label{color:var(--text-muted)}.variante-info-value{color:var(--text-secondary);font-weight:500;font-variant-numeric:tabular-nums}.variante-card-footer{border-top:1px solid var(--border-subtle);padding-top:var(--space-2)}.variante-badge{font-size:.72rem;color:var(--text-muted);font-style:italic}.empty-state{text-align:center;padding:var(--space-8) var(--space-4);grid-column:1 / -1}.empty-state-icon{font-size:2.5rem;margin-bottom:var(--space-3);opacity:.5}.empty-state-title{font-size:1rem;font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-1)}.empty-state-sub{font-size:.85rem;color:var(--text-muted)}.details-card{cursor:default}.details-summary{display:flex;align-items:center;gap:var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--space-3) 0;list-style:none}.details-summary::-webkit-details-marker{display:none}.details-summary::marker{display:none;content:""}.details-arrow{font-size:.75rem;color:var(--text-muted);transition:transform var(--transition-fast);flex-shrink:0}.details-card[open] .details-arrow{transform:rotate(90deg)}.details-summary h3{font-size:1rem;font-weight:600;color:var(--text-primary)}.details-content{padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.maisdeckel-warn{background:var(--accent-red-glow)!important}.maisdeckel-warn td{border-bottom-color:#e400154d!important;border-bottom-color:oklch(57.7% .245 27.3 / .3)!important}.maisdeckel-info{font-size:.7rem;color:var(--accent-red);font-weight:600;margin-top:2px;letter-spacing:.02em}.kosten-section-header td{background:var(--ofe-surface);color:var(--text-secondary);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;padding-top:var(--space-3)!important;padding-bottom:var(--space-2)!important;border-bottom:1px solid var(--border)!important}.kosten-section-fix td{border-top:3px solid var(--border)!important;margin-top:var(--space-4);padding-top:var(--space-4)!important}.kosten-subtotal td{border-top:1px solid var(--border);border-bottom:none;background:var(--ofe-surface);padding-top:var(--space-2)!important;padding-bottom:var(--space-2)!important}.kosten-subtotal-meta{font-size:.75rem;color:var(--text-muted);font-weight:400}.kosten-grand-total td{border-top:2px solid var(--accent-blue);background:var(--accent-blue-glow);padding-top:var(--space-3)!important;padding-bottom:var(--space-3)!important;font-size:.9rem}.kosten-einheit{width:70px;white-space:nowrap;color:var(--text-muted);font-size:.78rem}.th-einheit{width:70px}.kosten-inline-input{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:.82rem;padding:2px var(--space-2);width:80px;transition:border-color var(--transition-fast)}.kosten-inline-input:focus{outline:none;border-color:var(--accent-blue)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.calculating .kpi-value{animation:pulse .8s ease infinite}.card-max-invest{border-color:var(--ci-green);background:var(--ofe-green-tint);box-shadow:var(--ofe-shadow-md)}.card-badge{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ofe-green-deep);background:var(--ofe-green-tint);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);border:1px solid oklch(75.5% .177 125.8 / .3)}.card-hint{font-size:.78rem;color:var(--text-muted);margin-bottom:var(--space-3)}.invest-comparison-bar{margin-top:var(--space-3)}.invest-bar-label{display:flex;justify-content:space-between;font-size:.78rem;color:var(--text-secondary);margin-bottom:var(--space-2)}.invest-bar-track{height:10px;background:var(--bg-surface);border-radius:5px;overflow:hidden;border:1px solid var(--border-subtle)}.invest-bar-fill{height:100%;border-radius:5px;transition:width var(--transition-med),background var(--transition-med);background:var(--ci-green)}.invest-bar-fill.over-budget{background:var(--accent-red)}.invest-positive{color:var(--accent-green)!important}.invest-negative{color:var(--accent-red)!important}.hmax-energy-bar{padding:var(--space-3) var(--space-4);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.hmax-bar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.hmax-bar-title{font-size:.78rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.hmax-bar-status{font-size:.78rem;font-weight:700;padding:2px 8px;border-radius:var(--radius-sm)}.hmax-bar-status.hmax-ok{color:var(--accent-green);background:var(--accent-green-glow);border:1px solid oklch(70% .15 150 / .35)}.hmax-bar-status.hmax-insufficient{color:var(--accent-red);background:var(--accent-red-glow);border:1px solid oklch(57.7% .245 27.3 / .3)}.hmax-bar-track{height:20px;background:var(--bg-input);border-radius:10px;overflow:visible;border:1px solid var(--border-subtle);display:flex;position:relative}.hmax-bar-segment{height:100%;transition:width var(--transition-med);min-width:0}.hmax-bandlast{background:var(--ofe-chart-2);border-radius:10px 0 0 10px}.hmax-batterie{background:var(--ofe-chart-1)}.hmax-flex{background:var(--ofe-chart-3)}.hmax-fehlbetrag{background:repeating-linear-gradient(-45deg,#e4001573,#e4001573 4px,#e400152e 4px,#e400152e 8px);background:repeating-linear-gradient(-45deg,color(xyz 0.327 0.164 0.018 / 0.451),color(xyz 0.327 0.164 0.018 / 0.451) 4px,color(xyz 0.327 0.164 0.018 / 0.18) 4px,color(xyz 0.327 0.164 0.018 / 0.18) 8px);border-radius:0 10px 10px 0}.hmax-bar-segment:not(.hmax-fehlbetrag):last-child,.hmax-flex:not(:empty)+.hmax-fehlbetrag[style*="width:0%"]{border-radius:0}.hmax-bar-track>.hmax-bar-segment:last-child{border-radius:0 10px 10px 0}.hmax-bar-track>.hmax-bar-segment:first-child{border-radius:10px 0 0 10px}.hmax-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px;vertical-align:middle}.hmax-dot-bandlast{background:var(--ofe-chart-2)}.hmax-dot-batterie{background:var(--ofe-chart-1)}.hmax-dot-flex{background:var(--ofe-chart-3)}.hmax-dot-fehlbetrag{background:var(--accent-red)}.em-row-summe td{border-top:2px solid var(--border-subtle)}.em-row-fehlbetrag td{color:var(--accent-red)}.em-row-bedarf td{color:var(--text-muted);font-style:italic}.hmax-bar-labels{display:flex;justify-content:space-between;margin-top:var(--space-2);flex-wrap:wrap;gap:var(--space-1)}.hmax-bar-label{font-size:.72rem;color:var(--text-muted)}.hmax-label-required{font-weight:600;color:var(--text-secondary)}.hmax-bar-warning{margin-top:var(--space-2);font-size:.75rem;color:var(--accent-orange);padding:var(--space-1) var(--space-2);background:#e6ad001a;background:oklch(78% .16 85 / .1);border-radius:var(--radius-sm)}.card-toggle{border-color:var(--accent-blue);border-style:dashed;background:var(--ofe-surface)}.varianten-config-header{margin-bottom:var(--space-4)}.varianten-header-left{display:flex;align-items:center;gap:var(--space-4)}.varianten-header-left h2{margin-bottom:0}.variante-select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:.85rem;font-weight:500;padding:var(--space-2) var(--space-4);cursor:pointer;transition:all var(--transition-fast);min-width:180px}.variante-select:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-glow)}.variante-select option{background:var(--bg-card);color:var(--text-primary)}.variant-selector-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md)}.variant-selector-bar label{font-size:.82rem;font-weight:600;color:var(--text-secondary);white-space:nowrap}.einnahmen-detail{display:block;font-size:.72rem;color:var(--text-muted);margin-top:2px}.header-actions{display:flex;align-items:center;gap:var(--space-2)}.project-name-input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:.9rem;font-weight:600;padding:var(--space-2) var(--space-4);width:220px;transition:all var(--transition-fast)}.project-name-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-glow)}.sl-dialog{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--bg-card);color:var(--text-primary);padding:0;max-width:600px;width:90vw;max-height:80vh;box-shadow:var(--shadow-lg)}.sl-dialog::backdrop{background:#11111473;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sl-dialog-content{display:flex;flex-direction:column;max-height:80vh}.sl-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5);border-bottom:1px solid var(--border)}.sl-dialog-header h2{font-size:1.1rem;font-weight:700;margin:0}.sl-close{background:transparent;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:var(--space-1);line-height:1}.sl-close:hover{color:var(--text-primary)}.sl-dialog-body{padding:var(--space-4);overflow-y:auto;flex:1;min-height:120px}.sl-dialog-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-5);border-top:1px solid var(--border)}.sl-storage-info{font-size:.75rem;color:var(--text-muted)}.sl-list{display:flex;flex-direction:column;gap:var(--space-2)}.sl-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--transition-fast)}.sl-item:hover{border-color:var(--ci-green);background:var(--bg-card-hover)}.sl-item-info{display:flex;flex-direction:column;gap:2px;min-width:0}.sl-item-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sl-item-meta{font-size:.75rem;color:var(--text-muted)}.sl-item-actions{display:flex;gap:var(--space-2);align-items:center;flex-shrink:0}.sl-delete-btn{background:transparent;border:1px solid transparent;color:var(--text-muted);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:.85rem;transition:all var(--transition-fast)}.sl-delete-btn:hover{color:var(--accent-red);background:var(--accent-red-glow);border-color:var(--accent-red)}.sl-section-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:var(--space-3) 0 var(--space-1)}.sl-item-preset{border-style:dashed}.sl-empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-muted);font-size:.9rem}.dynamik-row th{padding:var(--space-1) var(--space-2)!important;font-weight:400;font-size:.75rem;border-bottom:2px solid var(--border)}.dynamik-input{width:36px;padding:1px 3px;font-size:.72rem;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:right;-moz-appearance:textfield}.dynamik-input::-webkit-inner-spin-button,.dynamik-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.dynamik-input:focus{outline:none;border-color:var(--accent-blue)}.sicherheit-info{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border)}.sicherheit-berechnung{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3);font-size:.9rem}.sicherheit-berechnung .result-label{color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.info-box{background:var(--ofe-surface);border:1px solid var(--border);border-left:3px solid var(--accent-blue);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:.78rem;color:var(--text-muted);line-height:1.5}.save-toast{position:fixed;bottom:var(--space-6);right:var(--space-6);background:var(--ofe-green);color:var(--ofe-ink);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:.85rem;font-weight:600;box-shadow:var(--shadow-md);z-index:1000;animation:toastIn .3s ease,toastOut .3s ease 2s forwards}@keyframes toastIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes toastOut{0%{opacity:1}to{opacity:0}}.card-battery{border-left:3px solid var(--ci-green)}.card-battery .battery-content{display:none}.card-battery.battery-active .battery-content{display:block}.battery-disclaimer{font-size:.82rem;color:var(--text-secondary);line-height:1.55;padding:var(--space-3) var(--space-4);background:var(--ofe-surface);border:1px solid var(--border);border-left:3px solid var(--accent-orange);border-radius:var(--radius-sm)}.battery-disclaimer p{margin:0 0 var(--space-2) 0}.battery-disclaimer p:last-child{margin-bottom:0}.battery-advanced{display:none}.battery-advanced.open{display:block}.chart-container-sm{height:260px}.chart-container-xs{height:180px}.battery-schema-summary{margin-top:var(--space-2)}.schema-info{display:flex;flex-wrap:wrap;gap:var(--space-2)}.schema-tag{display:inline-block;font-size:.8rem;font-weight:500;padding:4px 10px;border-radius:var(--radius-sm)}.schema-tag-green{background:var(--ofe-green-tint);color:var(--ofe-green-deep);border:1px solid oklch(75.5% .177 125.8 / .35)}.schema-tag-gray{background:var(--ofe-surface);color:var(--text-secondary);border:1px solid var(--ofe-border)}.invest-auto-row{opacity:.65;background:var(--bg-body)}.invest-auto-row input{pointer-events:none}.invest-auto-row .btn{visibility:hidden}.data-table td,.data-table th,.cf-row,.result-value,input[type=number]{font-variant-numeric:tabular-nums}.btn-ico{width:16px;height:16px;flex-shrink:0}.btn{display:inline-flex;align-items:center;gap:var(--space-2)}.btn-icon .btn-ico{width:15px;height:15px}.tab-nav{display:flex;gap:var(--space-1);background:var(--bg-surface);padding:var(--space-1);border-radius:var(--radius-lg);border:1px solid var(--border);margin-bottom:var(--space-6)}.tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-family:inherit;font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition-med)}.tab-btn:hover{color:var(--text-primary);background:var(--ofe-surface)}.tab-btn:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.tab-btn.active{background:var(--bg-card);color:var(--text-primary);border-color:var(--border);box-shadow:var(--shadow-sm);font-weight:600}.tab-icon{font-size:1.1em}.tab-panel{display:none;animation:fadeIn .3s ease}.tab-panel.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.tab-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--border);color:var(--text-secondary);font-size:.72rem;font-weight:700;flex-shrink:0}.tab-btn.active .tab-icon{background:var(--accent-blue);color:#fff}.variant-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.variant-btn{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.variant-btn:hover{color:var(--text-primary);border-color:var(--accent-blue)}.variant-btn.active{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.tab-navigation-buttons{display:flex;gap:var(--space-4);justify-content:flex-end;margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--border)}.pdf-export-buttons{display:flex;gap:var(--space-4);justify-content:center;margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--border)}
