:root{color:#101828;background:#f3fbfb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.login-page{display:grid;min-height:100vh;padding:0;background:radial-gradient(circle at 16% 14%,rgba(0,154,206,.13),transparent 30%),linear-gradient(135deg,#f7fbfd,#eefafa)}.login-shell{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(460px,.82fr);width:100%;min-height:100vh;overflow:hidden;background:#fff}.invoice-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.invoice-summary-card{cursor:pointer;border:1px solid #dbeafe;border-radius:26px;background:radial-gradient(circle at top right,rgba(14,165,233,.12),transparent 34%),#fff;padding:1.1rem;box-shadow:0 14px 36px #0f172a0f;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.invoice-summary-card:hover{transform:translateY(-3px);border-color:#7dd3fc;box-shadow:0 20px 48px #0f172a1a}.invoice-summary-card.is-open{border-color:#0284c7}.invoice-summary-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.invoice-period{margin:0;font-size:1rem;font-weight:900;color:#0f172a}.invoice-id{display:block;margin-top:.25rem;font-size:.75rem;color:#64748b;word-break:break-all}.invoice-status{flex-shrink:0;border-radius:999px;background:#e0f2fe;color:#0369a1;padding:.45rem .7rem;font-size:.75rem;font-weight:900}.invoice-main-metric{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:1.2rem}.invoice-main-metric div{border-radius:18px;background:#f8fafc;padding:.85rem}.invoice-main-metric span,.invoice-expanded-details span{display:block;font-size:.7rem;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.invoice-main-metric strong{display:block;margin-top:.25rem;font-size:1.2rem;color:#0f172a}.consumption-progress{height:10px;margin-top:1rem;overflow:hidden;border-radius:999px;background:#e2e8f0}.consumption-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#38bdf8,#0369a1)}.invoice-readings-line{display:flex;align-items:center;gap:.45rem;margin-top:1rem;color:#64748b;font-size:.8rem;flex-wrap:wrap}.invoice-readings-line strong{color:#0f172a}.consumption-panel{overflow:hidden}.invoice-scroll-row{cursor:grab}.invoice-scroll-row:active{cursor:grabbing}.invoice-scroll-shell{width:100%;max-width:100%;overflow:hidden}.invoice-scroll-row{display:flex;gap:1.25rem;overflow-x:auto;overflow-y:hidden;max-width:100%;padding:.25rem .25rem 1rem;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.invoice-list-modern{display:grid;gap:.9rem}.invoice-card-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;border:1px solid #dbeafe;border-radius:24px;background:radial-gradient(circle at top right,rgba(14,165,233,.1),transparent 34%),#fff;padding:1rem;box-shadow:0 14px 32px #0f172a0d}.invoice-card-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:18px;background:linear-gradient(135deg,#e0f2fe,#f8fafc);color:#0369a1}.invoice-card-main{min-width:0}.invoice-card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.invoice-card-title-row strong{display:block;color:#0f172a;font-size:1rem}.invoice-card-title-row span{display:block;margin-top:.2rem;color:#64748b;font-size:.78rem;word-break:break-all}.invoice-card-metrics-row{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:.8rem;margin-top:.85rem}.invoice-card-metrics-row div{border-radius:16px;background:#f8fafc;padding:.75rem .85rem}.invoice-card-metrics-row span{display:block;color:#64748b;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.invoice-card-metrics-row strong{display:block;margin-top:.2rem;color:#0f172a;font-size:.95rem}.invoice-status-pill{flex-shrink:0;border-radius:999px;padding:.45rem .75rem;font-size:.75rem;font-weight:900;background:#fee2e2;color:#be123c}.invoice-status-pill.paid{background:#dcfce7;color:#15803d}.invoice-status-pill.due{background:#e0f2fe;color:#0369a1}.invoice-download-modern{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:0;border-radius:999px;background:#0369a1;color:#fff;padding:.75rem 1rem;font-size:.78rem;font-weight:900;text-decoration:none;cursor:pointer;white-space:nowrap}.invoice-download-modern.disabled{background:#e2e8f0;color:#94a3b8;cursor:not-allowed}.invoice-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.invoice-search-box{display:flex;align-items:center;gap:.6rem;width:min(460px,100%);border:1px solid #dbeafe;border-radius:999px;background:#f8fafc;padding:.7rem 1rem;color:#64748b}.invoice-search-box input{width:100%;border:0;outline:0;background:transparent;color:#0f172a;font-weight:700}.chat-launcher{position:fixed;right:1.5rem;bottom:1.5rem;z-index:60;display:grid;place-items:center;width:58px;height:58px;border:0;border-radius:22px;background:linear-gradient(135deg,#0284c7,#0ea5e9);color:#fff;box-shadow:0 20px 45px #0284c759;cursor:pointer}.chat-widget{position:fixed;right:1.5rem;bottom:5.5rem;z-index:70;display:flex;flex-direction:column;width:min(390px,calc(100vw - 2rem));height:560px;overflow:hidden;border:1px solid #dbeafe;border-radius:28px;background:radial-gradient(circle at top right,rgba(14,165,233,.16),transparent 32%),#fff;box-shadow:0 28px 70px #0f172a2e}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-bottom:1px solid #e2e8f0}.chat-header>div{display:flex;align-items:center;gap:.75rem}.chat-header strong{display:block;color:#0f172a}.chat-header small{display:block;margin-top:.1rem;color:#64748b;font-size:.75rem}.chat-header button{border:0;border-radius:999px;background:#f1f5f9;color:#334155;width:34px;height:34px;cursor:pointer}.chat-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:16px;background:#e0f2fe;color:#0369a1}.chat-messages{flex:1;display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;padding:1rem}.chat-message{max-width:82%;border-radius:18px;padding:.75rem .9rem;font-size:.9rem;line-height:1.45}.chat-message.assistant{align-self:flex-start;background:#f1f5f9;color:#0f172a;border-bottom-left-radius:6px}.chat-message.user{align-self:flex-end;background:#0284c7;color:#fff;border-bottom-right-radius:6px}.chat-message.loading{display:inline-flex;align-items:center;gap:.45rem;color:#0369a1}.chat-input-row{display:flex;gap:.65rem;padding:1rem;border-top:1px solid #e2e8f0;background:#fff}.chat-input-row input{flex:1;border:1px solid #dbeafe;border-radius:999px;background:#f8fafc;padding:.8rem 1rem;outline:none;color:#0f172a;font-weight:700}.chat-message.assistant,.chat-bubble.assistant,.assistant-message{white-space:pre-wrap;line-height:1.6}.chat-message.user,.chat-bubble.user,.user-message{white-space:pre-wrap}.invoice-period-group{border:1px solid #dbeafe;border-radius:24px;overflow:hidden;background:#fff}.invoice-period-header{width:100%;border:0;background:linear-gradient(135deg,#f0f9ff,#fff);padding:1rem 1.1rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.invoice-period-header strong{display:block;color:#0f172a;font-size:1rem}.invoice-period-header span{color:#0369a1;font-weight:900}.invoice-period-header div span{display:block;margin-top:.2rem;color:#64748b;font-size:.8rem}.invoice-period-items{display:grid;gap:.75rem;padding:.85rem;background:#f8fafc}.invoice-period-items .invoice-card-row{box-shadow:none}.chat-input-row button{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:999px;background:#0284c7;color:#fff;cursor:pointer}.chat-input-row button:disabled{opacity:.45;cursor:not-allowed}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.invoice-count-pill{border-radius:999px;background:#e0f2fe;color:#0369a1;padding:.55rem .85rem;font-size:.78rem;font-weight:900;white-space:nowrap}.invoice-pagination{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;margin-top:1rem}.invoice-pagination button{display:inline-flex;align-items:center;gap:.35rem;border:0;border-radius:999px;background:#e0f2fe;color:#0369a1;padding:.65rem .9rem;font-weight:900;cursor:pointer}.invoice-pagination button:disabled{opacity:.45;cursor:not-allowed}.invoice-pagination span{color:#64748b;font-size:.85rem;font-weight:800}@media(max-width:900px){.invoice-card-row,.invoice-card-metrics-row{grid-template-columns:1fr}.invoice-download-modern{width:100%}}.invoice-summary-card{flex:0 0 360px;width:360px;min-height:235px;scroll-snap-align:start}.invoice-scroll-row::-webkit-scrollbar{height:10px}.invoice-scroll-row::-webkit-scrollbar-track{background:#eaf3fb;border-radius:999px}.invoice-scroll-row::-webkit-scrollbar-thumb{background:#7dd3fc;border-radius:999px}.invoice-expanded-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.invoice-expanded-details div{border-radius:16px;background:#f8fafc;padding:.8rem}.invoice-expanded-details strong{display:block;margin-top:.25rem;color:#0f172a}.empty-state{border:1px dashed #bae6fd;border-radius:22px;background:#f0f9ff;padding:1.25rem;color:#0369a1;font-weight:800}.login-visual{position:relative;display:flex;flex-direction:column;gap:36px;overflow:hidden;padding:clamp(36px,5.2vw,76px);color:#fff;background:linear-gradient(145deg,#00609af5,#00b0e1e0),url(https://images.unsplash.com/photo-1548839140-29a749e1cf4d?auto=format&fit=crop&w=1600&q=80) center / cover}.login-visual:after{position:absolute;right:-150px;bottom:-160px;width:420px;height:420px;border:74px solid rgba(255,255,255,.1);border-radius:999px;content:""}.portal-badge{position:relative;z-index:1;display:inline-flex;align-items:center;gap:9px;width:fit-content;min-height:34px;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:0 17px;color:#eafaff;background:#ffffff1f;font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.login-logo{position:relative;z-index:1;width:min(320px,70%);height:auto;border-radius:8px;background:#fffffffa;padding:14px 18px}.login-copy{position:relative;z-index:1;max-width:660px;margin-top:8px}.login-copy h1,.dashboard-header h1{margin:0;letter-spacing:0}.login-copy h1{max-width:620px;color:#fff;font-size:clamp(2.55rem,4.8vw,4.9rem);line-height:1.12;font-weight:900}.login-copy p{max-width:610px;margin:26px 0 0;color:#ddf7ff;font-size:1rem;line-height:1.75}.usage-panel{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:auto}.usage-panel div{min-height:74px;border:1px solid rgba(255,255,255,.22);border-radius:18px;padding:17px;background:#ffffff1f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.usage-panel strong,.usage-panel span{display:block}.usage-panel strong{color:#fff;font-size:.94rem}.usage-panel span{margin-top:4px;color:#d8f5ff;font-size:.82rem;font-weight:700}.login-panel{display:grid;place-items:center;padding:clamp(32px,5vw,76px) clamp(28px,5vw,64px);background:#fff}.login-card{width:min(430px,100%);border:1px solid #dbe4ef;border-radius:24px;padding:24px;background:#fff;box-shadow:0 18px 45px #122c4612}.login-icon{display:grid;width:56px;height:56px;place-items:center;border-radius:16px;color:#07b;background:#e8f6ff}.login-card h2,.panel h2{margin:16px 0 0;color:#0f172a;font-size:1.55rem;line-height:1.1;letter-spacing:0}.login-card p{margin:10px 0 28px;color:#62718a;font-size:.95rem}.form-error{margin:-4px 0 0;border-radius:12px;padding:10px 12px;color:#9b1c31;background:#fff0f1;font-size:.9rem;font-weight:800}form{display:grid;gap:18px}label{display:grid;gap:8px;color:#1f2a44;font-size:.9rem;font-weight:800}input{width:100%;border:1px solid #d9e2ef;border-radius:15px;padding:13px 14px;color:#101828;background:#fff;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}input:focus{border-color:#07b;box-shadow:0 0 0 4px #0077bb1f}.form-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.link-button,.muted-button{border:0;padding:0;background:transparent;font-weight:800}.link-button{color:#005fae}.muted-button{color:#6a7282}.register-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #d9e2ef;border-radius:14px;color:#09122a;background:#fff;font-weight:900}.primary-button,.secondary-button,.logout-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;border-radius:14px;border:0;font-weight:900}.primary-button{padding:13px 20px;color:#fff;background:#09122a;box-shadow:0 16px 32px #09122a2e}.login-submit{width:100%}.secondary-button{padding:10px 15px;color:#005fae;background:#eaf6ff}.app-shell{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh;background:#f6fafc}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:34px;height:100vh;border-right:1px solid #deebf2;padding:26px 18px;color:#dceef7;background:#091a43}.brand-lockup{display:flex;align-items:center;min-height:52px}.brand-logo{width:184px;max-width:100%;border-radius:8px;background:#fff;padding:10px 12px}.sidebar nav{display:grid;gap:8px}.sidebar a,.logout-button{display:flex;align-items:center;gap:11px;min-height:44px;border-radius:12px;padding:0 12px;color:#c9d9e8;font-weight:800}.sidebar a:hover,.logout-button:hover{color:#fff;background:#ffffff1c}.sidebar a:focus-visible,.logout-button:focus-visible{outline:3px solid rgba(255,255,255,.45);outline-offset:2px}.panel,.dashboard-header{scroll-margin-top:24px}.logout-button{margin-top:auto;border:0;justify-content:flex-start;background:transparent}.dashboard{padding:30px}.loading-state,.not-found-page{display:grid;min-height:100vh;place-content:center;gap:12px;text-align:center}.not-found-page{padding:24px;background:#f6fafc}.not-found-page h1,.not-found-page p{margin:0}.not-found-page .primary-button{width:fit-content;margin:12px auto 0}.register-page{display:grid;grid-template-columns:minmax(0,.9fr) minmax(460px,1.1fr);min-height:100vh;background:#fff}.register-hero{display:flex;flex-direction:column;gap:28px;justify-content:center;padding:clamp(32px,6vw,76px);color:#fff;background:linear-gradient(145deg,#091a43f0,#0077bbd6),url(https://images.unsplash.com/photo-1500937386664-56d1dfef3854?auto=format&fit=crop&w=1500&q=80) center / cover}.register-panel{display:grid;place-items:center;padding:clamp(28px,5vw,76px);background:#f6fafc}.register-card{display:grid;gap:22px;width:min(620px,100%);border:1px solid #dfe8f2;border-radius:22px;padding:clamp(22px,4vw,34px);background:#fff;box-shadow:0 18px 45px #18355814}.register-card h2,.register-card p{margin:0}.register-card h2{color:#101828;font-size:2rem;line-height:1.1}.register-card>div>p:not(.eyebrow){margin-top:10px;color:#62718a}.back-link{display:inline-flex;align-items:center;gap:8px;width:fit-content;color:#005fae;font-weight:900}.resend-link{display:block;width:100%;margin-top:12px;padding:10px;color:#005fae;background:none;border:none;font-weight:900;cursor:pointer;text-align:center}.resend-link:disabled{opacity:.5;cursor:not-allowed}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-success{margin:-4px 0 0;border-radius:12px;padding:10px 12px;color:#126b42;background:#e8f8ef;font-size:.9rem;font-weight:800}button:disabled{cursor:not-allowed;opacity:.7}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.dashboard-header h1{color:#101828;font-size:clamp(2.1rem,4vw,3.7rem);line-height:1;font-weight:900}.dashboard-header span{display:block;max-width:660px;margin-top:10px;color:#667085}.eyebrow{margin:0 0 10px;color:#07b;font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}.metric-card,.panel{border:1px solid #dfe8f2;border-radius:18px;background:#fff;box-shadow:0 18px 45px #1835580f}.metric-card{display:flex;gap:16px;min-height:148px;padding:22px}.metric-icon{display:grid;flex:0 0 auto;width:48px;height:48px;place-items:center;border-radius:14px;color:#07b;background:#e8f6ff}.metric-card p,.metric-card strong,.metric-card span{display:block}.metric-card p{margin:0 0 7px;color:#667085;font-weight:800}.metric-card strong{color:#101828;font-size:1.75rem;line-height:1.1}.metric-card span{margin-top:8px;color:#6b7280}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px}.main-column,.profile-column{display:grid;align-content:start;gap:16px}.panel{padding:22px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.panel-heading.compact{margin-bottom:14px}.status-pill,.invoice-status{display:inline-flex;align-items:center;width:fit-content;min-height:30px;border-radius:999px;padding:0 11px;font-size:.78rem;font-weight:900}.status-pill{color:#005fae;background:#e8f6ff}.bar-chart{display:grid;grid-template-columns:repeat(6,minmax(58px,1fr));align-items:end;gap:14px;min-height:260px}.bar-item{display:grid;grid-template-rows:190px auto auto;gap:8px;text-align:center}.bar-track{position:relative;display:flex;align-items:flex-end;overflow:hidden;border-radius:14px;background:#edf5f9}.bar-fill{display:block;width:100%;border-radius:14px 14px 0 0;background:linear-gradient(180deg,#00aeea,#0066a7)}.bar-item strong{color:#1f2937;font-size:.9rem}.bar-item span{color:#788391;font-weight:800}.invoice-list{display:grid;gap:10px}.invoice-row{display:grid;grid-template-columns:1.25fr repeat(3,minmax(110px,.85fr)) auto;align-items:center;gap:16px;min-height:78px;border:1px solid #e1ebf4;border-radius:16px;padding:14px}.invoice-row div{display:grid;gap:2px}.invoice-row span{color:#6b7280;font-size:.86rem;font-weight:800}.invoice-row strong{color:#101828}.invoice-status.paid{color:#126b42;background:#e8f8ef}.invoice-status.due{color:#9b1c31;background:#fff0f1}.profile-panel{display:grid;justify-items:center;text-align:center}.avatar{display:grid;width:78px;height:78px;margin-bottom:14px;place-items:center;border-radius:18px;color:#fff;background:linear-gradient(135deg,#091a43,#07b);font-size:1.35rem;font-weight:900}.profile-panel p{margin:8px 0 14px;color:#667085;font-weight:800}.profile-list{display:grid;gap:12px;width:100%;margin-top:22px;text-align:left}.editable-profile-panel{text-align:left}.profile-form{display:grid;gap:14px}.profile-save-button{width:100%}.profile-page-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px}.profile-details-panel .profile-list{margin-top:0}.profile-item{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;border-top:1px solid #edf3f8;padding-top:12px}.profile-item>span{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#07b;background:#e8f6ff}.profile-item small,.profile-item strong{display:block}.profile-item small{color:#758195;font-weight:900}.profile-item strong{overflow-wrap:anywhere;color:#1f2937;line-height:1.3}.notice-panel ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}.notice-panel li{border-left:4px solid #e4002b;padding:8px 0 8px 12px;color:#435166;font-weight:800}@media(max-width:1080px){.app-shell,.content-grid,.profile-page-grid,.login-shell,.register-page{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar nav{grid-template-columns:repeat(5,minmax(0,1fr))}.sidebar a,.logout-button{justify-content:center}.logout-button{width:fit-content;margin-top:0}.login-visual{min-height:58vh}}@media(max-width:760px){.login-visual,.login-panel,.dashboard,.register-hero,.register-panel{padding:24px}.login-visual{min-height:auto;gap:24px}.login-logo{width:min(280px,86%)}.login-copy h1{font-size:2.25rem;line-height:1.08}.login-copy p{margin-top:18px;line-height:1.6}.dashboard-header,.form-row{flex-direction:column;align-items:stretch}.metrics-grid,.usage-panel,.form-grid,.sidebar nav{grid-template-columns:1fr}.bar-chart{grid-template-columns:repeat(6,minmax(44px,1fr));gap:8px;overflow-x:auto}.bar-item{grid-template-rows:150px auto auto}.invoice-row{grid-template-columns:1fr;align-items:start}}@media(max-width:480px){.login-visual,.login-panel,.dashboard,.register-hero,.register-panel{padding:18px}.portal-badge{max-width:100%;white-space:normal}.login-copy h1{font-size:1.9rem}.login-card{border-radius:18px;padding:20px}.sidebar a,.logout-button{justify-content:flex-start}}
