*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#e8f7f5;--panel:#f8fafc;--panel-light:#fff;--border:#cbd5e1;--accent:#14b8a6;--accent-dim:#0d9488;--warning:#f59e0b;--error:#ef4444;--success:#16a34a;--text:#0f172a;--text-dim:#374151;--accent-text:#0a7264;--font-mono:"Cascadia Mono", "Consolas", "Courier New", monospace;--font-ui:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}html,body,#root{background:radial-gradient(circle at top left, #2dd4bf2e, transparent 30%), linear-gradient(180deg, #f8fffe 0%, var(--bg) 100%);width:100%;height:100%;color:var(--text);font-family:var(--font-ui);font-size:13px;overflow:hidden}@media (width<=1023px){html,body,#root{min-height:100%;overscroll-behavior:none;touch-action:manipulation;min-height:-webkit-fill-available}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--panel)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent-dim)}.panel-grid{background-image:linear-gradient(#14b8a60f 1px,#0000 1px),linear-gradient(90deg,#14b8a60f 1px,#0000 1px);background-size:20px 20px}.mono{font-family:var(--font-mono)}.glass{-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);background:#f8fafcd1;border-radius:6px}.btn-accent{background:var(--accent);color:#052e2b;font-family:var(--font-mono);cursor:pointer;border:none;border-radius:4px;padding:6px 14px;font-size:12px;font-weight:600;transition:background .15s}.btn-accent:hover{background:var(--accent-dim)}.btn-ghost{color:var(--text-dim);border:1px solid var(--border);font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:4px;padding:5px 12px;font-size:12px;transition:border-color .15s,color .15s,background .15s}.btn-ghost:hover{border-color:var(--accent);color:var(--accent-dim);background:#14b8a60f}input[type=number],input[inputmode=decimal],input[inputmode=numeric]{text-align:center!important;padding-left:2px!important;padding-right:2px!important}.camera-angle-slider{appearance:none;cursor:pointer;background:0 0;width:100%;height:18px;margin:0}.camera-angle-slider::-webkit-slider-runnable-track{background:linear-gradient(90deg,#cbd5e1 0%,#14b8a6 50%,#cbd5e1 100%);border-radius:999px;height:4px;box-shadow:inset 0 0 0 1px #0f172a14}.camera-angle-slider::-webkit-slider-thumb{appearance:none;background:#0d9488;border:2px solid #fff;border-radius:50%;width:14px;height:14px;margin-top:-5px;box-shadow:0 1px 5px #0f172a47}.camera-angle-slider::-moz-range-track{background:linear-gradient(90deg,#cbd5e1 0%,#14b8a6 50%,#cbd5e1 100%);border-radius:999px;height:4px;box-shadow:inset 0 0 0 1px #0f172a14}.camera-angle-slider::-moz-range-thumb{background:#0d9488;border:2px solid #fff;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 5px #0f172a47}.camera-angle-slider:focus-visible{outline-offset:3px;border-radius:999px;outline:2px solid #14b8a666}.simulator-loading-screen{z-index:20000;color:#f8fafc;opacity:1;pointer-events:all;background:radial-gradient(circle at 50% 42%,#14b8a62e,#0000 24%),radial-gradient(circle,#14213a 0%,#0f172a 58%,#07101f 100%);place-items:center;transition:opacity .36s;display:grid;position:fixed;inset:0;overflow:hidden}.simulator-loading-screen:before,.simulator-loading-screen:after{content:"";pointer-events:none;position:absolute;inset:-25%}.simulator-loading-screen:before{background-color:#0000;background-image:linear-gradient(#2dd4bf09 1px,#0000 1px),linear-gradient(90deg,#2dd4bf09 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:42px 42px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;animation:12s linear infinite simulator-loader-grid-drift;-webkit-mask-image:radial-gradient(circle,#000 0%,#0000 64%);mask-image:radial-gradient(circle,#000 0%,#0000 64%)}.simulator-loading-screen:after{background:conic-gradient(#0000 0deg,#2dd4bf12 18deg,#0000 42deg 360deg);animation:4.8s linear infinite simulator-loader-scan}.simulator-loading-screen[data-phase=fading]{opacity:0;pointer-events:none}.simulator-loader-shell{z-index:1;text-align:center;flex-direction:column;align-items:center;width:min(360px,100vw - 48px);display:flex;position:relative}.simulator-loader-lens{place-items:center;width:218px;height:218px;margin-bottom:26px;display:grid;position:relative}.simulator-loader-focus-ring{border:1px solid #5eead45c;border-radius:50%;position:absolute;box-shadow:0 0 22px #14b8a61f,inset 0 0 18px #14b8a614}.simulator-loader-focus-ring:before,.simulator-loader-focus-ring:after{content:"";border-radius:inherit;border:2px solid #0000;border-color:#2dd4bfeb #0000 #5eead447;position:absolute;inset:-5px}.simulator-loader-focus-ring-outer{animation:5.5s linear infinite simulator-loader-ring-spin;inset:0}.simulator-loader-focus-ring-inner{border-color:#7dd3fc38;animation:3.6s linear infinite reverse simulator-loader-ring-spin;inset:18px}.simulator-loader-focus-ring-inner:before,.simulator-loader-focus-ring-inner:after{border-top-color:#7dd3fc9e;border-bottom-color:#2dd4bf33}.simulator-loader-aperture{opacity:.72;border-radius:50%;animation:2.4s ease-in-out infinite simulator-loader-aperture-pulse;position:absolute;inset:34px;overflow:hidden}.simulator-loader-aperture-blade{--blade-angle:calc(var(--blade-index) * 60deg);transform-origin:0 0;width:86px;height:116px;transform:rotate(var(--blade-angle)) translate(8px, -58px) skewY(-18deg);background:linear-gradient(145deg,#0f766e2e,#2dd4bf0a 58%,#7dd3fc38);border-right:1px solid #5eead433;border-radius:58% 18% 54% 16%;position:absolute;top:50%;left:50%}.simulator-loader-glow{filter:blur(5px);background:radial-gradient(circle,#14b8a638,#0f172a14 58%,#0000 72%);border-radius:50%;animation:1.8s ease-in-out infinite simulator-loader-glow-pulse;position:absolute;inset:48px}.simulator-loader-logo{z-index:2;object-fit:contain;filter:drop-shadow(0 14px 32px #14b8a638);border-radius:28px;width:126px;height:126px;position:relative}.simulator-loader-focus-flash{z-index:3;opacity:0;background:#ccfbf1;border-radius:50%;width:10px;height:10px;animation:2.8s ease-in-out infinite simulator-loader-focus-flash;position:absolute;box-shadow:0 0 16px 5px #5eead4b8}.simulator-loader-wordmark{font-family:var(--font-mono);letter-spacing:4px;color:#f8fafc;font-size:20px;font-weight:600}.simulator-loader-subtitle{font-family:var(--font-mono);letter-spacing:3px;color:#99f6e4b8;margin-top:6px;font-size:10px}.simulator-loader-status{min-height:18px;font-family:var(--font-mono);letter-spacing:.8px;color:#e2e8f0d1;margin-top:28px;font-size:11px}.simulator-loader-progress{background:#94a3b82e;border-radius:999px;width:100%;height:4px;margin-top:10px;overflow:hidden;box-shadow:inset 0 0 0 1px #94a3b81a}.simulator-loader-progress>span{border-radius:inherit;background:linear-gradient(90deg,#0d9488,#2dd4bf,#7dd3fc);height:100%;transition:width .18s ease-out;display:block;box-shadow:0 0 14px #2dd4bfa6}.simulator-loader-percentage{font-family:var(--font-mono);color:#99f6e4c7;margin-top:8px;font-size:11px}.simulator-loader-error{color:#fecaca;font-family:var(--font-mono);max-width:320px;margin-top:14px;font-size:10px;line-height:1.5}.simulator-loader-continue{color:#ccfbf1;cursor:pointer;font-family:var(--font-mono);background:#14b8a62e;border:1px solid #5eead473;border-radius:999px;margin-top:14px;padding:8px 14px;font-size:11px;font-weight:700}.simulator-loader-continue:hover,.simulator-loader-continue:focus-visible{outline-offset:2px;background:#14b8a647;outline:2px solid #5eead452}@keyframes simulator-loader-grid-drift{to{transform:translate(42px,42px)}}@keyframes simulator-loader-scan{to{transform:rotate(360deg)}}@keyframes simulator-loader-ring-spin{to{transform:rotate(360deg)}}@keyframes simulator-loader-aperture-pulse{0%,to{transform:rotate(-6deg)scale(.96)}50%{transform:rotate(6deg)scale(1.04)}}@keyframes simulator-loader-glow-pulse{0%,to{opacity:.55;transform:scale(.94)}50%{opacity:1;transform:scale(1.08)}}@keyframes simulator-loader-focus-flash{0%,62%,to{opacity:0;transform:scale(.2)}68%{opacity:.9;transform:scale(1)}76%{opacity:0;transform:scale(5)}}@media (prefers-reduced-motion:reduce){.simulator-loading-screen,.simulator-loading-screen:before,.simulator-loading-screen:after,.simulator-loader-focus-ring-outer,.simulator-loader-focus-ring-inner,.simulator-loader-aperture,.simulator-loader-glow,.simulator-loader-focus-flash,.simulator-loader-progress>span{transition-duration:1ms;animation:none}}.viewport-mode-toggle{border:1px solid var(--border);background:var(--panel);border-radius:4px;grid-template-columns:repeat(2,minmax(34px,1fr));height:28px;display:inline-grid;overflow:hidden}.viewport-mode-toggle button{border:0;border-right:1px solid var(--border);min-width:36px;color:var(--text-dim);cursor:pointer;font:700 10px var(--font-mono);background:0 0}.viewport-mode-toggle button:last-child{border-right:0}.viewport-mode-toggle button.active{background:var(--accent);color:#fff}.persistent-viewport-layer{opacity:0;position:absolute;inset:0}.persistent-viewport-layer.active{opacity:1;visibility:visible;pointer-events:auto}.persistent-viewport-layer.inactive{opacity:0;visibility:hidden;pointer-events:none}.convert-to-2d-button{white-space:nowrap}.collapse-chevron-button{border:1px solid var(--border);width:28px;height:24px;color:var(--accent);cursor:pointer;background:#ffffffe6;border-radius:999px;place-items:center;display:grid}.collapse-chevron{border-bottom:2px solid;border-right:2px solid;flex:none;width:7px;height:7px;transition:transform .12s;display:inline-block;transform:rotate(-45deg)}.collapse-chevron.expanded{transform:rotate(45deg)translate(-1px,-1px)}.floor-plan-workspace{background:#dcecea;position:absolute;inset:0;overflow:hidden}.floor-plan-toolbar{z-index:4;border:1px solid var(--border);max-width:calc(100% - 560px);font:10px var(--font-mono);background:#f8fafcf5;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;padding:7px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 8px 18px #0f172a1f}.floor-plan-toolbar button,.floor-plan-toolbar input{border:1px solid var(--border);min-height:28px;color:var(--text);font:10px var(--font-mono);background:#fff;border-radius:4px}.floor-plan-toolbar button{cursor:pointer;padding:5px 9px}.floor-plan-toolbar button.active{background:var(--accent);color:#fff}.floor-plan-toolbar input[type=number]{width:56px;padding:3px 5px}.floor-plan-toolbar input[type=range]{vertical-align:middle;width:70px}.floor-plan-toolbar label{align-items:center;gap:4px;display:inline-flex}.floor-plan-status{z-index:3;max-width:min(700px,65vw);color:var(--text-dim);font:10px var(--font-mono);pointer-events:none;background:#f8fafce6;border-radius:4px;padding:4px 10px;position:absolute;top:64px;left:50%;transform:translate(-50%)}.floor-plan-empty{text-align:center;color:var(--text-dim);font-family:var(--font-ui);place-content:center;gap:8px;display:grid;position:absolute;inset:0}.floor-plan-empty strong{color:var(--text);font-size:18px}@media (width<=1023px){.floor-plan-toolbar{max-width:none;top:52px;left:8px;right:8px;transform:none}.floor-plan-status{max-width:calc(100vw - 32px);top:148px}}
