.admin-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}.admin-form{background:#fff8e9;border:1px solid #ead399;padding:20px;border-radius:12px;margin-bottom:18px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px}.form-grid label{display:grid;gap:5px;font-weight:650}.form-grid input,.form-grid select,.form-grid textarea,.filter-row input,.filter-row select{font:inherit;padding:11px;border:1px solid #bbb;border-radius:8px;background:#fff}.form-grid button{align-self:end}.form-grid .wide{grid-column:1/-1}.table-wrap{overflow:auto;background:#fff;border:1px solid #eee0c7;border-radius:12px;margin-bottom:20px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #e7ddcb;vertical-align:top}th{color:#706861;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}tbody tr:hover{background:#fffaf0}.success-box,.error-box,.warning-box,.info-box{padding:13px;border-radius:9px;margin:12px 0}.success-box{background:#dcf5e6;color:#126c3f}.error-box{background:#fde4e4;color:#a20d18}.warning-box{background:#fff4db;border:1px solid #e8bd59;color:#624000}.info-box{background:#f4efe5;border:1px solid #ded1ba;color:#544c42}.charger-map{width:100%;border-radius:16px}.map-panel{display:block!important;padding:0!important}.driver-page{max-width:1700px;margin:auto}.driver-shell{display:grid;grid-template-columns:255px minmax(0,1fr);gap:24px;align-items:start}.driver-nav{position:sticky;top:92px;background:#211d1a;color:#fff;border-radius:15px;padding:16px;display:grid;gap:10px}.driver-nav>.button{width:100%;text-align:center}.driver-nav nav{display:grid;gap:4px;margin-top:6px}.driver-nav nav button,.driver-nav nav a{display:block;width:100%;border:0;background:transparent;color:#e8e3df;text-align:left;padding:11px 12px;border-radius:8px;font:inherit;cursor:pointer}.driver-nav nav button:hover,.driver-nav nav a:hover,.driver-nav nav .active{background:#a20d18;color:#fff}.driver-support{padding:12px;color:#f4cc63;border-top:1px solid #4e4742;margin-top:8px}.driver-workspace{min-width:0}.button.gold{background:#c99316;color:#17120a}.button.danger{background:#a70d18;margin-right:.75rem}.danger-outline{border-color:#91222a!important;color:#91222a!important}button:disabled{opacity:.55;cursor:not-allowed}.driver-stats{grid-template-columns:repeat(4,1fr)}.driver-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.driver-grid .wide{grid-column:1/-1}.driver-grid .card{margin:0}.card.inset{margin-top:20px}.active-session{margin:0 0 1.25rem;border-left:5px solid #c99316}.stats.compact{grid-template-columns:repeat(4,minmax(0,1fr));margin:1rem 0}.stats.compact article{min-height:auto;padding:1rem}.confirmation{padding:1rem;border:1px solid #ead9ad;background:#fff9e8;border-radius:12px;line-height:1.65}.data-list{display:grid;gap:9px}.data-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #eee}.data-row:last-child{border:0}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.section-heading h2{font-size:2rem;margin-bottom:4px;color:#a20d18}.section-heading p{margin:0;color:#706861}.filter-row{display:flex;gap:10px;margin-bottom:14px}.filter-row input{flex:1}.check-grid{display:grid;gap:12px}.check-grid label,.check-label{display:flex!important;align-items:center;gap:8px}.faq-list{display:grid;gap:10px;margin-bottom:20px}.faq-list details{background:#fff;border:1px solid #e7ddcb;border-radius:12px;padding:16px}.faq-list summary{font-weight:750;cursor:pointer}.charger-detail-panel{background:#fff8e9;border:1px solid #e2c678;border-radius:12px;padding:18px;margin:15px 0}.command-console{display:grid;grid-template-columns:220px 1fr auto;gap:10px;align-items:end;margin:16px 0}.command-console label{display:grid;gap:5px;font-weight:650}.command-console textarea,.command-console select{font:inherit;padding:10px;border:1px solid #bbb;border-radius:8px;background:#fff}.severity-CRITICAL{color:#a20d18;font-weight:800}.severity-HIGH{color:#a45b00;font-weight:750}@media(max-width:1000px){.driver-shell{grid-template-columns:1fr}.driver-nav{position:static}.driver-nav nav{display:grid;grid-template-columns:repeat(3,1fr)}.form-grid,.driver-grid{grid-template-columns:1fr}.driver-grid .wide{grid-column:auto}.driver-stats{grid-template-columns:1fr 1fr}}@media(max-width:650px){.stats.compact{grid-template-columns:1fr 1fr}.driver-nav nav{grid-template-columns:1fr 1fr}.command-console{grid-template-columns:1fr}.section-heading{display:block}.section-heading>*+*{margin-top:12px}}@media(max-width:550px){.driver-stats{grid-template-columns:1fr}.driver-nav nav{grid-template-columns:1fr}.filter-row{display:grid}}

/* SwiftCharge major UX update */
.eyebrow{display:inline-block;font-size:.76rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#9a6a09;margin-bottom:6px}
.topup-mini-balance{min-width:190px;background:#211d1a;color:#fff;border-radius:14px;padding:13px 16px;display:grid;gap:1px;box-shadow:0 10px 28px #211d1a18}.topup-mini-balance span,.topup-mini-balance small{color:#ddd}.topup-mini-balance strong{font-size:1.85rem;color:#f4cc63}.topup-load-card{max-width:980px}.topup-intro h3{font-size:1.55rem;margin:.1rem 0 .35rem}.topup-intro p{color:#706861;max-width:720px}.token-amount-grid label span{min-height:112px;display:grid;place-content:center;gap:4px}.token-amount-grid span strong{font-size:1.35rem}.token-amount-grid span small{font-size:.9rem;color:#706861}.custom-topup{display:grid;gap:6px;max-width:380px;font-weight:700;margin:0 0 18px}.custom-topup input{font:inherit;padding:13px;border:1px solid #bbb;border-radius:9px}.custom-topup small{font-weight:500;color:#706861}.topup-submit-row{border-top:1px solid #e7ddcb;padding-top:18px;display:flex;justify-content:space-between;align-items:center;gap:20px}.topup-submit-row>div{display:grid;gap:3px}.topup-submit-row small{color:#706861}.topup-submit-row .button{white-space:nowrap}
.table-actions,.invoice-row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.invoice-row-actions{justify-content:flex-end}.invoice-history-row{align-items:center}
.invoice-modal-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.invoice-modal-toolbar>div:first-child{display:grid}.invoice-modal-toolbar small{color:#706861}.invoice-sheet{width:min(210mm,100%);min-height:297mm;margin:0 auto;background:#fff;color:#181615;padding:16mm 16mm 14mm;border:1px solid #ded8cc;box-shadow:0 18px 60px #00000014;font-family:Arial,Helvetica,sans-serif}.invoice-paper-header{position:static;background:transparent;border:0;padding:0;display:flex;justify-content:space-between;align-items:flex-start}.invoice-paper-header img{width:205px;max-width:45%}.invoice-paper-header>div{text-align:right}.invoice-paper-header span{font-size:.72rem;font-weight:800;letter-spacing:.14em;color:#706861}.invoice-paper-header h2{font-size:1.5rem;color:#a20d18;margin:5px 0}.invoice-paper-header small{color:#706861}.invoice-rule{height:4px;background:#a20d18;margin:18px 0 22px}.invoice-paper-meta{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-bottom:25px}.invoice-paper-meta h3{font-size:.72rem;letter-spacing:.12em;color:#9a6a09;margin-bottom:8px}.invoice-paper-meta p{margin:3px 0;line-height:1.35}.invoice-paper-meta>div:last-child{padding-left:20px;border-left:1px solid #e7ddcb}.invoice-charge-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;background:#fff8e9;border:1px solid #ead399;border-radius:10px;padding:13px;margin:0 0 20px}.invoice-charge-meta div{display:grid;gap:2px}.invoice-charge-meta span{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#706861}.invoice-charge-meta strong{font-size:.88rem;overflow-wrap:anywhere}.invoice-table-wrap{overflow:visible}.invoice-table{border-collapse:collapse}.invoice-table th{background:#211d1a;color:#fff;border:0;font-size:.67rem;padding:9px}.invoice-table td{font-size:.78rem;padding:9px;border-bottom:1px solid #e7ddcb}.invoice-table th:nth-child(n+2),.invoice-table td:nth-child(n+2){text-align:right}.invoice-totals{width:min(310px,100%);margin:20px 0 0 auto;display:grid;gap:6px}.invoice-totals>div{display:flex;justify-content:space-between;padding:5px 2px}.invoice-grand-total{border-top:2px solid #a20d18;padding-top:10px!important;font-size:1.12rem;color:#a20d18}.invoice-paper-footer{position:static;background:transparent;color:#706861;padding:0;margin-top:38px;border-top:1px solid #e7ddcb;padding-top:14px}.invoice-paper-footer p{font-weight:700;color:#181615;margin:0 0 3px}.invoice-paper-footer small{font-size:.72rem}
.payment-pending,.payment-result{text-align:center;padding:32px}.payment-spinner{width:42px;height:42px;border:4px solid #ead399;border-top-color:#a20d18;border-radius:50%;margin:0 auto 18px;animation:swiftspin .8s linear infinite}@keyframes swiftspin{to{transform:rotate(360deg)}}
.gateway-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;background:#211d1a;color:#fff;border-radius:15px;padding:16px;margin-bottom:14px}.gateway-card>div{display:grid;gap:3px}.gateway-card span{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:#bbb}.gateway-card strong{font-size:1.1rem}.gateway-actions{align-items:center;justify-items:end}
.portal-shell{grid-template-columns:260px minmax(0,1fr);background:#f7f3eb}.portal-nav{padding:20px 14px;min-height:calc(100vh - 78px);position:sticky;top:78px;max-height:calc(100vh - 78px);overflow:auto}.portal-brand{padding:10px 9px 18px;border-bottom:1px solid #4a433e;margin-bottom:10px;display:grid;gap:5px}.portal-brand img{width:180px;max-width:100%;filter:brightness(0) invert(1)}.portal-brand span{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:#bbb}.portal-nav nav{display:grid;gap:3px}.portal-nav nav a{border-left:3px solid transparent;padding:9px 11px}.portal-nav nav a:hover{background:#342f2b;color:#fff}.portal-nav nav a.active{border-left-color:#f4cc63;box-shadow:inset 0 0 0 1px #ffffff0d}.portal-logout{margin-top:16px;border:1px solid #6b625d;background:transparent;color:#fff;border-radius:8px;padding:10px;cursor:pointer}.portal-content{padding:28px 34px 45px;min-width:0}.portal-status-strip{display:flex;gap:22px;flex-wrap:wrap;background:#fff;border:1px solid #e7ddcb;border-radius:12px;padding:9px 13px;margin-bottom:18px;font-size:.78rem;color:#706861}.portal-status-strip span:first-child{font-weight:750;color:#181615}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#15844b;margin-right:5px}.portal-content>.card{box-shadow:0 8px 30px #2b21150a}.portal-content .page-title{margin-bottom:18px}.portal-content .page-title h1{font-size:2.25rem}
.lab-cockpit{display:grid;gap:16px}.lab-toolbar{background:linear-gradient(125deg,#211d1a,#342d26);color:#fff;border-radius:16px;padding:18px 20px;margin-bottom:0}.lab-toolbar h3{font-size:1.7rem;margin:0}.lab-toolbar small{color:#ccc}.lab-refresh-controls{display:flex;align-items:center;gap:12px}.lab-refresh-controls label{display:flex;align-items:center;gap:6px;font-size:.85rem}.lab-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.lab-status-grid article{background:#fff;border:1px solid #e7ddcb;border-radius:14px;padding:17px;display:grid;gap:3px}.lab-status-grid span{font-size:.75rem;color:#706861;text-transform:uppercase;letter-spacing:.04em}.lab-status-grid strong{font-size:1.15rem;overflow-wrap:anywhere}.lab-status-grid small{color:#706861}.lab-good{color:#15844b}.lab-bad{color:#a20d18}.lab-scenarios{display:flex;gap:10px;flex-wrap:wrap;padding:5px 0}.lab-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.lab-grid .card,.lab-events{margin:0}.lab-details{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin:18px 0 0}.lab-details div{padding:9px 0;border-top:1px solid #eee;display:grid;gap:2px}.lab-details dt{font-size:.72rem;text-transform:uppercase;color:#706861}.lab-details dd{margin:0;font-weight:700;overflow-wrap:anywhere}.lab-start-form{display:grid;gap:14px}.lab-start-form label{display:grid;gap:6px;font-weight:700}.lab-start-form select{font:inherit;padding:11px;border:1px solid #bbb;border-radius:8px}.lab-events .table-wrap{margin:12px 0 0}.lab-payload{display:block;max-width:420px;white-space:normal;overflow-wrap:anywhere;font-size:.72rem;color:#544c42}
@media(max-width:1100px){.gateway-card,.lab-status-grid{grid-template-columns:1fr 1fr}.lab-grid{grid-template-columns:1fr}.portal-shell{grid-template-columns:230px minmax(0,1fr)}}
@media(max-width:850px){.portal-nav{position:static;display:none}.portal-content{padding:22px}.topup-submit-row,.invoice-modal-toolbar{align-items:stretch;flex-direction:column}.topup-mini-balance{min-width:160px}.invoice-paper-meta{gap:18px}.invoice-sheet{padding:11mm}.lab-refresh-controls{align-items:flex-end;flex-direction:column}}
@media(max-width:620px){.gateway-card,.lab-status-grid,.invoice-paper-meta,.invoice-charge-meta,.lab-details{grid-template-columns:1fr}.invoice-paper-meta>div:last-child{padding-left:0;border-left:0;border-top:1px solid #e7ddcb;padding-top:14px}.invoice-paper-header{gap:12px}.invoice-paper-header img{width:150px}.invoice-sheet{padding:8mm;min-height:0}.invoice-table th:nth-child(4),.invoice-table td:nth-child(4){display:none}}
@media print{body *{visibility:hidden!important}.driver-modal,.driver-modal *,.invoice-sheet,.invoice-sheet *{visibility:visible!important}.driver-modal{position:absolute!important;inset:0!important;background:#fff!important;padding:0!important;display:block!important}.driver-modal-card{width:210mm!important;max-width:none!important;max-height:none!important;overflow:visible!important;padding:0!important;margin:0!important;box-shadow:none!important;border-radius:0!important}.driver-modal-card>.modal-close,.invoice-modal-toolbar{display:none!important}.invoice-sheet{position:absolute;left:0;top:0;width:210mm!important;min-height:297mm!important;border:0!important;box-shadow:none!important;margin:0!important;padding:16mm!important}@page{size:A4;margin:0}}


/* Operator control centre update v11 */
.operator-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}.operator-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ops-panel{margin:0}.ops-panel.wide{grid-column:1/-1}.ops-health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ops-health-card{border:1px solid #e5dac9;border-radius:13px;padding:15px;background:#fff;display:grid;gap:4px}.ops-health-card span{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:#706861;font-weight:700}.ops-health-card strong{font-size:1.55rem}.ops-health-card small{color:#706861}.ops-health-card.good{border-left:4px solid #198754}.ops-health-card.bad{border-left:4px solid #b20e19}.ops-health-card.info{border-left:4px solid #c99316}.ops-metric-list{display:grid;gap:0}.ops-metric-list>div,.ops-list-row{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:12px 0;border-bottom:1px solid #eee4d6}.ops-metric-list>div:last-child,.ops-list-row:last-child{border-bottom:0}.ops-metric-list span,.ops-list-row small{color:#706861}.ops-list-row span{display:grid;gap:3px}.ops-list-row a{white-space:nowrap}.portal-content>.card{border-radius:18px}.portal-content .table-wrap{border-radius:12px}.portal-content table td{vertical-align:middle}
@media(max-width:1050px){.operator-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.operator-overview-grid{grid-template-columns:1fr}.ops-panel.wide{grid-column:auto}.ops-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.operator-kpis,.ops-health-grid{grid-template-columns:1fr}}

/* Operator charger onboarding + resilient portal v12 */
.portal-load-error{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:26px;border:1px solid #e3c778;background:#fff9e9;border-radius:16px}.portal-load-error-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#a20d18;color:#fff;font-weight:900;font-size:1.25rem}.portal-load-error h3{margin:0 0 4px;color:#a20d18}.portal-load-error p{margin:0 0 4px}.portal-load-error small{color:#706861}
.charger-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}.charger-admin-head h3{font-size:1.7rem;margin:0 0 6px}.charger-admin-head p{margin:0;max-width:780px;color:#706861}.charger-onboarding{background:#f8f3e9;border:1px solid #dfd1bc;border-radius:20px;padding:22px;margin:0 0 22px;box-shadow:0 18px 50px #2a1c0e0e}.charger-wizard-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid #e4d8c6;margin-bottom:20px}.charger-wizard-title h3{font-size:1.6rem;margin:0 0 5px}.charger-wizard-title p{margin:0;color:#706861}.charger-onboarding-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:22px;align-items:start}.charger-form-column{display:grid;gap:14px}.charger-wizard-section{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;background:#fff;border:1px solid #e7ddcb;border-radius:16px;padding:18px}.wizard-section-number{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#211d1a;color:#fff;font-weight:850}.wizard-section-body h4{font-size:1.1rem;margin:5px 0 14px}.wizard-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wizard-fields label,.connector-config-card label{display:grid;gap:6px;font-weight:700;font-size:.9rem}.wizard-fields input,.wizard-fields select,.connector-config-card input,.connector-config-card select{width:100%;font:inherit;padding:11px;border:1px solid #cfc2ae;border-radius:10px;background:#fff}.wizard-fields .wide{grid-column:1/-1}.location-mode-toggle{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 12px}.location-mode-toggle label{position:relative;cursor:pointer}.location-mode-toggle input{position:absolute;opacity:0}.location-mode-toggle label{padding:10px 13px;border:1px solid #d9cbb8;border-radius:11px;background:#fff;font-weight:700}.location-mode-toggle label:has(input:checked){border-color:#a20d18;background:#fff4f4;box-shadow:0 0 0 2px #a20d1811;color:#a20d18}.charger-current-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.charger-current-selector label{position:relative;cursor:pointer}.charger-current-selector input{position:absolute;opacity:0}.charger-current-selector span{min-height:76px;display:grid;align-content:center;gap:3px;border:1px solid #d9cbb8;border-radius:12px;padding:12px;background:#fff}.charger-current-selector strong{font-size:1.1rem}.charger-current-selector small{color:#706861}.charger-current-selector label:has(input:checked) span{border:2px solid #a20d18;background:#fff5f4;box-shadow:0 0 0 3px #a20d180b}.connector-config-grid{display:grid;gap:9px;margin-top:14px}.connector-config-card{display:grid;grid-template-columns:38px 1fr 1fr;gap:10px;align-items:end;padding:11px;background:#faf7f0;border:1px solid #e6dac8;border-radius:12px}.connector-config-number{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#a20d18;color:#fff;font-weight:850;align-self:center}.charger-power-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}.charger-power-summary>div{display:grid;gap:2px;padding:10px 11px;border:1px solid #eadbc4;background:#fff;border-radius:10px}.charger-power-summary span{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#706861}.charger-power-summary strong{font-size:.9rem}.charger-power-summary .summary-warning{grid-column:1/-1;border-color:#d69225;background:#fff3d8;color:#7b4e04}.charger-create-submit{width:100%;padding:14px;font-size:1.02rem}.charger-map-column{position:sticky;top:96px}.charger-map-help{display:grid;gap:2px;margin-bottom:9px}.charger-map-help span{color:#706861;font-size:.88rem}.charger-onboarding-map{height:520px;width:100%;border:1px solid #d9cbb8;border-radius:16px;overflow:hidden;background:#ece7df}.charger-current-badge{display:inline-grid;place-items:center;min-width:54px;padding:6px 9px;border-radius:9px;font-weight:900;font-size:.75rem;letter-spacing:.05em;background:#211d1a;color:#fff}.charger-current-badge.DC{background:#a20d18}.charger-current-badge.AC{background:#1b6e93}.charger-current-badge.AC-DC{background:#6e3c89}.charger-created-box{padding:18px;border-radius:15px;border:1px solid #94caa7;background:#eefaf2;margin:0 0 18px}.charger-created-box h3{margin:0 0 4px;color:#126c3f}.charger-created-box p{margin:7px 0}.credential-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.credential-grid>div{display:grid;gap:4px;background:#fff;border:1px solid #cfe4d6;border-radius:10px;padding:11px}.credential-grid span{font-size:.72rem;text-transform:uppercase;color:#706861}.credential-grid code{overflow-wrap:anywhere;font-size:.83rem}.charger-map-column .info-box{margin-top:12px}
@media(max-width:1200px){.charger-onboarding-grid{grid-template-columns:1fr}.charger-map-column{position:static}.charger-onboarding-map{height:440px}}
@media(max-width:720px){.charger-admin-head,.charger-wizard-title{display:grid}.wizard-fields,.charger-current-selector,.charger-power-summary{grid-template-columns:1fr}.connector-config-card{grid-template-columns:34px 1fr}.connector-config-card label:last-child{grid-column:2}.portal-load-error{grid-template-columns:auto 1fr}.portal-load-error button{grid-column:1/-1}.credential-grid{grid-template-columns:1fr}}

/* Charger availability schedule v14 */
.charger-hours-card{display:grid;gap:13px;margin-top:15px;padding:15px;border:1px solid #e3d6c3;border-radius:14px;background:#faf7f1}.charger-hours-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,240px);gap:14px;align-items:end}.charger-hours-heading>div{display:grid;gap:3px}.charger-hours-heading>div>span{color:#706861;font-size:.84rem;line-height:1.4}.charger-hours-heading>label{display:grid;gap:5px;font-size:.82rem;font-weight:750}.charger-hours-heading select{font:inherit;padding:10px;border:1px solid #cfc2ae;border-radius:9px;background:#fff}.hours-mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:9px}.hours-mode-toggle label{position:relative;cursor:pointer}.hours-mode-toggle input{position:absolute;opacity:0}.hours-mode-toggle label>span{display:grid;gap:2px;padding:11px 12px;border:1px solid #d9cbb8;border-radius:11px;background:#fff}.hours-mode-toggle small{color:#706861}.hours-mode-toggle label:has(input:checked)>span{border:2px solid #a20d18;background:#fff5f4;box-shadow:0 0 0 3px #a20d180b;color:#a20d18}.weekly-hours-grid{display:grid;gap:7px}.weekly-hours-row{display:grid;grid-template-columns:92px 1fr 1fr;gap:9px;align-items:end;padding:9px 10px;border:1px solid #e6dac8;border-radius:10px;background:#fff}.weekly-hours-row>label:not(.hours-day){display:grid;gap:4px;font-size:.75rem;color:#706861}.weekly-hours-row input[type=time]{width:100%;font:inherit;padding:9px;border:1px solid #d4c7b4;border-radius:8px;background:#fff}.hours-day{display:flex!important;align-items:center;gap:8px;font-weight:800!important;padding-bottom:8px}.hours-day input{width:17px;height:17px}.weekly-hours-row.hours-disabled{opacity:.55}.hours-live-summary{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 12px;background:#211d1a;color:#fff;border-radius:10px}.hours-live-summary span{font-size:.76rem;color:#ddd1c6}.hours-live-summary strong{text-align:right}
@media(max-width:720px){.charger-hours-heading,.hours-mode-toggle{grid-template-columns:1fr}.weekly-hours-row{grid-template-columns:74px 1fr 1fr}.hours-live-summary{display:grid;gap:2px}.hours-live-summary strong{text-align:left}}
@media(max-width:430px){.weekly-hours-row{grid-template-columns:1fr 1fr}.hours-day{grid-column:1/-1;padding-bottom:0}.charger-hours-card{padding:12px}}


/* Native Android scan-to-charge QR management v16 */
.charger-qr-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,340px);gap:24px;align-items:center;background:#fff;border:1px solid #dfd1bc;border-radius:20px;padding:22px;margin:0 0 22px;box-shadow:0 16px 45px #211d1a12}.charger-qr-copy h3{font-size:1.65rem;margin:0 0 3px;color:#a20d18}.charger-qr-copy p{color:#5f5750;line-height:1.5}.charger-qr-copy code{display:block;overflow-wrap:anywhere;background:#f7f3eb;border:1px solid #e4d8c6;border-radius:9px;padding:10px;margin:12px 0;font-size:.78rem}.charger-qr-actions{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0 7px}.charger-qr-image-wrap{display:grid;justify-items:center;gap:6px;border:2px solid #211d1a;border-radius:18px;padding:18px;background:#fff}.charger-qr-image{width:min(280px,100%);aspect-ratio:1;object-fit:contain}.charger-qr-image-wrap>strong{font-size:1rem;letter-spacing:.1em}.charger-qr-image-wrap>span{font-size:.85rem;color:#706861;overflow-wrap:anywhere;max-width:100%}.charger-qr{border-color:#a20d18!important;color:#a20d18!important;font-weight:800!important}@media(max-width:820px){.charger-qr-panel{grid-template-columns:1fr}.charger-qr-image-wrap{order:-1}.charger-qr-image{width:min(250px,85vw)}}

.error-text{color:#a20d18;font-weight:600;overflow-wrap:anywhere}

/* Update 21: Test Charger Lab + animated portal branding */
.driver-brand{display:grid;gap:6px;padding:8px 6px 14px;border-bottom:1px solid #4a433e;margin-bottom:2px}.driver-brand img,.portal-brand-motion{width:100%!important;max-width:220px!important;height:auto!important;max-height:82px!important;object-fit:contain!important;border-radius:10px;background:#fffaf0;display:block}.driver-brand span,.portal-brand span{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#c9c0b9}.portal-brand{gap:7px}.portal-brand .portal-brand-motion{filter:none!important}
.lab-session-builder{margin:0}.lab-selector-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}.lab-selector-grid label{display:grid;gap:6px;font-weight:750}.lab-selector-grid select,.lab-auto-complete select{font:inherit;width:100%;padding:12px;border:1px solid #c9bcaa;border-radius:10px;background:#fff;color:#181615}.lab-readiness{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.lab-readiness article{display:flex;gap:10px;align-items:center;border:1px solid #e7ddcb;background:#fffaf4;border-radius:12px;padding:12px}.lab-readiness article>span{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;font-weight:900}.lab-readiness article.ready>span{background:#dcf5e6;color:#126c3f}.lab-readiness article.blocked>span{background:#fde4e4;color:#a20d18}.lab-readiness strong,.lab-readiness small{display:block}.lab-readiness small{color:#706861;margin-top:2px}.lab-start-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-top:14px;border-top:1px solid #eee0c7}.lab-start-row>div{display:grid;gap:2px}.lab-start-row small{color:#706861}.lab-source{display:inline-block;margin-left:8px;padding:4px 8px;border-radius:999px;font-size:.64rem;vertical-align:middle;letter-spacing:.07em}.lab-source.simulator{background:#dcf5e6;color:#126c3f}.lab-source.live{background:#fff0d4;color:#8b5400}.lab-live-warning{margin-bottom:12px}.lab-live-session{margin:0;border-left:4px solid #15844b}.lab-session-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:12px 0}.lab-session-metrics>div{padding:12px;background:#fffaf0;border:1px solid #eee0c7;border-radius:10px;display:grid;gap:3px}.lab-session-metrics span{font-size:.72rem;text-transform:uppercase;color:#706861}.lab-session-metrics strong{font-size:1.05rem}.lab-auto-complete{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:14px}.lab-auto-complete label{display:grid;gap:5px;font-weight:700}.success-text{color:#15844b!important}.error-text{color:#a20d18!important}.lab-toolbar .lab-source{font-size:.6rem}.lab-control-card,.lab-scenario-card{min-height:100%}
@media(max-width:1050px){.lab-selector-grid{grid-template-columns:1fr 1fr}.lab-readiness{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.lab-selector-grid,.lab-readiness,.lab-session-metrics{grid-template-columns:1fr}.lab-start-row{align-items:stretch;flex-direction:column}.lab-start-row .button{width:100%}.lab-auto-complete{grid-template-columns:1fr}.driver-brand img,.portal-brand-motion{max-width:190px!important}}

/* Update 23 invoice control centre */
.invoice-admin-stats{margin:16px 0 20px}.invoice-filter-row label{display:flex;gap:6px;align-items:center;font-size:12px;color:#756d64}.invoice-filter-row label input{min-width:145px}.admin-invoice-preview{margin:0 0 20px;padding:22px;border:1px solid #e6d6bf;border-radius:22px;background:#fffdf9;box-shadow:0 16px 40px rgba(74,48,20,.08)}.admin-invoice-preview .card-head{margin-bottom:18px}.invoice-admin-parties,.invoice-admin-session{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}.invoice-admin-parties>div,.invoice-admin-session>div{border:1px solid #eadfce;border-radius:16px;padding:15px;background:#fffaf2;display:grid;gap:4px}.invoice-admin-parties span,.invoice-admin-session span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#87786a}.invoice-admin-parties small{display:block;color:#6f665d}.invoice-admin-totals{display:flex;justify-content:flex-end;gap:22px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid #eadfce}.invoice-admin-totals span{display:grid;gap:3px;color:#756d64}.invoice-admin-totals strong{font-size:18px;color:#a80f1c}@media(max-width:760px){.invoice-admin-parties,.invoice-admin-session{grid-template-columns:1fr}.invoice-filter-row label{width:100%;justify-content:space-between}.invoice-filter-row label input{flex:1}}

/* Update 24: site month-end settlement and profit share */
.commercial-terms-card,.month-end-detail{margin:0 0 20px;padding:22px;border:1px solid #dfd1bc;border-radius:20px;background:#fffdf9;box-shadow:0 15px 42px rgba(55,34,14,.08)}
.month-end-builder{display:grid;gap:18px;margin-bottom:30px;padding:22px;border:1px solid #dfd1bc;border-radius:22px;background:linear-gradient(145deg,#fffdf9,#fff7ea)}
.month-end-builder-head{display:flex;justify-content:space-between;gap:20px;align-items:start}.month-end-builder-head h3{margin:2px 0 6px;font-size:1.55rem;color:#a20d18}.month-end-builder-head p{margin:0;max-width:780px;color:#6b6259;line-height:1.5}
.month-end-form{grid-template-columns:repeat(3,minmax(0,1fr))}.month-end-form input[type=number]{min-width:0}.month-end-notes{grid-column:span 2}.month-end-notes textarea{width:100%;min-height:82px;resize:vertical;font:inherit;padding:11px;border:1px solid #d3c5b1;border-radius:10px;background:#fff}.check-line{display:flex!important;align-items:center;gap:9px!important;align-self:end;padding:12px;border:1px dashed #d6c4a8;border-radius:11px;background:#fffaf1;font-weight:650!important}.check-line input{width:18px;height:18px}.month-end-actions{display:flex;gap:10px;grid-column:1/-1;justify-content:flex-end}
.month-end-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin:4px 0 18px}.month-end-kpis article,.month-end-detail-kpis article{position:relative}.month-end-payable{border:2px solid #c89518!important;background:linear-gradient(150deg,#fff9e6,#fff)!important}.month-end-payable strong{color:#a20d18!important}.month-end-formula{padding:13px 15px;margin:0 0 18px;border-left:4px solid #d7a51b;border-radius:10px;background:#fff7df;color:#574b3b;line-height:1.5;font-size:.92rem}.month-end-history-section{display:grid;gap:13px;margin-top:10px}.month-end-history-section>.admin-toolbar{margin-bottom:0}.month-end-history-section .stats{margin:0 0 5px}.month-end-detail .card-head{margin-bottom:16px}.month-end-detail-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.month-end-note{padding:14px 16px;margin:12px 0 18px;border:1px solid #eadfce;border-radius:14px;background:#fffaf2}.month-end-note p{margin:5px 0 0;color:#675d55;white-space:pre-wrap}.eyebrow{display:block;font-size:.7rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase;color:#178552}.mini.danger{border-color:#e4b2b5;color:#9e111c;background:#fff7f7}
@media(max-width:1100px){.month-end-form{grid-template-columns:repeat(2,minmax(0,1fr))}.month-end-kpis,.month-end-detail-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.month-end-notes{grid-column:1/-1}}
@media(max-width:700px){.month-end-builder,.month-end-detail,.commercial-terms-card{padding:15px;border-radius:16px}.month-end-form,.month-end-kpis,.month-end-detail-kpis{grid-template-columns:1fr}.month-end-notes{grid-column:auto}.month-end-actions{display:grid}.month-end-actions>*{width:100%}.month-end-builder-head{display:block}}
@media print{.portal-nav,.portal-status-strip,.mobile-context-bar,.admin-toolbar button,.filter-row,.month-end-history-section,.page-title,.portal-content>.card>.card-head{display:none!important}.portal-shell,.portal-content{display:block!important;margin:0!important;padding:0!important}.month-end-detail{box-shadow:none;border:0;margin:0;padding:0}.month-end-detail .actions{display:none!important}}

/* Update 39: Operator Super Rebuild */
.portal-grouped-nav{display:grid!important;gap:7px!important}.portal-dashboard-link{display:flex!important;gap:9px;align-items:center}.portal-nav-icon{font-size:1.1rem}.portal-nav-group{border:1px solid #4a433e;border-radius:11px;overflow:hidden;background:#2a2522}.portal-nav-group summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;color:#f7f0e8;font-size:.86rem;font-weight:800}.portal-nav-group summary::-webkit-details-marker{display:none}.portal-nav-group summary b{transition:transform .18s ease;color:#d9c6ae}.portal-nav-group[open] summary b{transform:rotate(180deg)}.portal-nav-group>div{display:grid;padding:0 6px 7px}.portal-nav-group a{padding:9px 10px!important;margin:0!important;border-radius:8px!important;font-size:.83rem!important;color:#d8cec5!important}.portal-nav-group a.active{background:#a20d18!important;color:#fff!important}.portal-dashboard-link.active{background:#a20d18!important;color:#fff!important}
.operator-global-search{position:relative;margin:16px 0 6px;z-index:80}.operator-search-box{height:50px;display:flex;align-items:center;gap:10px;border:1px solid #d9cbb8;border-radius:14px;background:#fff;box-shadow:0 5px 20px #211d1a0a;padding:0 15px}.operator-search-box>span{font-size:1.4rem;color:#86796d}.operator-search-box input{border:0!important;outline:0!important;background:transparent!important;width:100%;font:inherit;font-size:.95rem}.operator-search-results{position:absolute;left:0;right:0;top:57px;max-height:520px;overflow:auto;background:#fff;border:1px solid #ddcfbb;border-radius:16px;box-shadow:0 22px 65px #211d1a2b;padding:10px;z-index:90}.operator-search-results section+section{border-top:1px solid #eee3d5;margin-top:8px;padding-top:8px}.operator-search-results h4{margin:3px 8px 5px;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#8a7c70}.operator-search-results a{display:flex;justify-content:space-between;gap:14px;padding:10px;border-radius:10px;color:#211d1a;text-decoration:none}.operator-search-results a:hover{background:#fff5e9}.operator-search-results a span{display:grid;gap:2px}.operator-search-results a small{color:#786f67}.operator-search-results a b{font-size:1.3rem;color:#a20d18}.operator-search-empty{padding:18px;color:#746a62;text-align:center}
.operator-dashboard-kicker{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:15px 0 14px}.operator-dashboard-kicker span{font-size:.7rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:#178552}.operator-dashboard-kicker h2{margin:3px 0 0;font-size:1.45rem}.operator-dashboard-kicker small{color:#776e66}.super-kpis{grid-template-columns:repeat(5,minmax(0,1fr))!important}.super-kpis article{min-height:122px}.super-kpis .promo-liability-card{border:2px solid #d3a62e;background:linear-gradient(145deg,#fff8dc,#fff)}.super-kpis .promo-liability-card strong{color:#a20d18}
.super-toolbar>div{display:grid;gap:3px}.super-toolbar h3{margin:0;font-size:1.6rem}.super-toolbar small{color:#766d65;max-width:760px}.customer-name-link{border:0;background:none;padding:0;text-align:left;cursor:pointer;display:grid;gap:2px;font:inherit;color:inherit}.customer-name-link strong{color:#a20d18}.free-credit-text{font-weight:800;color:#87630b}.funding-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:.68rem;font-weight:900;letter-spacing:.06em;background:#ece8e2;color:#3f3934}.funding-badge.free{background:#fff1c9;color:#795500}.funding-badge.paid{background:#e6f5ec;color:#126c3f}.funding-badge.mixed{background:#eee8ff;color:#59339a}.funding-badge.unfunded{background:#f2eeee;color:#6b6262}
.customer-profile-head{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:16px;align-items:center;margin-bottom:18px;padding:18px;border:1px solid #e1d5c4;border-radius:18px;background:linear-gradient(145deg,#fffdf9,#fff7e9)}.customer-avatar{width:58px;height:58px;border-radius:17px;display:grid;place-items:center;background:#211d1a;color:#fff;font-size:1.15rem;font-weight:900;text-transform:uppercase}.customer-profile-head h2{margin:2px 0;font-size:1.6rem}.customer-profile-head p{margin:0;color:#736a62}.customer-visible-balance{text-align:right;display:grid;gap:1px}.customer-visible-balance span,.customer-visible-balance small{font-size:.72rem;color:#746a62}.customer-visible-balance strong{font-size:1.8rem;color:#a20d18}.customer-funding-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.super-metric{display:grid;gap:4px;padding:14px;border:1px solid #e2d6c5;background:#fff;border-radius:13px}.super-metric span{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#756c64;font-weight:800}.super-metric strong{font-size:1.25rem}.super-metric small{color:#766d65}.super-metric.promo{border-color:#e2c56c;background:#fffaf0}.profile-tabs{display:flex;gap:6px;overflow:auto;padding:6px;background:#f4eee5;border-radius:13px;margin:0 0 14px}.profile-tabs button{white-space:nowrap;border:0;background:transparent;border-radius:9px;padding:9px 12px;font:inherit;font-size:.82rem;font-weight:800;cursor:pointer}.profile-tabs button.active{background:#fff;color:#a20d18;box-shadow:0 2px 10px #211d1a12}.profile-grid,.wallet-two-column{display:grid;grid-template-columns:1fr 1fr;gap:14px}.profile-panel{border:1px solid #e4d9c9;border-radius:15px;padding:17px;background:#fff;margin-bottom:14px}.profile-panel h3{margin:0 0 13px}.detail-list{display:grid;gap:0;margin:0}.detail-list>div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid #eee5d8}.detail-list>div:last-child{border-bottom:0}.detail-list dt{color:#766d65}.detail-list dd{margin:0;font-weight:750;text-align:right}.profile-number-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.profile-number-grid>div{display:grid;gap:3px;padding:13px;background:#faf6ef;border-radius:10px}.profile-number-grid span{font-size:.75rem;color:#746b63}.profile-number-grid strong{font-size:1.4rem}.wallet-bucket{display:flex;justify-content:space-between;align-items:center;padding:14px;border-radius:12px;margin-top:9px;font-weight:800}.wallet-bucket.paid{background:#edf8f1;border:1px solid #badfc8}.wallet-bucket.free{background:#fff7dc;border:1px solid #ead17b}.wallet-bucket strong{font-size:1.2rem}.muted{color:#766d65;font-size:.87rem;line-height:1.5}.wallet-rule-banner{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:16px 18px;border-radius:15px;background:#211d1a;color:#fff;margin-bottom:16px}.wallet-rule-banner>div{display:grid;gap:3px}.wallet-rule-banner span{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#d6cabf}.wallet-rule-banner strong{color:#f4cc63}.wallet-rule-banner p{margin:0;max-width:600px;color:#e2d9d1;font-size:.85rem}.voucher-code-result{padding:17px;border:1px solid #c3daa9;background:#f3fbeb;border-radius:14px;margin:12px 0}.voucher-code-result textarea{width:100%;margin-top:10px;padding:10px;font:inherit;font-family:monospace;border:1px solid #bfd1ad;border-radius:9px;background:#fff}.voucher-code-result p{margin:5px 0;color:#655d55}
.report-centre-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:10px 0 18px}.report-centre-grid a{display:grid;gap:5px;padding:16px;border:1px solid #e2d5c2;border-radius:14px;text-decoration:none;color:#211d1a;background:#fff;transition:transform .15s ease,box-shadow .15s ease}.report-centre-grid a:hover{transform:translateY(-2px);box-shadow:0 10px 28px #211d1a12}.report-centre-grid a strong{color:#a20d18}.report-centre-grid a span{color:#756d65;font-size:.84rem}.report-centre-grid a.promo{border-color:#dfc168;background:#fffaf0}.report-super-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin:14px 0}.report-filter-bar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:12px;background:#f7f2ea;border:1px solid #e3d6c4;border-radius:13px;margin:0 0 14px}.report-filter-bar select,.report-filter-bar input{font:inherit;padding:9px 10px;border:1px solid #cec0ad;border-radius:9px;background:#fff}.hidden{display:none!important}
@media(max-width:1280px){.super-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important}.customer-funding-strip,.report-super-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.report-centre-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.operator-dashboard-kicker,.wallet-rule-banner{display:grid}.customer-profile-head{grid-template-columns:auto minmax(0,1fr)}.customer-profile-head>#customerBack{grid-column:1/-1}.customer-visible-balance{grid-column:1/-1;text-align:left}.profile-grid,.wallet-two-column{grid-template-columns:1fr}.report-centre-grid{grid-template-columns:1fr}.operator-search-results{position:fixed;left:12px;right:12px;top:110px;max-height:70vh}.portal-nav-group summary{padding:12px}.portal-nav-group a{padding:11px!important}}
@media(max-width:560px){.super-kpis,.customer-funding-strip,.report-super-stats{grid-template-columns:1fr!important}.operator-dashboard-kicker h2{font-size:1.2rem}.profile-tabs{margin-left:-4px;margin-right:-4px}.report-filter-bar>*{width:100%}}

/* Update 40: responsive operator portal, Charge Management and Customer Management */
body[data-page="portal"]{overflow-x:hidden}
body[data-page="portal"] *{box-sizing:border-box}
body[data-page="portal"] .portal-shell{grid-template-columns:270px minmax(0,1fr);width:100%;max-width:100%;transition:grid-template-columns .2s ease}
body[data-page="portal"] .portal-content{min-width:0;width:100%;max-width:100%;overflow:hidden;padding:clamp(18px,2.3vw,32px)}
body[data-page="portal"] .portal-content>.card{min-width:0;max-width:100%;overflow:hidden}
body[data-page="portal"] #portalSectionContent,body[data-page="portal"] #portalSectionContent>*{min-width:0;max-width:100%}
body[data-page="portal"] .table-wrap{max-width:100%;overflow:auto;overscroll-behavior-inline:contain}
body[data-page="portal"] table{min-width:720px;table-layout:auto}
body[data-page="portal"] td,body[data-page="portal"] th{overflow-wrap:anywhere}
body[data-page="portal"] input,body[data-page="portal"] select,body[data-page="portal"] textarea{min-width:0;max-width:100%;width:100%}
body[data-page="portal"] button,body[data-page="portal"] .button,body[data-page="portal"] .secondary{max-width:100%}
.portal-sidebar-toggle{display:flex;align-items:center;gap:9px;width:100%;min-height:40px;border:1px solid #4c433d;background:#302a26;color:#e7ddd4;border-radius:10px;padding:8px 10px;font:inherit;font-weight:750;cursor:pointer}.portal-sidebar-toggle:hover{background:#3b332e}.sidebar-toggle-icon{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:#463c35;color:#fff;font-size:1.25rem;padding:0!important}.portal-nav .portal-sidebar-toggle span{padding:0}.portal-nav-icon{display:inline-grid!important;place-items:center;flex:0 0 24px;width:24px;height:24px;padding:0!important}.portal-subnav-dot{display:inline-grid!important;place-items:center;width:18px;padding:0!important;color:#aa9584}.portal-nav-group a{display:flex!important;align-items:center;gap:7px}.portal-nav-group summary{justify-content:flex-start}.portal-nav-group summary b{margin-left:auto}
.portal-shell.sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.portal-shell.sidebar-collapsed .portal-nav{padding-left:10px;padding-right:10px}.portal-shell.sidebar-collapsed .portal-brand{justify-content:center}.portal-shell.sidebar-collapsed .portal-brand img{max-width:40px}.portal-shell.sidebar-collapsed .portal-brand span,.portal-shell.sidebar-collapsed .sidebar-toggle-text,.portal-shell.sidebar-collapsed .portal-nav-label,.portal-shell.sidebar-collapsed .portal-group-label,.portal-shell.sidebar-collapsed .portal-nav-group summary b,.portal-shell.sidebar-collapsed .portal-subnav-dot{display:none!important}.portal-shell.sidebar-collapsed .portal-sidebar-toggle{justify-content:center;padding:8px}.portal-shell.sidebar-collapsed .sidebar-toggle-icon{transform:rotate(180deg)}.portal-shell.sidebar-collapsed .portal-dashboard-link,.portal-shell.sidebar-collapsed .portal-nav-group summary{justify-content:center!important;padding:10px!important}.portal-shell.sidebar-collapsed .portal-nav-group{overflow:visible;background:transparent;border-color:transparent}.portal-shell.sidebar-collapsed .portal-nav-group>div{display:none}.portal-shell.sidebar-collapsed .portal-nav-group[open]>div{display:none}.portal-shell.sidebar-collapsed .portal-logout{font-size:0;padding:10px}.portal-shell.sidebar-collapsed .portal-logout::before{content:"↪";font-size:1rem}
.toolbar-actions,.card-actions,.section-title-actions,.sticky-form-actions,.remote-quick-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.section-title-actions{justify-content:space-between;margin:8px 0 14px}.section-title-actions h3{margin:0}.section-title-actions small{color:#766d65}.compact-action{padding:7px 11px!important;font-size:.78rem!important;white-space:nowrap}.danger{border:1px solid #b42832!important;background:#fff1f1!important;color:#99141e!important;border-radius:8px;padding:9px 12px;font:inherit;font-weight:800;cursor:pointer}.danger:hover{background:#a20d18!important;color:#fff!important}.button-link{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.field-span{grid-column:1/-1!important}.form-grid.no-overlap{grid-template-columns:repeat(2,minmax(0,1fr))}.check-field{display:flex!important;align-items:flex-start!important;gap:10px!important;padding:11px;border:1px solid #ddd0bf;border-radius:10px;background:#fff}.check-field input{width:auto!important;min-width:18px!important;margin-top:2px}.check-field span{display:grid;gap:2px;padding:0!important}.check-field small{font-weight:500;color:#766d65}.sticky-form-actions{position:sticky;bottom:0;z-index:20;justify-content:flex-end;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-top:1px solid #eadfce;padding:12px 0;margin-top:18px}
.v40-filter{align-items:center}.charger-management-grid,.site-management-grid,.entity-card-grid,.nfc-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.charger-management-card,.site-management-card,.entity-card,.nfc-management-card{min-width:0;border:1px solid #e2d5c3;border-radius:17px;background:#fff;padding:17px;box-shadow:0 7px 24px #211d1a0a}.charger-card-top,.site-management-card>.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.charger-card-top>div:first-child,.site-management-card>.card-head>div:first-child{min-width:0;display:grid;gap:2px}.charger-card-top small,.site-management-card small{color:#7d7268}.charger-card-top h4,.site-management-card h4,.entity-card h4,.nfc-management-card h4{margin:0;font-size:1.15rem;color:#211d1a;overflow-wrap:anywhere}.charger-card-stats,.site-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.charger-card-stats>div,.site-summary-grid>div{min-width:0;background:#faf6ef;border:1px solid #eee3d5;border-radius:10px;padding:10px;display:grid;gap:3px}.charger-card-stats span,.site-summary-grid span,.diagnostic-grid span{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:#7a7067;font-weight:800}.charger-card-stats strong,.site-summary-grid strong{overflow-wrap:anywhere}.charger-card-stats small,.site-summary-grid small{color:#7a7067;overflow-wrap:anywhere}.v40-detail-shell{margin:22px 0 4px;padding:clamp(14px,2vw,22px);border:1px solid #dacdbb;border-radius:19px;background:#fbf8f2;box-shadow:0 15px 45px #211d1a12;min-width:0;max-width:100%}.detail-page-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;margin-bottom:17px}.detail-page-head h2{margin:2px 0;font-size:clamp(1.35rem,2vw,1.9rem)}.detail-page-head p{margin:0;color:#756b63}.charger-control-kpis{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}.connector-control-grid,.connector-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.connector-control-grid>article,.connector-edit-grid>article{min-width:0;border:1px solid #e1d5c5;background:#fff;border-radius:13px;padding:14px}.connector-control-grid h4,.connector-edit-grid h4{margin:0}.detail-list.compact>div{padding:7px 0;font-size:.86rem}.remote-control-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:16px}.inline-action-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:9px;padding:13px;border:1px solid #ded1c0;border-radius:12px;background:#faf6ef}.inline-action-form h4{grid-column:1/-1;margin:0}.inline-action-form label{display:grid;gap:5px;font-weight:700}.inline-action-form input,.inline-action-form select{padding:9px;border:1px solid #cfc0ad;border-radius:8px;background:#fff;font:inherit}.diagnostic-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:14px}.diagnostic-grid>div{min-width:0;display:grid;gap:3px;padding:11px;border-radius:10px;background:#f8f4ed;border:1px solid #e8ddce}.diagnostic-grid strong,.diagnostic-grid small{overflow-wrap:anywhere}.technical-details{margin-top:14px;border:1px solid #dfd4c5;border-radius:11px;background:#fff}.technical-details summary{cursor:pointer;padding:12px 14px;font-weight:800}.technical-details>.table-wrap{border:0;border-top:1px solid #eee3d5;border-radius:0;margin:0}
.v40-editor-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin;padding:7px;background:#eee8de;border-radius:13px;margin-bottom:14px}.v40-editor-tabs button{white-space:nowrap;border:0;background:transparent;color:#5f554d;padding:9px 12px;border-radius:9px;font:inherit;font-weight:800;cursor:pointer}.v40-editor-tabs button.active{background:#fff;color:#a20d18;box-shadow:0 2px 9px #211d1a12}.v40-editor-section{display:none;min-width:0}.v40-editor-section.active{display:block}.v40-editor-section .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.map-editor-layout{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(420px,1.25fr);gap:16px;align-items:stretch}.v40-map{min-height:430px;width:100%;border:1px solid #d7c8b5;border-radius:14px;overflow:hidden;background:#ede7dd}.v40-map .leaflet-control-container{font-size:.8rem}.qr-professional-layout{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:20px;align-items:start}.qr-preview-card{display:grid;justify-items:center;gap:7px;border:1px solid #dfd1bf;background:#fff;border-radius:18px;padding:22px;text-align:center}.qr-preview-card img{width:min(100%,340px);aspect-ratio:1;object-fit:contain}.qr-preview-card strong{font-size:1.15rem}.qr-preview-card small{color:#776c63}.qr-management code{overflow-wrap:anywhere;white-space:normal}
.tariff-master-detail{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(420px,1.3fr);gap:16px;align-items:start}.tariff-card-list{display:grid;gap:9px;max-height:72vh;overflow:auto;padding-right:3px}.tariff-card{border:1px solid #dfd2c1;background:#fff;border-radius:13px;padding:13px;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;cursor:pointer;font:inherit;color:#211d1a}.tariff-card:hover,.tariff-card.selected{border-color:#c69321;background:#fff9e9}.tariff-card span{display:grid;gap:2px}.tariff-card small{color:#766d65}.tariff-card b{color:#a20d18}.tariff-card em{grid-column:1/-1;font-size:.68rem;font-style:normal;font-weight:900;color:#75706a}.tariff-editor-panel{min-width:0;border:1px solid #dfd2c1;border-radius:15px;background:#fff;padding:17px;position:sticky;top:92px}.tariff-editor-panel .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.customer-overview-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:13px}.customer-glance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.compact-history-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #eee5da}.compact-history-row:last-child{border:0}.compact-history-row>span{display:grid;gap:2px}.compact-history-row small{color:#766d65}.wallet-v40-layout{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(420px,1.25fr);gap:14px}.entity-card-grid,.nfc-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.entity-card,.nfc-management-card{display:flex;flex-direction:column}.entity-card .card-actions,.nfc-management-card .card-actions{margin-top:auto;padding-top:12px}.inline-editor{border-color:#d4ae52;background:#fffaf0}.message-thread{display:grid;gap:10px}.message-bubble{max-width:min(850px,100%);border:1px solid #dfd4c5;background:#fff;border-radius:14px;padding:13px 15px}.message-bubble>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:center}.message-bubble small{display:block;color:#7b7067;margin:3px 0 8px}.message-bubble p{white-space:pre-wrap;margin:0 0 10px;line-height:1.55}.customer-profile-v40 .profile-tabs{position:sticky;top:78px;z-index:30;background:#eee8de}.responsive-table{max-width:100%}
@media(max-width:1440px){.charger-management-grid,.site-management-grid{grid-template-columns:1fr}.customer-overview-kpis{grid-template-columns:repeat(4,minmax(130px,1fr))}.entity-card-grid,.nfc-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.diagnostic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.v40-editor-section .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1280px){body[data-page="portal"] .portal-shell{grid-template-columns:240px minmax(0,1fr)}body[data-page="portal"] .portal-shell.sidebar-collapsed{grid-template-columns:70px minmax(0,1fr)}.charger-card-stats,.site-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.charger-control-kpis,.customer-overview-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important}.map-editor-layout,.tariff-master-detail,.wallet-v40-layout{grid-template-columns:1fr}.tariff-editor-panel{position:static}.v40-map{min-height:360px}.remote-control-panel{grid-template-columns:1fr}.qr-professional-layout{grid-template-columns:minmax(260px,.65fr) minmax(0,1fr)}}
@media(max-width:1024px){.detail-page-head{grid-template-columns:1fr}.detail-page-head>.secondary{justify-self:start}.charger-control-kpis,.customer-overview-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.connector-control-grid,.connector-edit-grid,.customer-glance-grid{grid-template-columns:1fr}.v40-editor-section .form-grid,.tariff-editor-panel .form-grid,.form-grid.no-overlap{grid-template-columns:1fr 1fr}.diagnostic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entity-card-grid,.nfc-card-grid{grid-template-columns:1fr 1fr}.inline-action-form{grid-template-columns:1fr 1fr}.inline-action-form .button{grid-column:1/-1}.customer-profile-head{grid-template-columns:auto minmax(0,1fr) auto}.customer-profile-head>.secondary{grid-column:1/-1;justify-self:start}}
@media(max-width:900px){body[data-page="portal"] .portal-shell,body[data-page="portal"] .portal-shell.sidebar-collapsed{grid-template-columns:1fr}.portal-sidebar-toggle{display:none}.portal-shell.sidebar-collapsed .portal-brand span,.portal-shell.sidebar-collapsed .portal-nav-label,.portal-shell.sidebar-collapsed .portal-group-label,.portal-shell.sidebar-collapsed .portal-nav-group summary b,.portal-shell.sidebar-collapsed .portal-subnav-dot{display:initial!important}.portal-shell.sidebar-collapsed .portal-subnav-dot{display:inline-grid!important}.portal-shell.sidebar-collapsed .portal-nav-group>div,.portal-shell.sidebar-collapsed .portal-nav-group[open]>div{display:grid}.portal-shell.sidebar-collapsed .portal-logout{font-size:inherit}.portal-shell.sidebar-collapsed .portal-logout::before{content:none}body[data-page="portal"] .portal-content{padding:18px}.v40-editor-tabs,.profile-tabs{position:static}.customer-profile-v40 .profile-tabs{top:auto}.qr-professional-layout{grid-template-columns:1fr}.qr-preview-card{max-width:430px;margin:auto;width:100%}}
@media(max-width:700px){.charger-control-kpis,.customer-overview-kpis{grid-template-columns:1fr!important}.charger-card-stats,.site-summary-grid,.diagnostic-grid,.entity-card-grid,.nfc-card-grid,.v40-editor-section .form-grid,.tariff-editor-panel .form-grid,.form-grid.no-overlap{grid-template-columns:1fr}.toolbar-actions,.section-title-actions,.sticky-form-actions{align-items:stretch}.section-title-actions{display:grid}.toolbar-actions>*{flex:1}.customer-profile-head{grid-template-columns:1fr;text-align:left}.customer-visible-balance{text-align:left!important}.inline-action-form{grid-template-columns:1fr}.map-editor-layout{grid-template-columns:1fr}.v40-map{min-height:300px}.v40-detail-shell{padding:12px;border-radius:13px}.portal-content>.card{padding:14px}}
@media print{.portal-sidebar-toggle,.v40-close-workspace,.v40-close-site,.v40-editor-tabs,.sticky-form-actions,.card-actions,.remote-control-panel{display:none!important}.qr-management{border:0;box-shadow:none;background:#fff}.qr-professional-layout{display:block}.qr-professional-layout>.profile-panel{display:none}.qr-preview-card{border:0}}

/* SwiftCharge Update 41: admin GUI cleanup only. No OCPP/backend changes. */
body[data-page="portal"] .portal-status-strip{display:none!important}
body[data-page="portal"] .portal-section-card{padding:clamp(14px,1.7vw,22px);border-radius:18px}
body[data-page="portal"] #adminNotice:empty,body[data-page="portal"] .form-message:empty,body[data-page="portal"] .operator-search-results:empty{display:none!important}

/* The desktop menu now really hides instead of leaving a narrow, confusing rail. */
body[data-page="portal"] .portal-shell.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)!important}
body[data-page="portal"] .portal-shell.sidebar-collapsed .portal-nav{width:0!important;min-width:0!important;padding:0!important;border:0!important;opacity:0;overflow:hidden!important;pointer-events:none;transform:translateX(-105%)}
body[data-page="portal"] .portal-nav{transition:width .2s ease,padding .2s ease,opacity .16s ease,transform .2s ease}
.portal-sidebar-restore{display:none;position:sticky;top:86px;z-index:140;align-items:center;gap:8px;width:max-content;max-width:100%;margin:0 0 12px;padding:9px 13px;border:1px solid #dacdbd;border-radius:11px;background:#fff;color:#302821;box-shadow:0 7px 22px #211d1a14;font:inherit;font-weight:800;cursor:pointer}
.portal-shell.sidebar-collapsed .portal-sidebar-restore{display:inline-flex}
.portal-sidebar-restore:hover{border-color:#bc8a21;background:#fff9e9}
.portal-sidebar-toggle{min-height:42px}
.portal-sidebar-toggle .sidebar-toggle-text{white-space:nowrap}

/* Cleaner common admin layout and safer auto-fit forms. */
body[data-page="portal"] .admin-toolbar{align-items:flex-start;gap:16px}
body[data-page="portal"] .admin-toolbar h3{margin:2px 0 3px}
body[data-page="portal"] .super-toolbar small{display:block;max-width:760px;line-height:1.45;color:#746a62}
body[data-page="portal"] .form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px 14px}
body[data-page="portal"] .form-grid label{min-width:0}
body[data-page="portal"] .form-grid input,body[data-page="portal"] .form-grid select,body[data-page="portal"] .form-grid textarea{width:100%;min-width:0;box-sizing:border-box}
body[data-page="portal"] .profile-panel{min-width:0;overflow:hidden}
body[data-page="portal"] .state{display:inline-flex!important;align-items:center;justify-content:center;max-width:100%;min-height:28px;padding:5px 9px!important;line-height:1.05;white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important}
body[data-page="portal"] .table-wrap{width:100%;max-width:100%;overflow-x:auto}
body[data-page="portal"] .responsive-table th,body[data-page="portal"] .responsive-table td{min-width:0}
body[data-page="portal"] .responsive-table td .state{vertical-align:middle}
body[data-page="portal"] .table-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
body[data-page="portal"] .button,body[data-page="portal"] .secondary,body[data-page="portal"] .danger{line-height:1.15}

/* Customer management is now card-based so status and actions never overlap. */
.customer-management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.customer-management-card{display:flex;flex-direction:column;min-width:0;padding:16px;border:1px solid #e3d7c6;border-radius:16px;background:#fff;box-shadow:0 7px 24px #211d1a0b}
.customer-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;min-width:0}
.customer-card-identity{display:flex;gap:11px;align-items:center;min-width:0}
.customer-avatar.compact{width:42px;height:42px;flex:0 0 42px;border-radius:12px;font-size:.83rem}
.customer-card-identity>div:last-child{display:grid;gap:2px;min-width:0}
.customer-card-identity h4{margin:0;font-size:1.03rem;overflow-wrap:anywhere}
.customer-card-identity small{color:#766d65;overflow-wrap:anywhere}
.customer-card-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 10px}
.customer-card-metrics>div{display:grid;gap:2px;min-width:0;padding:9px;border:1px solid #eee3d5;border-radius:10px;background:#faf7f1}
.customer-card-metrics span,.customer-card-meta small{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:#7b7168;font-weight:800}
.customer-card-metrics strong{font-size:.9rem;overflow-wrap:anywhere}
.customer-card-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.customer-card-meta>span{display:grid;gap:2px;min-width:0}
.customer-card-meta strong{font-size:.78rem;font-weight:700;overflow-wrap:anywhere}
.customer-profile-action{width:100%;margin-top:auto;justify-content:center;padding:9px 12px!important}

/* Wallets & Credits: no overlapping labels, inputs or balance cards. */
.wallet-v41-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:14px;align-items:start}
.wallet-adjustment-panel,.wallet-v41-summary,.wallet-ledger-summary{margin-bottom:14px}
.wallet-adjustment-form{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.wallet-adjustment-form>label:first-child{grid-column:1/-1}
.wallet-adjustment-actions{display:flex;justify-content:flex-end;padding-top:2px}
.wallet-adjustment-actions .button{min-width:210px}
.wallet-total-list{display:grid;gap:9px}
.wallet-total-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:12px 13px;border-radius:12px;border:1px solid #e5d9c8;background:#faf7f1}
.wallet-total-row span{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#756b63;font-weight:800}
.wallet-total-row strong{font-size:1.2rem;white-space:nowrap}
.wallet-total-row small{grid-column:1/-1;color:#796f67}
.wallet-total-row.paid{border-left:4px solid #268258;background:#f1faf5}
.wallet-total-row.free{border-left:4px solid #c99b27;background:#fff9e8}
.wallet-total-row.combined{border-left:4px solid #a20d18;background:#fff5f5}
.wallet-ledger-summary .table-wrap{margin-bottom:0}

/* Generic portal polish for the remaining sections. */
body[data-page="portal"] .filter-row{align-items:center;flex-wrap:wrap}
body[data-page="portal"] .filter-row>input{min-width:min(100%,260px)}
body[data-page="portal"] .filter-row>select{width:auto;min-width:160px;flex:0 1 220px}
body[data-page="portal"] .stats{gap:10px}
body[data-page="portal"] .stats article{min-width:0}
body[data-page="portal"] .stats strong{overflow-wrap:anywhere}
body[data-page="portal"] .section-title-actions>div:first-child{min-width:0}
body[data-page="portal"] code{max-width:100%;overflow-wrap:anywhere}

@media(max-width:1320px){
  .customer-management-grid{grid-template-columns:1fr}
  .customer-card-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wallet-v41-layout{grid-template-columns:1fr}
  .wallet-v41-summary{order:-1}
}
@media(max-width:900px){
  .portal-sidebar-restore{display:none!important}
  body[data-page="portal"] .portal-shell.sidebar-collapsed{grid-template-columns:1fr!important}
  body[data-page="portal"] .portal-shell.sidebar-collapsed .portal-nav{width:min(86vw,330px)!important;opacity:1;pointer-events:auto;transform:translateX(-105%);padding:max(16px,env(safe-area-inset-top)) 14px max(20px,env(safe-area-inset-bottom))!important;overflow-y:auto!important}
  .wallet-adjustment-form{grid-template-columns:1fr!important}
  .wallet-adjustment-form>label:first-child{grid-column:auto}
  .wallet-adjustment-actions{justify-content:stretch}
  .wallet-adjustment-actions .button{width:100%;min-width:0}
}
@media(max-width:640px){
  .customer-card-head{display:grid;grid-template-columns:1fr}
  .customer-card-head>.state{justify-self:start}
  .customer-card-metrics,.customer-card-meta{grid-template-columns:1fr}
}

/* Operator portal has its own navigation. Hide the public-site hamburger/nav to remove the blank header control. */
body[data-page="portal"] header .menu-toggle,body[data-page="portal"] header #mainNav{display:none!important}
body[data-page="portal"] header{justify-content:flex-start}

/* Update 47 welcome campaign management */
.welcome-campaign-card{border:1px solid #ead8bb;border-radius:20px;background:linear-gradient(145deg,#fffdf8,#fff8eb);padding:22px;margin:0 0 22px;box-shadow:0 12px 32px rgba(78,54,29,.06)}.campaign-kpis{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:10px;margin:18px 0}.campaign-kpis article{min-width:0}.campaign-editor{border-top:1px solid #eadfce;padding-top:18px}.campaign-secondary-form{margin-top:16px}@media(max-width:1100px){.campaign-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:680px){.welcome-campaign-card{padding:16px}.campaign-kpis{grid-template-columns:repeat(2,1fr)}}

/* SwiftCharge Update 55: unified admin and partner workspaces. */
body[data-page="portal"] .portal-sidebar-restore{position:relative!important;top:auto!important;left:auto!important;float:none!important;margin:0 0 12px!important;box-shadow:none!important}
body[data-page="portal"] .promo-liability-card{background:#fff!important;border-color:#e3d7c6!important;color:inherit!important}
body[data-page="portal"] .promo-liability-card:before{display:none!important}
body[data-page="portal"] .portal-content{max-width:100%;min-width:0}
.site-photo-preview{width:100%;height:180px;object-fit:cover;border-radius:14px;border:1px solid #e4d9cc;background:#f2eee7}.site-photo-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-top:12px}.site-photo-form label{flex:1;min-width:240px}.site-photo-form input{width:100%}.map-popup-site-photo{width:100%;height:145px;object-fit:cover;border-radius:10px;margin:0 0 10px;background:#eee}
body[data-page="partner"]{background:#f4f1eb;color:#211d1a}.partner-login-logo{width:210px;max-width:80%;height:auto;margin:0 auto 22px;display:block}.partner-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.partner-nav{position:sticky;top:0;height:100vh;box-sizing:border-box;padding:24px 16px;background:#211d1a;color:#fff;display:flex;flex-direction:column;gap:22px;overflow:auto}.partner-brand{display:grid;gap:8px}.partner-brand img{width:190px;max-width:100%;filter:brightness(0) invert(1)}.partner-brand small{color:#d6c9ba;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.partner-nav nav{display:grid;gap:7px}.partner-nav nav button{border:0;border-radius:11px;padding:12px 14px;background:transparent;color:#e8dfd5;text-align:left;font:inherit;font-weight:750;cursor:pointer}.partner-nav nav button:hover,.partner-nav nav button.active{background:#a20d18;color:#fff}.partner-nav>.secondary{margin-top:auto;background:#fff;color:#211d1a}.partner-content{padding:clamp(16px,2.2vw,30px);min-width:0;max-width:1700px;width:100%;box-sizing:border-box;margin:auto}.partner-workspace{min-width:0}.partner-mobile-bar{display:none}.partner-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;border-radius:18px;background:linear-gradient(135deg,#a20d18,#6e0710);color:#fff;margin-bottom:14px}.partner-hero h2{margin:4px 0;font-size:clamp(1.5rem,3vw,2.4rem)}.partner-hero p{margin:0;color:#f7dfe1}.partner-hero>b{font-size:1.1rem;padding:10px 13px;border-radius:10px;background:#ffffff1c}.partner-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.partner-kpis article{background:#fff;border:1px solid #e2d7c9}.partner-two-column{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:14px}.partner-report-head{display:flex;justify-content:space-between;gap:14px;align-items:end}.partner-report-head form{display:flex;gap:8px;flex-wrap:wrap}.partner-profile{max-width:900px}
@media(max-width:1050px){.partner-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-two-column{grid-template-columns:1fr}}@media(max-width:760px){.partner-shell{display:block}.partner-nav{position:fixed;z-index:300;left:0;top:0;width:min(84vw,320px);transform:translateX(-105%);transition:transform .2s}.partner-menu-open .partner-nav{transform:none}.partner-content{padding:14px}.partner-mobile-bar{display:flex;align-items:center;gap:12px;margin-bottom:12px}.partner-mobile-bar button{border:1px solid #dacdbd;border-radius:10px;background:#fff;padding:9px 12px}.partner-kpis{grid-template-columns:1fr}.partner-hero{align-items:flex-start}.partner-report-head{display:grid}.partner-report-head form{display:grid;grid-template-columns:1fr 1fr}.partner-report-head form button{grid-column:1/-1}}
.charge-location-switch{display:flex;gap:8px;margin-bottom:14px;padding:5px;border:1px solid #e2d6c6;border-radius:13px;background:#f4efe7;width:max-content;max-width:100%}.charge-location-switch button{border:0;border-radius:9px;background:transparent;padding:10px 14px;font:inherit;font-weight:800;cursor:pointer}.charge-location-switch button.active{background:#a20d18;color:#fff}.site-photo-manager{margin-bottom:14px}.tariff-section-title{padding:8px 4px}.tariff-section-title h3{margin:0}.tariff-active-list,.tariff-history-list{display:grid;gap:8px}.tariff-history{margin-top:18px;border-top:1px solid #e3d7c6;padding-top:12px}.tariff-history summary{cursor:pointer;font-weight:800;margin-bottom:10px}.charger-hub-actions{margin-bottom:14px}.staff-access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.staff-access-card{margin:0}.permission-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.permission-form fieldset{border:1px solid #e3d7c6;border-radius:10px;display:grid;gap:6px}.permission-form label{font-size:.82rem}.permission-form button{grid-column:1/-1}.field-span{grid-column:1/-1}@media(max-width:1100px){.staff-access-grid{grid-template-columns:1fr}}@media(max-width:700px){.charge-location-switch{display:grid;width:100%;box-sizing:border-box}.permission-form{grid-template-columns:1fr}.permission-form button{grid-column:auto}}

/* Update 56.1: partner charger assignment */
.partner-charger-picker { grid-column: 1 / -1; min-width: 0; }
.partner-charger-picker > .muted { margin: 0 0 12px; }
.partner-site-group { display: block; margin: 0 0 12px; padding: 14px; border: 1px solid #e8ddd0; border-radius: 12px; background: #fff; }
.partner-site-group > .card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 8px; padding: 0 0 10px; border-bottom: 1px solid #eee5dc; }
.partner-site-group > .card-head > strong { min-width: 0; font-size: 15px; color: #281f1c; }
.partner-site-group > label { display: grid !important; grid-template-columns: 22px minmax(150px, .55fr) minmax(190px, 1fr); align-items: center; gap: 10px; width: 100%; min-width: 0; margin: 0; padding: 10px 8px; border-bottom: 1px solid #f2ece6; cursor: pointer; }
.partner-site-group > label:last-child { border-bottom: 0; }
.partner-site-group > label:hover { background: #fbf8f4; }
.partner-site-group > label > input[type="checkbox"] { width: 18px !important; height: 18px !important; margin: 0; }
.partner-site-group > label > strong, .partner-site-group > label > small { display: block; min-width: 0; overflow-wrap: anywhere; }
.partner-site-group > label > small { color: #6f625d; }
@media (max-width: 720px) {
  .partner-site-group { padding: 11px; }
  .partner-site-group > label { grid-template-columns: 22px minmax(0, 1fr); gap: 6px 9px; }
  .partner-site-group > label > small { grid-column: 2; }
}

/* Update 57: compact partner dashboard and shared commercial terms. */
body[data-page="partner"] .partner-content{padding:clamp(12px,1.5vw,22px);max-width:1900px}
body[data-page="partner"] .page-title{margin:0 0 10px;font-size:clamp(1.45rem,2.2vw,2rem)}
.partner-compact-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border:1px solid #e3d7c9;border-radius:15px;background:#fff;margin-bottom:10px}
.partner-compact-head h2{margin:2px 0;font-size:clamp(1.25rem,2vw,1.8rem)}
.partner-compact-head p{margin:0;color:#766a62}
.partner-live-pill{padding:8px 11px;border-radius:999px;background:#fff1dd;color:#82550b;font-weight:850;white-space:nowrap}.partner-live-pill.online{background:#e8f7ee;color:#176c43}
.compact-partner-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:0 0 10px}
.partner-metric{min-height:92px!important;padding:12px 13px!important;border-radius:14px!important;background:#fff!important;border:1px solid #e3d7c9!important}
.partner-metric span{font-size:.68rem!important}.partner-metric strong{font-size:clamp(1.05rem,1.6vw,1.42rem)!important;line-height:1.15}.partner-metric small{font-size:.72rem!important}
.partner-metric.online{border-left:4px solid #27855b!important}.partner-metric.warning{border-left:4px solid #c58718!important}.partner-metric.live{border-left:4px solid #a20d18!important}
.partner-compact-panel{padding:14px!important;margin:0 0 10px!important;border-radius:15px!important}.partner-compact-panel h3{margin:0 0 4px}.partner-compact-panel .card-head{margin-bottom:9px}
.partner-terms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.partner-terms-card{display:grid;grid-template-columns:minmax(150px,1.3fr) repeat(2,minmax(125px,.8fr)) auto;gap:9px;align-items:end;padding:11px;border:1px solid #e5dbcf;border-radius:12px;background:#faf8f4}
.partner-terms-card>strong{align-self:center}.partner-terms-card label{font-size:.73rem;font-weight:800}.partner-terms-card input{min-height:38px;padding:7px 9px}.partner-terms-card .button{min-height:38px;padding:8px 12px}.partner-form-message{grid-column:1/-1}.partner-form-message:empty{display:none}
body[data-page="partner"] .table-wrap{margin-top:8px}body[data-page="partner"] table th,body[data-page="partner"] table td{padding:8px 9px}
@media(max-width:1250px){.compact-partner-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.partner-terms-grid{grid-template-columns:1fr}}
@media(max-width:820px){.compact-partner-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-terms-card{grid-template-columns:1fr 1fr}.partner-terms-card>strong,.partner-terms-card .button{grid-column:1/-1}}
@media(max-width:540px){.partner-compact-head{align-items:flex-start;padding:12px}.compact-partner-kpis{grid-template-columns:1fr 1fr}.partner-metric{min-height:82px!important}.partner-terms-card{grid-template-columns:1fr}.partner-terms-card>strong,.partner-terms-card .button{grid-column:auto}.partner-report-head form{grid-template-columns:1fr}}

/* Update 57.1: aligned commercial terms and approval-only rate changes. */
.partner-terms-grid{grid-template-columns:1fr}
.partner-terms-card{grid-template-columns:minmax(210px,1.35fr) minmax(210px,1fr) minmax(150px,.7fr) minmax(150px,auto);align-items:center;padding:14px 16px}
.partner-terms-site{display:grid;gap:4px;min-width:0}.partner-terms-site strong{font-size:1.05rem;overflow-wrap:anywhere}.partner-terms-site small{color:#6f635b}
.partner-terms-card label{display:grid;gap:5px;margin:0}.partner-terms-card label input{width:100%;box-sizing:border-box}
.partner-readonly-term{display:grid;gap:3px;padding:8px 11px;border:1px solid #e1d6c8;border-radius:10px;background:#fff}.partner-readonly-term span{font-size:.7rem;font-weight:800;text-transform:uppercase;color:#756961}.partner-readonly-term strong{font-size:1.1rem}.partner-readonly-term small{font-size:.7rem;color:#756961}
.partner-terms-card>.button{width:100%;min-width:0;white-space:normal}.partner-pending-rate{grid-column:1/-1;display:flex;align-items:center;gap:9px;padding-top:2px}.partner-pending-rate small{color:#74675f}
@media(max-width:1050px){.partner-terms-card{grid-template-columns:1fr 1fr}.partner-terms-site{grid-column:1/-1}.partner-terms-card>.button{align-self:end}.partner-readonly-term{min-height:62px;box-sizing:border-box}}
@media(max-width:620px){.partner-terms-card{grid-template-columns:1fr;padding:12px}.partner-terms-site,.partner-pending-rate{grid-column:auto}.partner-pending-rate{display:grid}.partner-terms-card>.button{width:100%}}
