:root{--bg:#f0f2f2;--panel:#fff;--white:#fff;--bar:#e4e8e7;--stage:#3a3f42;--wall:#101418;--line:#cdd3d2;--line-soft:#e2e6e5;--hover-line:#9aa3a1;--ink:#1a2424;--muted:#515c5a;--teal:#0a6363;--teal-hover:#085252;--teal-active:#064242;--teal-soft:#0a63631c;--on-accent:#fff;--danger:#b03a2e;--danger-hover:#982f25;--danger-active:#822820;--danger-soft:#f9ecea;--danger-soft-strong:#f3dedb;--amber:#b86c00;--amber-soft:#b86c0022;--ctl-hover:#edf0f0;--ctl-active:#e0e5e4;--shadow:#00000047;--shadow-1:0 1px 2px #1018180f,0 1px 3px #1018181a;--shadow-2:0 2px 6px #1018181a,0 12px 32px #10181838;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23515C5A' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--ed-bg:#16191b;--ed-surface:#262c2f;--ed-raised:#323a3e;--ed-line:#454f54;--ed-line-soft:#394246;--ed-hover-line:#6b777d;--ed-ink:#e6eaeb;--ed-muted:#abb5b9;--ed-accent:#4fd1c5;--ed-accent-hover:#6fddd3;--ed-accent-active:#3dbdb1;--ed-accent-soft:#4fd1c524;--ed-on-accent:#0b1f1e;--ed-danger:#ffa196;--ed-danger-hover:#ffb9b0;--ed-danger-active:#f28b7f;--ed-danger-soft:#4a3f41;--ed-danger-soft-strong:#544548;--ed-amber:#f0a63c;--ed-amber-soft:#f0a63c2e;--ed-hover:#394347;--ed-active:#2b3236;--ed-shadow:#0009;--ed-shadow-1:0 1px 2px #0006;--ed-shadow-2:0 2px 6px #0006,0 12px 32px #0000008c;--ed-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23ABB5B9' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--ctl-sm:24px;--ctl:28px;--ctl-lg:32px;--radius:6px;--radius-card:8px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:22px;--topbar:44px;--page-max:1200px;--t:.12s}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{font:var(--fs-md)/1.45 "Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--bg)}[hidden]{display:none!important}body,#app,#ctxMenu,#alignBar,.ed{--bg:var(--ed-bg);--panel:var(--ed-surface);--bar:var(--ed-surface);--white:var(--ed-raised);--stage:var(--ed-bg);--line:var(--ed-line);--line-soft:var(--ed-line-soft);--hover-line:var(--ed-hover-line);--ink:var(--ed-ink);--muted:var(--ed-muted);--teal:var(--ed-accent);--teal-hover:var(--ed-accent-hover);--teal-active:var(--ed-accent-active);--teal-soft:var(--ed-accent-soft);--on-accent:var(--ed-on-accent);--danger:var(--ed-danger);--danger-hover:var(--ed-danger-hover);--danger-active:var(--ed-danger-active);--danger-soft:var(--ed-danger-soft);--danger-soft-strong:var(--ed-danger-soft-strong);--amber:var(--ed-amber);--amber-soft:var(--ed-amber-soft);--ctl-hover:var(--ed-hover);--ctl-active:var(--ed-active);--shadow:var(--ed-shadow);--shadow-1:var(--ed-shadow-1);--shadow-2:var(--ed-shadow-2);--chevron:var(--ed-chevron);color:var(--ink);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:where(button,.btn,select,textarea,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file])){--ctl-h:var(--ctl);font:inherit;color:var(--ink);background-color:var(--white);border:1px solid var(--line);border-radius:var(--radius);transition:background-color var(--t),border-color var(--t),color var(--t),box-shadow var(--t),opacity var(--t);margin:0;line-height:1.25}:where(select,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file])){height:var(--ctl-h);min-width:0;padding:0 var(--sp-2)}:where(textarea){min-height:var(--ctl-h);padding:var(--sp-1) var(--sp-2);resize:vertical;line-height:1.4}:where(button,.btn){min-height:var(--ctl-h);padding:2px calc(var(--ctl-h) * .4);cursor:pointer}:where(.btn){justify-content:center;align-items:center;text-decoration:none;display:inline-flex}:where(select){appearance:none;cursor:pointer;text-overflow:ellipsis;padding-right:calc(var(--sp-2) + 16px);background-image:var(--chevron);background-repeat:no-repeat;background-position:right var(--sp-2) center;background-size:10px 6px}:where(button:hover:not(:disabled),.btn:hover,select:hover:not(:disabled)){border-color:var(--hover-line);background-color:var(--ctl-hover)}:where(textarea:hover:not(:disabled),input:hover:not(:disabled):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file])){border-color:var(--hover-line)}:where(button:active:not(:disabled),.btn:active){border-color:var(--hover-line);background-color:var(--ctl-active)}:where(a,button,.btn,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--amber);outline-offset:1px}:where(button,input,select,textarea):disabled{opacity:.5;cursor:default}::placeholder{color:var(--muted);opacity:1}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--teal);margin:0}input[type=checkbox],input[type=radio]{cursor:pointer;flex:none;width:16px;height:16px}input[type=color]{width:44px;height:var(--ctl);border:1px solid var(--line);border-radius:var(--radius);background-color:var(--white);cursor:pointer;padding:2px}input[type=file]{display:none}.small{--ctl-h:var(--ctl-sm);font-size:var(--fs-xs)}.lg{--ctl-h:var(--ctl-lg)}select.small{background-position:right 6px center;padding-left:6px;padding-right:20px}:where(button,.btn).primary{background-color:var(--teal);border-color:var(--teal);color:var(--on-accent);font-weight:600}:where(button,.btn).primary:hover:not(:disabled){background-color:var(--teal-hover);border-color:var(--teal-hover)}:where(button,.btn).primary:active:not(:disabled){background-color:var(--teal-active);border-color:var(--teal-active)}:where(button,.btn).danger{color:var(--danger)}:where(button,.btn).danger:hover:not(:disabled){background-color:var(--danger-soft);border-color:var(--danger)}:where(button,.btn).danger:active:not(:disabled){background-color:var(--danger-soft-strong);border-color:var(--danger)}:where(button,.btn).ghost{background-color:#0000;border-color:#0000}:where(button,.btn).ghost:hover:not(:disabled){background-color:var(--ctl-hover);border-color:#0000}:where(button,.btn).ghost:active:not(:disabled){background-color:var(--ctl-active);border-color:#0000}:where(button,.btn).ghost.active{background-color:var(--teal-soft);color:var(--teal)}:where(button,.btn).linkish{color:var(--teal);padding-left:var(--sp-1);padding-right:var(--sp-1);background-color:#0000;border-color:#0000}:where(button,.btn).linkish:hover:not(:disabled){text-decoration:underline}.icon{width:var(--ctl-h,var(--ctl));height:var(--ctl-h,var(--ctl));flex:none;justify-content:center;align-items:center;min-height:0;padding:0;line-height:1;display:inline-flex}.icon svg{display:block}.seg{vertical-align:middle;display:inline-flex}.seg>*{border-radius:0;position:relative}.seg>*+*{margin-left:-1px}.seg>:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.seg>:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.seg>:hover,.seg>:focus-visible{z-index:1}.seg>.active,.seg>[aria-pressed=true]{z-index:1;background-color:var(--teal);border-color:var(--teal);color:var(--on-accent)}.seg>.active:hover:not(:disabled),.seg>[aria-pressed=true]:hover:not(:disabled){background-color:var(--teal-hover);border-color:var(--teal-hover)}.seg.small>*{--ctl-h:var(--ctl-sm);font-size:var(--fs-xs)}.tab,.ptab,.eq-tabs button,.nav-tabs button{align-items:center;gap:var(--sp-2);min-height:var(--ctl-lg);padding:0 var(--sp-3);color:var(--muted);white-space:nowrap;cursor:pointer;transition:color var(--t),border-color var(--t);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;font-weight:600;text-decoration:none;display:inline-flex}.tab:hover,.ptab:hover,.eq-tabs button:hover,.nav-tabs button:hover{color:var(--ink)}.tab.active,.ptab.active,.eq-tabs button.active,.nav-tabs button.active,.tab[aria-selected=true]{color:var(--teal);border-bottom-color:var(--teal)}.tab:focus-visible,.ptab:focus-visible,.eq-tabs button:focus-visible,.nav-tabs button:focus-visible{outline-offset:-2px}.grow,.flex1{flex:1}.full{width:100%}.w60{width:60px}.hidden{display:none}.mt6{margin-top:6px}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:flex}kbd{font:var(--fs-xs) ui-monospace,Consolas,monospace}button kbd{opacity:.7;margin-left:var(--sp-1)}.msg{min-height:1.4em;margin:var(--sp-2) 0 0;color:var(--muted)}.msg:empty{min-height:0;margin:0}#saveStatus.failed,.msg.failed{color:var(--danger);font-weight:600}.sub{color:var(--muted);max-width:560px;margin:0 0 20px}.proj-info{color:var(--muted);font-size:var(--fs-xs)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}.screen{height:100%;padding:48px 20px;display:none;overflow:auto}body[data-screen=auth] #auth,body[data-screen=accept] #accept,body[data-screen=home] #home{display:block}body[data-reauth] #auth{z-index:100;background:var(--bg);display:block;position:fixed;inset:0}#project{height:100%;display:none}body[data-screen=project] #project{display:flex}body[data-screen=home] #home,body[data-screen=project] #project{height:calc(100% - var(--topbar))}body[data-screen=home] #home{padding:var(--sp-6) var(--sp-6) 48px}.card{max-width:380px;padding:var(--sp-5);background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-1);margin:40px auto 0}.card h1{font-size:var(--fs-xl);margin:0 0 6px;font-weight:600}.card form{margin:var(--sp-4) 0 10px;flex-direction:column;gap:10px;display:flex}.card label{gap:var(--sp-1);color:var(--muted);font-size:var(--fs-xs);flex-direction:column;display:flex}.card input{font-size:var(--fs-md)}:where(.card) :where(input,button){--ctl-h:var(--ctl-lg)}#topbar{height:var(--topbar);align-items:center;gap:var(--sp-5);padding:0 var(--sp-4);background:var(--bar);color:var(--ink);border-bottom:1px solid var(--line);display:none}body[data-screen=home] #topbar,body[data-screen=project] #topbar{display:flex}#brand{color:var(--ink);font-weight:700;font-size:var(--fs-lg);white-space:nowrap;text-decoration:none}#topbar .tabs{align-self:stretch;gap:var(--sp-1);display:flex}#topbar .tab{border-top:2px solid #0000}#topbar .tabs{min-width:0}.crumb{align-items:center;gap:var(--sp-1);min-width:0;margin-right:var(--sp-2);color:var(--muted);display:none}body[data-screen=project] .crumb{display:inline-flex}.crumb-sep{flex:none}.crumb-name{white-space:nowrap;text-overflow:ellipsis;max-width:32ch;color:var(--ink);font-weight:600;overflow:hidden}#topbar .who{color:var(--muted);font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}@media (width<=600px){#topbar{gap:10px;padding:0 10px}#topbar .who{display:none}#brand{font-size:var(--fs-sm)}#topbar .tab{padding:0 var(--sp-2)}.crumb-name{max-width:12ch}}#sidebar{background:var(--bar);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:220px;display:flex;overflow:hidden}.side-top{justify-content:space-between;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3) 10px var(--sp-3) var(--sp-3);border-bottom:1px solid var(--line);display:flex}#sidebarToggle{width:var(--ctl);flex:none;padding:0;line-height:1}.side-project{min-width:0}.side-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);display:block}.side-name{font-weight:600;font-size:var(--fs-md);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.side-status{align-items:center;gap:2px var(--sp-2);font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;margin-top:2px;display:flex}#sideSave:empty,#sideOthers:empty{display:none}#sideSave.failed{color:var(--danger);font-weight:600}#sideOthers{color:var(--amber);text-overflow:ellipsis;min-width:0;font-weight:600;overflow:hidden}.pages{padding:var(--sp-2);flex-direction:column;flex:1;gap:2px;display:flex;overflow:auto}.navlink{padding:var(--sp-2) 10px;border-radius:var(--radius);color:var(--ink);transition:background-color var(--t),color var(--t);border:1px solid #0000;align-items:center;gap:10px;text-decoration:none;display:flex}.navlink:hover{background-color:var(--bg)}.navlink.active{background-color:var(--teal-soft);color:var(--teal)}.navlink svg{flex-shrink:0}.navlink{position:relative}.navtext{flex-direction:column;flex:1;min-width:0;display:flex}.navstat{align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;flex:none;font-weight:600;display:inline-flex}.navattn{text-align:center;border-radius:9px;min-width:18px;padding:1px 6px}.navattn.blocker{background:var(--danger-soft);color:var(--danger)}.navattn.warning{background:var(--amber-soft);color:var(--amber)}.navword{color:var(--teal)}.navtitle{font-weight:600;font-size:var(--fs-sm)}.navblurb{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}body.sidebar-collapsed #sidebar{width:52px}body.sidebar-collapsed .side-project,body.sidebar-collapsed .navtext{display:none}body.sidebar-collapsed .navlink{padding:var(--sp-2) 0;justify-content:center}body.sidebar-collapsed .side-top{justify-content:center}@media (width<=900px){#sidebar{width:52px}.side-project,.navtext{display:none}.navlink{padding:var(--sp-2) 0;justify-content:center}.side-top{justify-content:center}}body.sidebar-collapsed .navstat{display:none}body.sidebar-collapsed .navlink.attn-blocker:after,body.sidebar-collapsed .navlink.attn-warning:after{content:"";background:var(--danger);width:8px;height:8px;box-shadow:0 0 0 2px var(--bar);border-radius:50%;position:absolute;top:5px;right:5px}body.sidebar-collapsed .navlink.attn-warning:after{background:var(--amber)}@media (width<=900px){.navstat{display:none}.navlink.attn-blocker:after,.navlink.attn-warning:after{content:"";background:var(--danger);width:8px;height:8px;box-shadow:0 0 0 2px var(--bar);border-radius:50%;position:absolute;top:5px;right:5px}.navlink.attn-warning:after{background:var(--amber)}}#pages{flex:1;min-width:0;height:100%;position:relative}.page{height:100%;overflow:auto}#page-floorplan{overflow:hidden}#app{background:var(--bg);height:100%;font-size:var(--fs-sm);grid-template-rows:auto auto minmax(0,1fr) 26px;grid-template-columns:auto minmax(0,1fr) 280px;display:grid;position:relative}@media (width<=900px){#app{grid-template-columns:auto minmax(0,1fr) 220px}}#app>header{grid-area:1/1/auto/-1}#sheetbar{grid-area:2/1/auto/-1}#toolRail{grid-area:3/1}#stage{grid-area:3/2}#app>aside{grid-area:3/3}#app>footer{grid-area:4/1/auto/-1}#fpEmpty{background:var(--bg);color:var(--muted);font-size:var(--fs-lg);z-index:5;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#app>header{min-width:0;min-height:44px;padding:var(--sp-1) var(--sp-3);background:var(--panel);border-bottom:1px solid var(--line);white-space:nowrap;align-items:center;gap:6px;display:flex}#app>header .sep{background:var(--line);flex:none;width:1px;height:20px;margin:0 6px}#app>header button{flex:none}#fpBuilding{flex:0 240px;min-width:96px}#fpAssign{flex:0 200px;min-width:96px}.tbtoggle{-webkit-user-select:none;user-select:none;flex:none;display:inline-flex;position:relative}.tbtoggle input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.tbtoggle span{min-height:var(--ctl);border:1px solid var(--line);border-radius:var(--radius);color:var(--muted);transition:background-color var(--t),border-color var(--t),color var(--t);align-items:center;gap:6px;padding:0 10px;font-weight:600;display:inline-flex}.tbtoggle span:before{content:"";border:1.5px solid;border-radius:50%;flex:none;width:8px;height:8px}.tbtoggle:hover span{border-color:var(--hover-line);background-color:var(--ctl-hover)}.tbtoggle input:checked+span{color:var(--teal);border-color:var(--teal);background-color:var(--teal-soft)}.tbtoggle input:checked+span:before{background-color:currentColor}.tbtoggle input:focus-visible+span{outline:2px solid var(--amber);outline-offset:1px}#toolRail{padding:6px var(--sp-1);background:var(--panel);border-right:1px solid var(--line);flex-direction:column;align-items:center;gap:2px;display:flex;overflow:hidden auto}:where(#toolRail) :where(button){--ctl-h:var(--ctl-lg)}#toolRail .tool{flex:none;justify-content:center;align-items:center;gap:1px;width:44px;padding:0;display:inline-flex}#toolRail .tool svg{flex:none;display:block}#toolRail .tool kbd{align-self:flex-end;margin:0 0 4px;line-height:1}#keysBtn{font-size:var(--fs-md);color:var(--muted);font-weight:600}#keysBtn:hover{color:var(--ink)}.tool.active,#alignBtn.active,#cropBtn.active{background-color:var(--teal);border-color:var(--teal);color:var(--on-accent)}.tool.active:hover:not(:disabled),#alignBtn.active:hover:not(:disabled),#cropBtn.active:hover:not(:disabled){background-color:var(--teal-hover);border-color:var(--teal-hover)}#sheetbar{min-height:var(--ctl-lg);padding:0 var(--sp-3);background:var(--bar);border-bottom:1px solid var(--line);font-size:var(--fs-xs);flex-wrap:wrap;align-items:center;gap:6px;display:flex}:where(#sheetbar) :where(button,select){--ctl-h:var(--ctl-sm)}#sheetTabs,#levelTabs{flex-wrap:wrap;gap:2px;display:flex}#sheetbar .tab{padding:0 2px 0 var(--sp-2);font-size:var(--fs-sm);-webkit-user-select:none;user-select:none;cursor:default;gap:0}#sheetbar .tabname{min-height:0;padding:0 var(--sp-1) 0 0;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:0;align-self:stretch;align-items:center;display:flex}#sheetbar .tabname:focus-visible{outline-offset:-2px}#sheetbar .tabmenu{width:var(--ctl-sm);color:inherit;font-size:var(--fs-xs);opacity:.7;background-color:#0000;border-color:#0000;flex:none;padding:0;line-height:1}#sheetbar .tabmenu:hover{opacity:1;background-color:var(--ctl-hover)}#sheetbar .tab.hiddenArea .tabname{opacity:.6;font-style:italic}#sheetbar .tab.unplaced{outline:1px dashed var(--hover-line);outline-offset:-3px}#sheetbar .tab.level{font-weight:500}#sheetbar .tab.level.active{font-weight:600}#sheetbar .lbl{color:var(--muted);margin-left:var(--sp-2)}#stage{background:var(--stage);position:relative;overflow:hidden}canvas{cursor:crosshair;display:block}canvas.pan{cursor:grab}canvas.select{cursor:default}#labelEdit{border:1px solid var(--amber);background:var(--white);resize:none;text-align:center;white-space:pre;border-radius:3px;min-width:80px;min-height:0;padding:2px 4px;font:13px/1.2 Arial,sans-serif;transition:none;display:none;position:absolute;overflow:hidden}#labelEdit:focus-visible{outline:none}#alignBar{align-items:center;gap:var(--sp-1);padding:6px var(--sp-2);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-2);z-index:5;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}#alignBar #alignInfo{color:var(--muted);font-size:var(--fs-xs);margin-right:var(--sp-1);white-space:nowrap}#alignBar button{min-width:var(--ctl);font-size:var(--fs-md);padding:0 6px;line-height:1.1}#alignBar .sep{background:var(--line);width:1px;height:18px;margin:0 3px}#hint{width:max-content;max-width:max(240px,100% - 400px);padding:var(--sp-1) var(--sp-3);background:var(--panel);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-2);font-size:var(--fs-xs);text-align:center;pointer-events:none;z-index:4;border-radius:14px;line-height:1.4;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}#hint:empty{display:none}#alignBar:not([hidden])~#hint{bottom:66px}#zoomBar{right:var(--sp-3);bottom:var(--sp-3);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1);z-index:4;align-items:center;gap:2px;padding:2px;display:flex;position:absolute}#zoomBar .sep{background:var(--line);width:1px;height:16px;margin:0 2px}#zoomBar .icon{font-size:var(--fs-md)}#zoomPct{min-width:52px;padding:0 var(--sp-1);font-variant-numeric:tabular-nums}#app>footer{align-items:center;gap:var(--sp-4);min-width:0;padding:0 var(--sp-3);background:var(--panel);border-top:1px solid var(--line);color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;display:flex}#coords{font-variant-numeric:tabular-nums;min-width:96px}#openBy{text-overflow:ellipsis;min-width:0;color:var(--amber);font-weight:600;overflow:hidden}#openBy:empty,#saveStatus:empty{display:none}#buildVersion{opacity:.75}aside{background:var(--panel);border-left:1px solid var(--line);padding:var(--sp-3);overflow:auto}aside h2{font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:var(--sp-4) 0 var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--line-soft);font-weight:600}.pane>h2:first-child{border-top:none;margin-top:0;padding-top:0}aside h3{font-size:var(--fs-xs);color:var(--muted);margin:var(--sp-3) 0 var(--sp-1);font-weight:600}.ptabs{margin:calc(-1 * var(--sp-3)) calc(-1 * var(--sp-3)) 10px;background:var(--bar);border-bottom:1px solid var(--line);gap:2px;padding:0 6px;display:flex}.ptab{padding:0 var(--sp-1);font-size:var(--fs-xs);flex:1;justify-content:center}aside .proj-info{margin:6px 0}aside .pane-empty{margin:var(--sp-2) 0;line-height:1.45}aside .lbl{color:var(--muted)}.with-icon{justify-content:center;align-items:center;gap:var(--sp-1);display:inline-flex}.with-icon svg{flex:none;display:block}#selProps{margin:0 0 var(--sp-3);padding:0 0 var(--sp-2);border-bottom:1px solid var(--line)}.sp-head{align-items:center;gap:var(--sp-2);min-height:var(--ctl-sm);margin:0 0 var(--sp-2);display:flex}#selProps h2{min-width:0;font-size:var(--fs-sm);text-transform:none;letter-spacing:0;color:var(--teal);white-space:nowrap;text-overflow:ellipsis;border:none;flex:1;margin:0;padding:0;overflow:hidden}.sp-tools{align-items:center;gap:var(--sp-1);flex:none;display:flex}#selProps .row{flex-wrap:wrap}#selProps .row>label,#selProps .row>.row-label{flex:0 0 64px}#selProps.wide-labels .row>label,#selProps.wide-labels .row>.row-label{flex-basis:100px}#selProps .row input[type=text],#selProps .row select{flex:1 1 0;min-width:0;max-width:none}#selProps .row input[type=number]{flex:0 88px}.sp-value{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sp-stack{color:var(--muted);margin:6px 0 2px;display:block}#selProps textarea{margin:0 0 var(--sp-1)}#selProps .proj-info{margin:var(--sp-1) 0 6px}.row.sp-actions{margin-top:var(--sp-2)}.row{align-items:center;gap:var(--sp-2);margin:6px 0;display:flex}.row label{color:var(--muted);flex:1}.row input[type=number],.row input[type=text]{flex:0 40%;min-width:64px;max-width:160px}.row select{flex:0 auto;min-width:72px;max-width:60%}.row input[type=text].full{flex:100%;max-width:none}.row input[type=range]{flex:0 110px;min-width:0}.row label.fineprint{font-size:var(--fs-xs);line-height:1.35}aside .row label.toggle{min-height:var(--ctl-sm);color:var(--ink)}aside .row-label{color:var(--muted);flex:1}aside .unit{width:16px;color:var(--muted);font-size:var(--fs-xs);flex:none}aside label output{margin-left:var(--sp-1);color:var(--ink);font-variant-numeric:tabular-nums}aside details{margin:6px 0}aside details summary{color:var(--muted);font-size:var(--fs-xs);cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0}aside details[open] summary{margin-bottom:var(--sp-1)}textarea.queue{width:100%;margin:var(--sp-1) 0}.img-list{flex-direction:column;gap:2px;margin:6px 0;padding:0;list-style:none;display:flex}.img-row{border-radius:var(--radius);border:1px solid #0000;align-items:center;gap:2px;padding:1px;display:flex}.img-row.sel{background:var(--teal-soft);border-color:var(--teal)}.img-pick{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.img-row.sel .img-pick{color:var(--teal);font-weight:600}.img-thumb{vertical-align:middle;background:var(--line-soft);border-radius:2px;width:28px;height:21px;margin-right:6px}.img-row.off .img-pick{color:var(--muted);font-style:italic}#zones{margin:var(--sp-2) 0 0;gap:var(--sp-1);flex-direction:column;padding:0;list-style:none;display:flex}#zones li{padding:var(--sp-1);border-radius:var(--radius);border:1px solid #0000}#zones li[data-zone]{border-color:var(--line-soft);cursor:default}#zones li.sel{background:var(--teal-soft);border-color:var(--teal)}:where(#zones li) :where(input,select,button){--ctl-h:var(--ctl-sm);font-size:var(--fs-xs)}#zones .zl{align-items:center;gap:var(--sp-1);display:flex}#zones .zl+.zl{margin-top:var(--sp-1)}#zones .zl input,#zones .zl select{flex:1;min-width:0}#zones li input{padding:0 6px}#zones li select{background-position:right 6px center;padding-left:6px;padding-right:20px}#zones .zl .seg{flex:none}#zones .empty{color:var(--muted);padding:var(--sp-2) 2px;line-height:1.45}#zones li.zone-head{font-size:var(--fs-xs);color:var(--muted);padding:0 2px}#zones li.done input{opacity:.65}.zone-flag{border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);font-size:var(--fs-xs);white-space:nowrap;flex:none;padding:1px 6px;font-weight:600}#zones .unit-flag{margin-top:var(--sp-1)}#secHeaderColour input[type=color]{flex:none}#secHeaderColour .hexbox{text-transform:uppercase;flex:0 0 84px;width:84px;font-family:ui-monospace,Consolas,monospace}#secHeaderColour .hexbox.bad{border-color:var(--danger)}#secHeaderColour input:disabled{opacity:.55;cursor:default}.page-inner{padding:var(--sp-6);max-width:calc(var(--page-max) + 2 * var(--sp-6))}#home>section{max-width:var(--page-max)}#home>#tab-settings{max-width:880px}#page-equipment .page-inner{max-width:1680px}#page-navigation .page-inner{max-width:none}.page-intro{max-width:88ch;margin:0}.page-inner h1,#home h1{font-size:var(--fs-xl);margin:0 0 6px;font-weight:600}.page-inner h2,#home h2{font-size:var(--fs-lg);color:var(--ink);margin:28px 0 var(--sp-2);font-weight:600}.page-inner h3,#home h3{font-size:var(--fs-md);margin:var(--sp-2) 0 var(--sp-1);font-weight:600}.page-inner .home-actions{margin-top:14px}.home-actions{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.list-head{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.list-head h1,.list-head h2,.list-head h3{margin:0}#home .list-head h1{margin:0 var(--sp-3) 0 0}.rows{border:1px solid var(--line-soft);border-radius:var(--radius-card);background:var(--panel);box-shadow:var(--shadow-1);margin:0;padding:0;list-style:none}.rows li{align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--line-soft);padding:10px 14px;display:flex}.rows li:last-child{border-bottom:none}.rows:empty{display:none}.rows .empty{color:var(--muted)}.rows li.building{padding-left:34px}.rows.inner{background:var(--white);box-shadow:none}.rows.inner li{padding:6px 10px}.panel-box{padding:var(--sp-3) 14px;background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-1)}.panel-box .proj-info{margin:0 0 6px}.proj-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.proj-name{text-align:left;min-height:0;font-size:var(--fs-md);color:var(--teal);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:0;padding:0;font-weight:600;overflow:hidden}.proj-name:hover{text-decoration:underline}.proj-name.static{color:var(--ink);cursor:default}.proj-name.static:hover{text-decoration:none}.proj-rename{font-weight:600}.proj-rename.num{width:90px;font-weight:400}.rows li .proj-rename{flex:1;min-width:0}table.list .proj-rename{--ctl-h:var(--ctl-sm)}.proj-acts{flex-shrink:0;gap:6px;display:flex}:where(.proj-acts,table.list td.acts) :where(button){--ctl-h:var(--ctl-sm);font-size:var(--fs-xs)}.del-icon{color:var(--muted)}.del-icon:hover:not(:disabled),.del-icon:focus-visible{color:var(--danger);background-color:var(--danger-soft)}.warn-box{margin-top:var(--sp-2);padding:var(--sp-2) 10px;border:1px solid var(--danger-soft-strong);border-radius:var(--radius);background:var(--danger-soft);color:var(--ink);font-size:var(--fs-sm)}table.list,table.grid{width:100%;margin-top:var(--sp-3);border-collapse:separate;border-spacing:0;background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-1)}table.list th,table.grid th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);font-weight:600}table.list tbody tr:last-child td,table.grid tbody tr:last-child td{border-bottom:none}table.list tbody tr:last-child td:first-child,table.grid tbody tr:last-child td:first-child{border-bottom-left-radius:var(--radius-card)}table.list tbody tr:last-child td:last-child,table.grid tbody tr:last-child td:last-child{border-bottom-right-radius:var(--radius-card)}table.list th{padding:var(--sp-2) var(--sp-3);white-space:nowrap;-webkit-user-select:none;user-select:none}table.list th[data-sort]{cursor:pointer}table.list th[data-sort]:hover{color:var(--ink)}table.list th.asc:after{content:" ▲"}table.list th.desc:after{content:" ▼"}table.list td{padding:7px var(--sp-3);border-bottom:1px solid var(--line-soft);white-space:nowrap;transition:background-color var(--t)}table.list tbody tr:hover td{background-color:var(--ctl-hover)}table.list .num{text-align:right;width:90px}table.list td.acts{width:1%}table.list td.acts button{margin-left:6px}table.list td.empty{color:var(--muted)}table.grid th{padding:var(--sp-2) 10px;white-space:nowrap}table.grid td{padding:var(--sp-1) 6px;border-bottom:1px solid var(--line-soft)}table.grid th.tick,table.grid td.tick{width:28px;padding-left:var(--sp-1);text-align:center;padding-right:0}table.grid th.tick{padding-top:0;padding-bottom:0}table.grid .tick label{width:var(--ctl-sm);height:var(--ctl-sm);cursor:pointer;justify-content:center;align-items:center;display:flex}table.grid td.empty{color:var(--muted);padding:var(--sp-2) 10px}table.grid input:not([type=checkbox]),table.grid select{border-color:var(--line-soft);width:100%}table.grid input:not([type=checkbox]):hover,table.grid select:hover{border-color:var(--hover-line)}table.grid td.num,table.grid input.num{text-align:right}table.grid tr.unset td{background:var(--amber-soft)}table.grid tr.problem td{color:var(--danger)}table.grid .c-name input,table.grid .c-loc input{min-width:150px}table.grid th.c-pick{width:132px}table.grid .c-pick select{min-width:108px}table.grid th.c-kind{width:104px}table.grid .c-kind select{min-width:80px}table.grid th.c-num{text-align:right;width:64px}table.grid th.c-num,table.grid td.c-num{padding-left:var(--sp-1);padding-right:var(--sp-1)}table.grid .c-num input{min-width:56px}table.grid .c-act{width:40px;padding-left:var(--sp-1);padding-right:var(--sp-1);text-align:center}table.grid input[type=number]{appearance:textfield}table.grid input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}table.grid input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.grid-scroll{border:1px solid var(--line-soft);border-radius:var(--radius-card);background:var(--panel);box-shadow:var(--shadow-1);overflow-x:auto}.grid-scroll>table.grid{box-shadow:none;background:0 0;border:none;border-radius:0;margin-top:0}#projSearch{width:240px}.trash{margin-top:20px}#projList tr.proj-row{cursor:pointer}#projList tr.proj-row[data-editing]{cursor:default}.proj-status{padding:1px var(--sp-2);border:1px solid var(--line);color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;border-radius:10px;font-weight:600;display:inline-block}.proj-status.going{background:var(--teal-soft);color:var(--teal);border-color:#0000}.proj-empty{margin-top:var(--sp-3);padding:var(--sp-6) var(--sp-5);border:1px dashed var(--hover-line);border-radius:var(--radius-card);background:var(--panel);text-align:center}#home .proj-empty h2{margin:0 0 var(--sp-1)}.proj-empty .proj-info{max-width:56ch;font-size:var(--fs-sm);margin:0 auto}.proj-empty .home-actions{margin-top:var(--sp-4);justify-content:center}.settings-block{margin-top:var(--sp-2)}.settings-block>.proj-info{margin:0 0 var(--sp-2)}#inviteEmail{flex:0 360px;min-width:0}#inviteUrl{min-width:0;font-size:var(--fs-xs);flex:1}.invite-link{max-width:640px;margin:var(--sp-2) 0;padding:10px var(--sp-3);border:1px solid var(--teal);border-radius:var(--radius-card);background:var(--teal-soft)}#userList{margin-top:var(--sp-3)}.types-cols{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start;display:grid}.type-list li{gap:var(--sp-1);padding:var(--sp-1) var(--sp-1) var(--sp-1) 6px}.type-list .proj-rename{text-overflow:ellipsis;background-color:#0000;border-color:#0000;font-weight:400}.type-list .proj-rename:hover{border-color:var(--line)}.type-list .proj-rename:focus{border-color:var(--line);background-color:var(--white)}.types-cols .type-add{margin-top:var(--sp-2);flex-wrap:nowrap}.types-cols .type-add input{flex:1;min-width:0}.checklist{margin:0;padding:0;list-style:none}.checklist li{align-items:center;gap:0 var(--sp-1);min-height:var(--ctl-sm);font-size:var(--fs-md);flex-wrap:wrap;padding:1px 0;display:flex}.checklist li:before{flex:none;width:22px;font-weight:700}.checklist li.ok:before{content:"✓";color:var(--teal)}.checklist li.missing:before{content:"✗";color:var(--danger)}.checklist li.ok{color:var(--muted)}.checklist li>.proj-info{flex-basis:100%;margin:0;padding-left:22px}.checklist li.warn:before{content:"!";color:var(--amber)}.ov-head{margin-bottom:0}.ov-head h1{overflow-wrap:anywhere;min-width:0}.ov-section{margin-top:var(--sp-5)}.page-inner .ov-section>h2{margin:0 0 var(--sp-2)}.ov-level{min-width:68px;padding:1px var(--sp-2);border-radius:var(--radius);font-size:var(--fs-xs);text-align:center;flex:none;font-weight:600}.ov-item.blocker .ov-level{background:var(--danger-soft);color:var(--danger)}.ov-item.warning .ov-level{background:var(--amber-soft);color:var(--amber)}.ov-items li button{flex:none}.ov-ready{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2);padding:var(--sp-3) 14px;border:1px solid var(--teal);border-radius:var(--radius-card);background:var(--teal-soft);display:flex}.ov-ready>svg{color:var(--teal);flex:none}.ov-ready-head{font-size:var(--fs-lg);font-weight:600}.ov-ready .proj-info{font-size:var(--fs-sm)}.ov-ready button{flex:none}#ovBuildings{margin-top:0}#ovBuildings tr.ov-building{cursor:pointer}#ovBuildings .ov-none{color:var(--muted)}.ov-flag{border-radius:var(--radius);font-size:var(--fs-xs);white-space:nowrap;padding:1px 6px;font-weight:600;display:inline-block}.ov-flag.bad{background:var(--danger-soft);color:var(--danger)}.ov-flag.warn{background:var(--amber-soft);color:var(--amber)}@media (width<=760px){.ov-items li,.ov-ready{flex-wrap:wrap}}.ex-blocks{gap:var(--sp-4);max-width:920px;margin-top:var(--sp-4);flex-direction:column;display:flex}.ex-site{align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.ex-site-name{font-weight:600}.ex-block{padding:var(--sp-4)}.ex-head{align-items:flex-start;gap:var(--sp-4);display:flex}.page-inner .ex-head h2{margin:0}.ex-what{font-weight:600}.ex-block .proj-info{margin:0}.ex-head button{--ctl-h:var(--ctl-lg);flex:none;min-width:230px}.ex-needs{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--line-soft)}.ex-needs li{align-items:flex-start;gap:0 var(--sp-2);font-size:var(--fs-sm)}.ex-needs li:before{line-height:var(--ctl-sm)}.ex-need{flex:1;min-width:0;padding-top:3px}.ex-needs li button{flex:none}.ex-block .msg{margin-top:var(--sp-3);padding:var(--sp-2) 10px;border-radius:var(--radius);background:var(--bg);color:var(--ink);font-size:var(--fs-sm)}.ex-block .msg:empty{background:0 0;margin:0;padding:0}.ex-block .msg.failed{background:var(--danger-soft);color:var(--danger)}@media (width<=760px){.ex-head{gap:var(--sp-2);flex-direction:column}.ex-head button{min-width:0}}.eq-tabs{gap:var(--sp-1);border-bottom:1px solid var(--line);flex-wrap:wrap;margin-top:14px;display:flex}.eq-tabs button{margin-bottom:-1px}.eq-tabs .tab-count{background:var(--panel);color:var(--muted);font-size:var(--fs-xs);border-radius:9px;padding:1px 7px;font-weight:600}.eq-tabs button.active .tab-count{background:var(--teal-soft);color:var(--teal)}.save-state{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;flex:none}.save-state[data-state=saved]:before{content:"✓ ";color:var(--teal);font-weight:700}.save-state[data-state=failed]{color:var(--danger);font-weight:600}.card-error{font-size:var(--fs-sm)}#siteList{margin-top:var(--sp-4)}#siteList:empty{display:none}.site-sec+.site-sec{margin-top:var(--sp-6)}.site-head{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.site-kicker{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.site-name,.bld-name{text-overflow:ellipsis;background-color:#0000;border-color:#0000}.site-name:hover:not(:disabled),.bld-name:hover:not(:disabled){border-color:var(--line)}.site-name:focus,.bld-name:focus{border-color:var(--line);background-color:var(--white)}.site-name{--ctl-h:var(--ctl-lg);min-width:120px;font-size:var(--fs-lg);flex:0 320px}.bld-add{align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);display:flex}.bld-add input{flex:0 280px;min-width:0}.site-none{margin:var(--sp-3) 0 0}.bld-grid{gap:var(--sp-3);margin-top:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(min(400px,100%),1fr));align-items:start;display:grid}.bld-grid:empty{display:none}.bld-card{gap:var(--sp-3);flex-direction:column;min-width:0;display:flex}.bld-card>.card-error:empty{display:none}.bld-card>.card-error{margin:0}.bld-head{align-items:center;gap:var(--sp-2);display:flex}.bld-name{min-width:0;margin-left:calc(var(--sp-2) * -1);font-size:var(--fs-md);flex:1}.bld-row{align-items:flex-start;gap:var(--sp-2);display:flex}.bld-label{width:84px;line-height:var(--ctl);color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;flex:none}.bld-val{flex:1;min-width:0}.bld-line{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.bld-line>input{flex:1;min-width:120px}.bld-card .bld-where,.bld-card .bld-hint{margin:var(--sp-1) 0 0;overflow-wrap:anywhere}.bld-card .bld-none{margin:0}.bld-thumb{aspect-ratio:685/215;object-fit:cover;border:1px solid var(--line);border-radius:var(--radius);background:var(--bar);flex:none;width:150px}.bld-thumb.empty{color:var(--muted);font-size:var(--fs-xs);justify-content:center;align-items:center;display:flex}.bld-asps{min-height:var(--ctl);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.bld-asp{min-height:calc(var(--ctl-sm) + 2px);padding:0 2px 0 var(--sp-2);border:1px solid var(--line);border-radius:var(--radius);background:var(--white);font-size:var(--fs-xs);align-items:center;gap:2px;display:inline-flex}.bld-asp.used{padding-right:var(--sp-2);gap:6px}.bld-asp-used{color:var(--muted)}.bld-asp-add{align-items:center;gap:var(--sp-1);display:flex}.bld-asp-add input{width:120px}.site-add{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--line-soft)}.site-add .home-actions{margin-top:0}.site-add.empty{max-width:560px;margin-top:var(--sp-4);padding:var(--sp-5);border:1px dashed var(--hover-line);border-radius:var(--radius-card);background:var(--panel)}.site-add.empty h3{margin:0 0 var(--sp-1);font-size:var(--fs-lg)}.site-add.empty .home-actions{margin-top:var(--sp-3)}#siteName{flex:1;max-width:320px}#unclaimedSites{margin-top:var(--sp-6)}.eq-head h1{margin-right:var(--sp-1)}#eqCount:empty{display:none}.eq-status{align-items:center;gap:var(--sp-1) var(--sp-2);min-height:var(--ctl);border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);color:var(--muted);font-size:var(--fs-xs);flex-wrap:wrap;padding:1px 10px;display:inline-flex}.eq-status:before{content:"";background:var(--teal);border-radius:50%;flex:none;width:8px;height:8px}.eq-status[data-state=saving]:before{background:var(--muted)}.eq-status[data-state=held]{border-color:var(--amber);color:var(--ink)}.eq-status[data-state=held]:before{background:var(--amber)}.eq-status[data-state=failed]{border-color:var(--danger);background:var(--danger-soft);color:var(--danger);font-weight:600}.eq-status[data-state=failed]:before{background:var(--danger)}.eq-status button{color:var(--ink);font-weight:400}.eq-status[data-state=readonly]{border-color:var(--line);color:var(--ink)}.eq-status[data-state=readonly]:before{background:var(--muted)}.eq-banner{align-items:center;gap:var(--sp-2) var(--sp-3);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.eq-banner>#eqBannerText{flex:320px}.eq-banner-acts{gap:var(--sp-2);flex-wrap:wrap;display:inline-flex}.eq-search{align-items:center;display:inline-flex;position:relative}#eqSearch{width:240px;padding-right:calc(var(--ctl-sm) + var(--sp-1))}#eqSearchClear{position:absolute;top:50%;right:2px;transform:translateY(-50%)}.eq-building{margin-top:var(--sp-4)}.eq-building h2{margin:0}.eq-building>.proj-info{margin:0 0 var(--sp-2)}.eq-asps{align-items:center;gap:var(--sp-1);flex-wrap:wrap;display:flex}.eq-cat{margin-top:var(--sp-4)}.eq-cat h3{font-size:var(--fs-md);margin:0;font-weight:600}.eq-cat .list-head{min-height:var(--ctl-sm);margin-bottom:6px}.eq-cat.no-match .list-head{margin-bottom:0}.eq-cat.no-match h3{color:var(--muted)}.eq-cat-name{font:inherit;color:inherit;border-radius:var(--radius);background:0 0;border:1px solid #0000;min-width:0;max-width:100%;margin-left:-5px;padding:1px 4px}.eq-cat-name:hover:not(:disabled){border-color:var(--line)}.eq-cat-name:focus{border-color:var(--teal);background:var(--panel)}.eq-bulk{align-items:center;gap:var(--sp-2);min-height:calc(var(--ctl-sm) + 2 * var(--sp-2) + 2px);padding:var(--sp-2) 10px;background:var(--teal-soft);border:1px solid var(--teal);border-radius:var(--radius);flex-wrap:wrap;margin-top:10px;display:flex}.eq-bulk.hint{color:var(--muted);font-size:var(--fs-xs);background:0 0;border-color:#0000;padding-left:0;padding-right:0}.eq-building .grid-scroll .tick,.eq-building .grid-scroll .c-name{z-index:1;background-color:var(--panel);position:sticky;left:0}.eq-building .grid-scroll .tick+.c-name{left:28px}.eq-building .grid-scroll .c-name{border-right:1px solid var(--line)}.eq-building .grid-scroll th.tick,.eq-building .grid-scroll th.c-name{z-index:2}.eq-building table.grid .c-name input{min-width:170px}.eq-building tr.needs-name td,.eq-building tr.dup-name td,.eq-building tr.too-long td{background-image:linear-gradient(var(--amber-soft),var(--amber-soft))}.eq-building tr.needs-name .c-name input,.eq-building tr.dup-name .c-name input,.eq-building tr.too-long input[aria-invalid=true]{border-color:var(--amber)}.eq-building input.num[aria-invalid=true]{border-color:var(--danger);color:var(--danger)}.eq-empty{max-width:720px;margin-top:var(--sp-3);padding:var(--sp-4)}.eq-empty h3{margin:0 0 var(--sp-1);font-size:var(--fs-lg)}.eq-empty .proj-info{margin:0 0 var(--sp-3);font-size:var(--fs-sm)}.eq-ways{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.eq-ways li{align-items:center;gap:var(--sp-3);color:var(--muted);font-size:var(--fs-sm);display:flex}.eq-ways button{flex:none;width:190px}.type-editor .type-add{margin-top:var(--sp-2);flex-wrap:nowrap}.type-editor .type-add input{flex:1;min-width:0}.type-dialog{min-width:300px}.type-dialog .type-list{max-height:50vh;overflow:auto}.type-dialog .msg{margin-bottom:var(--sp-2)}.paste-form textarea{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:var(--fs-xs)}.paste-long{margin:0 0 var(--sp-2);padding-left:var(--sp-4);color:var(--danger);font-size:var(--fs-xs)}.vav-bar{align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0;flex-wrap:wrap;display:flex}.vav-bar label{font-size:var(--fs-xs);color:var(--muted)}.vav-preview{max-height:60vh;overflow:auto}.nav-form{gap:var(--sp-3) 20px;margin:var(--sp-2) 0 var(--sp-1);flex-wrap:wrap;display:flex}.nav-field{align-items:center;gap:var(--sp-2);display:flex}.nav-field>span{color:var(--muted);font-size:var(--fs-xs);white-space:nowrap}.nav-field input,.nav-field select{min-width:180px}.nav-field input[type=color]{width:44px;min-width:44px}.nav-field input.hexbox{text-transform:uppercase;width:96px;min-width:96px;font-family:ui-monospace,Consolas,monospace}.nav-field input.hexbox.bad{border-color:var(--danger)}.nav-field input.w60{min-width:0}.req{font-style:normal;font-size:var(--fs-xs);color:var(--danger);white-space:nowrap;flex:none;font-weight:600;display:none}input.needed:placeholder-shown~.req{display:inline}.nav-layout{gap:var(--sp-5);margin-top:var(--sp-4);flex-direction:column;display:flex}.nav-preview-col,.nav-settings{min-width:0}.nav-settings{max-width:560px}.nav-preview-col>.proj-info{margin:var(--sp-2) 0 0}#navPreviewInfo.failed{color:var(--danger)}@media (width>=1200px){.nav-layout{grid-template-columns:420px minmax(0,1fr);align-items:start;display:grid}.nav-settings{grid-area:1/1}.nav-preview-col{top:var(--sp-4);grid-area:1/2;max-width:calc(177.778vh - 337.778px);position:sticky}}.nav-group+.nav-group{margin-top:var(--sp-5)}.nav-group>h2{margin:0 0 var(--sp-2)}.nav-group>.proj-info{margin:var(--sp-2) 0 0}.nav-group>h2+.proj-info{margin:0 0 var(--sp-2)}.nav-settings .nav-form{gap:var(--sp-2);flex-flow:column;margin:0}.nav-settings .nav-field>span:first-child{flex:none;width:96px}.nav-settings .nav-field>input:not([type=color]):not(.hexbox),.nav-settings .nav-field>select{flex:1;min-width:0}.nav-settings #navThemeReset{align-self:flex-start}.nav-settings .nav-form.nav-logo-row{flex-flow:wrap;align-items:center}.nav-logo-row .proj-info{margin:0}.nav-form .nav-help{margin:2px 0 0 calc(96px + var(--sp-2))}.nav-blds li{align-items:flex-start}.nav-bld-head{align-items:baseline;gap:2px var(--sp-2);flex-wrap:wrap;display:flex}.nav-bld-server{font-family:ui-monospace,Consolas,monospace;font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere}.nav-bld-flag{border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);font-size:var(--fs-xs);white-space:nowrap;flex:none;padding:1px 6px;font-weight:600}.nav-blds .warn-box{margin-top:var(--sp-1)}.nav-extra{margin-bottom:var(--sp-1);align-items:center;gap:6px;display:flex}.nav-extra input{flex:1;min-width:0}.nav-extra-wrap.incomplete input{border-color:var(--danger)}.nav-extra-why{margin:0 0 var(--sp-1)}.navthumb{object-fit:cover;border:1px solid var(--line);border-radius:var(--radius);background:var(--bar);flex:none;width:96px;height:54px}.navthumb.empty{color:var(--muted);font-size:var(--fs-xs);justify-content:center;align-items:center;display:flex}.navlogo{border:1px solid var(--line);border-radius:var(--radius);width:160px;height:40px;color:var(--muted);font-size:var(--fs-xs);background-color:var(--white);background-image:linear-gradient(45deg,var(--bar) 25%,transparent 25%),linear-gradient(-45deg,var(--bar) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--bar) 75%),linear-gradient(-45deg,transparent 75%,var(--bar) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;justify-content:center;align-items:center;padding:2px;display:flex}.navlogo img{object-fit:contain;max-width:100%;max-height:100%}.nav-empty{min-height:320px;padding:var(--sp-5);border:1px dashed var(--hover-line);border-radius:var(--radius-card);background:var(--panel);justify-content:center;align-items:center;display:flex}.nav-empty-inner{max-width:460px}.nav-empty h3{margin:0 0 var(--sp-1);font-size:var(--fs-lg)}.nav-empty .proj-info{margin:0}.nav-empty .checklist{margin-top:var(--sp-3)}.nav-empty .checklist li{padding:var(--sp-1) 0}.nav-empty li.missing .need-label{font-weight:600}.nav-tabs{gap:var(--sp-1);flex-wrap:wrap;display:flex}#navPreviewWrap{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--stage);overflow:hidden}#navPreview{cursor:pointer;width:100%;height:auto;display:block}.nav-preview-top{border-bottom:1px solid var(--line);max-width:100%;display:block}.menu,#ctxMenu{min-width:160px;padding:var(--sp-1);background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-2)}.menu{z-index:20;flex-direction:column;display:flex;position:fixed}#ctxMenu{z-index:6;min-width:180px;position:absolute}.menu button,#ctxMenu button{text-align:left;border-radius:calc(var(--radius) - 2px);width:100%;color:var(--ink);background:0 0;border:none;padding:0 10px;display:block}.menu button:hover:not(:disabled),#ctxMenu button:hover:not(:disabled),.menu button:focus-visible,#ctxMenu button:focus-visible{background-color:var(--teal-soft)}.menu button:focus-visible,#ctxMenu button:focus-visible{outline-offset:-2px}#ctxMenu .ctx-sep,.menu .ctx-sep{height:1px;margin:var(--sp-1) 6px;background:var(--line);display:block}.menu button.danger,#ctxMenu button.danger{color:var(--danger)}.menu button.danger:hover:not(:disabled),#ctxMenu button.danger:hover:not(:disabled),.menu button.danger:focus-visible,#ctxMenu button.danger:focus-visible{background-color:var(--danger-soft)}#ctxMenu:focus,#ctxMenu:focus-visible{outline:none}dialog{min-width:320px;max-width:440px;padding:20px var(--sp-5);border:1px solid var(--line-soft);border-radius:var(--radius-card);background:var(--panel);color:var(--ink);font:inherit;box-shadow:var(--shadow-2)}dialog::backdrop{background:var(--stage);opacity:.55}dialog.wide{width:min(96vw,1400px);max-width:min(96vw,1400px)}dialog h3{margin:0 0 var(--sp-3);font-size:var(--fs-lg);font-weight:600}dialog p{margin:0 0 6px}.dlg-row{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;margin:6px 0;display:flex}.dlg-row input,.dlg-row select{flex:0 220px;min-width:80px}.dlg-row input[type=number]{flex-basis:96px}.dlg-row input[type=checkbox],.dlg-row input[type=range]{flex:none;min-width:0}.dlg-row-group{gap:var(--sp-4);flex-wrap:wrap;display:flex}.dlg-actions{justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-4);display:flex}.dlg-note{color:var(--muted);font-size:var(--fs-xs);margin:0 0 var(--sp-2);max-width:46ch}.dlg-actions .dlg-note{flex:1;align-self:center;margin:0}dialog .dlg-actions button.danger{background-color:var(--danger);border-color:var(--danger);color:var(--on-accent);font-weight:600}dialog .dlg-actions button.danger:hover:not(:disabled){background-color:var(--danger-hover);border-color:var(--danger-hover)}dialog .dlg-actions button.danger:active:not(:disabled){background-color:var(--danger-active);border-color:var(--danger-active)}.pdf-thumbs{gap:var(--sp-2);padding:var(--sp-1) 2px var(--sp-2);max-width:70vw;display:flex;overflow-x:auto}.pdf-thumb{border-radius:var(--radius);background:var(--bar);cursor:pointer;border:2px solid #0000;flex:none;padding:0;line-height:0;position:relative}.pdf-thumb.sel{border-color:var(--teal)}.pdf-thumb img,.pdf-thumb .ph{object-fit:contain;background:var(--white);width:120px;height:90px;display:block}.pdf-thumb .ph{color:var(--muted);font-size:var(--fs-xs);justify-content:center;align-items:center;display:flex}.pdf-thumb .n{font-size:var(--fs-xs);color:var(--muted);text-align:center;line-height:1.6;display:block}#multiList{gap:var(--sp-1);flex-direction:column;max-height:44vh;padding:1px;display:flex;overflow:auto}.multi-row{align-items:center;gap:6px;display:flex}.multi-row input{flex:1;min-width:0}.multi-row .rowdel{width:var(--ctl);color:var(--muted);flex:none;padding:0;line-height:1.1}#multiDialog{max-width:380px;position:fixed}#multiDialog::backdrop{opacity:0;background:0 0}#multiGrip{cursor:move;-webkit-user-select:none;user-select:none;margin:-4px -6px var(--sp-2);padding:var(--sp-1) 6px;border-radius:var(--radius)}#multiGrip:hover{background:var(--teal-soft)}#multiFadeRow{margin:0 0 10px}#multiFadeRow input[type=range]{width:120px}#newDialog{min-width:400px}#newDialog .dlg-row{white-space:nowrap}#newDialog .dlg-row input{flex-basis:220px}#textDialog{width:90vw;max-width:520px}#previewWrap{background:var(--stage);border:1px solid var(--line);border-radius:var(--radius);max-height:70vh;overflow:auto}#previewWrap canvas{max-width:100%;height:auto;display:block}.errlist{margin:6px 0 10px;padding-left:18px}.checks{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);max-height:min(50vh,360px);margin-top:var(--sp-2);overflow:auto}.checks .check{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--line-soft);cursor:pointer;display:flex}.checks .check:last-child{border-bottom:none}.checks .check span:first-of-type{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}dialog:has(.keys){width:min(94vw,860px);max-width:none}.keys{columns:2 320px;column-gap:var(--sp-5)}.keys-group{break-inside:avoid;margin:0 0 var(--sp-3)}.keys-group h4{margin:0 0 var(--sp-1);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.keys ul{margin:0;padding:0;list-style:none}.keys li{gap:var(--sp-2);font-size:var(--fs-sm);grid-template-columns:164px minmax(0,1fr);align-items:baseline;padding:2px 0;display:grid}.keys .combo{align-items:baseline;gap:var(--sp-1);flex-wrap:wrap;display:flex}.keys .combo span{color:var(--muted);font-size:var(--fs-xs)}.keys kbd{white-space:nowrap;background:var(--white);border:1px solid var(--line);border-radius:calc(var(--radius) - 2px);padding:1px 5px}#composeDialog{width:94vw;max-width:940px}#cmpCanvas{border-radius:var(--radius);cursor:move;touch-action:none;width:100%;height:auto;margin:10px 0 6px;display:block}.cmp-list{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);max-height:160px;margin:6px 0;padding:0;list-style:none;overflow:auto}.cmp-list:empty{display:none}.cmp-list li{padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--line-soft);cursor:pointer;align-items:center;gap:6px;display:flex}.cmp-list li:last-child{border-bottom:none}.cmp-list li.sel{background:var(--teal-soft)}.cmp-list .cmp-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}
