@import "https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;900&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--huber-red:red;--huber-red-soft:#ff000014;--huber-red-hover:#ff00001f;--huber-dark:#353535;--huber-elektro:#00afff;--huber-heiz:#ff8700;--huber-pv:#64be32;--gray-95:#f2f2f2;--gray-90:#e5e5e5;--gray-80:#ccc;--gray-70:#b2b2b2;--gray-60:#999;--gray-50:#7f7f7f;--gray-40:#666;--gray-30:#4c4c4c;--gray-20:#333;--bg-primary:#fafafa;--bg-card:#fff;--bg-sidebar:var(--huber-dark);--text-primary:var(--huber-dark);--text-secondary:var(--gray-50);--text-muted:var(--gray-60);--border-light:var(--gray-90);--border-medium:var(--gray-80);--chart-1:var(--huber-elektro);--chart-2:var(--huber-heiz);--chart-3:var(--huber-pv);--chart-4:var(--huber-red);--chart-5:#8b5cf6;--chart-6:#06b6d4;--chart-7:#ec4899;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 1px 2px #3535350a;--shadow-md:0 2px 8px #3535350f, 0 1px 2px #3535350a;--shadow-lg:0 8px 24px #35353514, 0 2px 8px #3535350a;--shadow-card:0 1px 3px #35353508, 0 0 0 1px #3535350a;--sidebar-width:260px}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Poppins,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.6}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);color:#fff;z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-logo{padding:var(--space-6) var(--space-5);border-bottom:1px solid #ffffff0f}.sidebar-logo-img{filter:brightness(0)invert();width:auto;height:22px}.sidebar-logo .logo-subtitle{color:#fff6;letter-spacing:1.5px;text-transform:uppercase;margin-top:2px;font-size:10px;font-weight:400}nav{padding:var(--space-3) 0;flex:1}.nav-link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);color:#ffffff80;border-left:3px solid #0000;margin:2px 0;font-size:13px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-link:hover{color:#ffffffd9;background:#ffffff0a}.nav-link.active{color:#fff;border-left-color:var(--huber-red);background:#ff000014}.sidebar-footer{padding:var(--space-2) 0;border-top:1px solid #ffffff0f}.logout-btn{cursor:pointer;color:#fff6;background:0 0;border:none;width:100%;font-family:inherit;font-size:13px}.logout-btn:hover{color:#ff6b6b!important;background:#ff00000f!important}.main-content{margin-left:var(--sidebar-width);padding:var(--space-7) var(--space-6);max-width:calc(100vw - var(--sidebar-width));flex:1}.page h1{color:var(--huber-dark);letter-spacing:-.3px;margin-bottom:var(--space-1);font-size:24px;font-weight:700}.page-subtitle{color:var(--text-muted);margin-bottom:var(--space-6);font-size:13px;font-weight:400}.kpi-grid{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.kpi-card{background:var(--bg-card);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-card);transition:box-shadow .2s,transform .2s;position:relative;overflow:hidden}.kpi-card:before{content:"";background:var(--gray-90);height:2px;transition:background .2s;position:absolute;top:0;left:0;right:0}.kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.kpi-card:hover:before{background:var(--huber-red)}.kpi-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.kpi-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;font-size:11px;font-weight:600}.kpi-value{color:var(--huber-dark);letter-spacing:-.5px;font-size:28px;font-weight:700;line-height:1.1}.kpi-subtitle{color:var(--text-secondary);margin-top:var(--space-1);font-size:12px}.kpi-trend{margin-top:var(--space-2);border-radius:20px;align-items:center;gap:3px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.chart-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(460px,1fr));display:grid}.chart-card{background:var(--bg-card);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-card)}.chart-card h3{color:var(--huber-dark);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--gray-90);font-size:14px;font-weight:600}.data-table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.data-table th{text-align:left;padding:var(--space-3) var(--space-4);background:var(--gray-95);color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--gray-90);font-size:11px;font-weight:600}.data-table th:first-child{border-radius:var(--radius-sm) 0 0 0}.data-table th:last-child{border-radius:0 var(--radius-sm) 0 0}.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--gray-90);color:var(--text-primary)}.data-table tbody tr{transition:background .1s}.data-table tbody tr:hover{background:var(--huber-red-soft)}.data-table tbody tr:last-child td{border-bottom:none}.loading-spinner{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-8);color:var(--text-muted);flex-direction:column;font-size:13px;display:flex}.spinner{border:2.5px solid var(--gray-90);border-top-color:var(--huber-red);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-msg{color:var(--huber-red);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);background:#ff00000a;border:1px solid #ff000026;font-size:13px;font-weight:500}.login-container{background:var(--huber-dark);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-container:before{content:"";background:conic-gradient(from 180deg, var(--huber-heiz) 0deg, var(--huber-elektro) 90deg, var(--huber-pv) 180deg, var(--huber-red) 270deg, var(--huber-heiz) 360deg);filter:blur(120px);opacity:.15;border-radius:50%;width:600px;height:600px;position:absolute;top:-30%;right:-10%}.login-form{padding:var(--space-7);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:1;background:#fff;width:100%;max-width:380px;position:relative}.login-logo{width:auto;height:28px;margin:0 auto var(--space-2);display:block}.login-form>p{color:var(--text-muted);text-align:center;margin-bottom:var(--space-6);font-size:12px;font-weight:400}.login-error{color:var(--huber-red);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);margin-bottom:var(--space-4);text-align:center;background:#ff00000d;border:1px solid #ff000026;font-size:12px;font-weight:500}.login-field{margin-bottom:var(--space-4)}.login-field label{color:var(--text-muted);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.6px;font-size:11px;font-weight:600;display:block}.login-field input{border:1.5px solid var(--gray-90);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);background:var(--gray-95);outline:none;padding:10px 14px;font-family:Poppins,sans-serif;font-size:14px;transition:border-color .15s,box-shadow .15s}.login-field input:focus{border-color:var(--huber-dark);background:#fff;box-shadow:0 0 0 3px #3535350f}.login-button{background:var(--huber-dark);color:#fff;border-radius:var(--radius-sm);cursor:pointer;width:100%;margin-top:var(--space-2);letter-spacing:.5px;text-transform:uppercase;border:none;padding:11px;font-family:Poppins,sans-serif;font-size:13px;font-weight:600;transition:background .15s,transform .1s}.login-button:hover{background:var(--gray-20);transform:translateY(-1px)}.login-button:active{transform:translateY(0)}.login-button:disabled{opacity:.5;cursor:not-allowed;transform:none}@media (width<=768px){.sidebar{width:64px}.sidebar-logo h2,.sidebar-logo .logo-subtitle,.nav-link span{display:none}.nav-link{padding:var(--space-3);border-bottom:2px solid #0000;border-left:none;justify-content:center}.nav-link.active{border-left:none;border-bottom-color:var(--huber-red)}.main-content{padding:var(--space-5) var(--space-4);margin-left:64px}.chart-grid{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
