:root{font-family:"Segoe UI",Roboto,Arial,sans-serif;color:#27372e;background:#f5f7f5;font-size:13px;font-synthesis:none;--green:#2f7d46;--line:#e3e9e4;--muted:#748079}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button{background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 10px;cursor:pointer}button:hover{background:#eff6f0;border-color:#b3cdb9}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,svg:focus-visible{outline:2px solid #59ab6e;outline-offset:3px}input,select{width:100%;min-width:0;background:#fff;border:1px solid #dce4dd;border-radius:5px;padding:8px 9px}input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:var(--green)}label{display:block;font-size:11px;color:#627267;line-height:1.5}label>input,label>select{display:block;margin-top:5px;font-size:13px;color:#27372e}a{color:inherit}h1,h2,p{margin:0}h2{font-size:16px;font-weight:600}.topbar{min-height:80px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:32px;padding:16px 26px}.brand{display:flex;flex-direction:column;gap:8px;text-decoration:none;flex-shrink:0}.brand img{width:205px;height:auto}.brand span{font-size:8px;letter-spacing:1px;color:#6c796f}.topbar nav{display:flex;gap:22px;flex:1;align-items:center}.topbar nav a{text-decoration:none;font-size:12px;white-space:nowrap;padding:10px 0;color:#718076}.topbar nav a.active{font-weight:600;color:var(--green);border-bottom:2px solid #59ab6e}.header-actions{display:flex;gap:8px}.primary{background:var(--green);color:#fff;border-color:var(--green);font-weight:600}.primary:hover{background:#26663a;border-color:#26663a}.intro{padding:20px 26px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);background:#fbfcfa}.eyebrow{font-size:9px;font-weight:600;color:#6c9075;letter-spacing:1.5px}h1{font-size:22px;line-height:1.7;font-weight:600;letter-spacing:-.4px}h1>span{font-size:12px;font-weight:400;letter-spacing:0;color:#7b897f;margin-left:16px}.intro button{font-size:12px;background:transparent}.intro button span{display:inline-block;margin-left:12px;border:1px solid #acbbb0;border-radius:50%;width:15px;height:15px;font-size:10px}.editor{display:grid;grid-template-columns:224px minmax(300px,1fr) 260px;height:calc(100dvh - 204px);min-height:600px}.parts-panel,.properties-panel{padding:22px 18px;background:#fff;overflow:auto}.parts-panel{border-right:1px solid var(--line);display:flex;flex-direction:column}.properties-panel{border-left:1px solid var(--line)}.panel-label{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.2px;color:#7d8b81;font-weight:600;margin-bottom:15px}.project-name{border:0;padding:0 0 8px;border-radius:0;font-size:16px;font-weight:600;margin-bottom:26px}.part-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.part-heading h2{font-size:12px}.part-heading>span{font-size:11px;color:#7e8d82}#parts-list{display:grid;gap:6px;margin:0 -6px 14px}.part-item{border:1px solid transparent;display:flex;gap:11px;padding:12px 9px;text-align:left;align-items:center;min-width:0}.part-item.selected{background:#eff6ef;border-color:#dcebdd}.part-item svg{width:30px;height:32px;flex-shrink:0;fill:#e6eee7;stroke:#5e8569;stroke-width:1;vector-effect:non-scaling-stroke}.part-item>span{min-width:0;overflow-wrap:anywhere;font-size:12px}.part-item small{display:block;margin-top:5px;font-size:10px;color:#7b8b80}.wide{width:100%;margin-bottom:8px}.dashed{border-style:dashed;color:var(--green)}#from-constructor{font-size:11px;background:#f7f9f6;margin-bottom:26px}.workspace-note{padding:15px 13px;background:#f7f8f3;border:1px solid #ebeee4;border-radius:7px;color:#7b836c;font-size:11px;line-height:1.65}.workspace-note b{color:#667250;font-weight:600}.workspace-note p{margin-top:8px}.local-note{font-size:10px;line-height:1.7;color:#6e7c71;margin-top:auto;padding-top:28px}.local-note small{color:#98a097;font-size:9px;margin-left:12px}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#66a46e;margin-right:6px}.workspace{display:flex;flex-direction:column;position:relative;min-width:0;min-height:0}.toolbar{height:53px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:8px 16px;background:#fff;flex-shrink:0}.tool-group{display:flex;gap:3px}.tool-group button{border:0;font-size:11px;white-space:nowrap}.tool-group button span{font-size:19px;vertical-align:middle;margin-right:4px;line-height:15px}.tool-group button[aria-pressed=true]{background:#eaf3eb;color:var(--green)}.history{border-left:1px solid var(--line);padding-left:12px}.history button{font-size:21px;padding:3px 8px;line-height:25px}.zoom-group{margin-left:auto;display:flex;align-items:center;gap:3px}.zoom-group button{border:0;padding:5px 7px;font-size:17px}.zoom-group span{font-size:10px;min-width:38px;text-align:center;color:#7b877e}.canvas-wrap{position:relative;flex:1;min-height:300px;overflow:hidden;background:#f3f6f2}#canvas{width:100%;height:100%;display:block;touch-action:none;user-select:none}#canvas[data-tool=pan]{cursor:grab}#canvas[data-tool=draw]{cursor:crosshair}#canvas .edit-node{cursor:move}#canvas .handle{cursor:crosshair}.canvas-caption{position:absolute;left:22px;top:20px;pointer-events:none;max-width:calc(100% - 44px);background:#f3f6f2e6;padding:4px 6px;border-radius:3px}.canvas-caption>span{display:block;font-size:11px;font-weight:600;color:#657e6b}.canvas-caption>small{font-size:10px;color:#8a978c;display:block;margin-top:6px}.scale{position:absolute;bottom:20px;left:24px;display:flex;flex-direction:column;gap:6px;pointer-events:none}.scale>span:first-child{height:6px;border:solid #788c7c;border-width:0 1px 1px}.scale>span:last-child{font-size:9px;color:#809082}.canvas-footer{height:42px;border-top:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:flex-end;gap:13px;padding:6px 18px;flex-shrink:0}.canvas-footer>span{margin-right:auto;font-size:10px;color:#829085;font-variant-numeric:tabular-nums}.canvas-footer label{display:flex;align-items:center;gap:5px;font-size:10px;white-space:nowrap}.canvas-footer select{margin:0;font-size:10px;padding:3px 5px}.properties-panel>label{margin-bottom:12px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.check{display:flex;align-items:center;gap:6px;margin-bottom:16px!important;font-size:10px}.check>input{margin:0}.transform-buttons{display:flex;gap:8px;margin-bottom:8px}.transform-buttons button{flex:1;font-size:11px;padding:8px 4px}.property-section{border-top:1px solid var(--line);margin-top:21px;padding-top:20px}.property-section>label{margin-bottom:12px}.small{font-size:10px}.technical{font-size:10px;color:#859087;line-height:1.7}.layer-visibility{display:grid;grid-template-columns:1fr 1fr;gap:7px 3px;margin:12px 0 15px}.layer-visibility label{display:flex;gap:6px;align-items:center;font-size:10px}.layer-visibility input{margin:0;width:12px;height:12px}.export-hint{margin-top:24px;color:#819b84}.statusbar{min-height:30px;display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:9px;color:#8b978e;background:#fff;border-top:1px solid var(--line);padding:8px 22px}.statusbar b{font-size:8px;font-weight:500;background:#eff5ed;padding:3px 6px;margin-left:10px;color:#78946c}.drawing-bar{position:absolute;top:61px;z-index:2;left:10px;right:10px;background:#fff;border:1px solid #bfd6c4;border-radius:6px;padding:8px;box-shadow:0 4px 12px #294e2514;display:flex;align-items:center;gap:6px}.drawing-bar span{font-size:11px;flex:1}.drawing-bar button{font-size:11px}.drawing-bar:not([hidden])~.canvas-wrap .canvas-caption{top:66px}dialog{width:min(580px,calc(100% - 24px));border:1px solid var(--line);border-radius:12px;padding:26px;color:#27372e;box-shadow:0 20px 80px #183c2826}dialog::backdrop{background:#1e302c55;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.dialog-heading h2{font-size:21px;margin-top:5px}.dialog-heading>button{border:0;font-size:24px;line-height:24px;padding:0 4px}dialog p{line-height:1.7;font-size:12px;margin-bottom:18px}dialog p.technical{font-size:11px}dialog li{line-height:1.7;margin-bottom:12px;font-size:12px}dialog ol{padding-left:22px}dialog label{margin-bottom:16px}.export-options{display:flex;gap:10px;margin:22px 0}.export-options button{flex:1;padding:18px 8px}.export-options b{font-size:22px;color:var(--green);display:block}.export-options span{display:block;font-size:10px;margin-top:10px;color:#809085}.replace-actions{display:flex;justify-content:flex-end;gap:10px}#toast{position:fixed;bottom:45px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:10;background:#2c4835;color:white;border-radius:7px;padding:12px 20px;max-width:calc(100% - 30px);transition:.18s;box-shadow:0 4px 20px #183c2826}#toast.visible{opacity:1;transform:translate(-50%,0)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(min-width:1600px){.editor{grid-template-columns:245px minmax(300px,1fr) 280px}.parts-panel,.properties-panel{padding:26px 24px}.topbar{gap:48px}}
@media(max-width:1180px){.topbar{gap:20px;flex-wrap:wrap;padding:14px 20px}.topbar nav{gap:16px}.header-actions{margin-left:auto}.brand img{width:180px}.editor{grid-template-columns:190px minmax(280px,1fr) 225px}.parts-panel,.properties-panel{padding:18px 14px}h1>span{display:block;margin-left:0;line-height:1.5}.toolbar{gap:5px;padding:8px}.history{padding-left:5px}.tool-group button{padding:7px}.zoom-group{gap:0}.canvas-footer{padding:6px 10px;gap:8px}.canvas-footer>span{font-size:9px}.canvas-caption{left:12px;top:13px}.canvas-caption small{max-width:280px}}
@media(max-width:850px){.topbar{gap:12px}.topbar nav{order:3;flex-basis:100%;justify-content:center;gap:24px}.header-actions button{font-size:11px;padding:8px}.editor{height:auto;min-height:0;grid-template-columns:minmax(0,1fr) 230px}.parts-panel{grid-column:1/-1;display:block;border-bottom:1px solid var(--line);padding:16px}.parts-panel .panel-label,.project-name,.workspace-note,.local-note,.part-heading{display:none}#parts-list{display:flex;overflow-x:auto;margin:0 0 10px}.part-item{min-width:155px}.parts-panel>.wide{width:auto;margin:0 8px 0 0!important}.workspace{min-height:600px}.properties-panel{max-height:750px}.intro{padding:16px 20px}.intro h1{font-size:20px}.statusbar>span:last-child{display:none}.canvas-caption small{max-width:220px}.toolbar .tool-group button{font-size:0}.toolbar .tool-group button span{font-size:20px}.toolbar .history button{font-size:21px}}
@media(max-width:560px){.topbar{padding:14px 12px}.brand img{width:140px}.brand span{font-size:6px}.header-actions{gap:4px}.header-actions button{font-size:10px;padding:7px}.topbar nav{gap:19px}.topbar nav a{font-size:10px}.intro{padding:14px 16px}.intro h1{font-size:18px}.intro h1 span{font-size:10px}.intro button{font-size:10px;white-space:nowrap;padding:6px}.intro button span{display:none}.editor{display:flex;flex-direction:column}.workspace{min-height:510px;height:510px}.toolbar .tool-group:not(.history) button{font-size:0}.canvas-footer{flex-wrap:wrap;gap:8px}.canvas-footer>span{font-size:9px}.properties-panel{max-height:none;border-left:0;border-top:1px solid var(--line);padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.properties-panel>.panel-label,.properties-panel>label:first-of-type,.properties-panel>.two-fields,.property-section{grid-column:1/-1}.properties-panel>.transform-buttons{grid-column:1/-1}.export-hint{grid-column:1/-1}.canvas-caption small{max-width:310px}.drawing-bar{flex-wrap:wrap}.drawing-bar span{flex-basis:100%}.statusbar{padding:10px 12px;font-size:8px}.statusbar b{display:none}.export-options{gap:6px}.export-options span{font-size:9px}dialog{padding:20px}}
/* Persistent source-model preview. */
.model-preview{flex-shrink:0;margin:-10px -4px 20px;padding:0 0 13px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:-22px;z-index:2}.preview-heading{display:flex;align-items:center;justify-content:space-between;padding:8px 0}.preview-heading h2{font-size:11px;font-weight:600}.preview-heading button{font-size:19px;line-height:18px;padding:3px 6px;border:0;color:var(--green)}.preview-scene{position:relative;height:205px;background:linear-gradient(155deg,#f5f7f1,#eef2ea);border:1px solid #e4eade;border-radius:7px;overflow:hidden}#preview-host{height:100%;width:100%;touch-action:none}#preview-host canvas{display:block;width:100%;height:100%;touch-action:none}#preview-message{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;font-size:11px;color:#839078;line-height:1.7;pointer-events:none}#preview-retry{position:absolute;bottom:9px;left:50%;transform:translateX(-50%);font-size:11px}.preview-controls{display:flex;gap:4px;align-items:center;margin:7px 0}.preview-controls button{font-size:10px;padding:5px 7px}.preview-controls span{display:none;font-size:10px;color:#84917c;margin-left:10px}#preview-reset{margin-left:auto;font-size:16px;line-height:15px;padding:3px 6px}#preview-caption{font-size:9px;color:#86907e;line-height:1.5;margin:0 0 8px}#preview-attach{margin:0;padding:6px;background:#f8faf6;font-size:9px}.parts-panel .project-name{margin-bottom:18px}.part-heading,#parts-list,.parts-panel>.wide{flex-shrink:0}#preview-dialog{width:min(940px,calc(100% - 24px))}#preview-dialog .preview-scene{height:min(62dvh,580px)}#preview-dialog .preview-controls span{display:block}#preview-dialog #preview-caption{font-size:11px;margin:14px 0 0}#preview-dialog .preview-controls button{font-size:12px;padding:6px 12px}#preview-dialog .preview-controls #preview-reset{font-size:19px}.preview-source-option{width:100%;display:block;text-align:left;padding:16px;margin-bottom:12px}.preview-source-option b{font-size:13px;color:var(--green)}.preview-source-option span{display:block;font-size:11px;color:#839078;margin-top:7px}
@media(min-width:1600px){.model-preview{top:-26px}}
@media(max-width:1180px) and (min-width:851px){.model-preview{top:-18px}.preview-scene{height:175px}}
@media(max-width:850px){.model-preview{position:static;margin:0 0 15px;padding-bottom:12px;display:grid;grid-template-columns:minmax(180px,260px) 1fr;column-gap:20px}.preview-heading{grid-column:1/-1;padding-top:0}.model-preview #preview-slot{grid-row:2/4}.model-preview #preview-attach{grid-column:2;height:fit-content;align-self:center;width:auto;justify-self:start;font-size:11px;padding:10px}.preview-scene{height:185px}.model-preview #preview-caption{font-size:10px}#preview-dialog .preview-scene{height:55dvh}}
@media(max-width:560px){.model-preview{display:block;margin-bottom:14px}.preview-scene{height:210px}.model-preview .preview-controls span{display:block;margin-left:5px;font-size:9px}#preview-caption{font-size:10px}.model-preview #preview-attach{width:100%;font-size:10px;padding:7px}#preview-dialog{padding:16px}#preview-dialog .preview-scene{height:50dvh}.preview-controls span{max-width:125px}#preview-dialog .preview-controls span{font-size:9px;margin-left:4px}}

#preview-source-error{color:#a84c3f;background:#fff6f2;border:1px solid #edd9cf;border-radius:6px;padding:10px 12px;font-size:12px}

/* Named project versions. */
#versions-badge:not(:empty){display:inline-block;font-size:10px;background:#eaf3e9;color:#52764d;border-radius:4px;padding:1px 5px;margin-left:3px}#versions-dialog{width:min(680px,calc(100% - 24px));max-height:90dvh}#versions-count{font-size:12px;color:#8b9784;font-weight:400;white-space:nowrap}#version-form{display:flex;align-items:flex-end;gap:12px;margin-bottom:12px}#version-form label{flex:1;margin:0}#version-form button{flex-shrink:0;padding:9px 13px}#versions-error{color:#a84c3f;background:#fff6f2;border:1px solid #edd9cf;border-radius:6px;padding:10px 12px}#versions-notice{color:#397649;font-size:11px;margin-bottom:10px}#versions-list{display:grid;gap:12px;margin-top:20px}.version-card{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fafcf9}.version-card-heading{display:flex;align-items:center;gap:10px}.version-name{flex:1;font-size:13px;font-weight:600;background:white}.version-card time{font-size:10px;color:#83907b;white-space:nowrap}.version-summary{display:flex;align-items:center;gap:14px;margin:14px 0}.version-summary svg{width:70px;height:54px;flex-shrink:0;fill:#eaf2e6;stroke:#548463;stroke-width:1}.version-summary strong{display:block;font-size:12px;font-weight:500;overflow-wrap:anywhere}.version-summary span{display:block;font-size:10px;color:#8a9780;margin-top:6px}.version-actions{display:flex;gap:8px;justify-content:flex-end}.version-actions button{font-size:11px}.version-actions button:first-child{color:#2f7d46;border-color:#c7dcc6}#versions-empty{margin-top:20px}
@media(max-width:560px){.header-actions{flex-wrap:wrap;justify-content:flex-end;max-width:100%}#version-form{display:block}#version-form button{margin-top:10px;width:100%}.version-card-heading{align-items:flex-start;flex-direction:column}.version-name{width:100%}.version-card time{padding-left:1px}#versions-dialog .dialog-heading h2{font-size:19px}}

/* Natural-language editing, kept beside the working geometry. */
.editor{min-height:750px}.manual-chat{flex-shrink:0;background:#fff;border-top:1px solid var(--line);padding:12px 16px}.chat-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.chat-heading h2{font-size:13px}.chat-heading h2 span{display:inline-block;font-size:9px;color:var(--green);background:#eaf3eb;padding:3px 5px;border-radius:4px;margin-left:4px}.chat-heading p{font-size:10px;color:#6d7e71;margin-top:5px;overflow-wrap:anywhere}.chat-heading>button{font-size:10px;border:0;padding:5px;flex-shrink:0}#manual-chat-log{height:124px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:10px 2px 4px;margin-top:5px}.chat-message{border-left:2px solid #dbe7dc;padding:3px 9px;margin-bottom:12px;font-size:11px;line-height:1.6}.chat-message>b{font-size:9px;color:#6c8971;font-weight:600}.chat-message p{white-space:pre-wrap;overflow-wrap:anywhere}.chat-user{border-color:#78a581;background:#f6f9f4}.chat-error{border-color:#c18d70;color:#985b3e}.chat-error>b{color:#985b3e}.chat-examples{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 8px}.chat-examples button{font-size:10px;padding:5px 8px;background:#fafcf8}.chat-undo{font-size:10px;padding:4px 8px;margin-top:8px;color:var(--green)}#manual-chat-form{display:flex;align-items:stretch;gap:8px}#manual-chat-input{resize:vertical;min-height:51px;max-height:140px;width:100%;min-width:0;font:inherit;font-size:12px;line-height:1.5;padding:8px 10px;border:1px solid #cfdbd0;border-radius:6px;color:inherit;background:#fff}#manual-chat-input:focus-visible{outline:2px solid #59ab6e;outline-offset:2px}#manual-chat-form>button{font-size:11px;padding:7px 10px;white-space:nowrap}#manual-chat-status{font-size:10px;color:#567760;margin-top:6px}#manual-chat-status:empty{display:none}.chat-footnote{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;color:#82907d;font-size:9px;line-height:1.5}.chat-footnote>button{font-size:9px;color:#708469;border:0;white-space:nowrap;padding:4px 0}
@media(max-width:850px){.editor{min-height:0}.workspace{min-height:770px}.manual-chat{padding:12px}.chat-examples{gap:4px}.chat-examples button{font-size:9px;padding:5px}.properties-panel{max-height:none}}
@media(max-width:560px){.workspace{height:auto;min-height:740px}.canvas-wrap{flex:0 0 360px;min-height:360px}.manual-chat{padding:14px 12px}#manual-chat-form{flex-wrap:wrap}#manual-chat-input{flex:1 1 100%}#manual-chat-send{margin-left:auto}#manual-chat-log{height:145px}.chat-heading h2{font-size:14px}.chat-footnote{align-items:flex-start}}

/* Allow all CAD sections to remain reachable on narrow screens. */
.topbar nav{flex-wrap:wrap;max-width:100%}
