:root{--ink:#f5f5f5;--muted:#b7b7ba;--paper:#27272a;--card:#353539;--card2:#414146;--line:#56565c;--red:#e53935;--red-soft:#ff6d68;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif}main{max-width:1080px;margin:auto;padding:34px 24px 72px}.login{max-width:440px;margin:10vh auto}.eyebrow{font-size:.74rem;font-weight:800;letter-spacing:.14em;color:var(--red-soft);margin:0 0 10px}h1{font-size:clamp(2rem,5vw,3.5rem);line-height:1.02;margin:0 0 28px}h2{font-size:1.25rem;margin:0}h3{font-size:1rem;margin:23px 0 10px}form{display:grid;gap:16px;padding:24px;background:var(--card);border:1px solid var(--line);border-radius:16px}label{display:grid;gap:7px;font-size:.88rem;color:var(--muted)}input{width:100%;padding:12px;border-radius:9px;border:1px solid var(--line);background:#262629;color:var(--ink);font:inherit}button{border:0;border-radius:9px;padding:12px 16px;background:var(--red);color:var(--white);font-weight:800;font:inherit;cursor:pointer}.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.error{color:var(--red-soft);margin:0}.muted,.sync{color:var(--muted);font-size:.9rem}.sync{margin:20px 0}header{display:flex;align-items:start;justify-content:space-between;gap:16px}.headActions{display:flex;align-items:center;gap:16px}.status{font-size:.85rem;color:#ffd166}.status:before{content:'';display:inline-block;width:8px;height:8px;background:#ffd166;border-radius:50%;margin-right:6px}.status.online:before{background:#87cf8c}nav{display:flex;gap:20px;border-bottom:1px solid var(--line);padding-bottom:16px;overflow:auto}nav a,a{color:var(--red-soft);text-decoration:none;font-size:.9rem;white-space:nowrap}.section{margin-top:44px}.sectionTitle{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px}.badge{color:var(--red-soft);font-weight:800}.energyOverview{display:grid;grid-template-columns:minmax(230px,.8fr) 1.2fr;gap:14px}.dialCard,.metricGrid article,.chartCard,.heating,.relay,.mapCard,.alert,.detailsGrid article,.cells article{background:var(--card);border:1px solid var(--line);border-radius:14px}.dialCard{display:grid;place-items:center;padding:20px}.dial{--soc:0deg;width:190px;height:190px;border-radius:50%;background:conic-gradient(var(--red) var(--soc),#57575b 0);display:grid;place-items:center;position:relative}.dial:before{content:'';position:absolute;inset:12px;border-radius:50%;background:var(--card)}.dial>div{position:relative;text-align:center}.dial strong{font-size:3.5rem;line-height:1}.dial span{font-size:1.3rem;color:var(--muted)}.dial small{display:block;color:var(--muted);margin-top:5px}.metricGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.metricGrid article,.detailsGrid article{padding:18px}.metricGrid p,.detailsGrid p,.heating p,.relay p{color:var(--muted);font-size:.8rem;margin:0 0 8px}.metricGrid strong,.detailsGrid strong{font-size:1.55rem}.metricGrid small{display:block;color:var(--muted);margin-top:9px}.chartCard{margin-top:14px;padding:17px}.cardHeading{display:flex;justify-content:space-between;gap:8px}.chart{width:100%;height:auto;display:block;margin-top:14px}.chart polyline{filter:drop-shadow(0 3px 3px #0005)}details{margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:0 18px 18px}summary{cursor:pointer;padding:18px 0;font-weight:700}.detailsGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.cells{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.cells article{padding:12px;display:grid;gap:4px}.cells span{font-size:.75rem;color:var(--muted)}.cells strong{font-size:1rem}.legend{display:flex;gap:18px;color:var(--muted);font-size:.85rem}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.legend .inside{background:var(--red)}.legend .outside{background:#abb0b7}.heatingGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.heating,.relay{padding:18px;display:flex;align-items:center;justify-content:space-between}.heating.room{display:block}.heatingTop{display:flex;justify-content:space-between;align-items:center}.heating strong,.relay strong{display:block;font-size:1.1rem}.heating small{color:var(--muted);display:block;margin-top:7px}.field{min-width:145px}.field select{width:100%;background:#27272a;color:var(--ink);border:1px solid var(--line);padding:9px;border-radius:8px;font:inherit}.rangeField{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:22px}.rangeField input{grid-column:1 / -1;padding:0;accent-color:var(--red)}.modeButtons{display:flex;gap:8px;margin-top:15px}.modeButtons button{padding:7px 11px;background:#505055;color:var(--ink);font-size:.82rem}.modeButtons button.selected{background:var(--red)}.trumaAlert{margin-bottom:12px;padding:12px 15px;background:#5f2525;border:1px solid var(--red);border-radius:10px;color:#ffd4d2}.relayList,.alerts{display:grid;gap:10px}.switch{display:block;position:relative;width:52px;height:30px}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;inset:0;background:#5d5d62;border-radius:20px;cursor:pointer}.switch span:after{content:'';position:absolute;width:22px;height:22px;left:4px;top:4px;border-radius:50%;background:white;transition:.2s}.switch input:checked+span{background:var(--red)}.switch input:checked+span:after{transform:translateX(22px)}.mapCard{overflow:hidden}.mapCard iframe{display:block;border:0;width:100%;height:260px;filter:grayscale(.55) contrast(.9)}.mapData{padding:16px;display:flex;justify-content:space-between;align-items:baseline}.mapData p{margin:0}.alert{padding:16px;display:flex;justify-content:space-between;gap:14px}.alert span{color:var(--muted);font-size:.8rem}.alert.warning{border-color:#93742e}@media(max-width:650px){main{padding:24px 16px}header{display:block}.headActions{margin-top:16px}.energyOverview{grid-template-columns:1fr}.metricGrid{gap:10px}.metricGrid article{padding:15px}.sectionTitle{align-items:flex-start;flex-direction:column;gap:4px}.detailsGrid{grid-template-columns:1fr}.cells{grid-template-columns:repeat(2,1fr)}.heatingGrid{grid-template-columns:1fr}.alert,.mapData{display:block}.alert span{display:block;margin-top:6px}.mapData p{margin-top:6px}}
