*{box-sizing:border-box}html,body,#root{color:#172033;background:#edf1f5;height:100%;margin:0;font-family:Inter,ui-sans-serif,system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app{flex-direction:column;height:100%;display:flex}header{color:#fff;z-index:5;background:#0b1220;align-items:center;gap:12px;height:64px;padding:0 18px;display:flex;box-shadow:0 2px 12px #0003}.brand{align-items:center;gap:9px;margin-right:10px;display:flex}.brand b{font-size:18px;display:block}.brand small{color:#94a3b8;font-size:10px;display:block}.bolt{color:#111827;background:#f6b81a;border-radius:10px;place-items:center;width:34px;height:34px;font-size:24px;font-weight:900;display:grid}header select,header>button{color:#fff;background:#172033;border:1px solid #334155;border-radius:8px;padding:8px 10px}nav{gap:4px;margin-left:auto;display:flex}nav button{color:#94a3b8;background:0 0;border:0;border-bottom:3px solid #0000;padding:20px 12px}nav button.active{color:#fff;border-color:#f6b81a}.body{flex:1;grid-template-columns:188px minmax(0,1fr) 240px;min-height:0;display:grid}.left,.right{background:#fff;border-right:1px solid #d8dee8;padding:14px;overflow:auto}.right{border-left:1px solid #d8dee8;border-right:0}.left h3,.right h3{text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin:14px 0 8px;font-size:12px}.left button{text-align:left;background:0 0;border:0;border-radius:7px;width:100%;margin:1px 0;padding:8px 10px}.left button:hover,.left button.sel{background:#e9eef6}.left .tool.sel{color:#895b00;background:#fff3d1;font-weight:700}.subtle{color:#2563eb!important}.left hr{border:0;border-top:1px solid #e5e7eb;margin:13px 0}.workspace{min-width:0;min-height:0;overflow:hidden}.draw{background:#cfd7e2;height:100%;position:relative;overflow:hidden}.toolbar{z-index:4;background:#fff;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 3px 15px #0002}.toolbar label,.toolbar button{font-size:12px}.toolbar input{max-width:210px}.pdf-note{z-index:3;background:#fff7d6;border:1px solid #f2cc55;border-radius:8px;padding:9px 12px;font-size:12px;position:absolute;top:65px;left:12px}.right label{color:#64748b;margin:10px 0;font-size:11px;display:block}.right input,.right select{background:#fff;border:1px solid #d8dee8;border-radius:7px;width:100%;margin-top:4px;padding:8px;display:block}.danger{color:#991b1b;background:#fee2e2;border:0;border-radius:7px;width:100%;margin-top:16px;padding:9px}.metric{border-bottom:1px solid #eee;justify-content:space-between;padding:8px 0;display:flex}.phase{grid-template-columns:24px 1fr 62px;align-items:center;gap:6px;margin:8px 0;font-size:11px;display:grid}.phase>div{background:#e5e7eb;border-radius:5px;height:7px;overflow:hidden}.phase i{background:#f59e0b;height:100%;display:block}.page{background:#f5f7fa;height:100%;padding:28px 32px;overflow:auto}.page h1{margin:0}.page p{color:#64748b}.pagehead{justify-content:space-between;align-items:center;display:flex}.page button{color:#fff;background:#0f172a;border:0;border-radius:8px;padding:9px 12px}.dinrail{background:#d8dee8;border:8px solid #c0c8d2;border-radius:8px;align-items:stretch;gap:3px;min-height:210px;margin-top:28px;padding:34px 18px;display:flex;box-shadow:inset 0 0 0 2px #8b96a6}.device{text-align:center;background:#f7f7f5;border:1px solid #9ba3ad;border-radius:3px;flex-direction:column;justify-content:center;width:70px;padding:8px 5px;display:flex;box-shadow:0 2px 3px #0002}.device.main{color:#fff;background:#303640;width:110px}.device.rcd{width:110px}.breaker strong{font-size:22px}.breaker em{height:24px;margin:6px 0;font-size:9px;font-style:normal;overflow:hidden}.breaker.wide{width:140px}.emptydev{color:#8993a1;background:#e5e7eb;border-style:dashed;font-size:28px}.legend{color:#64748b;margin-top:10px;font-size:12px}.cards{grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0;display:grid}.card{background:#fff;border-left:4px solid #94a3b8;border-radius:11px;padding:18px;box-shadow:0 1px 5px #0001}.card b{font-size:28px;display:block}.card span{color:#64748b;font-size:12px}.card.ok{border-color:#10b981}.card.warn{border-color:#f59e0b}.card.bad{border-color:#ef4444}table{border-collapse:collapse;background:#fff;border-radius:10px;width:100%;overflow:hidden}th,td{text-align:left;border-bottom:1px solid #edf0f3;padding:11px 12px;font-size:13px}th{color:#475569;background:#eef2f6}.badrow{background:#fff1f2}.notice{color:#6b5715;background:#fff8dc;border:1px solid #ead180;border-radius:8px;margin-top:18px;padding:12px;font-size:12px}.empty{text-align:center;place-content:center;height:100%;display:grid}.empty button{color:#fff;background:#0f172a;border:0;border-radius:8px;padding:10px 15px}.info{background:#eef2ff;border-radius:8px;margin-top:10px;padding:10px;font-size:12px}@media (width<=900px){.body{grid-template-columns:150px 1fr}.right{display:none}.cards{grid-template-columns:1fr 1fr}}.authshell{background:radial-gradient(circle at 50% 20%,#243147 0,#101827 38%,#080d16 100%);place-items:center;min-height:100%;padding:24px;display:grid}.authcard{background:#fff;border-radius:18px;width:min(430px,100%);padding:30px;box-shadow:0 24px 70px #0007}.authbrand{align-items:center;gap:14px;margin-bottom:24px;display:flex}.authbrand h1{margin:0;font-size:25px}.authbrand p{color:#64748b;margin:3px 0 0}.authcard label{color:#475569;margin:14px 0;font-size:12px;font-weight:700;display:block}.authcard input{border:1px solid #cbd5e1;border-radius:9px;width:100%;margin-top:6px;padding:11px;display:block}.authcard>button{color:#fff;background:#0f172a;border:0;border-radius:9px;width:100%;margin-top:12px;padding:12px;font-weight:700}.authcard>button:disabled{opacity:.6}.autherror{color:#991b1b;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;margin:12px 0;padding:10px 12px;font-size:13px}.hint{color:#64748b}.userbox{align-items:center;gap:9px;margin-left:8px;display:flex}.userbox>span{text-align:right;font-size:12px}.userbox small{color:#94a3b8;text-transform:capitalize;display:block}.userbox button{color:#cbd5e1;background:#172033;border:1px solid #334155;border-radius:7px;padding:7px 9px}.usertable select{background:#fff;border:1px solid #cbd5e1;border-radius:7px;padding:6px}.toggle{align-items:center;gap:6px;display:flex}.page .smallbtn{background:#334155;padding:6px 8px;font-size:11px}.planstatus{z-index:3;color:#fff;pointer-events:none;background:#0f172acc;border-radius:8px;padding:7px 10px;font-size:11px;position:absolute;top:12px;right:12px}.panelpage{padding-bottom:70px}.panelcontrols{background:#fff;border:1px solid #d8dee8;border-radius:12px;flex-wrap:wrap;align-items:end;gap:12px;margin:22px 0 12px;padding:14px;display:flex}.panelcontrols label{color:#64748b;flex-direction:column;gap:5px;font-size:12px;display:flex}.panelcontrols input{border:1px solid #cbd5e1;border-radius:8px;width:110px;padding:8px}.panelcapacity{flex-direction:column;align-items:flex-end;margin-left:auto;display:flex}.panelcapacity b{font-size:20px}.panelcapacity span{color:#64748b;font-size:11px}.panelcapacity.over b{color:#b91c1c}.breakeradd{gap:8px;margin:12px 0 18px;display:flex}.breakeradd select{background:#fff;border:1px solid #cbd5e1;border-radius:8px;min-width:330px;max-width:100%;padding:9px}.panelcabinet{background:#d9dee5;border:8px solid #aeb7c3;border-radius:12px;padding:16px;box-shadow:inset 0 0 0 2px #7f8997}.panelrow{grid-template-columns:74px 1fr;align-items:stretch;gap:10px;margin:10px 0;display:grid}.rowlabel{color:#fff;background:#273244;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;font-weight:700;display:flex}.rowlabel small{color:#cbd5e1;margin-top:4px;font-size:10px}.modules{background:#c7ced7;border:2px solid #8994a3;border-radius:4px;align-items:stretch;min-height:126px;display:grid;position:relative;overflow:hidden}.modulemark{background:linear-gradient(#e7eaee 0 12%,#cfd5dc 12% 18%,#e7eaee 18% 82%,#cfd5dc 82% 88%,#e7eaee 88%);border-right:1px solid #9ea8b5;grid-row:1}.paneldevice{z-index:2;text-align:center;background:#f8f8f4;border:1px solid #8b949e;border-radius:3px;flex-direction:column;grid-row:1;justify-content:center;min-width:0;margin:6px 2px;padding:7px 5px;display:flex;box-shadow:0 2px 4px #0002}.paneldevice span{white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}.paneldevice strong{margin:3px 0;font-size:19px}.paneldevice small{color:#475569;font-size:8px}.paneldevice em{color:#64748b;margin-top:4px;font-size:8px;font-style:normal}.paneldevice.main{color:#fff;background:#303640}.paneldevice.main small{color:#cbd5e1}.paneldevice.rcd{background:#f4f4ef}.paneldevice.breaker strong{font-size:22px}.paneldevice.breaker{border-top:5px solid #334155}@media (width<=900px){.panelrow{grid-template-columns:54px 1fr}.breakeradd{flex-direction:column}.breakeradd select{width:100%;min-width:0}.panelcontrols{align-items:stretch}.panelcapacity{align-items:flex-start;margin-left:0}}.modules{background-color:#e7eaee;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc((100% / var(--mods,18)) - 1px),#9ea8b5 calc((100% / var(--mods,18)) - 1px),#9ea8b5 calc(100% / var(--mods,18))),linear-gradient(#e7eaee 0 12%,#cfd5dc 12% 18%,#e7eaee 18% 82%,#cfd5dc 82% 88%,#e7eaee 88%)}.groupspage .pagehead{align-items:flex-start}.exportbuttons{gap:8px;display:flex}.exportbuttons button,.secondary{color:#172033!important;background:#fff!important;border:1px solid #cbd5e1!important}.importbox{background:#eef2f7;border:1px solid #d8dee8;border-radius:12px;align-items:center;gap:12px;margin:18px 0;padding:14px;display:flex}.importbox>div:first-child{flex:1}.importbox p{color:#64748b;margin:4px 0 0;font-size:12px}.filebutton{color:#fff;cursor:pointer;background:#172033;border-radius:8px;align-items:center;padding:9px 12px;font-size:12px;font-weight:700;display:inline-flex}.filebutton input{display:none}.previewbox{background:#fff;border:1px solid #d8dee8;border-radius:12px;margin:14px 0;padding:14px}.previewstats{grid-template-columns:auto auto auto auto auto auto;align-items:end;gap:6px 10px;margin-bottom:12px;display:grid}.previewstats b{font-size:22px}.previewstats span{color:#64748b;margin-right:14px;font-size:11px}.grouptable{background:#fff}.grouptable .slot-continuation td{color:#64748b;font-style:italic}.grouptable .slot-covered td{background:#e2e8f0}.grouptable .slot-blank td{color:#94a3b8}.nodata{text-align:center;color:#64748b;padding:30px!important}.paneldevice.covered{color:#475569;background:#cbd5e1}.adminpage{overflow:auto}.adminsection{background:#fff;border:1px solid #d8dee8;border-radius:12px;margin:0 28px 40px;padding:22px}.adminsection h2{margin-top:0}.updatebox{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.pkginfo{flex-direction:column;gap:5px;min-width:320px;display:flex}.pkginfo span{color:#64748b;font-size:12px}.pkginfo code{color:#64748b;word-break:break-all;font-size:10px}.pkginfo button{align-self:flex-start;margin-top:5px}.updatestatus{background:#eef2ff;border-radius:9px;align-items:center;gap:10px;margin-top:14px;padding:12px;display:flex}.updatestatus.done{background:#dcfce7}.updatestatus.failed{background:#fee2e2}.updatestatus small{color:#64748b;margin-left:auto}@media (width<=900px){.importbox{flex-direction:column;align-items:stretch}.exportbuttons{flex-direction:column}.previewstats{grid-template-columns:auto auto auto auto}.pkginfo{width:100%;min-width:0}}.plan-underlay{z-index:0;transform-origin:0 0;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;opacity:.94;background:#fff;max-width:none;max-height:none;display:block;position:absolute;top:0;left:0}.planstatus{white-space:nowrap;align-items:center;gap:10px;max-width:min(46vw,620px);display:flex;overflow:hidden}.planstatus span{text-overflow:ellipsis;min-width:0;overflow:hidden}.planstatus b{color:#dbeafe;flex:none;font-size:11px;font-weight:600}.toolbar{flex-wrap:wrap;max-width:calc(100% - 24px)}@media (width<=900px){.planstatus{max-width:calc(100% - 24px);top:68px;right:12px}}.drawing-overlay{z-index:1;position:absolute;inset:0}.drawing-overlay>div{inset:0;position:absolute!important}.left .tool{text-align:left;align-items:center;gap:9px;display:flex}.toolglyph{color:#0f172a;background:#fff;border:1px solid #94a3b8;border-radius:5px;flex:0 0 28px;justify-content:center;align-items:center;width:28px;height:24px;font-size:13px;font-weight:700;display:inline-flex}.tool.sel .toolglyph{border-color:#f59e0b;box-shadow:inset 0 0 0 1px #f59e0b}.groupselect{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:7px;width:100%;margin:4px 0 8px;padding:7px 8px}.sidehint{color:#64748b;margin-top:6px;line-height:1.35;display:block}.drawing-overlay{cursor:crosshair}.drawing-overlay.is-panning{cursor:grab}.drawing-overlay.is-panning:active{cursor:grabbing}.toolglyph.pan{font-size:15px}.right select{width:100%}
