/* Aetec factory workspace. */
:root{font-family:Arial,Helvetica,sans-serif;font-size:16px;color:#eee;background:#171717;--red:#b8282d;--muted:#aaa;--line:#3b3b3b;--panel:#1d1d1d}
*{box-sizing:border-box}body{margin:0;height:100dvh;overflow:hidden}[hidden]{display:none!important}
button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button,a{touch-action:manipulation}
button{border:1px solid #484848;border-radius:4px;background:#2b2b2b;color:#eee;padding:9px 12px;cursor:pointer}button:hover{background:#3c3c3c}a{color:#ddd;text-decoration:none}a:hover{text-decoration:underline}.quiet{background:transparent}
header{height:78px;display:flex;align-items:center;gap:22px;padding:10px 23px;background:#171717;border-bottom:2px solid var(--red)}
.brand{display:flex;align-items:center;gap:11px;font-size:25px;font-weight:800;letter-spacing:1px;line-height:1;color:#e7464b;flex-shrink:0}.brand img{width:52px;height:52px;object-fit:contain}.brand span{display:block;font-size:12px;letter-spacing:1.5px;font-weight:500;color:#eee;margin-top:8px}
.project{flex:1;border-left:1px solid #444;padding-left:22px}.project strong{display:block;font-size:16px}.project span{display:block;font-size:13px;color:var(--muted);margin-top:5px}
header button,.download{font-size:14px;white-space:nowrap}.download{display:inline-block;border:1px solid #d04449;border-radius:4px;background:#a82429;color:#fff;padding:11px 14px;font-weight:500}.download:hover{background:#c12c32;text-decoration:none}
main{height:calc(100dvh - 78px);display:flex;min-height:0}aside{width:290px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--line);padding:24px 20px;overflow-y:auto;scrollbar-width:thin}
.asideTitle{display:flex;justify-content:space-between;font-size:12px;letter-spacing:1.4px;color:#ccc}.asideTitle span{color:#888}
.field{display:block;font-size:14px;color:#ccc;margin:20px 0}.field select{display:block;width:100%;background:#141414;color:#eee;border:1px solid #454545;border-radius:4px;padding:10px 8px;margin-top:9px;font-size:14px;min-height:42px}
.layers{border-block:1px solid var(--line);padding:10px 0}.switch{display:flex;gap:10px;align-items:center;cursor:pointer;font-size:14px;min-height:36px;color:#ccc}.switch input{accent-color:var(--red);width:16px;height:16px;flex-shrink:0}.subheading{font-size:12px;letter-spacing:1.5px;color:#999;margin-top:24px}
input[type=range]{accent-color:var(--red);width:100%;display:block;margin:12px 0 0;cursor:pointer}output{float:right;font-size:13px;color:#eee}
.exportCard{border:1px solid #484848;border-top:2px solid var(--red);border-radius:4px;background:#242424;padding:15px;margin-top:24px}.exportCard h2{font-size:16px;font-weight:600;margin:0 0 10px}.exportCard p{font-size:13px;line-height:1.6;color:#bbb;margin:0 0 15px}.exportCard .download{display:block;text-align:center;padding:10px 7px;font-size:13px}.exportCard small{display:block;font-size:12px;color:#aaa;margin:9px 0 13px}.secondaryLink{font-size:13px}
.asideFooter{border-top:1px solid var(--line);padding-top:18px;margin-top:25px;color:#aaa;font-size:12px;line-height:1.9}.asideFooter>span:last-child{color:#888}.sourceDot,.liveDot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--red);margin-right:6px}
.workspace{min-width:0;flex:1;height:100%;display:flex;flex-direction:column;overflow:hidden}.viewbar{height:59px;min-height:59px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 20px;background:#232323;border-bottom:1px solid var(--line)}.viewbar strong{font-size:14px}.viewbar small{display:block;font-size:12px;color:#aaa;margin:6px 0 0 13px}.viewActions{display:flex;gap:6px}.viewActions button{font-size:13px;min-height:35px;background:#303030;padding:7px 10px}.viewActions button.active{border-color:#d7474c;background:#6f292e;color:white}
#canvasHost{position:relative;flex:1;min-height:220px;background:radial-gradient(ellipse at 55% 40%,#505050,#252525);overflow:hidden}canvas{display:block;touch-action:none;width:100%;height:100%}#loading{position:absolute;left:0;right:0;top:48%;text-align:center;color:#ccc;font-size:14px}
#roomLabels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.roomTag{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font-size:12px;background:#1b1b1bef;border:1px solid #7778;border-radius:3px;padding:5px 7px;color:#eee;box-shadow:0 2px 8px #0003}.roomTag small{display:block;font-size:12px;color:#aaa;margin-top:3px}
.compass{position:absolute;left:20px;bottom:20px;font-size:12px;color:#aaa;line-height:1.8;pointer-events:none}.compass span{color:#777;padding-left:8px}.watermark{position:absolute;right:22px;bottom:22px;font-size:22px;font-weight:800;font-style:italic;line-height:1;color:#d2d2d280;pointer-events:none}.watermark img{display:block;width:44px;height:44px;margin:0 0 7px auto;opacity:.5}.watermark span{display:block;font-size:12px;font-style:normal;font-weight:400;color:#999;margin-top:6px}
.statusbar{display:flex;justify-content:space-between;gap:16px;min-height:33px;padding:9px 20px;border-top:1px solid var(--line);background:#171717;color:#aaa;font-size:12px;flex-shrink:0}.statusbar span:last-child{text-align:right;color:#ccc;max-width:55%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.dataStrip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:#242424;padding:19px 0;flex-shrink:0}.dataStrip div{padding:0 21px;border-right:1px solid #444}.dataStrip div:last-child{border:0}.dataStrip strong{font-size:23px;font-weight:500;color:#eee;letter-spacing:-.3px}.dataStrip small{font-size:13px;color:#aaa}.dataStrip span{display:block;font-size:12px;color:#aaa;line-height:1.5;margin-top:6px}
dialog{max-width:780px;width:calc(100% - 32px);max-height:90dvh;background:#242424;border:1px solid #5a5a5a;border-radius:7px;color:#e5e5e5;padding:25px;font-size:15px;line-height:1.6}dialog::backdrop{background:#000b}.dialogHead{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialogHead h2{margin:0;font-size:22px}.dialogHead button{font-size:24px;line-height:1;padding:5px 10px}.hint{font-size:13px;line-height:1.6;color:#aaa}table{width:100%;border-collapse:collapse;font-size:14px;margin:22px 0}td,th{text-align:left;vertical-align:top;border-bottom:1px solid #444;padding:10px}td:first-child{width:25%;color:#ccc}th{background:#333}.dialogLinks{display:flex;flex-wrap:wrap;gap:14px;font-size:14px}
#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#a82b30;color:#fff;padding:12px 22px;border-radius:5px;font-size:14px;z-index:20;display:none;max-width:90vw}#fallback{position:absolute;inset:0;text-align:center;background:#222}#fallback img{width:100%;height:82%;object-fit:contain}#fallback p{font-size:14px;color:#ccc;padding:0 24px}body.measure canvas{cursor:crosshair}
@media(min-width:1600px){aside{width:315px}.dataStrip{padding:23px 0}}
@media(max-width:1100px){header{gap:15px;padding-inline:16px}.project{padding-left:15px}.project strong{font-size:14px}.project span{font-size:12px}aside{width:265px;padding:22px 16px}.dataStrip div{padding:0 14px}.dataStrip strong{font-size:21px}.statusbar{flex-direction:column;gap:5px}.statusbar span:last-child{max-width:100%;text-align:left}}
@media(max-width:900px){.project{display:none}header .quiet{margin-left:auto}.viewbar{padding-inline:12px}.viewActions{gap:4px}.viewActions button{padding:7px;font-size:12px}.dataStrip{grid-template-columns:repeat(2,1fr);gap:14px;padding:15px 0}.dataStrip div:nth-child(2){border:0}.dataStrip strong{font-size:20px}}
@media(max-width:700px){body{height:auto;overflow:auto}header{height:auto;min-height:76px;flex-wrap:wrap;gap:10px;padding:11px 14px}.brand{font-size:22px;flex:1}.brand img{width:44px;height:44px}.brand span{font-size:11px;letter-spacing:1.2px}.project{display:none}header .quiet{font-size:12px;padding:8px}header .download{font-size:13px;flex-basis:100%;text-align:center;padding:10px}main{height:auto;flex-direction:column}.workspace{height:auto;order:0;overflow:visible}aside{width:100%;order:1;border-right:0;border-top:1px solid var(--line);padding:24px 20px}.viewbar{height:60px;min-height:60px}.viewbar small{font-size:12px}.viewActions button{padding:7px 6px}#canvasHost{height:57dvh;min-height:350px;flex:none}.compass{display:none}.watermark{right:14px;bottom:18px;font-size:20px}.watermark img{width:38px;height:38px}.statusbar{padding:9px 14px;font-size:12px}.dataStrip{padding:16px 0;gap:15px}.dataStrip div{padding:0 18px}.dataStrip span{font-size:12px}.field{margin:20px 0}.switch{min-height:39px}.exportCard .download{font-size:14px;padding:12px}.exportCard p{font-size:14px}table{font-size:13px}td,th{padding:8px 5px}}
