/* PsiConnect: agendamento online (/agendar/) e gerenciar consulta (/agendar/gerenciar/). 18/10/2026.
   Usa as cores do site (site-rose.css): --rose, --soft, --line, --ink, --muted, --paper. Claro e escuro. */
.booking{max-width:980px;margin-inline:auto;padding-top:36px}
.booking-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;list-style:none;margin:0 0 26px;padding:0;counter-reset:bk}
.booking-steps li{counter-increment:bk;display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--muted);font-size:.85rem;font-weight:600;min-width:0}
.booking-steps li::before{content:counter(bk);display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:var(--soft);color:var(--rose);font-size:.8rem}
.booking-steps li[aria-current]{border-color:var(--rose);color:var(--ink)}
.booking-steps li[aria-current]::before,.booking-steps li.is-done::before{background:var(--rose);color:#fff}
.booking-steps li.is-done{color:var(--ink)}
.booking-context{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 24px;align-items:end;padding:22px 24px;border:1px solid var(--line);border-radius:22px;background:var(--soft);margin-bottom:22px}
.booking-context label,.booking-panel label{display:grid;gap:8px;font-weight:600;font-size:.92rem;min-width:0}
.booking select,.booking input[type=text],.booking input[type=email],.booking input[type=tel],.booking textarea{width:100%;min-height:52px;padding:12px 14px;border:1px solid #b38b9c;border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-size:1rem;min-width:0}
.booking textarea{min-height:90px;resize:vertical}
.booking select:focus-visible,.booking input:focus-visible,.booking textarea:focus-visible,.booking button:focus-visible{outline:3px solid var(--rose);outline-offset:2px}
.booking-meta{margin:0;color:var(--muted);font-size:.92rem;text-align:right}
.booking-meta strong{color:var(--ink)}
.link-button{border:0;background:none;padding:0;color:var(--rose);font:inherit;text-decoration:underline;cursor:pointer}
.booking-context .tz-field{grid-column:1/-1}
.booking-panel{padding:30px;border:1px solid var(--line);border-radius:26px;background:var(--paper);display:grid;gap:22px}
.booking-panel>h2{margin:0;font-size:clamp(1.6rem,2.4vw,2.1rem)}
.booking-sub{margin:-10px 0 0;color:var(--muted)}
.booking-back{justify-self:start;border:0;background:none;padding:0;color:var(--rose);font:inherit;font-weight:600;cursor:pointer}
.booking-loading,.booking-empty{color:var(--muted);margin:0}
.booking-professionals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.prof-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px;align-items:start;text-align:left;padding:20px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--ink);font:inherit;cursor:pointer;width:100%}
.prof-card:hover{border-color:var(--rose)}
.prof-card[aria-pressed=true]{border-color:var(--rose);box-shadow:0 0 0 2px var(--rose) inset}
.prof-photo{width:72px;height:72px;border-radius:18px;object-fit:cover;background:var(--soft);display:grid;place-items:center;color:var(--rose);font-family:var(--serif);font-size:1.8rem}
.prof-card h3{margin:0 0 4px;font-family:var(--serif);font-weight:400;font-size:1.3rem;line-height:1.2}
.prof-card .prof-reg{margin:0;color:var(--muted);font-size:.82rem}
.prof-card .prof-bio{margin:10px 0 0;font-size:.9rem;line-height:1.55;color:var(--muted)}
.prof-card .prof-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.prof-card .prof-next{margin:12px 0 0;font-size:.85rem;font-weight:600;color:var(--rose)}
.prof-card .prof-next.is-none{color:var(--muted);font-weight:400}
.booking-help{margin:0;color:var(--muted);font-size:.92rem}
.booking-help a,.booking-note a,.consent a{color:var(--rose)}
.booking-week{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:10px;align-items:stretch}
.week-arrow{border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--rose);font-size:1.1rem;cursor:pointer;min-height:64px}
.week-arrow:disabled{opacity:.35;cursor:default}
.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-width:0}
.day-button{display:grid;gap:2px;justify-items:center;padding:10px 4px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font:inherit;cursor:pointer;min-width:0}
.day-button small{font-size:.72rem;color:var(--muted);text-transform:capitalize}
.day-button strong{font-size:1.05rem}
.day-button span{font-size:.7rem;color:var(--rose)}
.day-button .day-month{display:none}
.day-button:disabled{opacity:.4;cursor:default;background:transparent}
.day-button.is-filler{visibility:hidden}
.day-button[aria-pressed=true]{background:var(--rose);border-color:var(--rose);color:#fff}
.day-button[aria-pressed=true] small,.day-button[aria-pressed=true] span{color:#fff}
.booking-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.time-button{min-height:48px;border:1px solid #c698ac;border-radius:100px;background:#fff;color:var(--rose);font:inherit;font-weight:600;cursor:pointer}
.time-button:hover{background:var(--soft)}
.time-button[aria-pressed=true]{background:var(--rose);color:#fff;border-color:var(--rose)}
.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.booking-phone{border:0;padding:0;margin:0;display:grid;gap:8px;min-width:0}
.booking-phone legend{font-weight:600;font-size:.92rem;padding:0;margin-bottom:8px}
.booking-phone-row{display:grid;grid-template-columns:auto minmax(0,190px) minmax(0,1fr);gap:8px;align-items:center}
.booking-flag{display:grid;place-items:center;width:44px;height:52px;border:1px solid #b38b9c;border-radius:12px;background:#fff}
.booking-flag img{display:block;width:24px;height:16px;object-fit:cover;border-radius:2px}
.booking-phone small,.booking small.hint{color:var(--muted);font-weight:400;font-size:.8rem}
.consent{display:flex!important;grid-template-columns:none;gap:12px!important;align-items:flex-start;font-weight:400!important;font-size:.9rem!important;line-height:1.55}
.consent input{width:20px;height:20px;flex:none;margin-top:2px;accent-color:var(--rose)}
.booking-error{margin:0;padding:12px 16px;border:1px solid #d9a0b8;border-left:3px solid var(--rose);border-radius:12px;background:#fff5f9;color:#7b2d50;font-size:.92rem}
.booking-ok{margin:0;padding:12px 16px;border:1px solid #9cc9ad;border-left:3px solid #2f7d55;border-radius:12px;background:#f1faf4;color:#1f5b3c;font-size:.92rem}
.field-error{display:block;margin-top:4px;color:#9b2c5a;font-size:.82rem;font-weight:600}
.booking [aria-invalid=true]{border-color:#c0466f}
.booking-summary{margin:0;display:grid;gap:0;border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden}
.booking-summary>div{display:grid;grid-template-columns:170px minmax(0,1fr);gap:14px;padding:14px 18px;border-top:1px solid var(--line)}
.booking-summary>div:first-child{border-top:0}
.booking-summary dt{color:var(--muted);font-size:.88rem}
.booking-summary dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.booking-summary dd small{display:block;font-weight:400;color:var(--muted);margin-top:2px}
.booking-note{margin:0;color:var(--muted);font-size:.92rem;line-height:1.6}
.booking-actions{display:flex;flex-wrap:wrap;gap:12px}
.booking-actions .button{flex:0 1 auto}
.booking-done{border-color:var(--rose)}
.booking-done .eyebrow{margin-bottom:0}
.honeypot{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.booking button[aria-busy=true]{opacity:.7;cursor:wait}
.manage-reasons textarea{min-height:70px}
html[data-theme=dark] .prof-card,html[data-theme=dark] .day-button,html[data-theme=dark] .week-arrow,html[data-theme=dark] .time-button,html[data-theme=dark] .booking-summary,html[data-theme=dark] .booking-flag,html[data-theme=dark] .booking select,html[data-theme=dark] .booking input[type=text],html[data-theme=dark] .booking input[type=email],html[data-theme=dark] .booking input[type=tel],html[data-theme=dark] .booking textarea{background:#2b232d;color:var(--ink);border-color:var(--line)}
html[data-theme=dark] .booking-panel{background:#251e27}
html[data-theme=dark] .booking-steps li{background:#251e27}
html[data-theme=dark] .day-button[aria-pressed=true],html[data-theme=dark] .time-button[aria-pressed=true]{background:var(--rose);color:#211b22;border-color:var(--rose)}
html[data-theme=dark] .day-button[aria-pressed=true] small,html[data-theme=dark] .day-button[aria-pressed=true] span{color:#211b22}
html[data-theme=dark] .booking-steps li[aria-current]::before,html[data-theme=dark] .booking-steps li.is-done::before{color:#211b22}
html[data-theme=dark] .booking-error{background:#3a2531;color:#f3c3d6;border-color:#7b4a62}
html[data-theme=dark] .field-error{color:#f3a9c6}
html[data-theme=dark] .booking-ok{background:#1f3328;color:#bfe7cf;border-color:#3f6f55}
@media (max-width:800px){.booking-professionals{grid-template-columns:1fr}.booking-context{grid-template-columns:1fr}.booking-meta{text-align:left}}
@media (max-width:640px){
 .booking{padding-top:20px}
 .booking-steps{gap:6px;margin-bottom:18px}.booking-steps li{flex-direction:column;gap:4px;padding:8px 4px;font-size:.7rem;text-align:center;border-radius:12px}
 .booking-panel{padding:20px 16px;border-radius:20px;gap:18px}.booking-context{padding:16px;border-radius:18px}
 .prof-card{grid-template-columns:56px minmax(0,1fr);padding:16px;gap:12px}.prof-photo{width:56px;height:56px;border-radius:14px;font-size:1.4rem}
 .booking-week{grid-template-columns:36px minmax(0,1fr) 36px;gap:6px}.week-arrow{min-height:58px;border-radius:12px}
 .booking-days{gap:4px}.day-button{padding:8px 1px;border-radius:10px}.day-button strong{font-size:.95rem}.day-button small{font-size:.62rem}.day-button span{font-size:.6rem}
 .day-button .day-count{display:none}.day-button .day-month{display:inline}
 .booking-times{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .booking-fields{grid-template-columns:1fr}
 .booking-phone-row{grid-template-columns:auto minmax(0,1fr)}.booking-phone-row select{grid-column:2}.booking-phone-row input{grid-column:1/-1}
 .booking-summary>div{grid-template-columns:1fr;gap:4px;padding:12px 14px}
 .booking-actions .button{flex:1 1 100%}
}

/* 18/10/2026: frase de tranquilidade no topo do agendamento (tempo e sem cobranca no site) */
.booking-reassure{margin:12px 0 0;color:var(--muted);font-size:.92rem;line-height:1.5}
.booking-reassure::before{content:"\2713";display:inline-block;margin-right:8px;color:var(--rose);font-weight:700}
