:root{--layout-max: 1440px;--layout-gap: 16px;--panel-width: 380px;--surface-border: #dfe2ea;--surface-shadow: 0 12px 34px rgba(20, 22, 35, .08);color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f4f5f8;color:#15151d}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html,body{overflow-x:hidden}button,input,a{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding:max(14px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom));background:linear-gradient(180deg,#fffffff5,#f8fafceb 42%,#eff2f7f5),#f4f5f8}.topbar{width:min(100%,var(--layout-max));display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin:0 auto 14px}.brand,.screen-label,.eyebrow{letter-spacing:0}.brand{color:#161620;font-weight:850}.brand-dot{display:inline-block;width:10px;height:10px;margin-right:8px;border-radius:50%;background:#9b5cff;box-shadow:0 0 18px #9b5cff66}.screen-label{max-width:44%;overflow:hidden;color:#626579;font-size:12px;font-weight:800;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.topbar-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.language-select{min-height:34px;border:1px solid var(--surface-border);border-radius:8px;padding:0 28px 0 10px;color:#34364a;background:#fff;font-size:12px;font-weight:750}.eyebrow{margin:0;color:#7d8193;font-size:11px;font-weight:850;text-transform:uppercase}.upload-view,.state-screen{width:min(100%,var(--layout-max));max-width:100%;min-height:calc(100svh - 140px);margin:0 auto;display:flex;flex-direction:column;justify-content:center;gap:22px}.intro{min-width:0;max-width:38rem}.upload-intro{max-width:46rem}.upload-intro h1{max-width:15ch;margin-inline:auto;font-size:clamp(32px,5.5vw,58px);line-height:1.04;letter-spacing:-.035em}.upload-intro>p:last-child{max-width:42rem;margin:0 auto}.intro h1,.state-screen h1{margin:8px 0 12px;color:#11121a;font-size:clamp(40px,8vw,72px);letter-spacing:0;line-height:.94}.intro p,.state-screen p,.editor-toolbar p,.sheet-header p{overflow-wrap:anywhere;color:#626579;font-size:15px;line-height:1.45}.upload-panel{min-width:0;max-width:100%;display:grid;gap:18px;padding:22px;border:1px solid #dfe3eb;border-radius:8px;background:#ffffffeb;box-shadow:0 18px 48px #2327351a}.upload-panel h2{min-width:0;margin:0;color:#171822;font-size:24px}.upload-panel p{min-width:0;margin:6px 0 0;color:#626579;line-height:1.5}.upload-icon{width:56px;height:56px;display:grid;place-items:center;border-radius:8px;background:#f1e8ff;color:#8b45f7}.upload-steps{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.upload-steps span{min-width:0;min-height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e1e4ec;border-radius:8px;background:#f8fafc;color:#626579;font-size:12px;font-weight:850}.primary-action,.secondary-action,.render-button{max-width:100%;min-width:0;min-height:54px;border:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 18px;font-weight:850;text-align:center;text-decoration:none}.primary-action svg,.secondary-action svg,.render-button svg{flex:0 0 auto}.primary-action,.render-button{color:#fff;background:#8b45f7;box-shadow:0 12px 26px #8b45f740}.secondary-action{color:#232332;background:#fff;border:1px solid #d9dce5}.primary-action.small{min-height:48px}.upload-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.upload-camera-action{min-height:54px}.primary-action:disabled,.render-button:disabled{box-shadow:none;opacity:.48}.editor-view{width:min(100%,var(--layout-max));max-width:100%;margin:0 auto;display:flex;flex-direction:column;gap:12px}.editor-workbench{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--layout-gap)}.editor-stage,.editor-side{min-width:0}.editor-stage,.editor-side{display:flex;flex-direction:column;gap:12px}.progress-strip{display:flex;align-items:center;gap:7px;overflow-x:auto;padding:8px 10px;border:1px solid #e1e3eb;border-radius:8px;background:#ffffffd1;color:#8a8ea0;font-size:12px;font-weight:850;white-space:nowrap}.progress-strip .done{color:#0b9f75}.progress-strip .active{color:#8b45f7}.canvas-wrap,.compare{position:relative;overflow:hidden;border:1px solid #d9dce5;border-radius:8px;background:#fff;box-shadow:var(--surface-shadow)}.canvas-wrap{display:grid;min-height:240px;place-items:center}.canvas-wrap.has-room-image{min-height:0}.room-image,.compare img{display:block;width:100%;height:100%;max-height:min(72svh,820px);object-fit:contain}.room-image-stage{position:relative;width:100%;max-width:100%;line-height:0}.placement-overlay{position:absolute;inset:0;z-index:3;pointer-events:none}.mask-segmentation-overlay{position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none;object-fit:fill}.mask-brush-overlay{position:absolute;inset:0;z-index:4;width:100%;height:100%;pointer-events:none;touch-action:none}.mask-brush-overlay.is-active{pointer-events:auto;cursor:none}.mask-brush-stroke polyline{fill:none;stroke-linecap:round;stroke-linejoin:round}.mask-brush-stroke.add polyline,.mask-brush-stroke.add circle{fill:#8b45f76b;stroke:#f4ebfff5}.mask-brush-stroke.add polyline{fill:none}.mask-brush-stroke.erase polyline,.mask-brush-stroke.erase circle{fill:#f43f5e61;stroke:#ffe1e6fa}.mask-brush-stroke.erase polyline{fill:none}.placement-overlay svg{width:100%;height:100%;overflow:visible}.placement-overlay polygon{fill:#8b45f71f;stroke:#8b45f7;stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-dasharray:5 4}.placement-handle{position:absolute;width:30px;height:30px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:999px;background:#8b45f7;color:#fff;box-shadow:0 3px 12px #3c147873;font:700 12px/1 inherit;pointer-events:auto;touch-action:none;cursor:grab}.placement-handle:active{cursor:grabbing}.curtain-placement-overlay{position:absolute;inset:0;z-index:7;pointer-events:none}.curtain-placement-overlay svg{width:100%;height:100%;overflow:visible}.curtain-guide polygon,polygon.curtain-guide{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.6;stroke-dasharray:5 3;vector-effect:non-scaling-stroke}.curtain-guide.selected polygon{stroke-width:3}.curtain-guide.draft polygon,polygon.curtain-guide.draft{fill:color-mix(in srgb,var(--accent) 24%,transparent);stroke:var(--accent-strong);stroke-width:2.5;stroke-dasharray:none}.curtain-guide.editable{pointer-events:all;cursor:move;touch-action:none}.curtain-edit-active .room-image-stage{cursor:default;touch-action:none}.curtain-area-hint{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.45}.curtain-quad-handle{position:absolute;z-index:2;width:44px;height:44px;padding:0;transform:translate(-50%,-50%);border:0;border-radius:50%;background:transparent;cursor:grab;pointer-events:auto;touch-action:none}.curtain-quad-handle:before{content:"";position:absolute;inset:12px;border:2px solid #fff;border-radius:50%;background:var(--accent);box-shadow:0 1px 8px #000000bf}.curtain-quad-handle:active{cursor:grabbing}.curtain-quad-handle:focus-visible{outline:2px solid #fff;outline-offset:-3px}.curtain-point{position:absolute;z-index:1;width:30px;height:30px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:50%;background:#087f78;color:#fff;box-shadow:0 2px 10px #00000073;font:800 11px/1 inherit;pointer-events:auto;touch-action:none;cursor:grab}.curtain-point.rod_line{background:#ad6900}.curtain-point.hem_line{background:#b4324b}.curtain-point:active{cursor:grabbing}.curtain-point:focus-visible{outline:3px solid #fff;outline-offset:3px}.curtain-mode-toggle{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface-1);color:var(--accent-strong);font-size:11px;font-weight:800;white-space:nowrap}.curtain-mode-toggle.active{border-color:#16a69a;background:color-mix(in srgb,#16a69a 13%,var(--surface-1))}.curtain-tools{display:grid;gap:13px;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--accent) 4%,var(--surface-1))}.curtain-tools-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;color:var(--accent-strong)}.curtain-tools-heading p{margin:0}.curtain-tools-heading p:not(.eyebrow){margin-top:4px;color:var(--text-secondary);font-size:12px;line-height:1.45}.curtain-empty{margin:0;color:var(--text-secondary);font-size:12px}.curtain-placement-list{display:grid;gap:7px}.curtain-placement-item{width:100%;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface-1);color:var(--text-primary);text-align:left}.curtain-placement-item.selected{border-color:#16a69a}.curtain-selected-object{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid color-mix(in srgb,#16a69a 45%,var(--border));border-radius:10px;background:color-mix(in srgb,#16a69a 8%,var(--surface-1))}.curtain-selected-object img{width:48px;height:48px;flex:0 0 auto;border-radius:7px;background:var(--surface-2);object-fit:contain}.curtain-selected-object span{display:grid;gap:3px;min-width:0}.curtain-selected-object strong{overflow:hidden;color:var(--text-primary);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.curtain-selected-object small{color:#16a69a;font-size:10px;font-weight:800;text-transform:uppercase}.curtain-add-action{justify-self:start;min-height:36px}.curtain-editor-controls{display:grid;gap:12px}.curtain-editor-controls>label:not(.placement-range-control){display:grid;gap:6px;color:var(--text-primary);font-size:12px;font-weight:700}.curtain-editor-controls select{width:100%;min-height:38px;padding:0 10px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface-1);color:var(--text-primary)}.curtain-editor-controls .placement-range-control{margin:0}.curtain-status,.curtain-error{margin:0;font-size:12px;line-height:1.4}.curtain-status{color:var(--success, #16845c)}.curtain-error{color:var(--danger)}.curtain-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.curtain-actions .primary-action,.curtain-actions .secondary-action{min-height:36px;padding:0 10px;font-size:11px}.canvas-wrap.curtain-edit-active .zone-marker,.canvas-wrap.curtain-edit-active .placement-overlay,.canvas-wrap.curtain-edit-active .mask-brush-overlay,.canvas-wrap.curtain-edit-active .mask-segmentation-overlay{display:none!important}.zone-marker{--marker-color: #8b45f7;position:absolute;width:34px;height:34px;border:0;border-radius:999px;background:transparent;color:#fff;padding:0;transform:translate(-50%,-50%);touch-action:manipulation;z-index:2;cursor:pointer;transition:left .28s cubic-bezier(.2,.8,.2,1),top .28s cubic-bezier(.2,.8,.2,1),opacity .22s ease,transform .22s ease}.zone-marker.violet{--marker-color: #8b45f7}.zone-marker.emerald{--marker-color: #0b9f75}.zone-marker.sky{--marker-color: #2386e8}.zone-marker.amber{--marker-color: #d89016}.zone-marker.rose{--marker-color: #e85d87}.zone-marker.orange{--marker-color: #e06b2d}.zone-marker.cyan{--marker-color: #0891b2}.zone-marker.indigo{--marker-color: #5965d8}.marker-pulse,.marker-core{position:absolute;inset:0;border-radius:999px}.marker-pulse{background:color-mix(in srgb,var(--marker-color) 18%,transparent);animation:marker-pulse 2.2s ease-out infinite}.marker-core{display:grid;place-items:center;border:2px solid #fff;background:#13141dd6;box-shadow:0 8px 20px #14162338;transition:background .18s ease,box-shadow .18s ease,transform .18s ease}.zone-marker.active .marker-core{background:var(--marker-color);transform:scale(1.15);box-shadow:0 14px 34px color-mix(in srgb,var(--marker-color) 34%,transparent)}.zone-marker.assigned .marker-core{background:#0b9f75}.group-marker{width:38px;height:38px;z-index:5}.group-marker.expanded .marker-core{box-shadow:0 14px 34px color-mix(in srgb,var(--marker-color) 30%,transparent),inset 0 0 0 3px color-mix(in srgb,var(--marker-color) 18%,transparent)}.surface-marker{z-index:4}.surface-marker.collapsed{opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.42)}.surface-marker.expanded{opacity:1;transform:translate(-50%,-50%) scale(.88)}.surface-marker.expanded.active{transform:translate(-50%,-50%) scale(1)}.surface-marker .marker-core{background:#fffffff0;color:var(--marker-color);border-color:color-mix(in srgb,var(--marker-color) 28%,#fff);box-shadow:0 8px 22px #1416232e}.surface-marker.active .marker-core,.surface-marker.assigned .marker-core{color:#fff}.surface-index{font-size:12px;font-weight:950;line-height:1}.marker-count{position:absolute;right:-4px;top:-4px;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border:2px solid #fff;border-radius:999px;background:#171822;color:#fff;font-size:10px;font-weight:950;box-shadow:0 6px 14px #1416232e}.marker-label{position:absolute;left:calc(100% + 8px);top:50%;height:30px;display:inline-flex;align-items:center;gap:4px;padding:0 9px;border-radius:999px;background:#fffffff0;color:#171822;font-size:12px;font-weight:850;box-shadow:0 10px 24px #1416232e;transform:translateY(-50%);white-space:nowrap;pointer-events:none}.marker-label strong{font-size:12px;font-weight:900}.marker-label.compact{height:25px;padding:0 8px;background:#13141ddb;color:#fff}.zone-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:8px}.zone-tab{min-height:48px;display:flex;align-items:center;gap:8px;border:1px solid #dfe2ea;border-radius:8px;background:#fff;color:#222331;padding:0 12px;text-align:left}.zone-tab strong{min-width:0;flex:1}.zone-tab small{min-width:24px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eef1f6;color:#626579;font-size:12px;font-weight:900}.zone-tab.active{border-color:#a979ff;background:#f5efff}.zone-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%}.zone-dot.violet{background:#8b45f7}.zone-dot.emerald{background:#0b9f75}.zone-dot.sky{background:#2386e8}.zone-dot.amber{background:#d89016}.zone-dot.rose{background:#e85d87}.zone-dot.orange{background:#e06b2d}.zone-dot.cyan{background:#0891b2}.zone-dot.indigo{background:#5965d8}.editor-toolbar,.sheet-header,.result-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.editor-toolbar{flex-wrap:wrap;padding:14px;border:1px solid #e1e3eb;border-radius:8px;background:#fff}.editor-toolbar>div{min-width:0;flex:1 1 220px}.editor-toolbar h2,.asset-sheet h3{margin:4px 0 0;color:#15151d}.editor-toolbar p,.sheet-header p{margin:5px 0 0}.surface-list{display:grid;gap:10px;padding:14px;border:1px solid #dfe2ea;border-radius:8px;background:#fff;box-shadow:var(--surface-shadow)}.surface-list h3{margin:4px 0 0;color:#15151d}.surface-items{display:grid;gap:8px}.surface-item{min-height:48px;display:flex;align-items:center;gap:8px;border:1px solid #dfe2ea;border-radius:8px;background:#fbfcfe;color:#222331;padding:0 10px;text-align:left}.surface-item.active{border-color:#a979ff;background:#f5efff}.surface-item.assigned{border-color:#94e0c8;background:#f0fff9}.surface-item strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.surface-item>span:not(.zone-dot){min-width:0;flex:1}.surface-item em{display:block;margin-top:2px;overflow:hidden;color:#0b9f75;font-size:11px;font-style:normal;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.surface-item small{color:#7d8193;font-size:12px;font-weight:850}.asset-sheet{border:1px solid #dfe2ea;border-radius:8px;background:#fff;padding:14px;box-shadow:var(--surface-shadow)}.placement-panel{display:grid;gap:10px;padding:14px;border:1px solid #d8c7fb;border-radius:8px;background:#faf7ff;box-shadow:var(--surface-shadow)}.placement-panel p{margin:3px 0 0;color:#5d586b;font-size:13px;line-height:1.35}.placement-save-status{display:inline-flex;align-items:center;gap:6px;margin-top:9px;color:#357e57;font-size:12px;font-weight:800}.placement-save-status.saving{color:#7750be}.placement-save-status.error{color:#b4233e}.placement-autosave-help{display:block;margin-top:3px;color:#7a7488;font-size:11px;line-height:1.35}.placement-panel label{display:grid;grid-template-columns:minmax(82px,auto) minmax(0,1fr) auto;align-items:center;gap:9px;color:#3f3850;font-size:13px;font-weight:700}.placement-panel input[type=range]{width:100%;accent-color:#8b45f7}.placement-panel output{min-width:42px;color:#6d38bd;font-variant-numeric:tabular-nums;text-align:right}.mask-brush-controls{display:grid;gap:9px;padding:10px;border:1px solid rgba(139,69,247,.24);border-radius:8px;background:#ffffff80}.mask-brush-controls .eyebrow{margin:0}.mask-brush-toolbar{display:flex;flex-wrap:wrap;gap:7px}.mask-brush-toolbar button{min-height:34px;padding:6px 10px;font-size:12px}.mask-brush-toolbar button.selected{border-color:#8b45f7;background:#8b45f7;color:#fff}.mask-brush-clear{justify-self:start;padding:0;color:#b4233e;font-size:12px}.placement-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.placement-actions button{min-height:40px;padding-inline:10px;justify-content:center;font-size:13px}.sheet-header{align-items:flex-start}.assignment-chip{display:flex;align-items:center;gap:8px;margin:12px 0;padding:8px 10px;border-radius:999px;background:#e8fbf4;color:#087b5d;font-size:13px;font-weight:850}.assignment-chip span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-chip button{width:26px;height:26px;display:inline-grid;place-items:center;flex:0 0 auto;border:0;border-radius:999px;background:#087b5d1a;color:#087b5d}.asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:10px;overflow:auto;padding-right:2px}.asset-card{min-height:168px;display:flex;flex-direction:column;border:1px solid #dfe2ea;border-radius:8px;background:#fbfcfe;color:#181923;padding:8px;text-align:left}.asset-card.selected{border-color:#0b9f75;background:#f0fff9;box-shadow:inset 0 0 0 1px #0b9f752e}.asset-card:disabled{opacity:.55}.asset-card img,.asset-placeholder,.asset-color-swatch{width:100%;aspect-ratio:1.12;object-fit:cover;border-radius:6px;background:#eef0f5}.asset-placeholder{display:grid;place-items:center;color:#8b45f7}.asset-color-swatch{display:block;border:1px solid rgba(255,255,255,.36)}.asset-card span{display:-webkit-box;margin-top:8px;color:#15151d;font-size:13px;font-weight:850;line-height:1.2;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.asset-card small{margin-top:4px;color:#777b8d;font-size:11px;font-weight:800;text-transform:uppercase}.error-text,.empty-text{margin:10px 0 0;font-weight:750}.error-text{color:#c33a3a}.empty-text{color:#7d8193}.spin{animation:spin .9s linear infinite}.render-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:18px;background:#f6f8fcb8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.render-card{width:min(100%,420px);display:grid;gap:16px;padding:22px;border:1px solid #dfe2ea;border-radius:10px;background:#fffffff5;box-shadow:0 24px 70px #1416232e}.render-orbit{width:58px;height:58px;display:grid;place-items:center;border-radius:999px;background:#f1e8ff;color:#8b45f7}.render-card h2{margin:4px 0 0;color:#15151d}.render-card p{margin:6px 0 0;color:#626579;line-height:1.45}.render-elapsed{font-variant-numeric:tabular-nums;font-weight:700}.render-long{padding-top:6px;font-size:.86rem}.render-queue{display:grid;gap:8px}.render-queue-item{min-height:44px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;align-items:center;padding:8px 10px;border:1px solid #e1e4ec;border-radius:8px;background:#fbfcfe}.render-queue-item .zone-dot{grid-row:span 2}.render-queue-item .zone-dot.object{background:#8b45f7}.render-queue-item strong,.render-queue-item small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.render-queue-item strong{color:#15151d;font-size:13px;font-weight:900}.render-queue-item small{color:#626579;font-size:12px;font-weight:800}.result-view{width:min(100%,var(--layout-max));margin:0 auto;display:flex;flex-direction:column;gap:14px;padding-top:6px}.result-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--layout-gap)}.result-stage{min-width:0;display:flex;flex-direction:column;gap:10px}.after-layer{position:absolute;inset:0;width:100%;overflow:hidden;clip-path:inset(0 calc(100% - var(--split)) 0 0)}.after-layer:after{content:"";position:absolute;top:0;bottom:0;left:var(--split);width:2px;background:#8b45f7;box-shadow:0 0 0 1px #8b45f72e;transform:translate(-1px)}.compare-handle{position:absolute;top:50%;width:42px;height:42px;display:grid;place-items:center;border:2px solid #fff;border-radius:999px;background:#8b45f7;color:#fff;box-shadow:0 12px 30px #14162338;transform:translate(-50%,-50%);touch-action:none;z-index:5}.after-layer img{width:100%;height:100%;max-width:none}.compare-label{position:absolute;top:12px;z-index:4;padding:5px 9px;border-radius:999px;background:#0d101dc2;color:#fff;font-size:12px;font-weight:800;line-height:1;pointer-events:none}.compare-label-after{left:12px}.compare-label-before{right:12px}.result-view .compare{width:100%;min-height:220px;max-height:calc(100vh - 170px);touch-action:none;-webkit-user-select:none;user-select:none}.result-view .compare img{position:absolute;inset:0;width:100%;height:100%;max-height:calc(100vh - 170px);object-fit:contain}.result-view .compare img.compare-base{position:relative;inset:auto;height:auto}.compare-slider{width:100%;accent-color:#8b45f7}.result-panel{min-width:0;display:grid;gap:12px;align-content:start;padding:14px;border:1px solid #dfe2ea;border-radius:8px;background:#fff;box-shadow:var(--surface-shadow)}.result-panel h2{margin:4px 0 0;color:#15151d}.result-panel p{margin:5px 0 0;color:#626579;line-height:1.45}.result-panel .result-phone-hint{display:flex;align-items:flex-start;gap:10px;margin:0;padding:10px 12px;border-radius:8px;background:#f1edff;color:#3d2d7a;font-weight:600}.result-phone-hint svg{flex:none;margin-top:1px}.result-panel .result-actions{display:grid;grid-template-columns:1fr;gap:10px}.debug-strip{display:grid;gap:2px;padding:8px 10px;border:1px dashed #cdd3df;border-radius:8px;background:#f8fafc;color:#626579}.debug-strip strong,.debug-strip span,.debug-strip small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.debug-strip strong{color:#15151d;font-size:12px;font-weight:900}.debug-strip span,.debug-strip small{font-size:11px;font-weight:800}.applied-list{display:grid;gap:8px}.applied-item{min-height:58px;display:flex;align-items:center;gap:10px;padding:8px;border:1px solid #dfe2ea;border-radius:8px;background:#fbfcfe}.applied-item img,.applied-color-swatch{width:42px;height:42px;flex:0 0 auto;border-radius:6px;object-fit:cover}.applied-color-swatch{display:block;border:1px solid rgba(255,255,255,.4)}.applied-item div{min-width:0}.applied-item strong,.applied-item span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.applied-item strong{color:#15151d;font-size:13px;font-weight:900}.applied-item span{margin-top:2px;color:#626579;font-size:12px;font-weight:800}@keyframes spin{to{transform:rotate(360deg)}}@keyframes marker-pulse{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}@media(min-width:760px){.editor-view{gap:14px}.asset-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));max-height:42vh}.result-grid{grid-template-columns:minmax(0,1fr)}}@media(min-width:960px){.app-shell{padding:max(18px,env(safe-area-inset-top)) 22px max(22px,env(safe-area-inset-bottom))}.topbar{min-height:56px}.upload-view{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,440px);align-items:center;gap:48px}.upload-panel{padding:28px}.editor-workbench{grid-template-columns:minmax(0,1fr) minmax(320px,380px);align-items:start}.editor-side{position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto;padding-bottom:2px}.canvas-wrap{background:#f8fafc}.zone-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.editor-toolbar{display:grid}.render-button{width:100%}.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}}@media(min-width:1200px){.editor-workbench{grid-template-columns:minmax(0,1fr) minmax(360px,420px)}.result-grid{grid-template-columns:minmax(0,1fr) minmax(320px,380px);align-items:start}.result-panel{position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto}}@media(max-width:759px){.app-shell{padding-left:10px;padding-right:10px}.topbar{margin-bottom:10px}.brand{font-size:15px}.upload-view{width:min(100%,370px);max-width:calc(100vw - 20px);margin:0;justify-content:flex-start;padding-top:42px}.upload-intro,.intro{width:100%;max-width:100%}.intro h1,.state-screen h1{font-size:clamp(34px,13vw,48px)}.upload-panel{width:100%;padding:16px}.upload-panel .primary-action{padding:0 12px;white-space:normal}.upload-actions{grid-template-columns:1fr}.upload-actions .primary-action,.upload-actions .secondary-action{min-height:52px}.upload-steps{grid-template-columns:1fr}.progress-strip{border-radius:8px}.zone-tabs{display:flex;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory}.zone-tab{min-width:156px;scroll-snap-align:start}.marker-label{display:none}.group-marker{width:44px;height:44px}.surface-marker{width:40px;height:40px}.editor-toolbar,.sheet-header,.result-actions{align-items:stretch;flex-direction:column}.render-button,.primary-action,.secondary-action{width:100%}.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.asset-card{min-height:132px}.editor-side{position:sticky;bottom:0;z-index:20;max-height:min(68vh,560px);overflow:auto;margin:0 -10px;padding:10px;border-top:1px solid #dfe2ea;border-radius:14px 14px 0 0;background:#fffffff5;box-shadow:0 -16px 40px #1416231f}.surface-list,.asset-sheet,.editor-toolbar{box-shadow:none}.result-view{padding-bottom:128px}.result-grid{gap:10px}.result-view .compare,.result-view .compare img{max-height:calc(100svh - 260px)}.compare-handle{width:48px;height:48px}.result-panel{padding:12px}.result-actions{position:fixed;right:10px;bottom:max(10px,env(safe-area-inset-bottom));left:10px;z-index:30;padding:10px;border:1px solid #dfe2ea;border-radius:12px;background:#fffffff5;box-shadow:0 -16px 40px #1416231f}}@media(min-width:640px){.app-shell{padding-right:20px;padding-left:20px}.asset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.zone-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.result-panel .result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.result-panel .result-actions .secondary-action:first-child{grid-column:span 2}}@media(max-width:1023px){.editor-side,.result-panel{position:static;max-height:none;overflow:visible}.editor-side{display:grid;gap:10px;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}}@media(min-width:1024px){.app-shell{padding-right:28px;padding-left:28px}.topbar{min-height:56px}.upload-view{grid-template-columns:minmax(0,1fr) minmax(360px,440px);gap:48px}.upload-panel{padding:28px}.editor-workbench,.result-grid{grid-template-columns:minmax(0,1fr) minmax(340px,var(--panel-width));align-items:start}.editor-side,.result-panel{position:sticky;top:18px;max-height:calc(100dvh - 42px);overflow:auto;scrollbar-gutter:stable}.canvas-wrap{min-height:360px;background:#f8fafc}.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1360px){.editor-workbench,.result-grid{grid-template-columns:minmax(0,1fr) minmax(380px,420px);gap:20px}}@media(max-width:639px){html,body,#root,.app-shell{width:100%;max-width:100%;overflow-x:clip}.app-shell{padding-right:12px;padding-left:12px}.topbar{min-height:52px;margin-bottom:14px}.brand{font-size:15px}.screen-label{font-size:11px}.upload-view{width:min(100%,440px);max-width:100%;margin:0 auto;padding-top:28px}.upload-panel{padding:18px}.upload-panel,.upload-actions,.upload-actions>*{width:100%;max-width:100%}.intro p,.upload-panel p{max-width:100%;overflow-wrap:anywhere}.upload-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.zone-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;padding-bottom:0;scroll-snap-type:none}.zone-tab{min-width:0;min-height:48px;scroll-snap-align:none}.editor-toolbar,.surface-list,.asset-sheet,.result-panel{padding:12px}.asset-grid{gap:10px}.asset-card{min-height:158px}.result-view{padding-bottom:20px}.result-view .compare,.result-view .compare img{max-height:min(68svh,560px)}.result-actions{position:static;right:auto;bottom:auto;left:auto;z-index:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}}@media(max-width:639px){.asset-grid{--mobile-asset-row: 168px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,var(--mobile-asset-row));grid-auto-rows:var(--mobile-asset-row);max-height:calc(var(--mobile-asset-row) * 2 + 10px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:2px 4px 2px 2px;scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin}.asset-grid::-webkit-scrollbar{width:6px}.asset-grid::-webkit-scrollbar-thumb{border-radius:999px;background:var(--border-strong)}.asset-card{min-height:0;height:var(--mobile-asset-row)}.asset-card img,.asset-placeholder,.asset-color-swatch{aspect-ratio:1.26}}:root{--layout-max: 1440px;--layout-gap: 16px;--panel-width: 390px;--bg-canvas: #0b0e14;--bg-base: #101319;--surface-1: #171b23;--surface-2: #1d222c;--surface-3: #272e3a;--surface-hover: #252b36;--border-subtle: #2b323e;--border-strong: #414b5b;--text-primary: #f5f7ff;--text-secondary: #aab4c8;--text-muted: #747f95;--accent: #9b5cff;--accent-strong: #b47dff;--accent-soft: rgba(155, 92, 255, .16);--success: #22c993;--warning: #f0ad3d;--danger: #ff6b7a;--surface-border: var(--border-subtle);--surface-shadow: 0 12px 30px rgba(0, 0, 0, .22);color-scheme:dark;background:var(--bg-base);color:var(--text-primary)}html,body,#root{background:var(--bg-base);color:var(--text-primary)}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.app-shell{background:var(--bg-base)}.topbar{min-height:58px;margin-bottom:18px;border-bottom:1px solid var(--border-subtle)}.brand{color:var(--text-primary);font-weight:800}.brand-dot{background:var(--accent);box-shadow:0 0 18px #9b5cffa3}.screen-label,.eyebrow{color:var(--text-muted)}.intro h1,.state-screen h1,.upload-panel h2,.editor-toolbar h2,.asset-sheet h3,.surface-list h3,.result-panel h2,.render-card h2,.applied-item strong,.surface-item strong,.asset-card span,.render-queue-item strong{color:var(--text-primary)}.intro.upload-intro h1{max-width:18ch;margin-inline:auto;font-size:clamp(30px,4.5vw,56px);line-height:1.06;letter-spacing:-.03em}.intro p,.state-screen p,.upload-panel p,.editor-toolbar p,.sheet-header p,.result-panel p,.render-card p,.applied-item span,.render-queue-item small,.empty-text{color:var(--text-secondary)}.upload-view,.state-screen{min-height:calc(100svh - 102px)}.upload-panel,.editor-toolbar,.surface-list,.asset-sheet,.result-panel,.render-card{border-color:var(--border-subtle);background:linear-gradient(145deg,#1d2433fa,#121722fa);box-shadow:var(--surface-shadow)}.state-panel{width:min(100%,560px);padding:28px;border:1px solid var(--border-subtle);border-radius:8px;background:linear-gradient(145deg,#1d2433fa,#121722fa);box-shadow:var(--surface-shadow)}.state-panel h1{margin:6px 0 10px;font-size:clamp(32px,5vw,52px);line-height:1}.state-panel p:last-child{margin:0}.upload-panel{gap:20px}.upload-icon,.render-orbit{background:var(--accent-soft);color:var(--accent-strong)}.upload-steps span,.progress-strip,.zone-tab,.surface-item,.asset-card,.render-queue-item,.applied-item,.debug-strip{border-color:var(--border-subtle);background:var(--surface-1);color:var(--text-primary)}.upload-steps span,.progress-strip{color:var(--text-muted)}.progress-strip{min-height:44px;padding:0 14px;background:#121722e0}.progress-strip .done{color:var(--success)}.progress-strip .active{color:var(--accent-strong)}.primary-action,.render-button{background:linear-gradient(135deg,#8744f1,#a763ff);box-shadow:0 12px 26px #803feb47}.primary-action:hover:not(:disabled),.render-button:hover:not(:disabled){background:linear-gradient(135deg,#9657fb,#bc85ff)}.secondary-action{border-color:var(--border-strong);background:var(--surface-2);color:var(--text-primary)}.secondary-action:hover:not(:disabled){background:var(--surface-hover)}.canvas-wrap,.compare{border-color:var(--border-strong);background:#05070b;box-shadow:0 20px 46px #00000052}.canvas-wrap:after,.compare:after{content:"";position:absolute;inset:0;pointer-events:none;border:1px solid rgba(255,255,255,.04);border-radius:inherit}.zone-marker .marker-core{border-color:#ffffffeb;background:#0a0d14e0;box-shadow:0 10px 24px #0000006b}.zone-marker.active .marker-core{background:var(--marker-color)}.surface-marker .marker-core{background:#181e2bf5;border-color:color-mix(in srgb,var(--marker-color) 48%,#ffffff);color:#fff}.marker-count,.marker-label{border-color:var(--border-strong);background:#0f131df5;color:var(--text-primary);box-shadow:0 10px 24px #00000061}.marker-label.compact{background:#0f131df5}.zone-tab{min-height:52px}.zone-tab:hover{background:var(--surface-hover)}.zone-tab small{background:var(--surface-3);color:var(--text-secondary)}.zone-tab.active,.surface-item.active{border-color:var(--accent);background:var(--accent-soft)}.surface-item.assigned,.asset-card.selected{border-color:color-mix(in srgb,var(--success) 65%,var(--border-strong));background:#22c9931a;box-shadow:inset 0 0 0 1px #22c99324}.surface-item small,.asset-card small{color:var(--text-muted)}.surface-item em,.assignment-chip{color:var(--success)}.assignment-chip{border:1px solid rgba(34,201,147,.3);background:#22c9931a}.assignment-chip button{background:#22c9932e;color:var(--success)}.asset-card:hover:not(:disabled){border-color:var(--accent);background:var(--surface-hover);transform:translateY(-1px)}.asset-card{transition:border-color .16s ease,background .16s ease,transform .16s ease}.asset-card img,.asset-placeholder,.asset-color-swatch{background:var(--surface-3)}.error-text{color:var(--danger)}.render-overlay{background:#04060aa8;-webkit-backdrop-filter:blur(16px) saturate(.9);backdrop-filter:blur(16px) saturate(.9)}.render-card{border-color:var(--border-strong)}.render-queue-item{background:#090c138f}.debug-strip{border-color:var(--border-strong);background:#090c1375;color:var(--text-secondary)}.debug-strip strong{color:var(--text-primary)}.after-layer:after{background:var(--accent-strong);box-shadow:0 0 0 1px #9b5cff80,0 0 16px #9b5cff8c}.compare-handle{background:var(--accent);box-shadow:0 12px 30px #0000006b}.compare-slider{accent-color:var(--accent-strong)}@media(min-width:1024px){.editor-workbench,.result-grid{grid-template-columns:minmax(0,1fr) minmax(350px,var(--panel-width))}.editor-side,.result-panel{top:80px;max-height:calc(100dvh - 102px)}.editor-side{padding-right:2px}}@media(min-width:1360px){.editor-workbench,.result-grid{grid-template-columns:minmax(0,1fr) minmax(380px,410px);gap:20px}}@media(max-width:1023px){.editor-side,.result-panel{position:static;max-height:none;overflow:visible}}@media(max-width:639px){.app-shell{padding:max(10px,env(safe-area-inset-top)) 12px max(18px,env(safe-area-inset-bottom))}.topbar{min-height:54px;margin-bottom:14px}.screen-label{max-width:none}.topbar-actions{gap:7px}.language-select{min-width:76px;padding-left:8px;padding-right:20px}.upload-view{min-height:calc(100svh - 92px);padding-top:20px}.upload-panel,.editor-toolbar,.surface-list,.asset-sheet,.result-panel{border-radius:8px}.editor-workbench,.result-grid{gap:12px}.canvas-wrap{min-height:230px}.canvas-wrap.has-room-image{min-height:0}.zone-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.result-actions{gap:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(min-width:1024px){.editor-workbench{grid-template-columns:minmax(0,1fr) minmax(360px,410px);align-items:start}.canvas-wrap.has-room-image{aspect-ratio:auto!important;display:flex;align-items:flex-start;justify-content:center;min-height:0;max-height:calc(100dvh - 190px);width:fit-content;max-width:100%;margin-inline:auto}.room-image{width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 190px);object-fit:contain}.room-image-stage{display:inline-block;width:auto}.editor-side{position:sticky;top:80px;max-height:calc(100dvh - 102px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.asset-grid{--desktop-asset-row: 176px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,var(--desktop-asset-row));grid-auto-rows:var(--desktop-asset-row);max-height:calc(var(--desktop-asset-row) * 2 + 10px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:2px 4px 2px 2px}.asset-card{min-height:0;height:var(--desktop-asset-row)}}@media(max-width:1023px){.canvas-wrap.has-room-image{aspect-ratio:auto!important;display:block;min-height:0}.room-image{width:100%;height:auto;max-height:none;object-fit:contain}}@media(max-width:1023px)and (orientation:portrait){.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.topbar-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}.screen-label{max-width:min(34vw,132px);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.language-select{min-width:96px}.editor-workbench,.result-grid{grid-template-columns:minmax(0,1fr)}.editor-stage,.editor-side,.result-stage,.result-panel,.asset-sheet,.surface-list,.editor-toolbar,.sheet-header,.surface-item,.assignment-chip,.applied-item{min-width:0}.sheet-header>div,.editor-toolbar>div,.surface-item>span,.assignment-chip>span,.applied-item>div{min-width:0}.surface-item strong,.surface-item em,.assignment-chip>span,.applied-item strong,.applied-item span,.render-queue-item strong,.render-queue-item small{overflow:visible;overflow-wrap:anywhere;text-overflow:clip;white-space:normal}.render-queue-item{align-items:start}.render-queue-item .zone-dot{margin-top:4px}.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-panel .result-actions{grid-template-columns:minmax(0,1fr)}.result-panel .result-actions .secondary-action:first-child{grid-column:auto}}@media(max-width:430px)and (orientation:portrait){.app-shell{padding-right:10px;padding-left:10px}.asset-grid,.zone-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.upload-steps{grid-template-columns:minmax(0,1fr)}.progress-strip{gap:6px;padding-right:8px;padding-left:8px}.render-card{padding:16px}}.step-back-link{display:inline-flex;align-items:center;gap:6px;margin:10px 0 0;padding:0;border:0;color:var(--text-secondary);background:transparent;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.step-back-link:hover:not(:disabled){color:var(--text-primary)}.step-back-link:disabled{cursor:default;opacity:.55}.step-back-action{width:100%}.result-image-unavailable{display:grid;min-height:320px;place-content:center;justify-items:center;gap:12px;padding:28px;border:1px solid var(--border-strong);border-radius:8px;background:#05070b;color:var(--text-primary);text-align:center}.app-shell{display:grid;grid-template-columns:minmax(0,1fr);align-content:start}.topbar,.upload-view,.state-screen,.editor-view,.result-view{justify-self:center}@media(min-width:720px)and (orientation:portrait){.android-webview .editor-view,.android-webview .result-view,.android-webview .upload-view,.android-webview .state-screen{max-width:920px}.android-webview .editor-workbench,.android-webview .result-grid{grid-template-columns:minmax(0,1fr)}.android-webview .editor-stage,.android-webview .editor-side,.android-webview .result-stage,.android-webview .result-panel{width:min(100%,860px);margin-inline:auto}}@media(min-width:1024px)and (min-height:640px){.android-webview .editor-view,.android-webview .result-view{padding-bottom:28px}.android-webview .result-stage .compare{margin-inline:auto}}.android-webview .render-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}.android-webview .render-card{box-shadow:none}@media(orientation:portrait){.upload-view{display:flex;flex-direction:column;align-items:stretch;justify-content:center;width:100%;max-width:none;min-height:calc(100dvh - 92px);margin:0 auto;padding:clamp(28px,8dvh,112px) clamp(18px,5vw,96px);gap:clamp(20px,4dvh,40px)}.upload-intro{width:100%;max-width:none;margin:0 auto;text-align:center}.upload-panel{width:100%;max-width:none;margin:0 auto}.editor-workbench,.result-grid{grid-template-columns:minmax(0,1fr);width:100%}.editor-side,.result-panel{position:static;max-height:none;overflow:visible}}.operation-status{position:fixed;top:max(72px,calc(env(safe-area-inset-top) + 56px));left:50%;z-index:70;display:inline-flex;align-items:center;gap:8px;max-width:min(calc(100vw - 32px),420px);padding:10px 14px;border:1px solid var(--border-strong);border-radius:999px;background:#121722f5;box-shadow:0 14px 34px #00000047;color:var(--text-primary);font-size:13px;font-weight:800;pointer-events:none;transform:translate(-50%);animation:operation-status-in .18s ease-out both}.screen-transition{animation:interior-screen-in .22s cubic-bezier(.2,.8,.2,1) both}.result-view.screen-transition{animation:interior-result-in .22s cubic-bezier(.2,.8,.2,1) both}.surface-items{max-height:min(36svh,300px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.surface-items::-webkit-scrollbar,.asset-grid::-webkit-scrollbar{width:6px}.surface-items::-webkit-scrollbar-thumb,.asset-grid::-webkit-scrollbar-thumb{border-radius:999px;background:var(--border-strong)}@keyframes operation-status-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@keyframes interior-screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes interior-result-in{0%{opacity:0}to{opacity:1}}.android-webview .operation-status{-webkit-backdrop-filter:none;backdrop-filter:none}@media(min-width:1024px){.surface-items{max-height:min(28dvh,260px)}}.android-upload-panel{min-height:min(52svh,460px);display:grid;place-items:center}.android-upload-handoff{width:min(100%,440px);display:grid;justify-items:center;gap:16px;text-align:center}.android-upload-handoff-icon{position:relative;width:84px;height:84px;display:block;flex:0 0 84px;line-height:0;color:var(--accent-strong);isolation:isolate}.android-upload-handoff-backdrop,.android-upload-handoff-pulse{position:absolute;top:50%;left:50%;width:84px;height:84px;border-radius:50%;transform:translate3d(-50%,-50%,0)}.android-upload-handoff-backdrop{z-index:1;border:1px solid rgba(155,92,255,.56);background:radial-gradient(circle,#9b5cff52,#9b5cff14)}.android-upload-handoff-pulse{z-index:0;border:1px solid rgba(155,92,255,.62);pointer-events:none;transform-origin:center;will-change:opacity,transform;animation:android-upload-pulse 2.2s ease-out infinite}.android-upload-handoff-icon>svg{position:absolute;z-index:2;top:50%;left:50%;display:block;transform:translate3d(-50%,-50%,0)}.android-upload-handoff-copy{width:100%;display:grid;justify-items:center;text-align:center}.android-upload-handoff h2{margin:5px 0 8px;color:var(--text-primary);font-size:clamp(24px,3vw,34px)}.android-upload-handoff p{max-width:38ch;margin:0;color:var(--text-secondary);line-height:1.52}.android-upload-handoff .eyebrow{width:100%;text-align:center;color:var(--accent-strong)}.android-upload-handoff-waiting{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--border-strong);border-radius:999px;background:#090c137a;color:var(--text-primary);font-size:13px;font-weight:800}.upload-progress{width:min(100%,480px);display:grid;justify-items:center;gap:18px;text-align:center}.upload-progress-preview{position:relative;width:min(100%,320px);aspect-ratio:4 / 3;display:grid;place-items:center;overflow:hidden;border:1px solid var(--border-strong);border-radius:18px;background:linear-gradient(145deg,#9b5cff59,#090c13f2);color:var(--text-primary)}.upload-progress-preview img{width:100%;height:100%;object-fit:cover;filter:blur(2px) brightness(.58) saturate(.78);transform:scale(1.035)}.upload-progress-preview-shade{position:absolute;inset:0;background:radial-gradient(circle,#9b5cff33,#090c136b)}.upload-progress-preview-spinner{position:absolute;z-index:1;padding:12px;border:1px solid rgba(255,255,255,.48);border-radius:50%;background:#111321b3}.upload-progress-copy h2{margin:5px 0 8px;color:var(--text-primary);font-size:clamp(24px,3vw,34px)}.upload-progress-copy{width:100%;display:grid;justify-items:center;text-align:center}.upload-progress-copy p{max-width:42ch;margin:0;color:var(--text-secondary);line-height:1.52}.upload-progress-copy .eyebrow{width:100%;text-align:center;color:var(--accent-strong)}.upload-progress-steps{width:min(100%,420px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0;margin:0;list-style:none}.upload-progress-steps li{display:grid;justify-items:center;gap:6px;color:var(--text-secondary);font-size:12px;font-weight:800}.upload-progress-step-icon{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:50%;background:#090c1380;color:var(--text-secondary)}.upload-progress-steps .active,.upload-progress-steps .complete{color:var(--text-primary)}.upload-progress-steps .active .upload-progress-step-icon{border-color:var(--accent-strong);background:#9b5cff38;color:var(--accent-strong)}.upload-progress-steps .complete .upload-progress-step-icon{border-color:#5ce6afb8;background:#5ce6af21;color:#5ce6af}.android-upload-qr{display:grid;justify-items:center;gap:8px}.android-upload-qr-frame{width:clamp(146px,20vw,188px);aspect-ratio:1;display:grid;place-items:center;padding:9px;border-radius:16px;background:#fff;box-shadow:0 12px 30px #00000040;color:#111321}.android-upload-qr-frame img{display:block;width:100%;height:100%}.android-upload-qr>span{color:var(--text-secondary);font-size:13px;font-weight:750}.android-webview .upload-view{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;align-content:center;width:min(100%,820px);min-height:calc(100dvh - 92px);margin-inline:auto;padding:clamp(28px,7dvh,72px) clamp(18px,5vw,56px);gap:clamp(24px,4dvh,36px)}.android-webview .upload-intro{width:min(100%,620px);max-width:none;margin-inline:auto;text-align:center}.android-webview .upload-panel{width:min(100%,520px);max-width:520px;margin-inline:auto}.android-webview .android-upload-panel{min-height:0}.android-webview .progress-strip{display:flex;flex:0 0 48px;min-height:48px;align-items:center;gap:8px;overflow-x:auto;overflow-y:hidden;padding:0 14px;font-size:14px;line-height:1;-webkit-text-size-adjust:100%;scrollbar-width:none}.android-webview .progress-strip::-webkit-scrollbar{display:none}.android-webview .progress-strip span,.android-webview .progress-strip svg{flex:0 0 auto}.android-webview .progress-strip span{display:inline-flex;min-height:48px;align-items:center}@media(max-width:560px){.upload-progress{gap:15px}.android-upload-handoff{gap:14px}.android-upload-qr-frame{width:154px}.android-webview .upload-view{width:100%;padding:22px 12px 34px}.android-webview .upload-panel{width:100%}}@keyframes android-upload-pulse{0%{opacity:.62;transform:translate3d(-50%,-50%,0) scale(1)}70%,to{opacity:0;transform:translate3d(-50%,-50%,0) scale(1.28)}}.editor-sidebar-scroll{display:contents}@media(min-width:1100px)and (min-height:620px)and (orientation:landscape){.app-shell.is-editor-mode{height:var(--interior-viewport-height, 100dvh);min-height:0;overflow:hidden}.app-shell.is-editor-mode .editor-view{height:calc(var(--interior-viewport-height, 100dvh) - 110px);min-height:0;margin:0 auto;overflow:hidden}.app-shell.is-editor-mode .editor-workbench{height:100%;min-height:0;grid-template-columns:minmax(220px,.78fr) minmax(0,1.8fr) minmax(260px,.92fr);align-items:stretch;gap:clamp(12px,1.5vw,22px)}.app-shell.is-editor-mode .editor-stage{order:2;min-width:0;min-height:0;height:100%;overflow:hidden}.app-shell.is-editor-mode .editor-left-sidebar{order:1}.app-shell.is-editor-mode .editor-right-sidebar{order:3}.app-shell.is-editor-mode .editor-side{position:relative;top:auto;min-width:0;min-height:0;max-height:none;height:100%;overflow:hidden;padding:0;scrollbar-gutter:auto}.app-shell.is-editor-mode .editor-sidebar-scroll{height:100%;min-height:0;display:flex;flex-direction:column;gap:12px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:1px 6px 12px 1px;scrollbar-gutter:stable}.app-shell.is-editor-mode .editor-left-sidebar .editor-toolbar{display:grid}.app-shell.is-editor-mode .zone-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell.is-editor-mode .zone-tab{min-height:44px;padding-inline:10px}.app-shell.is-editor-mode .canvas-wrap.has-room-image{width:100%;min-height:0;max-height:none;flex:1 1 auto;display:flex;align-items:center;justify-content:center;margin:0}.app-shell.is-editor-mode .room-image{width:auto;max-width:100%;height:auto;max-height:calc(var(--interior-viewport-height, 100dvh) - 210px);object-fit:contain}.app-shell.is-editor-mode .room-image-stage{display:inline-block;width:auto;max-width:100%}.app-shell.is-editor-mode .asset-sheet{min-height:100%}.app-shell.is-editor-mode .asset-grid{grid-template-rows:none;grid-auto-rows:minmax(144px,auto);max-height:none;overflow:visible;padding:2px}.app-shell.is-editor-mode .asset-card{height:auto;min-height:144px}}.editor-sidebar-toggles{display:flex;align-items:center;justify-content:space-between;gap:8px}.editor-sidebar-toggle{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--border-strong);border-radius:999px;padding:0 12px;background:var(--surface-2);color:var(--text-primary);font-size:12px;font-weight:850;box-shadow:0 8px 20px #00000029}.editor-sidebar-toggle:hover,.editor-sidebar-toggle.is-open{border-color:var(--accent-strong);background:color-mix(in srgb,var(--accent-strong) 18%,var(--surface-2))}.editor-sidebar-toggle>span{font-size:20px;font-weight:500;line-height:1}.editor-workbench.left-sidebar-closed .editor-left-sidebar,.editor-workbench.right-sidebar-closed .editor-right-sidebar{display:none}@media(min-width:1100px)and (min-height:620px)and (orientation:landscape){.app-shell.is-editor-mode .editor-workbench.left-sidebar-closed.right-sidebar-open{grid-template-columns:minmax(0,1fr) minmax(260px,.92fr)}.app-shell.is-editor-mode .editor-workbench.left-sidebar-open.right-sidebar-closed{grid-template-columns:minmax(220px,.78fr) minmax(0,1fr)}.app-shell.is-editor-mode .editor-workbench.left-sidebar-closed.right-sidebar-closed{grid-template-columns:minmax(0,1fr)}.app-shell.is-editor-mode .editor-sidebar-toggles{justify-content:center}}@media(max-width:1099px),(max-height:619px),(orientation:portrait){.editor-workbench.left-sidebar-open .editor-side{position:fixed;z-index:40;top:max(76px,calc(env(safe-area-inset-top) + 64px));bottom:max(12px,env(safe-area-inset-bottom));width:min(90vw,380px);min-height:0;max-height:none;overflow:hidden;padding:0;border:1px solid var(--border-strong);border-radius:16px;background:var(--surface-1);box-shadow:0 20px 56px #0000006b}.editor-workbench.left-sidebar-open .editor-left-sidebar{left:max(12px,env(safe-area-inset-left))}.editor-workbench.right-sidebar-open .editor-right-sidebar{right:max(12px,env(safe-area-inset-right))}.editor-workbench.left-sidebar-open .editor-sidebar-scroll,.editor-workbench.right-sidebar-open .editor-sidebar-scroll{height:100%;min-height:0;display:flex;flex-direction:column;gap:12px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:12px}.editor-workbench.left-sidebar-open .asset-grid,.editor-workbench.right-sidebar-open .asset-grid{max-height:none;overflow:visible}}.editor-sidebar-toggle{position:relative;width:40px;min-height:40px;padding:0;gap:0;border-radius:50%;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}.editor-sidebar-toggle:hover{transform:translateY(-1px) scale(1.04)}.editor-sidebar-toggle>svg{transition:transform .22s cubic-bezier(.2,.8,.2,1)}.editor-sidebar-toggle.is-open>svg{transform:scale(.92)}.editor-sidebar-toggle-arrow{position:absolute;display:grid;place-items:center;width:16px;height:16px;border:1px solid var(--border-strong);border-radius:50%;background:var(--surface-3);color:var(--text-primary);font-size:15px;line-height:1;transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .18s ease}.editor-sidebar-toggle-left .editor-sidebar-toggle-arrow{right:-6px}.editor-sidebar-toggle-right .editor-sidebar-toggle-arrow{left:-6px}.editor-sidebar-toggle.is-open .editor-sidebar-toggle-arrow{transform:rotate(180deg)}@media(min-width:1100px)and (min-height:620px)and (orientation:landscape){.app-shell.is-editor-mode .editor-workbench{position:relative}.app-shell.is-editor-mode .editor-side{border:1px solid var(--border-strong);border-radius:18px;background:var(--surface-1);box-shadow:0 16px 42px #0000003d;transition:opacity .19s ease,transform .24s cubic-bezier(.2,.8,.2,1),visibility 0s linear 0s}.app-shell.is-editor-mode .editor-sidebar-scroll{gap:0;padding:18px}.app-shell.is-editor-mode .editor-left-sidebar .editor-toolbar,.app-shell.is-editor-mode .editor-left-sidebar .surface-list,.app-shell.is-editor-mode .editor-left-sidebar .placement-panel,.app-shell.is-editor-mode .editor-right-sidebar .asset-sheet{border:0;border-radius:0;background:transparent;box-shadow:none}.app-shell.is-editor-mode .editor-left-sidebar .editor-toolbar,.app-shell.is-editor-mode .editor-left-sidebar .surface-list,.app-shell.is-editor-mode .editor-left-sidebar .placement-panel,.app-shell.is-editor-mode .editor-left-sidebar .zone-tabs{padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--border-subtle)}.app-shell.is-editor-mode .editor-right-sidebar .asset-sheet{min-height:0;padding:0}.app-shell.is-editor-mode .editor-right-sidebar .sheet-header{padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--border-subtle)}.app-shell.is-editor-mode .editor-right-sidebar .asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell.is-editor-mode .editor-workbench.left-sidebar-closed .editor-left-sidebar,.app-shell.is-editor-mode .editor-workbench.right-sidebar-closed .editor-right-sidebar{display:block;position:absolute;top:0;height:100%;opacity:0;visibility:hidden;pointer-events:none;overflow:hidden;transition-delay:0s,0s,.24s}.app-shell.is-editor-mode .editor-workbench.left-sidebar-closed .editor-left-sidebar{left:0;transform:translate(-20px)}.app-shell.is-editor-mode .editor-workbench.right-sidebar-closed .editor-right-sidebar{right:0;transform:translate(20px)}}@media(max-width:1099px),(max-height:619px),(orientation:portrait){.editor-sidebar-toggles{position:fixed;z-index:60;top:max(78px,calc(env(safe-area-inset-top) + 66px));right:max(14px,env(safe-area-inset-right));left:max(14px,env(safe-area-inset-left));pointer-events:none}.editor-sidebar-toggle{pointer-events:auto}.editor-workbench .editor-side,.editor-workbench.left-sidebar-closed .editor-left-sidebar,.editor-workbench.right-sidebar-closed .editor-right-sidebar{display:block;position:fixed;z-index:40;top:max(128px,calc(env(safe-area-inset-top) + 116px));bottom:max(12px,env(safe-area-inset-bottom));width:min(90vw,380px);min-height:0;max-height:none;overflow:hidden;padding:0;border:1px solid var(--border-strong);border-radius:18px;background:var(--surface-1);box-shadow:0 20px 56px #0000006b;opacity:1;visibility:visible;pointer-events:auto;transition:opacity .19s ease,transform .24s cubic-bezier(.2,.8,.2,1),visibility 0s linear 0s}.editor-workbench .editor-left-sidebar{left:max(12px,env(safe-area-inset-left));transform:translate(0)}.editor-workbench .editor-right-sidebar{right:max(12px,env(safe-area-inset-right));transform:translate(0)}.editor-workbench.left-sidebar-closed .editor-left-sidebar{opacity:0;visibility:hidden;pointer-events:none;transform:translate(calc(-100% - 22px));transition-delay:0s,0s,.24s}.editor-workbench.right-sidebar-closed .editor-right-sidebar{opacity:0;visibility:hidden;pointer-events:none;transform:translate(calc(100% + 22px));transition-delay:0s,0s,.24s}.editor-workbench .editor-sidebar-scroll{gap:0;padding:18px}.editor-workbench .editor-left-sidebar .editor-toolbar,.editor-workbench .editor-left-sidebar .surface-list,.editor-workbench .editor-left-sidebar .placement-panel,.editor-workbench .editor-right-sidebar .asset-sheet{border:0;border-radius:0;background:transparent;box-shadow:none}.editor-workbench .editor-left-sidebar .editor-toolbar,.editor-workbench .editor-left-sidebar .surface-list,.editor-workbench .editor-left-sidebar .placement-panel,.editor-workbench .editor-left-sidebar .zone-tabs,.editor-workbench .editor-right-sidebar .sheet-header{padding:0 0 16px;margin-bottom:16px;border-bottom:1px solid var(--border-subtle)}.editor-workbench .editor-right-sidebar .asset-sheet{min-height:0;padding:0}.editor-workbench .editor-right-sidebar .asset-grid{max-height:none;overflow:visible}}.app-shell.is-editor-mode{height:var(--interior-viewport-height, 100dvh);min-height:0;overflow:hidden}.app-shell.is-editor-mode .editor-view{height:calc(var(--interior-viewport-height, 100dvh) - 110px);min-height:0;overflow:hidden}.app-shell.is-editor-mode .editor-workbench{position:relative;display:block;height:100%;min-height:0}.app-shell.is-editor-mode .editor-stage{position:relative;width:100%;height:100%;min-height:0;display:flex;flex-direction:column;gap:10px;overflow:hidden}.app-shell.is-editor-mode .canvas-wrap.has-room-image{width:min(100%,980px);min-height:0;max-height:var(--interior-editor-canvas-height, min(38dvh, 420px));flex:0 0 auto;margin:0 auto}.app-shell.is-editor-mode .room-image-stage{width:auto;max-width:100%;max-height:var(--interior-editor-canvas-height, min(38dvh, 420px))}.app-shell.is-editor-mode .room-image{display:block;width:auto;max-width:100%;height:auto;max-height:var(--interior-editor-canvas-height, min(38dvh, 420px));object-fit:contain}.app-shell.is-editor-mode .editor-zone-tabs{flex:0 0 auto;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));width:min(100%,980px);margin:0 auto}.app-shell.is-editor-mode .editor-assets-panel{width:min(100%,980px);min-height:148px;flex:1 1 auto;margin:0 auto;padding:2px 4px 12px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}.app-shell.is-editor-mode .editor-assets-panel .asset-sheet{min-height:100%;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.app-shell.is-editor-mode .editor-assets-panel .sheet-header{margin-bottom:12px;padding:0 2px 12px;border-bottom:1px solid var(--border-subtle)}.app-shell.is-editor-mode .editor-assets-panel .asset-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));grid-template-rows:none;grid-auto-rows:auto;max-height:none;overflow:visible;padding:2px}.app-shell.is-editor-mode .editor-assets-panel .asset-card{min-height:146px;height:auto;content-visibility:auto;contain-intrinsic-size:auto 146px}.app-shell.is-editor-mode .editor-render-button{width:min(100%,980px);min-height:52px;flex:0 0 auto;margin:0 auto}.app-shell.is-editor-mode #interior-tools-sidebar{position:absolute;z-index:60;top:0;right:max(12px,env(safe-area-inset-right));bottom:0;display:flex;width:min(90vw,380px);height:auto;min-height:0;max-height:none;padding:0;overflow:hidden;border:1px solid var(--border-strong);border-radius:18px;background:var(--surface-1);box-shadow:0 20px 56px #0000006b;opacity:1;visibility:visible;pointer-events:auto;transform:translate(0);transition:opacity .18s ease,transform .24s cubic-bezier(.2,.8,.2,1),visibility 0s linear 0s}.app-shell.is-editor-mode .editor-workbench.right-sidebar-closed #interior-tools-sidebar{opacity:0;visibility:hidden;pointer-events:none;transform:translate(calc(100% + 22px));transition-delay:0s,0s,.24s}.app-shell.is-editor-mode #interior-tools-sidebar .editor-sidebar-scroll{display:flex;width:100%;height:100%;min-height:0;flex-direction:column;gap:16px;padding:18px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;touch-action:pan-y;-webkit-overflow-scrolling:touch}.app-shell.is-editor-mode #interior-tools-sidebar .editor-toolbar,.app-shell.is-editor-mode #interior-tools-sidebar .surface-list,.app-shell.is-editor-mode #interior-tools-sidebar .placement-panel{flex:0 0 auto;margin:0}.app-shell.is-editor-mode #interior-tools-sidebar .surface-items{max-height:none;overflow:visible;overscroll-behavior:auto;scrollbar-gutter:auto}@media(max-width:680px),(orientation:portrait){.app-shell.is-editor-mode .editor-view{height:calc(var(--interior-viewport-height, 100dvh) - 96px)}.app-shell.is-editor-mode .canvas-wrap.has-room-image,.app-shell.is-editor-mode .room-image-stage,.app-shell.is-editor-mode .room-image{max-height:var(--interior-editor-canvas-portrait-height, min(36dvh, 330px))}.app-shell.is-editor-mode .editor-zone-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell.is-editor-mode .zone-tab{min-height:42px;padding-inline:10px}.app-shell.is-editor-mode .editor-assets-panel{min-height:132px;padding-bottom:8px}.app-shell.is-editor-mode .editor-assets-panel .asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell.is-editor-mode .editor-assets-panel .asset-card{min-height:132px}}@media(prefers-reduced-motion:reduce){.app-shell.is-editor-mode #interior-tools-sidebar,.editor-sidebar-toggle,.editor-sidebar-trigger{transition-duration:.01ms}}.progress-strip .progress-step{display:inline-flex;align-items:center;min-height:26px;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit}.progress-strip .progress-step.done:not(:disabled){cursor:pointer}.progress-strip .progress-step.done:not(:disabled):hover,.progress-strip .progress-step.done:not(:disabled):focus-visible{color:var(--accent-strong);outline:none}.editor-sidebar-trigger{position:absolute;z-index:70;top:50%;right:8px;display:grid;width:42px;height:58px;place-items:center;margin:0;padding:0;border:0;background:transparent;color:var(--text-primary);filter:drop-shadow(0 3px 10px rgba(0,0,0,.26));opacity:.88;transform:translateY(-50%);transition:color .16s ease,opacity .16s ease,transform .22s cubic-bezier(.2,.8,.2,1)}.editor-sidebar-trigger:hover,.editor-sidebar-trigger:focus-visible,.editor-sidebar-trigger.is-open{color:var(--accent-strong);opacity:1}.editor-sidebar-trigger:hover{transform:translateY(-50%) translate(-3px)}.editor-sidebar-trigger:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.editor-sidebar-trigger svg{transition:transform .22s cubic-bezier(.2,.8,.2,1)}.editor-sidebar-trigger.is-open svg{transform:translate(-2px)}.app-shell.is-editor-mode #interior-tools-sidebar .sidebar-new-photo-button{width:100%;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 14px;border:1px solid var(--border-strong);border-radius:12px;background:color-mix(in srgb,var(--surface-2) 84%,transparent);color:var(--text-primary);font-size:14px;font-weight:850;transition:border-color .16s ease,background .16s ease,transform .16s ease}.app-shell.is-editor-mode #interior-tools-sidebar .sidebar-new-photo-button:hover:not(:disabled){border-color:var(--accent-strong);background:color-mix(in srgb,var(--accent-strong) 14%,var(--surface-2));transform:translateY(-1px)}.app-shell.is-editor-mode #interior-tools-sidebar .sidebar-new-photo-button:disabled{cursor:default;opacity:.5}.app-shell.is-editor-mode .canvas-wrap.has-room-image{display:grid;place-items:center}.app-shell.is-editor-mode .room-image-stage{display:inline-block;width:fit-content;height:fit-content;max-width:100%;line-height:0}.app-shell.is-editor-mode .room-image-stage--loading,.app-shell.is-editor-mode .room-image-stage--failed{width:min(100%,760px);min-height:min(220px,var(--interior-editor-canvas-height, 38dvh))}.app-shell.is-editor-mode .room-image-stage>.room-image{display:block;width:auto;max-width:100%;height:auto}.room-image-status{position:absolute;z-index:18;inset:0;display:grid;min-height:160px;place-content:center;justify-items:center;gap:10px;padding:20px;background:color-mix(in srgb,var(--surface-2) 92%,#080b12);color:var(--text-secondary);font-size:13px;line-height:1.4;text-align:center}.room-image-status.failed{color:var(--text-primary)}.room-image-status .secondary-action{min-height:40px}.room-image-stage--failed>.room-image{visibility:hidden}.result-media-status{position:absolute;z-index:30;inset:0;display:grid;place-content:center;justify-items:center;gap:10px;background:color-mix(in srgb,var(--surface-2) 92%,#080b12);color:var(--text-secondary);font-size:13px;line-height:1.4}.fatal-recovery-screen .state-panel{display:grid;justify-items:start;gap:14px}.android-webview .upload-view{gap:clamp(16px,3dvh,28px)}.android-webview .android-upload-panel{min-height:clamp(460px,54svh,620px);align-content:start;margin-top:-12px;padding-block:clamp(30px,4svh,46px) 28px}.android-webview .android-upload-panel--handoff{transform:translateY(clamp(56px,calc(5dvh + 20px),84px))}.android-webview .android-upload-handoff{min-height:100%;align-content:start;padding-top:10px}.android-webview .android-upload-handoff-icon{margin-top:8px}.placement-range-control>span{min-width:0;display:grid;gap:2px}.placement-range-control>span>strong{color:inherit;font-size:13px;line-height:1.15}.placement-range-control>span>small{color:var(--text-secondary);font-size:10px;font-weight:650;line-height:1.25}.mask-brush-clear{min-height:40px;padding:0 14px;border:1px solid rgba(239,68,68,.8);border-radius:10px;background:transparent;color:#f87171;font-weight:800;transition:border-color .16s ease,background .16s ease,color .16s ease}.mask-brush-clear:hover:not(:disabled),.mask-brush-clear:focus-visible{border-color:#fca5a5;background:#ef44441f;color:#fecaca}.mask-brush-clear:disabled{border-color:#ef444442;background:transparent;color:#f8717173}.android-webview .marker-pulse{animation:none;opacity:.46}.android-webview .zone-marker{transition:opacity .16s ease,transform .16s ease}.android-webview .surface-marker{width:28px;height:28px}.android-webview .group-marker{width:32px;height:32px}.android-webview .surface-index{font-size:10px}.android-webview .group-marker .marker-core>svg{width:15px;height:15px}.android-webview .group-marker .marker-count{min-width:16px;height:16px;font-size:9px}.zone-marker.is-revealing{opacity:.18;transform:translate(-50%,-50%) scale(.78)}.zone-marker.is-muted{opacity:.12;transform:translate(-50%,-50%) scale(.72)}.zone-marker.is-muted .marker-label{display:none}.zone-tabs.showing-segments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));animation:interior-zone-selector-in .18s cubic-bezier(.2,.8,.2,1) both}.zone-tab.zone-group-toggle{grid-column:1 / -1}.zone-segment-scroll{grid-column:1 / -1;display:flex;min-width:0;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding:2px 1px 6px;scroll-snap-type:x mandatory;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.zone-segment-scroll .segment-tab{min-width:min(168px,calc(100vw - 56px));flex:0 0 auto;scroll-snap-align:start}.zone-tab.segment-tab.assigned{border-color:color-mix(in srgb,var(--success) 65%,var(--border-strong));background:#22c9931a}@keyframes interior-zone-selector-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.android-webview .editor-sidebar-trigger{filter:none}.upload-progress-preview-spinner{top:50%;left:50%;display:grid;place-items:center;transform:translate3d(-50%,-50%,0)}.upload-progress-preview-spinner.spin{animation:upload-progress-preview-spin .9s linear infinite}@keyframes upload-progress-preview-spin{0%{transform:translate3d(-50%,-50%,0) rotate(0)}to{transform:translate3d(-50%,-50%,0) rotate(360deg)}}.placement-panel .placement-range-control{grid-template-columns:minmax(112px,.72fr) minmax(104px,1fr) auto}.placement-range-control>span>small{overflow-wrap:anywhere}.app-shell .result-view{padding-bottom:calc(188px + env(safe-area-inset-bottom))}.result-panel .result-actions{position:fixed;z-index:75;bottom:max(12px,env(safe-area-inset-bottom));left:50%;width:min(calc(100vw - 24px),920px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px;border:1px solid var(--border-strong);border-radius:16px;background:#0a0e17f5;box-shadow:0 16px 42px #00000070;transform:translate(-50%)}.result-panel .result-actions .result-continue-action{grid-column:1 / -1;width:100%;padding-inline:48px}.result-panel .result-actions .result-back-action{grid-column:1 / -1}.result-panel .result-actions .result-continue-hint{position:absolute;z-index:2;top:16px;right:16px}.result-panel .result-actions .primary-action,.result-panel .result-actions .secondary-action{min-height:44px;padding-block:8px;font-size:14px;justify-content:center}.result-panel .result-actions .secondary-action{border-color:#ffffffb8;background:#fff;color:#171923;box-shadow:none}.result-panel .result-actions .secondary-action:hover:not(:disabled),.result-panel .result-actions .secondary-action:focus-visible{border-color:#fff;background:#f1f3f7;color:#0e1018}.result-panel .result-actions .primary-action{background:linear-gradient(135deg,#8744f1,#a763ff);color:#fff}.result-panel .result-actions .primary-action:hover:not(:disabled),.result-panel .result-actions .primary-action:focus-visible{background:linear-gradient(135deg,#9657fb,#bc85ff)}@media(max-width:719px)and (orientation:portrait){.app-shell:not(.android-webview) .upload-view{padding-bottom:calc(clamp(28px,8dvh,112px) + 84px)}}.context-hint{position:relative;display:inline-flex;align-items:center;justify-content:center;margin:0;line-height:1;vertical-align:middle}.context-hint-trigger{width:34px;height:34px;display:inline-grid;place-items:center;flex:0 0 auto;padding:0;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border-subtle));border-radius:999px;background:color-mix(in srgb,var(--accent-soft) 62%,var(--surface-1));color:var(--accent-strong);box-shadow:0 7px 18px #2e19521f;cursor:help;transition:border-color .16s ease,background .16s ease,transform .16s ease}.context-hint-trigger:hover,.context-hint-trigger:focus-visible,.context-hint.is-open .context-hint-trigger{border-color:color-mix(in srgb,var(--accent) 72%,var(--border-strong));background:color-mix(in srgb,var(--accent-soft) 82%,var(--surface-1));transform:translateY(-1px)}.context-hint-popover{position:fixed;z-index:200;top:0;left:0;width:max-content;max-width:min(310px,calc(100vw - 32px));padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border-subtle));border-radius:11px;background:color-mix(in srgb,var(--surface-1) 96%,transparent);color:var(--text-primary);box-shadow:0 16px 36px #0609123d;font-size:11px;font-weight:720;line-height:1.45;text-align:left;white-space:normal;opacity:1;visibility:visible;pointer-events:none;transform:translateY(-4px);transition:opacity .15s ease,transform .15s ease,visibility .15s ease}.context-hint-popover.is-visible{transform:translateY(0)}.context-hint-popover.placement-top{transform-origin:bottom center}.context-hint-popover.placement-bottom{transform-origin:top center}.context-hint.success{color:var(--success)}.context-hint.success .context-hint-trigger{border-color:color-mix(in srgb,var(--success) 42%,var(--border-subtle));background:color-mix(in srgb,var(--success) 12%,var(--surface-1));color:color-mix(in srgb,var(--success) 82%,var(--text-primary))}.context-hint.success .context-hint-popover{border-color:color-mix(in srgb,var(--success) 38%,var(--border-subtle))}.context-hint.warning{color:#d98b1c}.context-hint.warning .context-hint-trigger{border-color:color-mix(in srgb,#e9a23b 48%,var(--border-subtle));background:color-mix(in srgb,#e9a23b 12%,var(--surface-1));color:color-mix(in srgb,#d98b1c 82%,var(--text-primary))}.context-hint.warning .context-hint-popover{border-color:color-mix(in srgb,#e9a23b 42%,var(--border-subtle))}.heading-with-hint{display:flex;align-items:center;gap:8px}.heading-with-hint .context-hint,.progress-hint{flex:0 0 auto}.heading-with-hint .context-hint-trigger,.progress-hint .context-hint-trigger,.editor-generate-hint .context-hint-trigger,.result-continue-hint .context-hint-trigger{width:28px;height:28px;box-shadow:none}.progress-hint{margin-left:auto}.editor-context-bar,.editor-generate-wrap{width:min(100%,980px);margin:0 auto}.editor-context-bar{display:flex;align-items:center;gap:8px}.preview-return-action{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;line-height:1;white-space:nowrap;flex:0 0 auto;padding:0 8px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface-1);color:var(--accent-strong);font-size:11px;font-weight:850}.editor-generate-wrap{position:relative}.app-shell.is-editor-mode .editor-generate-wrap .editor-render-button{width:100%;margin:0;padding-inline:48px}.editor-generate-hint{position:absolute;top:50%;right:10px;transform:translateY(-50%)}.applied-asset-preview{display:inline-flex;align-items:center;min-width:0;gap:8px}.applied-asset-thumbnail{position:relative;width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;overflow:hidden;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-3);color:var(--accent-strong)}.applied-asset-thumbnail img,.applied-asset-color{width:100%;height:100%;display:block;object-fit:cover}.applied-asset-color{border:1px solid rgba(255,255,255,.36)}.applied-asset-color-badge{position:absolute;right:2px;bottom:2px;width:14px;height:14px;border:2px solid rgba(255,255,255,.94);border-radius:999px;box-shadow:0 2px 7px #00000052}.applied-asset-copy{min-width:0}.applied-asset-copy strong,.applied-asset-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.applied-asset-copy .applied-asset-palette-color{display:flex;align-items:center;gap:5px;color:var(--text-primary)}.applied-asset-palette-color>span{width:9px;height:9px;flex:0 0 auto;border:1px solid color-mix(in srgb,var(--text-primary) 30%,transparent);border-radius:999px}.applied-asset-copy strong{color:var(--text-primary);font-size:12px;font-weight:900}.applied-asset-copy small{margin-top:2px;color:var(--text-secondary);font-size:11px;font-weight:750}.applied-asset-preview.compact{gap:0}.applied-asset-preview.compact .applied-asset-thumbnail{width:22px;height:22px;border-radius:6px}.zone-assignment-stack{display:inline-flex;align-items:center;flex:0 0 auto;padding-left:3px}.zone-assignment-stack .zone-assignment-preview+.zone-assignment-preview{margin-left:-6px}.zone-assignment-more{min-width:21px;height:21px;display:inline-grid;place-items:center;margin-left:3px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-2);color:var(--text-secondary);font-size:9px;font-weight:900}.assignment-chip{align-items:center;border-radius:12px}.assignment-chip>.applied-asset-preview{min-width:0;flex:1}.assignment-chip .applied-asset-thumbnail{width:34px;height:34px;flex:0 0 34px}.assignment-chip .applied-asset-copy{min-width:0;flex:1}.assignment-chip .applied-asset-copy strong,.assignment-chip .applied-asset-copy small,.assignment-chip .applied-asset-thumbnail{overflow:hidden}.catalog-tabs{position:sticky;z-index:8;top:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0 0 16px;padding:4px;border:1px solid var(--border-subtle);border-radius:14px;background:color-mix(in srgb,var(--surface-1) 94%,transparent);box-shadow:0 8px 20px #0000001a;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.object-catalog-panel{gap:12px}.object-search-label{display:grid;gap:5px;color:var(--text-secondary);font-size:12px;font-weight:700}.object-search-label input{min-height:40px;padding:0 11px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface-1);color:var(--text-primary);font:inherit}.object-card{position:relative;text-align:left}.object-catalog-panel .curtain-tools{margin-bottom:4px}.object-load-error{display:flex;align-items:center;justify-content:space-between;gap:8px}.object-load-error .error-text{margin:0}.object-load-more{justify-self:center}.catalog-tab{min-width:0;min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text-secondary);font:inherit;font-size:13px;font-weight:800;cursor:pointer}.catalog-tab small{min-width:22px;padding:2px 6px;border-radius:999px;background:var(--surface-2);color:var(--text-secondary);font-size:10px;text-align:center}.catalog-tab:hover{color:var(--text-primary)}.catalog-tab.active{border-color:var(--accent-strong);background:var(--accent-soft);color:var(--accent-strong);box-shadow:0 5px 14px color-mix(in srgb,var(--accent) 16%,transparent)}.catalog-tab.active small{background:color-mix(in srgb,var(--accent) 16%,var(--surface-1));color:var(--accent-strong)}.catalog-tab.has-selection:not(.active){color:var(--success)}.catalog-tab-check{flex:0 0 auto;padding:2px;border-radius:999px;background:var(--success);color:#fff}.catalog-tab:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.catalog-panel[hidden]{display:none}.catalog-panel{display:grid;gap:14px}.selected-catalog-item{display:grid;gap:8px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--success) 42%,var(--border-subtle));border-radius:12px;background:color-mix(in srgb,var(--success) 8%,var(--surface-2))}.selected-catalog-item>p{margin:0;color:var(--success);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.selected-catalog-item-row{min-width:0;display:flex;align-items:center;gap:10px}.selected-catalog-item-row>.applied-asset-preview{min-width:0;flex:1}.selected-catalog-item-row>button{width:34px;height:34px;display:inline-grid;place-items:center;flex:0 0 34px;border:1px solid color-mix(in srgb,var(--danger, #d94a63) 34%,var(--border-subtle));border-radius:10px;background:color-mix(in srgb,var(--danger, #d94a63) 8%,var(--surface-1));color:var(--danger, #d94a63);cursor:pointer}.selected-catalog-item-row>button:hover:not(:disabled){background:color-mix(in srgb,var(--danger, #d94a63) 14%,var(--surface-1))}.selected-catalog-item-row>button:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.catalog-palette-picker{margin-top:0;padding-top:0;border-top:0}.palette-picker{display:grid;gap:14px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border-subtle)}.palette-picker-heading,.palette-group-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.palette-picker-heading{padding:12px 14px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-2)}.palette-picker-heading strong{display:block;max-width:620px;color:var(--text-secondary);font-size:13px;font-weight:650}.palette-group{display:grid;gap:9px;padding:12px;border:1px solid var(--border-subtle);border-radius:12px;background:color-mix(in srgb,var(--surface-2) 76%,transparent)}.palette-search{width:100%;min-height:42px;padding:0 12px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--surface-2);color:var(--text-primary);font:inherit}.palette-search:focus-visible{border-color:var(--accent-strong);outline:2px solid var(--accent-soft);outline-offset:1px}.palette-group-title small{color:var(--text-secondary)}.palette-color-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}.palette-color{position:relative;display:grid;min-width:0;gap:6px;padding:7px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--surface-2);color:var(--text-primary);text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease}.palette-color:hover:not(:disabled){border-color:var(--accent);background:var(--surface-hover);transform:translateY(-1px)}.palette-color:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.palette-color>span{width:100%;aspect-ratio:1.65;border:1px solid rgba(255,255,255,.22);border-radius:7px;box-shadow:inset 0 0 0 1px #00000014}.palette-color small{overflow:hidden;font-size:10px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.palette-color svg{position:absolute;top:10px;right:10px;padding:2px;border-radius:999px;background:var(--accent);color:#fff}.palette-color.selected{border-color:var(--accent-strong);background:var(--accent-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}.palette-show-more{justify-self:start}.asset-card{position:relative}.asset-card-selected-status{position:absolute;top:14px;right:14px;width:auto!important;min-height:24px;display:inline-flex!important;align-items:center;gap:4px;margin:0!important;padding:3px 7px;border-radius:999px;background:#087b5de6;color:#fff!important;font-size:9px!important;font-weight:900!important;line-height:1!important}.placement-asset-preview{margin-top:9px}.placement-asset-preview .applied-asset-thumbnail{width:44px;height:44px}.render-queue-preview,.result-asset-preview{width:100%}.render-queue-preview .applied-asset-thumbnail{width:32px;height:32px;border-radius:7px}.render-queue-preview .applied-asset-copy strong,.result-asset-preview .applied-asset-copy strong{font-size:13px}.render-queue-preview .applied-asset-copy small,.result-asset-preview .applied-asset-copy small{font-size:12px}.render-status-hint,.result-context-hint{margin:0}.applied-item{padding:8px 10px}@media(max-width:680px),(orientation:portrait){.progress-strip{gap:4px;padding-inline:6px;font-size:11px}.editor-context-bar{align-items:stretch;flex-direction:column}.preview-return-action{width:100%;justify-content:center}.zone-tabs:not(.showing-segments) .zone-assignment-stack{display:none}.zone-segment-scroll .zone-assignment-preview{display:inline-flex}}.topbar-actions{gap:12px}.language-select{min-width:0;width:auto;min-height:34px;appearance:none;padding:0 2px;border:0;border-radius:0;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:900;letter-spacing:.12em}.language-select:hover,.language-select:focus-visible{color:var(--accent-strong)}.header-photo-action{width:34px;height:34px;display:inline-grid;place-items:center;padding:0;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text-secondary);transition:color .16s ease,border-color .16s ease,background .16s ease,transform .16s ease}.header-photo-action:hover:not(:disabled),.header-photo-action:focus-visible{border-color:color-mix(in srgb,var(--accent) 48%,var(--border-strong));background:color-mix(in srgb,var(--accent-soft) 66%,transparent);color:var(--accent-strong);transform:translateY(-1px)}.header-photo-action:disabled{cursor:default;opacity:.42}.mask-brush-stroke.add ellipse,.mask-brush-stroke.add rect,.mask-brush-stroke.add circle{fill:#9b5cff8f;stroke:none}.mask-brush-stroke.erase ellipse,.mask-brush-stroke.erase rect,.mask-brush-stroke.erase circle{fill:#ff5c758f;stroke:none}.mask-brush-stroke.clear ellipse,.mask-brush-stroke.clear rect,.mask-brush-stroke.clear circle{fill:#b7c3db75;stroke:none}.mask-brush-stroke.add polyline,.mask-brush-stroke.erase polyline,.mask-brush-stroke.clear polyline{fill:none;stroke-width:1}.mask-brush-stroke.add polyline{stroke:#9b5cff8f}.mask-brush-stroke.erase polyline{stroke:#ff5c758f}.mask-brush-stroke.clear polyline{stroke:#b7c3db75}.mask-brush-cursor{pointer-events:none}.mask-brush-cursor-shape{vector-effect:non-scaling-stroke;stroke-width:2}.mask-brush-cursor.add .mask-brush-cursor-shape{fill:#9b5cff2e;stroke:#ead8fffa}.mask-brush-cursor.erase .mask-brush-cursor-shape{fill:#ff5c752e;stroke:#ffdae1fa}.mask-brush-cursor.clear .mask-brush-cursor-shape{fill:#b7c3db24;stroke:#e7ecf7f5;stroke-dasharray:5 4}.mask-edit-active .room-image-stage{cursor:none}.placement-overlay.is-mask-editing{opacity:0}.mask-edit-hud{position:relative;flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px 10px 13px;border:1px solid color-mix(in srgb,var(--accent-strong) 56%,var(--border-strong));border-radius:14px;background:color-mix(in srgb,var(--surface-1) 88%,#10061e);box-shadow:0 12px 30px #00000061;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mask-edit-hud.erase{border-color:color-mix(in srgb,var(--danger) 62%,var(--border-strong))}.mask-edit-hud.clear{border-color:color-mix(in srgb,var(--text-secondary) 54%,var(--border-strong))}.mask-edit-copy{min-width:0;display:grid;gap:3px}.mask-edit-hud-mode{color:var(--accent-strong);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.mask-edit-hud.erase .mask-edit-hud-mode{color:var(--danger)}.mask-edit-hud.clear .mask-edit-hud-mode{color:var(--text-secondary)}.mask-edit-hud strong{color:var(--text-primary);font-size:12px;line-height:1.32}.mask-edit-done{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;padding:0 13px;border:1px solid color-mix(in srgb,var(--accent-strong) 66%,var(--border-strong));border-radius:10px;background:var(--accent-strong);color:#171022;font-size:12px;font-weight:900}.mask-edit-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}.mask-edit-cancel{min-height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface-2);color:var(--text-primary);font-size:12px;font-weight:850}.mask-edit-cancel:hover,.mask-edit-cancel:focus-visible{border-color:var(--text-secondary);background:var(--surface-3)}.mask-edit-done:hover,.mask-edit-done:focus-visible{background:#cfacff}.mask-edit-done:disabled,.mask-edit-cancel:disabled{cursor:wait;opacity:.72}.mask-refine-notice{display:block;padding:8px 10px;border:1px solid color-mix(in srgb,var(--success) 44%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--success) 8%,transparent);color:var(--text-secondary);font-size:11px;line-height:1.35}.mask-refine-notice.local{border-color:color-mix(in srgb,var(--warning) 48%,var(--border));background:color-mix(in srgb,var(--warning) 8%,transparent)}.mask-refine-notice.error{border-color:color-mix(in srgb,var(--danger) 48%,var(--border));background:color-mix(in srgb,var(--danger) 8%,transparent);color:var(--danger)}.canvas-wrap.mask-edit-active .zone-marker,.canvas-wrap.mask-edit-active .placement-handle,.canvas-wrap.mask-edit-active .placement-overlay{display:none!important}.app-shell.is-editor-mode #interior-tools-sidebar .editor-settings{display:grid;gap:16px;min-width:0}.editor-settings-heading{display:grid;gap:7px;padding-bottom:15px;border-bottom:1px solid var(--border-subtle)}.editor-settings-heading>p:not(.eyebrow){margin:0;color:var(--text-secondary);font-size:12px;line-height:1.45}.editor-settings .placement-save-status{margin-top:2px}.editor-settings .placement-autosave-help{margin-top:0}.app-shell.is-editor-mode #interior-tools-sidebar .mask-brush-controls{display:grid;gap:12px;padding:0;border:0;border-radius:0;background:transparent}.mask-brush-controls>div:first-child>p:not(.eyebrow){margin:5px 0 0;color:var(--text-secondary);font-size:12px;line-height:1.45}.mask-brush-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mask-mode-button{min-height:42px;border:1px solid transparent;border-radius:10px;color:#fff;font-size:13px;font-weight:900;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.mask-mode-button.add{border-color:#cba9ffa8;background:linear-gradient(135deg,#9450ef,#b878ff)}.mask-mode-button.erase{border-color:#ffa1adad;background:linear-gradient(135deg,#df4d68,#ff7187)}.mask-mode-button.clear{grid-column:2;border-color:color-mix(in srgb,var(--text-secondary) 46%,var(--border-strong));background:var(--surface-3);color:var(--text-primary)}.mask-mode-button.selected.add,.mask-mode-button.add:hover:not(:disabled),.mask-mode-button.add:focus-visible{border-color:#cda9ff;background:#341059;box-shadow:inset 0 0 0 1px #ffffff1f}.mask-mode-button.selected.erase,.mask-mode-button.erase:hover:not(:disabled),.mask-mode-button.erase:focus-visible{border-color:#ffadb9;background:#541827;box-shadow:inset 0 0 0 1px #ffffff1a}.mask-mode-button.selected.clear,.mask-mode-button.clear:hover:not(:disabled),.mask-mode-button.clear:focus-visible{border-color:color-mix(in srgb,var(--text-secondary) 86%,var(--border-strong));background:color-mix(in srgb,var(--surface-1) 78%,#111827);box-shadow:inset 0 0 0 1px #ffffff14}.mask-mode-button:disabled{cursor:default;opacity:.46}.brush-shape-picker{display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--border-subtle)}.brush-shape-picker>span{color:var(--text-secondary);font-size:11px;font-weight:850}.brush-shape-picker>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.brush-shape-button{min-height:52px;display:grid;place-items:center;align-content:center;gap:5px;padding:5px 3px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface-2);color:var(--text-secondary)}.brush-shape-button>span{display:block;width:18px;height:18px;border:2px solid currentColor}.brush-shape-button.circle>span{border-radius:50%}.brush-shape-button.oval>span{width:24px;border-radius:50%}.brush-shape-button.square>span{border-radius:2px}.brush-shape-button.rectangle>span{width:24px;border-radius:2px}.brush-shape-button small{max-width:100%;overflow:hidden;font-size:9px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.brush-shape-button.selected,.brush-shape-button:hover:not(:disabled),.brush-shape-button:focus-visible{border-color:var(--accent-strong);background:var(--accent-soft);color:var(--accent-strong)}.brush-shape-button:disabled{cursor:default;opacity:.46}.editor-settings .placement-range-control{grid-template-columns:minmax(98px,.72fr) minmax(88px,1fr) auto}.placement-advanced{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.placement-advanced summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;list-style:none;cursor:pointer}.placement-advanced summary::-webkit-details-marker{display:none}.placement-advanced summary>span{display:grid;gap:3px}.placement-advanced summary strong{color:var(--text-primary);font-size:12px}.placement-advanced summary small{color:var(--text-secondary);font-size:10px;line-height:1.3}.placement-advanced summary svg{color:var(--accent-strong);transition:transform .16s ease}.placement-advanced[open] summary svg{transform:rotate(90deg)}.placement-advanced-controls{display:grid;gap:12px;padding:0 0 14px}.editor-settings .placement-actions{margin-top:0}@media(max-width:680px),(orientation:portrait){.mask-edit-hud{align-items:stretch;flex-direction:column}.mask-edit-actions,.mask-edit-done,.mask-edit-cancel{width:100%}.mask-edit-actions{justify-content:stretch}.mask-edit-actions>button{flex:1 1 0}.mask-edit-hud strong{font-size:11px}}.object-edit-hud{--object-mode: var(--accent-strong);position:relative;flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid color-mix(in srgb,var(--object-mode) 56%,var(--border-strong));border-radius:14px;background:color-mix(in srgb,var(--surface-1) 90%,#10061e);box-shadow:0 12px 30px #00000061}.object-edit-hud.mode-replace{--object-mode: #f5a524}.object-edit-top{min-width:0;display:flex;align-items:center;gap:10px}.object-edit-top .object-edit-asset{flex:1 1 auto}.object-edit-hud .object-edit-done{width:auto;flex:0 0 auto;padding:0 12px;white-space:nowrap}.object-edit-asset{min-width:0;display:flex;align-items:center;gap:10px}.object-edit-asset img{width:40px;height:40px;flex:0 0 auto;object-fit:cover;border-radius:9px;background:var(--surface-2)}.object-edit-asset span{min-width:0;display:grid;gap:2px}.object-edit-asset strong{overflow:hidden;color:var(--text-primary);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.object-edit-status{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:11px;font-weight:800}.object-edit-status.is-saved{color:#4ade80}.object-edit-status.is-error{color:var(--danger)}.object-edit-actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px}.object-edit-delete{width:40px;height:40px;display:inline-grid;place-items:center;border:1px solid color-mix(in srgb,var(--danger) 45%,var(--border-strong));border-radius:10px;background:color-mix(in srgb,var(--danger) 12%,var(--surface-2));color:var(--danger)}.object-edit-delete:disabled{opacity:.6;cursor:wait}.object-mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-2)}.object-mode-toggle button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:850}.object-mode-toggle button.active{border-color:color-mix(in srgb,var(--object-mode) 70%,transparent);background:color-mix(in srgb,var(--object-mode) 22%,var(--surface-1));color:var(--text-primary)}.object-mode-toggle button:disabled{cursor:wait}.object-mode-hint{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.4}.object-edit-error{grid-column:1 / -1;margin:0;color:var(--danger);font-size:12px;font-weight:700}polygon.curtain-guide.draft.mode-replace{fill:url(#object-replace-hatch);stroke:#f5a524}polygon.curtain-guide.draft.mode-add{fill:color-mix(in srgb,var(--accent) 14%,transparent)}@media(max-width:480px){.object-mode-hint{display:none}.object-edit-asset img{width:34px;height:34px}}.object-mode-badge{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;background:var(--accent-strong);color:#171022;font-size:11px;font-weight:900;line-height:1;white-space:nowrap;pointer-events:none;transform:translateY(calc(-100% - 6px))}.object-mode-badge.mode-replace{background:#f5a524}.object-mode-badge.inside{transform:translate(6px,6px)}.app-shell.is-editor-mode .editor-assets-panel .catalog-tabs{background:var(--surface-1);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 10px 14px -6px #0000008c}.app-shell.is-editor-mode .editor-assets-panel .catalog-tabs:before{content:"";position:absolute;z-index:-1;left:-6px;right:-6px;top:-8px;height:14px;background:var(--bg-base)}.terminal-result-pair{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.result-grid.is-terminal{grid-template-columns:minmax(0,1fr)}@media(orientation:landscape)and (min-width:900px){.terminal-result-pair{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}.terminal-result-image{position:relative;display:block;margin:0;overflow:hidden;border:1px solid var(--border-strong);border-radius:8px;background:#05070b}.terminal-result-image img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}.terminal-result-image .compare-label{left:12px;right:auto}.terminal-result-image.is-loading{min-height:180px}
