.dark,.dark .studio-theme{--fp-surface: var(--card);--fp-subtle: var(--muted);--fp-text: var(--foreground);--fp-muted: var(--muted-foreground);--fp-border: var(--border);--fp-selected: #20365c;--fp-danger: #fda4af;--fp-danger-surface: #3b1d27;--fp-danger-border: #753343;--fp-warning: #fcd78a;--fp-warning-surface: #382b18;--fp-warning-border: #765b2e;--fp-success: #86efac;--fp-success-surface: #183728}.dark body.floorplan-editor-active,.dark :is(.floorplan-editor-route,.floorplan-editor-portal,.floorplan-tool-workspace),.dark .floorplan-editor-route .asset-panel{color-scheme:dark;--color-canvas: #000000;--color-panel: var(--card);--color-panel-strong: var(--card);--color-surface: var(--card);--color-surface-subtle: var(--muted);--color-surface-muted: var(--muted);--color-surface-selected: var(--fp-selected);--color-text: var(--foreground);--color-text-secondary: var(--muted-foreground);--color-text-muted: var(--muted-foreground);--color-text-tertiary: var(--muted-foreground);--floorplan-text-muted: var(--muted-foreground);--color-border: var(--border);--color-border-strong: #525866;--color-popover: var(--popover);--color-popover-foreground: var(--popover-foreground);--color-danger: var(--fp-danger);--color-accent: var(--floorplan-brand);--color-accent-strong: var(--floorplan-brand-hover);--color-accent-soft: var(--floorplan-brand-soft);--floorplan-brand: #77a7ff;--floorplan-brand-hover: #a8c6ff;--floorplan-brand-soft: #20365c;--floorplan-brand-softer: #1c2b44;--floorplan-brand-border: #496da8}.dark .floorplan-artwork-canvas,.dark .wall-recognition-overlay>:is(img,canvas),.dark .floorplan-editor-route :is(.custom-asset-library__preview img,.editor-history__thumbnail img,.furniture-import__candidate img,.wall-image-import__drop img,.manual-furniture-selection__preview img,.asset-grid__source-image,.window-style-controls__options svg),.dark [data-floorplan-artwork=true] img,.dark .floorplan-image-upload img,.dark .konva-text-editor__input{filter:invert(1) hue-rotate(180deg)}.dark body:has([role=tabpanel]:not([hidden]) [data-floorplan-artwork=true])>[role=dialog][aria-modal=true]>img{filter:invert(1) hue-rotate(180deg)}.dark .floorplan-editor-route .konva-whiteboard,.dark .floorplan-editor-route .whiteboard-surface{background-color:#000}.dark .floorplan-editor-route .raster-eraser__cursor{border-color:#fff}body.floorplan-editor-active,.floorplan-editor-route,.floorplan-editor-portal{overflow-x:hidden;--color-canvas: #ffffff;--color-panel: #ffffff;--color-panel-strong: #ffffff;--color-surface: #ffffff;--color-surface-subtle: #f7f7f5;--color-surface-selected: var(--floorplan-brand-soft);--color-text: #202124;--color-text-muted: #52525b;--color-text-tertiary: #71717a;--color-border: #e5e5e2;--color-border-strong: #d2d2ce;--color-accent: var(--floorplan-brand);--color-accent-strong: var(--floorplan-brand-hover);--focus-ring: 0 0 0 3px rgb(var(--floorplan-brand-rgb) / 28%);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--shadow-panel: 0 12px 36px rgb(32 33 36 / 6%)}.floorplan-editor-route{width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;isolation:isolate;background:var(--color-canvas);color:var(--color-text);color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.floorplan-editor-route,.floorplan-editor-route *,.floorplan-editor-route *:before,.floorplan-editor-route *:after{box-sizing:border-box}.floorplan-editor-route__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%;height:100%;background:var(--color-canvas);color:var(--color-text-muted);font-size:.875rem}@media(prefers-reduced-motion:reduce){.floorplan-editor-route *,.floorplan-editor-route *:before,.floorplan-editor-route *:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.floorplan-manual-workspace{height:calc(100svh - 4rem);min-height:480px}.floorplan-tool-workspace{height:calc(100svh - 10.75rem);min-height:640px}@media(max-width:900px){.floorplan-tool-workspace{height:auto;min-height:calc(100svh - 4rem);overflow:visible}.floorplan-tool-workspace .floorplan-generation-workspace,.floorplan-tool-workspace .floorplan-optimizer{height:auto;overflow:visible}}.floorplan-preview-actions{display:flex;min-width:0;min-height:73px;flex-shrink:0;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:15px 20px;border-top:1px solid var(--border, #e5e7eb);background:var(--studio-surface, #fff)}.floorplan-preview-actions__group{display:flex;flex-wrap:wrap;gap:8px}.floorplan-preview-actions :is(button,a){display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border, #e5e7eb);border-radius:8px;padding:7px 12px;background:transparent;color:var(--muted-foreground, #64748b);font:inherit;font-size:12px;text-decoration:none;cursor:pointer}.floorplan-preview-actions :is(button,a):hover:not(:disabled){color:var(--floorplan-brand);background:var(--floorplan-brand-softer);border-color:var(--floorplan-brand-border)}.floorplan-preview-actions :is(button,a):focus-visible{outline:2px solid var(--floorplan-brand);outline-offset:2px}.floorplan-preview-actions .floorplan-preview-actions__edit{color:var(--floorplan-brand);border-color:var(--floorplan-brand-border);background:var(--floorplan-brand-softer)}.floorplan-preview-actions button:disabled{opacity:.45;cursor:not-allowed}@media(min-width:901px)and (max-width:1200px){.floorplan-preview-actions__label{display:none}.floorplan-preview-actions :is(button,a){width:42px;padding-inline:0}}.floorplan-preview-canvas{position:relative;display:grid;min-width:0;min-height:0;overflow:hidden;place-items:center;background-color:var(--fp-subtle, #f8fafc);background-image:radial-gradient(#dbe3ee .8px,transparent .8px);background-size:20px 20px;padding:28px}.floorplan-preview-canvas__frame{position:relative;display:flex;box-sizing:border-box;width:min(100%,780px);aspect-ratio:4 / 3;max-height:100%;min-height:0;align-items:center;justify-content:center;border:1px solid var(--fp-border, #dbe3ee);border-radius:8px;background:var(--fp-surface, #fff);padding:24px;box-shadow:0 20px 55px #0f172a24;cursor:zoom-in}.floorplan-preview-canvas__frame:focus-visible{outline:2px solid var(--floorplan-brand);outline-offset:4px}.floorplan-preview-canvas__frame>img{display:block;width:100%;height:100%;object-fit:contain}@media(max-width:900px){.floorplan-preview-canvas{min-height:450px}}@media(max-width:520px){.floorplan-preview-canvas{min-height:360px;padding:16px}.floorplan-preview-canvas__frame{padding:14px}}.floorplan-loading-spinner{display:inline-block;flex:none;width:30px;height:30px;border:3px solid var(--fp-border, #cbd5e1);border-top-color:var(--floorplan-brand, #155dfc);border-radius:50%;animation:floorplan-loading-spin .8s linear infinite}@keyframes floorplan-loading-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.floorplan-loading-spinner{animation:none}}.floorplan-image-upload{position:relative;display:flex;min-height:240px;align-items:center;justify-content:center;overflow:hidden;border:2px dashed var(--fp-border, #d9dce6);border-radius:18px;outline:none;background:var(--fp-subtle, #f7f8fc);cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.floorplan-image-upload:hover,.floorplan-image-upload:focus-visible,.floorplan-image-upload--dragging{border-color:rgb(var(--floorplan-brand-rgb) / 55%);background:var(--floorplan-brand-softer)}.floorplan-image-upload:focus-visible{box-shadow:0 0 0 3px rgb(var(--floorplan-brand-rgb) / 14%)}.floorplan-image-upload--ready{border-color:rgb(var(--floorplan-brand-rgb) / 22%);background:var(--fp-surface, #fff)}.floorplan-image-upload>img{display:block;width:100%;height:220px;padding:.75rem;object-fit:contain}.floorplan-image-upload__empty{display:flex;align-items:center;flex-direction:column;gap:.3rem;padding:1.25rem;text-align:center}.floorplan-image-upload__empty>span{display:inline-flex;width:3.5rem;height:3.5rem;margin-bottom:.45rem;align-items:center;justify-content:center;border-radius:999px;background:var(--fp-surface, #fff);color:var(--floorplan-brand);box-shadow:0 10px 24px -12px rgb(var(--floorplan-brand-rgb) / 50%)}.floorplan-image-upload__empty strong{font-size:.9rem;font-weight:700}.floorplan-image-upload__empty b{color:var(--floorplan-brand);font-size:.875rem;font-weight:700}.floorplan-image-upload__empty small{color:var(--fp-muted, #8e94a8);font-size:.75rem}.floorplan-image-upload__remove{position:absolute;z-index:2;top:.75rem;right:.75rem;display:inline-flex;width:2rem;height:2rem;align-items:center;justify-content:center;border:0;border-radius:999px;background:var(--fp-surface, rgb(255 255 255 / 94%));color:var(--fp-muted, #585c6d);box-shadow:0 2px 8px #1f25571f;cursor:pointer}.floorplan-image-upload__remove:hover,.floorplan-image-upload__remove:focus-visible{color:var(--fp-danger, #b42318)}.floorplan-image-upload__replace{position:absolute;bottom:1rem;left:50%;display:inline-flex;align-items:center;gap:.4rem;transform:translate(-50%);border-radius:999px;background:var(--fp-surface, rgb(255 255 255 / 94%));color:var(--floorplan-brand);padding:.55rem .9rem;font-size:.75rem;font-weight:700;box-shadow:0 5px 14px #1f25571f;opacity:0;transition:opacity .16s ease}.floorplan-image-upload:hover .floorplan-image-upload__replace,.floorplan-image-upload:focus-visible .floorplan-image-upload__replace{opacity:1}.floorplan-image-upload__file-input{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}@media(max-width:640px){.floorplan-image-upload{min-height:205px}.floorplan-image-upload>img{height:190px}}@media(prefers-reduced-motion:reduce){.floorplan-image-upload,.floorplan-image-upload__replace{transition-duration:.01ms!important}}.floorplan-generation-preview__history-toggle{display:inline-flex;width:36px;height:36px;flex:0 0 auto;cursor:pointer;align-items:center;justify-content:center;border:1px solid var(--fp-border, #dbe3ee);border-radius:8px;outline:none;background:var(--fp-surface, #fff);color:var(--fp-muted, #64748b);transition:border-color .14s ease,background-color .14s ease,color .14s ease,box-shadow .14s ease}.floorplan-generation-preview__history-toggle:hover,.floorplan-generation-preview__history-toggle:focus-visible,.floorplan-generation-preview__history-toggle[data-active=true]{border-color:var(--floorplan-brand-border);background:var(--floorplan-brand-softer);color:var(--floorplan-brand)}.floorplan-generation-preview__history-toggle:focus-visible{box-shadow:0 0 0 3px rgb(var(--floorplan-brand-rgb) / 18%)}.floorplan-generation-history{min-width:0;min-height:0;overflow-y:auto;padding:18px}.floorplan-generation-history__list{display:grid;gap:14px}.floorplan-generation-history__empty{display:flex;min-height:100%;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px;color:var(--fp-muted, #94a3b8);text-align:center}.floorplan-generation-history__empty strong{color:var(--fp-muted, #475569);font-size:14px}.floorplan-generation-history__empty span{font-size:11px}.floorplan-generation-history__notice{margin:0 0 12px;border:1px solid var(--fp-warning-border, #fde68a);border-radius:8px;background:var(--fp-warning-surface, #fffbeb);padding:9px 11px;color:var(--fp-warning, #92400e);font-size:11px;line-height:1.45}.floorplan-generation-workspace{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);width:100%;height:100%;min-height:0;overflow:hidden;background:var(--fp-subtle, #f8fafc);color:var(--fp-text, #111827)}.floorplan-generation-form{display:flex;min-width:0;min-height:0;flex-direction:column;border-right:1px solid var(--fp-border, #e5e7eb);background:var(--fp-surface, #fff)}.floorplan-generation-form__scroll{min-height:0;flex:1;overflow-y:auto;padding:22px 24px 18px}.floorplan-generation-form header>span,.floorplan-generation-preview__header>div>span{color:var(--floorplan-brand);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.floorplan-generation-form h1,.floorplan-generation-form h2{margin:5px 0 8px;color:var(--fp-text, #172033);font-size:23px;line-height:1.2}.floorplan-generation-form header p{margin:0 0 20px;color:var(--fp-muted, #64748b);font-size:13px;line-height:1.55}.floorplan-generation-form__section-heading,.floorplan-generation-form__property-title{display:flex;align-items:center;justify-content:space-between;margin:18px 0 8px;color:var(--fp-text, #1f2937);font-size:12px;font-weight:700}.floorplan-generation-form__property>.floorplan-generation-form__section-heading{margin:0 0 8px}.floorplan-generation-form__section-heading span{border-radius:5px;background:var(--fp-subtle, #f1f5f9);padding:3px 7px;color:var(--fp-muted, #64748b);font-size:10px;font-weight:600}.floorplan-generation-form textarea{display:block;width:100%;min-height:142px;resize:vertical;border:1px solid var(--fp-border, #e6e8f0);border-radius:16px;outline:none;background:var(--fp-subtle, #f7f8fc);color:var(--fp-text, #1f2937);padding:1rem;font:inherit;font-size:.875rem;line-height:1.55;transition:border-color .15s ease,box-shadow .15s ease}.floorplan-generation-form textarea:focus{border-color:var(--floorplan-brand);box-shadow:0 0 0 3px rgb(var(--floorplan-brand-rgb) / 10%)}.floorplan-generation-form .floorplan-image-upload{min-height:210px}.floorplan-generation-form .floorplan-image-upload>img{height:194px}.floorplan-generation-form__property-options{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;border:1px solid var(--fp-border, #e6e8f0);border-radius:14px;background:var(--fp-subtle, #f1f5f9);padding:3px}.floorplan-generation-form__property-options:before{position:absolute;z-index:-1;top:3px;bottom:3px;left:3px;width:calc((100% - 6px) / 3);border:1px solid var(--floorplan-brand-border);border-radius:11px;background:var(--fp-surface, #fff);box-shadow:0 2px 7px #0f172a1a;content:"";transition:transform .16s ease}.floorplan-generation-form__property-options[data-property=balanced]:before{transform:translate(100%)}.floorplan-generation-form__property-options[data-property=bold]:before{transform:translate(200%)}.floorplan-generation-form__property-options button{min-width:0;min-height:2.5rem;cursor:pointer;border:0;border-radius:11px;outline:none;background:transparent;padding:.5rem .75rem;color:var(--fp-muted, #5f667a);font-size:.875rem;font-weight:520;transition:color .15s ease}.floorplan-generation-form__property-options button:hover,.floorplan-generation-form__property-options button:focus-visible,.floorplan-generation-form__property-options button[aria-checked=true]{color:var(--floorplan-brand)}.floorplan-generation-form__property-options button:focus-visible{box-shadow:inset 0 0 0 2px var(--floorplan-brand-muted)}.floorplan-generation-form__property-options button[aria-checked=true]{color:var(--floorplan-brand);font-weight:650}.floorplan-generation-form__property-options button:disabled{cursor:not-allowed;opacity:.55}.floorplan-generation-form__aspect-ratio-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.floorplan-generation-form__aspect-ratio-options button{min-width:0;min-height:2.5rem;cursor:pointer;border:1px solid var(--fp-border, #e6e8f0);border-radius:12px;outline:none;background:var(--fp-surface, #fff);padding:.5rem .95rem;color:var(--fp-muted, #5f667a);font-size:.875rem;font-weight:520;transition:border-color .15s ease,background .15s ease,color .15s ease}.floorplan-generation-form__aspect-ratio-options button:hover,.floorplan-generation-form__aspect-ratio-options button:focus-visible{border-color:var(--floorplan-brand-muted);background:var(--floorplan-brand-softer);color:var(--floorplan-brand)}.floorplan-generation-form__aspect-ratio-options button:focus-visible{box-shadow:0 0 0 3px rgb(var(--floorplan-brand-rgb) / 10%)}.floorplan-generation-form__aspect-ratio-options button[aria-checked=true]{border-color:var(--floorplan-brand);background:var(--floorplan-brand-soft);box-shadow:0 0 0 1px var(--floorplan-brand);color:var(--floorplan-brand);font-weight:650}.floorplan-generation-form__footer{display:grid;gap:10px;border-top:1px solid var(--fp-border, #e5e7eb);background:var(--fp-surface, #fff);padding:12px 20px}.floorplan-generation-form__notice{flex-shrink:0;padding:12px 20px}.floorplan-generation-form__error{margin:0;border:1px solid var(--fp-danger-border, #ffd4cc);border-radius:8px;background:var(--fp-danger-surface, #fff4f2);padding:9px 11px;color:var(--fp-danger, #b42318);font-size:11px;line-height:1.45}.floorplan-generation-form__generate{display:flex;min-height:48px;cursor:pointer;align-items:center;justify-content:center;gap:8px;border:0;border-radius:7px;background:var(--floorplan-brand);box-shadow:0 7px 18px rgb(var(--floorplan-brand-rgb) / 24%);color:#fff;font-size:13px;font-weight:700}.floorplan-generation-form__generate:hover:not(:disabled){background:var(--floorplan-brand-hover)}.floorplan-generation-form__credit-cost{color:#ffffffb8;font-weight:600}.floorplan-generation-form__generate:disabled{cursor:not-allowed;opacity:.55}.floorplan-generation-preview{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr) auto;background:var(--fp-subtle, #f8fafc)}.floorplan-generation-preview__header{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--fp-border, #e5e7eb);background:var(--fp-surface, rgb(255 255 255 / 95%));padding:11px 20px}.floorplan-generation-preview__header>div{display:grid;min-width:0;gap:2px}.floorplan-generation-preview__header strong{overflow:hidden;color:var(--fp-text, #1f2937);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.floorplan-generation-preview__header small{overflow:hidden;max-width:44%;color:var(--fp-muted, #64748b);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.floorplan-generation-preview__placeholder{display:flex;max-width:360px;flex-direction:column;align-items:center;gap:9px;color:var(--fp-muted, #94a3b8);text-align:center}.floorplan-generation-preview__placeholder strong{color:var(--fp-muted, #475569);font-size:14px}.floorplan-generation-preview__placeholder span{font-size:11px;line-height:1.5}.floorplan-generation-preview__actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid var(--fp-border, #e5e7eb);background:var(--fp-surface, #fff);padding:15px 20px}.floorplan-generation-preview__edit-actions{display:flex;flex-wrap:wrap;gap:8px}.floorplan-generation-preview__actions button,.floorplan-generation-preview__actions a{display:inline-flex;min-height:42px;cursor:pointer;align-items:center;justify-content:center;gap:7px;border:1px solid var(--fp-border, #dbe3ee);border-radius:7px;background:var(--fp-surface, #fff);padding:8px 14px;color:var(--fp-muted, #64748b);font-size:12px;font-weight:700;text-decoration:none}.floorplan-generation-preview__actions>a{min-width:140px;border-color:var(--floorplan-brand);color:var(--floorplan-brand)}.floorplan-generation-preview__actions button:not(:disabled):hover,.floorplan-generation-preview__actions button:focus-visible,.floorplan-generation-preview__actions a:hover,.floorplan-generation-preview__actions a:focus-visible{border-color:var(--floorplan-brand-border);background:var(--floorplan-brand-softer);color:var(--floorplan-brand)}.floorplan-generation-preview__actions button:disabled{cursor:not-allowed;opacity:.5}@media(max-width:900px){.floorplan-generation-workspace{display:block;height:100%;overflow-y:auto}.floorplan-generation-form{min-height:auto;border-right:0;border-bottom:1px solid var(--fp-border, #e5e7eb)}.floorplan-generation-form__scroll{overflow:visible}.floorplan-generation-preview{min-height:580px}}@media(max-width:520px){.floorplan-generation-form__scroll{padding:22px 18px}.floorplan-generation-preview__header{align-items:flex-start;flex-direction:column;gap:5px}.floorplan-generation-preview__header small{max-width:100%}.floorplan-generation-preview__actions{align-items:stretch;flex-direction:column}.floorplan-generation-preview__edit-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}.floorplan-optimizer{width:100%;height:100%;min-height:0;overflow:hidden;background:var(--fp-subtle, #f8fafc);color:var(--fp-text, #111827)}.floorplan-optimizer *,.floorplan-optimizer *:before,.floorplan-optimizer *:after{box-sizing:border-box}.floorplan-optimizer button,.floorplan-optimizer textarea{font-family:inherit}.floorplan-optimizer__grid{display:grid;min-height:0;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:0;width:100%;height:100%;align-items:stretch}.floorplan-optimizer__toolbar{display:flex;min-width:0;min-height:0;flex-direction:column;border-right:1px solid var(--fp-border, #e5e7eb);background:var(--fp-surface, #fff)}.floorplan-optimizer__toolbar-scroll{min-height:0;flex:1;overflow-y:auto;padding:22px 24px 18px}.floorplan-optimizer__notice{display:grid;flex-shrink:0;gap:10px;padding:12px 20px}.floorplan-optimizer__toolbar-footer{display:grid;gap:10px;border-top:1px solid var(--fp-border, #e5e7eb);background:var(--fp-surface, #fff);padding:12px 20px}.floorplan-optimizer__introduction>span,.floorplan-optimizer__preview-header span{color:var(--floorplan-brand);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.floorplan-optimizer__introduction h1,.floorplan-optimizer__introduction h2{margin:5px 0 8px;color:var(--fp-text, #172033);font-size:23px;line-height:1.2}.floorplan-optimizer__introduction p{margin:0 0 20px;color:var(--fp-muted, #64748b);font-size:13px;line-height:1.55}.floorplan-optimizer__tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;border:1px solid var(--fp-border, #e6e8f0);border-radius:14px;background:var(--fp-subtle, #f1f5f9);padding:3px}.floorplan-optimizer__tabs button{min-width:0;min-height:2.5rem;cursor:pointer;border:1px solid transparent;border-radius:11px;outline:none;background:transparent;padding:.45rem .5rem;color:var(--fp-muted, #5f667a);font-size:.875rem;font-weight:520;line-height:1.5;transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease}.floorplan-optimizer__tabs button:hover,.floorplan-optimizer__tabs button:focus-visible{color:var(--floorplan-brand)}.floorplan-optimizer__tabs button:focus-visible{box-shadow:inset 0 0 0 2px var(--floorplan-brand-muted)}.floorplan-optimizer__tabs .floorplan-optimizer__tab--active{border-color:var(--floorplan-brand-border);background:var(--fp-surface, #fff);color:var(--floorplan-brand);font-weight:650;box-shadow:0 2px 7px #0f172a1a}.floorplan-optimizer__image-upload{min-height:210px;margin-top:18px}.floorplan-optimizer__image-upload>img{height:194px}.floorplan-optimizer__controls{display:flex;flex-direction:column;gap:18px;margin-top:18px}.floorplan-optimizer__controls section{display:flex;flex-direction:column;gap:8px}.floorplan-optimizer__section-heading{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:12px}.floorplan-optimizer__section-heading h2,.floorplan-optimizer__section-heading label{margin:0;color:var(--fp-text, #1f2937);font-size:12px;font-weight:700;line-height:1.5}.floorplan-optimizer__section-heading p{margin:0;color:var(--fp-muted, #94a3b8);font-size:10px;line-height:1.5;text-align:right}.floorplan-optimizer__section-heading>button{display:inline-flex;min-height:30px;flex:none;cursor:pointer;align-items:center;gap:5px;border:1px solid var(--floorplan-brand-border);border-radius:8px;background:var(--fp-surface, #fff);padding:5px 8px;color:var(--floorplan-brand);font-size:10px;font-weight:650}.floorplan-optimizer__choices{display:flex;flex-wrap:wrap;gap:8px}.floorplan-optimizer__choice{display:inline-flex;min-height:2.5rem;cursor:pointer;align-items:center;gap:7px;border:1px solid var(--fp-border, #e6e8f0);border-radius:12px;outline:none;background:var(--fp-surface, #fff);padding:.5rem .75rem;color:var(--fp-muted, #5f667a);font-size:.875rem;font-weight:520;line-height:1.5;transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease}.floorplan-optimizer__choice:hover,.floorplan-optimizer__choice:focus-visible{border-color:var(--floorplan-brand-muted);background:var(--floorplan-brand-softer);color:var(--floorplan-brand)}.floorplan-optimizer__choice:focus-visible{box-shadow:0 0 0 3px rgb(var(--floorplan-brand-rgb) / 10%)}.floorplan-optimizer__choice--active{border-color:var(--floorplan-brand);background:var(--floorplan-brand-soft);box-shadow:0 0 0 1px var(--floorplan-brand);color:var(--floorplan-brand);font-weight:650}.floorplan-optimizer textarea{display:block;width:100%;min-height:112px;resize:vertical;border:1px solid var(--fp-border, #e6e8f0);border-radius:16px;outline:none;background:var(--fp-subtle, #f7f8fc);padding:1rem;color:var(--fp-text, #1f2937);font-size:.875rem;line-height:1.55;transition:border-color .15s ease,box-shadow .15s ease}.floorplan-optimizer textarea::placeholder{color:var(--fp-muted, #8e94a8)}.floorplan-optimizer textarea:focus{border-color:var(--floorplan-brand);box-shadow:0 0 0 3px rgb(var(--floorplan-brand-rgb) / 10%)}.floorplan-optimizer__error{display:flex;align-items:flex-start;gap:7px;margin:0;border:1px solid var(--fp-danger-border, #ffd4cc);border-radius:8px;background:var(--fp-danger-surface, #fff4f2);padding:9px 11px;color:var(--fp-danger, #b42318);font-size:11px;line-height:1.45}.floorplan-optimizer__error svg{flex:none;margin-top:1px}.floorplan-optimizer__generate{display:flex;width:100%;min-height:48px;cursor:pointer;align-items:center;justify-content:center;gap:8px;border:0;border-radius:7px;background:var(--floorplan-brand);box-shadow:0 7px 18px rgb(var(--floorplan-brand-rgb) / 24%);color:#fff;font-size:13px;font-weight:700;transition:background .15s ease}.floorplan-optimizer__generate:hover:not(:disabled){background:var(--floorplan-brand-hover)}.floorplan-optimizer__generate:disabled{cursor:not-allowed;opacity:.55}.floorplan-optimizer__preview{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr) auto;background:var(--fp-subtle, #f8fafc)}.floorplan-optimizer__preview-header{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--fp-border, #e5e7eb);background:var(--fp-surface, rgb(255 255 255 / 95%));padding:11px 20px}.floorplan-optimizer__preview-header>div{display:grid;min-width:0;gap:2px}.floorplan-optimizer__preview-header strong{overflow:hidden;color:var(--fp-text, #1f2937);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.floorplan-optimizer__empty{display:flex;width:min(100%,360px);align-items:center;flex-direction:column;color:var(--fp-muted, #94a3b8);text-align:center}.floorplan-optimizer__empty>span{display:inline-flex;width:48px;height:48px;margin-bottom:7px;align-items:center;justify-content:center;border-radius:999px;background:var(--fp-surface, #fff);color:#64748b73;box-shadow:0 2px 6px #0f172a12}.floorplan-optimizer__empty strong{margin-top:5px;color:var(--fp-muted, #475569);font-size:14px;font-weight:700}.floorplan-optimizer__empty p{margin:6px 0 0;color:var(--fp-muted, #94a3b8);font-size:11px;line-height:1.5}.floorplan-optimizer__empty .floorplan-loading-spinner{margin-bottom:7px}.floorplan-optimizer__result-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--fp-border, #e5e7eb);background:var(--fp-surface, #fff);padding:15px 20px}.floorplan-optimizer__result-actions>div{display:flex;flex-wrap:wrap;gap:8px}.floorplan-optimizer__result-actions button,.floorplan-optimizer__result-actions a{display:inline-flex;min-height:42px;cursor:pointer;align-items:center;justify-content:center;gap:7px;border:1px solid var(--fp-border, #dbe3ee);border-radius:7px;background:var(--fp-surface, #fff);padding:8px 14px;color:var(--fp-muted, #64748b);font-size:12px;font-weight:700;text-decoration:none}.floorplan-optimizer__result-actions>a{min-width:140px;border-color:var(--floorplan-brand);color:var(--floorplan-brand)}.floorplan-optimizer__result-actions button:hover,.floorplan-optimizer__result-actions button:focus-visible,.floorplan-optimizer__result-actions a:hover,.floorplan-optimizer__result-actions a:focus-visible{border-color:var(--floorplan-brand-border);background:var(--floorplan-brand-softer);color:var(--floorplan-brand)}@media(max-width:900px){.floorplan-optimizer{overflow-y:auto}.floorplan-optimizer__grid{display:block;height:auto}.floorplan-optimizer__toolbar{min-height:auto;border-right:0;border-bottom:1px solid var(--fp-border, #e5e7eb)}.floorplan-optimizer__toolbar-scroll{overflow:visible}.floorplan-optimizer__preview{min-height:580px}}@media(max-width:520px){.floorplan-optimizer__toolbar-scroll{padding:22px 18px}.floorplan-optimizer__section-heading{align-items:flex-start}.floorplan-optimizer__section-heading p{max-width:46%}.floorplan-optimizer__result-actions{align-items:stretch;flex-direction:column}.floorplan-optimizer__result-actions>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.floorplan-optimizer__result-actions>a{width:100%}.floorplan-optimizer__fullscreen{padding:1rem}}@media(prefers-reduced-motion:reduce){.floorplan-optimizer *,.floorplan-optimizer *:before,.floorplan-optimizer *:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}:root[data-skin=drapeshot] .studio-theme{--primary: var(--floorplan-brand);--primary-foreground: #ffffff;--ring: var(--floorplan-brand)}:root[data-skin=drapeshot].dark .studio-theme{--floorplan-brand: #77a7ff;--primary-foreground: #111827}.floorplan-tool-body{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);min-width:0}.floorplan-tool-tabs{z-index:1;grid-area:1 / 1;align-self:start;min-width:0;padding:18px 18px 0}.floorplan-tool-panel{grid-area:1 / 1 / 2 / -1;min-width:0}.floorplan-tool-body :is(.floorplan-generation-form,.floorplan-optimizer__toolbar){padding-top:64px}.floorplan-tool-tabs [role=tab]{font-size:12px}@media(min-width:901px){.floorplan-tool-body .floorplan-tool-workspace{height:calc(100svh - 4rem);min-height:0}}@media(max-width:900px){.floorplan-tool-body{grid-template-columns:minmax(0,1fr)}}.studio-theme .floorplan-tool-workspace{color-scheme:inherit;--color-canvas: var(--studio-theme);--color-text: var(--studio-ink)}.studio-theme .floorplan-tool-workspace :is(.floorplan-generation-workspace,.floorplan-generation-preview,.floorplan-optimizer,.floorplan-optimizer__preview,.floorplan-image-upload,textarea,select){background-color:var(--studio-theme);color:var(--studio-ink);border-color:var(--border)}.studio-theme .floorplan-tool-workspace :is(.floorplan-generation-form,.floorplan-generation-form__footer,.floorplan-generation-preview__header,.floorplan-generation-preview__actions,.floorplan-optimizer__toolbar,.floorplan-optimizer__toolbar-footer,.floorplan-optimizer__preview-header,.floorplan-optimizer__result-actions,.floorplan-preview-canvas__frame,.floorplan-optimizer__choice,.floorplan-image-upload__empty>span,.floorplan-optimizer__empty>span){background:var(--studio-surface);border-color:var(--border)}.studio-theme .floorplan-tool-workspace .floorplan-preview-canvas{background-color:var(--studio-theme);background-image:radial-gradient(var(--border) .8px,transparent .8px)}.studio-theme .floorplan-tool-workspace :is(h2,strong,label){color:var(--studio-ink)}.studio-theme .floorplan-tool-workspace :is(header p,small,textarea::placeholder,.floorplan-optimizer__empty,.floorplan-optimizer__empty p,.floorplan-generation-preview__empty,.floorplan-generation-preview__empty p){color:var(--muted-foreground)}.dark .studio-theme .floorplan-tool-workspace{--floorplan-brand: #77a7ff;--floorplan-brand-hover: #a8c6ff;--floorplan-brand-soft: #20365c;--floorplan-brand-softer: #1c2b44;--floorplan-brand-border: #496da8}.dark .studio-theme .floorplan-tool-workspace :is(.floorplan-generation-form__generate,.floorplan-optimizer__generate){color:#111827}.studio-theme .floorplan-tool-workspace .floorplan-optimizer__choice--active{color:var(--floorplan-brand);border-color:var(--floorplan-brand-border);background:var(--floorplan-brand-soft)}
