/* In-house treatment quiz (namespaced qz-) */
.qz-lock{position:fixed;left:0;right:0;width:100%;overflow:hidden}

.qz-dialog{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:var(--cream);color:var(--ink);display:none;flex-direction:column;font:400 17px/1.6 var(--sans)}
.qz-dialog[open]{display:flex;animation:qz-dialog-in .32s var(--ease) both}
.qz-dialog[open]::backdrop{animation:qz-backdrop-in .32s cubic-bezier(.2,.7,.2,1) both}
.qz-dialog.qz-closing{animation:qz-dialog-out .22s var(--ease) both;pointer-events:none}
.qz-dialog.qz-closing::backdrop{animation:qz-backdrop-out .22s cubic-bezier(.2,.7,.2,1) both}
@keyframes qz-dialog-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes qz-dialog-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(10px)}}
@keyframes qz-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes qz-backdrop-out{from{opacity:1}to{opacity:0}}
.qz-dialog::backdrop{background:rgba(63,31,55,.45)}
.qz-head{flex:none;display:flex;align-items:center;gap:16px;padding:12px 20px;background:var(--cream);border-bottom:1px solid var(--line)}
.qz-head-text{flex:1;min-width:0}
.qz-title{font-family:var(--display);font-weight:700;font-size:1.05rem;line-height:1.3;margin:0;overflow-wrap:anywhere}
.qz-progress{font-size:.85rem;color:var(--muted);margin:2px 0 0}
.qz-close{flex:none;width:44px;height:44px;border:1px solid var(--line);background:var(--white);border-radius:var(--radius);color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer;transition:border-color .2s var(--ease)}
.qz-close:hover{border-color:var(--plum);color:var(--plum)}
.qz-bar{flex:none;height:3px;background:var(--pink-soft)}
.qz-bar-fill{height:100%;width:0;background:var(--plum);transition:width .3s var(--ease)}
.qz-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:32px 20px calc(32px + env(safe-area-inset-bottom))}
.qz-modal-inner{max-width:720px;margin:0 auto}
.qz-dialog .qz-content.qz-step-fwd{animation:qz-step-fwd .28s var(--ease) both}
.qz-dialog .qz-content.qz-step-back{animation:qz-step-back .28s var(--ease) both}
@keyframes qz-step-fwd{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
@keyframes qz-step-back{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:none}}

.qz-kicker{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--plum);margin-bottom:8px}
.qz-fs{border:0;padding:0;margin:0;min-width:0}
.qz-fs legend{padding:0;margin:0 0 16px;max-width:100%}
.qz-q{font-family:var(--display);font-weight:700;font-size:1.25rem;line-height:1.3;letter-spacing:-.01em;margin:0}
.qz-q:focus{outline:none}
.qz-dialog .qz-q{font-size:clamp(1.45rem,2.6vw,1.9rem)}
.qz-dialog .qz-fs legend{margin-bottom:24px}

.qz-input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.qz-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qz-dialog .qz-tiles{gap:16px}
.qz-tile,.qz-opt{position:relative;display:block;cursor:pointer;margin:0}
.qz-tile-inner{display:flex;flex-direction:column;height:100%;background:var(--white);border:2px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:border-color .2s var(--ease)}
.qz-tile-inner img{width:100%;aspect-ratio:3/2;object-fit:cover}
.qz-tile-blank{display:flex;align-items:center;justify-content:center;aspect-ratio:3/2;background:var(--pink-soft);font-family:var(--display);font-weight:700;font-size:1.5rem;color:var(--plum)}
.qz-tile-text{padding:10px 12px;font-weight:600;font-size:.95rem;line-height:1.35}
.qz-dialog .qz-tile-text{padding:12px 14px;font-size:1rem}
.qz-tile:hover .qz-tile-inner,.qz-opt:hover .qz-opt-inner{border-color:var(--pink)}
.qz-input:checked+.qz-tile-inner,.qz-input:checked+.qz-opt-inner{border-color:var(--plum)}
.qz-input:focus-visible+.qz-tile-inner,.qz-input:focus-visible+.qz-opt-inner{outline:2px solid var(--plum);outline-offset:3px}

.qz-opts{display:grid;gap:10px}
.qz-opt-inner{display:flex;align-items:center;gap:12px;min-height:52px;padding:13px 16px;background:var(--white);border:2px solid var(--line);border-radius:var(--radius);font-weight:600;transition:border-color .2s var(--ease)}
.qz-dot{position:relative;flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--pink);transition:border-color .2s var(--ease)}
.qz-input:checked+.qz-opt-inner .qz-dot{border-color:var(--plum)}
.qz-input:checked+.qz-opt-inner .qz-dot::after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--plum)}

.qz-error{margin:12px 0 0;font-size:.92rem;font-weight:500;color:#8a2c3a}
.qz-error:empty{display:none}
.qz-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.qz-dialog .qz-actions{margin-top:32px}
.qz-dialog .qz-actions .btn-primary{margin-left:auto}

.qz-note{color:var(--muted);margin-top:14px;max-width:56ch}
.qz-summary{margin:20px 0 0;display:grid;gap:14px;border-top:1px solid var(--line);padding-top:18px}
.qz-summary dt{font-size:.85rem;font-weight:500;color:var(--plum);letter-spacing:.02em}
.qz-summary dd{margin:2px 0 0;font-family:var(--display);font-weight:600;font-size:1.05rem;color:var(--ink)}
.qz-demo{margin-top:16px;font-size:.88rem;color:var(--muted);background:var(--pink-soft);border-radius:var(--radius);padding:10px 12px}

.qz-head{padding-top:max(12px,env(safe-area-inset-top));padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
@media (max-width:480px){
  .qz-head{padding:max(10px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 10px max(14px,env(safe-area-inset-left));gap:10px}
  .qz-scroll{padding:22px 14px calc(28px + env(safe-area-inset-bottom))}
  .qz-dialog .qz-tiles{gap:10px}
  .qz-dialog .qz-actions .btn{flex:1 1 100%;margin-left:0}
}
@media (max-height:520px){
  .qz-scroll{padding-top:18px}
  .qz-dialog .qz-fs legend{margin-bottom:14px}
  .qz-dialog .qz-q{font-size:1.3rem}
}
@media (prefers-reduced-motion:reduce){
  .qz-dialog,.qz-dialog::backdrop,.qz-content{animation:none!important}
}

.qz-clinic{font-size:1rem;font-weight:700;line-height:1.3;margin:0;overflow-wrap:anywhere}
.qz-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin-top:3px}
.qz-meta .qz-title,.qz-meta .qz-progress{font-size:.8rem;font-weight:400;line-height:1.4;color:var(--muted);margin:0;letter-spacing:0}
.qz-meta .qz-progress{font-variant-numeric:tabular-nums}
@media(max-width:480px){.qz-clinic{font-size:.92rem}.qz-head .brand-mark{width:34px;height:34px;font-size:12px}.qz-meta{gap:2px 8px}}
