:root{--ink:#142330;--muted:#657582;--amber:#ecaa34;--line:#dde4e8;--teal:#218c8a}*{box-sizing:border-box}body{margin:0;background:#f1f4f5;color:var(--ink);font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);border-radius:7px;padding:9px 13px;font-weight:600}button:hover{border-color:#92a4b1;background:#f5f8f9}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #ecaa3490;outline-offset:2px}header{height:84px;background:var(--ink);color:white;display:flex;align-items:center;gap:24px;padding:0 4vw}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;font-size:23px;font-weight:850;letter-spacing:1px}.brand small{display:block;font-size:8px;letter-spacing:2px;color:#b9c7d0;margin-top:-3px}.brand-icon{font-size:27px;color:var(--amber);border:1px solid #526371;border-radius:7px;width:41px;height:41px;text-align:center}.amber{color:var(--amber)}.version{font-size:10px;color:#b8c4cb;border:1px solid #526371;padding:4px 9px;border-radius:4px;letter-spacing:1px}.header-actions{margin-left:auto;display:flex;gap:9px}.header-actions button{background:transparent;color:white;border-color:#53636e}.header-actions .primary{background:var(--amber);color:var(--ink);border-color:var(--amber)}main{max-width:1500px;margin:auto;padding:35px 4vw 0}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:750;color:#71808b;margin:0 0 7px}h1{font-size:32px;line-height:1.2;letter-spacing:-1px;margin:0 0 10px}.subtitle{margin:0;color:var(--muted)}.mode{display:flex;border:1px solid var(--line);background:#e8edef;border-radius:9px;padding:4px}.mode button{background:transparent;border-color:transparent;font-size:12px}.mode .active{background:var(--ink);color:white;border-color:var(--ink)}.workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:22px}.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:20px;margin-bottom:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}h2{font-size:15px;letter-spacing:-.2px;margin:0}.tag{font-size:8px;font-weight:750;color:#748491;background:#f0f3f5;padding:4px 6px;border-radius:4px}.muted{color:var(--muted);font-size:11px;margin:7px 0 15px}.control{margin-top:19px}.control-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.control label{font-size:12px;font-weight:650}.control-value{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px}.control input[type=number]{width:69px;background:#f6f8f9;text-align:right;font-weight:700;padding:5px;border:1px solid var(--line);border-radius:4px;color:var(--ink)}input[type=range]{width:100%;accent-color:var(--amber);cursor:pointer;height:5px}.range-ends{display:flex;justify-content:space-between;font-size:9px;color:#8a98a2;margin-top:5px}.tip{font-size:11px;color:#6b7982;line-height:1.6;border-top:1px solid var(--line);padding-top:15px;margin-top:20px}.presets{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}.presets button{font-size:11px;padding:7px 10px}.text-button{border:0;background:transparent;color:var(--muted);font-size:11px;padding:0}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:15px}.metrics>div{background:white;border:1px solid var(--line);border-radius:9px;padding:14px 19px}.metrics small{font-size:9px;color:var(--muted);letter-spacing:1px;display:block;margin-bottom:3px}.metrics strong{font-size:25px;letter-spacing:-.5px}.metrics strong span{font-size:13px;font-weight:400;color:var(--muted)}.drawing{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fafcfd}.drawing-toolbar{display:flex;justify-content:space-between;padding:14px 19px;border-bottom:1px solid var(--line);font-size:11px;font-weight:600}.drawing-toolbar label{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:5px}.dot{display:inline-block;background:var(--teal);width:6px;height:6px;border-radius:50%;margin-right:5px}svg{display:block;width:100%;max-height:530px;touch-action:pan-y}.drawing-footer{display:flex;gap:17px;align-items:center;padding:13px 19px;background:white;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.legend{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:2px}.amber-bg{background:var(--amber)}.teal-bg{background:var(--teal)}.grey-bg{background:#99a8b2}#scaleLabel{margin-left:auto}.notice{font-size:11px;padding:10px 14px;background:#e7f1f1;color:#316c6c;border:1px solid #cce1e1;border-radius:6px;margin:13px 0}.notice.alert{background:#fff0e3;border-color:#f1d0ac;color:#8a4e21}.obstacle-panel{margin-bottom:0}.obstacle-panel button{font-size:11px}.obstacle-row{display:grid;grid-template-columns:1.4fr repeat(3,1fr) 32px;gap:10px;padding:12px 0;border-top:1px solid var(--line)}label{display:block;font-size:11px;font-weight:600;color:var(--muted)}input:not([type=range]):not([type=checkbox]),textarea{width:100%;border:1px solid var(--line);border-radius:5px;background:#f9fbfc;padding:9px;color:var(--ink);margin-top:4px}textarea{resize:vertical}.obstacle-row button{align-self:end;padding:9px 0;font-weight:400}.empty{font-size:12px;color:var(--muted);padding:8px 0}.study{margin-top:22px}.study-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:20px 0}.study .panel-heading button{font-size:11px}.load-line{padding:12px 0;border-top:1px solid var(--line);font-size:12px;display:flex;gap:18px;align-items:center}.load-line strong{color:var(--teal);font-size:17px}.load-line span{margin-left:auto;color:var(--muted);font-size:11px}.notes-label{margin-top:9px}.boundary{display:flex;align-items:flex-start;gap:14px;color:#6b7c86;padding:0 5px 20px;font-size:11px}.boundary strong{color:#536771;font-size:12px}.boundary p{margin:4px 0 0;max-width:1100px}.boundary-icon{border:1px solid #94a6b0;width:19px;height:19px;border-radius:50%;text-align:center;flex-shrink:0}footer{padding:18px 0 25px;border-top:1px solid var(--line);font-size:10px;color:#788c99;display:flex;justify-content:space-between}dialog{width:min(600px,94vw);border:1px solid var(--line);border-radius:12px;padding:24px;color:var(--ink)}dialog::backdrop{background:#14233088}.project-row{display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);padding:12px 0}.project-row span{flex:1}.project-row small{display:block;color:var(--muted)}.dialog-actions{display:flex;gap:9px;border-top:1px solid var(--line);padding-top:15px;margin-top:10px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:12px 20px;border-radius:8px;box-shadow:0 8px 20px #0002;display:none;max-width:90vw;font-size:12px;z-index:10}.planning .presets button{background:#f8fafb}.presentation aside,.presentation .obstacle-panel,.presentation .study{display:none}
@media(max-width:1000px){.workspace{grid-template-columns:250px minmax(0,1fr)}main{padding:25px 3vw}.metrics>div{padding:12px}.metrics strong{font-size:21px}.panel{padding:15px}.obstacle-row{gap:5px}}
@media(max-width:740px){header{height:auto;min-height:78px;flex-wrap:wrap;padding:16px 5vw;gap:12px}.version{margin-left:auto}.header-actions{width:100%;margin:0}.header-actions button{flex:1;font-size:12px}main{padding:25px 4vw}.heading{display:block}h1{font-size:28px}.mode{width:max-content;margin-top:20px}.workspace{display:flex;flex-direction:column}.workspace aside{order:2;display:grid;grid-template-columns:1fr}.visual-section{order:1}.metrics{gap:6px}.metrics>div{padding:11px 8px}.metrics small{font-size:8px;letter-spacing:.4px}.metrics strong{font-size:20px}.drawing-toolbar{padding:10px}.drawing-toolbar .muted{display:none}.drawing-footer{padding:10px;gap:10px;font-size:9px}.study-fields{grid-template-columns:1fr 1fr}.obstacle-row{grid-template-columns:1.1fr repeat(3,1fr) 25px}.obstacle-row label{font-size:9px}.obstacle-row input{padding:6px!important;font-size:11px}.load-line{flex-wrap:wrap;gap:10px}.load-line span{width:100%;margin:0}.panel-heading button{font-size:10px}.study{margin-top:18px}footer{gap:15px}footer span{text-align:right}}
@media print{body{background:white;font-size:11px}header{background:white;color:#142330;padding:12px 0;height:70px;border-bottom:2px solid #142330}.brand-icon{display:none}.brand small{color:#657582}.header-actions,.mode,.version,aside,.drawing-toolbar label,.presets,button,#toast,dialog{display:none!important}main{padding:15px 0}.heading{margin-bottom:15px}h1{font-size:24px}.workspace{display:block}.metrics{margin-bottom:8px}.metrics>div{padding:8px 15px}svg{max-height:330px}.panel{padding:12px;margin-bottom:12px}.study{margin-top:12px}.study-fields{grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}input,textarea{background:white!important;border:0!important;padding:3px!important}textarea{height:65px}.obstacle-row{padding:5px 0}.boundary{padding-bottom:0}.drawing,.study,.boundary{break-inside:avoid}footer{padding:10px 0}@page{size:A4;margin:13mm}}
.negative-control{border-top:1px solid var(--line);padding-top:16px;margin-top:22px}.checkbox-label{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:12px}.checkbox-label input{accent-color:var(--teal)}#depthControls{margin-top:16px}#depthControls[hidden]{display:none}.control input:disabled{opacity:.4;cursor:default}select{font:inherit;width:100%;border:1px solid var(--line);border-radius:5px;background:#f9fbfc;color:var(--ink);padding:9px;margin-top:4px}.environment-actions{display:flex;gap:7px}.obstacle-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border:1px solid var(--line);border-radius:7px;padding:14px;margin:12px 0;background:#fbfcfd;position:relative}.obstacle-row>button{position:absolute;right:6px;top:3px;background:transparent;border:0;padding:2px 5px;color:#798e99}.obstacle-shape{cursor:grab}.obstacle-shape:active{cursor:grabbing}.resize-handle{cursor:nesw-resize}#scene{touch-action:none}button:disabled{opacity:.45;cursor:default}#clearObstacles{color:var(--teal)}
@media(max-width:740px){.environment-actions{flex-wrap:wrap}.obstacle-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.obstacle-row label{font-size:10px}.obstacle-row select,.obstacle-row input{padding:8px!important;font-size:12px}.obstacle-panel .panel-heading{align-items:flex-start}.obstacle-panel h2{max-width:100px}}
@media print{.obstacle-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;padding:5px;margin:5px 0}.obstacle-row select{border:0;background:white;padding:3px;appearance:none}.obstacle-panel .muted{display:none}}

/* Keep the live scene beside the geometry controls. */
.visual-section{min-width:0}.visual-section>.drawing{margin-bottom:15px}.environment-choice{margin-top:16px;max-width:340px}.environment-choice select{font-size:12px}
@media(max-width:740px){.workspace{gap:14px}.visual-section{display:contents}.workspace>.visual-section>.drawing{order:0;position:sticky;top:0;z-index:5;box-shadow:0 4px 14px #14233018;margin-bottom:0}.workspace>.visual-section>.drawing #scene{height:clamp(180px,32vh,290px);max-height:32vh}.workspace aside{order:1}.workspace aside>.panel{margin-bottom:0}.workspace aside{gap:14px}.workspace>.visual-section>.metrics{order:2;margin-bottom:0}.workspace>.visual-section>.capacity-live{order:3;margin-bottom:0}.workspace>.visual-section>#clearance{order:4;margin:0}.workspace>.visual-section>.obstacle-panel{order:5}}
@media print{.visual-section{display:block}.workspace>.visual-section>.drawing{position:static;box-shadow:none}.workspace>.visual-section>.drawing #scene{height:auto;max-height:330px}.environment-choice{display:none}}

.study-geometry{padding:12px 0;border-top:1px solid var(--line);font-size:12px;color:var(--ink);line-height:1.8}.print-only{display:none}
@media print{.print-only{display:block;font-size:11px}#draftStatus,.notes-label{display:none}#reportNotes{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:12px}.drawing,.study{break-inside:auto}.study-fields label input{width:100%}.capacity-live{break-inside:avoid}}

.table-position-control{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.table-position-control .checkbox-label{font-size:11px}.table-position-control .muted{margin-bottom:0}
