/* Shared Eniris visual language for information pages and the signed-in portal. */
@media(prefers-reduced-motion:no-preference){.primary,.secondary,.connect-choice,.site-battery-card,.contract-card,.installation-card,.challenge-card,.dashboard-nav a{transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease}.primary:hover,.secondary:hover{transform:translateY(-2px);box-shadow:0 6px 18px #18111318}.primary:active,.secondary:active{transform:translateY(0) scale(.98)}.contract-card:hover,.installation-card:hover,.challenge-card:hover,.site-battery-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #18111312}.desktop-links a{transition:color .18s}.desktop-links a:hover{color:#ee1c25}dialog[open]{animation:eniris-dialog .24s ease-out}@keyframes eniris-dialog{from{opacity:.5;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}}
.metrics article:first-child p>span{color:#d9d2d2}#site-installation-title{scroll-margin-top:30px}
:root{--eniris-ink:#181113;--eniris-lime:#ee1c25;--eniris-paper:#f6f4f4;--eniris-line:#e4dddd;background:var(--eniris-paper);color:var(--eniris-ink)}
.topbar{background:var(--eniris-paper);border:0;height:88px}.desktop-links a:last-child{background:var(--eniris-ink);color:#fff;padding:12px 20px;border-radius:30px}.topbar .text-button{border:1px solid var(--eniris-line);border-radius:24px;padding:10px 16px}.brand{color:var(--eniris-ink)}
main{padding-top:24px}h1,h2,h3{color:var(--eniris-ink)}h1{letter-spacing:-2px}h2{letter-spacing:-.8px}.eyebrow{color:#8a8082;font-size:11px;letter-spacing:1.8px}.muted,.small{color:#8a8082}.primary,.secondary{border-radius:28px;min-height:46px;font-weight:650}.primary{background:var(--eniris-ink);color:#fff;border:1px solid var(--eniris-ink)}.primary:hover{background:#9e0f0d}.secondary{background:#fff;border:1px solid #d4cdcd;color:var(--eniris-ink)}.secondary:hover{background:#f1eaea}input,select{border-radius:12px;border-color:#dbd4d4;background:#fdf6f6;min-height:46px}input:focus,select:focus{outline-color:#8a8082}input[type=checkbox],input[type=radio]{min-height:0;accent-color:#574e50}label{font-size:13px;font-weight:600}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #8a8082;outline-offset:4px}
.info-heading,#dashboard>.page-heading{position:relative;isolation:isolate;overflow:hidden;background:var(--eniris-ink);padding:44px;border-radius:30px;color:#fff;margin:0 0 30px}.info-heading:after,#dashboard>.page-heading:after{content:"";position:absolute;z-index:-1;right:-80px;top:-140px;width:400px;height:400px;border:1px solid #ee1c2525;border-radius:50%;box-shadow:0 0 0 40px #ee1c2507,0 0 0 80px #ee1c2505;pointer-events:none}.info-heading h1,#dashboard>.page-heading h1{color:#fffef1;font-size:clamp(34px,4.5vw,60px);line-height:1.06;margin:18px 0}.info-heading .eyebrow,#dashboard>.page-heading .eyebrow{color:var(--eniris-lime)}.info-heading .lead,.info-heading>a,#dashboard>.page-heading .muted{color:#d9d2d2}.info-heading>a{font-size:12px}.info-heading .lead{font-size:19px;max-width:700px;line-height:1.6}.info-heading .eyebrow{margin-top:28px}#dashboard>.page-heading .primary{background:var(--eniris-lime);color:var(--eniris-ink);border:0}#account-name{overflow-wrap:anywhere}
.dashboard-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 28px}.dashboard-nav a{padding:12px 20px;background:#eae3e3;border:1px solid #e0d9d9;border-radius:30px;text-decoration:none;color:var(--eniris-ink);font-size:13px;font-weight:650}.dashboard-nav a:hover{background:var(--eniris-lime)}#chart-title,#installation-title,#simulation-title{scroll-margin-top:30px}
.filters{background:#fff;border:1px solid var(--eniris-line);border-radius:20px;padding:22px;gap:18px}.metrics{gap:18px;margin:24px 0}.metrics article{border:1px solid var(--eniris-line);border-radius:22px;padding:26px;background:#fff;box-shadow:0 6px 24px #18111304}.metrics article:first-child{background:var(--eniris-ink);color:#fff;border-color:var(--eniris-ink)}.metrics article:first-child strong{color:var(--eniris-lime)}.metrics article:first-child>span,.metrics article:first-child small{color:#d9d2d2}.metrics article:nth-child(2){background:#e9e2e2}.metrics strong{letter-spacing:-1.5px}.metrics article>span{font-size:12px;font-weight:600}.metrics small{font-size:11px;line-height:1.5}
.chart-card,.simulation-card,.empty-state{background:#fff;border:1px solid var(--eniris-line);border-radius:26px;padding:32px;box-shadow:0 8px 32px #18111304;margin-bottom:28px}.chart-card h2,.simulation-card h2{font-size:28px;margin-top:10px}.simulation-card>.eyebrow{display:inline-block;padding:7px 11px;border-radius:20px;background:#efe8e8;font-size:10px}.simulation-controls{gap:16px;align-items:end;background:#f8f1f1;border-radius:16px;padding:18px}.simulation-winner{background:#ebe4e4;border:1px solid #d7d0d0;border-radius:18px;padding:24px;margin:22px 0}.simulation-winner h3{font-size:23px}.battery-settings{border:1px solid var(--eniris-line);border-radius:18px;padding:20px;margin-top:24px;background:#fdf6f6}.battery-settings>summary{font-size:16px;font-weight:700;cursor:pointer}.battery-grid{gap:20px}.battery-grid label{line-height:1.6}.simulation-table-wrap,.table-scroll{border:1px solid var(--eniris-line);border-radius:16px;background:#fff;max-width:100%;overflow:auto}.simulation-table{margin:0;width:100%}th{background:#f1eaea;color:var(--eniris-ink);font-size:11px;letter-spacing:.3px}td{font-size:13px}th,td{padding:16px;border-color:#eae3e3}tbody tr:hover{background:#faf3f3}caption{padding:15px;text-align:left;font-size:12px;color:#8a8082}.readings{background:#f9f2f2;border:1px solid var(--eniris-line);border-radius:16px;padding:18px}.readings summary{font-weight:650}
.empty-state{padding:52px 28px;background:#fff;text-align:center}.empty-icon{width:68px;height:68px;display:grid;place-items:center;background:var(--eniris-lime);color:var(--eniris-ink);border-radius:50%;margin:0 auto 22px;font-size:34px}.empty-state h2{font-size:30px}.empty-state p{font-size:15px;line-height:1.7}.import-wait{background:#f0e9e9;border:1px solid #d7d0d0;border-radius:24px}.wait-estimate,.badge{background:#e3dcdc;color:#574e50;border-radius:20px}.import-heading .eyebrow{color:#8a8082}.import-steps,.import-footer{border-color:#d7d0d0}.step-number{border-color:#b7b0b0;color:#574e50}.notice{background:#eee7e7;border:1px solid #d7d0d0;border-radius:16px;padding:18px;font-size:14px;line-height:1.6}.notice.error{background:#fff0ec;border-color:#edc3b8;color:#913e30}
.site-builder{border-radius:18px;gap:18px}.battery-dropzone{background-color:#f7f0f0;border-color:#d8d1d1;border-radius:20px;background-image:radial-gradient(#cfc8c8 1px,transparent 1px)}.battery-palette{border-radius:20px;border-color:var(--eniris-line);background:#fff}.site-hub{background:var(--eniris-ink);color:#fff;border:0;border-radius:18px}.site-hub>span{color:var(--eniris-lime)}.site-hub small{color:#d9d2d2}.site-battery-card{border-color:#dcd5d5;border-radius:18px;box-shadow:0 6px 18px #18111308}.battery-total{background:var(--eniris-lime);color:var(--eniris-ink)}.battery-picture .cell{fill:#8a8082}.battery-picture .cell.is-empty{fill:#d7d0d0}.asset-icon{color:#574e50}.asset-library button{border-radius:12px;min-height:44px}.edit-site-battery:hover{background:#f3ecec}
dialog{border:1px solid var(--eniris-line);border-radius:26px;padding:32px;box-shadow:0 30px 100px #18111338;max-height:calc(100dvh - 32px);overflow:auto}dialog::backdrop{background:#574e5088;backdrop-filter:blur(5px)}dialog h2{font-size:30px;letter-spacing:-1px}.connect-choice{border-radius:18px;border-color:#ddd6d6;background:#f5eeee}.connect-choice:hover{background:#e3dcdc;border-color:#8a8082}.connect-choice:first-child{background:#e7e0e0}.battery-editor-preview{background-color:#efe8e8}
.info-page .landing-section{padding:36px 0;margin-top:24px}.info-page .contract-section{padding:32px;border-radius:26px;background:#ebe4e4}.info-page .contract-card,.info-page .installation-card,.info-page .challenge-card{border:1px solid var(--eniris-line);border-radius:22px;padding:26px;background:#fff}.info-page .contract-card h3{font-size:26px}.info-page .contract-tag{background:#ece5e5;padding:6px 9px;border-radius:20px;display:inline-block}.info-page .journey li{background:#fff;border:1px solid var(--eniris-line);border-radius:22px;padding:26px}.info-page .journey-number{background:var(--eniris-lime);color:var(--eniris-ink)}.info-page .challenge-card h3 span{background:var(--eniris-lime);color:var(--eniris-ink)}.info-page .challenge-fit>div{background:#ebe4e4}.info-page .challenge-fit>div:last-child{background:#dfd8d8}.info-page .human-detail{background:#ece5e5;border-radius:26px}.info-page .info-cta{background:var(--eniris-ink);color:#fff;border-radius:28px;padding:40px 24px;margin:40px 0}.info-page .info-cta h2{color:#fff;font-size:30px}.info-page .info-cta .primary{background:var(--eniris-lime);color:var(--eniris-ink);padding:15px 24px}.info-page .landing-faq details{background:#fff;border:1px solid var(--eniris-line);border-radius:16px;padding:22px;margin-bottom:12px}.info-page .landing-faq details[open]{background:#f0e9e9}.info-page .simulation-status{background:#e4dddd;color:#574e50}.info-page .monthly-section{border-radius:26px}.info-page .ems-panel{border-radius:22px}.info-page .landing-footer{border-color:var(--eniris-line)}
.admin-page #admin-login{max-width:540px;margin:40px auto;padding:38px}.admin-page #admin-form .primary{margin-top:20px;width:100%}.admin-page #admin-panel>h1{font-size:44px;margin:12px 0}.admin-page #admin-panel>hr{border:0;border-top:1px solid var(--eniris-line);margin:40px 0}.admin-page #admin-panel>h2{font-size:30px}.admin-page #runner-summary{background:#eae3e3;padding:18px;border-radius:14px;font-weight:600}.admin-page #admin-count{color:#8a8082}.admin-page td a{display:inline-block;border-radius:20px;background:#ece5e5;padding:8px 12px;text-decoration:none;font-size:12px;margin-top:6px}.admin-page #admin-panel{padding:36px}.admin-page .simulation-controls label{flex:1}.admin-page #admin-search{width:100%}
@media(max-width:800px){.info-heading,#dashboard>.page-heading{padding:28px;border-radius:24px}.info-heading h1,#dashboard>.page-heading h1{font-size:38px}.chart-card,.simulation-card{padding:22px;border-radius:22px}.metrics{gap:12px}.metrics article{padding:20px}.filters{padding:18px}.simulation-controls{flex-wrap:wrap}.simulation-controls>*{min-width:0}.info-page .contract-section{padding:22px}.admin-page #admin-panel{padding:22px}.dashboard-nav a{padding:10px 15px}.info-page .landing-section{padding:26px 0}}
@media(max-width:520px){main{padding:16px 14px 30px}.topbar{height:auto;min-height:74px;padding:14px 20px;gap:10px}.topbar nav{gap:8px}.topbar .text-button{font-size:11px;padding:9px}.info-heading,#dashboard>.page-heading{padding:26px 22px}.page-heading{gap:18px;align-items:start;flex-direction:column}.page-heading .primary{width:100%}.info-heading h1,#dashboard>.page-heading h1{font-size:34px}.info-heading .lead{font-size:16px}.chart-card,.simulation-card{padding:20px 16px}.simulation-controls{display:grid;grid-template-columns:1fr;padding:16px}.simulation-controls select,.simulation-controls button{width:100%}.battery-settings{padding:16px}.battery-grid{grid-template-columns:1fr;gap:16px}.simulation-winner{padding:18px}.chart-heading{align-items:start;gap:12px}.metrics strong{font-size:30px}dialog{width:calc(100% - 24px);padding:24px 20px;max-width:calc(100% - 24px)}dialog h2{font-size:26px}.admin-page #admin-panel,.admin-page #admin-login{padding:22px 16px}.admin-page #admin-panel>h1{font-size:34px}.dashboard-nav{gap:6px}.dashboard-nav a{font-size:12px;padding:10px 13px}.info-page .info-cta h2{font-size:26px}}
.primary{color:#fff}.brand span{color:#ee1c25}#dashboard>.page-heading .primary,.info-page .info-cta .primary{color:#fff}.info-heading .eyebrow,#dashboard>.page-heading .eyebrow,.metrics article:first-child strong{color:#ff9b9f}.saving-icon,.journey-number{color:#fff}.info-page .journey-number,.info-page .challenge-card h3 span,.empty-icon{color:#fff}.site-hub>span{color:#ff9b9f}.battery-total{color:#fff}
/* Eniris red leads the large surfaces throughout the portal. */
.info-heading,#dashboard>.page-heading,.info-page .info-cta,.metrics article:first-child,.site-hub{background:#ee1c25;border-color:#ee1c25}
.info-heading h1,.info-heading .eyebrow,.info-heading .lead,.info-heading>a,#dashboard>.page-heading h1,#dashboard>.page-heading .eyebrow,#dashboard>.page-heading .muted,.metrics article:first-child strong,.metrics article:first-child>span,.metrics article:first-child small,.metrics article:first-child p>span,.site-hub>span,.site-hub small{color:#fff}
.info-heading:after,#dashboard>.page-heading:after{border-color:#ffffff40;box-shadow:0 0 0 40px #ffffff0a,0 0 0 80px #ffffff08}
#dashboard>.page-heading .primary,.info-page .info-cta .primary{background:#fff;color:#b81018;border-color:#fff}
.primary,.desktop-links a:last-child{background:#ee1c25;color:#fff;border-color:#ee1c25}
.primary:hover,.desktop-links a:last-child:hover{background:#b81018;color:#fff}
#dashboard>.page-heading .primary:hover,.info-page .info-cta .primary:hover{background:#fff0f0;color:#9e0f0d}
.dashboard-nav a:hover{color:#fff}
.account-journey{background:#fff;border:1px solid #ece1e1;border-radius:26px;padding:30px;margin:0 0 28px}.journey-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.journey-heading h2{font-size:26px;margin:8px 0 20px}.journey-heading .eyebrow{font-size:10px;color:#b81018}.journey-heading>span{font-size:12px;white-space:nowrap;background:#fff0f0;border-radius:20px;padding:10px 14px;color:#9e0f0d}.milestones{display:grid;grid-template-columns:repeat(4,1fr);padding:0;list-style:none;gap:0;margin:16px 0}.milestones li{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-right:14px}.milestones li:not(:last-child):before{content:'';position:absolute;top:21px;left:45px;right:0;height:3px;background:#eee5e5}.milestones li.completed:before{background:#ee1c25}.milestone-dot{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:2px solid #e5dada;background:#fff;color:#8a8082;font-weight:750;position:relative;z-index:1}.completed .milestone-dot{background:#ee1c25;border-color:#ee1c25;color:#fff}.current .milestone-dot{border-color:#ee1c25;color:#b81018;box-shadow:0 0 0 5px #ffeded}.milestones strong{font-size:14px}.milestones small{font-size:12px;line-height:1.5;color:#77686b;max-width:190px}#journey-feedback{font-size:14px;color:#9e0f0d;margin:22px 0 0}#journey-feedback:empty{display:none}#current-contract-panel.contract-collapsed{background:#fff3f3;border-color:#f1c5c5}#current-contract-panel.contract-collapsed>*:not(#contract-complete):not(#current-saved){display:none!important}#contract-complete>strong{font-size:23px;color:#9e0f0d}#contract-complete p{line-height:1.7}#current-saved{font-size:13px;color:#69575b}.needs-contract #empty,.needs-contract #open-connect{display:none!important}@media(max-width:700px){.account-journey{padding:24px 20px}.journey-heading{align-items:flex-start;flex-direction:column;gap:0}.journey-heading h2{font-size:24px}.milestones{grid-template-columns:1fr;gap:22px;margin-top:28px}.milestones li{display:grid;grid-template-columns:44px 1fr;column-gap:18px;row-gap:4px}.milestone-dot{grid-row:1/3}.milestones li:not(:last-child):before{left:21px;top:44px;width:3px;height:24px}.milestones small{max-width:none}.milestones strong{align-self:end}#contract-complete button{width:100%;margin-top:10px}#contract-complete>strong{font-size:21px}}
/* One palette for SVG data, legend and metric labels. */
:root{--chart-import:#ee1c25;--chart-export:#574e50;--chart-grid:#ece7e7}
.import-color{background:var(--chart-import)}
.export-color{background:var(--chart-export)}
.metrics article:nth-child(2) strong{color:var(--chart-export)}
.milestone-edit{font:inherit;font-size:12px;font-weight:600;color:#b81018;background:#fff3f3;border:1px solid #f1cccc;border-radius:16px;padding:6px 11px;cursor:pointer;margin-top:4px}.milestone-edit:hover{background:#ffe3e3}.milestone-edit:focus-visible{outline:2px solid #b81018;outline-offset:3px}@media(max-width:700px){.milestone-edit{grid-column:2;justify-self:start}.milestones li:not(:last-child):before{height:calc(100% - 22px)}}
#dashboard.guided-dashboard>.page-heading{display:block;text-align:center;padding:28px 36px 40px}#dashboard.guided-dashboard>.page-heading>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;border-bottom:1px solid #ffffff45;padding-bottom:18px;margin-bottom:30px}#dashboard.guided-dashboard>.page-heading>div:first-child>.eyebrow{display:none}#dashboard.guided-dashboard>.page-heading h1{font-size:21px;margin:0;letter-spacing:-.5px}#dashboard.guided-dashboard #account-name{font-size:12px;margin:0}#dashboard.guided-dashboard #open-connect{display:none!important}.next-action{max-width:760px;margin:auto}.next-action h2{color:white;font-size:clamp(27px,3.4vw,44px);letter-spacing:-1.2px;line-height:1.12;margin:14px 0}.next-action>p:not(.eyebrow){color:#fff;max-width:570px;margin:0 auto 24px;line-height:1.65;font-size:16px}#dashboard>.page-heading .next-action .primary{background:white;color:#b81018;padding:16px 28px;font-size:16px;min-height:54px;box-shadow:0 8px 25px #9e0f0d30}.guided-dashboard #empty{display:none!important}@media(max-width:600px){#dashboard.guided-dashboard>.page-heading{padding:24px 20px 30px}#dashboard.guided-dashboard>.page-heading>div:first-child{align-items:flex-start;flex-direction:column;gap:8px}.next-action>p:not(.eyebrow){font-size:14px}#dashboard>.page-heading .next-action .primary{width:100%;font-size:14px;padding:14px 18px}}
/* Step four is an outcome view; source data stays in step three. */
#dashboard.comparison-focused>.page-heading{padding-bottom:24px}#dashboard.comparison-focused .next-action h2{font-size:28px}#dashboard.comparison-focused .next-action>p:not(.eyebrow){margin-bottom:0;font-size:14px}#dashboard.comparison-focused .next-action>.eyebrow{display:none}.comparison-options{margin-top:28px;border-top:1px solid #e7dddd;padding-top:22px}.comparison-options>summary{font-weight:650;color:#b81018;cursor:pointer}.comparison-options[open]>.simulation-controls{margin-top:22px}#journey-context>button{margin:10px 0 28px}#simulation-results>details{margin:18px 0}#site-installation-title{scroll-margin-top:28px}
#dashboard.comparison-focused .account-journey{padding:18px 24px;margin-bottom:20px}#dashboard.comparison-focused .journey-heading,#dashboard.comparison-focused #journey-feedback{display:none}#dashboard.comparison-focused .milestones{margin:0}#dashboard.comparison-focused .milestones small{display:none}#dashboard.comparison-focused .milestone-dot{width:30px;height:30px}#dashboard.comparison-focused .milestones li:not(:last-child):before{top:14px;left:31px}#dashboard.comparison-focused>.page-heading>div:first-child{margin-bottom:16px;padding-bottom:12px}#dashboard.comparison-focused>.page-heading{padding-top:20px;padding-bottom:20px}#dashboard.comparison-focused #meter-content>.simulation-card{margin-top:0}#dashboard.comparison-focused #meter-content>.simulation-card>.eyebrow{display:none}#dashboard.comparison-focused #simulation-title{font-size:26px;margin-top:0}#dashboard.comparison-focused #simulation-results>.simulation-winner:first-child{margin-top:16px}@media(max-width:700px){#dashboard.comparison-focused .milestones{grid-template-columns:1fr 1fr;gap:18px}#dashboard.comparison-focused .milestones li{display:flex;padding-right:0;gap:8px}#dashboard.comparison-focused .milestones li:before{display:none}#dashboard.comparison-focused .milestones strong{font-size:12px;align-self:auto}#dashboard.comparison-focused .next-action h2{font-size:24px}}
.switch-saving{background:#fff0f0;border:1px solid #f2ccce;border-radius:18px;padding:24px;margin:20px 0}.switch-saving h3{font-size:28px;color:#b81018;margin:8px 0 16px}.switch-saving p,.switch-guidance p{line-height:1.65}.switch-guidance{border-bottom:1px solid #e7dddd;padding:4px 0 20px;margin-bottom:22px}.switch-guidance h3{font-size:21px}.switch-guidance summary{cursor:pointer;font-weight:650}.switch-saving .small{color:#695b5f}@media(max-width:600px){.switch-saving{padding:20px}.switch-saving h3{font-size:24px}}
/* Step one contains only the current-contract form, even for existing meters; an installer's catalogue stays. */
#dashboard.contract-step> :not(.page-heading):not(.account-journey):not(#current-contract-panel):not(.journey-loading){display:none!important}#dashboard.account-view>:not(.page-heading):not(.account-journey):not(#account-panel):not(.journey-loading){display:none!important}
/* Meter readings belong to step two; equipment belongs to step three. */
#dashboard.installation-step>#import-wait,#dashboard.installation-step>#sync-status,#dashboard.installation-step>#pending-meters,#dashboard.installation-step>.muted{display:none!important}
/* The whole milestone is a keyboard-accessible navigation button. */
#dashboard .milestones{gap:12px}#dashboard .milestones li{display:block;padding:0;min-width:0}#dashboard .milestones li:before{display:none}.milestone-link{display:flex;flex-direction:column;align-items:flex-start;gap:10px;width:100%;height:100%;min-height:148px;padding:18px;border:2px solid transparent;border-radius:16px;background:#f8f5f5;text-align:left;color:#574e50;cursor:pointer;transition:border-color .18s,background .18s,box-shadow .18s}.milestone-link:hover:not(:disabled){background:#fff0f0;border-color:#efb9bd}.milestone-link:focus-visible{outline:3px solid #ee1c25;outline-offset:3px}.milestone-link:disabled{cursor:default;opacity:.6}#dashboard .current .milestone-link{background:#fff0f0;border-color:#ee1c25;box-shadow:0 4px 18px #ee1c2514;color:#9e0f0d}#dashboard .current .milestone-dot{background:#ee1c25;color:#fff;border-color:#ee1c25;box-shadow:none}#dashboard .milestone-state{font-size:11px;font-weight:650;margin-top:auto}#dashboard .current .milestone-state{background:#ee1c25;color:#fff;padding:5px 9px;border-radius:20px}#dashboard .milestone-link strong{align-self:auto}#dashboard.comparison-focused .milestone-link{min-height:130px;padding:14px}#dashboard .milestones small{line-height:1.45}@media(max-width:700px){#dashboard .milestones{grid-template-columns:1fr 1fr;gap:10px}#dashboard .milestone-link{padding:13px;min-height:140px}#dashboard .milestone-link strong{font-size:13px}#dashboard .milestones small{display:none}#dashboard .milestone-dot{width:30px;height:30px}#dashboard.comparison-focused .milestone-link{min-height:130px}}@media(prefers-reduced-motion:reduce){.milestone-link{transition:none}}
/* Unknown progress is a loading state, never a provisional milestone. */
#dashboard.progress-loading>:not(.page-heading):not(.journey-loading){display:none!important}#dashboard.progress-loading .page-heading .next-action{display:none!important}#dashboard.progress-loading>.journey-loading{display:block!important}#dashboard.progress-loading>.page-heading>div:first-child{margin-bottom:0;border-bottom:0;padding-bottom:0}#dashboard.progress-loading>.page-heading{padding-bottom:28px}.journey-loading{text-align:center;background:#fff;border:1px solid #eee4e4;border-radius:24px;padding:64px 24px;margin:24px 0;min-height:280px}.journey-loading h2{font-size:24px;margin:22px 0 12px}.journey-loading p{color:#695b5f;line-height:1.6}.journey-spinner{display:inline-block;width:44px;height:44px;border:4px solid #f8dfe1;border-top-color:#ee1c25;border-radius:50%;animation:journey-spin .8s linear infinite}@keyframes journey-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.journey-spinner{animation:none}}

.installation-purpose{margin:24px 0;padding:20px 24px;border-left:4px solid #ee1c25;border-radius:0 16px 16px 0;background:#fff1f2;color:#181113}.installation-purpose strong{font-size:1.05rem}.installation-purpose p{margin:8px 0 0}.battery-palette .asset-library button{white-space:normal;text-align:left;line-height:1.4}

.simulation-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:30px}.simulation-actions button{display:flex;flex-direction:column;gap:10px;align-items:flex-start;text-align:left;padding:24px;border:2px solid #ee1c25;border-radius:20px;background:#fff1f2;color:#181113}.simulation-actions button>span{color:#ee1c25;font-size:32px}.simulation-actions button strong{font-size:18px;line-height:1.35}.simulation-actions button[aria-pressed="true"]{background:#ee1c25;color:white}.simulation-actions button[aria-pressed="true"]>span{color:white}.simulation-actions button:disabled{opacity:.6}@media(max-width:700px){.simulation-actions{grid-template-columns:1fr}.simulation-actions button{padding:18px}}

#simulation-status.simulation-loading{display:flex;align-items:center;gap:20px;min-height:100px;padding:24px;margin:24px 0;border:1px solid #f5c5ca;border-radius:18px;background:#fff1f2;color:#65101b;font-weight:600}
#simulation-status.simulation-loading::before{content:"";display:block;flex:0 0 32px;width:32px;height:32px;border:4px solid #f4c8cd;border-top-color:#ee1c25;border-radius:50%;animation:journey-spin .8s linear infinite}
.simulation-actions button.is-loading>span{font-size:0;width:28px;height:28px;border:3px solid #ffffff60;border-top-color:#fff;border-radius:50%;animation:journey-spin .8s linear infinite}
.simulation-actions button.is-loading:disabled{opacity:1}
@media(prefers-reduced-motion:reduce){#simulation-status.simulation-loading::before,.simulation-actions button.is-loading>span{animation:none}}
@media(max-width:600px){#simulation-status.simulation-loading{padding:18px;gap:14px}}

.payback-chart{margin:24px 0;padding:24px;border:1px solid #eadfe1;border-radius:20px;background:#fff}.payback-chart svg{display:block;width:100%;height:auto;margin:16px 0}.payback-chart h3{margin-top:0}.payback-chart figcaption{font-size:.9rem;line-height:1.6;color:#66565a}.payback-chart details{margin-top:16px}.payback-chart table{width:100%;text-align:left}.payback-chart td,.payback-chart th{padding:8px}@media(max-width:600px){.payback-chart{padding:12px}.payback-chart svg{min-height:210px}}


/* EMS feature card follows the red Eniris feature panels. */
.info-page .ems-panel{background:#ee1c25;color:#fff;border:1px solid #ee1c25;border-radius:28px;padding:36px;gap:32px;grid-template-columns:150px minmax(0,1fr)}
.info-page .ems-panel h3{color:#fff;font-size:clamp(24px,3vw,32px);line-height:1.2;margin:8px 0 16px}
.info-page .ems-panel p,.info-page .ems-panel .eyebrow{color:#fff}
.info-page .ems-panel .eyebrow{margin-top:0;letter-spacing:.14em}
.info-page .ems-panel svg{stroke:#fff;fill:none;padding:16px;background:#ffffff14;border:1px solid #ffffff40;border-radius:24px;box-sizing:border-box}
.info-page .ems-panel svg text{fill:#fff;stroke:none}
.info-page .ems-panel .ems-example{border-top:1px solid #ffffff55;padding-top:18px}
@media(max-width:640px){.info-page .ems-panel{grid-template-columns:1fr;padding:24px;gap:20px;border-radius:22px}.info-page .ems-panel svg{width:100px}.info-page .ems-panel h3{font-size:25px}}

/* The installer's offer catalogue, the selected offers above the combination button, and the offer that wins in the
   table of all offers (bold and light green, like the cheapest bill among the result cards). */
#offer-catalogue #offer-form .battery-editor-actions{justify-content:flex-start;margin-top:18px}#offer-catalogue td small,#combined-offers td small{color:#8a8082;font-size:12px}#offer-catalogue td .text-button{padding:0;font-size:13px}#offer-pick-rows input[type=checkbox]{width:20px;height:20px;margin:0}#offer-count{margin-top:12px}#account-back{margin-top:12px}#offer-table th:nth-child(2),#offer-table td:nth-child(2){text-align:right;white-space:nowrap}
#combined-offers{margin:0 0 18px}#combined-offers .simulation-table-wrap{margin:12px 0;max-height:340px}
tr.is-recommended td{font-weight:700;background:#f4fbf7;color:#157f4a}tr.is-recommended td:first-child{box-shadow:inset 3px 0 0 #157f4a}

.admin-page #partner-form{display:grid;gap:16px;max-width:900px}.admin-page #partner-form label{display:grid;gap:6px}.admin-page #partner-form textarea{width:100%;padding:12px;border:1px solid #ccc;border-radius:12px;font:inherit}.admin-page #partner-form input[type=checkbox]{width:20px}.admin-page #partner-list p{padding:14px;border-bottom:1px solid #ddd}.admin-page #partner-list a{margin-left:12px}
/* The installer's profile switcher in the dashboard heading (clients.js) and Mijn klanten in Mijn account. */
.client-switcher{margin-top:18px;max-width:560px}.client-switcher label{color:#fff;margin:0 0 6px}.client-switcher-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.client-switcher select{flex:1 1 220px;min-width:0;color:var(--eniris-ink);background:#fff}.client-switcher .secondary{display:inline-flex;align-items:center;padding:0 18px;text-decoration:none}#client-switch-status{color:#fff;margin:8px 0 0}
/* Dashboard actions remain in their step panels after removing the duplicate banner. */
#dashboard.meter-step:not(.progress-loading) #empty:not([hidden]){display:block!important}
.account-journey>.client-switcher{margin:0 0 20px}.account-journey>.client-switcher label,.account-journey #client-switch-status{color:var(--eniris-ink)}
.client-manager{margin:10px 0 28px}.client-manager .battery-editor-actions{justify-content:flex-start;margin-top:18px}.client-manager td small{color:#8a8082;font-size:12px}.client-manager td .text-button{padding:0;font-size:13px}.client-notes-label{grid-column:1/-1}
.client-chooser{margin:0 auto;max-width:1100px}.client-chooser .client-manager{margin-bottom:0}
.results-pdf{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 14px}.results-pdf .small{color:#8a8082}.results-print-header{display:none}
@media print{
@page{margin:14mm 12mm}
body.printing-results .print-omit{display:none!important}
body.printing-results,body.printing-results main{background:#fff;margin:0;padding:0;max-width:none}
body.printing-results .result-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
body.printing-results #dashboard,body.printing-results #dashboard *:has(#combined-results){background:none;box-shadow:none;border:0;margin:0;padding:0;max-width:none}
body.printing-results #results-print-header{display:block;margin:0 0 18px;padding:0 0 12px;border-bottom:1px solid #d9d4d5}
body.printing-results #results-print-header img{height:28px;width:auto}
body.printing-results #results-print-header h1{font-size:26px;margin:12px 0 6px}
body.printing-results #results-print-header p{margin:2px 0;font-size:12px;color:#444}
body.printing-results #combined-results{-webkit-print-color-adjust:exact;print-color-adjust:exact;margin:0;padding:0}
body.printing-results .simulation-table-wrap{max-height:none;overflow:visible}
body.printing-results .simulation-table{width:100%;font-size:10px}
body.printing-results .simulation-table th,body.printing-results .simulation-table td{padding:4px 6px}
body.printing-results thead{display:table-header-group}
body.printing-results tr,body.printing-results figure,body.printing-results .result-card,body.printing-results .simulation-winner,body.printing-results .notice{break-inside:avoid}
body.printing-results h3,body.printing-results caption,body.printing-results summary{break-after:avoid}
body.printing-results #combined-results a.primary{background:none;border:0;padding:0;color:inherit;text-decoration:underline}
body.printing-results #combined-results summary{list-style:none;font-weight:700}
}
.installer-only .comparison-options,.installer-only .simulation-controls,.installer-only #simulation-progress,.installer-only #simulation-status,.installer-only #calculation-history,.installer-only #simulation-results{display:none!important}.installer-only-note{margin:18px 0}.installer-only-note p{margin:6px 0 0}
#client-invite-dialog{max-width:560px}#client-invite-link{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}#client-invite-link p{grid-column:1/-1;margin:0}#client-invite-url{min-width:0}
.account-menu{position:relative;display:inline-block}.account-menu>summary{list-style:none;cursor:pointer}.account-menu>summary::-webkit-details-marker{display:none}.account-menu>summary:after{content:" ▾"}.account-menu-list{position:absolute;right:0;top:calc(100% + 8px);z-index:20;display:grid;min-width:190px;padding:8px;background:#fff;border:1px solid #e6dfdf;border-radius:14px;box-shadow:0 12px 30px #0000001f}.account-menu-list a{display:block;padding:10px 12px;border-radius:10px;white-space:nowrap}.account-menu-list a:hover,.account-menu-list a:focus-visible{background:#f6f2f2}
#account-panel[data-section=klanten] :is(#offer-catalogue,#installer-branding),#account-panel[data-section=catalogus] :is(#client-manager,#installer-branding),#account-panel[data-section=huisstijl] :is(#client-manager,#offer-catalogue),#client-chooser[data-section=klanten] :is(#offer-catalogue,#installer-branding),#client-chooser[data-section=catalogus] :is(#client-manager,#installer-branding),#client-chooser[data-section=huisstijl] :is(#client-manager,#offer-catalogue){display:none!important}

.installer-branding{margin:10px 0 28px}.branding-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin:16px 0}.branding-logo img{display:block;max-width:220px;max-height:72px;object-fit:contain;margin:6px 0 12px}.branding-file{position:relative;display:inline-flex;align-items:center;cursor:pointer}.branding-file input{position:absolute;inset:0;opacity:0;cursor:pointer}.branding-colours label{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:260px}.branding-colours input[type=color]{width:56px;height:36px;padding:2px;border-radius:8px}
.branding-preview{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:16px;border:1px solid #e6dfdf;border-top:4px solid var(--brand-primary,#ee1c25);border-radius:14px;background:#fff}.branding-preview img{max-height:40px;max-width:160px;object-fit:contain}.branding-preview strong{color:var(--brand-primary,#ee1c25);font-size:20px}.branding-preview-card{padding:8px 12px;border:1px solid var(--brand-primary,#ee1c25);border-radius:10px;color:var(--brand-primary,#ee1c25)}.branding-preview-accent{color:var(--brand-secondary,#8a8082);font-size:12px;letter-spacing:.08em}
@media print{
body.printing-results.installer-brand #results-print-header{border-bottom:3px solid var(--brand-primary)}
body.printing-results.installer-brand #results-print-header img{height:44px;max-width:240px;object-fit:contain}
body.printing-results.installer-brand #results-print-header h1{color:var(--brand-primary)}
body.printing-results.installer-brand #combined-results .eyebrow{color:var(--brand-secondary)}
body.printing-results.installer-brand #combined-results .result-card.is-total{border-color:var(--brand-primary);box-shadow:inset 0 0 0 1px var(--brand-primary);background:#fff}
body.printing-results.installer-brand #combined-results .result-card.is-total strong{color:var(--brand-primary)}
body.printing-results.installer-brand #combined-results .simulation-table thead th{box-shadow:inset 0 -2px 0 var(--brand-secondary)}
body.printing-results.installer-brand #combined-results [fill="#ee1c25"]{fill:var(--brand-primary)}
body.printing-results.installer-brand #combined-results [fill="#f5878c"]{fill:var(--brand-primary);fill-opacity:.5}
body.printing-results.installer-brand #combined-results [fill="#8a8082"]{fill:var(--brand-secondary)}
body.printing-results.installer-brand #combined-results [fill="#b9b1b3"]{fill:var(--brand-secondary);fill-opacity:.5}
}
/* The top bar of every page, one layout everywhere: the menu and the brand on the left, the account on the right. */
header.topbar{display:flex;align-items:center;gap:16px;max-width:1240px;height:auto;min-height:76px;margin:0 auto;padding:12px 32px;background:transparent;border:0;box-sizing:border-box;position:relative;z-index:30}
header.topbar .brand{display:flex;align-items:center}
header.topbar .account-nav{margin-left:auto;display:flex;align-items:center;gap:10px}
header.topbar .account-link,header.topbar .account-menu>summary{display:inline-flex;align-items:center;min-height:42px;padding:0 20px;border-radius:999px;background:var(--eniris-lime);color:#fff;font-size:14px;font-weight:650;text-decoration:none;transition:background .15s}
header.topbar .account-link:hover,header.topbar .account-menu>summary:hover{background:#c8141c}
header.topbar #logout{min-height:42px;padding:0 16px;border:1px solid var(--eniris-line);border-radius:999px;background:#fff;color:var(--eniris-ink);font-size:14px}
header.topbar #logout:hover{border-color:var(--eniris-ink)}
.site-menu{position:relative}
.site-menu>summary{display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:0 16px 0 14px;border:1px solid var(--eniris-line);border-radius:999px;background:#fff;color:var(--eniris-ink);font-size:14px;font-weight:650;cursor:pointer;list-style:none;user-select:none}
.site-menu>summary::-webkit-details-marker{display:none}
.site-menu>summary:hover,.site-menu[open]>summary{border-color:var(--eniris-ink)}
.site-menu-icon{position:relative;width:16px;height:2px;background:currentColor;border-radius:2px;transition:background .15s}
.site-menu-icon:before,.site-menu-icon:after{content:"";position:absolute;left:0;width:16px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s}
.site-menu-icon:before{top:-5px}.site-menu-icon:after{top:5px}
.site-menu[open] .site-menu-icon{background:transparent}
.site-menu[open] .site-menu-icon:before{transform:translateY(5px) rotate(45deg)}
.site-menu[open] .site-menu-icon:after{transform:translateY(-5px) rotate(-45deg)}
.site-menu-panel{position:absolute;left:0;top:calc(100% + 10px);display:grid;min-width:260px;padding:8px;background:#fff;border:1px solid var(--eniris-line);border-radius:16px;box-shadow:0 18px 40px #18111324}
.site-menu-panel a{padding:12px 14px;border-radius:10px;color:var(--eniris-ink);font-size:16px;font-weight:600;text-decoration:none}
.site-menu-panel a:hover,.site-menu-panel a:focus-visible{background:var(--eniris-paper)}
.site-menu-panel a[aria-current=page]{color:var(--eniris-lime)}
header.topbar :is(summary,a,button):focus-visible{outline:3px solid #ee1c2566;outline-offset:2px}
.account-menu-list{top:calc(100% + 10px)}
@media(max-width:640px){header.topbar{gap:10px;padding:10px 16px;min-height:64px}header.topbar .brand-logo{width:96px}.site-menu>summary{padding:0 12px;gap:0;font-size:0}.site-menu>summary .site-menu-icon{margin:0 2px}header.topbar .account-link,header.topbar .account-menu>summary{padding:0 14px;font-size:13px}header.topbar #logout{padding:0 12px;font-size:13px}.site-menu-panel{position:fixed;left:16px;right:16px;top:70px;min-width:0}}
@media(prefers-reduced-motion:reduce){.site-menu-icon,.site-menu-icon:before,.site-menu-icon:after{transition:none}}
header.topbar .site-menu-panel{gap:2px;margin:0}
/* The client switcher belongs to the steps of the open client, not to Mijn klanten, Mijn catalogus or Mijn huisstijl. */
#dashboard.account-view #client-switcher{display:none}
/* Questions open with a plus that turns into a minus, in the site's red, instead of the browser's black triangle. */
.landing-faq details>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;cursor:pointer;font-weight:650}
.landing-faq details>summary::-webkit-details-marker{display:none}
.landing-faq details>summary:after{content:"+";flex:0 0 28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--eniris-paper);color:var(--eniris-lime);font-size:20px;line-height:1;font-weight:600}
.landing-faq details[open]>summary:after{content:"−";background:#fff}
.landing-faq details>summary:focus-visible{outline:3px solid #ee1c2566;outline-offset:4px;border-radius:8px}
/* The terms under the start button are read before signing up: legible, not fine print. */
body .welcome .hero-reassurance{font-size:13px;opacity:.92;max-width:440px}
/* The account buttons keep to one line on a phone. */
header.topbar .account-link,header.topbar .account-menu>summary,header.topbar #logout{white-space:nowrap}
@media(max-width:420px){header.topbar{gap:8px;padding:10px 12px}header.topbar .brand-logo{width:84px}header.topbar .account-link,header.topbar .account-menu>summary{padding:0 12px}header.topbar #logout{padding:0 10px}}
.branding-colours .branding-same{justify-content:flex-start;gap:8px;font-weight:500;margin-top:-4px}.branding-colours .branding-same input{width:auto;height:auto;margin:0}.branding-colours input[type=color]:disabled{opacity:.45;cursor:not-allowed}
#admin-requests{margin:18px 0 28px;padding:20px 0;border-top:1px solid var(--eniris-line);border-bottom:1px solid var(--eniris-line)}#admin-requests h2{margin:0 0 6px}#admin-request-rows td:last-child{display:flex;flex-wrap:wrap;gap:8px;align-items:center}#admin-request-rows .primary{padding:8px 14px}
#register-fields select{width:100%;box-sizing:border-box}
/* Mijn account is a place of its own: the progress through a profile's steps does not belong there. */
#dashboard.account-view .account-journey{display:none}
.client-current{margin:0;font-size:15px}.client-current span{color:#8a8082}.client-current strong{font-size:18px}
.row-actions{position:relative;display:inline-block}
.row-actions>summary{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--eniris-line);border-radius:999px;background:#fff;font-size:13px;font-weight:650;cursor:pointer;list-style:none;white-space:nowrap}
.row-actions>summary::-webkit-details-marker{display:none}.row-actions>summary:after{content:"▾";font-size:11px}
.row-actions>summary:hover,.row-actions[open]>summary{border-color:var(--eniris-ink)}
.row-actions>summary:focus-visible{outline:3px solid #ee1c2566;outline-offset:2px}
.row-actions-list{position:absolute;right:0;top:calc(100% + 6px);z-index:25;display:grid;min-width:160px;padding:6px;background:#fff;border:1px solid var(--eniris-line);border-radius:12px;box-shadow:0 14px 30px #18111322}
.client-manager .row-actions-list .text-button{display:block;width:100%;padding:9px 12px;border-radius:8px;text-align:left;font-size:14px;color:var(--eniris-ink);text-decoration:none}
.client-manager .row-actions-list .text-button:hover,.client-manager .row-actions-list .text-button:focus-visible{background:var(--eniris-paper)}
.client-manager .row-actions-list .text-button:last-child{color:#c8141c}
#client-table-wrap{overflow:visible}
/* The open client's name with "Andere klant kiezen" on the same line; on a narrow screen the button wraps below. */
.client-switcher .client-switcher-row{gap:10px 16px}.client-switcher .client-current{flex:0 1 auto;min-width:0;overflow-wrap:anywhere}.client-switcher #client-manage{min-height:40px;font-size:14px}
/* Step 2 by file: the texts of the other country stay out of sight (journey.js sets the panel's country). */
#upload-panel[data-country=BE] [data-country=NL],#upload-panel:not([data-country=BE]) [data-country=BE]{display:none}
#upload-panel #fluvius-export-help ol{margin:10px 0 0;padding-left:20px;line-height:1.7}
.empty-alternative{margin:14px 0 0}.empty-alternative .text-button{font-size:14px}
/* The questionnaire: a short form, two columns where there is room. */
.profile-questions{margin:22px 0;border:1px solid #ece1e1;border-radius:18px;padding:16px 20px;background:#fffafa}
.profile-questions>summary{cursor:pointer;font-weight:650;color:var(--eniris-ink)}
.profile-questions>p{margin:12px 0 0;line-height:1.6}
.profile-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px 22px;margin-top:16px;align-items:start}
.profile-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}
.profile-form label small{font-weight:400;color:#77686b;line-height:1.5}
.profile-form input[type=number],.profile-form select{width:100%;box-sizing:border-box}
.profile-form .check-label{flex-direction:row;align-items:center;gap:10px;font-weight:500;grid-column:1/-1}
.profile-form button{grid-column:1/-1;justify-self:start}
