/* ============================================================
   Modal "Nova Prescrição" da internação — CSS do redesign
   (Components/ModalNovaPrescricaoInternacao.razor)

   Transcrição fiel do protótipo do Claude Design
   ("Modal de Prescricao.dc.html" + tokens do MedCare Design System).
   NÃO reutiliza o CSS global do app (YNEX/mc-page/itn-*): os tokens
   --p-* do design são declarados DENTRO de .prmd, então os valores
   daqui vencem sem vazar para o resto da página.

   Tema escuro: o próprio protótipo define a paleta escura (renderVals
   → temaVars); ela é remapeada em bloco no fim do arquivo sob
   [data-theme-mode="dark"] .prmd — mesmo padrão do evolucao-modal.css.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

.prmd {
    /* ---- Tokens do design (tema claro) ---- */
    --p-surface:      #ffffff;
    --p-soft:         #f8fafc;
    --p-soft2:        #f1f5f9;
    --p-border:       #e2e8f0;
    --p-border-soft:  #f1f5f9;
    --p-ink:          #0b1f3a;
    --p-text:         #475569;
    --p-muted:        #64748b;
    --p-faint:        #94a3b8;
    --p-blue:         #1a4a9e;
    --p-blue-light:   #2563eb;
    --p-blue-soft:    #eff6ff;
    --p-blue-line:    #bfdbfe;
    --p-blue-line-soft: #dbeafe;
    --p-red:          #dc2626;
    --p-red-soft:     #fef2f2;
    --p-orange:       #ea580c;
    --p-orange-soft:  #fff7ed;
    --p-orange-line:  #f3cfa6;
    --p-green:        #059669;
    --p-green-soft:   #ecfdf5;
    --p-yellow:       #d97706;
    --p-yellow-soft:  #fffbeb;
    --p-grad-primary: linear-gradient(135deg, var(--p-blue), var(--p-blue-light));
    --p-focus-ring:   0 0 0 3px rgba(37, 99, 235, .18);
    --p-shadow-sm:    0 1px 2px rgba(16,33,64,.06);
    --p-shadow:       0 1px 2px rgba(16,33,64,.04), 0 12px 32px -12px rgba(16,33,64,.12);
    --p-shadow-lg:    0 24px 70px -24px rgba(16,33,64,.28);
    --p-font:         'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --p-mono:         ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    --p-ease:         cubic-bezier(.16,1,.3,1);

    /* ---- Overlay ---- */
    position: fixed;
    inset: 0;
    z-index: 2050;
    box-sizing: border-box;
    padding: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(11,31,58,.62), rgba(30,58,95,.5));
    font-family: var(--p-font);
    line-height: 1.6;
    color: var(--p-text);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.prmd *, .prmd *::before, .prmd *::after { box-sizing: border-box; }
.prmd button { font-family: var(--p-font); }
.prmd ::selection { background: var(--p-blue-line-soft); color: var(--p-ink); }
.prmd ::-webkit-scrollbar { width: 10px; height: 10px; }
.prmd ::-webkit-scrollbar-track { background: var(--p-soft2); }
.prmd ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 50px; }
.prmd ::-webkit-scrollbar-thumb:hover { background: var(--p-faint); }

@keyframes prmdFadeUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes prmdSpin { to { transform: rotate(360deg); } }

