.operator-grid{display:grid;grid-template-columns:1fr 1fr 2fr;gap:14px}.operator-grid>div{display:flex;flex-direction:column;gap:8px}.operator-grid button{align-self:flex-start;padding:9px 13px}.config-row{display:flex;gap:7px}.config-row input{min-width:0}.operator-actions{border-top:1px solid #edf1ee;padding-top:15px;margin-top:18px}
.tariff-editor{display:grid;grid-template-columns:minmax(190px,320px) auto 1fr;align-items:end;gap:12px;margin:4px 0 22px;padding:17px;border:1px solid #dce8d5;border-radius:12px;background:#f3f8ee}.tariff-editor button{height:39px}.tariff-editor>small{align-self:center;color:#71857c}.tariff-input{display:flex;align-items:center;border:1px solid #ceddca;border-radius:8px;background:#fff;overflow:hidden}.tariff-input input{border:0;border-radius:0;background:#fff;font-size:16px;font-weight:700}.tariff-input span{padding:0 12px;color:#667d72;font-size:11px;white-space:nowrap}
.login-fields,.user-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.login-fields button,.user-form button{height:39px}.user-form{padding:15px;background:#f5f8f6;border-radius:10px;margin:12px 0 18px}.user-form label{margin-bottom:5px}
@media(max-width:700px){.operator-grid{grid-template-columns:1fr}.config-row{flex-wrap:wrap}.tariff-editor{grid-template-columns:1fr}.tariff-editor button{width:100%}}
.connection-info{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;color:#78908a;font-size:11px}.header-actions{display:flex;align-items:center;gap:10px}.install-app{display:inline-flex;align-items:center;justify-content:center;padding:11px 15px;border:1px solid #122e30;border-radius:9px;background:#122e30;color:#fff;text-decoration:none;font-size:12px;font-weight:650;white-space:nowrap}.install-app:hover{background:#234546}.mobile-nav{display:none}.clickable{cursor:pointer}.clickable:hover td{background:#f7faf7}.command-status{display:inline-block;border-radius:20px;padding:6px 9px;background:#eef2ef;color:#52645d;white-space:nowrap}.command-status.queued,.command-status.sending{background:#f2f0ff;color:#55488a}.command-status.confirmed{background:#e9f5dc;color:#48722d}.command-status.accepted{background:#e8f1fb;color:#315f8a}.command-status.timeout{background:#fff2d9;color:#835f20}.command-status.rejected,.command-status.error,.command-status.interrupted{background:#fff0e9;color:#8b4934}.session-dialog{width:min(860px,calc(100% - 28px));max-width:860px;position:relative}.dialog-close{position:absolute;right:14px;top:10px;font-size:25px}.session-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.session-summary>div{background:#f5f8f6;border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px}.session-summary span{font-size:10px;color:#84948e;text-transform:uppercase;letter-spacing:.7px}.session-summary strong{font-size:13px;color:#29483d}.chart{border:1px solid #e1e9e4;border-radius:10px;padding:8px;background:#fbfcfb}.chart svg{display:block;width:100%;height:auto}.chart line{stroke:#d6e1dc;stroke-width:1}.chart polyline{fill:none;stroke:#79b44f;stroke-width:4;stroke-linejoin:round;stroke-linecap:round}.chart text{font-size:11px;fill:#71877f}.chart-empty{padding:45px 15px;text-align:center;color:#87978f;background:#f7f9f7;border-radius:10px;font-size:12px}
@media(max-width:700px){body{padding-bottom:76px}.header-actions{align-items:flex-start;flex-direction:column}.login-fields,.user-form{grid-template-columns:1fr}.session-summary{grid-template-columns:1fr 1fr}.connection-info{display:grid;gap:5px}.session-dialog{padding:22px 16px}.table-wrap table{min-width:760px}#commands .table-wrap table{min-width:650px}.mobile-nav{display:flex;position:fixed;z-index:20;left:0;right:0;bottom:0;padding:7px 4px calc(7px + env(safe-area-inset-bottom));background:#122e30;border-top:1px solid #294748;box-shadow:0 -7px 22px #122e3033}.mobile-nav a{display:flex;flex:1;flex-direction:column;align-items:center;gap:3px;color:#d5e6e1;text-decoration:none;font-size:9px}.mobile-nav span{font-size:18px;color:#b7ef82}}

/* Role-specific workspaces */
.admin-alert{display:flex;align-items:center;gap:13px;margin-bottom:17px;padding:14px 17px;border:1px solid #dce8df;border-radius:12px;background:#f8fbf7}.admin-alert>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:800}.admin-alert>div{display:flex;flex-direction:column;gap:3px}.admin-alert strong{font-size:13px}.admin-alert small{font-size:11px;color:#71857c}.admin-alert.ok>span{background:#dff1d1;color:#48722d}.admin-alert.attention{background:#fff5ee;border-color:#f1d3c2}.admin-alert.attention>span{background:#f4d8c9;color:#934d31}
.viewer-home{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:22px;margin-bottom:23px}.viewer-status-card{position:relative;overflow:hidden;padding:34px;border-radius:22px;background:linear-gradient(145deg,#173b3c 0%,#102b2d 72%);color:#fff;box-shadow:0 18px 45px #193e3530}.viewer-status-card:after{content:'ϟ';position:absolute;right:-25px;bottom:-92px;color:#b9ef8412;font-size:260px;font-weight:800;line-height:1}.viewer-top{position:relative;z-index:1;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.viewer-top .eyebrow{color:#a6c6bf}.viewer-top h2{margin:12px 0 7px;font-size:30px;letter-spacing:-.7px}.viewer-top p{color:#b8ceca;max-width:470px}.viewer-status-icon{display:grid;place-items:center;flex:0 0 auto;width:58px;height:58px;border-radius:18px;background:#294c4d;color:#b8ee82;font-size:29px;box-shadow:inset 0 0 0 1px #ffffff14}.viewer-status-icon.charging{background:#b8ee82;color:#17382b;animation:charge-pulse 1.8s ease-in-out infinite}.viewer-status-icon.offline{background:#b63535;color:#fff}@keyframes charge-pulse{50%{box-shadow:0 0 0 10px #b8ee8218}}.viewer-metrics{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:31px 0 27px}.viewer-metrics>div{padding:15px 16px;border:1px solid #ffffff14;border-radius:13px;background:#ffffff0a}.viewer-metrics span{display:block;margin-bottom:8px;color:#96b4af;font-size:10px;text-transform:uppercase;letter-spacing:.8px}.viewer-metrics strong{font-size:20px;font-weight:650}.viewer-action{position:relative;z-index:1;width:100%;min-height:55px;border-radius:12px;font-size:15px;background:#b9ef84;border-color:#b9ef84;color:#193729}.viewer-action.stop-action{background:#fff;border-color:#fff;color:#253e38}.viewer-station{position:relative;z-index:1;display:flex;justify-content:space-between;margin-top:18px;color:#8facaa;font-size:10px}.viewer-steps{display:flex;flex-direction:column;justify-content:center;padding:19px 22px;border:1px solid #e0e8e4;border-radius:22px;background:#fff}.viewer-steps>div{display:flex;align-items:flex-start;gap:13px;padding:18px 5px}.viewer-steps>div+div{border-top:1px solid #edf2ef}.viewer-steps b{display:grid;place-items:center;flex:0 0 auto;width:27px;height:27px;border-radius:50%;background:#edf6e5;color:#578336;font-size:11px}.viewer-steps span{display:flex;flex-direction:column;gap:5px}.viewer-steps strong{font-size:12px;color:#29463e}.viewer-steps small{font-size:11px;line-height:1.45;color:#7c8f89}.viewer-history{border-radius:18px}.viewer-session-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.viewer-session{display:flex;justify-content:space-between;align-items:center;text-align:left;gap:15px;padding:16px;border:1px solid #e5ece8;background:#fafcfa;border-radius:12px;color:#2a493e}.viewer-session:hover{border-color:#b7d3bc;background:#f5faf2;filter:none}.viewer-session span{display:flex;flex-direction:column;gap:5px}.viewer-session b{font-size:12px}.viewer-session small{color:#84958f;font-weight:400}.viewer-session>strong{white-space:nowrap;font-size:13px}.viewer-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:7px;padding:32px;color:#7e908a}.viewer-empty>span{font-size:25px;color:#91b977}.viewer-empty strong{font-size:13px}.viewer-empty small{text-align:center;font-size:11px}
.app-download-card{display:flex;align-items:center;gap:15px;margin:-5px 0 23px;padding:18px 20px;border-radius:16px;background:#e8f4dd;border:1px solid #d3e7c1}.app-download-icon{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:12px;background:#122e30;color:#b9ef84;font-size:20px}.app-download-card>div{display:flex;flex:1;flex-direction:column;gap:4px}.app-download-card strong{font-size:13px;color:#29463e}.app-download-card small{font-size:11px;color:#6d8279}.app-download-card>a{display:inline-flex;align-items:center;justify-content:center;padding:11px 15px;border-radius:9px;background:#122e30;color:#fff;text-decoration:none;font-size:12px;font-weight:650;white-space:nowrap}
.viewer-tariff{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:-5px 0 23px;padding:18px 20px;border:1px solid #dfe7e3;border-radius:15px;background:#fff}.viewer-tariff>span{color:#71857c;font-size:12px}.viewer-tariff>strong{color:#24443b;font-size:16px}
.logout-button{padding:10px 15px;border-color:#d8a99a;background:#fff5f1;color:#8d402c;font-weight:700}.logout-button:hover{background:#fee9e1;filter:none}
@media(max-width:900px){.viewer-home{grid-template-columns:1fr}.viewer-steps{display:grid;grid-template-columns:repeat(3,1fr)}.viewer-steps>div{padding:10px}.viewer-steps>div+div{border-top:0;border-left:1px solid #edf2ef}}
@media(max-width:700px){header{margin-bottom:22px}.header-actions{width:100%;margin-top:18px}.header-actions .live{margin:0}.viewer-status-card{padding:25px 20px;border-radius:18px}.viewer-top h2{font-size:25px}.viewer-status-icon{width:50px;height:50px}.viewer-metrics{margin:25px 0 20px;gap:6px}.viewer-metrics>div{padding:12px 9px}.viewer-metrics strong{font-size:16px}.viewer-steps{display:flex;padding:9px 16px;border-radius:18px}.viewer-steps>div{padding:14px 1px}.viewer-steps>div+div{border-left:0;border-top:1px solid #edf2ef}.viewer-session-list{grid-template-columns:1fr}.viewer-history .badge{display:none}.app-download-card{align-items:flex-start;flex-wrap:wrap}.app-download-card>div{min-width:calc(100% - 62px)}.app-download-card>a{width:100%}.viewer-tariff{align-items:flex-start;flex-direction:column}.viewer-tariff>strong{font-size:18px}footer{align-items:flex-start;flex-direction:column;gap:13px}.logout-button{width:100%;padding:13px}}

.session-owner{display:block;color:#637d7b;font-size:12px} #charging-settings{margin-top:20px} #charging-settings input{max-width:220px} #station-power-form button{margin-top:16px}
.viewer-status-card{overflow:clip}
.station-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.station-choice{display:flex;flex-direction:column;gap:10px;text-align:left;background:#f8faf8;border:1px solid #dbe5df;color:#24443b;padding:18px;min-width:0;overflow-wrap:anywhere}.station-choice.selected{border:2px solid #649947;background:#f0f7e9;padding:17px}.station-choice-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.station-choice>span:not(.station-choice-top),.station-choice small{font-size:12px;font-weight:400;color:#647e74}.station-choice .station-ports{font-weight:600!important;color:#365e43!important}.selected-context{padding:12px 14px;background:#eff5ed;border-radius:9px;color:#36533e;font-size:12px;margin-top:14px}.station-details-form{display:grid;grid-template-columns:1fr 2fr 1fr;gap:12px;margin-top:18px}.station-details-form button{grid-column:1/-1;justify-self:start}.history-filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.history-filter-grid select{width:100%}.history-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0}.history-pagination span{font-size:12px;color:#648074}.history-detail-button{padding:8px 10px;background:#edf5e6;color:#2f5837;border-color:#d0e1c4}.unknown-owner{color:#96612f}.history-filters h2{font-size:15px}.history-filters{margin-top:16px}.telemetry-state{position:relative;z-index:1;font-size:11px;color:#c4ddd1!important}.telemetry-state.stale{color:#ffe0a2!important}#owner-assignment-form{border-top:1px solid #dbe6df;padding-top:18px;margin-top:20px}#owner-assignment-form select{width:100%;margin-bottom:12px}#station-details-editor>summary{cursor:pointer;font-size:14px;font-weight:600}#assignment-result{color:#96533c}
@media(max-width:700px){.station-picker,.station-details-form,.history-filter-grid{grid-template-columns:1fr}.station-choice{padding:14px}.station-choice.selected{padding:13px}.station-choice-top{align-items:flex-start}.history-pagination button{padding:10px}.history-pagination span{text-align:center}.station-details-form button{width:100%}}

/* Desktop operator workspace. Customer themes are intentionally scoped out. */
body[data-role=admin]{background:#f2f5f9;color:#193348}
body[data-role=admin] main{max-width:1800px}
body[data-role=admin] .card{background:#fff;border:1px solid #dce5ec;border-radius:18px;box-shadow:0 4px 18px #19334806}
body[data-role=admin] h1,body[data-role=admin] h2,body[data-role=admin] h3{color:#16354a}
body[data-role=admin] .table-wrap{overflow:auto}
body[data-role=admin] th{background:#edf3f7;color:#476477;white-space:nowrap}
body[data-role=admin] td{vertical-align:middle}
body[data-role=admin] tbody tr:hover{background:#f5f9fc}
body[data-role=admin] input,body[data-role=admin] select{min-height:42px}
body[data-role=admin] .charger-art{display:none}
body[data-role=admin] .station-grid{grid-template-columns:1fr}
.network-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}
.network-summary>div{padding:22px;border:1px solid #dce5ec;border-radius:16px;background:#fff;display:grid;gap:8px}
.network-summary strong{font-size:32px;color:#0b7597}.network-summary span{color:#536c7c;font-size:13px}
.network-filters{display:grid;grid-template-columns:minmax(160px,2fr) minmax(150px,1fr);gap:16px}
.network-filters input,.network-filters select{width:100%;box-sizing:border-box}
#network-rows small{display:block;margin-top:5px;color:#607888}
.network-status{display:block;width:fit-content;border-radius:7px;padding:6px 9px;margin:4px 0;font-size:12px;background:#edf1f5;color:#536576;white-space:nowrap}
.network-status.free{background:#e1f6ec;color:#116140}.network-status.charging{background:#e4f0ff;color:#185cab}.network-status.busy{background:#fff1ce;color:#775509}.network-status.error,.network-status.offline{background:#fce9e9;color:#9e3030}
@media(max-width:700px){.network-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.network-summary>div{padding:15px}.network-summary strong{font-size:26px}.network-filters{grid-template-columns:1fr}}
