:root{color-scheme:light dark;&:has(>head>meta[name=color-scheme][content=dark]){color-scheme:dark}&:has(>head>meta[name=color-scheme][content=light]){color-scheme:light}--bg-canvas: light-dark(#e9e2d8, #141210);--surface-glass: light-dark(rgba(250, 246, 240, .86), rgba(24, 21, 19, .84));--surface-glass-strong: light-dark(rgba(252, 249, 244, .95), rgba(18, 16, 14, .94));--surface-card: light-dark(rgba(241, 235, 226, .78), rgba(35, 31, 28, .76));--surface-card-hover: light-dark(rgba(232, 223, 211, .94), rgba(48, 43, 38, .92));--surface-input: light-dark(rgba(255, 253, 249, .92), rgba(15, 13, 12, .82));--text-primary: light-dark(#1f1b18, #f5f0e8);--text-secondary: light-dark(#574e46, #c6bcb0);--text-muted: light-dark(#7d7267, #8f8478);--accent-terracotta: #c46238;--accent-terracotta-soft: light-dark(rgba(196, 98, 56, .14), rgba(196, 98, 56, .24));--accent-sage: light-dark(#3b694c, #7fa38b);--accent-sage-bg: light-dark(rgba(59, 105, 76, .14), rgba(127, 163, 139, .18));--accent-ochre: #d89b44;--border-subtle: light-dark(rgba(31, 27, 24, .11), rgba(245, 240, 232, .11));--border-strong: light-dark(rgba(31, 27, 24, .22), rgba(245, 240, 232, .22));--fp-bg: light-dark(rgba(236, 229, 218, .92), rgba(14, 12, 11, .85));--fp-room-fill: light-dark(rgba(215, 205, 191, .65), rgba(44, 39, 34, .68));--fp-room-stroke: light-dark(rgba(60, 52, 44, .36), rgba(235, 225, 210, .34));--fp-room-hover: light-dark(rgba(196, 98, 56, .22), rgba(196, 98, 56, .28));--fp-room-active: light-dark(rgba(196, 98, 56, .32), rgba(196, 98, 56, .38));--fp-label: light-dark(#2c2520, #ede5da);--shadow-soft: light-dark( 0 10px 28px rgba(28, 22, 18, .12), 0 12px 32px rgba(0, 0, 0, .44) );--radius-sm: 7px;--radius-md: 11px;--radius-lg: 14px;--topbar-h: 52px;--drawer-w: 336px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background-color:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-sans);font-size:13px;line-height:1.4;-webkit-font-smoothing:antialiased}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link:focus{position:fixed;top:8px;left:8px;z-index:9999;width:auto;height:auto;clip:auto;padding:6px 12px;background:var(--accent-terracotta);color:#fff;border-radius:var(--radius-sm)}svg{width:15px;height:15px;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round;fill:none;flex-shrink:0}.topbar{position:fixed;top:0;left:0;right:0;z-index:40;height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;background:var(--surface-glass-strong);backdrop-filter:blur(18px) saturate(140%);border-bottom:1px solid var(--border-subtle)}.brand-block{display:flex;align-items:center;gap:8px;min-inline-size:0;flex:0 1 auto;overflow:clip}.brand-badge{padding:3px 7px;border-radius:5px;background:var(--accent-terracotta-soft);border:1px solid rgba(196,98,56,.45);color:var(--accent-terracotta);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.04em;white-space:nowrap;flex-shrink:0}.brand-titles{min-inline-size:0;overflow:clip}.brand-titles h1{font-size:13px;font-weight:650;letter-spacing:-.01em;color:var(--text-primary);white-space:nowrap;overflow:clip;text-overflow:ellipsis}.brand-subtitle{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--text-secondary);white-space:nowrap}.brand-subtitle code{font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}.status-pill{display:inline-flex;align-items:center;padding:1px 6px;border-radius:999px;background:var(--accent-sage-bg);color:var(--accent-sage);font-family:var(--font-mono);font-weight:700;font-size:9.5px}.control-group{display:flex;align-items:center;gap:4px;background:var(--surface-card);padding:3px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);flex-shrink:0}.toolbar-sep{width:1px;height:18px;background:var(--border-subtle);margin:0 2px}.icon-btn,.chip-btn,.action-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:5px;height:30px;min-width:30px;padding:0 8px;border:1px solid transparent;background:transparent;color:var(--text-secondary);font-family:inherit;font-size:11.5px;font-weight:550;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background-color .14s ease,color .14s ease,border-color .14s ease}.icon-btn:hover,.chip-btn:hover,.action-btn:hover{color:var(--text-primary);background:var(--surface-card-hover)}.icon-btn.active,.icon-btn[aria-pressed=true],.chip-btn.active,.action-btn[aria-pressed=true]{background:var(--accent-terracotta);color:#fff;border-color:#ffffff29}.accent-btn{background:var(--accent-terracotta-soft);color:var(--accent-terracotta);border-color:#c4623861}.accent-btn:hover{background:var(--accent-terracotta);color:#fff}.theme-toggle-btn .icon-moon{display:none}:root[data-theme=light] .theme-toggle-btn .icon-sun{display:none}:root[data-theme=light] .theme-toggle-btn .icon-moon{display:block}.panel-actions{display:inline-flex;align-items:center;gap:3px;margin-left:auto;flex-shrink:0}.panel-icon-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;transition:background-color .12s ease,color .12s ease}.panel-icon-btn:hover{background:var(--surface-card-hover);color:var(--text-primary)}.panel-icon-btn svg{width:13.5px;height:13.5px}.viewport-container{position:relative;width:100vw;height:100vh;padding-top:var(--topbar-h);overflow:clip}#haus-canvas{display:block;width:100%;height:100%;outline:none;cursor:grab}#haus-canvas:active{cursor:grabbing}body.hud-collapsed .hud-room-pill,body.hud-collapsed .selected-banner,body.hud-collapsed .minimap-card,body.hud-collapsed .camera-dock{opacity:0;pointer-events:none;transform:translateY(6px)}.hud-room-pill{position:absolute;top:calc(var(--topbar-h) + 12px);left:12px;z-index:20;max-width:min(360px,calc(100vw - 24px));padding:6px 8px 6px 11px;border-radius:var(--radius-md);background:var(--surface-glass);backdrop-filter:blur(16px) saturate(140%);border:1px solid var(--border-subtle);box-shadow:var(--shadow-soft);transition:opacity .16s ease,transform .16s ease}.hud-room-header{display:flex;align-items:center;gap:7px;min-inline-size:0}.hud-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-terracotta);box-shadow:0 0 8px var(--accent-terracotta);flex-shrink:0}#hud-room-name{font-size:12px;font-weight:650;white-space:nowrap;overflow:clip;text-overflow:ellipsis}.hud-dims{font-family:var(--font-mono);font-size:10.5px;color:var(--text-muted);white-space:nowrap;min-inline-size:0;overflow:clip;text-overflow:ellipsis}.hud-controls-hint{display:flex;flex-wrap:wrap;gap:5px 8px;margin-top:6px;padding-top:6px;border-top:1px solid var(--border-subtle);font-size:10.5px;color:var(--text-secondary)}.hud-controls-hint[hidden]{display:none}.hud-controls-hint kbd{display:inline-block;padding:1px 4px;border-radius:4px;background:var(--surface-card);border:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:9.5px;color:var(--text-primary)}.selected-banner{position:absolute;top:calc(var(--topbar-h) + 56px);left:12px;z-index:25;width:min(310px,calc(100vw - 24px));padding:8px 10px;border-radius:var(--radius-md);background:var(--surface-glass-strong);backdrop-filter:blur(18px);border:1px solid rgba(196,98,56,.5);box-shadow:var(--shadow-soft);transition:opacity .16s ease,transform .16s ease}.selected-banner[hidden]{display:none}.selected-banner-header{display:flex;align-items:center;gap:6px;min-inline-size:0}.selected-banner-header strong{font-size:11.5px;font-weight:650;min-inline-size:0;overflow:clip;text-overflow:ellipsis;white-space:nowrap}.quote-badge{padding:2px 6px;border-radius:5px;background:var(--accent-terracotta);color:#fff;font-family:var(--font-mono);font-size:10px;font-weight:700;white-space:nowrap;flex-shrink:0}.selected-meta{margin-top:4px;font-size:10.5px;color:var(--text-secondary);font-family:var(--font-mono)}.selected-banner.is-minimized .selected-meta{display:none}.minimap-card{position:absolute;bottom:12px;left:12px;z-index:20;width:216px;padding:7px 9px;border-radius:var(--radius-md);background:var(--surface-glass);backdrop-filter:blur(16px) saturate(140%);border:1px solid var(--border-subtle);box-shadow:var(--shadow-soft);transition:opacity .16s ease,transform .16s ease}.minimap-card[hidden]{display:none}.minimap-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.minimap-card.is-minimized .minimap-header{margin-bottom:0}.minimap-card.is-minimized #floorplan-svg{display:none}.minimap-title{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;letter-spacing:.05em;color:var(--text-secondary)}.mini-header-icon{width:12px;height:12px;color:var(--accent-terracotta)}.minimap-coords{font-family:var(--font-mono);font-size:10px;color:var(--accent-ochre);white-space:nowrap}#floorplan-svg{width:100%;height:132px;display:block;border-radius:6px;background:var(--fp-bg);border:1px solid var(--border-subtle)}.fp-room{fill:var(--fp-room-fill);stroke:var(--fp-room-stroke);stroke-width:85;cursor:pointer;transition:fill .14s ease}.fp-room:hover{fill:var(--fp-room-hover)}.fp-room.active{fill:var(--fp-room-active);stroke:#c46238;stroke-width:125}.fp-carpentry{fill:#d89b4457;stroke:#d89b44b8;stroke-width:45;pointer-events:none}.fp-room-label{fill:var(--fp-label);font-family:var(--font-sans);font-size:400px;font-weight:700;text-anchor:middle;pointer-events:none}.cam-cone{fill:#c4623852;stroke:#c46238c7;stroke-width:55;pointer-events:none}.cam-dot{fill:#ff7a45;stroke:#fff;stroke-width:90;pointer-events:none}.camera-dock{position:absolute;bottom:12px;left:238px;right:calc(var(--drawer-w) + 22px);z-index:20;width:fit-content;max-width:calc(100vw - 260px - var(--drawer-w));margin-inline:auto;display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:var(--radius-lg);background:var(--surface-glass-strong);backdrop-filter:blur(18px) saturate(140%);border:1px solid var(--border-subtle);box-shadow:var(--shadow-soft);transition:right .18s ease,max-width .18s ease,opacity .16s ease,transform .16s ease}body.inspector-collapsed .camera-dock,body.inspector-minimized .camera-dock{right:12px;max-width:calc(100vw - 252px)}body.radar-hidden .camera-dock{left:12px}.camera-dock.is-collapsed .camera-preset-list{display:none}.camera-dock.is-collapsed .dock-toggle-btn svg{transform:rotate(180deg)}.camera-preset-list{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:3px;min-inline-size:0}.camera-preset-list .preset-btn{height:28px;padding:0 7px;font-size:11px;gap:4px}.camera-preset-list .preset-btn svg{width:13px;height:13px}.inspector-drawer{position:fixed;top:calc(var(--topbar-h) + 10px);right:10px;bottom:12px;z-index:30;width:var(--drawer-w);display:flex;flex-direction:column;border-radius:var(--radius-lg);background:var(--surface-glass-strong);backdrop-filter:blur(20px) saturate(140%);border:1px solid var(--border-subtle);box-shadow:var(--shadow-soft);overflow:clip;transition:height .18s ease,bottom .18s ease}.inspector-drawer[hidden]{display:none}.inspector-drawer.is-minimized{bottom:auto}.inspector-drawer.is-minimized .inspector-body{display:none}.inspector-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border-bottom:1px solid var(--border-subtle)}.inspector-drawer.is-minimized .inspector-header{border-bottom:none}.inspector-title-group{min-inline-size:0}.inspector-header h2{font-size:12.5px;font-weight:650;white-space:nowrap;overflow:clip;text-overflow:ellipsis}.inspector-subtitle{font-size:10.5px;color:var(--text-muted)}.inspector-subtitle code{font-family:var(--font-mono);color:var(--accent-ochre)}.inspector-body{display:flex;flex-direction:column;flex:1;min-block-size:0;min-inline-size:0}.inspector-filters{display:grid;grid-template-columns:1fr 132px;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border-subtle)}.search-field{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:8px;width:13px;height:13px;color:var(--text-muted);pointer-events:none}.inspector-filters input,.inspector-filters select{width:100%;min-inline-size:0;height:28px;padding:0 8px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface-input);color:var(--text-primary);font-family:inherit;font-size:11px}.search-field input{padding-left:26px}.inspector-filters input:focus,.inspector-filters select:focus{outline:2px solid var(--accent-terracotta);outline-offset:-1px}.quotation-list{flex:1;overflow-y:auto;overflow-x:clip;padding:8px;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;scrollbar-gutter:stable;overscroll-behavior:contain}.quote-card{width:100%;min-inline-size:0;text-align:left;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface-card);color:var(--text-primary);cursor:pointer;transition:background-color .14s ease,border-color .14s ease}.quote-card:hover{background:var(--surface-card-hover);border-color:var(--border-strong)}.quote-card.active{background:var(--accent-terracotta-soft);border-color:var(--accent-terracotta)}.quote-card-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:3px}.quote-id-pill{font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--accent-terracotta);background:var(--accent-terracotta-soft);padding:1px 6px;border-radius:4px}.quote-price{font-family:var(--font-mono);font-size:10.5px;font-weight:650;color:var(--text-secondary)}.quote-desc{font-size:11.5px;font-weight:550;color:var(--text-primary);margin-bottom:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:clip}.quote-meta{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:clip;text-overflow:ellipsis}dialog#gallery-modal{margin:auto;width:min(1140px,94vw);max-height:88vh;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-glass-strong);color:var(--text-primary);box-shadow:var(--shadow-soft);padding:0;overflow:clip;opacity:0;transform:scale(.97);transition:opacity .18s ease,transform .18s ease,overlay .18s allow-discrete,display .18s allow-discrete}dialog#gallery-modal:open{opacity:1;transform:scale(1)}@starting-style{dialog#gallery-modal:open{opacity:0;transform:scale(.97)}}dialog#gallery-modal::backdrop{background:#080706b8;backdrop-filter:blur(8px)}.modal-inner{display:flex;flex-direction:column;max-height:88vh}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.modal-header h2{font-size:14px;font-weight:650}.modal-subtitle{font-size:11.5px;color:var(--text-secondary)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;padding:14px 16px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;scrollbar-gutter:stable;overscroll-behavior:contain}.gallery-card{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--surface-card);overflow:clip}.gallery-card img{width:100%;height:205px;object-fit:cover;display:block;background:#141210}.gallery-card figcaption{padding:9px 11px;display:flex;flex-direction:column;gap:3px}.gallery-card figcaption strong{font-size:11.5px;color:var(--text-primary)}.gallery-card figcaption span{font-size:10.5px;color:var(--text-secondary)}.walkthrough-hud{position:fixed;inset:0;pointer-events:none;z-index:28}.walkthrough-hud[hidden]{display:none!important}.walkthrough-reticle{position:absolute;top:50%;left:50%;width:8px;height:8px;transform:translate(-50%,-50%);border-radius:50%;border:1.5px solid rgba(255,255,255,.85);background:#c46238a6;box-shadow:0 0 8px #00000073}.walkthrough-prompt{position:absolute;bottom:62px;left:50%;transform:translate(-50%);padding:6px 14px;border-radius:999px;background:var(--surface-glass-strong);border:1px solid var(--border-strong);color:var(--text-primary);font-size:11.5px;font-weight:560;white-space:nowrap;box-shadow:var(--shadow-soft)}.walkthrough-prompt kbd{padding:1px 5px;border-radius:4px;background:var(--accent-terracotta-soft);color:var(--accent-terracotta);font-family:var(--font-mono);font-size:10.5px;font-weight:700}@media (max-width: 1480px){.topbar .btn-short-label{display:none}.topbar .icon-btn{padding:0 7px}}@media (max-width: 960px){:root{--drawer-w: 296px}.brand-subtitle code{display:none}.camera-dock{left:12px;right:12px;max-width:calc(100vw - 24px)}.minimap-card{bottom:54px}}