/* ---------- Cartão principal ---------- */
.prmd-card {
    position: relative;
    width: min(1500px, 100%);
    height: min(940px, calc(100vh - 36px));
    background: var(--p-surface);
    border-radius: 20px;
    box-shadow: var(--p-shadow-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    animation: prmdFadeUp .45s var(--p-ease);
}

.prmd-flex1 { flex: 1; }

.prmd-loading {
    flex: 1;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 12px;
    font-size: .84rem; font-weight: 600; color: var(--p-muted);
}
.prmd-spin {
    width: 34px; height: 34px;
    border: 3px solid var(--p-blue-line-soft);
    border-top-color: var(--p-blue);
    border-radius: 50%;
    animation: prmdSpin .8s linear infinite;
}

/* ---------- Header ---------- */
.prmd-head {
    display: flex; align-items: center; gap: 12px;
    padding: 0 18px; height: 60px;
    border-bottom: 1px solid var(--p-border);
    flex: none;
}
.prmd-head-ico {
    width: 36px; height: 36px; border-radius: 10px;
    background: var(--p-blue-soft); color: var(--p-blue);
    display: flex; align-items: center; justify-content: center;
    flex: none; font-size: 18px;
}
.prmd-head-txt { min-width: 0; }
.prmd-head-title {
    font-size: .95rem; font-weight: 800; color: var(--p-ink);
    letter-spacing: -.2px; line-height: 1.3;
}
.prmd-head-sub {
    font-size: .7rem; font-weight: 600; color: var(--p-muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.prmd-modo {
    padding: .28rem .7rem; border-radius: 50px;
    font-size: .64rem; font-weight: 800; letter-spacing: .6px;
    white-space: nowrap;
}
.prmd-modo.rasc {
    background: var(--p-orange-soft); color: var(--p-orange);
    border: 1px solid rgba(234,88,12,.3);
}
.prmd-modo.ativa {
    background: var(--p-green-soft); color: var(--p-green);
    border: 1px solid rgba(5,150,105,.3);
}
.prmd-modo.atual {
    background: var(--p-blue-soft); color: var(--p-blue);
    border: 1px solid var(--p-blue-line);
}

/* Modo "acrescentar itens" a uma prescrição existente: o que já está nela, só leitura */
.prmd-ja {
    background: var(--p-soft); border: 1px dashed var(--p-border);
    border-radius: 10px; padding: 9px 11px; margin-bottom: 10px;
}
.prmd-ja-label {
    font-size: .62rem; font-weight: 800; letter-spacing: 1.1px;
    color: var(--p-faint); margin-bottom: 6px;
}
.prmd-ja-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.prmd-ja-chip {
    font-size: .68rem; font-weight: 600; color: var(--p-text);
    background: var(--p-surface); border: 1px solid var(--p-border);
    border-radius: 6px; padding: 2px 7px;
}
.prmd-ja-nota { font-size: .68rem; color: var(--p-muted); margin-top: 7px; line-height: 1.45; }
.prmd-vsep { width: 1px; height: 20px; background: var(--p-border); }
.prmd-close {
    width: 32px; height: 32px; border: none; border-radius: 8px;
    background: transparent; color: var(--p-muted); cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 18px;
    transition: all .2s;
}
.prmd-close:hover { background: var(--p-red-soft); color: var(--p-red); }
.prmd-close:disabled { opacity: .4; cursor: not-allowed; background: transparent; color: inherit; }

/* ---------- Corpo em 3 colunas ---------- */
.prmd-body { flex: 1; display: flex; min-height: 0; }

/* ============================================================
   COLUNA 1 — Sidebar de contexto do paciente
   ============================================================ */
.prmd-side {
    width: 296px; flex: none;
    border-right: 1px solid var(--p-border);
    background: var(--p-soft);
    overflow-y: auto;
    padding: 14px;
    display: flex; flex-direction: column; gap: 12px;
}
.prmd-scard {
    background: var(--p-surface);
    border: 1px solid var(--p-border);
    border-radius: 14px;
    box-shadow: var(--p-shadow-sm);
    padding: 13px 14px;
}

/* Cartão do paciente */
.prmd-pac { display: flex; gap: 10px; align-items: center; }
.prmd-avatar {
    width: 38px; height: 38px; border-radius: 50%;
    background: var(--p-grad-primary); color: #fff;
    font-weight: 800; font-size: .82rem;
    display: flex; align-items: center; justify-content: center; flex: none;
}
.prmd-pac-txt { min-width: 0; }
.prmd-pac-nome { font-size: .78rem; font-weight: 800; color: var(--p-ink); line-height: 1.25; }
.prmd-pac-sub { font-size: .68rem; font-weight: 600; color: var(--p-muted); margin-top: 2px; }
.prmd-callout {
    display: flex; align-items: flex-start; gap: 7px;
    margin-top: 10px; padding: .5rem .6rem; border-radius: 10px;
    background: var(--p-blue-soft);
    border: 1px solid var(--p-blue-line-soft);
}
.prmd-callout i { color: var(--p-blue); font-size: 14px; margin-top: 1px; flex: none; }
.prmd-callout span { font-size: .68rem; font-weight: 600; color: var(--p-blue); line-height: 1.45; }

/* Alergias */
.prmd-alergias {
    background: var(--p-red-soft);
    border: 1px solid rgba(220,38,38,.3);
    border-radius: 14px;
    padding: 12px 14px;
}
.prmd-alergias-head {
    display: flex; align-items: center; gap: 7px;
    font-size: .68rem; font-weight: 800; letter-spacing: 1px; color: var(--p-red);
}
.prmd-alergias-head i { font-size: 14px; }
.prmd-alergias-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.prmd-alergia {
    padding: .25rem .6rem; border-radius: 8px;
    background: var(--p-surface); color: var(--p-red);
    border: 1px solid rgba(220,38,38,.35);
    font-size: .68rem; font-weight: 800;
}

/* Contexto clínico (Peso/Dose · Sinais Vitais) */
.prmd-ctx { display: flex; flex-direction: column; gap: 10px; padding: 12px 14px 14px; }
.prmd-ctx-tabs {
    display: flex; gap: 3px;
    background: var(--p-soft2); border-radius: 10px; padding: 3px;
}
.prmd-ctx-tab {
    flex: 1; padding: .42rem .3rem; border: none; border-radius: 8px;
    font-size: .7rem; font-weight: 700; cursor: pointer; transition: all .2s;
    background: transparent; color: var(--p-muted);
}
.prmd-ctx-tab.act { background: var(--p-surface); color: var(--p-blue); box-shadow: var(--p-shadow-sm); }
.prmd-ctx-note { font-size: .64rem; font-weight: 700; color: var(--p-faint); margin-bottom: 8px; }
.prmd-vgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.prmd-vgrid.tres { grid-template-columns: 1fr 1fr 1fr; gap: 6px; }
.prmd-vcell {
    background: var(--p-soft); border: 1px solid var(--p-border-soft);
    border-radius: 10px; padding: 8px 10px;
}
.prmd-vgrid.tres .prmd-vcell { padding: 7px 8px; }
.prmd-vlabel { font-size: .6rem; font-weight: 800; letter-spacing: .8px; color: var(--p-faint); }
.prmd-vgrid.tres .prmd-vlabel { font-size: .58rem; letter-spacing: .6px; }
.prmd-vval { font-size: .92rem; font-weight: 800; color: var(--p-ink); margin-top: 2px; }
.prmd-vgrid.tres .prmd-vval { font-size: .8rem; margin-top: 1px; }
.prmd-vval.warn { color: var(--p-orange); }
.prmd-vval .un { font-size: .6rem; font-weight: 600; color: var(--p-faint); }
.prmd-ctx-empty { font-size: .7rem; font-weight: 500; color: var(--p-faint); line-height: 1.5; }

/* ============================================================
   COLUNA 2 — Buscar e montar o item
   ============================================================ */
.prmd-main {
    flex: 1; min-width: 0;
    display: flex; flex-direction: column;
    overflow-y: auto;
    padding: 16px 18px;
    gap: 12px;
}

/* Abas de categoria + botão de modelos */
.prmd-cats { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.prmd-cat {
    height: 34px; padding: 0 13px; border-radius: 9px;
    border: 1px solid var(--p-border);
    background: var(--p-surface); color: var(--p-muted);
    font-size: .78rem; font-weight: 700; cursor: pointer;
    display: flex; align-items: center; gap: 7px; transition: all .2s;
}
.prmd-cat i { font-size: 15px; }
.prmd-cat:hover { border-color: var(--p-blue-line); color: var(--p-blue); }
.prmd-cat.act {
    background: var(--p-blue-soft);
    border-color: var(--p-blue-line);
    color: var(--p-blue);
}
.prmd-cat-count {
    padding: .02rem .42rem; border-radius: 50px;
    background: var(--p-blue); color: #fff;
    font-size: .62rem; font-weight: 800;
}

.prmd-modelos-wrap { position: relative; display: flex; }
.prmd-modelos-btn {
    height: 32px; padding: 0 10px;
    border: 1px solid var(--p-border); border-radius: 8px;
    background: var(--p-surface); color: var(--p-muted); cursor: pointer;
    display: flex; align-items: center; gap: 6px;
    font-size: .76rem; font-weight: 700; transition: all .2s;
}
.prmd-modelos-btn:hover { background: var(--p-blue-soft); color: var(--p-blue); border-color: var(--p-blue-line); }
.prmd-modelos-btn .star { font-size: 15px; color: var(--p-yellow); }
.prmd-modelos-btn .chev { font-size: 14px; opacity: .6; }

.prmd-pop {
    position: absolute; top: calc(100% + 8px); right: 0;
    background: var(--p-surface);
    border: 1px solid var(--p-border);
    border-radius: 12px;
    box-shadow: var(--p-shadow-lg);
    padding: 6px; width: 330px; z-index: 60;
    animation: prmdFadeUp .22s var(--p-ease);
}
.prmd-pop-label {
    font-size: .62rem; font-weight: 800; letter-spacing: 1.2px;
    color: var(--p-faint); padding: 6px 8px 4px;
}
.prmd-pop-item {
    display: flex; align-items: center; gap: 9px;
    width: 100%; text-align: left; padding: .5rem .6rem;
    border: none; background: transparent; border-radius: 8px; cursor: pointer;
}
.prmd-pop-item:hover { background: var(--p-blue-soft); }
.prmd-pop-dot { width: 8px; height: 8px; border-radius: 99px; background: var(--p-blue); flex: none; }
.prmd-pop-txt { flex: 1; min-width: 0; }
.prmd-pop-nome { display: block; font-size: .78rem; font-weight: 700; color: var(--p-ink); }
.prmd-pop-sub { display: block; font-size: .66rem; font-weight: 600; color: var(--p-faint); margin-top: 1px; }
.prmd-pop-usar { font-size: .66rem; font-weight: 800; color: var(--p-blue); flex: none; }
.prmd-pop-del {
    width: 24px; height: 24px; border: none; border-radius: 6px;
    background: transparent; color: var(--p-faint); cursor: pointer;
    display: none; align-items: center; justify-content: center;
    font-size: 13px; flex: none;
}
.prmd-pop-item:hover .prmd-pop-del { display: flex; }
.prmd-pop-del:hover { background: var(--p-red-soft); color: var(--p-red); }
.prmd-pop-foot { border-top: 1px solid var(--p-border-soft); margin-top: 4px; padding-top: 4px; }
.prmd-pop-foot-btn {
    display: flex; align-items: center; gap: 7px;
    width: 100%; padding: .5rem .6rem;
    border: none; background: transparent; border-radius: 8px; cursor: pointer;
    font-size: .74rem; font-weight: 700; color: var(--p-blue);
}
.prmd-pop-foot-btn:hover { background: var(--p-blue-soft); }
.prmd-pop-foot-row { display: flex; gap: 6px; padding: 4px 6px 6px; }
.prmd-pop-foot-row input {
    flex: 1; min-width: 0;
    padding: .4rem .55rem; border-radius: 8px;
    border: 1px solid var(--p-border);
    background: var(--p-surface); color: var(--p-ink);
    font-family: var(--p-font); font-size: .74rem; font-weight: 600;
}
.prmd-pop-foot-row input:focus { outline: none; border-color: var(--p-blue-light); box-shadow: var(--p-focus-ring); }
.prmd-pop-foot-save {
    display: inline-flex; align-items: center; gap: 5px;
    padding: .32rem .65rem; border-radius: 8px; border: none;
    background: var(--p-grad-primary); color: #fff;
    font-size: .7rem; font-weight: 700; cursor: pointer; flex: none;
}

/* Busca */
.prmd-busca-label {
    font-size: .7rem; font-weight: 700; color: var(--p-text);
    text-transform: uppercase; letter-spacing: .5px; margin-bottom: 5px;
}
.prmd-req { color: var(--p-red); }
.prmd-busca { position: relative; }
.prmd-busca input {
    width: 100%;
    padding: .6rem 2.4rem .6rem .75rem;
    border-radius: 10px;
    border: 1px solid var(--p-border);
    background: var(--p-surface); color: var(--p-ink);
    font-family: var(--p-font); font-size: .86rem; font-weight: 500;
}
.prmd-busca input:focus { outline: none; border-color: var(--p-blue-light); box-shadow: var(--p-focus-ring); }
.prmd-busca input::placeholder { color: var(--p-faint); }
.prmd-busca-btn {
    position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
    width: 30px; height: 30px; border: none; border-radius: 8px;
    background: transparent; color: var(--p-faint); cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 16px;
}
.prmd-busca-btn:hover { background: var(--p-blue-soft); color: var(--p-blue); }

/* Estados vazios da busca */
.prmd-hintempty { text-align: center; padding: 34px 20px; color: var(--p-faint); }
.prmd-hintempty i { font-size: 34px; }
.prmd-hintempty div { font-size: .8rem; font-weight: 600; margin-top: 8px; line-height: 1.5; }

/* Lista de resultados */
.prmd-res-label {
    font-size: .64rem; font-weight: 800; letter-spacing: 1.2px;
    color: var(--p-faint); margin-bottom: 6px;
}
.prmd-reslist {
    display: flex; flex-direction: column; gap: 5px;
    max-height: 430px; overflow-y: auto; padding-right: 2px;
}
.prmd-res {
    display: flex; align-items: center; gap: 10px;
    width: 100%; text-align: left; padding: .5rem .6rem;
    border: 1px solid var(--p-border);
    background: var(--p-surface);
    border-radius: 11px; cursor: pointer; transition: all .18s;
}
.prmd-res:hover { border-color: var(--p-blue-line); background: var(--p-blue-soft); }
.prmd-res.off { opacity: .55; pointer-events: none; }
.prmd-res-ico {
    width: 32px; height: 32px; border-radius: 9px;
    background: var(--p-blue-soft); color: var(--p-blue);
    display: flex; align-items: center; justify-content: center;
    flex: none; font-size: 16px;
}
.prmd-res-body { flex: 1; min-width: 0; }
.prmd-res-nomerow { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.prmd-res-nome { font-size: .8rem; font-weight: 700; color: var(--p-ink); }
.prmd-res-sub { display: block; font-size: .68rem; font-weight: 500; color: var(--p-faint); margin-top: 1px; }

.prmd-pill-freq {
    display: inline-flex; align-items: center; gap: 3px;
    padding: .12rem .45rem; border-radius: 50px;
    background: var(--p-yellow-soft); color: var(--p-yellow);
    border: 1px solid rgba(217,119,6,.3);
    font-size: .6rem; font-weight: 800; white-space: nowrap;
}
.prmd-pill-freq i { font-size: 9px; }

.prmd-est { flex: none; padding: .18rem .55rem; border-radius: 50px; font-size: .62rem; font-weight: 800; white-space: nowrap; }
.prmd-est.ok { background: var(--p-green-soft); color: var(--p-green); border: 1px solid rgba(5,150,105,.3); }
.prmd-est.semctl { background: var(--p-yellow-soft); color: var(--p-yellow); border: 1px solid rgba(217,119,6,.3); }
.prmd-est.off { background: var(--p-red-soft); color: var(--p-red); border: 1px solid rgba(220,38,38,.3); }

/* Formulário do item selecionado */
.prmd-form {
    background: var(--p-surface);
    border: 1.5px solid var(--p-blue-light);
    border-radius: 14px;
    box-shadow: var(--p-shadow);
    padding: 16px;
    display: flex; flex-direction: column; gap: 12px;
    animation: prmdFadeUp .25s var(--p-ease);
}
.prmd-form-head { display: flex; align-items: center; gap: 9px; }
.prmd-form-nome { font-size: .88rem; font-weight: 800; color: var(--p-ink); flex: 1; min-width: 0; }
.prmd-prefhint {
    display: flex; align-items: center; gap: 6px;
    font-size: .7rem; font-weight: 600; color: var(--p-blue);
    background: var(--p-blue-soft); border-radius: 8px; padding: .4rem .6rem;
}
.prmd-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.prmd-form-grid.med { grid-template-columns: 1fr 1fr .7fr 1fr; }
.prmd-flabel {
    font-size: .68rem; font-weight: 700; color: var(--p-text);
    text-transform: uppercase; letter-spacing: .5px; margin-bottom: 4px;
}
.prmd-field {
    width: 100%;
    padding: .5rem .55rem; border-radius: 10px;
    border: 1px solid var(--p-border);
    background: var(--p-surface); color: var(--p-ink);
    font-family: var(--p-font); font-size: .8rem; font-weight: 600;
}
select.prmd-field { cursor: pointer; }
.prmd-field:focus { outline: none; border-color: var(--p-blue-light); box-shadow: var(--p-focus-ring); }
.prmd-field::placeholder { color: var(--p-faint); }

/* Observações: acende sozinha quando tem conteúdo (CSS puro — o textarea
   sempre tem placeholder). Mesmo destaque azul do protótipo. */
textarea.prmd-obs {
    width: 100%; resize: vertical;
    padding: .5rem .6rem; border-radius: 10px;
    border: 1px solid var(--p-border);
    background: var(--p-surface); color: var(--p-ink);
    font-family: var(--p-font); font-size: .8rem; font-weight: 500; line-height: 1.5;
}
textarea.prmd-obs:focus { outline: none; border-color: var(--p-blue-light); box-shadow: var(--p-focus-ring); }
textarea.prmd-obs::placeholder { color: var(--p-faint); }
textarea.prmd-obs:not(:placeholder-shown) {
    background: var(--p-blue-soft);
    border-color: var(--p-blue-line);
    font-weight: 600;
}

/* Aviso inline (alergia registrada / item duplicado) */
.prmd-warn {
    display: flex; align-items: flex-start; gap: 8px;
    padding: .6rem .7rem; border-radius: 10px;
    font-size: .74rem; font-weight: 600;
    animation: prmdFadeUp .25s var(--p-ease);
}
.prmd-warn i { font-size: 16px; margin-top: 1px; flex: none; }
.prmd-warn span { flex: 1; line-height: 1.5; }
.prmd-warn.alergia { background: var(--p-red-soft); border: 1px solid rgba(220,38,38,.35); color: var(--p-red); }
.prmd-warn.dup { background: var(--p-yellow-soft); border: 1px solid rgba(217,119,6,.35); color: var(--p-yellow); }
.prmd-warn-btn {
    flex: none; padding: .35rem .7rem; border-radius: 8px; border: none;
    color: #fff; font-size: .7rem; font-weight: 700; cursor: pointer;
}
.prmd-warn.alergia .prmd-warn-btn { background: var(--p-red); }
.prmd-warn.dup .prmd-warn-btn { background: var(--p-yellow); }

.prmd-form-acoes { display: flex; gap: 8px; justify-content: flex-end; }

/* Botões */
.prmd-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: .55rem 1rem; border-radius: 10px;
    font-size: .78rem; font-weight: 700; cursor: pointer; transition: all .2s;
}
.prmd-btn i { font-size: 15px; }
.prmd-btn.outline {
    border: 1px solid var(--p-border);
    background: var(--p-surface); color: var(--p-text);
}
.prmd-btn.outline:hover { border-color: var(--p-blue); color: var(--p-blue); }
.prmd-btn.primary {
    border: none;
    background: var(--p-grad-primary); color: #fff;
    padding: .55rem 1.1rem;
    box-shadow: 0 10px 22px -10px rgba(37,99,235,.6);
}
.prmd-btn.primary:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }

/* ============================================================
   COLUNA 3 — Itens da prescrição
   ============================================================ */
.prmd-list {
    width: 424px; flex: none;
    border-left: 1px solid var(--p-border);
    background: var(--p-soft);
    display: flex; flex-direction: column; min-height: 0;
}
.prmd-list-head {
    display: flex; align-items: center; gap: 8px;
    padding: 14px 16px 12px;
    border-bottom: 1px solid var(--p-border);
    flex: none;
}
.prmd-list-head i { color: var(--p-blue); font-size: 17px; }
.prmd-list-tit { font-size: .82rem; font-weight: 800; color: var(--p-ink); flex: 1; }
.prmd-list-count {
    padding: .18rem .6rem; border-radius: 50px;
    background: var(--p-blue-soft); color: var(--p-blue);
    border: 1px solid var(--p-blue-line-soft);
    font-size: .68rem; font-weight: 800; white-space: nowrap;
}
.prmd-list-body {
    flex: 1; overflow-y: auto;
    padding: 12px 14px;
    display: flex; flex-direction: column; gap: 12px;
}

/* Vazio + últimas prescrições ("usar como base") */
.prmd-empty { text-align: center; padding: 26px 24px 22px; color: var(--p-faint); }
.prmd-empty i { font-size: 34px; }
.prmd-empty-tit { font-size: .82rem; font-weight: 700; margin-top: 8px; color: var(--p-muted); }
.prmd-empty-sub { font-size: .72rem; font-weight: 500; margin-top: 4px; line-height: 1.5; }
.prmd-ult-label {
    font-size: .62rem; font-weight: 800; letter-spacing: 1.1px;
    color: var(--p-faint); margin-bottom: 7px;
}
.prmd-ants { display: flex; flex-direction: column; gap: 8px; }
.prmd-ant {
    background: var(--p-surface);
    border: 1px solid var(--p-border);
    border-radius: 12px;
    padding: 11px 12px;
    box-shadow: var(--p-shadow-sm);
}
.prmd-ant-row { display: flex; align-items: center; gap: 9px; }
.prmd-ant-avatar {
    width: 32px; height: 32px; border-radius: 50%; flex: none;
    display: inline-flex; align-items: center; justify-content: center;
    color: #fff; font-size: .66rem; font-weight: 800;
    background: var(--p-grad-primary);
}
.prmd-ant-avatar.alt { background: linear-gradient(135deg, #0891b2, #059669); }
.prmd-ant-body { flex: 1; min-width: 0; }
.prmd-ant-toprow { display: flex; align-items: center; gap: 6px; }
.prmd-ant-autor { font-size: .76rem; font-weight: 800; color: var(--p-ink); }
.prmd-ant-quando { font-size: .62rem; font-weight: 600; color: var(--p-faint); }
.prmd-ant-tit { display: block; font-size: .66rem; font-weight: 600; color: var(--p-muted); margin-top: 1px; }
.prmd-ant-resumo { font-size: .7rem; color: var(--p-muted); line-height: 1.5; margin: 6px 0 0 41px; }
.prmd-usarbase {
    display: inline-flex; align-items: center; gap: 6px;
    margin: 8px 0 0 41px;
    padding: .32rem .65rem; border-radius: 50px;
    border: 1px solid var(--p-blue-line);
    background: var(--p-blue-soft); color: var(--p-blue);
    font-size: .68rem; font-weight: 700; cursor: pointer; transition: all .2s;
}
.prmd-usarbase:hover { background: var(--p-blue); color: #fff; border-color: var(--p-blue); }

/* Grupos por categoria */
.prmd-grp-head { display: flex; align-items: center; gap: 7px; margin-bottom: 7px; }
.prmd-grp-label { font-size: .62rem; font-weight: 800; letter-spacing: 1.1px; color: var(--p-faint); }
.prmd-grp-count {
    padding: .05rem .45rem; border-radius: 50px;
    background: var(--p-blue-soft); color: var(--p-blue);
    font-size: .62rem; font-weight: 800;
}
.prmd-grp-line { flex: 1; height: 1px; background: var(--p-border); }
.prmd-grp-itens { display: flex; flex-direction: column; gap: 7px; }

/* Item (leitura) */
.prmd-item {
    background: var(--p-surface);
    border: 1px solid var(--p-border);
    border-radius: 12px;
    padding: 10px 12px;
    box-shadow: var(--p-shadow-sm);
}
.prmd-item-row { display: flex; align-items: flex-start; gap: 8px; }
.prmd-item-ico {
    width: 26px; height: 26px; border-radius: 8px;
    background: var(--p-blue-soft); color: var(--p-blue);
    display: flex; align-items: center; justify-content: center;
    flex: none; font-size: 14px;
}
.prmd-item-body { flex: 1; min-width: 0; }
.prmd-item-nomerow { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.prmd-item-nome { font-size: .78rem; font-weight: 800; color: var(--p-ink); }
.prmd-item-star { font-size: 11px; color: var(--p-yellow); }
.prmd-item-chips { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; margin-top: 5px; }
.prmd-chip-freq {
    padding: .14rem .5rem; border-radius: 6px;
    background: var(--p-soft2); color: var(--p-ink);
    font-family: var(--p-mono); font-size: .66rem; font-weight: 700;
}
.prmd-chip-via {
    padding: .14rem .5rem; border-radius: 6px;
    background: var(--p-blue-soft); color: var(--p-blue);
    font-size: .66rem; font-weight: 700;
}
.prmd-chip-prio { padding: .14rem .5rem; border-radius: 6px; font-size: .66rem; font-weight: 700; }
.prmd-chip-prio.urg { background: var(--p-red-soft); color: var(--p-red); }
.prmd-chip-prio.sos { background: var(--p-yellow-soft); color: var(--p-yellow); }
.prmd-chip-prio.cont { background: var(--p-green-soft); color: var(--p-green); }
.prmd-item-obs {
    display: flex; gap: 6px; margin-top: 6px;
    padding: .4rem .55rem; border-radius: 8px;
    background: var(--p-soft); border: 1px solid var(--p-border-soft);
    font-size: .7rem; font-weight: 500; color: var(--p-muted); line-height: 1.45;
}
.prmd-item-obs i { color: var(--p-blue); font-size: 13px; margin-top: 1px; flex: none; }
.prmd-item-acoes { display: flex; gap: 3px; flex: none; }
.prmd-iconbtn {
    width: 26px; height: 26px; border: none; border-radius: 7px;
    background: transparent; color: var(--p-faint); cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: 14px;
    transition: all .2s;
}
.prmd-iconbtn:hover { background: var(--p-blue-soft); color: var(--p-blue); }
.prmd-iconbtn.danger:hover { background: var(--p-red-soft); color: var(--p-red); }

/* Item (edição inline) */
.prmd-edit { display: flex; flex-direction: column; gap: 8px; }
.prmd-edit-head { display: flex; align-items: center; gap: 6px; }
.prmd-edit-nome { font-size: .76rem; font-weight: 800; color: var(--p-ink); flex: 1; min-width: 0; }
.prmd-edit-badge {
    padding: .12rem .5rem; border-radius: 50px;
    background: var(--p-yellow-soft); color: var(--p-yellow);
    border: 1px solid rgba(217,119,6,.3);
    font-size: .6rem; font-weight: 800; white-space: nowrap;
}
.prmd-edit-grid { display: grid; grid-template-columns: 1fr; gap: 6px; }
.prmd-edit-grid.med { grid-template-columns: 1fr 1fr 1fr; }
.prmd-field.sm { padding: .4rem .45rem; border-radius: 8px; font-size: .72rem; }
textarea.prmd-obs.sm { padding: .45rem .55rem; border-radius: 8px; font-size: .72rem; }
.prmd-edit-acoes { display: flex; gap: 6px; justify-content: flex-end; }
.prmd-btn.sm { padding: .4rem .8rem; border-radius: 8px; font-size: .72rem; }

/* Rodapé da coluna de itens */
.prmd-list-foot {
    flex: none;
    border-top: 1px solid var(--p-border);
    padding: 12px 14px;
    display: flex; flex-direction: column; gap: 10px;
}
.prmd-list-foot .prmd-flabel { font-size: .66rem; }
.prmd-foot-acoes { display: flex; gap: 8px; justify-content: flex-end; align-items: center; }
.prmd-btn.primary .prmd-btn-spin {
    width: 14px; height: 14px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff; border-radius: 50%;
    animation: prmdSpin .8s linear infinite;
}

/* ---------- Toasts ---------- */
.prmd-toasts {
    position: absolute; top: 68px; right: 16px;
    display: flex; flex-direction: column; gap: 8px;
    z-index: 90; pointer-events: none;
}
.prmd-toast {
    display: flex; align-items: flex-start; gap: 8px;
    color: #fff; border-radius: 12px;
    padding: .6rem .9rem;
    font-size: .78rem; font-weight: 700;
    box-shadow: var(--p-shadow-lg);
    max-width: 340px; pointer-events: auto;
    animation: prmdFadeUp .3s var(--p-ease);
}
.prmd-toast i { font-size: 16px; flex: none; }
.prmd-toast span { line-height: 1.4; }
.prmd-toast.ok { background: var(--p-green); }
.prmd-toast.erro { background: var(--p-red); }
.prmd-toast.info { background: var(--p-blue); }

/* ---------- Confirmação de descarte ---------- */
.prmd-confirm-ov {
    position: absolute; inset: 0;
    background: rgba(11,31,58,.45);
    display: flex; align-items: center; justify-content: center;
    z-index: 80;
}
.prmd-confirm {
    width: 390px; max-width: calc(100% - 40px);
    background: var(--p-surface);
    border-radius: 16px;
    box-shadow: var(--p-shadow-lg);
    padding: 22px;
    animation: prmdFadeUp .3s var(--p-ease);
}
.prmd-confirm-ico {
    width: 40px; height: 40px; border-radius: 12px;
    background: var(--p-orange-soft); color: var(--p-orange);
    display: flex; align-items: center; justify-content: center;
    font-size: 20px; margin-bottom: 12px;
}
.prmd-confirm-tit { font-size: 1rem; font-weight: 800; color: var(--p-ink); }
.prmd-confirm-txt { font-size: .83rem; color: var(--p-muted); line-height: 1.6; margin: 6px 0 18px; }
.prmd-confirm-acoes { display: flex; justify-content: flex-end; gap: 8px; }
.prmd-confirm-danger {
    padding: .55rem 1rem; border-radius: 10px; border: none;
    background: var(--p-red); color: #fff;
    font-size: .8rem; font-weight: 700; cursor: pointer;
}
.prmd-confirm-danger:hover { filter: brightness(.92); }

/* ---------- "Usar como base": medicamentos fora da base ---------- */
.prmd-extras {
    width: 560px; max-width: calc(100% - 40px);
    max-height: calc(100% - 60px);
    display: flex; flex-direction: column;
    background: var(--p-surface);
    border-radius: 16px;
    box-shadow: var(--p-shadow-lg);
    padding: 22px;
    animation: prmdFadeUp .3s var(--p-ease);
}
.prmd-extras-head { display: flex; gap: 12px; align-items: flex-start; }
.prmd-extras-head .prmd-confirm-ico.extras {
    margin-bottom: 0; flex: 0 0 auto;
    background: var(--p-blue-soft); color: var(--p-blue);
}
.prmd-extras-sub { font-size: .83rem; color: var(--p-muted); line-height: 1.55; margin-top: 4px; }
.prmd-extras-toolbar { display: flex; gap: 8px; margin-top: 14px; }
.prmd-extras-mark {
    display: inline-flex; align-items: center; gap: 5px;
    border: 1px solid var(--p-border); background: var(--p-soft);
    color: var(--p-text); font-size: .72rem; font-weight: 700;
    border-radius: 8px; padding: .3rem .6rem; cursor: pointer;
}
.prmd-extras-mark:hover { background: var(--p-soft2); }
.prmd-extras-list {
    flex: 1; min-height: 0; overflow-y: auto;
    display: flex; flex-direction: column; gap: 8px;
    margin: 12px 0 16px; padding-right: 4px;
}
.prmd-extra {
    display: flex; gap: 10px; align-items: flex-start;
    border: 1px solid var(--p-border); border-radius: 12px;
    padding: 10px 12px; cursor: pointer;
    background: var(--p-soft);
    transition: border-color .15s, background .15s;
}
.prmd-extra:hover { border-color: var(--p-blue-line); }
.prmd-extra.sel { border-color: var(--p-blue); background: var(--p-blue-soft); }
.prmd-extra input { margin-top: 3px; accent-color: var(--p-blue); cursor: pointer; flex: 0 0 auto; }
.prmd-extra-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.prmd-extra-nome { font-size: .85rem; font-weight: 700; color: var(--p-ink); }
.prmd-extra-det { font-size: .76rem; color: var(--p-text); }
.prmd-extra-orig { font-size: .7rem; color: var(--p-faint); display: flex; align-items: center; gap: 4px; }
.prmd-extras-add {
    display: inline-flex; align-items: center; gap: 6px;
    padding: .55rem 1rem; border-radius: 10px; border: none;
    background: var(--p-blue); color: #fff;
    font-size: .8rem; font-weight: 700; cursor: pointer;
}
.prmd-extras-add:hover:not(:disabled) { filter: brightness(.92); }
.prmd-extras-add:disabled { opacity: .5; cursor: not-allowed; }

/* ============================================================
   TEMA ESCURO

   Mesmo padrão do modal de evoluções (evolucao-modal.css): os valores
   espelham medcare-tokens.css ([data-theme-mode="dark"]), para o modal
   ficar do MESMO tom das telas já migradas da internação — e não da
   paleta azul-marinho do protótipo. Só remapeia os tokens --p-*;
   nenhuma regra é duplicada.
   ============================================================ */
[data-theme-mode="dark"] .prmd {
    /* Superfícies: o "papel" do modal e a escada de fundos. */
    --p-surface:      #0f1a1f;
    --p-soft:         #15242a;
    --p-soft2:        #1c2e35;
    --p-border:       #213339;
    --p-border-soft:  #1c2e35;
    /* Texto em 3 níveis + tinta. */
    --p-ink:          #e8f0f2;
    --p-text:         #c3d3d8;
    --p-muted:        #a5b9c0;
    --p-faint:        #6d838b;
    /* Acentos: os softs são fundos de destaque e precisam ser escuros;
       a cor cheia clareia um pouco para manter contraste no escuro. */
    --p-blue:         #4a8fe7;
    --p-blue-light:   #6ba5f0;
    --p-blue-soft:    #112238;
    --p-blue-line:    #1d4066;
    --p-blue-line-soft: #16304d;
    --p-red:          #ee6a5f;
    --p-red-soft:     #2d1917;
    --p-orange:       #dda23f;
    --p-orange-soft:  #2c2412;
    --p-orange-line:  #4a3c1c;
    --p-green:        #33bd77;
    --p-green-soft:   #0f2a1f;
    --p-yellow:       #dda23f;
    --p-yellow-soft:  #2c2412;
    --p-grad-primary: linear-gradient(135deg, #1d4066, #2b6bb5);
    --p-focus-ring:   0 0 0 3px rgba(74,143,231,.25);
    /* Sombras precisam de mais preto no escuro para ainda separar do fundo. */
    --p-shadow-sm:    0 1px 2px rgba(0,0,0,.4);
    --p-shadow:       0 1px 2px rgba(0,0,0,.3), 0 12px 32px -12px rgba(0,0,0,.6);
    --p-shadow-lg:    0 24px 70px -24px rgba(0,0,0,.8);

    /* Overlay mais fundo para o cartão destacar do resto da tela escura. */
    background: linear-gradient(135deg, rgba(0,0,0,.72), rgba(4,14,20,.66));

    /* Scrollbar, popup de <select> e afins seguem o tema. */
    color-scheme: dark;
}
[data-theme-mode="dark"] .prmd ::-webkit-scrollbar-track { background: var(--p-soft2); }
[data-theme-mode="dark"] .prmd ::-webkit-scrollbar-thumb { background: #31474f; }
[data-theme-mode="dark"] .prmd ::-webkit-scrollbar-thumb:hover { background: #46606b; }
[data-theme-mode="dark"] .prmd ::selection { background: #1d4066; color: #e8f0f2; }
/* Chips de alergia usam "papel" branco no claro; no escuro viram vidro avermelhado. */
[data-theme-mode="dark"] .prmd-alergia { background: rgba(238,106,95,.08); }
[data-theme-mode="dark"] .prmd-confirm-ov { background: rgba(0,0,0,.55); }

/* ---------- Médico responsável (prescrição sob supervisão — perfil INTERNO) ----------
   Fica no rodapé da coluna de itens, acima das observações: é a última coisa conferida
   antes de salvar. Laranja e não azul de propósito — é declaração de responsabilidade,
   não mais um campo da prescrição. Usa as vars de acento do arquivo, então acompanha o
   tema escuro sozinho. */
.prmd-superv {
    border: 1px solid var(--p-orange-line);
    background: var(--p-orange-soft);
    border-radius: 10px;
    padding: 9px 11px 11px;
    display: flex; flex-direction: column; gap: 8px;
}
.prmd-superv-head {
    display: flex; align-items: center; gap: 7px;
    font-size: .68rem; font-weight: 800;
    text-transform: uppercase; letter-spacing: .5px;
    color: var(--p-orange);
}
.prmd-superv-head i { font-size: .95rem; }
.prmd-superv-tag {
    margin-left: auto;
    font-size: .6rem; font-weight: 700; letter-spacing: .3px;
    padding: .18rem .45rem; border-radius: 999px;
    background: var(--p-orange); color: #fff;
}
.prmd-superv-grid { display: grid; grid-template-columns: 1fr .55fr; gap: 10px; }
.prmd-superv .prmd-flabel { font-size: .63rem; color: var(--p-orange); }
.prmd-superv .prmd-field { background: var(--p-surface); }
/* Em leitura (Central reabrindo o rascunho de um interno): campo apagado, sem cara de editável. */
.prmd-superv .prmd-field[readonly] { background: var(--p-soft); color: var(--p-muted); cursor: default; }

/* ---------- Item sem posologia ----------
   Vazio não pode parecer preenchido: o chip antes mostrava "ACM" quando o campo estava em
   branco, e o médico seguia achando que tinha informado. Agora a falta se anuncia, e a linha
   inteira acende depois de uma tentativa de salvar. */
.prmd-chip-freq.prmd-chip-falta {
    background: var(--p-red-soft);
    color: var(--p-red);
    border: 1px dashed var(--p-red);
    font-weight: 800;
    display: inline-flex; align-items: center; gap: 4px;
}
.prmd-item-row.prmd-item-falta {
    background: var(--p-red-soft);
    box-shadow: inset 3px 0 0 var(--p-red);
    border-radius: 8px;
}

/* ===== Antimicrobiano (controle da CCIH) =====================================
   Bloco e chip com cor própria: o prescritor precisa VER que aquele item vai
   gerar ficha de controle e que a duração é obrigatória para o acompanhamento.
   ========================================================================== */
.prmd-atm {
    border: 1px solid #f0c36d; background: #fff8e8; border-radius: 8px;
    padding: 6px 8px; margin: 6px 0 4px;
}
.prmd-atm-head {
    display: flex; align-items: center; gap: 6px;
    font-size: .68rem; font-weight: 700; letter-spacing: .3px;
    color: #8a5a00; margin-bottom: 5px;
}
.prmd-chip-atm {
    display: inline-flex; align-items: center; gap: 3px;
    background: #fff3d6; color: #8a5a00; border: 1px solid #f0c36d;
    border-radius: 10px; padding: 1px 7px; font-size: .66rem; font-weight: 700;
}

/* Aviso de ficha incompleta do antimicrobiano: informa sem impedir de salvar. */
.prmd-atm-pend {
    display: flex; align-items: flex-start; gap: 5px; margin-top: 6px;
    font-size: .68rem; line-height: 1.35; color: #8a5a00;
    background: #fff3d6; border: 1px dashed #e0a93c; border-radius: 6px; padding: 5px 7px;
}

/* ===== Justificativa exigida pela farmácia ===================================
   Produto marcado no cadastro (/farmacia/medicamentos) como "exige justificativa":
   bloco no formulário e na edição do item, chip na lista. Só tokens --p-*, para
   o tema escuro herdar sozinho.
   ========================================================================== */
.prmd-just {
    border: 1px solid var(--p-blue-line); background: var(--p-blue-soft);
    border-radius: 8px; padding: 7px 9px; margin: 6px 0 4px;
}
.prmd-just-head {
    display: flex; align-items: center; gap: 6px;
    font-size: .68rem; font-weight: 700; letter-spacing: .3px;
    color: var(--p-blue); margin-bottom: 4px;
}
.prmd-just-orient { font-size: .7rem; color: var(--p-text); line-height: 1.4; margin-bottom: 5px; }
.prmd-chip-just {
    display: inline-flex; align-items: center; gap: 3px;
    background: var(--p-blue-soft); color: var(--p-blue); border: 1px solid var(--p-blue-line);
    border-radius: 10px; padding: 1px 7px; font-size: .66rem; font-weight: 700;
}

/* ============================================================
   MODAL "VER PRESCRIÇÃO" (.prmd.prvd) — out/2026
   Components/ModalPrescricaoDetalhe.razor. Mesmo cartão, cabeçalho e
   3 colunas do modal de prescrever; só acrescenta o que é de leitura e
   execução (médico no cabeçalho, doses, agenda do dia). Só tokens --p-*,
   então o tema escuro vem junto.
   ============================================================ */

/* Abaixo dos modais da página (aplicar dose, ajustar horário, suspender,
   corrigir). ATENÇÃO: no tema YNEX o .modal é z-index 105 (não o 1055 do
   Bootstrap) e o backdrop 104; sidebar 103, header 100. 104 cobre o chrome do
   app e deixa os modais de ação por cima. O .prmd padrão usa 2050 porque
   precisa ficar por cima de tudo. */
.prmd.prvd { z-index: 104; }

/* Quem prescreveu — um lugar só, no cabeçalho (não rola). */
.prvd-medico {
    display: flex; align-items: center; gap: 10px;
    padding: 5px 12px 5px 5px; border-radius: 50px;
    background: var(--p-soft); border: 1px solid var(--p-border);
    min-width: 0; max-width: 420px;
}
.prvd-medico-foto {
    width: 40px; height: 40px; border-radius: 50%; flex: none;
    object-fit: cover; border: 2px solid var(--p-surface);
    box-shadow: 0 0 0 1px var(--p-blue-line);
}
.prvd-medico-txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.prvd-medico-label { font-size: .58rem; font-weight: 800; letter-spacing: .9px; text-transform: uppercase; color: var(--p-faint); }
.prvd-medico-nome { font-size: .8rem; font-weight: 800; color: var(--p-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prvd-medico-reg { font-size: .66rem; font-weight: 600; color: var(--p-muted); font-family: var(--p-mono); }

.prmd-modo.prvd-modo-susp { background: var(--p-red-soft); color: var(--p-red); border: 1px solid rgba(220,38,38,.3); }
.prmd-modo.prvd-modo-fim  { background: var(--p-soft2); color: var(--p-muted); border: 1px solid var(--p-border); }

/* Coluna 1 */
.prvd-sec-label { font-size: .62rem; font-weight: 800; letter-spacing: 1.1px; color: var(--p-faint); text-transform: uppercase; margin-bottom: 9px; }
.prvd-dl { display: flex; flex-direction: column; gap: 4px; margin-top: 11px; }
.prvd-dl > div { display: flex; justify-content: space-between; gap: 10px; font-size: .72rem; }
.prvd-dl span { color: var(--p-muted); font-weight: 600; }
.prvd-dl b { color: var(--p-ink); font-weight: 700; text-align: right; }
.prvd-superv-txt { font-size: .74rem; font-weight: 700; color: var(--p-ink); }
.prvd-susp {
    background: var(--p-red-soft); border: 1px solid rgba(220,38,38,.3);
    border-radius: 14px; padding: 12px 14px; font-size: .72rem; color: var(--p-text);
}
.prvd-susp-head { display: flex; align-items: center; gap: 7px; font-size: .68rem; font-weight: 800; letter-spacing: 1px; color: var(--p-red); margin-bottom: 4px; }
.prvd-susp-motivo { margin-top: 4px; font-weight: 600; color: var(--p-ink); }
.prvd-obs-geral { font-size: .76rem; color: var(--p-text); line-height: 1.55; white-space: pre-wrap; }

/* Coluna 2: abas + itens */
.prmd-cat.prvd-cat-susp .prmd-cat-count { background: var(--p-red); }
.prmd-cat.prvd-cat-susp.act { background: var(--p-red-soft); border-color: rgba(220,38,38,.35); color: var(--p-red); }
.prvd-correcao { color: var(--p-orange); border-color: var(--p-orange-line); }
.prvd-correcao.on, .prvd-correcao:hover { background: var(--p-orange-soft); color: var(--p-orange); border-color: var(--p-orange); }

.prvd-itens { display: flex; flex-direction: column; gap: 9px; }
.prvd-item { padding: 12px 14px; }
.prvd-item .prmd-item-ico { width: 30px; height: 30px; font-size: 16px; }
.prvd-item .prmd-item-nome { font-size: .86rem; }
.prvd-item .prmd-item-acoes { align-items: center; gap: 6px; }
.prvd-item .prmd-item-obs { display: flex; }
.prvd-generico { display: block; font-size: .7rem; font-weight: 600; color: var(--p-faint); margin-top: 1px; }
.prvd-sub { font-size: .68rem; font-weight: 600; color: var(--p-faint); }
.prvd-acresc {
    font-size: .64rem; font-weight: 700; color: var(--p-green);
    background: var(--p-green-soft); border: 1px solid rgba(5,150,105,.25);
    border-radius: 50px; padding: .1rem .5rem;
}
.prvd-just i { color: var(--p-blue); }
.prvd-riscado { text-decoration: line-through; color: var(--p-muted); }
.prvd-item-susp { background: var(--p-soft); }
.prvd-item-susp .prmd-item-ico { background: var(--p-red-soft); color: var(--p-red); }
.prvd-susp-meta { display: block; font-size: .7rem; color: var(--p-muted); margin-top: 3px; }

.prvd-btn-susp {
    display: inline-flex; align-items: center; gap: 5px; white-space: nowrap;
    height: 28px; padding: 0 10px; border-radius: 8px; cursor: pointer;
    border: 1px solid rgba(220,38,38,.35); background: var(--p-surface); color: var(--p-red);
    font-size: .7rem; font-weight: 700; transition: all .2s;
}
.prvd-btn-susp:hover { background: var(--p-red); color: #fff; border-color: var(--p-red); }

/* Grade de doses do item: um chip por horário, agrupado por dia */
.prvd-doses {
    display: flex; flex-direction: column; gap: 6px;
    margin: 10px 0 0 38px; padding-top: 9px;
    border-top: 1px dashed var(--p-border);
}
.prvd-doses-dia { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.prvd-doses-lbl {
    min-width: 48px; font-size: .62rem; font-weight: 800; letter-spacing: .6px;
    text-transform: uppercase; color: var(--p-faint);
}
.prvd-dose {
    display: inline-flex; align-items: center; gap: 4px;
    height: 26px; padding: 0 9px; border-radius: 7px;
    font-family: var(--p-mono); font-size: .72rem; font-weight: 700; white-space: nowrap;
    border: 1px solid transparent; background: var(--p-soft2); color: var(--p-muted);
}
.prvd-dose i { font-size: 13px; }
button.prvd-dose { cursor: pointer; transition: filter .15s, border-color .15s; }
button.prvd-dose:hover { filter: brightness(.94); border-color: currentColor; }
.prvd-dose.feita  { background: var(--p-green-soft); color: var(--p-green); }
/* A fazer: amarelo FORTE com texto escuro (o suave sumia em monitor mal calibrado). */
.prvd-dose.afazer { background: #ffb020; color: #3d2a00; border-color: #cc8500; }
.prvd-dose.atras  { background: var(--p-red-soft); color: var(--p-red); border-color: var(--p-red); }
.prvd-dose.nada   { background: var(--p-soft2); color: var(--p-faint); }
.prvd-dose.recusa { padding: 0 7px; background: var(--p-surface); border-color: var(--p-border); color: var(--p-faint); }
.prvd-dose.recusa:hover { color: var(--p-red); }
/* Chip que desfaz/ajusta (administrador / modo correção): contorno tracejado. */
.prvd-dose.undo { border: 1px dashed var(--p-orange); }

.prvd-btn-apraz, .prvd-btn-ok {
    display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; white-space: nowrap;
    height: 30px; padding: 0 12px; border-radius: 8px; cursor: pointer;
    font-size: .74rem; font-weight: 700;
}
.prvd-btn-apraz { background: #ffb020; border: 1px solid #cc8500; color: #3d2a00; }
.prvd-btn-apraz:hover { background: #f2a512; }
.prvd-btn-ok { background: var(--p-green-soft); border: 1px solid rgba(5,150,105,.35); color: var(--p-green); }
.prvd-btn-ok:hover { background: var(--p-green); color: #fff; }

/* Coluna 3: doses de hoje (agenda) */
.prvd-agenda { display: flex; flex-direction: column; gap: 5px; }
.prvd-ag {
    display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; align-items: center; gap: 8px;
    width: 100%; text-align: left; padding: .45rem .6rem;
    border: 1px solid var(--p-border); border-left-width: 3px; border-radius: 10px;
    background: var(--p-surface); font-size: .74rem;
}
button.prvd-ag { cursor: pointer; transition: border-color .15s, background .15s; }
button.prvd-ag:hover { border-color: var(--p-blue-line); background: var(--p-blue-soft); }
.prvd-ag-hora { font-family: var(--p-mono); font-weight: 800; color: var(--p-ink); }
.prvd-ag-nome { font-weight: 600; color: var(--p-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prvd-ag-st { font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .4px; white-space: nowrap; }
.prvd-ag.feita  { border-left-color: var(--p-green); }
.prvd-ag.feita .prvd-ag-st { color: var(--p-green); }
.prvd-ag.afazer { border-left-color: #cc8500; }
.prvd-ag.afazer .prvd-ag-st { color: var(--p-yellow); }
.prvd-ag.atras  { border-left-color: var(--p-red); background: var(--p-red-soft); }
.prvd-ag.atras .prvd-ag-st { color: var(--p-red); }
.prvd-ag.outra  { border-left-color: var(--p-faint); opacity: .8; }
.prvd-ag.outra .prvd-ag-st { color: var(--p-muted); }
.prvd-lbl-atras { color: var(--p-red); }

/* Coluna 3: abas "Doses de hoje" | "Histórico" no lugar do título */
.prvd-list-head { padding: 10px 14px; }
.prvd-col-tabs { flex: 1; }
.prvd-col-tabs .prmd-ctx-tab { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: .74rem; padding: .45rem .4rem; }
.prvd-col-tabs .prmd-ctx-tab i { font-size: 15px; }
.prvd-tab-n {
    padding: 0 .42rem; border-radius: 50px; font-size: .62rem; font-weight: 800;
    background: var(--p-soft2); color: var(--p-muted);
}
.prmd-ctx-tab.act .prvd-tab-n { background: var(--p-blue); color: #fff; }

/* Histórico de aprazagem: linha do tempo, mais recente primeiro */
.prvd-tl { display: flex; flex-direction: column; }
.prvd-tl-dia {
    display: flex; align-items: center; gap: 7px; margin: 4px 0 8px;
    font-size: .62rem; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: var(--p-faint);
}
.prvd-tl-dia:not(:first-child) { margin-top: 14px; }
.prvd-tl-dia::after { content: ""; flex: 1; height: 1px; background: var(--p-border); }
.prvd-tl-dia span { padding: 0 .42rem; border-radius: 50px; background: var(--p-blue-soft); color: var(--p-blue); letter-spacing: 0; }
.prvd-tl-ev {
    position: relative; display: flex; gap: 10px; align-items: flex-start;
    padding: 0 0 12px 0; margin-left: 15px; padding-left: 22px;
    border-left: 2px solid var(--p-border);
}
.prvd-tl-ev:last-child { border-left-color: transparent; }
.prvd-tl-foto {
    position: absolute; left: -16px; top: 0;
    width: 30px; height: 30px; border-radius: 50%; object-fit: cover;
    border: 2px solid var(--p-surface); box-shadow: 0 0 0 2px var(--p-border);
    font-size: .62rem;
}
.prvd-tl-ev.ok  .prvd-tl-foto { box-shadow: 0 0 0 2px var(--p-green); }
.prvd-tl-ev.rec .prvd-tl-foto { box-shadow: 0 0 0 2px var(--p-red); }
.prvd-tl-body {
    flex: 1; min-width: 0;
    background: var(--p-surface); border: 1px solid var(--p-border); border-radius: 10px;
    padding: .45rem .6rem; box-shadow: var(--p-shadow-sm);
}
.prvd-tl-l1 { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.prvd-tl-hora { font-family: var(--p-mono); font-size: .8rem; font-weight: 800; color: var(--p-ink); }
.prvd-tl-st { font-size: .6rem; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; padding: .08rem .45rem; border-radius: 50px; background: var(--p-soft2); color: var(--p-muted); }
.prvd-tl-ev.ok  .prvd-tl-st { background: var(--p-green-soft); color: var(--p-green); }
.prvd-tl-ev.rec .prvd-tl-st { background: var(--p-red-soft); color: var(--p-red); }
.prvd-tl-prev { font-family: var(--p-mono); font-size: .64rem; color: var(--p-faint); }
.prvd-tl-item { font-size: .76rem; font-weight: 700; color: var(--p-ink); margin-top: 2px; }
.prvd-tl-quem { font-size: .7rem; font-weight: 600; color: var(--p-muted); }
.prvd-tl-det { font-size: .68rem; color: var(--p-text); margin-top: 3px; padding: .25rem .45rem; border-radius: 6px; background: var(--p-soft); }

/* Painel "Gerar horários" dentro do card do item (substitui o modal separado) */
.prvd-apraz {
    margin: 10px 0 0 38px; padding: 12px 14px;
    border: 1.5px solid var(--p-blue-light); border-radius: 12px;
    background: var(--p-surface); box-shadow: var(--p-shadow);
    display: flex; flex-direction: column; gap: 10px;
    animation: prmdFadeUp .25s var(--p-ease);
}
.prvd-apraz-head { display: flex; align-items: center; gap: 8px; }
.prvd-apraz-head i { color: var(--p-blue); font-size: 16px; }
.prvd-apraz-head b { font-size: .84rem; font-weight: 800; color: var(--p-ink); }
.prvd-apraz-head .prvd-sub { margin-left: auto; }
.prvd-apraz-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: start; }
.prvd-slots { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 7px; }
.prvd-slot {
    display: inline-flex; align-items: baseline; gap: 4px;
    height: 30px; padding: 0 10px; border-radius: 8px; cursor: pointer;
    border: 1px solid var(--p-border); background: var(--p-surface); color: var(--p-ink);
    font-family: var(--p-mono); font-size: .76rem; font-weight: 700; transition: all .15s;
}
.prvd-slot small { font-family: var(--p-font); font-size: .58rem; font-weight: 700; color: var(--p-faint); }
.prvd-slot:hover { border-color: var(--p-blue-line); background: var(--p-blue-soft); }
.prvd-slot.act { border-color: var(--p-blue); background: var(--p-blue); color: #fff; }
.prvd-slot.act small { color: rgba(255,255,255,.8); }
.prvd-apraz-data { max-width: 230px; }
.prvd-apraz-erro { display: flex; gap: 5px; align-items: center; margin-top: 5px; font-size: .68rem; font-weight: 600; color: var(--p-red); }
.prvd-stepper {
    display: inline-flex; align-items: center; gap: 2px; padding: 3px;
    border: 1px solid var(--p-border); border-radius: 10px; background: var(--p-soft);
}
.prvd-stepper button {
    width: 30px; height: 30px; border: none; border-radius: 8px; cursor: pointer;
    background: var(--p-surface); color: var(--p-ink); font-size: 15px;
    display: flex; align-items: center; justify-content: center; box-shadow: var(--p-shadow-sm);
}
.prvd-stepper button:disabled { opacity: .4; cursor: default; }
.prvd-stepper span { min-width: 34px; text-align: center; font-family: var(--p-mono); font-size: .95rem; font-weight: 800; color: var(--p-ink); }
.prvd-apraz-prev { display: flex; flex-direction: column; gap: 6px; padding-top: 9px; border-top: 1px dashed var(--p-border); }
.prvd-dose.novo { background: var(--p-blue-soft); color: var(--p-blue); border-color: var(--p-blue-line); }
.prvd-apraz-acoes { display: flex; justify-content: flex-end; gap: 8px; }

/* Rodapé: ações em grade (2 por linha), nunca quebrando o rótulo */
.prvd-acoes-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.prvd-acoes-grid .prmd-btn { justify-content: center; white-space: nowrap; padding: .5rem .6rem; font-size: .74rem; }
.prmd-btn.outline.prvd-btn-danger { color: var(--p-red); border-color: rgba(220,38,38,.35); }
.prmd-btn.outline.prvd-btn-danger:hover { background: var(--p-red); color: #fff; border-color: var(--p-red); }

/* Telas menores: as colunas laterais estreitam (a de contexto tem as ALERGIAS —
   não some; quem vai aplicar precisa vê-las). */
@media (max-width: 1199.98px) {
    .prmd.prvd .prmd-side { width: 240px; }
    .prmd.prvd .prmd-list { width: 340px; }
}
@media (max-width: 899.98px) {
    .prmd.prvd .prmd-body { flex-direction: column; overflow-y: auto; }
    .prmd.prvd .prmd-list { width: auto; border-left: 0; border-top: 1px solid var(--p-border); }
    .prmd.prvd .prvd-medico-txt { display: none; }
}

/* ============================================================
   CONSULTA EM MODAL (.prmd.pcon) — out/2026
   Pages/Consulta/Index.razor. Mesmo cartão, cabeçalho e 3 colunas do
   modal de prescrição: contexto | etapas | "nesta consulta" + finalizar.
   Corpo de texto maior que o do .prmd (pedido dos médicos: +15% na consulta).
   Só tokens --p-*, então o tema escuro vem junto.
   ============================================================ */
.prmd.pcon { z-index: 104; padding: 12px; }   /* modais do tema (105), Zanna (1045) e Escores (1060+) por cima */
.pcon .prmd-card.pcon-card { width: min(1680px, 100%); height: calc(100vh - 24px); }
.pcon .prmd-side { width: 290px; }
.pcon .prmd-list.pcon-list { width: 340px; }
.pcon-back { margin-left: -6px; }
.pcon-erro-ico { font-size: 34px; color: var(--p-red); }
.pcon-timer {
    display: inline-flex; align-items: center; gap: 5px; padding: .26rem .65rem; border-radius: 50px;
    background: var(--p-blue-soft); color: var(--p-blue); border: 1px solid var(--p-blue-line-soft);
    font-family: var(--p-mono); font-size: .74rem; font-weight: 800;
}

/* Coluna 1 */
.pcon-pac .avatar { flex: none; }
.pcon-alerta { padding: 10px 12px; }
.pcon-alerta-txt { margin-top: 6px; font-size: .7rem; line-height: 1.5; color: var(--p-red); }
.pcon-sec-head { display: flex; align-items: center; gap: 7px; margin-bottom: 8px; }
.pcon-sec-label { font-size: .62rem; font-weight: 800; letter-spacing: 1.1px; color: var(--p-faint); text-transform: uppercase; }
.pcon-modelos .pcon-sec-label, .prmd-scard > .pcon-sec-label { display: block; margin-bottom: 8px; }
.pcon-risco { padding: .1rem .5rem; border-radius: 50px; font-size: .6rem; font-weight: 800; text-transform: uppercase; letter-spacing: .4px; }
/* Manchester: vermelho, laranja, amarelo, verde, azul */
.pcon-risco-emergencia    { background: #dc2626; color: #fff; }
.pcon-risco-muito_urgente { background: #ea580c; color: #fff; }
.pcon-risco-urgente       { background: #facc15; color: #3d2a00; }
.pcon-risco-pouco_urgente { background: #16a34a; color: #fff; }
.pcon-risco-nao_urgente   { background: #2563eb; color: #fff; }
.pcon-link {
    display: inline-flex; align-items: center; gap: 3px; border: none; background: transparent; cursor: pointer;
    padding: 0; font-size: .7rem; font-weight: 700; color: var(--p-blue);
}
.pcon-link:hover { text-decoration: underline; }
.pcon-queixa { font-size: .74rem; color: var(--p-text); line-height: 1.5; margin-bottom: 8px; }
.pcon-queixa b { color: var(--p-ink); }
.pcon-modelos .form-select, .pcon-modelos .form-control { font-size: .74rem !important; }
.pcon-tools { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.pcon-tool, .pcon .esc-trigger-cp {
    display: flex; align-items: center; gap: 6px; width: 100%;
    height: 34px; padding: 0 9px; border-radius: 9px; cursor: pointer;
    border: 1px solid var(--p-border); background: var(--p-surface); color: var(--p-text);
    font-family: var(--p-font); font-size: .72rem; font-weight: 700; white-space: nowrap; transition: all .2s;
}
.pcon-tool i, .pcon .esc-trigger-cp i { font-size: 15px; color: var(--p-blue); }
.pcon-tool:hover, .pcon .esc-trigger-cp:hover { border-color: var(--p-blue-line); background: var(--p-blue-soft); color: var(--p-blue); }
.pcon-tool-escores { min-width: 0; }
.pcon-tool-escores .esc-trigger-wrap { width: 100%; }
.pcon-badge { margin-left: auto; padding: 0 .4rem; border-radius: 50px; background: var(--p-ink); color: var(--p-surface); font-size: .6rem; font-weight: 800; }

/* Coluna 2: etapas */
.pcon-main { padding: 14px 18px 0; gap: 12px; }
.pcon-etapas .prmd-cat { height: 38px; font-size: .82rem; }
.pcon-etapa-n {
    width: 20px; height: 20px; border-radius: 50%; flex: none;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--p-soft2); color: var(--p-muted); font-size: .66rem; font-weight: 800;
}
.prmd-cat.act .pcon-etapa-n { background: var(--p-blue); color: #fff; }
.pcon-cat-ok { color: var(--p-green); font-size: 14px; }
.prmd-cat.pcon-cat-erro { border-color: var(--p-red); color: var(--p-red); }
.prmd-cat.pcon-cat-erro .pcon-etapa-n { background: var(--p-red); color: #fff; }
.pcon-etapa-corpo { flex: 1; display: flex; flex-direction: column; gap: 12px; }
.pcon-etapa-tit {
    display: flex; align-items: center; gap: 8px; margin-top: 6px;
    font-size: .86rem; font-weight: 800; color: var(--p-ink);
    padding-bottom: 6px; border-bottom: 1px solid var(--p-border);
}
.pcon-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.pcon-f { display: flex; flex-direction: column; min-width: 0; }
.pcon-full { grid-column: 1 / -1; }
.pcon .pcon-f .prmd-flabel { margin-bottom: 5px; font-size: .68rem; }
/* +15% no texto clínico (pedido dos médicos) */
textarea.prmd-field.pcon-ta {
    resize: vertical; line-height: 1.5; font-size: .92rem; font-weight: 500; min-height: 64px;
}
.prmd-field.pcon-in { font-size: .9rem; font-weight: 600; height: 40px; }
.prmd-field.pcon-invalido { border-color: var(--p-red); box-shadow: 0 0 0 3px rgba(220,38,38,.12); }
.pcon-erro { margin-top: 4px; font-size: .7rem; font-weight: 700; color: var(--p-red); }
.pcon-dica { display: inline-flex; align-items: center; gap: 5px; margin-top: 4px; font-size: .68rem; font-weight: 600; color: var(--p-faint); }
.pcon-cid { position: relative; }
.pcon-cid-lista {
    position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 30;
    max-height: 240px; overflow-y: auto;
    background: var(--p-surface); border: 1px solid var(--p-border); border-radius: 10px;
    box-shadow: var(--p-shadow-lg); padding: 4px;
}
.pcon-cid-op {
    display: flex; gap: 8px; width: 100%; text-align: left; padding: .45rem .55rem;
    border: none; background: transparent; border-radius: 7px; cursor: pointer;
    font-size: .78rem; color: var(--p-text);
}
.pcon-cid-op b { font-family: var(--p-mono); color: var(--p-blue); flex: none; }
.pcon-cid-op:hover { background: var(--p-blue-soft); }
.pcon-ia {
    display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px;
    background: linear-gradient(135deg, var(--p-blue-soft), var(--p-surface));
    border: 1px solid var(--p-blue-line-soft);
}
.pcon-ia-ico {
    width: 36px; height: 36px; border-radius: 10px; flex: none;
    display: flex; align-items: center; justify-content: center;
    background: var(--p-grad-primary); color: #fff; font-size: 18px;
}
.pcon-ia-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; font-size: .7rem; color: var(--p-muted); line-height: 1.45; }
.pcon-ia-txt b { font-size: .8rem; color: var(--p-ink); }
.pcon-decisao { border: 1px solid var(--p-border); border-radius: 12px; padding: 12px 14px; background: var(--p-soft); }
.pcon-decisao-tit { display: flex; align-items: center; gap: 7px; margin-bottom: 10px; font-size: .74rem; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; color: var(--p-red); }
.pcon-decisao .prmd-field { background: var(--p-surface); }
.pcon-intern { margin-bottom: 8px; }
.pcon-intern-acoes { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.pcon-ok { display: inline-flex; align-items: center; gap: 5px; font-size: .74rem; font-weight: 700; color: var(--p-green); }
.prmd-btn.pcon-btn-warn { color: var(--p-orange); border-color: var(--p-orange-line); }
.prmd-btn.pcon-btn-warn:hover { background: var(--p-orange-soft); border-color: var(--p-orange); color: var(--p-orange); }
.pcon-nav {
    position: sticky; bottom: 0; z-index: 5;
    display: flex; align-items: center; gap: 8px;
    margin: 0 -18px; padding: 10px 18px;
    background: var(--p-surface); border-top: 1px solid var(--p-border);
}

/* Coluna 3: o que a consulta produz */
.pcon-bloco { display: flex; flex-direction: column; gap: 7px; }
.pcon-acoes { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.pcon-acoes.tres { grid-template-columns: 1fr 1fr 1fr; }
.pcon-acao {
    display: flex; align-items: center; gap: 8px; min-width: 0; text-align: left;
    padding: .5rem .6rem; border-radius: 10px; cursor: pointer;
    border: 1px solid var(--p-border); background: var(--p-surface); transition: all .18s;
}
/* Todos os blocos com a MESMA altura (47px): os de 3 colunas empilhavam ícone + título +
   subtítulo e ficavam com 79px, o que fazia a coluna rolar em tela menor. Neles o ícone vai
   em cima do título e o subtítulo vira dica do mouse (title) — 100px não comportam ícone ao lado. */
.pcon-acao { height: 47px; }
.pcon-acoes.tres .pcon-acao {
    flex-direction: column; align-items: center; justify-content: center;
    gap: 2px; padding: .3rem .35rem; text-align: center;
}
.pcon-acoes.tres .pcon-acao i { font-size: 16px; }
.pcon-acoes.tres .pcon-acao span { align-items: center; }
.pcon-acoes.tres .pcon-acao b { font-size: .72rem; }
.pcon-acoes.tres .pcon-acao small { display: none; }
.pcon-acao i { font-size: 18px; color: var(--p-blue); flex: none; }
.pcon-acao span { display: flex; flex-direction: column; min-width: 0; }
.pcon-acao b { font-size: .76rem; font-weight: 800; color: var(--p-ink); white-space: nowrap; }
.pcon-acao small { font-size: .62rem; font-weight: 600; color: var(--p-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pcon-acao:hover { border-color: var(--p-blue-line); background: var(--p-blue-soft); }
.pcon-acao-verde { border-color: rgba(5,150,105,.35); background: var(--p-green-soft); }
.pcon-acao-verde i, .pcon-acao-verde b { color: var(--p-green); }
.pcon-acao-verde:hover { border-color: var(--p-green); background: var(--p-green-soft); }
.pcon-acao-ambar { border-color: var(--p-orange-line); background: var(--p-orange-soft); }
.pcon-acao-ambar i, .pcon-acao-ambar b { color: var(--p-orange); }
.pcon-acao-ambar:hover { border-color: var(--p-orange); background: var(--p-orange-soft); }
.pcon-doc {
    display: flex; align-items: center; gap: 8px; padding: .35rem .55rem;
    border-radius: 9px; background: var(--p-surface); border: 1px solid var(--p-border-soft);
    font-size: .72rem; color: var(--p-text);
}
.pcon-doc > i { color: var(--p-blue); font-size: 14px; }
.pcon-doc-nome { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.pcon-foot { justify-content: space-between; }
.prmd-btn.pcon-finalizar { width: 100%; justify-content: center; padding: .75rem 1rem; font-size: .88rem; background: linear-gradient(135deg, #047857, #059669); box-shadow: 0 10px 22px -10px rgba(5,150,105,.6); }

/* Telas menores: as laterais estreitam; abaixo de 1100 o formulário vira uma coluna. */
@media (max-width: 1279.98px) {
    .pcon .prmd-side { width: 250px; }
    .pcon .prmd-list.pcon-list { width: 300px; }
}
@media (max-width: 1099.98px) {
    .pcon-grid { grid-template-columns: 1fr; }
}
@media (max-width: 899.98px) {
    .pcon .prmd-body { flex-direction: column; overflow-y: auto; }
    .pcon .prmd-side, .pcon .prmd-list.pcon-list { width: auto; border: 0; border-top: 1px solid var(--p-border); }
    .pcon .prmd-main { overflow: visible; }
}

/* Modos Consulta/Ambulatório do modal de prescrever: sem o campo Prioridade (só existe na
   internação), o formulário do medicamento fica em 3 colunas. */
.prmd-form-grid.med.sem-prio { grid-template-columns: 1fr 1fr .7fr; }
.prmd-field.prmd-ro { background: var(--p-soft); color: var(--p-muted); display: flex; align-items: center; }
/* Aba que abre outro fluxo (ambulatório: procedimento/exame de imagem) */
.prmd-cat .prmd-cat-ext { font-size: 12px; opacity: .55; margin-left: -2px; }

/* ---------- Modal de prescrever (.prmd-rx): abas numa linha só ----------
   Medicamentos / Procedimentos / Exames de imagem + Modelos quebravam em duas linhas
   em 1366 (a coluna do meio tinha ~574px para ~577px de abas). Sem quebra de linha e
   sem abreviar: as colunas laterais estreitam até 1500px de tela. (Sem overflow na
   faixa: o popover de Modelos abre para baixo de dentro dela e seria cortado.) */
.prmd-rx .prmd-cats { flex-wrap: nowrap; }
.prmd-rx .prmd-cat, .prmd-rx .prmd-modelos-wrap, .prmd-rx .prmd-modelos-btn { flex: none; white-space: nowrap; }
@media (max-width: 1499.98px) {
    .prmd-rx .prmd-side { width: 256px; }
    .prmd-rx .prmd-list { width: 372px; }
}
@media (max-width: 1319.98px) {
    .prmd-rx .prmd-side { width: 232px; }
    .prmd-rx .prmd-list { width: 340px; }
    .prmd-rx .prmd-cat { padding: 0 10px; gap: 6px; }
}

/* ---------- "Ver prescrição" (.prvd): abas numa linha só ----------
   Medicamentos / Dietas / Cuidados / Suspensos + Modo correção passavam da largura em
   1366 e quebravam. Mesma regra do modal de prescrever: sem quebra, sem abreviar,
   colunas laterais um pouco mais estreitas até 1500px. */
.prmd.prvd .prmd-cats { flex-wrap: nowrap; }
.prmd.prvd .prmd-cat, .prmd.prvd .prvd-correcao { flex: none; white-space: nowrap; }
@media (max-width: 1499.98px) {
    .prmd.prvd .prmd-side { width: 256px; }
    .prmd.prvd .prmd-list { width: 372px; }
}
@media (max-width: 1319.98px) {
    .prmd.prvd .prmd-side { width: 232px; }
    .prmd.prvd .prmd-list { width: 340px; }
    .prmd.prvd .prmd-cat, .prmd.prvd .prvd-correcao { padding: 0 10px; }
}

/* ============================================================
   CASCA PADRÃO DOS MODAIS DA CONSULTA (.prmd.pmod) — out/2026
   Components/ModalPadrao.razor. Mesmo cartão/cabeçalho do modal de prescrição;
   corpo rolável e rodapé de ações. Camada 1050: acima da consulta (104) e dos
   modais do tema (105); abaixo do SweetAlert (1060) e do modal de prescrever (2050).
   ============================================================ */
.prmd.pmod { z-index: 1050; }
.pmod .prmd-card.pmod-card { width: min(var(--pmod-w, 980px), 100%); height: auto; max-height: calc(100vh - 36px); }
.pmod.pmod-alto .prmd-card.pmod-card { height: calc(100vh - 36px); }
.pmod-body { flex: 1; min-height: 0; overflow-y: auto; padding: 16px 18px; display: flex; flex-direction: column; gap: 12px; }
.pmod-body.pmod-body-flush { padding: 0; gap: 0; }
.pmod-foot {
    flex: none; display: flex; align-items: center; justify-content: flex-end; gap: 8px;
    padding: 12px 18px; border-top: 1px solid var(--p-border); background: var(--p-soft);
}
.pmod-foot .prmd-flex1 { flex: 1; }
.pmod-iframe { flex: 1; width: 100%; min-height: 0; border: 0; background: #fff; }
.pmod a.prmd-btn { text-decoration: none; }

/* ============================================================
   EXAMES ANTERIORES NA CONSULTA (.pexa-*) — out/2026
   Components/ExamesAnterioresPaciente.razor. Só resultados (laboratório e imagem),
   mesmas fontes da aba "Exames & Procedimentos" da internação: cartão na coluna
   esquerda da consulta, aviso flutuante ao iniciar/continuar e o modal (casca .pmod).
   ============================================================ */
/* Cartão da coluna esquerda */
.pexa-card.alerta { border-color: rgba(220,38,38,.28); }
.pexa-nums { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.pexa-num {
    display: flex; align-items: center; gap: 6px; padding: 7px 9px; border-radius: 10px; cursor: pointer;
    background: var(--p-soft); border: 1px solid var(--p-border); color: var(--p-text); text-align: left;
    transition: border-color .15s, background .15s;
}
.pexa-num:hover { border-color: var(--p-blue-line); background: var(--p-blue-soft); }
.pexa-num i { font-size: 15px; color: var(--p-blue); }
.pexa-num b { font-size: .95rem; font-weight: 800; color: var(--p-ink); line-height: 1.1; }
.pexa-num span { font-size: .62rem; font-weight: 700; color: var(--p-muted); }
.pexa-card-alt { display: flex; align-items: center; gap: 5px; margin-top: 8px; font-size: .68rem; font-weight: 700; color: var(--p-red); }
.pexa-card-alt i { font-size: 14px; }
.pexa-card-ult { margin-top: 5px; font-size: .66rem; color: var(--p-muted); }
.pexa-vazio-card { display: flex; align-items: center; gap: 7px; font-size: .7rem; color: var(--p-muted); }
.pexa-vazio-card .prmd-spin, .pexa-buscando .prmd-spin { width: 13px; height: 13px; border-width: 2px; flex: none; }

/* Aviso flutuante (consulta iniciada/continuada) — no alto, sobre a consulta (104) */
.prmd.pexa-aviso {
    inset: auto; top: 76px; left: 50%; transform: translateX(-50%);
    width: min(680px, calc(100vw - 32px)); padding: 14px 16px; z-index: 1040;
    display: flex; align-items: center; gap: 12px; justify-content: flex-start;
    background: var(--p-surface); border: 1px solid var(--p-blue-line); border-radius: 16px;
    box-shadow: var(--p-shadow-lg); animation: pexaAviso .4s var(--p-ease);
}
@keyframes pexaAviso { from { opacity: 0; transform: translate(-50%, -10px); } to { opacity: 1; transform: translate(-50%, 0); } }
.pexa-aviso-ico {
    width: 42px; height: 42px; border-radius: 12px; flex: none; display: flex; align-items: center; justify-content: center;
    background: var(--p-grad-primary); color: #fff; font-size: 21px;
}
.pexa-aviso-txt { flex: 1; min-width: 0; }
.pexa-aviso-tit { font-size: .86rem; font-weight: 800; color: var(--p-ink); }
.pexa-aviso-sub { font-size: .74rem; color: var(--p-text); }
.pexa-aviso-alt { display: flex; align-items: center; gap: 5px; margin-top: 2px; font-size: .72rem; font-weight: 700; color: var(--p-red); }
.pexa-aviso-acts { display: flex; gap: 6px; flex: none; }

/* Modal: duas colunas (laboratório | imagem) */
.pexa .pmod-body { background: var(--p-soft); }
.pexa-falha {
    display: flex; gap: 9px; padding: 10px 12px; border-radius: 12px; font-size: .74rem; line-height: 1.5;
    background: var(--p-yellow-soft); border: 1px solid rgba(217,119,6,.35); color: #78350f;
}
.pexa-falha i { font-size: 18px; color: var(--p-yellow); flex: none; }
.pexa-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
.pexa-col { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.pexa-colhead { display: flex; align-items: center; gap: 7px; font-size: .78rem; font-weight: 800; color: var(--p-ink); }
.pexa-colhead > i { font-size: 17px; color: var(--p-blue); }
.pexa-count { padding: 0 .5rem; border-radius: 50px; background: var(--p-blue-soft); color: var(--p-blue); font-size: .68rem; font-weight: 800; }
.pexa-buscando { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; font-size: .66rem; font-weight: 600; color: var(--p-muted); }

.pexa-alterados { background: var(--p-surface); border: 1px solid rgba(220,38,38,.25); border-radius: 14px; padding: 11px 12px; }
.pexa-alterados-head { display: flex; align-items: center; gap: 6px; margin-bottom: 9px; font-size: .7rem; font-weight: 800; color: var(--p-red); text-transform: uppercase; letter-spacing: .5px; }
.pexa-alterados-head .pcon-link { text-transform: none; letter-spacing: 0; }
.pexa-analitos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 7px; }
.pexa-analito {
    display: flex; flex-direction: column; gap: 1px; padding: 7px 9px; border-radius: 10px; cursor: pointer; text-align: left;
    background: var(--p-red-soft); border: 1px solid rgba(220,38,38,.18); color: var(--p-text);
}
.pexa-analito.baixo { background: var(--p-blue-soft); border-color: var(--p-blue-line-soft); }
.pexa-analito:hover { border-color: var(--p-red); }
.pexa-analito.baixo:hover { border-color: var(--p-blue); }
.pexa-analito-nome { font-size: .68rem; font-weight: 700; color: var(--p-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pexa-analito-val { display: flex; align-items: baseline; gap: 3px; font-size: .92rem; font-weight: 800; color: var(--p-red); }
.pexa-analito.baixo .pexa-analito-val { color: var(--p-blue); }
.pexa-analito-val i { font-size: 13px; align-self: center; }
.pexa-analito-val small { font-size: .62rem; font-weight: 600; color: var(--p-muted); }
.pexa-analito-ref { font-size: .62rem; color: var(--p-muted); }

.pexa-list { display: flex; flex-direction: column; background: var(--p-surface); border: 1px solid var(--p-border); border-radius: 14px; overflow: hidden; }
.pexa-res { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-bottom: 1px solid var(--p-border-soft); }
.pexa-res:last-child { border-bottom: none; }
.pexa-res > .prmd-btn, .pexa-res-acts { flex: none; }
.pexa-res-acts { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.pexa-tile {
    position: relative; width: 46px; height: 46px; flex: none; border-radius: 10px; overflow: hidden; padding: 0;
    display: flex; align-items: center; justify-content: center; font-size: 20px;
    background: var(--p-blue-soft); border: 1px solid var(--p-blue-line-soft); color: var(--p-blue);
}
button.pexa-tile { cursor: pointer; }
.pexa-tile.pdf { background: var(--p-red-soft); border-color: rgba(220,38,38,.2); color: var(--p-red); }
.pexa-tile.img { background: #0b1220; border-color: #0b1220; color: #94a3b8; }
.pexa-tile.img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pexa-tile.img.off img { display: none; }
.pexa-res-body { flex: 1; min-width: 0; }
.pexa-res-tit { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: .78rem; font-weight: 700; color: var(--p-ink); line-height: 1.35; }
.pexa-res-meta { font-size: .68rem; color: var(--p-muted); margin-top: 1px; }
.pexa-res-meta b { color: var(--p-text); font-weight: 700; }
.pexa-res-texto { margin-top: 6px; padding: 8px 10px; border-radius: 8px; background: var(--p-soft); border: 1px solid var(--p-border); font-size: .74rem; color: var(--p-ink); white-space: pre-wrap; }
.pexa-res-ref { margin-top: 4px; font-size: .66rem; color: var(--p-muted); white-space: normal; }
.pexa-pill { padding: .05rem .5rem; border-radius: 50px; font-size: .6rem; font-weight: 800; white-space: nowrap; }
.pexa-pill.warn { background: var(--p-yellow-soft); color: var(--p-yellow); border: 1px solid rgba(217,119,6,.3); }
.pexa-pill.ok { background: var(--p-green-soft); color: var(--p-green); border: 1px solid rgba(22,163,74,.25); }
.pexa-vazio { display: flex; align-items: center; gap: 8px; padding: 18px 14px; font-size: .74rem; color: var(--p-muted); }
.pexa-vazio i { font-size: 18px; color: var(--p-faint); }
.pexa-pardini {
    display: flex; align-items: center; gap: 7px; padding: 9px 12px; border-radius: 12px; font-size: .72rem; font-weight: 600;
    background: var(--p-surface); border: 1px dashed var(--p-border); color: var(--p-muted);
}
.pexa-pardini i { font-size: 15px; color: var(--p-blue); }

/* Resultado do WorkLab (páginas do PDF como imagem) */
.pexa-pdf { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.pexa-pdf img { width: 100%; max-width: 900px; background: #fff; border: 1px solid var(--p-border); border-radius: 6px; box-shadow: var(--p-shadow-sm); }

/* Camadas: modal aninhado por cima do de exames; componentes Bootstrap (visualizador
   DICOM, gráfico de evolução) por cima de ambos — o padrão do tema é 105. */
.prmd.pmod.pexa-sobre { z-index: 1052; }
.pmod-acima .modal { z-index: 1056 !important; }
.pmod-acima .modal-backdrop { z-index: 1055 !important; }

/* ============================================================
   FORMULÁRIOS DOS MODAIS DA CONSULTA (.pmod-*) — out/2026
   Peças comuns para os modais abertos de "Nesta consulta" e "Ferramentas" (receita,
   exames, documentos, encaminhamentos...): faixa do paciente, seções em cartão, grade
   de 12 colunas, checkbox em chip, tabela de itens, avisos. Campos usam .prmd-field e
   rótulos .prmd-flabel, como o modal de prescrição.
   ============================================================ */
.pmod-pac {
    display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 12px;
    background: var(--p-surface); border: 1px solid var(--p-border); box-shadow: var(--p-shadow-sm);
}
.pmod-pac .prmd-flex1 { flex: 1; }
.pmod-sec {
    background: var(--p-surface); border: 1px solid var(--p-border); border-radius: 14px;
    box-shadow: var(--p-shadow-sm); padding: 13px 14px;
}
.pmod-sec.destaque { border-color: var(--p-blue-line); }
.pmod-sec-tit {
    display: flex; align-items: center; gap: 7px; margin-bottom: 10px;
    font-size: .64rem; font-weight: 800; letter-spacing: 1px; color: var(--p-muted); text-transform: uppercase;
}
.pmod-sec-tit i { font-size: 15px; color: var(--p-blue); }
.pmod-sec-tit.perigo, .pmod-sec-tit.perigo i { color: var(--p-red); }
.pmod-sec-tit .prmd-flex1 { flex: 1; }
.pmod-bloco > .pmod-sec-tit { margin-bottom: 7px; }
.pmod-row { display: flex; align-items: center; gap: 8px; }
.pmod-grow { flex: 1; min-width: 0; }
.pmod-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 10px 12px; }
.pmod-f { display: flex; flex-direction: column; min-width: 0; }
.pmod-c2 { grid-column: span 2; } .pmod-c3 { grid-column: span 3; } .pmod-c4 { grid-column: span 4; }
.pmod-c5 { grid-column: span 5; } .pmod-c6 { grid-column: span 6; } .pmod-c7 { grid-column: span 7; }
.pmod-c8 { grid-column: span 8; } .pmod-c9 { grid-column: span 9; } .pmod-c12 { grid-column: 1 / -1; }
.pmod-fim { justify-content: flex-end; }
.pmod-acoes { display: flex; justify-content: flex-end; gap: 8px; }
.pmod-req { color: var(--p-red); }
.pmod-opc { font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--p-faint); }
.pmod-hint { margin-top: 4px; font-size: .66rem; color: var(--p-faint); }
.pmod textarea.prmd-field { resize: vertical; line-height: 1.5; font-weight: 500; }
.pmod .prmd-field:disabled { background: var(--p-soft); color: var(--p-muted); cursor: not-allowed; }
.pmod fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }

/* Checkbox/opção em chip */
.pmod-check {
    display: inline-flex; align-items: center; gap: 7px; min-height: 37px; padding: .4rem .7rem; margin: 0;
    border: 1px solid var(--p-border); border-radius: 10px; background: var(--p-surface); cursor: pointer;
    font-size: .74rem; font-weight: 700; color: var(--p-text); user-select: none; line-height: 1.3;
}
.pmod-check input { width: 16px; height: 16px; margin: 0; flex: none; accent-color: var(--p-blue); cursor: pointer; }
.pmod-check i { font-size: 15px; }
.pmod-check.on { border-color: var(--p-blue-line); background: var(--p-blue-soft); color: var(--p-blue); }
.pmod-check.perigo.on { border-color: rgba(220,38,38,.4); background: var(--p-red-soft); color: var(--p-red); }
.pmod-check.perigo input { accent-color: var(--p-red); }
.pmod-check.disabled { opacity: .6; cursor: not-allowed; }
.pmod-check small { display: block; font-weight: 600; color: var(--p-faint); font-size: .64rem; }

/* Seletor segmentado (opções exclusivas) */
.pmod-seg { display: flex; gap: 6px; flex-wrap: wrap; }
.pmod-seg > button {
    flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 40px;
    padding: .45rem .8rem; border-radius: 10px; border: 1px solid var(--p-border); background: var(--p-surface);
    font-size: .76rem; font-weight: 700; color: var(--p-text); cursor: pointer; white-space: nowrap;
}
.pmod-seg > button:hover { border-color: var(--p-blue-line); color: var(--p-blue); }
.pmod-seg > button.act { background: var(--p-blue-soft); border-color: var(--p-blue); color: var(--p-blue); box-shadow: inset 0 0 0 1px var(--p-blue); }
.pmod-seg > button i { font-size: 16px; }

/* Tabela de itens */
.pmod-tablewrap { border: 1px solid var(--p-border); border-radius: 12px; overflow: hidden; background: var(--p-surface); }
.pmod-tablewrap.perigo { border-color: rgba(220,38,38,.35); }
.pmod-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .78rem; }
.pmod-table th {
    padding: 7px 9px; text-align: left; background: var(--p-soft); border-bottom: 1px solid var(--p-border);
    font-size: .6rem; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; color: var(--p-muted);
}
.pmod-tablewrap.perigo .pmod-table th { background: var(--p-red-soft); color: var(--p-red); }
.pmod-table td { padding: 8px 9px; border-bottom: 1px solid var(--p-border-soft); color: var(--p-text); vertical-align: middle; }
.pmod-table tr:last-child td { border-bottom: none; }
.pmod-table td b { color: var(--p-ink); font-weight: 700; }
.pmod-table td small { color: var(--p-muted); }
.pmod-table .pmod-tc { text-align: center; }
.pmod-del {
    width: 30px; height: 30px; border-radius: 8px; border: 1px solid var(--p-border); background: var(--p-surface);
    color: var(--p-faint); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; font-size: 15px;
}
.pmod-del:hover { border-color: var(--p-red); color: var(--p-red); background: var(--p-red-soft); }

/* Vazio e avisos */
.pmod-vazio { text-align: center; padding: 22px 12px; color: var(--p-muted); font-size: .78rem; }
.pmod-vazio i { display: block; font-size: 30px; color: var(--p-faint); margin-bottom: 4px; }
.pmod-aviso {
    display: flex; align-items: flex-start; gap: 9px; padding: 10px 12px; border-radius: 12px;
    font-size: .76rem; line-height: 1.5; background: var(--p-blue-soft); border: 1px solid var(--p-blue-line-soft); color: var(--p-ink);
}
.pmod-aviso > i { font-size: 17px; color: var(--p-blue); flex: none; margin-top: 1px; }
.pmod-aviso .prmd-flex1 { flex: 1; }
.pmod-aviso.ok { background: var(--p-green-soft); border-color: rgba(22,163,74,.3); }
.pmod-aviso.ok > i { color: var(--p-green); }
.pmod-aviso.warn { background: var(--p-yellow-soft); border-color: rgba(217,119,6,.35); }
.pmod-aviso.warn > i { color: var(--p-yellow); }
.pmod-aviso.erro { background: var(--p-red-soft); border-color: rgba(220,38,38,.35); }
.pmod-aviso.erro > i { color: var(--p-red); }
.pmod-aviso-x { margin-left: auto; border: 0; background: transparent; color: var(--p-muted); cursor: pointer; font-size: 16px; padding: 0 2px; }

/* Botões e rodapé */
.prmd-btn.outline.perigo { color: var(--p-red); border-color: rgba(220,38,38,.35); }
.prmd-btn.outline.perigo:hover:not(:disabled) { background: var(--p-red); color: #fff; border-color: var(--p-red); }
.prmd-btn:disabled { opacity: .55; cursor: not-allowed; }
.prmd-btn .spinner-border { width: 14px; height: 14px; border-width: 2px; }
.pmod-foot .pmod-modelo-nome { width: 220px; }
.pmod-foot .prmd-field { padding-top: .45rem; padding-bottom: .45rem; }

/* Busca com ícone e sugestões (procedimento SIGTAP), item escolhido, selos e listas */
.pmod-busca-campo { position: relative; display: flex; align-items: center; }
.pmod-busca-campo > i { position: absolute; left: 11px; color: var(--p-faint); font-size: 15px; pointer-events: none; }
.pmod-busca-campo > .prmd-field { padding-left: 34px; padding-right: 34px; }
.pmod-busca-spin { position: absolute; right: 10px; color: var(--p-blue); display: inline-flex; }
.pmod-busca-spin .spinner-border { width: 14px; height: 14px; border-width: 2px; }
.pmod-busca-limpar { position: absolute; right: 6px; border: 0; background: transparent; color: var(--p-muted); font-size: 16px; cursor: pointer; display: inline-flex; }
.pmod-sugestoes {
    margin-top: 6px; max-height: 240px; overflow-y: auto; padding: 4px;
    border: 1px solid var(--p-border); border-radius: 10px; background: var(--p-surface); box-shadow: var(--p-shadow);
}
.pmod-sugestao {
    display: flex; align-items: flex-start; gap: 8px; width: 100%; padding: .45rem .55rem; text-align: left;
    border: 0; border-radius: 7px; background: transparent; cursor: pointer; font-size: .78rem; color: var(--p-text);
}
.pmod-sugestao:hover:not(:disabled) { background: var(--p-blue-soft); }
.pmod-sugestao.sel { background: var(--p-green-soft); cursor: default; }
.pmod code { padding: .05rem .35rem; border-radius: 5px; font-family: var(--p-mono); font-size: .68rem; color: var(--p-blue); background: var(--p-blue-soft); }
.pmod-sugestao code { flex: none; }
.pmod-sugestao-txt { flex: 1; min-width: 0; }
.pmod-sugestao-txt small { display: block; font-size: .64rem; color: var(--p-faint); }
.pmod-sugestao-valor { flex: none; font-size: .64rem; color: var(--p-muted); }
.pmod-escolhido {
    display: flex; align-items: center; gap: 8px; padding: 7px 8px 7px 11px; border-radius: 10px;
    background: var(--p-blue-soft); border: 1px solid var(--p-blue-line-soft); font-size: .8rem; font-weight: 600; color: var(--p-ink);
}
.pmod-escolhido span { flex: 1; min-width: 0; }
.pmod-selo {
    display: inline-flex; align-items: center; gap: 4px; padding: .1rem .55rem; border-radius: 50px; white-space: nowrap;
    font-size: .62rem; font-weight: 800; background: var(--p-soft2); color: var(--p-muted); border: 1px solid var(--p-border);
}
.pmod-selo.ok { background: var(--p-green-soft); color: var(--p-green); border-color: rgba(22,163,74,.25); }
.pmod-selo.warn { background: var(--p-yellow-soft); color: #b45309; border-color: rgba(217,119,6,.3); }
.pmod-lista { display: flex; flex-direction: column; border: 1px solid var(--p-border); border-radius: 12px; overflow: hidden; background: var(--p-surface); }
.pmod-lista-item { display: flex; align-items: center; gap: 8px; padding: 9px 12px; border-bottom: 1px solid var(--p-border-soft); }
.pmod-lista-item:last-child { border-bottom: none; }
.pmod-lista-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.pmod-lista-txt b { font-size: .8rem; color: var(--p-ink); }
.pmod-lista-txt small { display: flex; align-items: center; gap: 6px; font-size: .68rem; color: var(--p-muted); }
.pmod .validation-message { margin-top: 4px; font-size: .7rem; font-weight: 700; color: var(--p-red); }

/* Exames SIGTAP: chips dos selecionados, lista de marcar do subgrupo, barra de modelos */
.pmod-wrap { flex-wrap: wrap; }
.pmod-self-end { align-self: flex-end; }
.pmod-check.on.warn { border-color: rgba(217,119,6,.45); background: var(--p-yellow-soft); color: #92400e; }
.pmod-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pmod-chip {
    display: inline-flex; align-items: center; gap: 6px; padding: .3rem .4rem .3rem .55rem; border-radius: 9px;
    background: var(--p-blue-soft); border: 1px solid var(--p-blue-line-soft); font-size: .74rem; font-weight: 600; color: var(--p-ink);
}
.pmod-chip button { border: 0; background: transparent; color: var(--p-muted); cursor: pointer; padding: 0; display: inline-flex; font-size: 14px; }
.pmod-chip button:hover { color: var(--p-red); }
.pmod-lista-check { margin-top: 8px; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; max-height: 250px; overflow-y: auto; padding: 2px; }
.pmod-lista-check .pmod-check { min-height: 34px; font-weight: 600; min-width: 0; }
.pmod-check-txt { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pmod-modelos { flex: 0 1 auto; min-width: 0; max-width: 64%; }
.pmod-modelos .form-select { min-width: 220px; }

/* Conteúdo Bootstrap de componentes compartilhados dentro dos modais novos (barra de
   modelos, painel de acompanhantes): mesma tipografia/campos do .prmd, sem mexer neles. */
.pmod .form-label { font-size: .68rem !important; font-weight: 700; color: var(--p-text); text-transform: uppercase; letter-spacing: .5px; }
.pmod .form-control, .pmod .form-select {
    border-radius: 10px; border-color: var(--p-border); background-color: var(--p-surface);
    font-family: var(--p-font); font-weight: 600; color: var(--p-ink);
}
.pmod .form-control:focus, .pmod .form-select:focus { border-color: var(--p-blue-light); box-shadow: var(--p-focus-ring); }
.pmod .table thead th { background: var(--p-soft) !important; color: var(--p-muted) !important; font-size: .6rem !important; text-transform: uppercase; letter-spacing: .6px; }

/* Laudo: texto do laudo com corpo maior */
.pmod textarea.prmd-field.pmod-texto { font-size: .9rem; min-height: 180px; }

/* Modal por cima de outro modal da consulta (boletim aberto do histórico) */
.prmd.pmod.pmod-sobre { z-index: 1052; }
/* Abas dentro do corpo (histórico) e cabeçalho de grupo */
.pmod-abas { flex-wrap: nowrap; }
.pmod-abas .prmd-cat { flex: none; white-space: nowrap; }
.pmod-aba-n { margin-left: 6px; padding: 0 .45rem; border-radius: 50px; background: var(--p-blue-soft); color: var(--p-blue); font-size: .66rem; font-weight: 800; }
.pmod-grupo-head { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; font-size: .78rem; color: var(--p-ink); }
.pmod-grupo-head small { display: inline-flex; align-items: center; gap: 4px; color: var(--p-muted); }
.pmod-table td .prmd-btn.sm { padding: .3rem .55rem; }

/* Acompanhantes: mantém a camada de antes (1070) — também abre sobre outros modais em
   triagem e filas. O painel interno é o AcompanhantesPanel compartilhado (Bootstrap). */
.prmd.pmod.pmod-camada-alta { z-index: 1070; }
.pmod-acomp .table { margin-bottom: 0; }

/* Personalizar consulta: campos visíveis por etapa, em colunas */
.pmod-campos { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px 14px; margin-top: 10px; }
.pmod-campos-grupo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.pmod-campos-tit { font-size: .74rem; font-weight: 800; color: var(--p-ink); margin-bottom: 2px; }
.pmod-campos .pmod-check .pmod-selo { margin-left: auto; }

/* Escores clínicos: mantém a camada de antes (1090) e devolve à .esc-modal-body o respiro
   que agora vem do corpo da casca. */
.prmd.pmod.pmod-escores { z-index: 1090; }
.pmod-escores .pmod-body { padding: 0; }
.pmod-escores .esc-modal-body { padding: 16px 18px; }

/* Modais da consulta em tela estreita (tablet em pé / celular): a grade de 12 colunas vira
   uma coluna, opções e rodapé quebram linha, a faixa do paciente empilha os modelos. */
@media (max-width: 767.98px) {
    .prmd.pmod { padding: 8px; }
    .pmod .prmd-card.pmod-card { max-height: calc(100vh - 16px); border-radius: 16px; }
    .pmod.pmod-alto .prmd-card.pmod-card { height: calc(100vh - 16px); }
    .pmod-body { padding: 12px; }
    .pmod-grid > * { grid-column: 1 / -1; }
    .pmod-row { flex-wrap: wrap; }
    .pmod-pac { flex-wrap: wrap; }
    .pmod-modelos { max-width: 100%; flex-basis: 100%; }
    .pmod-seg > button { flex-basis: 100%; white-space: normal; }
    .pmod-lista-check, .pexa-cols { grid-template-columns: 1fr; }
    .pmod-foot { flex-wrap: wrap; padding: 10px 12px; }
    .pmod-foot .pmod-modelo-nome { width: 100%; }
    .pmod-tablewrap { overflow-x: auto; }
    .pmod .prmd-head .prmd-head-sub { display: none; }
    .prmd.pexa-aviso { flex-wrap: wrap; top: 12px; }
    .pexa-res { flex-wrap: wrap; }
    .pexa-res-acts { flex-direction: row; flex-wrap: wrap; }
}
