@font-face{font-family:Geist;src:url('./fonts/Geist.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{font-family:Geist,Arial,sans-serif;--accent:#335fe8;--line:#dce0e5;color:#262d35;background:#f3f4f6}
.canvas-app header{background:#fff;border-bottom:1px solid #dde1e6}.wordmark{color:#252c35;letter-spacing:-.6px}.wordmark i{color:#65717d;letter-spacing:.4px;font-size:11px}.wordmark .mark{color:#345fee}.demo{color:#6b7682}.demo b,.live-dot{background:#345fee}
.canvas-app #viewport{background:#edf0f3;background-image:radial-gradient(#c9d0d7 .7px,transparent .7px);background-size:18px 18px}.canvas-app .preview{background:#edf0f3}.canvas-app .stage-top>span:first-child{border-radius:5px;color:#56616c;background:#ffffffdf}.canvas-app .stage-top>span:last-child{color:#77818a;font-size:10px;letter-spacing:.5px}
.canvas-app .metrics{border-radius:6px;border-color:#d8dde3;background:#ffffffed}.canvas-app .metrics span{color:#2d3540;font-weight:500}.canvas-app .metrics small{color:#77818c}.canvas-app .studio-toolbar .tabs button{color:#68737f}.canvas-app .studio-toolbar .tabs button.active{border-color:#335fe8;color:#24344f}.canvas-app .studio-toolbar{background:#fff}.canvas-app #present,.primary{background:#2d394a;color:white}.canvas-app .canvas-help b{color:#717d8a;font-weight:500;letter-spacing:.8px}.canvas-app .canvas-help span{color:#83909c}
.tool-dock{border-radius:7px;border-color:#d8dee5;box-shadow:0 3px 10px #18253709}.tool-dock button{color:#5b6775;border-radius:4px}.tool-dock button.active{background:#e9efff;color:#335fe8}.tool-dock button:hover{background:#eef2f7;color:#335fe8}.tool-dock svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}.tool-dock small{font-size:9px}
.module-tray{border-radius:7px;border-color:#d8dee5;box-shadow:0 3px 12px #1825370d}.module-tray .palette button{background:#f7f8fa;border:1px solid #dce2e8;border-radius:4px;color:#455160}.module-tray .palette button:hover{background:#eaf0ff;border-color:#849fed}.module-tray>span{color:#526171}.module-tray>span small{color:#8b949d}
#object-bar{border-color:#c8d3e6;border-radius:6px;box-shadow:0 3px 14px #18253712}#object-bar input,#object-bar button{background:#f0f3f7;color:#34445a}#live-measure{background:#304761;border-radius:5px}.canvas-app .view-buttons,.canvas-app .zoom-bar{border-color:#d8dee5;box-shadow:none;border-radius:5px}.canvas-app .view-buttons button.active{background:#e9effc;color:#345bd8}.canvas-app .zoom-bar button{color:#617082}.canvas-app .grid-status{color:#728090}.panel-title h2,.panel h3{color:#344151}.dimension-fields input,.custom-fields input,.field input,.field textarea{background:#f6f8fa;border-color:#dce2e8;color:#344151}.secondary{background:#edf1f6;color:#344151}.canvas-app aside{box-shadow:-3px 0 15px #18253709}.canvas-app .ready span{background:#edf2fb;color:#4266a8}.canvas-app .ready h3{font-family:Geist,Arial,sans-serif}.canvas-app .ready p{color:#7e8995}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#527aec}
/* The SVG selection follows the door polygon; never add a rectangular browser ring. */
.canvas-app #model[data-view="3d"] [data-item]:focus{outline:none}
.canvas-app #model[data-view="3d"] [data-item]:hover>polygon:first-child{stroke:none}
.canvas-app #model[data-view="3d"] [data-item]:focus-visible>polygon:first-child{stroke:#70a7ff;stroke-width:1px;vector-effect:non-scaling-stroke}
.mobile-notice{width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:28px;border:1px solid #dce2e8;border-radius:12px;background:#fff;color:#2d394a;box-shadow:0 18px 60px #14223530;font-family:Geist,Arial,sans-serif}
.mobile-notice::backdrop{background:#172333a8}
.mobile-notice>svg{width:48px;height:40px;fill:none;stroke:#4267c7;stroke-width:2;margin-bottom:16px}
.mobile-notice h2{font-size:23px;line-height:1.3;margin:0 0 15px;letter-spacing:-.5px}
.mobile-notice p{font-size:14px;line-height:1.6;color:#65717e;margin:0 0 24px}
.mobile-notice button{width:100%;border:0;border-radius:6px;padding:14px;background:#2d394a;color:#fff;font-size:14px}
.mobile-notice small{display:block;font-size:11px;line-height:1.5;color:#87919c;margin-top:16px}
