/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}.fixed{position:fixed}.fixed\!{position:fixed!important}.container{width:100%}.mx-auto{margin-inline:auto}.flex{display:flex}.grid{display:grid}.table{display:table}.table-cell{display:table-cell}.table-row{display:table-row}.w-full{width:100%}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.text-center{text-align:center}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@keyframes fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:.6s ease-out fade-in}.animate-slide-up{animation:.5s ease-out slide-up}.animate-scale-in{animation:.4s ease-out scale-in}.backdrop-blur-fallback{background-color:#ffffffe6}@supports ((-webkit-backdrop-filter: blur(8px)) or (backdrop-filter: blur(8px))){.backdrop-blur-fallback{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#fffc}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#f3f4f6;color:#111827}.layout-container{min-height:100vh;display:flex}.sidebar{width:256px;background-color:#1f2937;color:#fff;padding:24px;display:flex;flex-direction:column}.sidebar-header{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid #374151;text-align:center}.sidebar-logo{flex-shrink:0}.logo-image{height:48px;width:auto;max-width:120px;-o-object-fit:contain;object-fit:contain}.sidebar-title{flex:1;min-width:0}.sidebar h2{font-size:18px;font-weight:700;margin-bottom:4px;line-height:1.2}.sidebar p{font-size:12px;color:#9ca3af;margin-bottom:0;line-height:1.3}.sidebar nav{flex-grow:1}.sidebar nav a{display:flex;align-items:center;width:100%;padding:12px;border-radius:8px;text-decoration:none;color:#d1d5db;transition:background-color .2s;margin-bottom:4px}.sidebar nav a:hover,.sidebar nav a.active{background-color:#2563eb;color:#fff}.sidebar nav a svg{margin-right:12px}.main-content{flex:1;padding:40px;background-color:#fff}.building-selector{margin-bottom:24px;border-bottom:1px solid #374151;padding-bottom:24px}.building-selector-header{display:flex;align-items:center;margin-bottom:16px;color:#9ca3af;font-size:14px;font-weight:500}.building-selector-header svg{margin-right:8px}.error-icon{color:#ef4444;margin-left:auto}.error-message{margin-top:8px;padding:8px;background-color:#7f1d1d;border-radius:4px;color:#fca5a5;font-size:12px}.building-dropdown{position:relative}.building-dropdown-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background-color:#374151;border:1px solid #4b5563;border-radius:8px;color:#fff;cursor:pointer;transition:all .2s;font-size:14px}.building-dropdown-trigger:hover{background-color:#4b5563;border-color:#6b7280}.building-dropdown-trigger:disabled{opacity:.6;cursor:not-allowed}.building-dropdown-trigger.open{border-color:#2563eb;background-color:#4b5563}.chevron{transition:transform .2s}.chevron.rotated{transform:rotate(180deg)}.building-dropdown-menu{position:absolute;top:100%;left:0;right:0;background-color:#374151;border:1px solid #4b5563;border-radius:8px;margin-top:4px;max-height:300px;overflow-y:auto;z-index:1000;box-shadow:0 10px 25px #0000004d}.building-dropdown-item{padding:16px;cursor:pointer;border-bottom:1px solid #4b5563;transition:background-color .2s}.building-dropdown-item:hover{background-color:#4b5563}.building-dropdown-item:last-child{border-bottom:none}.building-address{font-weight:600;color:#fff;margin-bottom:4px}.building-client{color:#d1d5db;font-size:14px;margin-bottom:4px}.building-details{color:#9ca3af;font-size:12px}.card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:24px}.card-header{display:flex;align-items:center;margin-bottom:16px}.card-icon{margin-right:12px;color:#2563eb}.card-title{font-size:18px;font-weight:600;color:#111827}.card-value{font-size:32px;font-weight:700;color:#111827;margin-bottom:8px}.card-description{font-size:14px;color:#6b7280}.section-title{font-size:28px;font-weight:700;color:#111827;margin-bottom:24px}.test-box{background-color:#ef4444;color:#fff;padding:16px;margin-bottom:16px;border-radius:8px}.client-details{background:#fff;border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb}.client-details h2{font-size:24px;font-weight:700;color:#111827;margin-bottom:20px}.client-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.client-detail-item{display:flex;flex-direction:column}.client-detail-label{font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.client-detail-value{font-size:16px;color:#111827;font-weight:500}.client-details-modern{background:#fff;border-radius:16px;padding:32px;margin-bottom:32px;box-shadow:0 4px 24px #0000000f;border:1px solid #f3f4f6;position:relative;overflow:hidden}.client-details-modern:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(135deg,#667eea,#764ba2)}.client-details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:20px;border-bottom:2px solid #f3f4f6}.client-details-title{display:flex;align-items:center;gap:12px}.client-details-title h2{font-size:24px;font-weight:700;color:#111827;margin:0;background:linear-gradient(135deg,#1f2937,#4f46e5);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.client-details-empty{text-align:center;padding:48px 24px;color:#6b7280}.client-details-empty svg{color:#9ca3af;margin-bottom:16px}.client-details-empty h3{font-size:20px;font-weight:600;color:#374151;margin:0 0 8px}.client-details-empty p{font-size:16px;line-height:1.5;margin:0}.loading-indicator{display:flex;align-items:center;gap:8px;color:#6b7280;font-size:14px}.error-banner{display:flex;align-items:center;gap:12px;padding:16px 20px;margin-bottom:24px;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fecaca;border-radius:12px;color:#dc2626;font-weight:500}.detail-section{background:linear-gradient(135deg,#fafbff,#f8fafc);border:1px solid #e2e8f0;border-radius:12px;margin-bottom:20px;overflow:hidden;transition:all .2s ease}.detail-section:hover{box-shadow:0 4px 12px #0000000d;border-color:#cbd5e1}.detail-section-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;cursor:pointer;background:#fff;border-bottom:1px solid #e2e8f0;transition:all .2s ease}.detail-section-header:hover{background:#f8fafc}.section-title{display:flex;align-items:center;gap:12px;margin:0}.section-title h3{font-size:16px;font-weight:600;color:#374151;margin:0}.detail-section-content{padding:24px;background:#fff}.detail-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:20px}.detail-row:last-child{margin-bottom:0}.detail-item{display:flex;flex-direction:column;gap:8px}.detail-label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.detail-value{font-size:15px;color:#111827;font-weight:500;line-height:1.4;word-break:break-word}.meter-number{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;background:#f1f5f9;padding:8px 12px;border-radius:8px;border:1px solid #e2e8f0;font-size:14px;font-weight:600}.contact-link{color:#2563eb;text-decoration:none;font-weight:600;transition:color .2s ease}.contact-link:hover{color:#1d4ed8;text-decoration:underline}.electricity-page{max-width:1400px;margin:0 auto;padding:0}.page-header{margin-bottom:32px}.page-header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.page-title{font-size:32px;font-weight:700;color:#111827;margin:0 0 8px;background:linear-gradient(135deg,#1f2937,#4f46e5);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page-subtitle{font-size:16px;color:#6b7280;margin:0;font-weight:400}.page-actions{display:flex;gap:12px}.building-info-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;padding:24px;margin-bottom:32px;color:#fff;box-shadow:0 8px 32px #0000001a}.building-name{font-size:24px;font-weight:700;margin:0 0 8px;color:#fff}.building-meta{display:flex;gap:24px;align-items:center}.meter-id,.building-type{font-size:14px;color:#ffffffe6;font-weight:500}.building-icon{padding:16px;background:#ffffff1a;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.controls-panel{background:#fff;border-radius:16px;padding:24px;margin-bottom:32px;box-shadow:0 4px 24px #0000000f;border:1px solid #f3f4f6}.controls-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;align-items:end}.control-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#374151;margin-bottom:8px}.control-input{padding:12px 16px;border:2px solid #e5e7eb;border-radius:12px;font-size:14px;font-weight:500;transition:all .2s ease;background:#fff}.control-input:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.control-hint{font-size:12px;color:#6b7280;margin-top:4px;font-style:italic}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:12px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s ease;cursor:pointer;border:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;box-shadow:0 4px 12px #3b82f64d}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #3b82f666}.btn-secondary{background:#f8fafc;color:#475569;border:2px solid #e2e8f0}.btn-secondary:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.alert{display:flex;align-items:flex-start;gap:12px;padding:16px 20px;border-radius:12px;margin-bottom:24px;border:1px solid}.alert h4{margin:0 0 4px;font-size:14px;font-weight:600}.alert p{margin:0;font-size:14px}.alert-error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.alert-info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:32px}.metric-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 24px #0000000f;border:1px solid #f3f4f6;display:flex;align-items:center;gap:16px;transition:all .2s ease}.metric-card:hover{transform:translateY(-2px);box-shadow:0 8px 32px #0000001a}.metric-icon{padding:16px;border-radius:12px;display:flex;align-items:center;justify-content:center}.metric-card-start .metric-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#2563eb}.metric-card-end .metric-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#059669}.metric-card-total .metric-icon{background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#7c3aed}.metric-card-demand .metric-icon{background:linear-gradient(135deg,#fed7d7,#feb2b2);color:#dc2626}.metric-content{flex:1}.metric-label{font-size:14px;color:#6b7280;font-weight:600;margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}.metric-value{font-size:24px;font-weight:700;color:#111827;display:flex;align-items:baseline;gap:8px}.metric-unit{font-size:16px;color:#6b7280;font-weight:500}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:24px;margin-bottom:32px}.chart-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 24px #0000000f;border:1px solid #f3f4f6}.chart-header{margin-bottom:20px}.chart-title{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:600;color:#111827;margin:0}.chart-container{height:300px;position:relative}.data-table-card{background:#fff;border-radius:16px;box-shadow:0 4px 24px #0000000f;border:1px solid #f3f4f6;overflow:hidden;margin-bottom:32px}.data-table-header{padding:24px;border-bottom:1px solid #f3f4f6;background:#fafbfc}.data-table-title{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:600;color:#111827;margin:0}.data-table-container{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{background:#f8fafc;padding:16px 20px;text-align:left;font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #e2e8f0}.data-table td{padding:16px 20px;border-bottom:1px solid #f1f5f9;font-size:14px;color:#374151;font-weight:500}.data-table tbody tr:hover{background:#f8fafc}.table-date{font-weight:600;color:#111827}.empty-state{background:#fff;border-radius:16px;padding:48px 24px;text-align:center;box-shadow:0 4px 24px #0000000f;border:1px solid #f3f4f6}.empty-state-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:20px;background:linear-gradient(135deg,#f3f4f6,#e5e7eb);color:#9ca3af;margin-bottom:24px}.empty-state-title{font-size:20px;font-weight:600;color:#111827;margin:0 0 8px}.empty-state-description{font-size:16px;color:#6b7280;margin:0;line-height:1.5}.subsection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}.subsection-title{font-size:1.125rem;font-weight:600;color:#374151;margin:0}.download-csv-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;min-height:36px;box-shadow:0 2px 4px #10b98133}.download-csv-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);box-shadow:0 4px 8px #10b9814d;transform:translateY(-1px)}.download-csv-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 4px #10b98133}.download-csv-btn:disabled{background:#d1d5db;cursor:not-allowed;transform:none;box-shadow:none}.download-icon{width:16px;height:16px;stroke-width:2}.download-icon.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 640px){.subsection-header{flex-direction:column;align-items:flex-start}.download-csv-btn{align-self:stretch;justify-content:center}}@media (max-width: 768px){.page-header-content{flex-direction:column;align-items:stretch}.building-info-content{flex-direction:column;gap:16px;text-align:center}.building-meta{justify-content:center}.controls-grid,.charts-grid,.metrics-grid{grid-template-columns:1fr}.chart-container{height:250px}.client-details-modern{padding:24px 20px;margin-bottom:24px}.client-details-header{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:24px}.detail-row{grid-template-columns:1fr;gap:16px}.detail-section-header{padding:16px 20px}.detail-section-content{padding:20px}.insight-item{flex-direction:column;align-items:flex-start;gap:4px}.insight-value{align-self:flex-end}.overview-notice{flex-direction:column;text-align:center;gap:8px}}@media (max-width: 480px){.electricity-page{padding:0 16px}.client-details-modern{padding:20px 16px}.client-details-title h2{font-size:20px}.detail-section-header{padding:14px 16px}.detail-section-content{padding:16px}.sidebar-header{flex-direction:column;align-items:center;gap:12px}.logo-image{height:36px}.sidebar h2{font-size:16px}.sidebar p{font-size:11px}.page-title{font-size:24px}.building-name,.metric-value{font-size:20px}.chart-container{height:200px}}.billing-page{padding:1.5rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);min-height:100vh}.building-info-card{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 4px 6px -1px #0000001a;border:1px solid rgba(226,232,240,.8)}.building-info-content{display:flex;justify-content:space-between;align-items:center}.building-details h3.building-name{font-size:1.25rem;font-weight:600;color:#1e293b;margin:0 0 .5rem}.building-meta{display:flex;gap:1rem;align-items:center}.meter-id{color:#64748b;font-size:.875rem}.building-type{background:#3b82f6;color:#fff;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500}.building-icon{color:#3b82f6;background:#eff6ff;padding:.75rem;border-radius:8px}.controls-panel{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 4px 6px -1px #0000001a;border:1px solid rgba(226,232,240,.8)}.controls-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem;align-items:end}.control-group{display:flex;flex-direction:column}.control-label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:#374151;margin-bottom:.5rem;font-size:.875rem}.control-input{padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;transition:all .2s}.control-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.billing-results{display:flex;flex-direction:column;gap:1.5rem}.results-section{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px -1px #0000001a;border:1px solid rgba(226,232,240,.8)}.section-title{font-size:1.125rem;font-weight:600;color:#1e293b;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #f1f5f9}.service-info{background:#f8fafc;padding:1rem;border-radius:8px;margin-bottom:1rem;border-left:4px solid #3b82f6}.service-info p{margin:0;color:#475569;font-size:.875rem}.modern-table{border-radius:8px;overflow:hidden;border:1px solid #e2e8f0}.table-header-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;background:linear-gradient(135deg,#3b82f6,#1e40af);color:#fff}.table-header-cell{padding:.75rem;font-weight:600;font-size:.875rem;text-align:center}.table-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;border-bottom:1px solid #f1f5f9}.table-row:nth-child(2n){background:#f8fafc}.table-row.two-column{grid-template-columns:1fr 1fr}.table-row.service{background:#fff}.table-row.total{background:#f1f5f9;font-weight:600;border-top:2px solid #e2e8f0}.table-row.total-bill-row{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:2px solid #10b981}.table-cell{padding:.75rem;display:flex;align-items:center;font-size:.875rem}.table-cell.label{font-weight:500;color:#374151}.table-cell.value{color:#1f2937}.table-cell.amount{justify-content:flex-end;font-weight:500;color:#059669}.table-cell.total-amount{font-weight:600;font-size:1rem;color:#059669}.final-total{background:linear-gradient(135deg,#fefce8,#fef3c7);border:2px solid #f59e0b}.total-summary{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000000d}.total-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.total-row.subtotal{border-bottom:1px solid #e5e7eb}.total-row.vat{border-bottom:1px solid #e5e7eb;color:#6b7280}.total-row.grand-total{border-top:2px solid #d1d5db;margin-top:.5rem;padding-top:1rem;font-weight:600;font-size:1.125rem;color:#059669}.total-label{font-weight:500}.total-amount{font-weight:600;color:#059669}.payment-info{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:2px solid #0284c7}.payment-details{margin-top:1rem}.payment-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:1.5rem}.payment-column{background:#fff;padding:1.25rem;border-radius:8px;box-shadow:0 1px 3px #0000001a}.payment-subtitle{font-size:1rem;font-weight:600;color:#1e293b;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #e2e8f0}.payment-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #f1f5f9}.payment-item:last-child{border-bottom:none}.payment-label{font-weight:500;color:#374151;font-size:.875rem}.payment-value{font-weight:600;color:#1f2937;font-size:.875rem}.mixed-season-badge{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;display:inline-block}.single-season-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;display:inline-block;background:#e0f2fe;color:#0369a1}.mixed-season-indicator{color:#f59e0b;font-weight:500;font-size:.875rem}.season-summary{margin-bottom:1.5rem;padding:1rem;background:#fffbeb;border:1px solid #fed7aa;border-radius:8px;color:#92400e;font-size:.875rem}.season-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.season-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px -1px #0000001a;border:2px solid transparent;transition:all .2s}.season-card:hover{transform:translateY(-2px);box-shadow:0 8px 15px -3px #0000001a}.season-card.high-season{border-color:#dc2626;background:linear-gradient(135deg,#fef2f2,#fef8f8)}.season-card.low-season{border-color:#059669;background:linear-gradient(135deg,#ecfdf5,#f0fdf4)}.season-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.season-title{font-size:1.125rem;font-weight:600;margin:0}.high-season .season-title{color:#dc2626}.low-season .season-title{color:#059669}.season-days{background:#0000001a;color:#374151;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600}.season-consumption{margin-bottom:1rem}.consumption-item{display:flex;justify-content:space-between;align-items:center;padding:.375rem 0;font-size:.875rem}.consumption-total{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;font-weight:600;border-top:1px solid #e5e7eb;margin-top:.5rem}.consumption-label{color:#6b7280}.consumption-value{font-weight:500;color:#1f2937}.season-cost{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#ffffffb3;border-radius:8px;font-weight:600}.cost-label{color:#374151}.cost-value{color:#059669;font-size:1.125rem}.season-segments{margin-top:2rem}.segments-title{font-size:1rem;font-weight:600;color:#1f2937;margin:0 0 1rem}.season-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;display:inline-block}.season-badge.high{background:#dc2626;color:#fff}.season-badge.low{background:#059669;color:#fff}.high-season-row{background:#fef2f2}.low-season-row{background:#ecfdf5}.payment-notes{background:#fff;padding:1.25rem;border-radius:8px;box-shadow:0 1px 3px #0000001a}.payment-list{margin:.75rem 0 0;padding-left:1.25rem;list-style-type:disc}.payment-list li{margin-bottom:.5rem;color:#475569;font-size:.875rem;line-height:1.5}.download-actions{text-align:center;background:linear-gradient(135deg,#fefce8,#fef3c7);border:2px solid #f59e0b}.download-buttons{display:flex;justify-content:center;gap:1rem}.download-pdf-btn{display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:500;transition:all .2s;box-shadow:0 4px 6px -1px #dc26264d}.download-pdf-btn:hover{transform:translateY(-1px);box-shadow:0 6px 8px -1px #dc262666}.download-pdf-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.download-icon{width:16px;height:16px}.error-message{display:flex;align-items:center;gap:.5rem;background:#fef2f2;color:#dc2626;padding:.75rem;border-radius:8px;border:1px solid #fecaca;margin-top:1rem;font-size:.875rem}@media (max-width: 768px){.billing-page{padding:1rem}.controls-grid,.payment-grid{grid-template-columns:1fr;gap:1rem}.building-info-content{flex-direction:column;gap:1rem;text-align:center}.table-header-row,.table-row{grid-template-columns:1fr;gap:.5rem}.table-header-cell,.table-cell{text-align:left;padding:.5rem}}.season-segments-table .table-header-row{display:grid;grid-template-columns:2fr 2fr 1fr 1.5fr 1.5fr;background:linear-gradient(135deg,#3b82f6,#1e40af);color:#fff}.season-segments-table .table-row{display:grid;grid-template-columns:2fr 2fr 1fr 1.5fr 1.5fr;border-bottom:1px solid #f1f5f9}.season-segments-table .table-header-cell{padding:.75rem;font-weight:600;font-size:.875rem;text-align:center;display:flex;align-items:center;justify-content:center}.season-segments-table .table-cell{padding:.75rem;display:flex;align-items:center;font-size:.875rem}.season-segments-table .table-cell:nth-child(1){justify-content:flex-start}.season-segments-table .table-cell:nth-child(2){justify-content:flex-start}.season-segments-table .table-cell:nth-child(3){justify-content:center}.season-segments-table .table-cell:nth-child(4){justify-content:flex-end}.season-segments-table .table-cell:nth-child(5){justify-content:flex-end;font-weight:500;color:#059669}.tou-single-season .table-header-row{display:grid;grid-template-columns:2fr 1fr 1.5fr 1.5fr 1fr;background:linear-gradient(135deg,#3b82f6,#1e40af);color:#fff}.tou-single-season .table-row{display:grid;grid-template-columns:2fr 1fr 1.5fr 1.5fr 1fr;border-bottom:1px solid #f1f5f9}.tou-mixed-season .table-header-row{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr 1.5fr 1fr;background:linear-gradient(135deg,#3b82f6,#1e40af);color:#fff}.tou-mixed-season .table-row{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr 1.5fr 1fr;border-bottom:1px solid #f1f5f9}.consumption-charges .table-header-cell{padding:.75rem;font-weight:600;font-size:.875rem;text-align:center;display:flex;align-items:center;justify-content:center}.consumption-charges .table-cell{padding:.75rem;display:flex;align-items:center;font-size:.875rem}.consumption-charges .table-cell:nth-child(1){justify-content:flex-start}.consumption-charges .table-cell:nth-child(2){justify-content:center}.consumption-charges .table-cell:nth-child(3){justify-content:flex-end}.tou-single-season .table-cell:nth-child(4){justify-content:center}.tou-single-season .table-cell:nth-child(5){justify-content:flex-end;font-weight:500;color:#059669}.tou-mixed-season .table-cell:nth-child(4),.tou-mixed-season .table-cell:nth-child(5){justify-content:flex-end}.tou-mixed-season .table-cell:nth-child(6){justify-content:center}.tou-mixed-season .table-cell:nth-child(7){justify-content:flex-end;font-weight:500;color:#059669}.additional-charges-table .table-header-row{display:grid;grid-template-columns:3fr 1.5fr 1.5fr 2fr;background:linear-gradient(135deg,#3b82f6,#1e40af);color:#fff}.additional-charges-table .table-row{display:grid;grid-template-columns:3fr 1.5fr 1.5fr 2fr;border-bottom:1px solid #f1f5f9}.additional-charges-table .table-header-cell{padding:.75rem;font-weight:600;font-size:.875rem;text-align:center;display:flex;align-items:center;justify-content:center}.additional-charges-table .table-cell{padding:.75rem;display:flex;align-items:center;font-size:.875rem}.additional-charges-table .table-cell:nth-child(1){justify-content:flex-start}.additional-charges-table .table-cell:nth-child(2){justify-content:center}.additional-charges-table .table-cell:nth-child(3){justify-content:flex-end}.additional-charges-table .table-cell:nth-child(4){justify-content:flex-end;font-weight:500;color:#059669}.dual-rates{display:flex;flex-direction:column;align-items:center;gap:.2rem;font-size:.8rem}.rate-line{font-weight:500}.rate-line.high-season{color:#dc2626}.rate-line.low-season{color:#059669}.dual-charges{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;font-size:.8rem}.charge-line{font-weight:500}.charge-line.high-season{color:#dc2626}.charge-line.low-season{color:#059669}
