/* V02: one message, one decision. */
.chat-page{max-width:660px;margin:26px auto 45px;padding:0 20px}
.chat-shell{padding:30px 34px 26px;border:1px solid #bb80ac30;border-radius:18px;background:linear-gradient(145deg,#21152855,#12121f 45%);box-shadow:0 24px 90px #0002}
.chat-progress{display:flex;justify-content:space-between;align-items:center;color:#bfa5c1;font-size:12px;letter-spacing:1px}.chat-progress>span:last-child{font-size:17px;color:#f1c4df;font-family:Georgia,serif}.chat-progress b{color:#86718f;font-size:12px;font-weight:400}
.chat-track{height:2px;background:#e6a5d019;margin:13px 0 28px}.chat-track i{display:block;height:100%;background:linear-gradient(90deg,#9a6aa0,#ff8ec2);transition:width .25s}
.chat-context{font-size:14px;line-height:1.9;color:#c3b2cf;margin-bottom:16px}
.incoming-message{background:#30213c;border:1px solid #9f70bc3b;border-radius:3px 17px 17px 17px;padding:20px 23px;margin-bottom:29px}.incoming-message.from-you{background:#392133;border-color:#bb719c3b;border-radius:17px 3px 17px 17px}
.sender-label{display:block;font-size:12px;color:#c5a1d6;margin-bottom:8px;letter-spacing:1px}.from-you .sender-label{color:#e5a2c3}.incoming-message p{font-size:21px;line-height:1.8;color:#f7e8f6;font-weight:500}
.reply-prompt{font-size:19px;line-height:1.6;font-weight:600;margin:0 0 14px}.reply-options{display:grid;gap:12px}.reply-option{background:#1b1728;border:1px solid #9c7aa73b;border-radius:10px;display:flex;gap:14px;align-items:center;text-align:left;padding:17px 18px;min-height:66px;width:100%;font-size:15px;line-height:1.8;transition:background .15s,border-color .15s}.reply-mark{width:19px;height:19px;border-radius:50%;border:1px solid #9d7baf6b;display:grid;place-content:center;flex:0 0 19px;font-size:12px;color:#1c1524}.reply-option:hover{background:#302035;border-color:#dc86be80}.reply-option.selected{background:#3d2239;border-color:#ff8abd}.reply-option.selected .reply-mark{background:#ff8abd;border-color:#ff8abd}.receive-options .reply-option.selected{border-color:#96d9df;background:#22323d}.receive-options .reply-option.selected .reply-mark{background:#96d9df;border-color:#96d9df}.chat-actions{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:28px}.chat-actions .primary{min-height:48px;min-width:158px;padding:10px 19px;font-size:13px;letter-spacing:0}.chat-actions .primary:disabled{color:#8c708c;background:#342638;box-shadow:none;transform:none}.chat-actions .text-button{font-size:12px;padding:10px 0}
.revised-report{max-width:920px}.revised-report .section-top{align-items:center;margin:36px 0 18px}.revised-report .section-top h2{font-size:23px;line-height:1.5}.portrait-panel{margin:0;background:radial-gradient(ellipse at center,#39213988,#15121f 75%);border:1px solid #ad75a33b;border-radius:12px;padding:22px 16px 20px}.relationship-map{display:block;width:100%;max-width:490px;height:auto;margin:0 auto;overflow:visible}.portrait-panel figcaption{font-size:12px;color:#b79dbf;text-align:center;letter-spacing:1px;margin:8px 0 0}.revised-report .insight{padding:28px 30px}.revised-report .insight h3{font-size:24px}.revised-report .insight-body,.revised-report .needs-panel>p,.revised-report .friction p{font-size:15px;line-height:2}.revised-report .needs-panel h3{font-size:24px}.revised-report .ending-links{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.revised-report .ending-links .text-button{padding:10px 8px}.revised-report .report-bottom-save{margin-top:36px}
@media(max-width:620px){.chat-page{margin:8px auto 24px;padding:0 15px}.chat-shell{padding:20px 20px 20px;border-radius:13px}.chat-progress{font-size:10px}.chat-progress>span:last-child{font-size:15px}.chat-track{margin:10px 0 21px}.chat-context{font-size:13px;margin-bottom:14px}.incoming-message{padding:16px 17px;margin-bottom:24px;border-radius:3px 13px 13px 13px}.incoming-message p{font-size:18px;line-height:1.8}.sender-label{font-size:11px;margin-bottom:5px}.reply-prompt{font-size:18px;margin-bottom:12px}.reply-options{gap:10px}.reply-option{padding:14px 13px;gap:11px;min-height:64px;font-size:14px;border-radius:8px}.reply-mark{width:17px;height:17px;flex-basis:17px;font-size:11px}.chat-actions{margin-top:23px}.chat-actions .primary{min-height:45px;min-width:137px;font-size:12px;padding:10px 15px}.chat-actions .text-button{font-size:11px}.revised-report .section-top{gap:10px;margin:29px 0 15px}.revised-report .section-top h2{font-size:20px}.portrait-panel{padding:13px 0 19px;border-radius:9px}.portrait-panel figcaption{font-size:11px;margin:6px 0 0;letter-spacing:0}.revised-report .insight{padding:22px}.revised-report .insight h3,.revised-report .needs-panel h3{font-size:20px}.revised-report .insight-body,.revised-report .needs-panel>p,.revised-report .friction p{font-size:14px}.revised-report .friction h3{font-size:19px}}
@media(max-width:350px){.chat-page{padding:0 11px}.chat-shell{padding:18px 16px}.chat-context{font-size:12px}.incoming-message{padding:14px}.incoming-message p{font-size:17px}.reply-option{font-size:13px;padding:13px 11px;gap:9px;min-height:62px}.reply-prompt{font-size:17px}.chat-actions{margin-top:20px}.revised-report .section-top h2{font-size:18px}}

.review-return{font-size:11px;color:#c3a5c6;background:none;padding:0;line-height:1.75}.review-return:hover{color:#f7daee}
.incoming-message p,.revised-report .insight h3,.revised-report .friction h3{text-wrap:balance}
.revised-report .ending .fineprint{font-size:11px;line-height:1.8;letter-spacing:0;font-weight:400;color:#9689a6}


/* v04: each result has its own illustration and coordinated palette. */
.revised-report{--pink:var(--accent);--cyan:var(--secondary)}
.revised-report .persona-card{background:var(--persona-bg);border-color:color-mix(in srgb,var(--accent) 28%,transparent)}
.revised-report .persona-art{top:0;height:100%;object-position:center 25%}
.revised-report .persona-card::before{background:linear-gradient(90deg,var(--persona-bg) 2%,var(--shade-strong) 27%,var(--shade-soft) 51%,transparent 88%),linear-gradient(0deg,var(--persona-bg) 0%,transparent 65%)}
.revised-report .persona-num{color:var(--secondary)}
.persona-scene{position:absolute;right:27px;top:27px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:30px;background:#09091670;color:#fff1f7;font-size:11px;letter-spacing:1px;backdrop-filter:blur(8px)}
.revised-report .persona-line{color:var(--secondary)}
.revised-report .pill{border-color:color-mix(in srgb,var(--accent) 30%,transparent);color:#f1e5f0;background:color-mix(in srgb,var(--accent) 8%,transparent)}
.revised-report .portrait-panel{background:radial-gradient(ellipse at center,color-mix(in srgb,var(--accent) 14%,var(--persona-bg)),var(--persona-bg) 78%);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}
.revised-report .section-num{color:color-mix(in srgb,var(--accent) 65%,#74627f)}
.revised-report .insight{border-color:color-mix(in srgb,var(--accent) 28%,transparent);background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 10%,var(--persona-bg)),var(--persona-bg))}
.revised-report .insight h3{color:#f4e8f5}
.revised-report .needs-panel{border-color:color-mix(in srgb,var(--secondary) 25%,transparent);background:linear-gradient(120deg,color-mix(in srgb,var(--secondary) 9%,var(--persona-bg)),var(--persona-bg))}
.revised-report .needs-panel h3{color:var(--secondary)}
.revised-report .friction{border-color:var(--accent)}
.revised-report .try-sentence{background:color-mix(in srgb,var(--accent) 12%,var(--persona-bg));color:#f6e3ee}
@media(max-width:620px){
 .revised-report .persona-art{width:100%;height:650px;object-position:center top}
 .revised-report .persona-card::before{background:linear-gradient(0deg,var(--persona-bg) 0%,var(--shade-strong) 25%,var(--shade-soft) 43%,transparent 70%)}
 .persona-scene{top:17px;right:16px;font-size:10px;padding:5px 9px;letter-spacing:0}
}
@media(max-width:350px){.revised-report .persona-art{height:590px}.persona-scene{font-size:9px;right:12px}}

.image-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.image-actions a{flex:1;min-width:130px;text-align:center;text-decoration:none}.image-actions [hidden]{display:none}.dialog-help{white-space:pre-line}

/* Mobile landing: put the message below the faces, in normal flow before the headline. */
@media(max-width:620px){
 .home{display:flex;flex-direction:column;align-items:stretch;padding-top:clamp(330px,calc(32vw + 192px),390px)}
 .home .floating-message{position:relative;top:auto;right:auto;bottom:auto;align-self:flex-end;max-width:100%;margin:0 0 24px;transform:rotate(-3deg)}
}
@media(max-width:350px){.home{padding-top:290px}}

/* v04.3: complete-image overview, optional detail zoom, no image-page navigation. */
#image-dialog[open]{display:flex;flex-direction:column;height:min(920px,92dvh);overflow:hidden;gap:0}
#image-dialog .dialog-head{flex-shrink:0}
#image-dialog .dialog-help{flex-shrink:0;line-height:1.65;font-size:12px;margin:12px 0;color:#d0bddb}
#image-dialog .image-scroll{flex:1;min-height:0;max-height:none;overflow:auto;border:1px solid #ffffff16;border-radius:6px}
#image-dialog .image-scroll img{width:100%;height:100%;max-width:100%;object-fit:contain;-webkit-touch-callout:default;user-select:auto}
#image-dialog .image-scroll.zoomed img{width:max(100%,540px);max-width:none;height:auto;object-fit:initial}
#image-dialog .image-actions{flex-shrink:0;flex-wrap:nowrap;margin-top:12px}
#image-dialog .image-actions>*{flex:1;min-width:0;font-size:12px;min-height:44px;padding:10px 12px;margin:0}
#image-dialog .image-actions [hidden]{display:none}
.revised-report [data-export]:disabled{opacity:.72}
