/* Shared layout safeguards: overflow belongs to data regions, never the page. */
.app-shell{grid-template-columns:244px minmax(0,1fr)}
.main,.main>*,.chart-card,.info-card>div,.auth-panel,.auth-intro,.report-controls label,.easee-period-fields label{min-width:0}
.main p,.main h1,.main h2,.main h3,.notice,.error-banner,.auth-form{overflow-wrap:anywhere}
select,input,textarea{max-width:100%}select{min-width:0}.flow-source-label select{max-width:100%}
.table-scroll,.easee-scroll,.report-chart{max-width:100%;overscroll-behavior-x:contain}
.chart-container{overflow-x:auto}.chart-container>svg{min-width:520px}
.report-total .value,.energy-number,.metric-number,.allocation-total strong{overflow-wrap:anywhere;white-space:normal}
.comparison-delta small{margin-top:4px;font-size:12px;color:var(--muted)}
.flow-canvas{height:630px}.flow-node,.flow-pv{height:180px;min-height:180px;display:flex;flex-direction:column;justify-content:center}
.flow-pv{top:16%}.flow-grid{top:50%}.flow-battery{top:84%}.flow-hub{top:50%}
.flow-battery{flex-direction:row;align-items:center;gap:5px;padding:12px 8px}
.flow-battery>.flow-icon{flex:0 0 48px}.flow-battery .flow-icon svg{width:48px;height:72px}
.flow-battery-text{min-width:0}.flow-battery h3{font-size:13px}.flow-node .flow-soc{font-size:19px;margin:5px 0}
.flow-canvas[data-compact="true"]{height:750px}
.flow-canvas[data-compact="true"] .flow-node{height:180px;min-height:180px;width:42%;padding:10px 6px}
.flow-canvas[data-compact="true"] .flow-pv{top:13%}
.flow-canvas[data-compact="true"] .flow-grid,.flow-canvas[data-compact="true"] .flow-house{top:41%}
.flow-canvas[data-compact="true"] .flow-battery,.flow-canvas[data-compact="true"] .flow-ev{top:86%}
.flow-canvas[data-compact="true"] .flow-battery h3{font-size:12px}
.flow-canvas[data-stacked="true"]{height:990px}
.flow-canvas[data-stacked="true"] .flow-node{left:calc(50% + 34px);width:calc(100% - 68px);height:180px;min-height:180px;padding:12px 8px}
.flow-canvas[data-stacked="true"] .flow-pv{top:100px}
.flow-canvas[data-stacked="true"] .flow-grid{top:296px}
.flow-canvas[data-stacked="true"] .flow-battery{top:492px}
.flow-canvas[data-stacked="true"] .flow-house{top:688px}
.flow-canvas[data-stacked="true"] .flow-ev{top:884px}
.flow-canvas[data-stacked="true"] .flow-hub{left:27px;top:492px;width:52px;height:52px;font-size:8px;box-shadow:0 0 0 3px #fbfcf8}
.flow-canvas[data-stacked="true"] .flow-hub span{font-size:22px}
@media(min-width:761px) and (max-width:1150px){.app-shell{grid-template-columns:205px minmax(0,1fr)}}
@media(max-height:760px) and (min-width:761px){.sidebar{position:static;height:auto;min-height:100vh}}
@media(max-width:1000px){.page-header,.section-heading,.chart-title{flex-wrap:wrap}.energy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.nav-link{min-width:0;min-height:44px;margin:0;justify-content:flex-start;overflow-wrap:anywhere}
 .account-links{gap:8px 16px}.account-links a,.account-links button{min-height:36px;display:flex;align-items:center}
 .page-header,.section-heading{align-items:flex-start}.refresh-state{max-width:none}.section-heading>span{max-width:none;text-align:left}
 .report-controls label,.report-controls label:first-child{min-width:0;flex:1 1 130px;max-width:100%}.report-controls label:first-child{flex-basis:100%}
 .report-totals,.report-totals:has(.report-total:nth-child(2):last-child){grid-template-columns:1fr}
 .easee-filter,.easee-card{padding:16px}.easee-filter #charger-selection{min-width:0;width:100%}.easee-period-fields label{flex:1 1 120px}.easee-period-fields input,.easee-period-fields select{width:100%}.easee-period-fields button{width:100%;min-height:44px}
 .allocation-select{flex-wrap:wrap}.allocation-select select{width:100%}.flow-heading .flow-pause{min-height:44px}.flow-source-label select{width:100%;min-height:44px}
 footer{flex-wrap:wrap;gap:6px}.auth-body{padding:12px}.auth-panel{padding:24px 18px}
}
@media(max-width:600px){
 #comparison-table,#comparison-table tbody,#comparison-table tr,#comparison-table td{display:block;width:100%;min-width:0}
 #comparison-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 #comparison-table tr{border:1px solid var(--line);border-radius:12px;margin:12px 0;padding:8px}
 #comparison-table td{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 10px;text-align:right;padding:10px 4px;overflow-wrap:anywhere}
 #comparison-table td:before{content:attr(data-label);text-align:left;font-weight:400;color:var(--muted)}
 #comparison-table td:first-child{display:block;text-align:left;font-size:14px;background:var(--mint);border-radius:6px;padding:10px}
 #comparison-table td:first-child:before{content:none}#comparison-table td:last-child{border:0}
 #comparison-table td small{grid-column:2;margin:0}#comparison-table caption{display:block}
}
@media(max-width:480px){
 .main{padding:14px 10px}.sidebar{padding:16px 12px}.live-secondary{grid-template-columns:1fr}.metric-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}.metric-icon{display:none}.metric-number{grid-column:2;grid-row:1 / 3;margin:0}.metric-meta{padding:0}.energy-grid,.allocation-summary{grid-template-columns:1fr}.energy-card{border-right:0;border-bottom:1px solid var(--line)!important}.energy-card:last-child{border-bottom:0!important}
 .hero-number>span:first-child{font-size:42px}.flow-heading h2{font-size:22px}.energy-flow{padding:18px 10px}.flow-loading{font-size:12px}.date-control{max-width:100%}.date-control input{width:100%}
 .auth-intro{padding:22px 18px}.auth-intro h1{font-size:26px}.empty-card,.form-card{padding:20px 16px}
}

@media(max-width:480px){.solar-snapshot-grid{grid-template-columns:1fr}.flow-battery .flow-icon svg{width:42px;height:72px}}
