:root{--bg:#071019;--panel:#0b1721;--panel2:#0f1d28;--line:#1d3442;--text:#ecf6f7;--muted:#86a1ad;--green:#63e6b1;--green2:#1bb77b;--amber:#f2c66d;--red:#ff7b82;--shadow:0 16px 50px #00000038}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{min-height:100vh}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.mono,code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.appShell{grid-template-columns:252px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);z-index:20;background:#07131c;flex-direction:column;height:100vh;padding:24px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;padding:4px 8px 24px;display:flex}.brand>div:last-child{flex-direction:column;display:flex}.brand b{letter-spacing:.08em;font-size:17px}.brand span{color:var(--muted);margin-top:2px;font-size:11px}.brandMark{background:linear-gradient(145deg,var(--green),#23b6db);color:#042018;letter-spacing:-.08em;border-radius:17px;place-items:center;width:54px;height:54px;font-size:21px;font-weight:900;display:grid;box-shadow:0 12px 35px #3ee0a938}.brandMark.small{border-radius:13px;width:42px;height:42px;font-size:16px}.navLinks{flex-direction:column;gap:5px;display:flex}.navLinks a{color:#9bb0ba;border-radius:11px;align-items:center;gap:12px;padding:11px 12px;font-size:14px;font-weight:650;display:flex}.navLinks a:hover{color:#dff8f0;background:#0d1c27}.navLinks a.active{color:var(--green);background:#63e6b11c;box-shadow:inset 0 0 0 1px #63e6b11f}.navIcon{text-align:center;width:21px;font-size:17px}.sidebarBottom{gap:12px;margin-top:auto;display:grid}.protocolCard{border:1px solid var(--line);background:#0a1822;border-radius:13px;align-items:center;gap:10px;padding:12px;display:flex}.protocolCard>div,.userBlock>div:nth-child(2){flex-direction:column;display:flex}.protocolCard b,.userBlock b{font-size:12px}.protocolCard small,.userBlock small{color:var(--muted);margin-top:3px;font-size:10px}.pulse{background:var(--green);border-radius:50%;width:8px;height:8px;display:inline-block;box-shadow:0 0 0 6px #63e6b114,0 0 18px #63e6b18c}.userBlock{grid-template-columns:36px 1fr auto;align-items:center;gap:9px;padding:8px;display:grid}.avatar{width:36px;height:36px;color:var(--green);background:#17303d;border-radius:50%;place-items:center;font-weight:800;display:grid}.userBlock form button{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:18px}.contentShell{width:min(100%,1580px);padding:32px 36px 50px}.pageHeader{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.pageHeader h1{letter-spacing:-.04em;margin:7px 0 8px;font-size:34px;line-height:1.05}.pageHeader p{color:var(--muted);margin:0;font-size:14px}.eyebrow{letter-spacing:.18em;color:var(--green);font-size:10px;font-weight:900}.headerActions{align-items:center;gap:10px;display:flex}.statusPill{border:1px solid var(--line);color:#b9ccd3;background:#091923;border-radius:999px;align-items:center;gap:9px;padding:9px 13px;font-size:12px;display:flex}.button,.mini{color:#dcebee;cursor:pointer;background:#122531;border:1px solid #29404c;border-radius:10px;font-weight:800}.button{padding:10px 14px;font-size:13px}.button.primary,.mini.primary{background:var(--green);border-color:var(--green);color:#06231a}.button.wide{width:100%;padding:12px}.button:disabled,.mini:disabled{opacity:.42;cursor:not-allowed}.kpiGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px;display:grid}.kpi{border:1px solid var(--line);min-height:132px;box-shadow:var(--shadow);background:linear-gradient(#0d1c27,#0a1720);border-radius:16px;padding:18px 19px}.kpiTop{color:#99adb6;justify-content:space-between;align-items:center;font-size:12px;display:flex}.kpiTop i{color:var(--green);font-size:20px;font-style:normal}.kpi strong{letter-spacing:-.04em;margin-top:16px;font-size:30px;display:block}.kpi strong small{color:#8ea4ae;font-size:16px}.kpi p{color:#6f8d9a;margin:7px 0 0;font-size:11px}.splitGrid{grid-template-columns:minmax(0,2.4fr) minmax(240px,.7fr);gap:14px;margin-bottom:14px;display:grid}.panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#091721;border-radius:16px;margin-bottom:14px;overflow:hidden}.panelHead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.panelHead h2{letter-spacing:-.025em;margin:4px 0 0;font-size:18px}.panelHead>a{color:var(--green);font-size:12px}.ocppEndpoint{border-bottom:1px solid var(--line);background:#0c1b25;justify-content:space-between;align-items:center;gap:16px;padding:10px 20px;display:flex}.ocppEndpoint span,.headerCode span{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:10px}.ocppEndpoint code,.headerCode code,.settingValue code{color:#b8d4dd;background:#06111a;border:1px solid #254050;border-radius:8px;padding:8px 10px;font-size:11px}.headerCode{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.tableWrap{width:100%;overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}th{letter-spacing:.15em;text-transform:uppercase;text-align:left;color:#70909f;border-bottom:1px solid var(--line);padding:12px 16px;font-size:9px}td{color:#cbdcdf;vertical-align:middle;border-bottom:1px solid #1d3442b3;padding:14px 16px;font-size:12px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#0b1b25}.muted{color:#718b97;margin-top:3px;font-size:10px}.badge{letter-spacing:.07em;text-transform:uppercase;border-radius:999px;align-items:center;padding:5px 9px;font-size:9px;font-weight:900;display:inline-flex}.badge.ok{color:var(--green);background:#63e6b121}.badge.warn{color:var(--amber);background:#f2c66d24}.badge.off{color:#8ba1aa;background:#86a1ad1f}.badge.danger{color:var(--red);background:#ff7b8221}.commandCell{min-width:125px}.buttonRow{gap:6px;display:flex}.mini{padding:7px 10px;font-size:10px}.mini.subtle{color:#8fa7b1;background:#0b1b25;padding:6px 8px;font-size:9px}.actionMessage{color:#7f99a4;max-width:150px;margin-top:5px;font-size:9px;display:block}.quickPanel{padding-bottom:16px}.healthRing{background:radial-gradient(circle at center,#091721 54%,transparent 55%),conic-gradient(var(--green) 0 82%,#17303c 82% 100%);border-radius:50%;place-items:center;width:145px;height:145px;margin:24px auto 16px;display:grid}.healthRing>div{text-align:center;flex-direction:column;display:flex}.healthRing strong{font-size:28px}.healthRing span{color:var(--muted);font-size:10px}.healthRows{padding:0 18px}.healthRows>div{border-bottom:1px solid #1d3442b3;justify-content:space-between;padding:9px 2px;font-size:11px;display:flex}.healthRows span{color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:36px 20px}.empty h3{color:var(--text);margin:0 0 6px}.empty p{margin:0}.compact{padding:22px}.formGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:20px;display:grid}.formGrid label{text-transform:uppercase;letter-spacing:.1em;color:#7995a0;flex-direction:column;gap:7px;font-size:10px;font-weight:800;display:flex}.formGrid input,.formGrid select{color:#e8f4f4;text-transform:none;letter-spacing:0;background:#06131c;border:1px solid #27404d;border-radius:10px;outline:none;width:100%;padding:10px 11px;font-size:12px}.formGrid input:focus,.formGrid select:focus{border-color:#49c99c;box-shadow:0 0 0 3px #63e6b112}.span2{grid-column:span 2}.formFooter{justify-content:flex-end;align-self:end;align-items:center;gap:12px;display:flex}.formMessage{color:#86a3ad;text-transform:none;letter-spacing:0;margin-right:auto;font-size:10px}.cardGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px;display:grid}.siteCard,.tariffCard{background:#0c1b25;border:1px solid #1d3442;border-radius:14px;padding:16px}.siteTitle{justify-content:space-between;gap:12px;display:flex}.siteTitle h3,.tariffCard h3{margin:10px 0 4px;font-size:16px}.siteTitle code{color:#7895a1;font-size:9px}.siteCount{text-align:right;flex-direction:column;display:flex}.siteCount strong{color:var(--green);font-size:25px}.siteCount span{color:var(--muted);font-size:9px}.siteCard>p,.tariffCard p{color:#87a0aa;min-height:33px;font-size:11px;line-height:1.5}.siteMeta{color:#6f8c97;border-top:1px solid #1b323f;flex-direction:column;gap:6px;padding-top:12px;font-size:9px;display:flex}.tariffCard{justify-content:space-between;gap:20px;display:flex}.tariffPrice{text-align:right;flex-direction:column;display:flex}.tariffPrice strong{color:var(--green);font-size:24px}.tariffPrice span,.tariffPrice small{color:var(--muted);font-size:9px}.miniStats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px;display:grid}.miniStats article{border:1px solid var(--line);background:#0a1822;border-radius:13px;padding:14px}.miniStats span{color:var(--muted);font-size:10px;display:block}.miniStats b{margin-top:7px;font-size:18px;display:block}.settingsGrid{grid-template-columns:1.3fr 1fr;gap:14px;display:grid}.settingsGrid .panel:first-child{grid-row:span 2}.settingValue{padding:22px 20px}.settingValue code{display:block;overflow:auto}.helpText{color:#809aa5;padding:0 20px 20px;font-size:11px;line-height:1.6}.featureList{margin:0;padding:12px 20px 20px;list-style:none}.featureList li{color:#a9bec6;border-bottom:1px solid #1d344299;padding:9px 0;font-size:11px}.featureList li:last-child{border:0}.loginPage{background:radial-gradient(circle at 70% 15%,#1bb77b21,#0000 28%),radial-gradient(circle at 20% 80%,#23b6db17,#0000 30%),#061019;place-items:center;min-height:100vh;padding:24px;display:grid}.loginCard{background:#091721f0;border:1px solid #213b49;border-radius:22px;width:min(100%,440px);padding:34px;box-shadow:0 30px 90px #00000059}.loginCard .brandMark{margin-bottom:24px}.loginCard h1{letter-spacing:-.04em;margin:8px 0;font-size:28px}.loginLead{color:var(--muted);margin-bottom:22px;font-size:12px;line-height:1.6}.formStack{gap:14px;display:grid}.formStack label{color:#89a2ad;text-transform:uppercase;letter-spacing:.1em;gap:7px;font-size:10px;font-weight:800;display:grid}.formStack input{color:#fff;background:#06131c;border:1px solid #27404d;border-radius:10px;padding:11px}.loginMeta{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.loginMeta span{color:#78929e;border:1px solid #203844;border-radius:99px;padding:5px 7px;font-size:8px}.alert{border-radius:9px;margin-bottom:14px;padding:9px 11px;font-size:11px}.alert.error{color:#ff9ba0;background:#ff7b821a;border:1px solid #ff7b8238}@media (max-width:1100px){.appShell{grid-template-columns:78px 1fr}.sidebar{padding:20px 10px}.brand>div:last-child,.navLinks a:not(.active){font-size:0}.navLinks a{justify-content:center}.navLinks a.active{font-size:0}.navIcon{font-size:18px}.protocolCard>div,.userBlock>div:nth-child(2),.userBlock form{display:none}.protocolCard{justify-content:center}.userBlock{justify-content:center;display:flex}.kpiGrid{grid-template-columns:repeat(2,1fr)}.splitGrid{grid-template-columns:1fr}.quickPanel{display:none}.cardGrid{grid-template-columns:repeat(2,1fr)}}@media (max-width:720px){.appShell{display:block}.sidebar{border-right:0;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#07131cf2;flex-direction:row;width:100%;height:70px;padding:7px 8px;position:fixed;top:auto;bottom:0}.brand,.sidebarBottom{display:none}.navLinks{grid-template-columns:repeat(6,1fr);gap:2px;width:100%;display:grid}.navLinks a,.navLinks a.active,.navLinks a:not(.active){padding:9px 4px;font-size:0}.navIcon{font-size:18px}.contentShell{padding:22px 14px 90px}.pageHeader{flex-direction:column}.headerActions,.headerCode{flex-wrap:wrap;align-items:flex-start}.pageHeader h1{font-size:28px}.kpiGrid,.miniStats{grid-template-columns:repeat(2,1fr)}.kpi{min-height:110px}.kpi strong{font-size:24px}.formGrid{grid-template-columns:1fr}.span2{grid-column:span 1}.cardGrid{grid-template-columns:1fr;padding:12px}.settingsGrid{grid-template-columns:1fr}.settingsGrid .panel:first-child{grid-row:auto}.loginCard{padding:26px 20px}.ocppEndpoint{flex-direction:column;align-items:flex-start}.ocppEndpoint code{max-width:100%;overflow:auto}}
