/**
 * Documento M-CHAT-R — texto sempre preto (#000); bordas, sombras e fundos com cor institucional.
 */

@page {
    size: A4 portrait;
    margin: 14mm 12mm;
}

.mchat-doc {
    --mchat-accent: #337ab7;
    --mchat-accent-dark: #285f92;
    --mchat-border-soft: #c9dce8;
    --mchat-shadow: rgba(51, 122, 183, 0.14);

    font-family: Calibri, "Calibri Light", Candara, "Segoe UI", Arial, sans-serif;
    font-size: 11pt;
    line-height: 1.5;
    color: #000;
    max-width: 210mm;
    margin: 0 auto;
    background: #fff;
}

.mchat-doc h1,
.mchat-doc h2,
.mchat-doc h3,
.mchat-doc p,
.mchat-doc li,
.mchat-doc dt,
.mchat-doc dd,
.mchat-doc th,
.mchat-doc td,
.mchat-doc span,
.mchat-doc strong {
    color: #000;
}

/* Cabeçalho institucional */
.mchat-doc-header {
    display: grid;
    grid-template-columns: minmax(72px, 22%) 1fr minmax(96px, 26%);
    align-items: center;
    gap: 14px;
    padding-bottom: 14px;
    margin-bottom: 14px;
    border-bottom: 3px solid var(--mchat-accent);
}

.mchat-doc-logo img {
    max-height: 56px;
    width: auto;
    display: block;
}

.mchat-doc-title-wrap {
    text-align: center;
}

.mchat-doc-title-wrap h1 {
    margin: 0;
    font-size: 13.5pt;
    font-weight: 700;
    line-height: 1.15;
}

.mchat-doc-title-kicker {
    margin: 2px 0 0;
    font-size: 9.5pt;
    font-weight: 600;
    line-height: 1.2;
}

.mchat-doc-org {
    text-align: right;
    font-size: 10pt;
    line-height: 1.12;
}

.mchat-doc-org strong {
    display: block;
    font-weight: 600;
    line-height: 1.1;
}

.mchat-doc-org .mchat-doc-saude {
    display: block;
    margin-top: 0;
    font-size: 11.5pt;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1.1;
}

/* Cartão paciente */
.mchat-doc-ident {
    margin-bottom: 20px;
}

.mchat-doc-ident__card {
    border: 1px solid var(--mchat-border-soft);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 4px 18px var(--mchat-shadow);
    overflow: hidden;
}

.mchat-doc-ident__card-top {
    padding: 14px 18px 12px;
    border-left: 4px solid var(--mchat-accent);
    background: linear-gradient(180deg, #fafcfe 0%, #fff 100%);
}

.mchat-doc-ident__titulo-linha {
    margin: 0;
    font-size: 15pt;
    font-weight: 700;
    line-height: 1.35;
}

.mchat-doc-ident__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 0 18px 16px;
    border-top: 1px solid var(--mchat-border-soft);
}

.mchat-doc-ident__campo {
    margin: 0;
    padding: 12px 14px;
    border-bottom: 1px solid #e8eef3;
}

.mchat-doc-ident__campo:nth-child(odd) {
    border-right: 1px solid #eef2f6;
}

.mchat-doc-ident__campo--full {
    grid-column: 1 / -1;
    border-right: none !important;
}

