/* Patient forms — built on the site tokens in proc.css. */
.pf-top h1{max-width:18ch}
.pf-facts{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(13.5rem,1fr));gap:1px;margin-top:2.6rem;
  background:rgba(243,237,228,.14);border:1px solid rgba(243,237,228,.14)}
.pf-facts li{display:flex;gap:.9rem;align-items:center;padding:1rem 1.1rem;background:var(--deep)}
.pf-facts svg{width:26px;height:26px;flex:0 0 auto;fill:none;stroke:var(--accent-deep);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.pf-facts span{font-family:var(--sans);font-size:.86rem;color:var(--on-deep-dim);line-height:1.35}
.pf-facts b{display:block;font-family:var(--serif);font-weight:400;font-size:1.05rem;color:var(--on-deep);margin-bottom:.1rem}

.pf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:clamp(1.2rem,3vw,2rem);margin-top:2rem}
.pf-card{display:flex;flex-direction:column;background:var(--ivory);border:1px solid var(--line-2);min-width:0}
.pf-paper{display:block;position:relative;padding:clamp(1.4rem,4vw,2.2rem) clamp(1.6rem,5vw,2.8rem) 0;background:linear-gradient(180deg,var(--sand),var(--cream));overflow:hidden;aspect-ratio:4/3.4}
.pf-paper::before,.pf-paper img{box-shadow:0 1px 2px rgba(29,26,23,.08),0 14px 30px -18px rgba(29,26,23,.45)}
.pf-paper::before{content:"";position:absolute;left:calc(clamp(1.6rem,5vw,2.8rem) + 10px);right:calc(clamp(1.6rem,5vw,2.8rem) - 10px);top:calc(clamp(1.4rem,4vw,2.2rem) + 8px);bottom:-20px;background:#F3EEE6;transform:rotate(2.2deg);transform-origin:50% 100%}
.pf-paper img{position:relative;width:100%;height:auto;background:#fff;transition:transform .5s var(--e-out)}
.pf-card:hover .pf-paper img,.pf-paper:focus-visible img{transform:translateY(-6px)}
.pf-body{display:flex;flex-direction:column;gap:.55rem;padding:clamp(1.2rem,3vw,1.6rem);flex:1;border-top:1px solid var(--line-2)}
.pf-when{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink)}
.pf-body h3{font-family:var(--serif);font-weight:400;font-size:1.45rem;line-height:1.15;text-wrap:balance}
.pf-body h3 em{font-style:italic;color:var(--accent)}
.pf-body>p:not([class]){color:var(--muted);font-size:1rem;line-height:1.55}
.pf-meta{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.2rem}
.pf-meta span{font-family:var(--sans);font-size:.74rem;font-weight:500;letter-spacing:.08em;color:var(--muted-2);border:1px solid var(--line);padding:.2rem .6rem;border-radius:999px;background:var(--cream)}
.pf-acts{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:auto;padding-top:.8rem}
.pf-acts .btn{flex:1 1 auto;justify-content:center}
.btn.pf-ghost{background:transparent;color:var(--accent-ink);border-color:var(--line-2)}
.btn.pf-ghost:hover{background:var(--sand);border-color:var(--accent-2);color:var(--ink)}
.btn:focus-visible,.pf-x:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
button.btn{cursor:pointer}

.pf-how,.pf-faq{margin-top:clamp(3rem,7vw,4.5rem)}
.pf-steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1.2rem;margin-top:1.6rem}
.pf-steps li{counter-increment:s;border-top:1px solid var(--line-2);padding-top:1rem}
.pf-steps li::before{content:counter(s,decimal-leading-zero);display:block;font-family:var(--sans);font-size:.76rem;font-weight:600;letter-spacing:.2em;color:var(--accent-ink);margin-bottom:.5rem}
.pf-steps b{font-family:var(--serif);font-weight:400;font-size:1.25rem}
.pf-steps p{color:var(--muted);margin-top:.3rem}
.pf-faq details{margin-top:.2rem}
.pf-faq h2{margin-bottom:1rem}

