/* olivia.css — o que é do produto por cima do finpulse.css (o padrão do Gestor). */
:root { --fp-marca-cor: #2563eb; }
.fp-marca img { width: 34px; height: 34px; border-radius: 10px; }

/* a faixa de lista da agenda de compromissos, reaproveitada em todas as telas */
.g-linha { display:flex; gap:18px; margin-bottom:14px; }
.g-lado  { flex:0 0 118px; text-align:right; padding-top:4px; }
.g-lado .n { font-size:1.5rem; line-height:1.1; font-weight:600; font-family:var(--fp-mono,inherit);
             font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.g-lado .m { font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; opacity:.75; }
.g-lado .s { font-size:.76rem; opacity:.6; }
.g-corpo { flex:1 1 auto; min-width:0; border-left:2px solid var(--tblr-border-color); padding-left:18px; }
.g-hoje .g-lado .n, .g-hoje .g-lado .m { color:var(--tblr-primary); }
.g-hoje .g-corpo { border-left-color:var(--tblr-primary); }
.g-urgente .g-corpo { border-left-color:var(--tblr-danger); }
.g-atencao .g-corpo { border-left-color:var(--tblr-warning); }
.g-ok .g-corpo { border-left-color:var(--tblr-success); }
.g-item { display:flex; gap:14px; align-items:flex-start; padding:9px 12px; border-radius:10px;
          margin-bottom:6px; background:var(--tblr-bg-surface-secondary); border:1px solid var(--tblr-border-color); }
.g-item:last-child { margin-bottom:0; }
.g-item .g-tit { font-weight:600; word-break:break-word; }
.g-hora { flex:0 0 84px; font-variant-numeric:tabular-nums; font-weight:600; white-space:nowrap;
          font-family:var(--fp-mono,inherit); }
.g-hora small { display:block; font-weight:400; opacity:.6; font-family:var(--fp-sans); font-size:.72rem; }
.g-meta { font-size:.8rem; opacity:.7; }
.g-acoes { flex:0 0 auto; white-space:nowrap; margin-left:auto; }
.g-placar { display:flex; flex-wrap:wrap; gap:26px; }
.g-placar b { display:block; font-size:1.6rem; line-height:1; font-weight:600; font-family:var(--fp-mono,inherit);
              font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.g-placar span { font-size:.76rem; opacity:.65; }
.g-placar .ruim b { color:var(--tblr-danger); }
.g-placar .alerta b { color:var(--tblr-warning); }
.g-placar .bom b { color:var(--tblr-success); }
.g-num { font-variant-numeric:tabular-nums; font-family:var(--fp-mono,inherit); }
.g-ficha { border-top:1px solid var(--tblr-border-color); margin-top:10px; padding-top:10px; }
.g-vazio { padding:28px; text-align:center; opacity:.65; }

/* pulso */
.pulso { display:inline-flex; align-items:center; gap:6px; font-size:.8rem; }
.pulso::before { content:""; width:9px; height:9px; border-radius:50%; background:var(--fp-muted-claro); }
.pulso.viva::before { background:var(--fp-ok); box-shadow:0 0 0 3px var(--fp-ok-bg); }
.pulso.parada::before { background:var(--fp-bad); box-shadow:0 0 0 3px var(--fp-bad-bg); }

/* cofre */
.cofre-linha { display:grid; grid-template-columns: 1.1fr 1fr 1.2fr auto; gap:12px; align-items:end; }
@media (max-width: 900px) { .cofre-linha { grid-template-columns:1fr; } }
.segredo-mascara { font-family:var(--fp-mono,inherit); letter-spacing:.12em; opacity:.55; }

/* login */
.login-fundo { min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--fp-ground); padding:24px; }
.login-card { width:100%; max-width:420px; }

/* memória */
.memo-textarea { font-family:var(--fp-mono,inherit); font-size:.86rem; line-height:1.45; min-height:150px; }
.transcricao { max-height:320px; overflow:auto; font-size:.86rem; }
.transcricao .b { color:var(--fp-primary); }
.transcricao .p { color:var(--fp-heading); }
.transcricao .h { color:var(--fp-warn); }
@media (max-width:640px){ .g-linha { gap:10px; } .g-lado { flex-basis:64px; } .g-lado .n { font-size:1.3rem; } .g-corpo { padding-left:10px; } .g-item { flex-wrap:wrap; } }

.form-select-sm.auto { width:auto; min-width:170px; }

/* ── simulador de conversa ─────────────────────────────────────────────── */
.chat { display:flex; flex-direction:column; gap:10px; max-height:52vh; overflow:auto; padding:4px; }
.chat .bolha { max-width:78%; padding:9px 13px; border-radius:14px; font-size:.92rem;
               line-height:1.45; white-space:pre-wrap; word-break:break-word; }
.chat .bolha .quem { font-size:.68rem; text-transform:uppercase; letter-spacing:.06em;
                     opacity:.6; margin-bottom:3px; }
.chat .paciente { align-self:flex-start; background:var(--tblr-bg-surface-secondary,#f1f3f5); }
.chat .olivia   { align-self:flex-end; background:var(--fp-primary-bg,#e7f1ff);
                  border:1px solid var(--tblr-border-color); }

/* selo do FinPulse no rodapé */
.fp-selo { width:16px; height:16px; border-radius:5px; vertical-align:-3px; margin-right:5px; }
