:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#263f35;background:#f4f4ec;font-size:14px;--green:#286650;--border:#d9ded2;--muted:#6e7f73}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,.button,summary{border:1px solid var(--border);background:#fffef9;color:#304c3e;border-radius:9px;padding:10px 13px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:41px;font-weight:550}button:hover,.button:hover{border-color:#78a18c;background:#f0f4eb}button:disabled{opacity:.4;cursor:default}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover{background:#194e3a;color:white}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #e5b777;outline-offset:2px}header{height:78px;padding:15px 32px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);background:#fafbf5;gap:20px}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:#2e6754;font-size:24px;letter-spacing:-1px}.brand b{font-size:30px}.brand .light{font-weight:300}.brand small{font-size:9px;letter-spacing:1.3px;background:#e6eddf;padding:7px;margin-left:8px;color:#516e58;font-weight:750}nav{display:flex;align-items:center;gap:8px}nav a{color:#52735c;font-size:12px;padding:8px}#save-status{font-size:11px;color:var(--muted);margin-right:10px}.intro{display:flex;justify-content:space-between;align-items:center;padding:28px 34px 24px;max-width:1800px;margin:auto}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:750;color:#718973}h1{font-family:Georgia,serif;font-size:35px;font-weight:400;margin:6px 0}p{color:var(--muted);line-height:1.6}.intro p{margin:6px 0 0}.badge{background:#e9e9d9;border-radius:30px;padding:9px 14px;color:#6c7658;font-size:11px}main{display:flex;gap:16px;margin:0 24px;max-width:1770px;align-items:flex-start}.atelier{flex:1;min-width:0;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:#fffef9;box-shadow:0 6px 28px #334e3f05}.toolbar{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:13px;background:#fafbf5;border-bottom:1px solid var(--border)}.tool-group{display:flex;gap:7px;flex-wrap:wrap}.toolbar details{position:relative}.toolbar details>div{position:absolute;top:46px;right:0;min-width:150px;background:white;padding:8px;border:1px solid var(--border);border-radius:10px;z-index:8;display:flex;gap:8px;flex-direction:column}summary{list-style:none}.viewbar{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 15px;border-bottom:1px solid var(--border)}[role=tablist]{display:flex;gap:4px}[role=tab]{background:transparent;border-color:transparent}[role=tab][aria-selected=true]{background:#e4eee2;border-color:#c3d3bc}.toggles{display:flex;align-items:center;gap:7px}.toggles label{font-size:12px;color:#556e5a;display:flex;align-items:center;gap:5px}.toggles button{padding:8px 10px;min-height:36px}input[type=checkbox]{accent-color:var(--green);width:16px;height:16px}#stage{height:540px;min-height:340px;position:relative;background:#eef1e7}#plan,#three{width:100%;height:100%;display:block;touch-action:none}#three canvas{display:block;width:100%;height:100%;touch-action:none}[hidden]{display:none!important}#stage-label{position:absolute;left:18px;bottom:15px;font-size:9px;letter-spacing:1.5px;color:#73836d;pointer-events:none}.hide-control{position:absolute;bottom:36px;left:15px;background:#fffef9e8;border-radius:8px;padding:8px;font-size:11px;display:flex;align-items:center;gap:5px}#selection-actions{position:absolute;top:13px;left:50%;transform:translateX(-50%);display:flex;gap:5px;align-items:center;max-width:96%;padding:7px;background:#fffef9f2;box-shadow:0 4px 20px #294a3120;border:1px solid #b7cbb2;border-radius:12px;z-index:2}#selection-actions strong{font-size:12px;padding:0 7px;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#selection-actions button{min-height:32px;font-size:11px;padding:6px 9px}#modify{background:var(--green);color:white}.help{padding:13px 18px;color:#6a7e6c;font-size:11px;border-top:1px solid var(--border);background:#fafbf6}#alerts{padding:10px 18px;font-size:11px;color:#7a6438;background:#faf7ea;max-height:112px;overflow:auto}#alerts.ok{color:#587258;background:#f4f7ec}#alerts p{margin:3px;color:inherit}.bottom{padding:12px 18px;display:flex;justify-content:space-between;font-size:11px;color:#6a806d;border-top:1px solid var(--border)}aside{width:320px;flex-shrink:0;background:#fffef9;border:1px solid var(--border);border-radius:15px;overflow:hidden;box-shadow:0 8px 30px #294a3108;position:sticky;top:12px}.panel-title{display:flex;align-items:center;justify-content:space-between;padding:19px;border-bottom:1px solid var(--border);background:#f7f8ef}h2{font:400 23px Georgia,serif;margin:6px 0 0}.panel-title button{font-size:20px;border:0;background:none;padding:0;min-width:30px}form{padding:18px;max-height:70vh;overflow:auto}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field label{font-size:11px;color:#5f7662}.field input,.field select{width:100%;min-width:0;border:1px solid var(--border);border-radius:7px;padding:10px;background:#fff;color:#294e3c;min-height:41px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.fields>.field:only-child{grid-column:1/-1}form h3{font-size:12px;margin:20px 0 12px;padding-top:15px;border-top:1px solid var(--border)}form h3:first-child{margin-top:0;padding-top:0;border:0}form p{font-size:11px}form .wide{width:100%;margin-top:7px}.chip{background:#edf1e5;border-radius:8px;padding:10px;font-size:11px;color:#5b765c;line-height:1.6}.danger{color:#9d5148}footer{padding:20px 28px;color:#7a8876;display:flex;gap:12px;justify-content:space-between;font-size:10px}footer a{color:#55735b}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#294f3d;color:#fff;z-index:30;border-radius:9px;max-width:94vw;opacity:0;pointer-events:none;transition:opacity .2s;font-size:13px}#toast.show{opacity:1}dialog{max-width:430px;border:1px solid var(--border);border-radius:15px;padding:26px;background:#fffef9}dialog::backdrop{background:#24372e88}dialog>div{display:flex;justify-content:flex-end;gap:8px}#recovery{padding:18px;background:#fff0d6}.wall{cursor:pointer}.object{cursor:grab}.object:active{cursor:grabbing}.handle{cursor:grab}.vertex{cursor:move}.dimension{font-size:10px;fill:#5f7660;paint-order:stroke;stroke:#f4f4e9;stroke-width:3px;stroke-linejoin:round}.label{font-size:10px;fill:#365642}.guide{stroke:#d39339;stroke-width:1.8;stroke-dasharray:5 4}.draw-point{fill:#36765c;stroke:white;stroke-width:2}
@media(min-width:1820px){main{margin:auto}.intro{padding-left:10px;padding-right:10px}}@media(max-width:950px){header{padding:13px 18px}.brand small,#save-status{display:none}.intro{padding:22px}.intro h1{font-size:29px}main{margin:0 14px;gap:10px}aside{width:280px}#stage{height:500px}.toolbar{padding:10px}.tool-group button,.tool-group .button,summary{font-size:12px;padding:8px 10px}#selection-actions strong{max-width:120px}footer{flex-wrap:wrap}}@media(max-width:700px){header{height:auto;align-items:flex-start;gap:8px;padding:13px;flex-wrap:wrap}.brand{font-size:23px}nav{gap:5px;width:100%;justify-content:flex-end}nav a{margin-right:auto;order:-1}nav button,nav .button{min-height:34px;padding:7px 11px;font-size:12px}.intro{padding:18px 16px}.intro h1{font-size:29px}.intro p{font-size:12px}.badge{display:none}main{display:block;margin:0 8px}.toolbar{padding:9px;gap:7px}.tool-group{gap:5px}.viewbar{padding:8px;gap:4px;flex-wrap:wrap}.toggles{gap:5px}.toggles label{font-size:10px}.toggles button{font-size:11px;padding:7px}#stage{height:440px}#selection-actions{top:8px;gap:3px;padding:5px}#selection-actions strong{max-width:85px;font-size:10px;padding:0 3px}#selection-actions button{padding:6px;font-size:10px}.bottom,.help{font-size:10px;padding:10px}aside{position:fixed;inset:auto 0 0;width:100%;z-index:20;border-radius:20px 20px 0 0;max-height:72vh;box-shadow:0 -8px 35px #193e3528}form{max-height:calc(72vh - 82px);padding:16px}.panel-title{padding:14px 18px}footer{font-size:9px;padding:16px}#alerts{font-size:10px;max-height:90px}#toast{bottom:12px}}
/* V1.1: canvas first, with a small contextual card and deliberate precise drawer. */
aside{width:286px}.panel-title{padding:12px 15px}.panel-title .eyebrow{font-size:8px}.panel-title h2{font-size:21px;margin:3px 0 0}.panel-buttons{display:flex;gap:12px}.panel-buttons button{width:24px}#editor{padding:12px 14px;max-height:330px}#editor .chip{font-size:10px;padding:7px 9px;margin-bottom:8px}.quick-fields .field{margin-bottom:5px}.quick-fields select{padding:7px;font-size:12px;min-height:36px}.advanced-toggle{font-size:11px;min-height:35px;padding:7px}.advanced-open #editor{max-height:70vh}#precise-fields{margin-top:13px;border-top:1px solid var(--border);padding-top:12px}.collapsed{width:240px}#opening-menu button[aria-pressed=true]{background:#dcece0;border-color:#529277;color:#245d43}#opening-tool-bar{padding:10px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#e8f2e7;border-bottom:1px solid #b8d1b6}#opening-tool-bar>div:first-child{flex:1;min-width:170px}#opening-step{display:block;font-size:12px}#opening-status{font-size:10px;display:block;margin-top:4px;color:#4e7058}#opening-status.warning{color:#925132}#opening-tool-bar label{font-size:10px;display:flex;gap:5px;align-items:center}#opening-tool-bar input[type=number]{width:61px;border:1px solid #b7cdb4;border-radius:6px;padding:8px;color:#30523c;background:#fff;min-height:35px}#tool-wall{width:88px;border:1px solid #b7cdb4;border-radius:6px;padding:8px;background:#fff;color:#30523c;min-height:35px;font-size:11px}#tool-position{max-width:130px;accent-color:#28705a}#opening-tool-bar button{font-size:11px;min-height:35px;padding:7px 10px}#door-actions{position:absolute;z-index:3;top:12px;left:50%;transform:translateX(-50%);display:flex;gap:6px;padding:6px;background:#fffdf2ef;border:1px solid #b8ceb4;border-radius:11px;box-shadow:0 3px 12px #37583b16;white-space:nowrap}#door-actions.below-selection{top:65px}#door-actions button{min-height:34px;font-size:11px;padding:6px 10px;border-color:#ccd6c2}.ghost-label{font-size:11px;fill:#21684e;font-weight:700;stroke-width:4px}#plan:focus-visible{outline:3px solid #b9cda7;outline-offset:-3px}
@media(max-width:700px){.intro{padding:9px 14px}.intro .eyebrow,.intro p{display:none}.intro h1{font-size:23px;margin:0}.toolbar{padding:7px}.toolbar .button,.toolbar button{min-height:35px;font-size:11px;padding:7px 9px}#stage{height:440px}aside{inset:auto 7px 9px;width:calc(100% - 14px);max-height:32vh;border-radius:15px;box-shadow:0 -3px 24px #193e3520}aside.collapsed{width:calc(100% - 14px)}.panel-title{padding:9px 13px}.panel-title .eyebrow{display:none}.panel-title h2{font-size:18px;margin:0}.panel-title button{min-height:26px;font-size:20px}#editor{padding:8px 12px;max-height:calc(32vh - 45px)}.advanced-open{max-height:64vh}.advanced-open #editor{max-height:calc(64vh - 45px)}.quick-fields label{font-size:10px}.quick-fields select{min-height:33px;padding:6px}.advanced-toggle{min-height:32px;padding:6px;margin-top:5px!important}#editor .wide{min-height:33px;font-size:11px}#editor .chip{margin-bottom:5px}#opening-tool-bar{padding:8px;gap:6px}#opening-tool-bar>div:first-child{flex-basis:100%}#opening-step{font-size:11px}#opening-status{font-size:10px}#opening-tool-bar .tool-wall-label{display:none}.tool-position-label{flex-basis:100%;order:5}#tool-position{max-width:none;flex:1;min-height:24px}#door-actions{max-width:95%;padding:4px;gap:4px}#door-actions.below-selection{top:54px}#door-actions button{font-size:10px;padding:6px 8px;min-height:32px}#opening-tool-bar label{font-size:10px}#opening-tool-bar button{font-size:11px}#opening-tool-bar input[type=number]{padding:6px;width:55px;min-height:32px}}
#door-actions.north-door{top:auto;bottom:38px}#selection-actions.opening-north{top:auto;bottom:90px}

.input-hint{grid-column:1/-1;font-size:10px;margin:2px 0 5px}.socle-option{display:flex;gap:8px;align-items:center;font-size:11px;margin:10px 0}.socle-option input{width:auto;accent-color:#28705a}
.quick-fields>.field:only-child{grid-column:1/-1}

/* Canvas-first mobile workflow, explicit family/usage addition and quiet file menus. */
#file-menu{display:none}.toolbar{position:relative;justify-content:flex-start;gap:8px}#more-tools,#view-options{position:relative}#more-tools>summary,#view-options>summary{list-style:none;cursor:pointer;padding:9px 12px;border:1px solid var(--border);border-radius:9px;background:#fff;font-size:12px}#more-tools>div,#view-options>div{position:absolute;top:calc(100% + 7px);right:0;z-index:35;min-width:185px;padding:12px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 7px 25px #193e3525}#more-tools>div>*{display:block;margin:5px 0;width:100%;text-align:left}#view-options>div{display:grid;gap:12px}#view-options label{font-size:12px;white-space:nowrap}#add-dialog{width:min(390px,92vw)}#add-dialog>label{display:block;font-size:12px;font-weight:600;margin:12px 0 5px}#add-dialog>select{width:100%;padding:12px;border:1px solid var(--border);border-radius:9px;background:#fafbf7;color:var(--ink);font:inherit;font-size:14px}#add-preview{background:#eef2e7;padding:12px;border-radius:9px;font-size:12px;line-height:1.7}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.panel-actions{display:none}#height-dialog{width:min(440px,92vw)}#height-dialog p{font-size:13px;line-height:1.7}
@media(max-width:700px){header{position:relative;min-height:46px;padding:8px 12px;align-items:center;flex-wrap:nowrap;justify-content:space-between}#file-menu{display:block;min-height:32px;padding:6px 10px;font-size:11px}header nav{display:none}.files-open header nav{display:flex;position:absolute;z-index:40;top:100%;right:8px;width:calc(100% - 16px);padding:12px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 7px 25px #193e3525}.intro{display:none}main{margin:4px}.toolbar{padding:7px;gap:5px;flex-wrap:wrap}.toolbar>button{font-size:11px;padding:7px 10px;min-height:34px}#more-tools>summary,#view-options>summary{font-size:11px;padding:8px 10px;min-height:32px}#opening-menu{flex-basis:100%}.viewbar{padding:5px 7px;flex-wrap:nowrap}.viewbar [role=tab]{padding:7px 12px;min-height:32px}.toggles{gap:4px}.toggles>button{padding:6px 10px;min-height:32px}#stage{height:calc(100dvh - 185px);min-height:360px}.bottom{padding:6px 10px}.help{padding:7px 10px}#duplicate,#delete{display:none!important}#selection-actions{max-width:calc(100% - 18px)}#selection-actions strong{max-width:150px}.panel-actions{display:flex;gap:8px;margin-top:8px}.panel-actions button{flex:1;font-size:11px;padding:7px;min-height:32px}#editor .chip{font-size:10px;line-height:1.6}footer{padding:8px}#alerts{max-height:60px}}

#objects-dialog{width:min(420px,92vw)}#objects-dialog>label{display:block;margin:12px 0 6px;font-size:12px}#object-picker{width:100%;padding:12px;border:1px solid var(--border);border-radius:8px;background:#fafbf7;color:var(--ink)}#object-picker-preview{font-size:12px;line-height:1.7;background:#eef2e7;padding:10px;border-radius:9px}
