:root{--primary-contrast:#1a4e3a;--secondary-contrast:#1a4e3a99;--background-gradient:linear-gradient(90deg,#e8f5f0,#b8e6d3);--background:#f0f9f5;--muted:rgba(34,139,94,.15);--surface:#fff;--border:rgba(34,139,94,.2);--top-gradient:#4ade8033;--bottom-gradient-top:#10b98175;--bottom-gradient-bottom:#22c55e30;--button:linear-gradient(90deg,#22c55e,#16a34a)}.dark-theme{--primary-contrast:#fff;--secondary-contrast:#ffffff99;--background-gradient:linear-gradient(90deg,#0b151e,#0b151e);--background:#0b151e;--muted:rgba(21,39,60,.6);--surface:#112031;--border:#ffffff20;--top-gradient:#1b72e833;--bottom-gradient-top:#1b72e8;--bottom-gradient-bottom:#1b72e850;--button:linear-gradient(90deg,#ffca28,#f57c00)}*{margin:0;font-family:Google Sans}html{background:var(--background)}body{color:var(--primary-contrast);background:var(--background-gradient);background-image:linear-gradient(rgba(240,249,245,.9),rgba(240,249,245,.9)),url(https://images.unsplash.com/photo-1635952887160-4c2a5c8ab1fb?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80);background-size:cover;background-position:50%;background-attachment:fixed;background-repeat:no-repeat;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center}.dots{pointer-events:none;height:100%;background-image:radial-gradient(circle at center,var(--muted) 2px,transparent 2px);background-size:30px 30px;background-position:12px 12px;-webkit-mask-image:linear-gradient(180deg,#000 0,transparent 50%);mask-image:linear-gradient(180deg,#000 0,transparent 50%)}.dots,.top-gradient{position:absolute;top:0;left:0;width:100%}.top-gradient{height:25vh;background:linear-gradient(180deg,transparent 0,var(--top-gradient) 50%);-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 calc(100% - 10vw));clip-path:polygon(0 0,100% 0,100% 100%,0 calc(100% - 10vw))}.bottom-gradient{position:fixed;bottom:0;width:90%;height:900px;margin-bottom:-550px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;--top:var(--bottom-gradient-top);--bottom:var(--bottom-gradient-bottom);--first:conic-gradient(from 90deg at 0% 50%,var(--top),var(--bottom));--second:conic-gradient(from 270deg at 100% 50%,var(--bottom),var(--top));-webkit-mask-image:radial-gradient(closest-side at 50% 50%,var(--background),transparent);mask-image:radial-gradient(closest-side at 50% 50%,var(--background),transparent);background-image:var(--first),var(--second);background-position-x:0,100%;background-position-y:100%,0;background-repeat:no-repeat;opacity:.4;transform:translateY(-200px) rotate(180deg) translateZ(0);transform-origin:center center}.header{position:absolute;top:4vh;left:0;right:0;justify-content:center;padding:0 2rem;z-index:10}.header,.header-content{display:flex;align-items:center}.header-content{justify-content:space-between;width:100%;max-width:1200px}.header-home .header-content{justify-content:center;position:relative}.header-home .header-actions{position:absolute;right:0;top:50%;transform:translateY(-50%)}.header svg,.logo-text{padding:16px 25px}.logo-text h2{font-size:24px;font-weight:600;color:var(--primary-contrast);margin:0;letter-spacing:-.5px}.heading{font-size:48px;font-weight:500;letter-spacing:-2%;text-align:center}.regenerate-button{color:var(--background);background:var(--button)}.back-button{position:fixed;top:32px;left:32px;color:var(--primary-contrast);background-color:var(--surface);display:flex;align-items:center;gap:6px;text-decoration:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;border:1px solid #e0e0e0;box-shadow:0 2px 8px rgba(0,0,0,.1);transition:all .2s ease;cursor:pointer}.back-button:hover{background-color:#f5f5f5;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.button{font-size:15px;line-height:1.3;padding:11px 16px;border-radius:100px;transition:scale .2s,filter .2s}.button:hover{filter:brightness(1.1)}.button:active{scale:.97}.content{margin:120px 12px;justify-content:center;gap:80px}.content,.content header{display:flex;flex-direction:column;align-items:center}.content header{gap:32px}.content header h2{font-size:20px;font-weight:400}.data-container,.features{display:grid;grid-gap:10px;gap:10px}.features{text-wrap:balance}.data-container,.features{grid-template-columns:repeat(2,1fr)}.data-container{text-wrap:pretty}.card{flex-direction:column;padding:24px;gap:12px;max-width:360px}.clickable-card{cursor:pointer;transition:all .2s ease;text-decoration:none;color:inherit}.clickable-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.15)}.clickable-card .card-action{font-size:14px;font-weight:600;color:#22c55e;text-align:center;margin-top:8px;padding:8px 16px;background:rgba(34,197,94,.1);border-radius:20px;border:1px solid rgba(34,197,94,.2)}.card h2{font-size:24px;line-height:1.2;font-weight:500;letter-spacing:-2%}.card h2,.card p{text-align:center}.card p{font-size:13px;line-height:1.5;color:var(--secondary-contrast);letter-spacing:-1%;word-break:keep-all;word-wrap:break-word}.card p a,.link{color:var(--primary-contrast);text-decoration:underline;text-underline-offset:2px}.links-container{padding-top:24px;gap:24px}.links,.links-container{display:flex;flex-wrap:wrap}.links{gap:10px}.links a{padding:14px 15px;color:var(--primary-contrast);font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap;justify-content:center;align-items:center;gap:4px}.card,.links a{position:relative;border-radius:24px;background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex}.card:before,.links a:before{content:"";position:absolute;inset:0;border-radius:24px;padding:1px;background:linear-gradient(var(--border),transparent 30%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.card:not(:first-child):after,.links a:not(:first-child):after{content:"";top:0;height:100%;background:var(--surface);position:absolute;pointer-events:none}.card:not(:first-child):after{width:10px;left:-10px;-webkit-mask:url(/between-cards.svg) no-repeat center/contain;mask:url(/between-cards.svg) no-repeat center/contain}.links a:not(:first-child):after{width:30px;left:calc(-20px);-webkit-mask:url(/between-links.svg) no-repeat center/contain;mask:url(/between-links.svg) no-repeat center/contain}@media only screen and (max-width:1023px){.heading{font-size:36px}.back-button{top:10px;left:10px;padding:8px 12px;font-size:14px;min-height:40px;min-width:120px}.data-container,.features{grid-template-columns:1fr}.card:after,.links a:after,.top-gradient{display:none}.bottom-gradient{width:150%;height:400px;margin-bottom:-450px}}.auth-container{display:flex;justify-content:center;align-items:center;min-height:70vh;padding:2rem 1rem}.auth-card{background:var(--surface);border-radius:16px;padding:2.5rem;width:100%;max-width:400px;box-shadow:0 10px 25px rgba(0,0,0,.1);border:1px solid var(--border)}.auth-heading{font-size:2rem;font-weight:600;text-align:center;margin-bottom:.5rem;color:var(--primary-contrast)}.auth-subtitle{text-align:center;color:var(--secondary-contrast);margin-bottom:2rem;line-height:1.5}.auth-form{gap:1.5rem}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-label{font-weight:500;font-size:.875rem}.form-input,.form-label{color:var(--primary-contrast)}.form-input{padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;background:var(--surface);transition:border-color .2s ease}.form-input:focus{outline:none;border-color:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.1)}.form-input:disabled{opacity:.6;cursor:not-allowed}.auth-button{background:var(--button);color:#fff;border:none;padding:.875rem 1rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:opacity .2s ease;margin-top:.5rem}.auth-button:hover:not(:disabled){opacity:.9}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-links{display:flex;flex-direction:column;gap:1rem;margin-top:2rem;text-align:center}.auth-link{color:#22c55e;text-decoration:none;font-size:.875rem;transition:color .2s ease}.auth-link:hover{color:#16a34a;text-decoration:underline}.auth-link.primary{font-weight:500;color:#22c55e}.auth-divider{display:flex;align-items:center;gap:.5rem;justify-content:center;color:var(--secondary-contrast);font-size:.875rem}.error-message{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:.75rem 1rem;border-radius:8px;font-size:.875rem;text-align:center}.success-message{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;padding:1rem;border-radius:8px;font-size:.875rem;line-height:1.5;margin:1rem 0}.success-icon{font-size:3rem;text-align:center;margin-bottom:1rem}.loading-container{display:flex;justify-content:center;align-items:center;min-height:50vh}.loading-spinner{color:var(--secondary-contrast);font-size:1rem}.error-container{text-align:center;padding:2rem;color:var(--primary-contrast)}.error-container h2{margin-bottom:1rem;color:#dc2626}@media (max-width:640px){.auth-card{padding:2rem 1.5rem;margin:1rem}.auth-heading{font-size:1.75rem}}.profile-container{max-width:800px;margin:0 auto;padding:2rem 1rem}.profile-header{text-align:center;margin-bottom:3rem}.profile-heading{font-size:2.5rem;font-weight:600;color:var(--primary-contrast);margin-bottom:.5rem}.profile-subtitle{color:var(--secondary-contrast);font-size:1.1rem;line-height:1.5;margin-bottom:2rem}.profile-progress{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;margin-bottom:1rem}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-weight:500}.progress-percentage{color:#22c55e;font-weight:600}.progress-bar{background:#f3f4f6;border-radius:8px;height:8px;overflow:hidden;margin-bottom:.5rem}.progress-fill{background:linear-gradient(90deg,#22c55e,#16a34a);height:100%;border-radius:8px;transition:width .3s ease}.progress-hint{font-size:.875rem;color:var(--secondary-contrast);margin:0}.profile-form{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2rem;box-shadow:0 4px 6px rgba(0,0,0,.05)}.form-section{margin-bottom:2.5rem}.form-section:last-of-type{margin-bottom:2rem}.section-title{font-size:1.25rem;font-weight:600;color:var(--primary-contrast);margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--border)}.form-hint{font-size:.875rem;color:var(--secondary-contrast);margin:.5rem 0 0;line-height:1.4}.capacity-guide{margin-top:.75rem}.capacity-ranges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.capacity-range{background:var(--muted);color:var(--primary-contrast);padding:.25rem .75rem;border-radius:20px;font-size:.8rem;border:1px solid var(--border)}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border)}.button{padding:.875rem 2rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.button.primary{background:var(--button);color:#fff}.button.primary:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.button.secondary{background:transparent;color:var(--secondary-contrast);border:1px solid var(--border)}.button.secondary:hover:not(:disabled){background:var(--muted);color:var(--primary-contrast)}.button:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (max-width:768px){.profile-container{padding:1rem}.profile-form{padding:1.5rem}.form-actions{flex-direction:column-reverse}.button{width:100%}.capacity-ranges{flex-direction:column}.capacity-range{text-align:center}}.header-actions{display:flex;align-items:center}.user-menu{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.user-greeting{font-size:.875rem;color:var(--secondary-contrast);white-space:nowrap}.auth-actions,.user-actions{display:flex;align-items:center;gap:1rem}.header-link{color:var(--primary-contrast);text-decoration:none;font-weight:500;font-size:.875rem;transition:color .2s ease}.header-link:hover{color:#22c55e}.header-button{background:var(--button);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:opacity .2s ease;text-decoration:none;display:inline-flex;align-items:center}.header-button:hover{opacity:.9}@media (max-width:768px){.header{padding:1rem;top:2vh}.header-content{flex-direction:column;gap:1rem}.header-home .header-content{justify-content:center}.header-home .header-actions{position:static;transform:none}.user-menu{align-items:center;text-align:center}.auth-actions,.user-actions{justify-content:center}.user-greeting{white-space:normal;text-align:center}}.input-container{max-width:900px;margin:0 auto;padding:2rem 1rem}.input-header{text-align:center;margin-bottom:3rem}.input-heading{font-size:2.5rem;font-weight:600;color:var(--primary-contrast);margin-bottom:.5rem}.input-subtitle{color:var(--secondary-contrast);font-size:1.1rem;line-height:1.5}.input-content{display:flex;flex-direction:column;gap:2rem}.input-form{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2rem;box-shadow:0 4px 6px rgba(0,0,0,.05)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:2rem;gap:2rem;margin-bottom:2rem}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.form-textarea{padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;background:var(--surface);color:var(--primary-contrast);transition:border-color .2s ease;resize:vertical;min-height:80px;font-family:inherit}.form-textarea:focus{outline:none;border-color:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.1)}.submit-button{background:var(--button);color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%}.submit-button:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.advice-container{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2rem;box-shadow:0 4px 6px rgba(0,0,0,.05)}.advice-title{display:flex;justify-content:space-between;align-items:center;font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:var(--primary-contrast)}.advice-level{font-size:1rem;padding:.5rem 1rem;border-radius:20px;font-weight:500}.advice-level.ok{background:#f0fdf4;color:#166534}.advice-level.warn{background:#fffbeb;color:#92400e}.advice-level.alert{background:#fef2f2;color:#dc2626}.advice-content{display:flex;flex-direction:column;gap:1.5rem}.advice-summary{display:flex;justify-content:space-around;background:var(--muted);border-radius:12px;padding:1.5rem}.metric{text-align:center}.metric-label{display:block;font-size:.875rem;color:var(--secondary-contrast);margin-bottom:.5rem}.metric-value{display:block;font-size:1.5rem;color:var(--primary-contrast)}.advice-messages{display:flex;flex-direction:column;gap:.75rem}.advice-message{padding:1rem;background:#f8fafc;border-left:4px solid #22c55e;border-radius:0 8px 8px 0;color:var(--primary-contrast)}.advice-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem}.dashboard-container{max-width:1200px;margin:0 auto;padding:2rem 1rem}.dashboard-header{text-align:center;margin-bottom:3rem}.dashboard-heading{font-size:2.5rem;font-weight:600;color:var(--primary-contrast);margin-bottom:.5rem}.dashboard-subtitle{color:var(--secondary-contrast);font-size:1.1rem}.alert-card{background:var(--surface);border-radius:12px;padding:1.5rem;margin-bottom:2rem;border:1px solid var(--border);border-left:4px solid #f59e0b}.alert-card.warn{border-left-color:#f59e0b;background:#fffbeb}.alert-card h3{margin:0 0 .5rem;color:#92400e}.alert-card p{margin:0 0 1rem;color:#92400e}.button.small{padding:.5rem 1rem;font-size:.875rem}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:1.5rem;gap:1.5rem;margin-bottom:3rem}.action-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.5rem;text-align:center;transition:all .2s ease;text-decoration:none;color:var(--primary-contrast)}.action-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,.1)}.action-card.primary{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none}.action-icon{font-size:3rem;margin-bottom:1rem}.action-card h3{font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.action-card p{margin:0;opacity:.8;font-size:.875rem}.advice-summary,.data-summary,.measurement-history{margin-bottom:3rem}.advice-summary h2,.data-summary h2,.measurement-history h2{font-size:1.5rem;font-weight:600;margin-bottom:1rem;color:var(--primary-contrast)}.measurement-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem}.measurement-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.measurement-time{font-size:.875rem;color:var(--secondary-contrast)}.measurement-mode{padding:.25rem .75rem;border-radius:20px;font-size:.875rem;font-weight:500}.measurement-mode.cool{background:#dbeafe;color:#1e40af}.measurement-mode.heat{background:#fed7d7;color:#c53030}.measurement-data{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:1rem;gap:1rem}.data-item{text-align:center}.data-label{display:block;font-size:.875rem;color:var(--secondary-contrast);margin-bottom:.25rem}.data-value{display:block;font-size:1.25rem;font-weight:600;color:var(--primary-contrast)}.measurement-table,.table-header,.table-row{display:grid;grid-template-columns:1fr 80px 100px 100px 100px;grid-gap:1rem;gap:1rem;align-items:center}.measurement-table{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.table-header{background:var(--muted);font-size:.875rem;color:var(--primary-contrast)}.table-row{padding:1rem;border-bottom:1px solid var(--border);font-size:.875rem}.mode-badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500;text-align:center}.mode-badge.cool{background:#dbeafe;color:#1e40af}.mode-badge.heat{background:#fed7d7;color:#c53030}.mode-badge.auto{background:#e5e7eb;color:#374151}.empty-state{padding:3rem;color:var(--secondary-contrast)}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{font-size:1.5rem;margin-bottom:.5rem;color:var(--primary-contrast)}.admin-container{max-width:1400px;margin:0 auto;padding:2rem 1rem}.admin-header{text-align:center;margin-bottom:3rem}.admin-heading{font-size:2.5rem;font-weight:600;color:var(--primary-contrast);margin-bottom:.5rem}.admin-subtitle{color:var(--secondary-contrast);font-size:1.1rem}.admin-tabs{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.5rem;margin-bottom:2rem;overflow-x:auto}.tab-button{flex:1 1;padding:.75rem 1rem;border:none;background:transparent;color:var(--secondary-contrast);font-weight:500;border-radius:8px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.tab-button.active{background:var(--button);color:#fff}.tab-button:hover:not(.active){background:var(--muted);color:var(--primary-contrast)}.tab-content{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:1.5rem;gap:1.5rem;margin-bottom:3rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;display:flex;align-items:center;gap:1rem}.stat-card.alert{border-left:4px solid #dc2626}.stat-icon{font-size:2.5rem}.stat-info h3{font-size:.875rem;color:var(--secondary-contrast);margin:0 0 .25rem}.stat-number{font-size:2rem;font-weight:600;color:var(--primary-contrast);margin:0}@media (max-width:768px){.form-grid,.form-row,.quick-actions{grid-template-columns:1fr}.measurement-data{grid-template-columns:repeat(2,1fr)}.measurement-table,.table-header,.table-row{grid-template-columns:1fr;gap:.5rem}.table-header,.table-row{padding:.75rem}.stats-grid{grid-template-columns:1fr}.admin-tabs{overflow-x:scroll}.advice-actions,.advice-summary{flex-direction:column}.advice-summary{gap:1rem}}.charts-section{margin:2rem 0}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:1.5rem;gap:1.5rem;margin-top:1rem}.chart-container{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px rgba(0,0,0,.1)}.chart-title{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:var(--primary-contrast)}.chart-empty{text-align:center;padding:2rem;color:var(--secondary-contrast)}.simple-chart{display:flex;align-items:flex-end;height:200px;gap:.5rem}.chart-y-axis{display:flex;flex-direction:column;justify-content:space-between;height:100%;margin-right:.5rem;font-size:.8rem;color:var(--secondary-contrast)}.chart-content{flex:1 1;height:100%}.chart-bars{display:flex;align-items:flex-end;justify-content:space-between;height:100%;gap:.25rem}.chart-bar-container{flex:1 1;display:flex;flex-direction:column;align-items:center;height:100%}.chart-bar{width:100%;max-width:40px;background:var(--button);border-radius:4px 4px 0 0;position:relative;display:flex;align-items:flex-end;justify-content:center;transition:opacity .2s;min-height:10px}.chart-bar:hover{opacity:.8}.chart-bar.temperature{background:linear-gradient(90deg,#ef4444,#f97316)}.chart-bar.power{background:linear-gradient(90deg,#3b82f6,#1d4ed8)}.chart-bar.efficiency{background:linear-gradient(90deg,#22c55e,#16a34a)}.bar-value{position:absolute;top:-1.5rem;font-size:.7rem;font-weight:600;color:var(--primary-contrast);white-space:nowrap}.bar-date{margin-top:.5rem;font-size:.7rem;color:var(--secondary-contrast);text-align:center}.chart-legend{display:flex;justify-content:center;margin-top:1rem;gap:1rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.8rem}.legend-color{width:12px;height:12px;border-radius:2px}.legend-color.temperature{background:linear-gradient(90deg,#ef4444,#f97316)}.legend-color.power{background:linear-gradient(90deg,#3b82f6,#1d4ed8)}.legend-color.efficiency{background:linear-gradient(90deg,#22c55e,#16a34a)}.legend-color.excellent{background:#22c55e}.legend-color.good{background:#f59e0b}.legend-color.poor{background:#ef4444}.trend-chart{display:flex;justify-content:space-between;align-items:center;margin:1rem 0;padding:1rem;background:rgba(34,139,94,.05);border-radius:8px}.trend-data,.trend-point{display:flex;flex-direction:column;align-items:center}.trend-data{gap:.5rem}.efficiency-circle{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;color:#fff;cursor:pointer;transition:transform .2s}.efficiency-circle:hover{transform:scale(1.1)}.efficiency-circle.excellent{background:#22c55e}.efficiency-circle.good{background:#f59e0b}.efficiency-circle.poor{background:#ef4444}.trend-date{font-size:.7rem;color:var(--secondary-contrast)}.trend-legend{display:flex;justify-content:center;gap:1rem;margin-top:1rem;flex-wrap:wrap}@media (max-width:768px){.charts-grid{grid-template-columns:1fr}.simple-chart{height:150px}.efficiency-circle{width:40px;height:40px;font-size:.8rem}.trend-chart{flex-wrap:wrap;gap:1rem}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border:1px solid #e0e0e0!important;cursor:default!important;pointer-events:none}.skeleton-text{height:1rem;background:transparent;border-radius:4px;width:80%;margin:0 auto}@keyframes skeleton-loading{0%{background-position:-200% 0}to{background-position:200% 0}}.button.skeleton{transition:opacity .3s ease}.button.skeleton,.button.skeleton:hover{opacity:.7;transform:none}.dark-theme .skeleton{background:linear-gradient(90deg,#2a2a2a 25%,#3a3a3a 50%,#2a2a2a 75%);background-size:200% 100%;border:1px solid #444!important}.control-panel{display:flex;justify-content:space-between;align-items:center;background:#f8f9fa;padding:1rem;border-radius:8px;margin:1rem 0 2rem;border:1px solid #e0e0e0}.control-group,.toggle-label{display:flex;align-items:center;gap:.5rem}.toggle-label{font-size:.9rem;color:#666;cursor:pointer}.toggle-label input[type=checkbox]{margin:0}.realtime-status{margin:2rem 0}.status-card{background:#fff;border-radius:12px;padding:1.5rem;border-left:4px solid #28a745;box-shadow:0 2px 8px rgba(0,0,0,.1)}.status-card.warn{border-left-color:#ffc107;background:#fffbf0}.status-card.alert{border-left-color:#dc3545;background:#fff5f5}.status-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.status-icon{font-size:1.5rem}.status-label{font-size:1.2rem;font-weight:600;color:#333}.status-metrics{display:flex;gap:2rem;margin:1rem 0}.metric{display:flex;flex-direction:column;align-items:center;padding:1rem;background:hsla(0,0%,100%,.7);border-radius:8px;min-width:120px}.metric-label{font-size:.85rem;color:#666;margin-bottom:.25rem}.metric-value{font-size:1.25rem;font-weight:600;color:#333}.status-messages{margin:1rem 0}.status-message{padding:.5rem 0;color:#555;border-bottom:1px solid #eee}.status-message:last-child{border-bottom:none}.recommendations{margin-top:1.5rem;background:rgba(0,0,0,.02);padding:1rem;border-radius:8px}.recommendations h4{margin:0 0 .75rem;color:#333;font-size:1rem}.recommendation{padding:.25rem 0;color:#555}.recent-data{margin:2rem 0}.data-table{background:#fff;border-radius:8px;overflow:hidden;border:1px solid #e0e0e0}.table-header{background:#f8f9fa;padding:1rem;font-weight:600;color:#333;border-bottom:1px solid #e0e0e0}.table-header,.table-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr}.table-row{padding:.75rem 1rem;border-bottom:1px solid #f0f0f0;transition:background-color .2s}.table-row:hover{background:#f8f9fa}.table-row:last-child{border-bottom:none}.empty-state{text-align:center;padding:3rem 2rem;background:#fff;border-radius:12px;border:1px solid #e0e0e0}.empty-state h3{margin:0 0 1rem;color:#666}.empty-state p{color:#888;margin-bottom:2rem}.action-buttons{display:flex;gap:1rem;justify-content:center;margin:2rem 0;flex-wrap:wrap}@media (max-width:768px){.control-panel,.status-metrics{flex-direction:column;gap:1rem}.table-header,.table-row{grid-template-columns:1fr;gap:.25rem}.table-header span,.table-row span{padding:.25rem 0}.action-buttons{flex-direction:column}}