/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.grid{display:grid}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}:root{--ink:#1d2624;--muted:#65716d;--line:#d6ddd8;--paper:#f4f5f1;--panel:#fafbf8;--accent:#d48536;--green:#496c60}*{box-sizing:border-box}html,body{height:100%;margin:0}body{color:var(--ink);background:var(--paper);font-family:Arial,Helvetica,sans-serif}button,input{font:inherit}button{color:inherit}.review-shell{--components-width:260px;--details-width:310px;grid-template:72px 44px minmax(0, 1fr) / var(--components-width) minmax(0, 1fr) var(--details-width);background:var(--paper);width:100vw;height:100dvh;display:grid;overflow:hidden}.review-shell.components-hidden{--components-width:0px}.review-shell.details-hidden{--details-width:0px}.model-tree{grid-area:3/1}.viewport{grid-area:3/2}.inspector{grid-area:3/3}.model-tree[hidden],.inspector[hidden]{display:none}.panel-controls{border-bottom:1px solid var(--line);background:var(--panel);z-index:10;grid-area:2/1/auto/-1;justify-content:space-between;align-items:center;padding:0 14px;display:flex}.panel-controls button{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:7px;min-height:36px;padding:0 10px;font-size:12px;display:flex}.panel-controls button:hover{background:#e5ebe5}.panel-controls button:focus-visible{outline:2px solid var(--green);outline-offset:1px}.panel-controls button[aria-expanded=true]{color:var(--green)}.panel-controls svg{fill:none;stroke:currentColor;stroke-width:1.3px;width:20px;height:20px}.panel-controls .panel-icon-fill{fill:currentColor;stroke:none}.review-header{border-bottom:1px solid var(--line);z-index:10;background:#fafbf8f5;grid-column:1/-1;align-items:center;gap:14px;padding:0 22px;display:flex}.brand-mark{width:34px;height:34px;position:relative;transform:rotate(-8deg)}.brand-mark span{background:var(--green);display:block;position:absolute}.brand-mark span:first-child{width:23px;height:4px;top:7px;left:5px;transform:rotate(34deg)}.brand-mark span:nth-child(2){width:23px;height:4px;top:7px;right:3px;transform:rotate(-34deg)}.brand-mark span:nth-child(3){border:4px solid var(--green);background:0 0;border-top:0;width:24px;height:19px;top:14px;left:5px}.brand-copy{min-width:0}.brand-copy p,.panel-heading p{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 2px;font-size:10px;font-weight:700}.brand-copy h1{text-overflow:ellipsis;white-space:nowrap;margin:0;font-family:Georgia,Times New Roman,serif;font-size:20px;font-weight:500;overflow:hidden}.header-status{color:var(--muted);flex-shrink:0;align-items:center;gap:8px;min-width:0;margin-left:auto;font-size:12px;display:flex}.model-status-message,.revision-badge{white-space:nowrap}.status-dot,.brand-mark{flex-shrink:0}.model-switcher{border:1px solid var(--line);width:min(26vw,280px);min-width:100px;color:var(--ink);font:inherit;text-overflow:ellipsis;background:#fff;border-radius:4px;padding:6px 8px}.model-switcher:focus-visible{outline:2px solid var(--green);outline-offset:2px}.error-card button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:4px;margin-top:12px;padding:6px 10px}.status-dot{background:#a4aaa6;border-radius:50%;width:7px;height:7px}.status-ready{background:#4f8b67;box-shadow:0 0 0 4px #4f8b671f}.status-error{background:#b74c43}.revision-badge{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:4px;margin-left:8px;padding:5px 8px;font-family:ui-monospace,monospace}.model-tree,.inspector{background:var(--panel);z-index:5;min-height:0}.model-tree{border-right:1px solid var(--line)}.inspector{border-left:1px solid var(--line)}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:78px;padding:0 18px;display:flex}.panel-heading h2{text-transform:capitalize;margin:0;font-family:Georgia,Times New Roman,serif;font-size:18px;font-weight:500}.panel-heading>span{border:1px solid var(--line);min-width:28px;height:28px;color:var(--muted);border-radius:50%;place-items:center;font-size:11px;display:grid}.tree-groups{height:calc(100% - 78px);padding:14px 10px 40px;overflow:auto}.tree-groups section{margin-bottom:18px}.tree-groups h3{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;justify-content:space-between;align-items:center;margin:0 8px 7px;font-size:10px;display:flex}.tree-groups h3 span{font-family:ui-monospace,monospace}.component-row{border-radius:5px;grid-template-columns:minmax(0,1fr) 34px;display:grid}.component-row:hover{background:#eef1ec}.tree-groups .component-select{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;grid-template-columns:9px minmax(0,1fr);gap:10px;min-width:0;padding:8px;display:grid}.tree-groups .component-select.selected{box-shadow:inset 2px 0 var(--green);background:#e5ebe5}.tree-groups .visibility-toggle{width:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;padding:0;display:grid}.tree-groups .visibility-toggle:hover{color:var(--ink);background:#fff}.visibility-toggle svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:16px;height:16px;overflow:visible}.visibility-toggle circle{fill:currentColor;stroke:none}.visibility-toggle .visibility-slash{stroke:#b74c43;stroke-width:2px}.component-hidden .component-select{opacity:.5}.tree-groups strong,.tree-groups small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.tree-groups strong{margin-bottom:3px;font-size:12px;font-weight:600}.tree-groups small{color:#7a8581;font-family:ui-monospace,monospace;font-size:9px}.kind-swatch{background:#89938e;border-radius:1px;width:7px;height:7px;margin-top:3px}.kind-wall{background:#9a7858}.kind-slab{background:#8c9292}.kind-roof{background:#4c5559}.kind-door{background:#b87942}.kind-window{background:#65a2b2}.kind-space{background:#6ca3a2}.kind-opening{background:#c5a563}.kind-assembly{background:#6d7d70}.viewport{background:#d9ddd8;min-width:0;min-height:0;position:relative;overflow:hidden}.canvas-host{position:absolute;inset:0}.canvas-host canvas{width:100%;height:100%;display:block}.loading-card,.error-card{text-align:center;background:#fafbf8e6;border:1px solid #ffffff8c;border-radius:7px;min-width:230px;padding:18px 22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 15px 50px #232d2a1f}.loading-card span{background:var(--accent);width:32px;height:2px;margin:0 auto 13px;animation:1.2s ease-in-out infinite alternate scan;display:block}.loading-card p,.error-card p{color:var(--muted);margin:0;font-size:12px}.error-card strong{margin-bottom:7px;font-family:Georgia,serif;display:block}@keyframes scan{0%{transform:translate(-25px)}to{transform:translate(25px)}}.viewport-tools{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fafbf8e6;border:1px solid #28353126;border-radius:5px;flex-wrap:wrap;max-width:calc(100% - 36px);display:flex;position:absolute;bottom:18px;left:18px;overflow:hidden;box-shadow:0 8px 25px #262e2b14}.viewport-tools a{color:inherit;align-items:center;padding:10px;font-size:12px;display:inline-flex}.viewport-tools select,.viewport-tools input[type=number]{color:#26332e;background:#fff;border:1px solid #b6c2b8;border-radius:3px;max-width:160px;padding:4px}.viewport-tools label>span+select{margin-inline-start:6px}.viewport-tools input[type=number]{width:90px}.solar-result{padding:16px;font-size:13px;line-height:1.5}.viewport-tools button,.viewport-tools label{cursor:pointer;background:0 0;border:0;align-items:center;min-height:38px;padding:0 12px;font-size:11px;display:flex}.viewport-tools button{border-right:1px solid var(--line)}.viewport-tools button:hover,.viewport-tools label:hover{background:#fff}.viewport-tools button:disabled{color:#929a96;cursor:default}.viewport-tools button:disabled:hover{background:0 0}.viewport-tools input{width:13px;height:13px;accent-color:var(--green);margin:0 7px 0 0}.axis-key{color:#3d4a46;align-content:start;justify-items:center;display:grid;position:absolute;top:17px;right:17px}.orientation-compass{width:64px;height:64px}.orientation-compass circle{fill:#fafbf8cc;stroke:#2d3c3738}.orientation-compass text{fill:var(--ink);text-anchor:middle;dominant-baseline:central;font:700 10px Arial,sans-serif}.north-needle{fill:var(--green)}.south-needle{fill:#a4b1a9}.orientation-caption{color:var(--muted);font-size:9px}.gesture-hints{background:#fafbf8cc;border-radius:4px;margin-top:6px;padding:3px 6px;display:flex;position:relative}.gesture-hint+.gesture-hint:before{content:"·";color:var(--muted);margin:0 4px}.gesture-hint button{color:#52635c;cursor:help;background:0 0;border:0;padding:2px 0;font-size:10px}.gesture-hint button:hover,.gesture-hint button:focus-visible{color:var(--ink);text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.gesture-hint button:focus-visible{outline:1px solid var(--green);outline-offset:3px}.gesture-tooltip{z-index:2;border:1px solid var(--line);color:#52635c;background:#fafbf8f7;border-radius:5px;width:210px;padding:9px 11px;font-size:11px;line-height:1.5;position:absolute;bottom:100%;right:0;box-shadow:0 4px 16px #262e2b1a}.inspector{position:relative}.large-swatch{box-shadow:0 0 0 1px var(--line);border:4px solid #fff!important;width:24px!important;min-width:24px!important;height:24px!important}.empty-selection{height:calc(100% - 160px);color:var(--muted);text-align:center;place-content:center;padding:35px;display:grid}.empty-selection p{max-width:210px;font:14px/1.55 Georgia,serif}.selection-glyph{border:1px solid #9aa49f;width:42px;height:42px;margin:0 auto 14px;transform:rotate(30deg)skew(-5deg)}.element-details{height:calc(100% - 160px);padding:22px 18px 35px;overflow:auto}.element-details h3{margin:0 0 5px;font:500 20px/1.2 Georgia,serif}.element-details code{color:var(--muted);font-size:10px}.element-details dl{border-top:1px solid var(--line);margin:24px 0}.element-details dl div{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.15fr;gap:10px;padding:10px 0;display:grid}.element-details dt{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px}.element-details dd{text-align:right;margin:0;font-size:11px}.element-details details{border:1px solid var(--line);border-radius:5px}.element-details summary{color:var(--muted);cursor:pointer;text-transform:uppercase;letter-spacing:.06em;padding:10px;font-size:10px}.element-details pre{border-top:1px solid var(--line);background:#f0f2ee;max-height:250px;margin:0;padding:10px;font:9px/1.6 ui-monospace,monospace;overflow:auto}.inspector footer{border-top:1px solid var(--line);background:#eef1ed;padding:12px 18px;display:grid;position:absolute;bottom:0;left:0;right:0}.inspector footer p{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px;font-size:9px;font-weight:700}.inspector footer span{font-family:ui-monospace,monospace;font-size:9px;line-height:1.5}@media (width<=1000px){.review-shell{--components-width:220px;--details-width:0px}.inspector{width:310px;position:fixed;top:116px;bottom:0;right:0;box-shadow:-18px 0 45px #28322f1f}}@media (width<=680px){.review-shell{--components-width:0px;grid-template-rows:64px 44px minmax(0,1fr)}.review-header{height:64px;padding:0 14px}.brand-mark{width:28px;height:28px;transform:scale(.84)rotate(-8deg)}.brand-copy h1{max-width:44vw;font-size:16px}.brand-copy{flex:1}.review-header{gap:8px}.header-status{gap:6px}.model-switcher{width:32vw;min-width:80px;padding:5px}.brand-copy p,.header-status>span:not(.status-dot):not(.revision-badge){display:none}.revision-badge{margin-left:2px}.model-tree{width:min(290px,88vw);position:fixed;top:108px;bottom:0;left:0;box-shadow:18px 0 45px #28322f1f}.inspector{width:min(310px,92vw);top:108px}.viewport-tools{bottom:12px;left:12px}.axis-key{right:12px}}@media (prefers-reduced-motion:reduce){.loading-card span{animation:none}}.project-requirements{margin:0 16px 18px;font-size:12px;line-height:1.5}.project-requirements summary{cursor:pointer}.project-requirements small{overflow-wrap:anywhere;display:block}.project-requirements .requirement-entry{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.project-requirements .requirement-entry p{margin:5px 0}.project-requirements .requirement-entry small{white-space:normal;font:10px/1.5 Arial,sans-serif}.requirement-status{color:var(--muted);font-size:10px;font-weight:600}.requirement-satisfied{color:#31634c}.requirement-violated{color:#a03830}.requirement-measurement{margin-top:6px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
