/* Preevu visualiser and private result pages. Core request behaviour is unchanged. */
.pv-app{background:var(--surface)}.app-intro{padding:48px 0 30px}.app-intro h1{font-size:clamp(32px,3.2vw,46px);max-width:820px}.app-intro p:not(.eyebrow){font-size:15px;max-width:760px;margin:16px 0 0}.app-intro .text-link{font-size:12px;margin-top:12px}.app-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:30px;align-items:start;padding-bottom:55px}.app-panel{background:#fff;border:1px solid var(--line);padding:28px;border-radius:16px;min-width:0}.step-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:22px}.step-head>span{width:35px;height:35px;border-radius:9px;background:var(--tint);color:var(--accent);display:grid;place-items:center;font-size:12px;font-weight:600;flex-shrink:0}.step-head h2{font-size:21px;line-height:1.35;letter-spacing:-.025em;margin:0 0 4px}.step-head p{margin:0;font-size:12px;color:var(--subtle)}.dropzone{height:340px;border:2px dashed #c8c1de;border-radius:12px;display:grid;place-items:center;position:relative;overflow:hidden;background:#fbfaff;cursor:pointer;transition:border-color .2s,background .2s}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:var(--tint)}.drop-prompt{text-align:center;display:flex;flex-direction:column;gap:5px;align-items:center;padding:20px}.drop-prompt strong{font-size:16px;line-height:1.5;font-weight:600}.drop-prompt span{font-size:12px;color:var(--subtle)}.upload-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:13px;background:#ebe5ff;color:var(--accent);margin-bottom:9px}.upload-icon .icon{width:25px;height:25px}.dropzone.has-image{background:#182133;border-style:solid}.dropzone img{width:100%;height:100%;object-fit:contain;background:#182133}.photo-change{position:absolute;right:14px;bottom:14px;border:1px solid #d7d9df;background:#fff;border-radius:8px;padding:9px 12px;font-size:12px;font-weight:600;color:var(--ink);z-index:1}.photo-help{margin:19px 0 0;padding:0;list-style:none}.photo-help li{display:flex;align-items:start;gap:9px;margin:9px 0;font-size:12px;line-height:1.7;color:var(--muted)}.photo-help .icon{width:15px;height:15px;color:var(--accent);margin-top:3px}.photo-privacy{font-size:11px;line-height:1.8;margin:18px 0 0;padding-top:15px;border-top:1px solid var(--line)}.photo-privacy a{color:var(--accent-dark);text-decoration:underline;text-underline-offset:3px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:block;min-width:0}.field>span,.field-label{display:block;margin-bottom:7px;font-size:12px;font-weight:600;color:var(--ink)}.field select,.field textarea{width:100%;padding:12px 13px;border:1px solid #cfd2dc;border-radius:9px;background:#fff;color:var(--ink);font-size:13px;line-height:1.6}.field select:focus,.field textarea:focus{border-color:var(--accent);outline:2px solid #e3dafc;outline-offset:1px}.field select:disabled{background:#f2f3f5;color:#7f8490}.finish-section{margin-top:23px}.field-label span,.notes-field em{font-weight:400;font-style:normal;color:var(--subtle);margin-left:5px}.finish-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.finish-card{appearance:none;display:block;width:100%;position:relative;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px;text-align:left;min-width:0;color:var(--ink);font:inherit;transition:border-color .15s,box-shadow .15s}.finish-card:hover{border-color:#b2a2e7}.finish-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.finish-card img,.finish-swatch{width:100%;height:68px;border-radius:5px;object-fit:cover;background:#eae7f0;margin-bottom:8px}.finish-swatch{display:grid;place-items:center}.finish-swatch span{display:none}.finish-swatch svg{width:27px;height:27px;color:#9d91bf}.finish-card strong{display:block;font-size:11px;line-height:1.5;font-weight:600}.finish-card small{display:block;font-size:10px;line-height:1.5;color:var(--subtle);margin-top:3px}.finish-card>i{position:absolute;right:7px;top:7px;width:22px;height:22px;border-radius:50%;display:none;place-items:center;background:var(--accent);color:#fff;font-style:normal;font-size:11px}.finish-card.selected>i{display:grid}.notes-field{margin-top:24px;position:relative}.notes-field textarea{resize:vertical;min-height:110px;padding-bottom:28px}.notes-field small{position:absolute;right:12px;bottom:12px;font-size:10px;color:var(--subtle)}.generate-btn{border:1px solid var(--accent);border-radius:10px;background:var(--accent);color:#fff;padding:14px 18px;display:flex;align-items:center;justify-content:center;gap:14px;min-height:50px;width:100%;margin:22px 0 0;font:600 14px/1.5 var(--font);box-shadow:0 4px 0 var(--accent-dark);transition:background .2s,transform .2s}.generate-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.generate-btn:disabled{opacity:.6;transform:none;box-shadow:none}.generate-btn b{font-size:20px;line-height:1}.disclaimer{font-size:10px;line-height:1.8;text-align:center;margin:18px 0 0;color:var(--subtle)}.alert{padding:14px 16px;border-radius:8px;margin-top:18px;font-size:13px;line-height:1.7}.alert.error{background:#fff3f4;border:1px solid #f1c9ce;color:#9a2638}.alert.notice{background:var(--tint);border:1px solid #ddd2fa;color:#4e3684;margin:0 0 18px}.empty-catalog{padding:23px;background:var(--tint);border:1px solid #dcd3f2;border-radius:10px}.empty-catalog h2{font-size:22px}.empty-catalog p{font-size:13px}.loading{position:fixed;inset:0;z-index:100;background:#141320bd;backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px}.loading-card{width:min(470px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:33px;text-align:center;box-shadow:0 24px 70px #1821331f}.loading-card h2{font-size:23px;margin:18px 0 9px;line-height:1.3}.loading-card p{font-size:13px;line-height:1.7;margin-bottom:0}.spinner{width:42px;height:42px;border:3px solid #e4ddf9;border-top-color:var(--accent);border-radius:50%;margin:auto;animation:app-spin 1s linear infinite}.loading-bar{height:4px;background:#ece8f8;overflow:hidden;margin-top:24px;border-radius:5px}.loading-bar i{display:block;height:100%;width:34%;background:var(--accent);animation:app-load 1.5s ease-in-out infinite}@keyframes app-spin{to{transform:rotate(360deg)}}@keyframes app-load{from{transform:translateX(-110%)}to{transform:translateX(330%)}}.app-footnote{font-size:11px;color:var(--subtle);padding:0 0 30px;text-align:center;margin:0 auto}.app-footnote a{color:var(--accent-dark);text-decoration:underline}.result-main{padding:45px 0 65px}.result-title{text-align:center;margin-bottom:28px}.result-title h1{font-size:clamp(28px,3.5vw,44px);margin:8px 0 10px}.result-title p{margin:0;font-size:14px}.result-main .loading-card{margin:30px auto}.compare{width:min(100%,1050px);margin:auto;position:relative;overflow:hidden;border-radius:16px;background:#10151d;box-shadow:0 20px 60px #18213314;aspect-ratio:var(--result-ratio,4/3)}.compare img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#10151d;user-select:none;pointer-events:none}.compare-before-wrap{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--result-split,50%)) 0 0);overflow:hidden}.compare-before{max-width:none!important}.compare-line{position:absolute;z-index:4;top:0;bottom:0;left:var(--result-split,50%);width:2px;background:#fff;transform:translateX(-1px);pointer-events:none}.compare-line span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--accent);font-weight:600;box-shadow:0 4px 16px #0003}.compare-range{position:absolute;z-index:5;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0;touch-action:pan-y}.compare:focus-within{outline:3px solid var(--accent);outline-offset:4px}.compare-tag{position:absolute;z-index:3;top:14px;background:#182133e6;color:#fff;border-radius:4px;padding:6px 9px;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.compare-tag.left{left:14px}.compare-tag.right{right:14px}.result-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px;margin-top:25px}.generate-btn.compact{margin:0;display:inline-flex;width:auto;min-height:49px;padding:12px 19px}.secondary-btn,.text-btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:13px 18px;text-decoration:none;font-weight:500;font-size:13px;display:inline-flex;align-items:center;justify-content:center;min-height:49px}.text-btn{border:0;background:transparent;color:var(--accent-dark)}.result-note{margin:24px auto 0;text-align:center;font-size:11px;line-height:1.8;color:var(--subtle);max-width:820px}
@media(max-width:980px){.app-layout{grid-template-columns:1fr;max-width:740px;gap:22px}.app-intro{max-width:740px}.dropzone{height:330px}.field-grid{grid-template-columns:1fr 1fr}.finish-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.app-intro{padding:36px 0 24px}.app-intro h1{font-size:32px}.app-intro p:not(.eyebrow){font-size:13px}.app-panel{padding:20px;border-radius:12px}.app-layout{gap:18px;padding-bottom:35px}.step-head{gap:12px;margin-bottom:18px}.step-head h2{font-size:19px}.step-head p{font-size:11px}.dropzone{height:260px}.drop-prompt strong{font-size:14px}.field-grid{grid-template-columns:1fr}.field select,.field textarea{font-size:16px}.finish-grid{grid-template-columns:1fr 1fr}.finish-card small{font-size:10px}.generate-btn{font-size:13px}.loading-card{padding:28px 22px}.loading-card h2{font-size:21px}.result-main{padding:32px 0 45px}.result-title h1{font-size:30px}.result-title p{font-size:12px}.result-actions{flex-direction:column;gap:12px}.result-actions>*{width:100%;text-align:center}.generate-btn.compact{width:100%}.compare{border-radius:11px}.compare-tag{font-size:8px;padding:5px 7px}.compare-tag.left{left:9px}.compare-tag.right{right:9px}.result-note{font-size:10px}.app-footnote{font-size:10px}}
@media(prefers-reduced-motion:reduce){.spinner,.loading-bar i{animation:none}.loading-bar i{width:100%}}
