:root{--brand:#0a7cff;--brand-strong:#0867d8;--brand-soft:#eaf3ff;--page:#f2f5f8;--panel:#fff;--surface:#f7f9fb;--text:#172126;--muted:#667781;--line:#dfe5e8;--danger:#c83d4d;--shadow:0 20px 60px rgba(20,42,52,.14)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 0,color-mix(in srgb,var(--brand) 14%,transparent),transparent 36%),var(--page);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}.hidden{display:none!important}.booking-page{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:28px 0 54px}.booking-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.booking-brand-mark,.booking-brand-logo{width:46px;height:46px;border-radius:13px}.booking-brand-mark{display:grid;place-items:center;background:var(--brand);color:#fff;font-weight:900;font-size:20px}.booking-brand-logo{object-fit:contain;background:#fff}.booking-brand small,.booking-brand strong{display:block}.booking-brand small{color:var(--muted);font-size:12px}.booking-brand strong{font-size:17px}.booking-shell{display:grid;grid-template-columns:340px minmax(0,1fr);gap:22px;align-items:start}.booking-summary{position:sticky;top:22px;padding:28px;border-radius:22px;color:#fff;background:linear-gradient(145deg,var(--brand-strong),color-mix(in srgb,var(--brand-strong) 72%,#132a48));box-shadow:var(--shadow)}.booking-summary h1{font-size:30px;line-height:1.08;margin:10px 0}.booking-summary p{line-height:1.6;color:rgba(255,255,255,.82)}.booking-eyebrow{font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.booking-selection-summary{display:grid;gap:9px;margin:24px 0}.booking-selection-summary div{padding:12px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.08)}.booking-selection-summary span,.booking-selection-summary strong{display:block}.booking-selection-summary span{font-size:10px;color:rgba(255,255,255,.72)}.booking-selection-summary strong{margin-top:4px;font-size:13px}.booking-summary>small{color:rgba(255,255,255,.7)}.booking-card{border:1px solid var(--line);border-radius:22px;background:var(--panel);box-shadow:var(--shadow)}.booking-content{padding:26px}.booking-progress{display:flex;align-items:center;justify-content:center;margin-bottom:26px}.booking-progress span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--surface);color:var(--muted);font-weight:850}.booking-progress span.active{color:#fff;background:var(--brand)}.booking-progress i{width:90px;height:2px;background:var(--line)}.booking-heading{display:flex;gap:12px;align-items:flex-start;margin-bottom:18px}.booking-heading>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;color:var(--brand-strong);background:var(--brand-soft);font-weight:900}.booking-heading h2,.booking-heading p{margin:0}.booking-heading h2{font-size:22px}.booking-heading p{margin-top:4px;color:var(--muted)}.booking-option-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.booking-option-list.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-option{display:block;padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--panel);text-align:left;cursor:pointer;transition:.15s}.booking-option:hover{border-color:var(--brand);transform:translateY(-1px)}.booking-option.selected{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 13%,transparent);background:var(--brand-soft)}.booking-option strong,.booking-option small{display:block}.booking-option small{margin-top:5px;color:var(--muted);line-height:1.4}.booking-option-color{display:block;width:28px;height:5px;border-radius:999px;margin-bottom:9px;background:var(--option-color,var(--brand))}.booking-professional-wrap{margin-top:22px}.booking-professional-wrap h3{font-size:14px}.booking-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:24px}.booking-primary,.booking-secondary,.booking-danger{border:0;border-radius:11px;padding:11px 16px;font-weight:800;cursor:pointer}.booking-primary{color:#fff;background:var(--brand-strong)}.booking-primary:disabled{opacity:.5;cursor:not-allowed}.booking-secondary{color:var(--text);border:1px solid var(--line);background:var(--panel)}.booking-danger{color:var(--danger);background:#fdecee}.link-button{display:inline-flex;text-decoration:none}.booking-slot-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.booking-slot-toolbar strong{text-transform:capitalize}.booking-slots{display:grid;gap:12px;min-height:230px}.booking-slot-day{border:1px solid var(--line);border-radius:14px;overflow:hidden}.booking-slot-day header{padding:10px 12px;background:var(--surface);font-weight:800;text-transform:capitalize}.booking-slot-times{display:flex;gap:8px;flex-wrap:wrap;padding:12px}.booking-slot{border:1px solid color-mix(in srgb,var(--brand) 32%,var(--line));border-radius:9px;padding:8px 11px;background:var(--panel);color:var(--brand-strong);font-weight:800;cursor:pointer}.booking-slot.selected{color:#fff;background:var(--brand-strong)}.booking-empty{padding:38px;text-align:center;color:var(--muted)}.booking-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.booking-form-grid label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.booking-form-grid .wide{grid-column:1/-1}.booking-form-grid input,.booking-form-grid textarea{width:100%;border:1px solid var(--line);border-radius:11px;padding:12px;color:var(--text);background:var(--panel);font:inherit;outline:none}.booking-form-grid input:focus,.booking-form-grid textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,transparent)}.booking-loading,.booking-result{max-width:640px;margin:70px auto;padding:36px;text-align:center}.booking-spinner{display:inline-block;width:38px;height:38px;border:4px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}.booking-result-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 16px;border-radius:50%;color:#fff;background:#0fa574;font-size:30px;font-weight:900}.booking-result h1{margin:10px 0}.booking-result-details{display:grid;gap:8px;margin:20px 0;text-align:left}.booking-result-details div{display:flex;justify-content:space-between;gap:16px;padding:11px 12px;border-radius:10px;background:var(--surface)}.booking-result-details span{color:var(--muted)}.booking-manage-actions{display:flex;justify-content:center;gap:10px}.booking-notice{color:var(--muted);font-size:12px}.booking-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:10;padding:11px 16px;border-radius:10px;color:#fff;background:#172126;box-shadow:var(--shadow)}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:860px){.booking-shell{grid-template-columns:1fr}.booking-summary{position:static}.booking-option-list.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.booking-page{width:min(100% - 18px,1180px);padding-top:14px}.booking-summary,.booking-content,.booking-card{border-radius:16px}.booking-summary{padding:22px}.booking-summary h1{font-size:26px}.booking-content{padding:18px}.booking-option-list,.booking-option-list.compact,.booking-form-grid{grid-template-columns:1fr}.booking-form-grid .wide{grid-column:auto}.booking-progress i{width:50px}.booking-slot-toolbar{align-items:stretch}.booking-slot-toolbar strong{display:none}}

/* Página de confirmação e cancelamento 4.7.0 */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 15% 10%, color-mix(in srgb, var(--brand) 16%, transparent), transparent 32%),
    radial-gradient(circle at 90% 18%, color-mix(in srgb, #3156a4 12%, transparent), transparent 30%);
}
.booking-brand {
  position: relative;
  padding: 10px 13px;
  border: 1px solid color-mix(in srgb, var(--brand) 14%, var(--line));
  border-radius: 16px;
  background: color-mix(in srgb, var(--panel) 92%, transparent);
  box-shadow: 0 8px 28px #1721260c;
  backdrop-filter: blur(14px);
}
.booking-manage-card {
  position: relative;
  max-width: 680px;
  margin-top: 38px;
  overflow: hidden;
  padding: 38px;
  border-color: color-mix(in srgb, var(--brand) 20%, var(--line));
  box-shadow: 0 24px 70px #17212618;
}
.booking-manage-card::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 7px;
  background: linear-gradient(90deg, var(--brand), #3156a4);
}
.booking-calendar-icon { box-shadow: 0 10px 25px color-mix(in srgb, #0fa574 28%, transparent); }
.booking-manage-intro { max-width: 520px; margin: 0 auto 22px; color: var(--muted); line-height: 1.55; }
.booking-result-details { gap: 10px; }
.booking-result-details div { align-items: center; border: 1px solid var(--line); background: linear-gradient(145deg, var(--surface), var(--panel)); }
.booking-status { display: inline-flex; padding: 5px 9px; border-radius: 999px; font-size: 12px; }
.booking-status-confirmed { color: #087a67; background: #dcf7ed; }
.booking-status-scheduled { color: #8a6500; background: #fff3c7; }
.booking-status-cancelled, .booking-status-no_show { color: var(--danger); background: #fdecee; }
.booking-status-completed { color: #3156a4; background: #e5edff; }
.booking-meet-link {
  display: flex;
  align-items: center;
  gap: 13px;
  margin: 18px 0;
  padding: 14px 16px;
  border: 1px solid #cbd8ff;
  border-radius: 14px;
  color: #244a9a;
  background: linear-gradient(145deg, #eff3ff, #fff);
  text-align: left;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease;
}
.booking-meet-link:hover { transform: translateY(-1px); box-shadow: 0 10px 28px #3156a41a; }
.booking-meet-link > span { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; color: #fff; background: #3156a4; font-size: 19px; }
.booking-meet-link strong, .booking-meet-link small { display: block; }
.booking-meet-link small { margin-top: 3px; color: #6275a4; }
.booking-manage-actions { margin-top: 20px; }
.booking-manage-actions .booking-danger { min-width: 210px; }
.booking-notice { margin-top: 17px; line-height: 1.5; }
@media(max-width:580px){.booking-manage-card{margin-top:18px;padding:28px 18px}.booking-result-details div{align-items:flex-start;flex-direction:column;gap:4px}.booking-manage-actions .booking-danger{width:100%}}
