@font-face{font-family:RoomHeading;src:url('fonts/danjeong-heading.woff2') format('woff2');font-display:swap}@font-face{font-family:RoomText;src:url('fonts/danjeong-text-regular.woff2') format('woff2');font-display:swap}@font-face{font-family:RoomText;src:url('fonts/danjeong-text-bold.woff2') format('woff2');font-weight:700;font-display:swap}
:root{color-scheme:light;--ivory:#faf7f1;--paper:#fffdf9;--beige:#eee2d1;--line:#e3d8ca;--brown:#493b30;--muted:#85776a;--orange:#ef7d32;--deep:#80634c;--photo-ratio:.7777778;font-family:RoomText,sans-serif;color:var(--brown);background:var(--ivory)}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.45}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--orange);outline-offset:3px}[hidden]{display:none!important}a{color:inherit;text-underline-offset:4px}h1,h2,p{margin:0}h1,h2{font-weight:400}button{border:0}button,select,input,textarea{border-radius:12px}input,textarea,select{border:1px solid var(--line);background:var(--paper);color:var(--brown);padding:12px;min-width:0}textarea{resize:vertical}button.primary,.primary{display:flex;align-items:center;justify-content:center;gap:24px;min-height:52px;background:var(--deep);color:var(--paper);border:1px solid var(--deep);padding:12px 22px;font-weight:700}.primary>span{margin-left:auto;font-size:21px}.secondary{background:var(--paper);border:1px solid var(--line);min-height:44px;padding:10px 18px}.text-button{background:none;padding:10px;min-height:44px;font-size:13px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--muted)}.brand{display:inline-block;position:relative;font:44px/1 RoomHeading,cursive;text-decoration:none;isolation:isolate}.brand-dot{position:absolute;width:20px;height:20px;right:-12px;bottom:-5px;background:var(--orange);border-radius:50%;z-index:-1}.demo-tag{font-size:11px;letter-spacing:1px;color:var(--muted)}.orange-dot{width:8px;height:8px;background:var(--orange);border-radius:50%;display:inline-block;flex:none}.lobby{max-width:1100px;margin:auto;padding:36px 36px 64px}.lobby-nav{display:flex;align-items:center;justify-content:space-between;padding-bottom:55px}.lobby-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center}.invitation h1{font:54px/1.32 RoomHeading,cursive;margin:20px 0}.invitation>p{font-size:15px;line-height:1.9;color:var(--muted)}.reservation{margin-top:30px;border-block:1px solid var(--line);padding:10px 0}.reservation-line{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;font-size:13px}.reservation-line>span{color:var(--muted)}.reservation-line select{padding:8px;font-size:12px;max-width:220px}.gender{display:flex;gap:4px}.gender button{background:transparent;padding:8px 14px;font-size:12px}.gender .selected{background:var(--beige)}.availability{margin-top:22px!important;font-size:13px!important}.invitation .primary{width:100%;margin:12px 0 20px}.lobby-links{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:22px;font-size:12px}.prototype-note{display:block;color:var(--muted);font-size:11px;line-height:1.8;margin-top:20px}.lobby-photo{position:relative;align-self:start;margin-top:25px;padding:18px 18px 66px;background:var(--paper);box-shadow:0 20px 55px #493b3010;transform:rotate(3deg);border:1px solid var(--line)}.lobby-photo img{width:100%;display:block}.photo-stamp{display:block;font:27px RoomHeading;text-align:center;margin-top:20px}.photo-note{position:absolute;bottom:-42px;left:0;right:0;display:flex;gap:8px;align-items:center;justify-content:center;font-size:11px;color:var(--muted);transform:rotate(-3deg)}.room{height:100dvh;display:flex;flex-direction:column;max-width:1100px;margin:auto}.room-header{height:76px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:12px 26px;flex:none}.room-title{display:flex;gap:10px;align-items:center}.room-title h1{font:29px/1.1 RoomHeading}.room-title>div>span{font-size:10px;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:16px}.timer{font-size:16px;font-variant-numeric:tabular-nums;display:flex;gap:8px;align-items:center}.timer b{font-weight:700}.timer-label{font-size:10px;color:var(--muted)}.room-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;min-height:0;flex:1}.photo-column{min-height:0;position:relative;display:flex;flex-direction:column;padding:0 26px}.photo-topline{display:flex;justify-content:space-between;padding:13px 0;font-size:11px;color:var(--muted);flex:none}.session-note{font-size:10px}.photo-space{min-height:0;flex:1;display:flex;justify-content:center;align-items:center;overflow:hidden;border-radius:16px;background:#f0e9df;position:relative;padding:0}.photo-viewport{position:relative;height:100%;width:100%;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;background:#fff;max-width:var(--frame-width,100%)}.world{position:absolute;inset:0;transform:translate(var(--pan-x,0px),var(--pan-y,0px)) scale(var(--zoom,1));transform-origin:center;will-change:transform}.world img{width:100%;height:100%;object-fit:fill;display:block;pointer-events:none}.compare-before,.compare-after{position:absolute;inset:0;overflow:hidden}.compare-after{clip-path:inset(0 0 0 50%)}.pin-world{pointer-events:none}.photo-badges{position:absolute;inset:14px 14px auto;display:flex;justify-content:space-between;pointer-events:none}.version-badge,.working-badge{background:#fffdf9ed;border:1px solid #e3d8ca99;border-radius:7px;padding:6px 10px;font-size:11px}.version-badge{font-weight:700}.working-badge{display:flex;gap:7px;align-items:center}.working-badge i{width:5px;height:5px;background:var(--orange);border-radius:50%;animation:pulse 1.4s infinite}.comparison-labels{position:absolute;bottom:62px;left:14px;right:14px;display:flex;justify-content:space-between;pointer-events:none}.comparison-labels span{font-size:10px;color:var(--brown);background:#fffdf9d9;padding:5px 8px;border-radius:5px}.compare-line{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--orange);pointer-events:none}.compare-handle{pointer-events:auto;position:absolute;left:1px;top:50%;width:42px;height:42px;transform:translate(-50%,-50%);border:3px solid var(--paper);border-radius:50%;background:var(--orange);color:var(--paper);box-shadow:0 2px 12px #493b3030;font:700 19px/1 sans-serif;letter-spacing:4px;padding-left:6px;touch-action:none}.zoom-tools{position:absolute;bottom:12px;left:50%;display:flex;align-items:center;background:#fffdf9ee;border:1px solid var(--line);border-radius:20px;transform:translateX(-50%);box-shadow:0 2px 8px #493b3010}.zoom-tools button{background:none;min-height:34px;min-width:34px;font-size:14px;border-radius:20px}.zoom-tools #zoomReset{font-size:11px;min-width:50px}.photo-hint{display:flex;justify-content:space-between;gap:6px;font-size:10px;color:var(--muted);padding:10px 0;flex:none}.quick-section{flex:none;padding:6px 0 16px}.quick-heading{display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:12px;margin-bottom:10px}.quick-heading small{font-size:10px;color:var(--muted)}.quick-requests{display:flex;gap:6px;flex-wrap:wrap}.quick-requests button{padding:9px 12px;min-height:38px;background:var(--paper);border:1px solid var(--line);font-size:11px;border-radius:20px;white-space:nowrap}.quick-requests button:hover{background:var(--beige)}.customer-footer{flex:none;padding-bottom:max(15px,env(safe-area-inset-bottom));background:var(--ivory)}.chat-bar{position:relative;min-height:44px;width:100%;display:flex;align-items:center;justify-content:space-between;background:transparent;font-size:12px;border-radius:0;border-top:1px solid var(--line)}.drawer-grip{display:none}.chat-bar b{font-size:10px;display:inline-grid;place-items:center;background:var(--orange);color:white;border-radius:10px;min-width:18px;height:18px;margin-left:4px}.confirm-button{width:100%}.chat-panel{min-height:0;background:var(--paper);border-left:1px solid var(--line);display:flex;flex-direction:column}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:20px 18px 15px;border-bottom:1px solid var(--line);flex:none}.chat-header h2{font-size:13px;font-weight:700}.chat-header span{font-size:10px;color:var(--muted);display:inline-block;margin-top:5px}.chat-header #closeChat{display:none}.chat-messages{overflow:auto;flex:1;min-height:120px;padding:16px;display:flex;flex-direction:column;gap:14px;overscroll-behavior:contain}.message{display:flex;flex-direction:column;max-width:88%;align-self:flex-start}.message.self{align-self:flex-end;align-items:flex-end}.message small{font-size:9px;color:var(--muted);margin:0 3px 5px}.bubble{background:var(--beige);padding:10px 12px;border-radius:12px 12px 12px 3px;font-size:12px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.message.customer .bubble{background:var(--orange);color:#fffdf9;border-radius:12px 12px 3px 12px}.message.system{align-self:center;text-align:center;max-width:100%}.message.system .bubble{font-size:10px;color:var(--muted);background:transparent;padding:5px}.chat-form{flex:none;display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}.chat-form input{width:100%;font-size:12px;min-height:42px}.chat-form button{border-radius:50%;width:42px;flex:none;background:var(--deep);color:white;font-size:20px}.operator-tools{flex:none;padding:18px 16px;border-top:1px solid var(--line);max-height:50%;overflow:auto}.tools-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.tools-heading h2{font-size:12px;font-weight:700}.tools-heading span{font-size:10px;color:var(--muted)}.pin-list{display:flex;flex-direction:column;gap:8px;max-height:150px;overflow:auto;font-size:11px}.pin-row{display:flex;align-items:center;gap:8px;background:var(--ivory);padding:9px;border:1px solid var(--line);border-radius:8px}.pin-row .pin-number{background:var(--orange);color:white;border-radius:50%;height:23px;width:23px;display:grid;place-items:center;flex:none}.pin-row>span:nth-child(2){flex:1;overflow-wrap:anywhere;line-height:1.6}.pin-row label{white-space:nowrap;font-size:10px;display:flex;gap:3px;align-items:center}.pin-row input{accent-color:var(--deep)}.pin-row.done .pin-number{background:#948b82}.empty-pins{font-size:11px;color:var(--muted);line-height:1.8}.delivery{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.delivery p{font-size:11px;color:var(--muted);margin-bottom:10px}.delivery button{width:100%;font-size:11px;min-height:40px;margin-bottom:7px}.delivery small{display:block;font-size:9px;line-height:1.7;color:var(--muted);margin:10px 0}.delivery a,.customer-link{display:block;font-size:10px;margin-top:12px}.working-switch{font-size:11px;display:flex;align-items:center;gap:6px;margin-top:8px}.working-switch input{accent-color:var(--orange)}.pin{position:absolute;transform:translate(-50%,-100%) scale(calc(1 / var(--zoom,1)));transform-origin:50% 100%;display:flex;flex-direction:column;align-items:center;pointer-events:none}.pin .pin-number{display:grid;place-items:center;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--orange);color:white;height:28px;width:28px;border:2px solid white;box-shadow:0 2px 8px #493b3022}.pin .pin-number b{transform:rotate(45deg);font-size:12px}.pin.done .pin-number{background:#948b82}.pin em{font-size:9px;font-style:normal;background:#fffdf9e6;border-radius:3px;padding:2px 4px;margin-bottom:4px;color:#71665c}.version-glow{position:absolute;inset:0;background:linear-gradient(110deg,transparent 10%,#fffdf9a8 50%,transparent 90%);opacity:0;pointer-events:none}.version-glow.flash{animation:glint .8s ease-out}.version-badge.flash{animation:versionPop .8s}.expired-notice{position:fixed;top:80px;left:50%;transform:translateX(-50%);font-size:11px;background:var(--beige);padding:10px 20px;border-radius:8px;z-index:8;width:max-content;max-width:90%}.checkout{max-width:1050px;margin:auto;padding:36px}.checkout>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:60px}.checkout-grid{display:grid;grid-template-columns:.8fr 1fr;gap:70px}.final-photo{align-self:start;border:1px solid var(--line);padding:16px;background:var(--paper);position:sticky;top:30px}.final-photo img{display:block;width:100%}.final-photo span{display:block;text-align:center;font-size:12px;margin-top:16px;color:var(--muted)}.checkout h1{font:48px/1.35 RoomHeading;margin:12px 0 15px}.muted{font-size:12px;color:var(--muted);line-height:1.8}.checkout fieldset{border:0;padding:0;margin:25px 0}.checkout legend{font-size:13px;font-weight:700;margin-bottom:12px}.option{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);background:var(--paper);padding:14px;border-radius:10px;margin:8px 0;font-size:12px}.option span{display:flex;gap:8px;align-items:center}.option input{accent-color:var(--deep)}.option small{color:var(--muted);font-size:10px}.option strong{font-weight:400;color:var(--muted);font-size:10px}.checkout label:not(.option){display:flex;flex-direction:column;gap:7px;font-size:11px;margin:10px 0}.checkout input,.checkout textarea{font-size:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checkout .primary{width:100%;margin-top:20px}.back-button{display:block;margin:8px auto}.order-done{padding:28px 0}.order-done>span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--beige);font-size:22px;margin-bottom:20px}.order-done h2{font:28px RoomHeading;margin-bottom:12px}.order-done p{font-size:12px;line-height:1.8;color:var(--muted);margin-bottom:20px}dialog{border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--brown);max-width:min(400px,calc(100% - 32px));width:100%;padding:28px;box-shadow:0 24px 100px #493b3030}dialog::backdrop{background:#493b3048;backdrop-filter:blur(3px)}dialog h2{font:29px/1.4 RoomHeading;margin:10px 0}dialog p{font-size:12px;line-height:1.8;color:var(--muted);margin-bottom:16px}dialog textarea{width:100%;font-size:13px}.dialog-actions{display:flex;gap:8px;margin-top:20px}.dialog-actions button{flex:1;min-height:46px;font-size:12px}.toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:#493b30ed;color:var(--paper);padding:12px 18px;border-radius:10px;font-size:12px;max-width:90%;width:max-content;z-index:30;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}[data-role=operator] .room{max-width:none}[data-role=operator] .room-layout{grid-template-columns:minmax(0,1fr) 360px}[data-role=operator] .photo-column{padding:0 38px 18px}[data-role=operator] .quick-section,[data-role=operator] .customer-footer{display:none}[data-role=operator] .chat-messages{min-height:120px}[data-role=operator] .photo-hint{padding:12px 0 0}
@keyframes pulse{50%{opacity:.3}}@keyframes glint{0%{opacity:0;transform:translateX(-40%)}30%{opacity:.45}100%{opacity:0;transform:translateX(40%)}}@keyframes versionPop{40%{background:var(--orange);color:white;transform:scale(1.1)}}
@media(max-width:700px){.lobby{padding:26px 22px 50px}.lobby-nav{padding-bottom:40px}.lobby-grid{grid-template-columns:1fr;gap:40px}.invitation h1{font-size:43px}.lobby-photo{display:none}.reservation-line select{max-width:200px}.room-header{height:66px;padding:10px 16px;gap:8px}.room-title h1{font-size:25px}.header-actions{gap:8px}.timer-label{display:none}.timer{font-size:15px}.photo-column{padding:0 14px}.room-layout{display:flex;flex-direction:column}.photo-column{flex:1}.photo-topline{padding:10px 0}.photo-hint{font-size:9px;padding:8px 0}.quick-section{padding:4px 0 10px}.quick-heading{margin-bottom:8px}.quick-heading small{display:none}.quick-requests{flex-wrap:nowrap;overflow:auto;scrollbar-width:none;padding:2px 1px}.quick-requests button{font-size:11px;padding:8px 12px;min-height:36px}.customer-footer{padding-bottom:max(12px,env(safe-area-inset-bottom))}.chat-bar{min-height:44px;padding-top:7px}.drawer-grip{display:block;position:absolute;width:32px;height:3px;background:#cbbbAA;left:50%;top:5px;transform:translateX(-50%);border-radius:2px}.confirm-button{min-height:48px;font-size:13px}.chat-panel{display:none;position:fixed;left:0;right:0;bottom:calc(72px + env(safe-area-inset-bottom));height:min(52dvh,450px);z-index:10;border:1px solid var(--line);border-radius:20px 20px 0 0;box-shadow:0 -12px 40px #493b3015}.chat-panel.open{display:flex}.chat-header{padding:12px 16px}.chat-header #closeChat{display:block}.chat-messages{padding:14px}.chat-form{padding:10px 14px}.checkout{padding:26px 22px}.checkout>header{margin-bottom:35px}.checkout-grid{grid-template-columns:1fr;gap:30px}.final-photo{position:static;width:160px;margin:auto}.checkout h1{font-size:39px}.form-grid{grid-template-columns:1fr}.checkout .eyebrow{margin-top:10px}[data-role=operator] .room{height:auto;min-height:100dvh}[data-role=operator] .room-layout{display:grid;grid-template-columns:1fr}[data-role=operator] .photo-column{padding:0 18px 15px}[data-role=operator] .photo-space{height:50dvh;flex:none}[data-role=operator] .chat-panel{display:flex;position:static;height:620px;border-radius:0;box-shadow:none;max-height:none}[data-role=operator] .operator-tools{max-height:55%}[data-role=operator] #closeChat{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

[data-role=customer] .room{max-width:560px}[data-role=customer] .room-layout{display:flex}[data-role=customer] .photo-column{flex:1}[data-role=customer] .chat-panel{display:none;position:fixed;left:50%;right:auto;transform:translateX(-50%);width:min(560px,100%);bottom:calc(76px + env(safe-area-inset-bottom));height:min(48dvh,440px);z-index:10;border:1px solid var(--line);border-radius:20px 20px 0 0;box-shadow:0 -12px 40px #493b3015}[data-role=customer] .chat-panel.open{display:flex}[data-role=customer] #closeChat{display:block}

.compare-handle{white-space:nowrap;letter-spacing:0;padding:0}.chat-bar{touch-action:none}

.lobby-menu-links{display:flex;align-items:center;gap:24px}.lobby-menu-links>a{font-size:12px;text-decoration:none}@media(max-width:700px){.lobby-menu-links{flex-direction:column;align-items:flex-end;gap:8px}.lobby-menu-links>a{font-size:11px}}

.premium-room-price>div{display:flex;align-items:baseline;gap:10px}.premium-room-price strong{font-size:22px}.premium-room-price small{font-size:11px;color:var(--orange)}.premium-order-price{display:grid;grid-template-columns:1fr auto;gap:8px;border-block:1px solid var(--line);padding:18px 0;margin-top:20px;align-items:center;font-size:13px}.premium-order-price strong{font-size:25px}.premium-order-price small{grid-column:1/-1;font-size:11px;color:var(--muted)}

.preparation-guide{margin:24px 0;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}.preparation-guide h2{font:25px/1.5 RoomHeading;margin-bottom:10px}.preparation-guide p,.preparation-guide li{font-size:13px;line-height:1.85;color:var(--muted)}.session-plan{padding:10px 0}.preparation-guide details{border-top:1px solid var(--line);padding:12px 0}.preparation-guide summary{cursor:pointer;font-size:13px;font-weight:700}.preparation-guide ul{padding-left:19px;margin:12px 0 0}.preparation-guide li+li{margin-top:7px}.service-assurance{padding:14px;background:#f9ecdc;border:1px solid #e4c5a7;border-radius:10px;margin-top:10px}.service-assurance strong{font-size:14px;line-height:1.7;display:block}.service-assurance p{margin:7px 0}.service-assurance small{font-size:11px;color:var(--muted);line-height:1.7;display:block}.preparation-check{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.8;padding-top:18px}.preparation-check input{margin-top:4px;width:18px;height:18px;flex:none;accent-color:var(--orange)}.session-status{flex:none;padding:10px 26px;border-bottom:1px solid var(--line);background:var(--paper);display:flex;gap:12px;align-items:center}.session-status strong{font-size:12px;flex:none}.session-status span{font-size:11px;line-height:1.65;color:var(--muted)}.session-status[data-phase=warning],.session-status[data-phase=finishing]{background:#f9ecdc}.session-status[data-phase=ended]{background:var(--beige)}.room-connection-banner{flex:none;background:#f9ecdc;color:var(--brown);padding:10px 24px;font-size:12px;line-height:1.7}.checkout-assurance{margin:12px 0 24px;font-size:13px;line-height:1.8;color:var(--muted)}#premiumOffer{max-width:265px}#activeRooms{display:grid;gap:8px;margin-top:12px}#inviteLink{width:100%;margin:8px 0}#roomConnection{font-size:13px;line-height:1.8}#originalUploadLabel{display:block}#photoConsentLabel{display:flex;gap:8px;align-items:flex-start;margin:12px 0;font-size:12px}
@media(max-width:700px){.preparation-guide{padding:16px}.preparation-guide h2{font-size:23px}.session-status{padding:8px 14px;display:block}.session-status strong{display:block;margin-bottom:2px}.session-status span{font-size:10px}.header-actions{gap:4px}#copyRoomInvite{font-size:10px;max-width:65px}#premiumOffer{max-width:205px;font-size:11px}.reservation-line>strong{font-size:12px}}

.photo-empty{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;background:var(--beige);padding:24px}.photo-empty strong{font-size:17px}.photo-empty p{font-size:12px;line-height:1.8;color:var(--muted)}.operator-lobby #preparationGuide,.operator-lobby #naverPrepareLink,.operator-lobby .lobby-links a[href*="role=operator"]{display:none}.operator-lobby #activeRooms{display:grid;gap:10px;margin-top:18px}.operator-lobby #activeRooms button{text-align:left}.operator-lobby .lobby-photo{display:none}.operator-lobby .lobby-grid{grid-template-columns:1fr;max-width:650px;margin:auto}

.result-downloads{display:grid;gap:14px;margin:24px 0}.download-card{border:1px solid var(--line);border-radius:16px;padding:20px;background:var(--paper)}.download-card h2{font-size:20px;font-family:RoomText;font-weight:700;margin-bottom:9px}.download-card p{font-size:12px;line-height:1.8;color:var(--muted)}.download-card select{width:100%;font-size:13px}.file-download{text-decoration:none;border-radius:12px;text-align:center}.file-download[aria-disabled=true]{opacity:.5;cursor:wait}.file-options{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;margin-top:8px}.file-options a{padding:10px 0}.download-help{font-size:12px;line-height:1.9;color:var(--muted)}.export-notice{background:#f9ecdc;padding:12px;border-radius:10px;margin-top:10px}.download-card details{margin:16px 0;border-top:1px solid var(--line);padding-top:12px}.download-card summary{font-size:13px;cursor:pointer}.download-card details p{margin:10px 0}#exportPreview{display:block;width:min(100%,210px);height:auto;margin:14px auto;touch-action:none;border:1px solid var(--line);cursor:grab}.export-zoom{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:10px 0}.export-zoom .secondary{min-width:44px;font-size:20px;padding:4px}.export-zoom span{font-size:12px}#applyExportCrop{width:100%;font-size:12px}.download-card .primary{margin-top:14px;gap:8px}

.test-request,.my-test-rooms{margin:18px 0;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.test-request h2,.my-test-rooms h2{font:27px/1.4 RoomHeading;margin:12px 0}.test-request p,.my-test-rooms p,.my-test-rooms small{font-size:12px;line-height:1.8;color:var(--muted)}.test-request label[for=testDisplayName]{display:grid;gap:8px;font-size:12px;margin:16px 0}.test-request input[type=text],#testDisplayName{width:100%;font-size:16px}.my-test-rooms small{display:block;margin-top:12px}#myTestRoomList{display:grid;gap:10px;margin-top:12px}#myTestRoomList a{text-decoration:none;font-size:12px}#operatorReady{width:100%;font-size:12px;margin-bottom:10px}#operatorReadyNote{margin-bottom:14px}#activeRooms .secondary{text-align:left;line-height:1.7}#testRequestStatus{margin-top:10px}

.customer-name-tag{display:inline-flex;align-items:center;padding:5px 10px;border-radius:8px;background:var(--beige);font-weight:700;font-size:13px;color:var(--brown);max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-topline{flex-wrap:wrap;gap:8px}.request-list-heading{font:27px/1.4 RoomHeading;margin:18px 0 8px}#activeRooms .request-room-button{display:flex;flex-direction:column;gap:6px;width:100%;padding:16px 18px}#activeRooms .request-room-button strong{font-size:16px;color:var(--brown)}#activeRooms .request-room-button span{font-size:12px;color:var(--muted)}.other-room-list{margin-top:12px;border-top:1px solid var(--line);padding-top:14px}.other-room-list summary{font-size:12px;color:var(--muted);cursor:pointer;margin-bottom:12px}.other-room-list .request-room-button{margin-bottom:8px}#operatorRoomListLink{text-decoration:none}#legacyRoomNotice a{font-weight:700}

.customer-start-panel{flex:none;padding:12px 24px;border-bottom:1px solid var(--line);background:#f9ecdc;display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:center}.customer-start-panel strong{font-size:13px}.customer-start-panel p{font-size:11px;line-height:1.7;color:var(--muted);margin-top:4px}.customer-start-panel label{display:flex;gap:7px;align-items:flex-start;font-size:11px;line-height:1.7;grid-row:2}.customer-start-panel input{accent-color:var(--orange);margin-top:3px}.customer-start-panel .primary{grid-column:2;grid-row:1/3;font-size:12px;min-height:44px;padding:10px 14px}@media(max-width:700px){.customer-start-panel{padding:10px 14px;gap:6px 10px}.customer-start-panel p{font-size:10px}.customer-start-panel label{font-size:10px}.customer-start-panel .primary{padding:10px;font-size:11px;max-width:100px}}

.operator-macros{flex:none;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--paper)}.macro-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px}.macro-heading .text-button{font-size:11px;min-height:30px;padding:4px 8px}.macro-buttons{display:flex;gap:6px;margin:6px 0}.macro-buttons .secondary{flex:1;padding:8px 5px;font-size:11px;min-height:36px}.operator-macros small{font-size:10px;color:var(--muted)}.macro-fields{max-height:55dvh;overflow:auto}.macro-fields label{display:grid;gap:8px;margin:14px 0;font-size:12px}.macro-fields textarea{font-size:13px;width:100%}#macroDialog .dialog-actions{gap:6px}#macroDialog .dialog-actions button{padding:8px;font-size:12px}

/* Keep controls outside the image and give the photograph its own height on phones. */
.photo-badges{position:static;inset:auto;flex:none;min-height:32px;align-items:center;padding:0 0 6px;gap:8px}.version-badge,.working-badge{white-space:nowrap}.photo-controls{flex:none;display:flex;align-items:center;justify-content:center;gap:24px;padding:8px 0;font-size:11px;color:var(--muted)}.photo-controls .zoom-tools{position:static;transform:none;box-shadow:none;margin:0}.compare-handle{top:auto;bottom:12px;transform:translateX(-50%);width:36px;height:36px;font-size:17px}.customer-start-panel{display:block;margin:0;padding:8px 12px;border:1px solid var(--line);border-radius:10px}.customer-start-panel strong{font-size:11px}.customer-start-panel p{font-size:10px;line-height:1.6}.confirm-hint{display:block;text-align:center;font-size:10px;line-height:1.6;color:var(--muted);padding-top:5px}.confirm-hint:empty{display:none}.preparation-check input[type=checkbox],#photoConsent{width:20px;height:20px;padding:0;flex:none}
@media(max-width:700px){
 [data-role=customer] .room{height:auto;min-height:100svh}
 [data-role=customer] .room-layout{display:block;flex:none}
 [data-role=customer] .photo-column{display:flex;min-height:0;padding:0 14px}
 [data-role=customer] .photo-space{height:clamp(360px,62svh,620px);min-height:360px;flex:none}
 [data-role=customer] .room-header{height:58px;padding:8px 14px}
 [data-role=customer] .session-status{padding:6px 14px}
 [data-role=customer] .session-status strong{display:inline;font-size:11px;margin-right:8px}
 [data-role=customer] .session-status span{font-size:10px}
 [data-role=customer] .photo-topline{padding:8px 0;font-size:10px}
 [data-role=customer] .session-note{display:none}
 [data-role=customer] .customer-footer{position:sticky;bottom:0;z-index:9;padding:0 0 max(10px,env(safe-area-inset-bottom));box-shadow:0 -6px 16px #493b3008}
 [data-role=customer] .chat-panel{bottom:calc(115px + env(safe-area-inset-bottom));height:min(48svh,440px)}
 [data-role=customer] .photo-hint{font-size:9px;padding:8px 0}
}
[data-role=customer]{overflow-anchor:none}
@media(max-width:700px){[data-role=customer] .room-header{position:sticky;top:0;z-index:11;background:var(--ivory)}}
@media(max-width:700px){
 [data-role=customer] .room{padding-bottom:calc(115px + env(safe-area-inset-bottom))}
 [data-role=customer] .customer-footer{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(560px,100%);padding:0 14px max(10px,env(safe-area-inset-bottom));border-top:1px solid var(--line)}
}

/* Place the before/after handle at the center of the photograph. */
.compare-handle{top:50%;bottom:auto;transform:translate(-50%,-50%);width:42px;height:42px}

/* Upright image geometry is shared by before/after/pins, independent of flex sizing. */
.photo-viewport{flex:0 0 auto;min-width:0;min-height:0;max-width:none;max-height:none}
.world img{object-fit:contain;image-orientation:from-image}

.original-upload-panel{margin:20px 0;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.original-upload-panel h2{font:27px/1.4 RoomHeading;margin-bottom:10px}.original-upload-panel p{font-size:12px;line-height:1.8;color:var(--muted)}#originalUploadLabel{margin-top:16px;font-size:13px;font-weight:700}#originalUpload{display:block;width:100%;margin-top:10px;font-size:16px}#originalPreview{display:block;width:auto;max-width:100%;max-height:240px;object-fit:contain;margin:16px auto;border-radius:10px}#originalUploadStatus{overflow-wrap:anywhere}#originalUploadStatus[data-error=true]{color:#a63822;font-weight:700}
