:root{--ink:#18243a;--blue:#3869e8;--blue2:#eaf0ff;--line:#e5eaf1;--muted:#7e8a9d;--bg:#f3f6fa;--dark:#27354d}*{box-sizing:border-box}body{margin:0;font:13px Alexandria,Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select{font:inherit}.app{height:100vh;display:grid;grid-template:64px 1fr/250px minmax(0,1fr) 300px}header{grid-column:1/4;background:#fff;display:flex;align-items:center;padding:0 20px;gap:24px;border-bottom:1px solid var(--line);z-index:4}.logo{font-size:21px;font-weight:800;direction:ltr}.logo b{background:var(--blue);color:#fff;border-radius:9px;padding:3px 7px;margin-right:5px}.logo small{color:#8793a6;font-size:10px;letter-spacing:1px}.project-title{border-right:1px solid var(--line);padding-right:22px;display:grid;gap:4px}.project-title i{font-size:10px;color:#54aa7c;font-style:normal}.header-actions{margin-right:auto;display:flex;gap:8px}.primary,.outline,.ghost{border:0;border-radius:8px;cursor:pointer;padding:9px 13px;background:transparent;color:#5d6c81}.primary{color:white;background:var(--blue);font-weight:700;box-shadow:0 3px 10px #3869e83b}.outline{border:1px solid #cfd8e8;background:#fff}.leftbar,.rightbar{background:#fff;min-height:0}.leftbar{padding:17px 12px;border-left:1px solid var(--line);display:flex;flex-direction:column}.side-head,.panel-title{display:flex;align-items:center;justify-content:space-between}.side-head{padding:0 7px 12px}.projects{display:grid;gap:5px;overflow:auto}.project{padding:11px 9px;border:0;border-radius:8px;background:transparent;text-align:right;color:#506076;cursor:pointer}.project.active{background:var(--blue2);color:var(--blue);font-weight:700}.project small{display:block;color:#94a0b1;font-size:10px;margin-top:4px}.upload{margin:18px 7px 7px;border:1px dashed #9eb6f3;color:var(--blue);padding:12px 8px;border-radius:8px;text-align:center;cursor:pointer;font-size:11px}.upload input{display:none}.hint{font-size:10px;color:#8793a4;line-height:1.8;margin:7px}.side-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:10px;display:grid}.side-foot button{border:0;background:transparent;text-align:right;padding:8px;color:#728096;cursor:pointer}.main{display:flex;min-width:0;flex-direction:column}.toolbar{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 15px}.toolset{display:flex;align-items:center;gap:3px;direction:ltr}.toolset button{position:relative;min-width:31px;height:33px;border:0;border-radius:6px;background:transparent;color:#536177;cursor:pointer;font-size:18px}.toolset button.active{color:var(--blue);background:var(--blue2)}.toolset small{display:block;font-size:7px;line-height:1;direction:rtl}.toolset #snap{font-size:10px;padding:0 7px}.divider{height:27px;width:1px;background:var(--line)}.zoom{display:flex;align-items:center;gap:5px;margin-right:auto;direction:ltr}.zoom button{border:1px solid var(--line);background:white;width:29px;height:29px;border-radius:6px;cursor:pointer}.zoom b{font-size:10px;width:43px;text-align:center}.board{position:relative;flex:1;overflow:hidden;display:grid;place-items:center;padding:40px;background-color:#edf1f6;background-image:radial-gradient(#cbd3df 1px,transparent 1px);background-size:18px 18px}.sheet{position:relative;width:min(920px,75vw);aspect-ratio:1.414;background:white;box-shadow:0 16px 35px #2233522b;transform-origin:center;transition:transform .15s;overflow:hidden}.sheet iframe{position:absolute;width:100%;height:100%;border:0;display:none}.sheet.has-pdf iframe{display:block}.empty-plan{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:8px;color:#647287;background:linear-gradient(135deg,#fff,#fbfcfe)}.empty-plan span{font-size:46px;color:#9fb7f0}.empty-plan small{font-size:11px;color:#9aa6b5}.sheet.has-pdf .empty-plan{display:none}svg{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}.cad-line{stroke:#1c2a40;stroke-width:3;vector-effect:non-scaling-stroke}.cad-light{fill:#fff;stroke:#3869e8;stroke-width:3;vector-effect:non-scaling-stroke;cursor:move}.cad-light.selected,.cad-line.selected{stroke:#e55a68;stroke-width:4}.status{position:absolute;bottom:14px;right:20px;left:20px;display:flex;justify-content:space-between;color:#748399;font:10px monospace;pointer-events:none}.rightbar{border-right:1px solid var(--line);display:flex;flex-direction:column}.tabs{height:58px;border-bottom:1px solid var(--line);display:flex;gap:22px;padding:0 15px}.tabs button{border:0;background:transparent;color:#8390a1;cursor:pointer;position:relative}.tabs button.active{color:var(--blue);font-weight:700}.tabs button.active:after{content:"";height:2px;position:absolute;bottom:0;right:0;left:0;background:var(--blue)}.panel{display:none;padding:16px}.panel.active{display:block}.panel-title b{font-size:12px}.panel-title button{border:0;background:transparent;color:var(--blue);cursor:pointer}.layer{height:38px;display:flex;align-items:center;gap:7px;border-radius:7px;padding:0 7px;color:#627188;cursor:pointer}.layer.active{background:var(--blue2);color:var(--blue);font-weight:700}.layer button{border:0;background:none;cursor:pointer;color:inherit}.layer .dot{width:9px;height:9px;border-radius:50%;background:var(--c)}.layer em{font-size:10px;font-style:normal;margin-right:auto;color:#98a4b5}.unit-card{display:flex;gap:8px;background:#f7f9fc;margin-top:16px;padding:10px;border-radius:8px;align-items:center}.unit-card span{font-size:20px;color:var(--blue)}.unit-card small{display:block;font-size:9px;color:#8a96a7;margin-top:4px}.unit-card select{margin-right:auto;max-width:72px;border:0;background:transparent;color:var(--blue);font-size:10px}.properties{line-height:1.9;color:#637188}.properties.empty{text-align:center;padding:25px 10px;color:#9aa6b7}.properties label{display:block;margin:8px 0;font-size:11px}.properties input,.properties select{width:100%;border:1px solid var(--line);padding:7px;border-radius:6px;margin-top:4px}.lighting{border-top:1px solid var(--line);margin-top:auto;padding:15px}.light-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px}.light-tools button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 3px;color:#65748a;font-size:9px;cursor:pointer}.light-tools button.active{border-color:#8dabfa;background:var(--blue2);color:var(--blue)}.light-tools span{display:block;font-size:17px;margin-bottom:4px}.lighting p{font-size:9px;color:#94a0af;line-height:1.7;margin:11px 0 0}dialog{border:0;border-radius:12px;padding:0;box-shadow:0 20px 50px #12203c45;min-width:320px}dialog::backdrop{background:#14203977}dialog form{padding:22px;position:relative}dialog h2{margin:0 0 16px;font-size:17px}dialog p{color:#6c7a8e;font-size:11px;line-height:1.7}dialog label{display:block;font-size:11px;margin:10px 0}dialog input{display:block;width:100%;border:1px solid var(--line);border-radius:6px;padding:9px;margin-top:5px}dialog menu{display:flex;justify-content:flex-end;gap:7px;margin:17px 0 0;padding:0}dialog menu button{border:0;border-radius:7px;padding:9px 13px;cursor:pointer}.close{position:absolute;left:10px;top:7px;border:0;background:none;font-size:24px;cursor:pointer}#toast{position:fixed;bottom:22px;right:50%;translate:50% 100px;background:#1d2b42;color:white;padding:11px 16px;border-radius:8px;font-size:11px;transition:.25s;z-index:10}#toast.show{translate:50% 0}.mobile{display:none}
@media(max-width:900px){.app{grid-template:58px 1fr/0 minmax(0,1fr) 245px}header{grid-column:1/4;padding:0 12px;gap:10px}.leftbar{position:fixed;z-index:6;top:58px;right:0;bottom:0;width:260px;translate:100% 0;transition:.2s;box-shadow:-8px 0 20px #17233b20}.leftbar.open{translate:0}.mobile{display:block}.project-title{font-size:11px;padding-right:8px}.header-actions .ghost{display:none}.toolbar{padding:0 7px;gap:5px}.toolset button{min-width:28px}.toolset small{display:none}.divider{display:none}.rightbar{width:245px}.sheet{width:82vw}.board{padding:25px}.status{font-size:8px}.lighting{padding:11px}.light-tools{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.app{grid-template:58px 1fr/1fr}.rightbar{display:none}header{grid-column:1}.logo{font-size:17px}.project-title{margin-right:auto}.project-title i{display:none}.header-actions{margin:0}.header-actions .outline{display:none}.header-actions .primary{font-size:10px;padding:8px}.toolbar{overflow:auto}.sheet{width:115vw;max-width:none}.board{padding:16px}.status{left:10px;right:10px}.status span:last-child{display:none}}

/* Lighting CAD 2.0 */
.ribbon-block{display:flex;align-items:center;gap:8px}.ribbon-block>label{font-size:9px;color:var(--muted);writing-mode:vertical-rl;border-left:1px solid var(--line);padding-left:4px}.analysis-card{margin:14px 7px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#f7f9fc;display:grid;gap:7px}.analysis-card span{font-size:11px;color:var(--muted)}.analysis-card progress{width:100%;height:6px;accent-color:var(--blue)}.analysis-card small{font-size:9px;color:var(--muted);line-height:1.7}.sheet{width:1000px!important;height:700px!important;aspect-ratio:auto;transform-origin:center center}.sheet canvas,.sheet svg{position:absolute;inset:0;width:100%;height:100%}#pdfCanvas{z-index:0;opacity:.26}#drawing{z-index:2;touch-action:none}.cad-object{cursor:pointer;vector-effect:non-scaling-stroke}.cad-object:hover{filter:drop-shadow(0 0 2px #159fe8)}.cad-object.selected{filter:drop-shadow(0 0 4px #ff9500)}.cad-object.selected:not(g){stroke:#ff9500!important;stroke-width:3!important}.preview{stroke:#18a9e6;stroke-width:2;stroke-dasharray:7 5;fill:#178bd118;vector-effect:non-scaling-stroke}.calculator{margin:14px -16px -16px;padding:13px;border-top:1px solid var(--line);background:linear-gradient(135deg,#edf8ff,#fff)}.calculator h3{margin:0 0 10px;font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.form-grid label{font-size:9px;color:var(--muted)}.form-grid input{width:100%;margin-top:4px;border:1px solid var(--line);border-radius:6px;padding:7px;background:white;color:var(--ink)}.calc-result{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:10px 0}.calc-result span{background:white;border:1px solid var(--line);border-radius:7px;padding:7px 3px;text-align:center;font-size:8px;color:var(--muted)}.calc-result b{display:block;color:var(--blue);font-size:11px;margin-top:3px}.wide{width:100%;padding:10px}.calculator>small{display:block;color:var(--muted);font-size:8px;margin-top:7px;text-align:center}.danger-btn{width:100%;padding:9px;border:1px solid #ef7777;background:#fff;color:#cf3535;border-radius:7px;margin-top:7px}.properties h3{margin-top:0}.status{gap:20px}.status #objectCount{margin-inline:auto}.empty-plan{z-index:3}.empty-plan button{margin:10px auto 0}.panel{overflow:auto}.rightbar{overflow:hidden}.tabs{flex:0 0 58px}.toolbar{height:auto;min-height:64px}.lighting{border:0;margin:0;padding:0}
@media(max-width:900px){.ribbon-block>label{display:none}.form-grid{grid-template-columns:repeat(2,1fr)}.sheet{transform-origin:top left}.header-actions .outline{display:none}}
@media(max-width:620px){.rightbar{display:flex;position:fixed;bottom:0;right:0;left:0;width:auto;height:45vh;z-index:5;border-top:1px solid var(--line)}.main{padding-bottom:45vh}.tabs{height:43px;flex-basis:43px}.panel{padding:10px}.calculator{margin:8px -10px -10px}.sheet{width:1000px!important}.toolbar{min-height:54px}.header-actions .primary{display:none}}

/* Professional workspace and responsive corrections */
.toolbar{overflow-x:auto;overflow-y:hidden;flex:0 0 78px;scrollbar-width:thin;scrollbar-color:#b9c7d8 transparent}.toolbar::-webkit-scrollbar{height:5px}.toolbar::-webkit-scrollbar-thumb{background:#b9c7d8;border-radius:5px}.ribbon-block{height:62px;flex:0 0 auto;border-left:1px solid var(--line);padding-left:8px}.toolset button{min-width:42px;height:48px;padding:3px 5px}.toolset button:hover{background:#f0f5ff;color:var(--blue)}.modify-tools button{min-width:44px}.zoom{position:sticky;left:0;background:#fff;padding:5px 3px;z-index:2}.file-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 7px}.file-actions button{border:1px solid var(--line);background:#fff;color:#596a80;border-radius:7px;padding:8px 3px;font-size:9px;cursor:pointer}.file-actions button:hover{border-color:#8eabed;color:var(--blue)}.board{min-height:0}.rightbar .panel{min-height:0;overscroll-behavior:contain}.cad-object{stroke-linecap:round;stroke-linejoin:round}.status{background:#ffffffd9;border:1px solid #dce3ec;border-radius:7px;padding:6px 10px;bottom:8px;backdrop-filter:blur(5px)}
@media(max-width:1180px){.app{grid-template:64px 1fr/220px minmax(0,1fr) 280px}.toolbar{flex-basis:72px}.toolset button{min-width:39px}.sheet{transform-origin:center center}}
@media(max-width:900px){.app{grid-template:58px 1fr/0 minmax(0,1fr) 270px}.toolbar{flex-basis:66px}.ribbon-block{height:56px}.toolset button{height:44px;min-width:38px}.rightbar{width:270px}.sheet{transform-origin:center center}.board{padding:18px}}
@media(max-width:620px){.rightbar{height:38vh}.main{padding-bottom:38vh}.toolbar{flex-basis:60px}.ribbon-block{height:50px}.toolset button{height:40px;min-width:40px}.toolset small{display:block}.board{padding:8px}.status{bottom:4px;right:6px;left:6px}.sheet{transform-origin:center top}}
.empty-plan{pointer-events:none}.empty-plan button{pointer-events:auto}.cad-object{pointer-events:all}
@media(min-width:901px){.toolbar{flex-wrap:wrap;align-content:flex-start;overflow-x:hidden;overflow-y:auto;flex-basis:132px;padding-block:2px}.ribbon-block{height:61px}.zoom{height:58px;position:static}}
@media(max-width:620px){html,body{width:100%;height:100%;overflow:hidden}.app{width:100vw;height:100dvh;display:grid;grid-template:54px minmax(0,1fr) 290px/1fr}.app header{grid-column:1;grid-row:1;height:54px;padding:0 8px}.logo{font-size:15px;white-space:nowrap}.project-title{display:none}.header-actions{margin-right:auto}.header-actions button{padding:7px}.main{grid-column:1;grid-row:2;min-height:0;padding:0;overflow:hidden}.toolbar{flex:0 0 57px;min-height:57px;max-width:100vw;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap}.ribbon-block{height:49px}.toolset button{height:40px;min-width:42px}.zoom{position:static;height:45px}.board{min-height:0;padding:4px;place-items:center;overflow:hidden}.sheet{width:100%!important;height:auto!important;aspect-ratio:10/7;transform:none!important;transform-origin:center}.rightbar{grid-column:1;grid-row:3;position:static;display:flex;width:100%;height:290px;max-height:290px;border-top:1px solid var(--line);overflow:hidden}.rightbar .tabs{flex:0 0 42px;height:42px}.rightbar .panel{flex:1;min-height:0;overflow-y:auto}.calculator{padding-bottom:18px}.leftbar{top:54px;z-index:20}.status{font-size:7px;padding:4px}.status #objectCount{display:none}}
#grips{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible}.grip{pointer-events:all;cursor:grab;fill:#fff;stroke:#087fc4;stroke-width:2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px #00334d66)}.grip:hover{fill:#16a9ef;stroke:#fff}.grip.edge{fill:#fff7d6;stroke:#f09b16}.grip.move{fill:#087fc4;stroke:#fff;cursor:move}.selection-outline{pointer-events:none;fill:none;stroke:#159ddd;stroke-width:1.5;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}
.geometry-editor{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.geometry-editor>div{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.geometry-editor label{margin:0;font-size:9px;color:var(--muted)}.geometry-editor input{padding:6px}.geometry-editor small{display:block;margin-top:8px;font-size:9px;line-height:1.7;color:#718096}
#reAnalyzeBtn{border:1px solid #91acef;background:#edf3ff;color:#285ac8;border-radius:7px;padding:8px;font-size:10px;cursor:pointer}#reAnalyzeBtn:hover{background:#dfe9ff}#reAnalyzeBtn:disabled{opacity:.6;cursor:wait}

/* Editing hardening: invisible wide hit area keeps thin CAD lines easy to pick without changing UI. */
.cad-hit{opacity:.001!important;filter:none!important;cursor:pointer!important;pointer-events:all!important}
.cad-hit *{pointer-events:stroke!important}

/* v3 selection feedback — no layout/UI redesign */
.cad-hit{pointer-events:none!important;visibility:hidden!important}
.cad-object.hover-target:not(.selected){filter:drop-shadow(0 0 4px #159fe8)!important;stroke:#159fe8!important}
#drawing.select-mode{cursor:default}

/* V4 interaction safety/performance */
#pdfCanvas{pointer-events:none!important}
#grips{pointer-events:none!important}
#grips .grip{pointer-events:all!important}
.gray-path-hit{opacity:.001!important;filter:none!important;cursor:move!important}
.toolbar,.rightbar,.leftbar,header{isolation:isolate}
