/* ==========================================================================
   cliniX — Estilos de perfil do médico (docprofile) + helpers do fluxo de
   agendamento (ícones de local/sent-card, textos do form-card).
   Extraído do <style> inline de doctor_profile.html para ser reusado também
   pela página de resultados (/resultados) e pelo modal de agendamento.
   ========================================================================== */
  /* width:100% é essencial: .docprofile fica dentro de um flex-column (.page-pro) e
     usa margin:0 auto — margens auto no eixo cruzado DESLIGAM o stretch, deixando o
     bloco "shrink-to-fit" (encolhe/cresce com o conteúdo). Sem largura definida, abrir
     um accordion largo alarga o bloco todo. width:100% + max-width + margin:auto =
     preenche, limita e centraliza (largura estável, independente do conteúdo). */
  .docprofile { width: 100%; max-width: 760px; margin: 0 auto; padding: var(--cx-space-6) var(--cx-space-4) var(--cx-space-12); }
  .docprofile__card {
    background: var(--cx-paper-bright);
    border: 1px solid var(--cx-rule-soft);
    border-radius: var(--cx-radius-xl);
    box-shadow: var(--cx-shadow-md);
    padding: var(--cx-space-6);
    min-width: 0; /* coluna do grid (2-col): não deixa o conteúdo alargar o bloco */
  }
  @media (max-width: 560px) { .docprofile__card { padding: var(--cx-space-5) var(--cx-space-4); } }

  .docprofile__hero { display: flex; gap: var(--cx-space-4); align-items: flex-start; }
  .docprofile__avatar {
    width: 92px; height: 92px; border-radius: var(--cx-radius-pill); flex-shrink: 0;
    background: linear-gradient(135deg, var(--cx-teal) 0%, var(--cx-teal-soft, var(--cx-teal-700, #0a5a4e)) 100%);
    color: #fff; display: flex; align-items: center; justify-content: center;
    font-size: 2rem; font-weight: var(--cx-weight-semibold); overflow: hidden;
    box-shadow: 0 6px 18px rgba(14, 124, 108, 0.22);
  }
  .docprofile__avatar img { width: 100%; height: 100%; object-fit: cover; }
  .docprofile__id { flex: 1; min-width: 0; }
  .docprofile__name { font-size: var(--cx-text-xl); font-weight: var(--cx-weight-bold); color: var(--cx-ink); line-height: 1.15; }
  /* Profissão sob o nome (tratamento: "Psicóloga" se verificado, senão a área "Psicologia"). */
  .docprofile__profession { margin: 4px 0 0; font-size: var(--cx-text-sm); color: var(--cx-ink-soft); }

  /* Identificadores CFM separados (Conselho / Especialidade / Áreas de atuação) */
  .docprofile__ids { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: var(--cx-text-sm); line-height: 1.5; }
  .docprofile__id-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
  .docprofile__id-label {
    font-weight: 700; color: var(--cx-ink-soft); text-transform: uppercase;
    letter-spacing: 0.08em; font-size: var(--cx-text-xs);
  }
  .docprofile__id-val { font-family: var(--cx-font-mono); font-weight: 600; color: var(--cx-ink); letter-spacing: 0.02em; }
  .docprofile__id-main { color: var(--cx-ink); font-weight: 500; }

  .docprofile__badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
  .docprofile__badge {
    display: inline-flex; align-items: center; gap: 6px; font-size: var(--cx-text-xs);
    color: var(--cx-ink-soft); background: var(--cx-paper); border: 1px solid var(--cx-overlay-sm);
    border-radius: var(--cx-radius-pill); padding: 4px 10px;
  }
  .docprofile__badge--verified { color: var(--cx-teal); border-color: rgba(14, 124, 108, 0.25); background: rgba(14, 124, 108, 0.08); }
  .docprofile__badge svg { width: 14px; height: 14px; flex-shrink: 0; }

  /* Primary CTA — coral cliniX (acento de ação ÚNICO) */
  .docprofile__cta {
    width: 100%; margin-top: var(--cx-space-5);
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    background: var(--cx-coral); color: #fff;
    border: none; border-radius: var(--cx-radius-md); padding: 13px 18px;
    font-family: inherit; font-size: var(--cx-text-base); font-weight: var(--cx-weight-semibold);
    cursor: pointer; transition: background var(--cx-dur-fast) var(--cx-ease-out);
  }
  .docprofile__cta:hover { background: var(--cx-coral-700, #e85a4a); }
  .docprofile__cta:disabled { background: var(--cx-teal); color: #fff; cursor: default; opacity: 1; }
  .docprofile__cta svg { width: 18px; height: 18px; flex-shrink: 0; }

  .docprofile__booking { margin-top: var(--cx-space-4); }
  .docprofile__booking .book-stage { max-width: none; }

  .docprofile__section { padding-top: var(--cx-space-5); margin-top: var(--cx-space-5); border-top: 1px solid var(--cx-rule-soft); }
  .docprofile__h3 {
    font-size: var(--cx-text-xs); font-weight: var(--cx-weight-semibold);
    text-transform: uppercase; letter-spacing: var(--cx-tracking-wide, 0.08em);
    color: var(--cx-ink-faint); margin-bottom: var(--cx-space-3);
    display: flex; align-items: center; gap: 8px;
  }
  .docprofile__h3::before { content: ""; width: 14px; height: 2px; background: var(--cx-teal); border-radius: 2px; flex-shrink: 0; }

  /* ── Seções colapsáveis do perfil (TODAS) ──
     Fechadas por padrão; o "+" (à ESQUERDA do título) vira "−" ao abrir. Usam
     <details>/<summary> — expansão nativa, sem JS. O <summary> herda o visual de
     .docprofile__h3, mas ESCONDEMOS a barra teal (::before): ao lado do toggle ela
     parecia um "−". O toggle é o 1º item do summary → fica à esquerda. */
  .docprofile__summary {
    cursor: pointer; list-style: none;      /* remove o triângulo padrão do <summary> */
    margin-bottom: 0;                        /* só ganha respiro abaixo quando aberto */
  }
  .docprofile__summary::-webkit-details-marker { display: none; }   /* idem em WebKit/Safari */
  .docprofile__summary::before { display: none; }   /* esconde a barra teal do h3 (parecia "−") */
  .docprofile__toggle {
    position: relative; flex-shrink: 0; width: 16px; height: 16px;
  }
  .docprofile__toggle::before, .docprofile__toggle::after {
    content: ""; position: absolute; top: 50%; left: 50%;
    background: var(--cx-teal); border-radius: 2px; transition: transform .2s ease;
  }
  .docprofile__toggle::before { width: 11px; height: 2px; transform: translate(-50%, -50%); }   /* barra "−" */
  .docprofile__toggle::after  { width: 2px; height: 11px; transform: translate(-50%, -50%); }    /* barra vertical → some ao abrir */
  .docprofile__section--collapse[open] > .docprofile__summary { margin-bottom: var(--cx-space-3); }
  .docprofile__section--collapse[open] > .docprofile__summary .docprofile__toggle::after {
    transform: translate(-50%, -50%) scaleY(0);
  }
  .docprofile__bio {
    font-size: var(--cx-text-base); color: var(--cx-ink-soft); line-height: 1.6; white-space: pre-line; overflow-wrap: anywhere;
    display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden;
  }
  .docprofile__bio.is-expanded { -webkit-line-clamp: unset; overflow: visible; }
  /* Botão "ver mais/ver menos" (bio e convênios) — link discreto no tom cliniX. */
  .docprofile__more {
    margin-top: 8px; background: none; border: 0; padding: 0; cursor: pointer;
    color: var(--cx-teal-700, #0a5a4e); font-weight: 600; font-size: var(--cx-text-sm); font-family: inherit;
  }
  .docprofile__more:hover { text-decoration: underline; }
  .docprofile__chips { display: flex; flex-wrap: wrap; gap: 6px; }
  .docprofile__chip { font-size: var(--cx-text-sm); background: rgba(14,124,108,0.08); border: 1px solid rgba(14, 124, 108, 0.18); border-radius: var(--cx-radius-pill); padding: 4px 12px; color: var(--cx-teal-700, #0a5a4e); }
  /* Convênios excedentes ficam ocultos até "Ver todos". */
  .docprofile__chip.is-extra { display: none; }
  .docprofile__chips.is-expanded .docprofile__chip.is-extra { display: inline-flex; }

  .docprofile__loc {
    display: flex; gap: var(--cx-space-3); padding: var(--cx-space-3);
    border: 1px solid var(--cx-rule-soft); border-radius: var(--cx-radius-md);
    margin-bottom: var(--cx-space-2); background: var(--cx-paper-warm);
  }
  .docprofile__loc:last-child { margin-bottom: 0; }
  .docprofile__loc-ico { flex-shrink: 0; line-height: 1.4; color: var(--cx-teal); }
  .docprofile__loc-ico svg { width: 18px; height: 18px; display: block; }
  .docprofile__loc-label { font-weight: 500; color: var(--cx-ink); }
  .docprofile__loc-addr { font-size: var(--cx-text-sm); color: var(--cx-ink-soft); margin-top: 2px; }
  .docprofile__loc-hours { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
  .docprofile__hour { font-size: var(--cx-text-xs); font-family: var(--cx-font-mono); color: var(--cx-ink-soft); background: var(--cx-code-bg, rgba(14,124,108,0.06)); border-radius: var(--cx-radius-sm); padding: 2px 8px; }
  .docprofile__loc-nohours { font-size: var(--cx-text-xs); color: var(--cx-ink-soft); margin-top: 6px; line-height: 1.5; }

  /* ── Formação acadêmica (até 6 níveis) ── */
  .docprofile__edu { margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--cx-space-2); }
  .docprofile__edu-row { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: var(--cx-space-3); align-items: baseline; padding: 8px 12px; border: 1px solid var(--cx-rule-soft); border-radius: var(--cx-radius-md); background: var(--cx-paper-warm); }
  .docprofile__edu-label { font-size: var(--cx-text-sm); color: var(--cx-ink-soft); font-weight: 600; margin: 0; min-width: 0; overflow-wrap: anywhere; }
  .docprofile__edu-val { font-size: var(--cx-text-sm); color: var(--cx-ink); margin: 0; min-width: 0; overflow-wrap: anywhere; }
  .docprofile__edu-current {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--cx-teal-700, #0a5d50);
    background: var(--cx-teal-100, #e4f3ef);
    border-radius: 999px;
    padding: 1px 8px;
  }
  @media (max-width: 560px) {
    .docprofile__edu-row { grid-template-columns: 1fr; gap: 4px; padding: 10px 12px; }
  }

  /* ── Modalidade (Telemedicina / Particular) — campos INDEPENDENTES ── */
  .docprofile__modality { margin: var(--cx-space-3) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--cx-space-2); }
  .docprofile__modality-row { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: var(--cx-space-3); align-items: start; padding: 10px 12px; border: 1px solid var(--cx-rule-soft); border-radius: var(--cx-radius-md); background: var(--cx-paper-warm); }
  .docprofile__modality-label { font-size: var(--cx-text-sm); color: var(--cx-ink-soft); margin: 0; font-weight: 500; min-width: 0; overflow-wrap: anywhere; }
  .docprofile__modality-val { font-size: var(--cx-text-sm); font-weight: 600; color: var(--cx-ink); margin: 0; }
  .docprofile__modality-val--yes { color: var(--cx-teal); }
  .docprofile__modality-val--no  { color: var(--cx-ink-faint); }
  .docprofile__prices { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
  .docprofile__prices li { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-weight: 400; }
  .docprofile__price-type { font-size: var(--cx-text-xs); color: var(--cx-ink-soft); }
  .docprofile__price-val { font-family: var(--cx-font-mono); font-size: var(--cx-text-xs); font-weight: 600; color: var(--cx-ink); }
  /* Serviços (convênio + valor particular por serviço) na seção Atendimento. */
  .docprofile__services { list-style: none; margin: var(--cx-space-3) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--cx-space-2); }
  .docprofile__service { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; border: 1px solid var(--cx-rule-soft); border-radius: var(--cx-radius-md); background: var(--cx-paper-warm); }
  .docprofile__service-name { font-size: var(--cx-text-sm); font-weight: 600; color: var(--cx-ink); overflow-wrap: anywhere; }
  .docprofile__service-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: var(--cx-text-xs); }
  .docprofile__service-conv--yes { color: var(--cx-teal); font-weight: 600; }
  .docprofile__service-conv--no { color: var(--cx-ink-faint); font-weight: 600; }
  .docprofile__service-price { color: var(--cx-ink-soft); }
  @media (max-width: 560px) {
    .docprofile__modality-row { grid-template-columns: 1fr; gap: 4px; }
  }

  .docprofile__links { display: flex; flex-wrap: wrap; gap: var(--cx-space-2); }
  .docprofile__link { display: inline-flex; align-items: center; gap: 6px; font-size: var(--cx-text-sm); font-weight: 500; color: var(--cx-teal); background: var(--cx-paper); border: 1px solid rgba(14, 124, 108, 0.25); border-radius: var(--cx-radius-pill); padding: 6px 14px; text-decoration: none; }
  .docprofile__link:hover { background: var(--cx-teal); color: #fff; }
  .docprofile__link svg { width: 14px; height: 14px; flex-shrink: 0; }
  .docprofile__notfound { text-align: center; padding: var(--cx-space-12) var(--cx-space-4); }

  /* ── Two-column chip grid (procs + conditions) ── */
  .docprofile__two-col { display: grid; grid-template-columns: 1fr 1fr; gap: var(--cx-space-4); }
  .docprofile__two-col-label {
    font-size: var(--cx-text-xs); font-weight: var(--cx-weight-semibold);
    text-transform: uppercase; letter-spacing: var(--cx-tracking-wide, 0.08em);
    color: var(--cx-ink-mute); margin-bottom: var(--cx-space-2);
  }
  @media (max-width: 560px) { .docprofile__two-col { grid-template-columns: 1fr; } }

  /* ── Brand v1 icon modifiers + helper texts emitted by profile.js (handoff round1) ── */
  .loc-option__ico--tele,
  .loc-option__ico--presencial {
    display:inline-block; width:20px; height:20px;
    background:center/contain no-repeat;
  }
  .loc-option__ico--tele { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%230e7c6c%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%272%27%20y%3D%273%27%20width%3D%2720%27%20height%3D%2714%27%20rx%3D%272%27%2F%3E%3Cline%20x1%3D%278%27%20y1%3D%2721%27%20x2%3D%2716%27%20y2%3D%2721%27%2F%3E%3Cline%20x1%3D%2712%27%20y1%3D%2717%27%20x2%3D%2712%27%20y2%3D%2721%27%2F%3E%3C%2Fsvg%3E"); }
  .loc-option__ico--presencial { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%230e7c6c%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2010c0%207-9%2013-9%2013s-9-6-9-13a9%209%200%200%201%2018%200z%27%2F%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2710%27%20r%3D%273%27%2F%3E%3C%2Fsvg%3E"); }

  .sent-card__icon--ok,
  .sent-card__icon--warn,
  .sent-card__icon--mail,
  .sent-card__icon--sent {
    display:block; width:44px; height:44px; margin:0 auto 6px;
    background:center/contain no-repeat;
  }
  .sent-card__icon--ok   { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%231f8a4c%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M22%2011.08V12a10%2010%200%201%201-5.93-9.14%27%2F%3E%3Cpolyline%20points%3D%2722%204%2012%2014.01%209%2011.01%27%2F%3E%3C%2Fsvg%3E"); }
  .sent-card__icon--warn { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23b8841a%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M10.29%203.86L1.82%2018a2%202%200%200%200%201.71%203h16.94a2%202%200%200%200%201.71-3L13.71%203.86a2%202%200%200%200-3.42%200z%27%2F%3E%3Cline%20x1%3D%2712%27%20y1%3D%279%27%20x2%3D%2712%27%20y2%3D%2713%27%2F%3E%3Cline%20x1%3D%2712%27%20y1%3D%2717%27%20x2%3D%2712.01%27%20y2%3D%2717%27%2F%3E%3C%2Fsvg%3E"); }
  .sent-card__icon--mail { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%230e7c6c%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%204h16c1.1%200%202%20.9%202%202v12c0%201.1-.9%202-2%202H4c-1.1%200-2-.9-2-2V6c0-1.1.9-2%202-2z%27%2F%3E%3Cpolyline%20points%3D%2722%2C6%2012%2C13%202%2C6%27%2F%3E%3C%2Fsvg%3E"); }
  .sent-card__icon--sent { background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%230e7c6c%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2015a2%202%200%200%201-2%202H7l-4%204V5a2%202%200%200%201%202-2h14a2%202%200%200%201%202%202z%27%2F%3E%3C%2Fsvg%3E"); }

  .form-card__ai-disclaimer { font-size:0.72rem; color:var(--cx-ink-faint,#8a938e); line-height:1.45; margin:0 0 10px; }
  .form-card__lgpd { font-size:0.72rem; color:var(--cx-ink-faint,#8a938e); line-height:1.45; margin:6px 0 0; }
  .form-card__privacy { font-size:0.72rem; color:var(--cx-ink-faint,#8a938e); line-height:1.45; margin:8px 0 0; }
  .form-card__privacy a { color:var(--cx-teal,#0e7c6c); text-decoration:underline; }
  .form-card__error { font-size:0.82rem; color:var(--cx-danger,#c4302b); line-height:1.45; margin:8px 0 0; }

  /* ── Telefones dos locais (perfil público) ── */
  .docprofile__loc-phones { display:flex; flex-wrap:wrap; gap:6px 12px; margin-top:6px; }
  .docprofile__loc-phone { display:inline-flex; align-items:center; gap:5px; font-size:var(--cx-text-xs); color:var(--cx-ink-soft); }
  .docprofile__loc-phone svg { width:13px; height:13px; color:var(--cx-teal); flex-shrink:0; }

  /* ── Perfil em 2 colunas quando há calendário (Clinix Auto) ──
     Coluna 1: card (hero+CTA+assistente) na 1ª linha e as seções colapsáveis na 2ª;
     coluna 2: aside (calendário + recepção), esticado nas duas linhas. */
  .docprofile--with-calendar { max-width:1140px; }
  @media (min-width:900px) {
    .docprofile--with-calendar {
      display:grid; grid-template-columns:minmax(0,1fr) 400px;
      grid-template-rows:min-content 1fr;
      grid-template-areas:"card aside" "sections aside";
      gap:var(--cx-space-6); align-items:start;
    }
    .docprofile--with-calendar > .docprofile__card     { grid-area:card; }
    .docprofile--with-calendar > .docprofile__sections { grid-area:sections; margin-top:0; }
    .docprofile--with-calendar > .docprofile__aside    { grid-area:aside; }
  }
  .docprofile__aside { min-width:0; }
  @media (min-width:900px) { .docprofile__aside { position:sticky; top:var(--cx-space-6); } }

  /* ── Botão "Falar com a recepção" (WhatsApp da recepção, abaixo do calendário) ── */
  .docprofile__wa {
    display:flex; gap:10px; align-items:center; margin-top:var(--cx-space-3);
    padding:12px 14px; border:1px solid var(--cx-rule-soft); border-radius:var(--cx-radius-lg);
    background:var(--cx-card); text-decoration:none;
    font-size:var(--cx-text-sm); color:var(--cx-ink-soft); line-height:1.45;
    transition:border-color .15s, background .15s;
  }
  .docprofile__wa:hover { border-color:#25d366; background:rgba(37,211,102,.06); }
  .docprofile__wa-ico { flex-shrink:0; color:#25d366; line-height:0; }
  .docprofile__wa-ico svg { display:block; width:26px; height:26px; }
  .docprofile__wa-text { display:flex; flex-direction:column; gap:1px; }
  .docprofile__wa-text strong { color:var(--cx-ink); font-weight:600; }
  .docprofile__wa-num { color:var(--cx-ink-soft); font-variant-numeric:tabular-nums; }
  .docprofile__wa-hours { font-weight:400; font-size:var(--cx-text-xs); color:var(--cx-ink-faint); }
  /* Local(is) daquele número da recepção — linha abaixo do "Falar com a recepção". */
  .docprofile__wa-loc { font-size:var(--cx-text-xs); color:var(--cx-ink-soft); font-weight:500; }
  /* Texto-guia acima do WhatsApp da recepção + nota abaixo do botão de agendar. */
  .docprofile__wa-lead { margin:var(--cx-space-3) 0 6px; font-size:var(--cx-text-sm); color:var(--cx-ink-soft); line-height:1.5; }
  .docprofile__book-note { margin:10px 0 0; font-size:var(--cx-text-sm); color:var(--cx-ink-soft); text-align:center; line-height:1.5; }
  .docprofile__book-note a { color:var(--cx-teal); font-weight:600; text-decoration:underline; }

  /* ── Calendário mensal de disponibilidade ── */
  .mcal {
    background:var(--cx-card); border:1px solid var(--cx-rule-soft);
    border-radius:var(--cx-radius-lg); box-shadow:var(--cx-shadow-card);
    padding:var(--cx-space-5); margin-top:var(--cx-space-6); scroll-margin-top:16px;
  }
  @media (min-width:900px) { .mcal { margin-top:0; } }
  .mcal__loading, .mcal__empty { padding:24px 8px; text-align:center; color:var(--cx-ink-faint); font-size:var(--cx-text-sm); }
  /* Seletor de tipo de consulta acima da grade — filtra os horários por serviço. */
  .mcal__service { display:flex; flex-direction:column; gap:6px; margin-bottom:var(--cx-space-4); }
  .mcal__service-label { font-size:var(--cx-text-xs); font-weight:var(--cx-weight-bold); text-transform:uppercase; letter-spacing:.06em; color:var(--cx-ink-faint); }
  .mcal__service-sel {
    width:100%; padding:12px 42px 12px 16px; border:1.5px solid var(--cx-teal-100);
    border-radius:14px; background:var(--cx-card); color:var(--cx-teal-700);
    font-family:inherit; font-size:var(--cx-text-base); font-weight:700; letter-spacing:-.01em; cursor:pointer;
    box-shadow:0 1px 3px rgba(19,33,29,.06); transition:border-color .15s, box-shadow .15s, background-color .15s;
    appearance:none; -webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%230e7c6c'%20stroke-width='2.5'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpolyline%20points='6%209%2012%2015%2018%209'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 14px center;
  }
  .mcal__service-sel:hover { border-color:var(--cx-teal); background-color:var(--cx-teal-100); }
  .mcal__service-sel:focus { outline:none; border-color:var(--cx-teal); box-shadow:0 0 0 3px var(--cx-teal-100); }
  /* Modalidade (Presencial | Teleconsulta): segmented control ACIMA dos seletores. */
  .mcal__modality {
    display:flex; gap:4px; margin-bottom:var(--cx-space-4); padding:4px;
    background:var(--cx-teal-50, #f2faf8); border:1px solid var(--cx-teal-100); border-radius:14px;
  }
  .mcal__mod {
    flex:1 1 0; padding:10px 12px; border:none; border-radius:11px; cursor:pointer;
    background:transparent; color:var(--cx-teal-700);
    font-family:inherit; font-size:var(--cx-text-sm); font-weight:var(--cx-weight-semibold); letter-spacing:-.01em;
    transition:background .15s, color .15s, box-shadow .15s;
  }
  .mcal__mod:hover:not(.is-active) { background:var(--cx-teal-100); }
  .mcal__mod.is-active { background:var(--cx-teal); color:#fff; box-shadow:0 1px 3px rgba(14,124,108,.35); }
  /* Local bloqueado quando em Teleconsulta (o local não importa). */
  .mcal__service--disabled { opacity:.5; }
  .mcal__service-sel:disabled { cursor:not-allowed; }
  .mcal__service-sel:disabled:hover { border-color:var(--cx-teal-100); background-color:var(--cx-card); }
  /* Descrição do serviço escolhido (convênio + preço particular), abaixo do seletor. */
  .mcal__service-desc { margin:0; font-size:var(--cx-text-xs); color:var(--cx-ink-soft); line-height:1.4; }
  .mcal__service-desc:empty { display:none; }
  /* Aviso: Convênio selecionado num serviço que não aceita convênio. */
  .mcal__conv-warn { margin:6px 0 0; font-size:var(--cx-text-xs); line-height:1.4; color:#8a6d0b;
    background:rgba(184,134,11,.10); border:1px solid rgba(184,134,11,.22); border-radius:var(--cx-radius-md,10px); padding:7px 10px; }
  /* Tipo de serviço em chips radio-like — o selecionado ganha a "bolinha" de checked. */
  .mcal__svcs { display:flex; flex-wrap:wrap; gap:8px; }
  .mcal__svc {
    display:inline-flex; align-items:center; gap:8px; cursor:pointer;
    border:1px solid var(--cx-rule); background:var(--cx-card); color:var(--cx-ink);
    border-radius:var(--cx-radius-full); padding:8px 14px 8px 11px;
    font-family:inherit; font-size:var(--cx-text-sm); font-weight:var(--cx-weight-medium);
    transition:border-color .15s, background .15s, color .15s;
  }
  .mcal__svc::before {
    content:""; width:16px; height:16px; border-radius:50%; flex-shrink:0;
    border:2px solid var(--cx-rule); background:var(--cx-card);
    transition:border-color .15s, background .15s, box-shadow .15s;
  }
  .mcal__svc:hover { border-color:var(--cx-teal); }
  .mcal__svc.is-selected {
    border-color:var(--cx-teal); background:var(--cx-teal-100);
    color:var(--cx-teal-700); font-weight:var(--cx-weight-semibold);
  }
  .mcal__svc.is-selected::before {
    border-color:var(--cx-teal); background:var(--cx-teal);
    box-shadow:inset 0 0 0 3px var(--cx-card);   /* miolo branco = radio marcado */
  }
  .mcal__head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px; }
  .mcal__title { font-weight:var(--cx-weight-bold); color:var(--cx-ink); font-size:var(--cx-text-base); text-transform:capitalize; }
  .mcal__nav {
    width:36px; height:36px; border-radius:var(--cx-radius-full); border:1px solid var(--cx-rule);
    background:var(--cx-card); color:var(--cx-teal); font-size:1.2rem; line-height:1; cursor:pointer; flex-shrink:0;
  }
  .mcal__nav:hover:not(:disabled) { background:var(--cx-teal-100); border-color:var(--cx-teal); }
  .mcal__nav:disabled { opacity:.4; cursor:not-allowed; }
  .mcal__grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
  .mcal__wd { text-align:center; font-size:var(--cx-text-xs); color:var(--cx-ink-faint); font-weight:var(--cx-weight-semibold); padding:4px 0; }
  .mcal__cell {
    position:relative; aspect-ratio:1; border:none; background:transparent; border-radius:var(--cx-radius-md);
    font-size:var(--cx-text-base); color:var(--cx-ink-mute); cursor:default; padding:0;
  }
  .mcal__cell--empty { visibility:hidden; }
  .mcal__cell--has { color:var(--cx-ink); font-weight:var(--cx-weight-semibold); cursor:pointer; background:var(--cx-teal-100); }
  .mcal__cell--has:hover { background:var(--cx-teal); color:#fff; }
  /* Dia selecionado ("checked"): preenchimento teal + número em negrito, sem a bolinha. */
  .mcal__cell.is-selected.mcal__cell--has { background:var(--cx-teal); color:#fff; font-weight:var(--cx-weight-bold); }
  .mcal__dot { position:absolute; bottom:6px; left:50%; transform:translateX(-50%); width:5px; height:5px; border-radius:50%; background:var(--cx-coral); }
  .mcal__cell--has:hover .mcal__dot { background:#fff; }
  .mcal__cell.is-selected .mcal__dot { display:none; }   /* o preenchimento já indica a seleção */

  /* ── Spotlight do agendamento: escurece a página e destaca SÓ o calendário. ── */
  .booking-spotlight-backdrop { position:fixed; inset:0; background:rgba(19,33,29,.55); z-index:300; }
  .booking-spotlight-backdrop[hidden] { display:none; }
  /* O aside deixa de criar stacking context (perde o sticky no spotlight): assim só
     o #profile-calendar (com z-index) sobe acima do fundo escuro — o WhatsApp da
     recepção e o chat, que ficam no mesmo aside, escurecem junto com a página. */
  body.is-booking-spotlight .docprofile__aside { position:static; }
  body.is-booking-spotlight #profile-calendar {
    position:relative; z-index:302;
    box-shadow:0 0 0 3px rgba(255,255,255,.7), 0 24px 60px rgba(19,33,29,.5);
  }
  .mcal__day { margin-top:16px; border-top:1px solid var(--cx-rule-soft); padding-top:12px; scroll-margin-top:16px; }
  .mcal__day-title { font-size:var(--cx-text-xs); text-transform:uppercase; letter-spacing:.06em; color:var(--cx-ink-faint); font-weight:var(--cx-weight-semibold); margin-bottom:8px; }
  /* Grupos por endereço dentro de um dia */
  .mcal__addr { margin-top:10px; }
  .mcal__addr:first-of-type { margin-top:0; }
  .mcal__addr-label { display:flex; align-items:flex-start; gap:5px; font-size:var(--cx-text-xs); color:var(--cx-ink-soft); font-weight:var(--cx-weight-semibold); margin-bottom:5px; line-height:1.35; }
  .mcal__addr-ico { flex-shrink:0; }
  .mcal__slots { display:flex; flex-wrap:wrap; gap:6px; }
  .mcal__slot {
    border:1px solid var(--cx-rule); background:var(--cx-card); color:var(--cx-ink);
    border-radius:var(--cx-radius-md); padding:7px 12px; font-size:var(--cx-text-sm); font-weight:var(--cx-weight-medium); cursor:pointer;
  }
  .mcal__slot:hover { border-color:var(--cx-teal); background:var(--cx-teal-100); }

  /* Aviso de perfil não reivindicado (informações possivelmente desatualizadas) */
  .docprofile__notice {
    display:flex; align-items:flex-start; gap:8px;
    background:#fdf3dd; border:1px solid #efdfae; border-left:4px solid #b8860b;
    color:#6b5410; border-radius:var(--cx-radius-md); padding:12px 14px; margin:4px 0 16px;
    font-size:var(--cx-text-sm); line-height:1.45;
  }
  .docprofile__notice svg { width:18px; height:18px; flex-shrink:0; margin-top:1px; stroke:#b8860b; }

  /* ── Seções colapsáveis no estilo dos acordeões do perfil da CLÍNICA ──
     Cada seção (Sobre, Formação…) vira um CARD branco com título em negrito
     (caixa normal) e chevron à direita. NÃO afeta a faixa do assistente
     (docprofile__section--assistant), que segue "bleeding". */
  .docprofile__sections { display:flex; flex-direction:column; gap:var(--cx-space-2); min-width:0; margin-top:var(--cx-space-6); }
  .docprofile__section--collapse:not(.docprofile__section--assistant) {
    margin-top:0; padding:0;
    background:var(--cx-card); border:1px solid var(--cx-rule-soft);
    border-radius:var(--cx-radius-lg); box-shadow:var(--cx-shadow-card); overflow:hidden;
  }
  .docprofile__section--collapse:not(.docprofile__section--assistant) > .docprofile__summary {
    display:flex; align-items:center; gap:10px; margin:0; padding:14px 16px;
    font-size:var(--cx-text-base); font-weight:var(--cx-weight-semibold);
    text-transform:none; letter-spacing:normal; color:var(--cx-ink);
  }
  .docprofile__section--collapse:not(.docprofile__section--assistant) > .docprofile__summary .docprofile__toggle { display:none; }
  .docprofile__section--collapse:not(.docprofile__section--assistant) > .docprofile__summary::after {
    content:""; margin-left:auto; flex-shrink:0; width:8px; height:8px;
    border-right:2px solid var(--cx-ink-faint); border-bottom:2px solid var(--cx-ink-faint);
    transform:rotate(45deg); transition:transform .18s;
  }
  .docprofile__section--collapse:not(.docprofile__section--assistant)[open] > .docprofile__summary { margin-bottom:0; border-bottom:1px solid var(--cx-rule-soft); }
  .docprofile__section--collapse:not(.docprofile__section--assistant)[open] > .docprofile__summary::after { transform:rotate(-135deg); }
  /* corpo do card: padding lateral nos filhos (menos o summary) + respiro topo/base */
  .docprofile__section--collapse:not(.docprofile__section--assistant) > :not(summary) { padding-left:16px; padding-right:16px; }
  .docprofile__section--collapse:not(.docprofile__section--assistant) > .docprofile__summary + * { margin-top:14px; }
  .docprofile__section--collapse:not(.docprofile__section--assistant) > :last-child { margin-bottom:16px; }

  /* Especialidade: rótulo único em cima, lista de "Especialidade — RQE" embaixo, e
     o "i" de informações ao lado. Compartilhado entre o perfil do médico e o modal
     "Saiba mais" da vitrine da clínica (por isso mora aqui, não inline no perfil). */
  .docprofile__id-row--stack { display: block; }
  .docprofile__id-row--stack .docprofile__id-label { display: inline-flex; align-items: center; gap: 6px; }
  .docprofile__spec-list { display: flex; flex-direction: column; gap: 2px; margin-top: 3px; }
  .docprofile__spec-item { display: block; }
  .docprofile__info-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 16px; height: 16px; padding: 0; border: none; background: none;
    color: inherit; cursor: pointer; opacity: .55; line-height: 0;
  }
  .docprofile__info-btn svg { width: 15px; height: 15px; }
  .docprofile__info-btn:hover, .docprofile__info-btn[aria-expanded="true"] { opacity: 1; }
  .docprofile__info-pop {
    margin-top: 8px; padding: 10px 12px; border-radius: 8px;
    background: rgba(14,124,108,.08); color: var(--cx-ink-faint, #4A5752);
    font-size: .82rem; line-height: 1.5; max-width: 42ch;
  }
  .docprofile__info-pop[hidden] { display: none; }

