.room-viewer-overlay{position:fixed;inset:0;background-color:rgba(15,23,42,.82);display:flex;align-items:center;justify-content:center;z-index:120200;padding:clamp(16px,4vw,48px);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto}.room-viewer-modal{background-color:#ffffff;border-radius:18px;width:min(88vw,1100px);max-height:min(90vh,860px);display:flex;flex-direction:column;gap:24px;padding:clamp(20px,3vw,32px);position:relative;box-shadow:0 24px 60px rgba(15,23,42,.25);overflow-y:auto;scrollbar-gutter:stable}.room-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:3%}.room-viewer-title{font-size:clamp(1.35rem,1.8vw,1.8rem);font-weight:600;color:var(--primary-color);margin:0}.room-viewer-close{font-size:26px;background:rgba(148,163,184,.16);border:none;border-radius:50%;cursor:url(/brush.png),pointer;height:40px;width:40px;display:flex;align-items:center;justify-content:center;color:#1f2933;transition:all .2s ease;flex-shrink:0}.room-viewer-close:hover{background:rgba(148,163,184,.28);transform:scale(1.08)}.room-viewer-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.9fr);gap:clamp(20px,3vw,32px)}.room-preview{display:flex;flex-direction:column;gap:16px;min-width:0}.room-view-container{width:100%;position:relative;background-color:white;border-radius:14px;overflow:hidden;box-shadow:0 10px 28px rgba(15,23,42,.18);aspect-ratio:4/3;display:flex;justify-content:center;align-items:center;min-height:340px;max-height:65vh}.room-view-container.room-view-container-bedroom,.room-view-container.room-view-container-living{aspect-ratio:1;height:auto;min-height:0;max-height:none}.room-view-container.room-view-container-hall{aspect-ratio:1312/1199;height:auto;min-height:0;max-height:none}.room-view-container.room-view-container-kitchen{aspect-ratio:1434/1097;height:auto;min-height:0;max-height:none}@media (min-width:769px){.room-view-container.room-view-container-bedroom{width:min(90%,calc(min(90vh, 860px) - 230px));align-self:center}.room-view-container.room-view-container-hall{width:min(100%,calc((min(90vh, 860px) - 230px) * 1312 / 1199));align-self:center}.room-view-container.room-view-container-kitchen{width:min(100%,calc((min(90vh, 860px) - 230px) * 1434 / 1097));align-self:center}}.room-wall-scale{position:absolute;top:12px;left:12px;z-index:3;pointer-events:none}.room-capture-button{position:absolute;top:10px;right:10px;z-index:4;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--color-accent,#bb9326);border-radius:12px;background:var(--color-neutral-bg,#fdfaf6);color:var(--color-accent-dark,#8f6e18);box-shadow:0 2px 6px rgba(1,38,69,.14);cursor:pointer}.room-capture-button:hover:not(:disabled){background:#fff4d9}.room-capture-button:focus-visible{outline:2px solid var(--primary-color);outline-offset:3px}.room-capture-button:disabled{cursor:wait;opacity:.6}.room-capture-spinner{animation:room-capture-spin 1s linear infinite}.room-capture-error{margin:0;color:#b91c1c;font-size:.85rem}.room-snapshot-save{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;background:#f5f8fa;color:#012645;font-size:.85rem}.room-snapshot-save button{min-height:44px;padding:8px 14px;border:0;border-radius:8px;background:#012645;color:#fff;cursor:pointer}.room-snapshot-save button:disabled{opacity:.6}.room-snapshot-actions{display:flex;flex-wrap:wrap;gap:8px}.room-snapshot-save .room-snapshot-share{background:#e2eaf0;color:#012645}@keyframes room-capture-spin{to{transform:rotate(1turn)}}.artwork-dimension-line>span,.room-wall-scale__label{padding:2px 9px;border:1px solid var(--color-accent,#bb9326);border-radius:5px;background:var(--color-neutral-bg,#fdfaf6);color:var(--color-accent-dark,#8f6e18);font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap;box-shadow:0 2px 6px rgba(1,38,69,.14)}.room-wall-scale__label{display:inline-block}.room-image-wrapper{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center}.room-image{object-fit:cover!important;object-position:center bottom!important;width:100%!important;height:100%!important;position:absolute!important;inset:0;transition:opacity .3s ease}.room-preload-image{display:none!important}.room-image-bedroom,.room-image-living{top:auto!important;bottom:0!important;height:auto!important;object-fit:contain!important;object-position:center bottom!important}.room-image-living{aspect-ratio:2/1}.room-image-bedroom{aspect-ratio:3/2}.room-image-hall,.room-image-kitchen{object-fit:contain!important}.product-on-wall{position:absolute;cursor:grab;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 18px 35px rgba(15,23,42,.35));transition:filter .3s ease}.product-on-wall:active{cursor:grabbing;filter:drop-shadow(0 22px 45px rgba(15,23,42,.42))}.product-image-container{width:100%;height:100%;position:relative;display:block}.artwork-dimension-line{position:absolute;top:calc(100% + 1px);left:0;right:0;z-index:2;height:10px;border-top:1px solid var(--color-accent,#bb9326);pointer-events:none}.artwork-dimension-line:after,.artwork-dimension-line:before{position:absolute;top:-6px;width:1px;height:12px;background:var(--color-accent,#bb9326);content:""}.artwork-dimension-line:before{left:0}.artwork-dimension-line:after{right:0}.artwork-dimension-line>span{position:absolute;top:-1px;left:50%;transform:translate(-50%,-50%)}.room-product-image{pointer-events:none;width:100%!important;height:100%!important;display:block;object-fit:contain!important;background:transparent;border:none;box-shadow:none;clip-path:none!important;-webkit-clip-path:none!important}.loading-message,.product-loading{display:flex;align-items:center;justify-content:center;padding:18px;font-size:16px;color:var(--primary-color);background:rgba(255,255,255,.86);border-radius:10px}.instructions{font-size:.95rem;line-height:1.6;color:#475569;background-color:#f8fafc;border-radius:12px;padding:16px 20px;border:1px solid rgba(148,163,184,.25)}.room-controls-panel{display:flex;flex-direction:column;gap:18px;max-height:100%;overflow:auto;padding-right:6px}.control-card{background:#f8fafc;border-radius:14px;padding:18px;border:1px solid rgba(148,163,184,.2);display:flex;flex-direction:column;gap:14px;box-shadow:0 6px 18px rgba(15,23,42,.08)}.control-card label{font-weight:600;color:var(--primary-color);font-size:.95rem}.room-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}.room-buttons button{padding:10px 14px;border:1px solid rgba(148,163,184,.6);background-color:white;cursor:url(/brush.png),pointer;transition:all .2s ease;font-weight:500;color:#1f2937}.room-buttons button:hover{background-color:rgba(59,130,246,.08);transform:translateY(-1px)}.room-buttons button.active{background-color:var(--primary-color);color:white;border-color:var(--primary-color);box-shadow:0 10px 24px rgba(59,130,246,.25)}.custom-room-upload{margin-top:12px}.custom-room-upload,.upload-room-btn{display:flex;align-items:center;gap:8px}.upload-room-btn{padding:10px 16px;border:2px dashed rgba(148,163,184,.6);background-color:#f8fafc;border-radius:10px;cursor:url(/brush.png),pointer;transition:all .2s ease;font-weight:500;color:#64748b;width:100%;justify-content:center}.upload-room-btn:hover{border-color:var(--primary-color);color:var(--primary-color);background-color:rgba(59,130,246,.05)}.upload-room-btn.active{border-style:solid;border-color:var(--primary-color);background-color:rgba(59,130,246,.1);color:var(--primary-color)}.upload-room-btn svg{flex-shrink:0}.remove-custom-room-btn{width:32px;height:32px;border-radius:50%;border:none;background-color:#ef4444;color:white;font-size:18px;cursor:url(/brush.png),pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.remove-custom-room-btn:hover{background-color:#dc2626;transform:scale(1.1)}.custom-room-image{position:absolute!important;inset:0}.color-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(28px,1fr));gap:12px}.color-option{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:url(/brush.png),pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 4px 10px rgba(15,23,42,.18)}.color-option:hover{transform:scale(1.08)}.color-option.active{border-color:var(--primary-color);transform:scale(1.12);box-shadow:0 0 0 3px rgba(59,130,246,.25)}.product-size-control input{width:100%;height:6px;-webkit-appearance:none;appearance:none;background:rgba(148,163,184,.35);outline:none;border-radius:999px;cursor:url(/brush.png),pointer}.product-size-control input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--primary-color);cursor:url(/brush.png),pointer;box-shadow:0 6px 12px rgba(59,130,246,.3)}.product-size-control input::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--primary-color);cursor:url(/brush.png),pointer;border:none;box-shadow:0 6px 12px rgba(59,130,246,.3)}.artwork-size-summary .artwork-size-readonly{margin:0;font-size:1rem;font-weight:600;color:#1f2937}.artwork-size-scale-note{margin:0;color:#53645f;font-size:.8rem;line-height:1.5}.room-viewer-close-mobile{display:none;margin-top:auto;padding:14px 16px;border-radius:12px;border:none;background:var(--primary-color);color:white;font-weight:600;font-size:1rem;cursor:url(/brush.png),pointer;box-shadow:0 16px 40px rgba(59,130,246,.28);transition:transform .2s ease}.room-viewer-close-mobile:active{transform:translateY(1px)}@media (max-width:1200px){.room-viewer-body{grid-template-columns:1fr}.room-viewer-close-mobile{display:block;width:100%}}@media (max-width:1200px) and (min-width:769px){.room-controls-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;max-height:none;overflow:visible;padding-right:0}.control-card{min-height:100%}}@media (max-width:768px){.room-viewer-overlay{align-items:flex-start;justify-content:center;padding:0;height:100dvh;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-backdrop-filter:none;backdrop-filter:none}.room-viewer-modal{width:100%;min-width:0;min-height:100%;padding:calc(8px + env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));box-sizing:border-box;border-radius:0;max-height:none;height:auto;overflow:visible;margin:0;gap:12px;flex-shrink:0;scrollbar-gutter:auto}.room-viewer-header{position:sticky;top:0;z-index:5;margin:0;padding:4px 2px 10px;gap:8px;background:#fff}.room-viewer-title{min-width:0;font-size:18px;line-height:1.35;white-space:nowrap}.room-viewer-body{min-width:0;gap:12px}.room-controls-panel,.room-preview{display:contents}.room-viewer-body .color-selector{order:0;position:sticky;top:54px;z-index:4;padding:8px 10px;gap:6px;border-radius:10px;box-shadow:none}.color-selector .color-options{grid-template-columns:repeat(6,minmax(0,1fr));justify-items:center;gap:4px 8px}.color-selector .color-option{width:32px;height:32px}.room-view-container{order:1}.instructions,.room-capture-error,.room-snapshot-save{order:2}.room-selector{order:3}.artwork-size-summary{order:4}.room-viewer-close-mobile{order:5}.room-wall-scale{top:8px;left:8px}.artwork-dimension-line>span,.room-wall-scale__label{padding:2px 6px;border-radius:4px;font-size:10px;line-height:1.2}.artwork-dimension-line{top:calc(100% + 20px);height:8px}.artwork-dimension-line:after,.artwork-dimension-line:before{top:-4px;height:8px}.room-view-container{aspect-ratio:auto;height:clamp(220px,48vh,360px)}.room-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.room-controls-panel{flex-direction:column;flex-wrap:nowrap;overflow:visible;max-height:none;padding-right:0;gap:16px}.room-viewer-close{height:40px;width:40px;font-size:24px}.instructions{padding:10px 12px;font-size:12px;line-height:1.55}.instructions p{margin:0}.control-card label{font-size:13px}.room-buttons button{min-height:44px;padding:8px 10px;font-size:13px}.upload-room-btn{font-size:13px}.artwork-size-summary .artwork-size-readonly{font-size:14px}.artwork-size-scale-note{font-size:12px}}@media (max-width:520px){.room-view-container{height:clamp(220px,50vh,360px)}.control-card{padding:16px}.color-option{width:28px;height:28px}}.room-viewer-overlay{background:rgba(13,27,35,.78);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.room-viewer-modal{border:1px solid rgba(169,130,67,.26);border-radius:22px;background:#fdfbf7;box-shadow:0 30px 90px rgba(7,20,28,.38)}.room-viewer-title{color:#102b3b;font-weight:700;letter-spacing:-.025em}.room-viewer-close{border:1px solid rgba(169,130,67,.22);background:#f7f3ea;color:#45545a}.room-viewer-close:hover{background:#eee5d5}.room-view-container{border:1px solid rgba(169,130,67,.2);border-radius:16px;box-shadow:0 14px 34px rgba(16,43,59,.14)}.control-card{border-color:rgba(169,130,67,.18);border-radius:15px;background:#faf8f3;box-shadow:0 8px 22px rgba(16,43,59,.055)}.control-card label{color:#102b3b}.room-buttons button{border-color:rgba(16,43,59,.16);border-radius:10px;color:#40515a}.room-buttons button:hover{background:#f5efe3}.room-buttons button.active{border-color:#102b3b;background:#102b3b;box-shadow:0 8px 18px rgba(16,43,59,.2)}.instructions{border-color:rgba(169,130,67,.18);background:#f8f5ee;color:#536168}.upload-room-btn{border-color:rgba(169,130,67,.42);background:#fbf8f1;color:#6d542d}.upload-room-btn.active,.upload-room-btn:hover{border-color:#a98243;background:#f4ecdc;color:#102b3b}.color-option.active{border-color:#a98243;box-shadow:0 0 0 3px rgba(169,130,67,.18)}.product-size-control input{background:rgba(16,43,59,.18);accent-color:#a98243}.product-size-control input::-webkit-slider-thumb{background:#a98243;box-shadow:0 4px 10px rgba(169,130,67,.28)}.product-size-control input::-moz-range-thumb{background:#a98243;box-shadow:0 4px 10px rgba(169,130,67,.28)}.artwork-size-summary .artwork-size-readonly{color:#102b3b}.room-viewer-close-mobile{background:#102b3b;box-shadow:0 10px 24px rgba(16,43,59,.2)}.room-buttons button:focus-visible,.room-viewer-close-mobile:focus-visible,.room-viewer-close:focus-visible,.upload-room-btn:focus-visible{outline:2px solid #a98243;outline-offset:3px}@media (max-width:768px){.room-viewer-modal{border:0;border-radius:0}.room-viewer-header{background:#fdfbf7}}