/* ---------- signer dialog ---------- */
.pf-dlg{padding:0;border:0;background:transparent;max-width:none;max-height:none;width:100%;height:100%;color:var(--ink)}
.pf-dlg::backdrop{background:rgba(29,26,23,.62);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.pf-shell{display:flex;flex-direction:column;background:var(--cream);width:min(44rem,100%);height:100%;margin-left:auto;box-shadow:-30px 0 60px -30px rgba(0,0,0,.5)}
.pf-dlg[open] .pf-shell{animation:pfIn .45s var(--e-out) both}
@keyframes pfIn{from{transform:translateX(40px);opacity:0}}
@media(max-width:700px){.pf-shell{width:100%}.pf-dlg[open] .pf-shell{animation-name:pfUp}@keyframes pfUp{from{transform:translateY(30px);opacity:0}}}
.pf-dh{padding:max(1rem,env(safe-area-inset-top)) 1.25rem 0;background:var(--ivory);border-bottom:1px solid var(--line)}
.pf-dh-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.pf-dh-eb{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink)}
.pf-dh h2{font-size:1.4rem;margin-top:.15rem}
.pf-x{width:44px;height:44px;flex:0 0 auto;border:1px solid var(--line-2);background:transparent;font-size:1.5rem;line-height:1;color:var(--muted);cursor:pointer;border-radius:50%}
.pf-x:hover{background:var(--sand);color:var(--ink)}
.pf-prog{height:3px;background:var(--line);margin:1rem -1.25rem 0}
.pf-prog i{display:block;height:100%;width:0;background:var(--accent);transition:width .5s var(--e-out)}
.pf-view{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:1.5rem 1.25rem 2rem;display:flex;flex-direction:column;gap:1.25rem}
.pf-view>.pf-anim{display:flex;flex-direction:column;gap:1.25rem;animation:pfStep .4s var(--e-out) both}
@keyframes pfStep{from{opacity:0;transform:translateY(8px)}}
.pf-view h3{font-family:var(--serif);font-weight:400;font-size:1.6rem;line-height:1.15}
.pf-view .pf-note{font-family:var(--sans);font-size:.9rem;color:var(--muted-2);margin-top:-.6rem}
.pf-view .pf-para{color:var(--muted);line-height:1.6}
.pf-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem}
.pf-f{display:flex;flex-direction:column;gap:.4rem;grid-column:span 6;min-width:0}
@media(min-width:560px){.pf-f.w2{grid-column:span 2}.pf-f.w3{grid-column:span 3}.pf-f.w4{grid-column:span 4}}
.pf-f>label,.pf-f>.pf-l{font-family:var(--sans);font-size:.8rem;font-weight:500;letter-spacing:.06em;color:var(--muted)}
.pf-f .req{color:var(--accent-ink)}
.pf-f input[type=text],.pf-f input[type=tel],.pf-f input[type=email],.pf-f textarea{font:400 1rem/1.4 var(--sans);font-size:max(16px,1rem);color:var(--ink);background:#fff;border:1px solid var(--line-2);border-radius:0;padding:.8rem .9rem;min-height:48px;width:100%;transition:border-color .2s,box-shadow .2s}
.pf-f textarea{resize:vertical;min-height:6rem}
.pf-f input:focus,.pf-f textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(142,106,67,.18)}
.pf-f [aria-invalid=true]{border-color:#A6422F;box-shadow:0 0 0 3px rgba(166,66,47,.14)}
.pf-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.pf-chip{position:relative}
.pf-chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.pf-chip span{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.55rem 1rem;border:1px solid var(--line-2);background:#fff;font-family:var(--sans);font-size:.95rem;color:var(--ink);transition:background .2s,border-color .2s,color .2s}
.pf-chip span::before{content:"";width:14px;height:14px;border:1px solid var(--accent-2);background:#fff;flex:0 0 auto;transition:background .2s}
.pf-chip input[type=radio]+span::before{border-radius:50%}
.pf-chip input:checked+span{background:var(--deep);border-color:var(--deep);color:var(--on-deep)}
.pf-chip input:checked+span::before{background:var(--accent-deep);border-color:var(--accent-deep);box-shadow:inset 0 0 0 2px var(--deep)}
.pf-chip input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.pf-yn{display:grid;grid-template-columns:1fr auto;gap:.6rem 1rem;align-items:center;padding:.85rem 0;border-bottom:1px solid var(--line)}
.pf-yn:first-of-type{border-top:1px solid var(--line)}
.pf-yn>span{font-size:1rem;line-height:1.45}
.pf-yn .pf-chips{flex-wrap:nowrap}
.pf-yn .pf-chip span{min-width:4.2rem;justify-content:center}
.pf-yn .pf-d{grid-column:1/-1}
.pf-yn .pf-d[hidden]{display:none}
.pf-yn.bad>span{color:#A6422F}
.pf-sig{display:flex;flex-direction:column;gap:.5rem}
.pf-pad{position:relative;background:#fff;border:1px solid var(--line-2);height:190px;touch-action:none;cursor:crosshair}
.pf-pad canvas{position:absolute;inset:0;width:100%;height:100%}
.pf-pad::after{content:"";position:absolute;left:1.2rem;right:1.2rem;bottom:2.4rem;border-bottom:1px solid var(--line-2);pointer-events:none}
.pf-pad .ph{position:absolute;left:1.2rem;bottom:2.8rem;font-family:var(--serif);font-style:italic;color:#B7AB9B;pointer-events:none;transition:opacity .2s}
.pf-pad.inked .ph{opacity:0}
.pf-pad.bad{border-color:#A6422F}
.pf-sigbar{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.pf-sigbar button{font-family:var(--sans);font-size:.85rem;background:none;border:0;color:var(--accent-ink);text-decoration:underline;cursor:pointer;min-height:44px;padding:0 .2rem}
.pf-toggle{font-family:var(--sans);font-size:.95rem;display:flex;gap:.6rem;align-items:center;min-height:44px}
.pf-toggle input{width:20px;height:20px;accent-color:var(--accent)}
.pf-office{font-family:var(--sans);font-size:.88rem;color:var(--muted-2);border-left:2px solid var(--accent-2);padding:.5rem .9rem;background:var(--ivory)}
.pf-review{display:grid;gap:.4rem;border-top:1px solid var(--line);padding-top:1rem}
.pf-review div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:1rem;font-size:.95rem;padding:.35rem 0;border-bottom:1px dotted var(--line)}
.pf-review dt{color:var(--muted-2);font-family:var(--sans);font-size:.85rem}
.pf-review dd{overflow-wrap:anywhere}
.pf-done{align-items:flex-start;text-align:left}
.pf-done .pf-tick{width:64px;height:64px;border-radius:50%;background:var(--deep);display:grid;place-items:center}
.pf-done .pf-tick svg{width:30px;height:30px;fill:none;stroke:var(--accent-deep);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30;animation:pfDraw .7s .15s var(--e-out) forwards}
@keyframes pfDraw{to{stroke-dashoffset:0}}
.pf-done .pf-num{font-family:var(--serif);font-size:1.5rem;user-select:all}
.pf-done .acts{margin-top:.5rem}
.pf-df{display:flex;align-items:center;gap:1rem;padding:.9rem 1.25rem max(.9rem,env(safe-area-inset-bottom));background:var(--ivory);border-top:1px solid var(--line)}
.pf-df .btn{flex:0 0 auto}
.pf-df #pf-next{margin-left:auto}
.pf-err{flex:1;font-family:var(--sans);font-size:.85rem;color:#A6422F;min-width:0}
.pf-busy{opacity:.6;pointer-events:none}
@media(prefers-reduced-motion:reduce){.pf-dlg[open] .pf-shell,.pf-view>.pf-anim,.pf-done .pf-tick svg{animation:none}.pf-done .pf-tick svg{stroke-dashoffset:0}.pf-paper img{transition:none}}
.pf-df [hidden],.pf-dlg [hidden]{display:none!important}
.pf-chip,.pf-chip span,.pf-pad,.pf-x,.btn{-webkit-tap-highlight-color:transparent}
.pf-nextform{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;font-family:var(--sans);font-size:.9rem;color:var(--muted-2);border-top:1px solid var(--line);padding-top:1.2rem;margin-top:.6rem;width:100%}
.pf-done .pf-note{margin-top:0}
.pf-intent{align-items:flex-start;padding:.9rem 1rem;border:1px solid var(--line-2);background:#fff;line-height:1.45}
.pf-intent input{margin-top:.15rem;flex:0 0 auto}
.pf-intent.bad{border-color:#A6422F;box-shadow:0 0 0 3px rgba(166,66,47,.14)}
.pf-code{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1rem;width:100%;padding:1rem;border:1px solid var(--line-2);background:var(--ivory)}
.pf-code span{display:block;font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink)}
.pf-code b{font-family:var(--sans);font-size:1.15rem;font-weight:600;letter-spacing:.04em;user-select:all;font-variant-numeric:tabular-nums}
.pf-code p{grid-column:1/-1;font-size:.9rem;color:var(--muted)}
.pf-code .btn{grid-column:1/-1;justify-self:start}
.pf-code b{white-space:nowrap;font-size:clamp(.95rem,4.2vw,1.15rem)}
@media(max-width:420px){.pf-code{grid-template-columns:1fr}}
.pf-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}
.pf-init{margin-top:-.4rem}