.mchat-doc-ident__campo dt {
    margin: 0 0 4px;
    font-size: 8.5pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.mchat-doc-ident__campo dd {
    margin: 0;
    font-size: 10.5pt;
    font-weight: 600;
}

.mchat-doc-ident__preenchido {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    padding: 12px 18px;
    background: #f6f9fc;
    border-top: 1px dashed var(--mchat-border-soft);
}

.mchat-doc-ident__preenchido-lbl {
    font-size: 9pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.mchat-doc-ident__preenchido-nome {
    font-size: 11pt;
    font-weight: 700;
}

.mchat-doc-ident__preenchido-quando {
    font-size: 10pt;
    font-weight: 600;
    color: #000;
}

/* Resultado — bordas / fundos por nível; texto sempre preto */
.mchat-doc-resultado {
    margin: 20px 0;
    padding: 16px 18px;
    border-radius: 10px;
    border: 1px solid #ccc;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.mchat-doc-resultado h2 {
    margin: 0 0 10px;
    font-size: 12pt;
}

.mchat-doc-resultado__label {
    margin: 0 0 8px;
    font-size: 12pt;
}

.mchat-doc-resultado__desc {
    margin: 0 0 10px;
}

/* Fundos clarinhos por cor de risco (texto continua preto via .mchat-doc *) */
.mchat-doc-resultado--baixo {
    background: linear-gradient(165deg, #f0fdf4 0%, #ecfdf3 35%, #d1fae5 100%);
    border-color: #86efac;
    box-shadow: 0 2px 14px rgba(34, 197, 94, 0.12);
}

.mchat-doc-resultado--moderado {
    background: linear-gradient(165deg, #fffbeb 0%, #fef9c3 35%, #fde68a 100%);
    border-color: #fcd34d;
    box-shadow: 0 2px 14px rgba(245, 158, 11, 0.13);
}

.mchat-doc-resultado--alto {
    background: linear-gradient(165deg, #fff5f5 0%, #ffe4e6 40%, #fecdd3 100%);
    border-color: #fb7185;
    box-shadow: 0 2px 14px rgba(248, 113, 113, 0.14);
}

.mchat-doc-resultado .mchat-doc-linha-pontos {
    font-weight: 700;
    margin: 8px 0;
    font-size: 11pt;
}

/* Timeline de risco (0–20) — tela, impressão e PDF */
.mchat-doc-timeline {
    margin: 14px 0 16px;
    padding: 12px 14px;
    border-radius: 8px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    background: rgba(255, 255, 255, 0.55);
}

.mchat-doc-timeline__titulo {
    margin: 0 0 6px;
    font-size: 10.5pt;
    font-weight: 700;
}

.mchat-doc-timeline__sub {
    margin: 0 0 10px;
    font-size: 9.25pt;
    line-height: 1.35;
}

.mchat-doc-timeline__svg {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
}

.mchat-doc-timeline-legend {
    width: 100%;
    border-collapse: collapse;
    margin-top: 12px;
    font-size: 9.25pt;
    line-height: 1.38;
}

.mchat-doc-timeline-legend__stripe {
    width: 12px;
    padding: 0;
    vertical-align: top;
    border-radius: 3px;
}

.mchat-doc-timeline-legend__stripe--baixo {
    background: #86efac;
}

.mchat-doc-timeline-legend__stripe--mod {
    background: #fde047;
}

.mchat-doc-timeline-legend__stripe--alto {
    background: #fca5a5;
}

.mchat-doc-timeline-legend__txt {
    padding: 8px 10px 8px 12px;
    vertical-align: top;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.mchat-doc-timeline-legend tr:last-child .mchat-doc-timeline-legend__txt {
    border-bottom: none;
}

.mchat-doc-resultado .mchat-doc-subsec {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid rgba(0, 0, 0, 0.12);
}

.mchat-doc-resultado .mchat-doc-subsec h3 {
    margin: 0 0 6px;
    font-size: 10.5pt;
}

/* Tabela de itens */
.mchat-doc-perguntas {
    margin-top: 22px;
}

.mchat-doc-perguntas > h2 {
    font-size: 11.5pt;
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--mchat-accent);
}

.mchat-doc-tabela-itens {
    width: 100%;
    border-collapse: collapse;
    font-size: 9.5pt;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px var(--mchat-shadow);
    border: 1px solid var(--mchat-border-soft);
}

.mchat-doc-tabela-itens thead th {
    padding: 11px 12px;
    font-weight: 700;
    text-align: left;
    color: #000;
    background: linear-gradient(180deg, #d6e8f5 0%, #cfe2f3 100%);
    border: none;
    border-bottom: 2px solid var(--mchat-accent);
}

.mchat-doc-tabela-itens thead th.col-n {
    width: 2.5rem;
    text-align: center;
}

.mchat-doc-tabela-itens thead th.col-sn {
    width: 5rem;
    text-align: center;
}

.mchat-doc-tabela-itens thead th.col-pts {
    width: 4.25rem;
    text-align: center;
}

.mchat-doc-tabela-itens tbody tr {
    border-bottom: 1px solid #e8eef3;
    background: #fff;
}

.mchat-doc-tabela-itens tbody tr:nth-child(even) {
    background: #f4f9fc;
}

.mchat-doc-tabela-itens tbody tr:last-child {
    border-bottom: none;
}

.mchat-doc-tabela-itens tbody td {
    padding: 10px 12px;
    vertical-align: top;
    border: none;
}

.mchat-doc-tabela-itens tbody td.col-n {
    text-align: center;
    font-weight: 700;
}

.mchat-doc-tabela-itens tbody td.col-sn {
    text-align: center;
    font-weight: 700;
}

.mchat-doc-tabela-itens tbody td.col-pts {
    text-align: center;
    font-weight: 700;
}

/* Notas */
.mchat-doc-sobre {
    margin-top: 22px;
    padding: 14px 16px;
    border-radius: 8px;
    background: #f8fbfd;
    border: 1px solid var(--mchat-border-soft);
    font-size: 9pt;
}

.mchat-doc-sobre h2 {
    font-size: 10.5pt;
    margin: 0 0 8px;
}

/* Rodapé */
.mchat-doc-rodape {
    margin-top: 18px;
    font-size: 8.5pt;
    border-top: 1px solid var(--mchat-border-soft);
    padding-top: 10px;
}

.mchat-resultado-doc-wrap {
    margin-top: 10px;
}

/* Modal */
.modal-impressao-mchat-overlay {
    position: fixed;
    inset: 0;
    z-index: 11000;
    background: rgba(0, 0, 0, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.modal-impressao-mchat-overlay.hidden {
    display: none !important;
}

.modal-impressao-mchat-panel {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
    max-width: 920px;
    width: 100%;
    max-height: calc(100vh - 32px);
    display: flex;
    flex-direction: column;
}

.modal-impressao-mchat-toolbar {
    flex-shrink: 0;
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid #ccc;
    background: #f0f0f0;
}

.modal-impressao-mchat-body {
    flex: 1;
    overflow: auto;
    padding: 20px 24px 28px;
    -webkit-overflow-scrolling: touch;
    background: #e8e8e8;
}

.modal-impressao-mchat-body .mchat-doc {
    background: #fff;
    padding: 20px 22px;
    border-radius: 10px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

@media print {
    .mchat-doc {
        max-width: none;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .mchat-doc-ident__card-top,
    .mchat-doc-resultado,
    .mchat-doc-tabela-itens thead th,
    .mchat-doc-tabela-itens tbody tr:nth-child(even) {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .modal-impressao-mchat-body {
        background: #fff;
        padding: 0;
    }

    .modal-impressao-mchat-body .mchat-doc {
        box-shadow: none;
        padding: 0;
    }

    .mchat-doc-tabela-itens tbody tr {
        page-break-inside: avoid;
    }

    .mchat-doc-resultado {
        page-break-inside: avoid;
    }

    .mchat-doc-timeline {
        page-break-inside: avoid;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .mchat-doc-timeline__svg rect,
    .mchat-doc-timeline-legend__stripe--baixo,
    .mchat-doc-timeline-legend__stripe--mod,
    .mchat-doc-timeline-legend__stripe--alto {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}

@media (max-width: 640px) {
    .mchat-doc-ident__grid {
        grid-template-columns: 1fr;
    }

    .mchat-doc-ident__campo:nth-child(odd) {
        border-right: none;
    }
}
