@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap";:root{--bg:#e7ebe8;--bg-deep:#d5dcd6;--panel:#f7f5f1;--ink:#1c2420;--muted:#5c6a62;--line:#c5cdc6;--accent:#2f5d4a;--accent-2:#8b5a2b;--danger:#8b2e2e;--warn:#8a6a1f;--info:#2a4f6e;--shadow:0 10px 30px #1c242014;--radius:10px;--font:"DM Sans", sans-serif;--display:"Instrument Serif", Georgia, serif}*{box-sizing:border-box}html,body,#root{height:100%;font-family:var(--font);color:var(--ink);background:radial-gradient(ellipse at 10% 0%, #f3efe6 0%, transparent 45%), radial-gradient(ellipse at 90% 10%, #dce6e0 0%, transparent 40%), linear-gradient(160deg, var(--bg), var(--bg-deep));margin:0}button,input,select{font:inherit}.app{flex-direction:column;height:100%;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f7f5f1e0;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.brand{align-items:center;gap:.75rem;display:flex}.brand-mark{background:var(--accent);color:#f4f7f5;letter-spacing:.04em;border-radius:8px;place-items:center;width:2.4rem;height:2.4rem;font-weight:700;display:grid}.brand strong{font-family:var(--display);font-size:1.25rem;font-weight:400;line-height:1.1;display:block}.brand small{color:var(--muted);font-size:.75rem}.nav{flex-wrap:wrap;gap:.35rem;display:flex}.nav-btn{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:.45rem .8rem}.nav-btn.active,.nav-btn:hover{color:var(--ink);border-color:var(--line);background:#fff}.workspace{flex:1;grid-template-columns:minmax(280px,360px) 1fr;min-height:0;display:grid}.sidebar{border-right:1px solid var(--line);background:#f7f5f1b8;flex-direction:column;gap:.75rem;padding:.85rem;display:flex;overflow:auto}.viewport{background:linear-gradient(#ffffff40,#0000 30%),#9eafb4;min-height:0;position:relative}.scene-shell{width:100%;height:100%;min-height:0;position:relative}.cam-fly-bar{border:1px solid var(--line);box-shadow:var(--shadow);z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f7f5f1eb;border-radius:999px;flex-wrap:wrap;gap:.4rem;padding:.45rem;display:flex;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}.cam-fly-bar .btn{border-radius:999px;padding:.4rem .85rem;font-size:.82rem}.viewport canvas{display:block;width:100%!important;height:100%!important}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem}.panel h2{font-family:var(--display);margin:0 0 .75rem;font-size:1.35rem;font-weight:400}.panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:1rem 0 .5rem;font-size:.85rem}.panel label{color:var(--muted);flex-direction:column;gap:.25rem;margin-bottom:.55rem;font-size:.82rem;display:flex}.panel label.check{flex-direction:row;align-items:center;gap:.5rem}.panel input,.panel select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;padding:.4rem .55rem}.panel input[type=color]{height:2rem;padding:.15rem}.panel input[type=range]{padding:0}.row{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.btn,.btn-row .btn{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;padding:.45rem .7rem}.btn.primary{background:var(--accent);border-color:var(--accent);color:#f4f7f5}.btn.danger{color:var(--danger);border-color:#e2bcbc}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-row{flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;display:flex}.saw-style-row .btn{min-width:4.25rem;padding:.4rem .55rem;font-size:.8rem}.wood-finish-row{gap:.5rem}.wood-swatch{border:2px solid var(--line);cursor:pointer;background-position:50%;background-size:cover;border-radius:8px;width:4.6rem;height:3.1rem;padding:0;position:relative;overflow:hidden}.wood-swatch span{color:#fff;text-align:center;background:linear-gradient(#0000,#14100cbf);padding:.15rem .2rem;font-size:.65rem;position:absolute;bottom:0;left:0;right:0}.wood-swatch.active{border-color:var(--accent);box-shadow:0 0 0 2px #2f5d4a47}.dim-readout{border:1px solid var(--line);background:#f0ebe3;border-radius:8px;grid-template-columns:1fr 1fr;gap:.35rem .75rem;margin:.35rem 0 .75rem;padding:.55rem .65rem;font-size:.78rem;display:grid}.dim-readout>div{color:var(--muted);justify-content:space-between;gap:.5rem;display:flex}.dim-readout strong{color:var(--ink);font-variant-numeric:tabular-nums}.dim-readout .dim-total{border-top:1px solid var(--line);grid-column:1/-1;margin-top:.15rem;padding-top:.35rem;font-size:.85rem}.swatch-row{flex-wrap:wrap;gap:.45rem;margin-top:.35rem;display:flex}.swatch{border:2px solid var(--line);cursor:pointer;border-radius:999px;width:1.75rem;height:1.75rem;padding:0}.swatch.active{border-color:var(--accent);box-shadow:0 0 0 2px #2f5d4a40}.door-list,.saved-list{flex-direction:column;gap:.3rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.door-item{text-align:left;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;justify-content:space-between;gap:.5rem;width:100%;padding:.5rem .65rem;display:flex}.door-item.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.hint{color:var(--muted);font-size:.8rem}.error-text{color:var(--danger);font-size:.8rem}.banner{border-radius:8px;margin:.4rem 0;padding:.55rem .75rem;font-size:.85rem}.banner.error{color:var(--danger);background:#f8e8e8}.banner.warn{color:var(--warn);background:#f7efd6}.banner.info{color:var(--info);background:#e4eef6}.thumb-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.thumb{border:1px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:10px;flex-direction:column;gap:.35rem;padding:.5rem;font-size:.78rem;display:flex}.thumb-art{background:linear-gradient(90deg, transparent 12%, var(--accent-2) 12%, var(--accent-2) 14%, transparent 14%), linear-gradient(0deg, transparent 12%, var(--accent-2) 12%, var(--accent-2) 14%, transparent 14%), linear-gradient(90deg, transparent 86%, var(--accent-2) 86%, var(--accent-2) 88%, transparent 88%), linear-gradient(0deg, transparent 86%, var(--accent-2) 86%, var(--accent-2) 88%, transparent 88%), #d8c3a5;border-radius:6px;height:54px;display:block}.thumb-art.door-plain-flush{background:#6b4423}.thumb-art.wall-baseboard{background:linear-gradient(#e7e2d8 78%,#cfc6b8 78% 82%,#f0ece4 82%)}.thumb-art.wall-crown{background:linear-gradient(#f0ece4 18%,#cfc6b8 18% 22%,#e7e2d8 22%)}.ar-root{color:#eef2ef;background:#1a2220;flex-direction:column;gap:.5rem;height:100%;padding:.75rem;display:flex}.ar-toolbar{flex-wrap:wrap;align-items:end;gap:.5rem;display:flex}.ar-workflow-label{color:#d5dfd9;background:#24302c;border:1px solid #3a4742;border-radius:8px;align-self:center;padding:.35rem .55rem;font-size:.85rem}.ar-toolbar label{color:#b7c2bc;flex-direction:column;gap:.2rem;font-size:.75rem;display:flex}.ar-toolbar input,.ar-toolbar select{color:#eef2ef;background:#24302c;border:1px solid #3a4742;border-radius:8px;padding:.35rem .5rem}.ar-viewport{touch-action:none;background:#0d1210;border-radius:12px;flex:1;min-height:320px;position:relative;overflow:hidden}.ar-video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.ar-demo-bg{object-fit:cover;pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;inset:0}.ar-placeholder{color:#9aaba3;place-items:center;display:grid;position:absolute;inset:0}.ar-guides{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ar-handle{cursor:grab;z-index:5;background:#2f6fed;border:2px solid #fff;border-radius:50%;width:22px;height:22px;padding:0;position:absolute;transform:translate(-50%,-50%)}.ar-design-layer{pointer-events:none;z-index:2;position:absolute;top:0;left:0}.ar-door-overlay,.ar-wall-overlay{width:100%;height:100%;position:relative}.ar-door-leaf{opacity:.55;border-radius:2px;position:absolute;inset:8%}.ar-trim{opacity:.9;position:absolute}.ar-trim.top{top:0;left:0;right:0}.ar-trim.bottom{bottom:0;left:0;right:0}.ar-trim.left{top:0;bottom:0;left:0}.ar-trim.right{top:0;bottom:0;right:0}.ar-surface-bead{box-sizing:border-box;background:0 0;border-style:solid;position:absolute}.ar-wall-panel{box-sizing:border-box;opacity:.85;border:3px solid #f5f5f0;position:absolute}.ar-wall-strip{opacity:.85;position:absolute}.ar-door-cutout{background:#00000026;border:1px dashed #ffffff8c;position:absolute}.ar-status,.ar-scale-note{color:#b7c2bc;margin:0;font-size:.8rem}.meta{color:var(--muted);font-size:.72rem}@media (width<=900px){.workspace{grid-template-rows:minmax(240px,42vh) 1fr;grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line);order:2}.viewport{order:1;min-height:42vh}.topbar{flex-direction:column;align-items:flex-start}}.corner-badge{pointer-events:none;background:#ffffffe6;border-radius:6px;padding:6px 10px;font-size:13px;font-weight:600;position:absolute;top:12px;left:12px;box-shadow:0 1px 4px #00000026}.corner-badge.ok{color:#24613a}.corner-badge.bad{color:#a12a2a}
