:root{--font-serif: "Source Serif 4", Georgia, serif;--font-sans: "Poppins", sans-serif;--font-family: "Poppins", sans-serif;--ds-color-text: #1A1A1A;--ds-color-muted: #606060;--ds-color-border: #E6E6E6;--ds-color-bg: #F3F3F3;--ds-color-white: #FFFFFF;--ds-color-red: #dc3545;--ds-color-green-light: #8CBD6C;--ds-color-blue: #0D8FFF;--ds-color-elektro: #194736;--ds-color-solar: #CCED22;--ds-color-heizung: #CC57FC;--ds-btn-gradient: linear-gradient(135deg, #CCED22 0%, #194736 100%);--color-primary: #1A1A1A;--color-primary-hover: #525252;--color-primary-light: #F3F3F3;--color-primary-alpha-10: rgba(26, 26, 26, .1);--color-primary-shadow: rgba(26, 26, 26, .4);--color-gray-50: #F3F3F3;--color-gray-100: #F3F3F3;--color-gray-200: #E6E6E6;--color-gray-300: #D0D0D0;--color-gray-400: #ABABAB;--color-gray-500: #606060;--color-gray-600: #4a4a4a;--color-gray-700: #333333;--color-gray-800: #1A1A1A;--color-gray-900: #0d0d0d;--color-white: #ffffff;--color-black: #000000;--color-success: #4E7A36;--color-success-light: #e6efde;--color-success-dark: #3a5c28;--color-error: #dc3545;--color-error-hover: #b02a37;--color-error-light: #fde8e6;--color-error-dark: #b02a37;--color-error-bg: #fde8e6;--color-error-border: #f5b8b2;--color-warning: #f5a623;--color-warning-light: #fef3c7;--color-warning-dark: #b8770e;--color-info: #0D8FFF;--color-info-light: #e0f2fe;--color-info-dark: #0a72cc;--color-text-primary: #1A1A1A;--color-text-secondary: #606060;--color-text-disabled: #ABABAB;--color-text-tertiary: #ABABAB;--color-bg-primary: #ffffff;--color-bg-secondary: #F3F3F3;--color-bg-tertiary: #F3F3F3;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.5rem;--spacing-2xl: 2rem;--spacing-3xl: 3rem;--border-width: 1px;--border-width-thick: 2px;--border-color: #E6E6E6;--border-color-hover: #D0D0D0;--border-color-focus: #1A1A1A;--radius-none: 0;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .15);--shadow-xl: 0 20px 40px rgba(0, 0, 0, .2);--shadow-2xl: 0 20px 25px rgba(0, 0, 0, .15);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .875rem;--font-size-md: .9375rem;--font-size-lg: 1rem;--font-size-xl: 1.125rem;--font-size-2xl: 1.375rem;--font-size-3xl: 1.875rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--z-dropdown: 1000;--z-modal: 10000;--z-toast: 9999;--z-tooltip: 5000;--bp-sm: 576px;--bp-md: 768px;--bp-lg: 992px;--bp-xl: 1200px;--bp-xxl: 1400px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn var(--transition-fast) ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate-fade-out{animation:fadeOut var(--transition-fast) ease-out}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.animate-slide-in-right{animation:slideInRight var(--transition-slow) ease-out}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.animate-slide-in-left{animation:slideInLeft var(--transition-slow) ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slideUp var(--transition-normal) ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.animate-slide-down{animation:slideDown var(--transition-normal) ease-out}@keyframes zoomIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-zoom-in{animation:zoomIn var(--transition-normal) ease-out}@keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.animate-zoom-out{animation:zoomOut var(--transition-normal) ease-out}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}.animate-shake{animation:shake .5s ease-in-out}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-bounce{animation:bounce 1s ease-in-out infinite}@keyframes scale{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.animate-scale{animation:scale .3s ease-in-out}.animate-duration-fast{animation-duration:var(--transition-fast)}.animate-duration-normal{animation-duration:var(--transition-normal)}.animate-duration-slow{animation-duration:var(--transition-slow)}.animate-delay-short{animation-delay:.1s}.animate-delay-medium{animation-delay:.2s}.animate-delay-long{animation-delay:.3s}.animate-infinite{animation-iteration-count:infinite}.animate-once{animation-iteration-count:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:0 var(--spacing-xl);height:44px;font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:400;line-height:1;border:1.5px solid transparent;border-radius:999px;cursor:pointer;transition:background-color var(--transition-normal),border-color var(--transition-normal),color var(--transition-normal);outline:none;-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--ds-color-text);border-color:var(--ds-color-text);color:var(--color-white)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background:var(--color-white);border-color:var(--ds-color-text);color:var(--ds-color-text)}.btn-secondary:hover:not(:disabled){background:var(--ds-color-text);color:var(--color-white)}.btn-danger{background:var(--color-error);border-color:var(--color-error);color:var(--color-white)}.btn-danger:hover:not(:disabled){background:var(--color-error-dark);border-color:var(--color-error-dark)}.btn-ghost{background:transparent;border-color:transparent;color:var(--ds-color-text)}.btn-ghost:hover:not(:disabled){background:var(--ds-color-bg)}.btn-sm{height:36px;padding:0 var(--spacing-lg);font-size:var(--font-size-sm)}.btn-md{height:44px;padding:0 var(--spacing-xl);font-size:var(--font-size-base)}.btn-lg{height:50px;padding:0 calc(var(--spacing-xl) * 1.5);font-size:var(--font-size-md)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:0;width:36px;height:36px;background:transparent;border:none;border-radius:50%;color:var(--ds-color-muted);cursor:pointer;transition:background-color var(--transition-normal),color var(--transition-normal)}.btn-icon:hover:not(:disabled){background:var(--ds-color-bg);color:var(--ds-color-text)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.btn-icon.btn-icon-danger:hover:not(:disabled){background:var(--color-error-light);color:var(--color-error)}.btn-icon-sm{width:28px;height:28px}.btn-icon-md{width:32px;height:32px}.btn-icon-lg{width:40px;height:40px}.btn-full{width:100%}.btn-with-icon{display:inline-flex;align-items:center;gap:var(--spacing-sm)}.btn-icon-left{margin-right:var(--spacing-xs)}.btn-icon-right{margin-left:var(--spacing-xs)}.btn-group{display:inline-flex;gap:var(--spacing-md)}.btn-loading{position:relative;pointer-events:none}.btn-loading:after{content:"";position:absolute;width:16px;height:16px;border:2px solid currentColor;border-radius:50%;border-top-color:transparent;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.form-group{margin-bottom:var(--spacing-lg)}.form-group:last-child{margin-bottom:0}.form-label{display:block;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-gray-700);margin-bottom:var(--spacing-sm)}.form-label.required:after{content:"*";color:var(--color-error);margin-left:var(--spacing-xs)}.form-input,.form-textarea,.form-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-white);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-sm);outline:none;transition:all var(--transition-fast);box-sizing:border-box}.form-input:hover:not(:disabled),.form-textarea:hover:not(:disabled),.form-select:hover:not(:disabled){border-color:var(--border-color-hover)}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--border-color-focus)}.form-input:disabled,.form-textarea:disabled,.form-select:disabled{background:var(--color-gray-50);color:var(--color-text-disabled);cursor:not-allowed}.form-input-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.form-input-lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-lg)}.form-textarea{resize:vertical;min-height:80px}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}.form-row-3{grid-template-columns:repeat(3,1fr)}.form-row-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 768px){.form-row,.form-row-3,.form-row-4{grid-template-columns:1fr}}.checkbox-label,.radio-label{display:inline-flex;align-items:center;gap:var(--spacing-md);font-size:var(--font-size-md);color:var(--color-gray-700);cursor:pointer;-webkit-user-select:none;user-select:none;line-height:var(--line-height-normal)}.checkbox-input,.radio-input{width:20px;height:20px;cursor:pointer;margin:0;accent-color:var(--color-primary)}.checkbox-input:disabled,.radio-input:disabled{cursor:not-allowed;opacity:.5}.form-input.is-invalid,.form-textarea.is-invalid,.form-select.is-invalid{border-color:var(--color-error)}.form-input.is-valid,.form-textarea.is-valid,.form-select.is-valid{border-color:var(--color-success)}.form-error,.form-success,.form-hint{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-sm)}.form-error{color:var(--color-error)}.form-success{color:var(--color-success)}.form-hint{color:var(--color-text-secondary);font-style:italic}.form-section{margin-bottom:var(--spacing-2xl)}.form-section-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-lg) 0}.form-section-description{font-size:var(--font-size-base);color:var(--color-text-secondary);margin-bottom:var(--spacing-xl)}.form-input-wrapper{position:relative;display:flex;align-items:center}.form-input-icon{position:absolute;left:var(--spacing-md);color:var(--color-gray-400);pointer-events:none}.form-input-wrapper .form-input{padding-left:calc(var(--spacing-md) * 2.5)}.switch-wrapper{display:inline-flex;align-items:center;gap:var(--spacing-md)}.switch{position:relative;display:inline-block;width:44px;height:24px}.switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--color-gray-300);transition:var(--transition-fast);border-radius:var(--radius-full)}.switch-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:var(--color-white);transition:var(--transition-fast);border-radius:50%}.switch input:checked+.switch-slider{background-color:var(--color-primary)}.switch input:checked+.switch-slider:before{transform:translate(20px)}.switch input:disabled+.switch-slider{opacity:.5;cursor:not-allowed}*,*:before,*:after{box-sizing:border-box}html{overflow:hidden}body{margin:0;padding:0;font-family:var(--font-family);font-size:16px;line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none}body::-webkit-scrollbar{display:none}input,textarea,select,button{font-family:inherit}input[type=checkbox]:not(.toggle-switch-input){appearance:none;-webkit-appearance:none;flex:0 0 auto;width:20px;height:20px;margin:0;padding:0;border:1px solid var(--ds-color-text);border-radius:0;background:var(--color-white);cursor:pointer;position:relative;vertical-align:middle}input[type=checkbox]:not(.toggle-switch-input):after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M3 8L6.5 11.5L13 4.5' stroke='white' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-position:center;background-repeat:no-repeat;background-size:14px 14px;clip-path:inset(0 100% 0 0);transition:clip-path .25s cubic-bezier(.55,.15,.4,1)}input[type=checkbox]:not(.toggle-switch-input):checked{background-color:var(--ds-color-text);border-color:var(--ds-color-text)}input[type=checkbox]:not(.toggle-switch-input):checked:after{clip-path:inset(0 0 0 0)}input[type=checkbox]:not(.toggle-switch-input):focus,input[type=checkbox]:not(.toggle-switch-input):focus-visible{outline:none;box-shadow:none}input[type=checkbox]:not(.toggle-switch-input):disabled{cursor:not-allowed;opacity:.5}input[type=radio]{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:20px;height:20px;margin:0;padding:0;border:1px solid var(--ds-color-text);border-radius:5px;background:var(--color-white);cursor:pointer;position:relative;vertical-align:middle;transition:background-color .15s ease,border-color .15s ease}input[type=radio]:after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--ds-color-text);transform:scale(0);transition:transform .15s ease}input[type=radio]:checked:after{transform:scale(1)}input[type=radio]:focus,input[type=radio]:focus-visible{outline:none;box-shadow:none}input[type=radio]:disabled{cursor:not-allowed;opacity:.5}@media (prefers-reduced-motion: reduce){input[type=checkbox]:not(.toggle-switch-input):after{transition:none}}h1,h2{font-family:var(--font-serif);font-weight:400;color:var(--ds-color-text);letter-spacing:-.01em;margin:0}h3,h4{font-family:var(--font-sans);font-weight:500;color:var(--ds-color-text);margin:0}app-root{display:block;min-height:100vh}
