/* ============================================================
   Protocolos de Linhas de Cuidado · CMDP
   Folha de estilo compartilhada para os 13 protocolos
   ============================================================ */

/* ── Tokens ── */
:root{
  --bg:#F4F1FB; --surface:#FFFFFF; --surface-2:#FAF8FE; --surface-3:#F0EAFB;
  --text:#1A1330; --text-2:#574B73; --text-3:#9085A8; --text-4:#C4BCD5;
  --line:rgba(123,79,166,.08); --line-strong:rgba(123,79,166,.16); --line-xstrong:rgba(123,79,166,.28);
  --brand:#7B4FA6; --brand-2:#A180D9; --brand-3:#5C3B7E; --brand-4:#3F2858;
  --brand-bg:#EFE7FA;
  --brand-grad:linear-gradient(135deg,#7B4FA6 0%,#A180D9 100%);
  --pink-bg:#FCEAF3; --pink-text:#A12E6E;
  --orange-bg:#FFF1E6; --orange-text:#C45A1F;
  --yellow-bg:#FFF8DC; --yellow-text:#8B6914; --yellow-2:#F0A832;
  --green-bg:#E6F8EE; --green-text:#1F7A47; --green-2:#3FAE6E;
  --blue-bg:#E5F1FE; --blue-text:#1B5290;
  --red-bg:#FCEAEA; --red-text:#A82424; --red-2:#E04B4B;
  --font-sans:'Plus Jakarta Sans',-apple-system,system-ui,sans-serif;
  --font-mono:'JetBrains Mono','SF Mono',monospace;
  --radius:10px; --radius-md:14px; --radius-lg:20px; --radius-pill:999px;
  --shadow-xs:0 1px 2px rgba(123,79,166,.04);
  --shadow-sm:0 2px 4px rgba(123,79,166,.04),0 4px 12px rgba(123,79,166,.06);
}

/* ── Reset + base ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.55;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.page{max-width:880px;margin:0 auto;padding:40px 32px 80px}

/* ── Back link (volta para o índice) ── */
.back-link{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:600;
  color:var(--text-3);text-decoration:none;
  padding:8px 14px 8px 12px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-pill);
  box-shadow:var(--shadow-xs);
  margin-bottom:18px;
  transition:all .18s cubic-bezier(.4,0,.2,1);
}
.back-link:hover{color:var(--brand);border-color:var(--line-strong);transform:translateX(-2px);box-shadow:var(--shadow-sm)}
.back-link-arrow{
  display:inline-grid;place-items:center;
  width:18px;height:18px;
  background:var(--brand-bg);color:var(--brand);
  border-radius:50%;
  font-size:11px;font-weight:800;
  transition:all .18s;
}
.back-link:hover .back-link-arrow{background:var(--brand);color:#fff}

/* ── Header band ── */
.head-band{background:var(--brand-grad);border-radius:var(--radius-lg);padding:28px 32px;color:#fff;position:relative;overflow:hidden;margin-bottom:32px}
.head-band::before{content:"";position:absolute;right:-40px;top:-40px;width:240px;height:240px;background:radial-gradient(circle,rgba(255,255,255,.18) 0%,transparent 70%);pointer-events:none}
.head-eyebrow{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;opacity:.85;margin-bottom:8px}
.head-title{font-size:32px;font-weight:800;letter-spacing:-.03em;line-height:1.1;margin-bottom:6px}
.head-sub{font-size:15px;font-weight:500;opacity:.92;max-width:600px}
.head-meta{display:flex;gap:18px;margin-top:20px;flex-wrap:wrap;position:relative;z-index:1}
.head-meta-item{display:flex;flex-direction:column;gap:2px}
.head-meta-label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;opacity:.75}
.head-meta-value{font-size:14px;font-weight:700}

/* ── Sections ── */
section{margin-bottom:36px}
.s-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.13em;color:var(--brand);margin-bottom:6px}
.s-eyebrow::before{content:"";width:18px;height:2px;background:var(--brand);border-radius:1px}
.s-title{font-size:24px;font-weight:800;letter-spacing:-.025em;color:var(--text);margin-bottom:6px;line-height:1.15}
.s-lead{font-size:15px;color:var(--text-2);margin-bottom:20px;max-width:720px;line-height:1.6}
.s-lead strong{color:var(--text);font-weight:700}
.s-lead em{font-style:italic}

/* ── KPI grid (visão geral) ── */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}
.kpi-grid.is-3{grid-template-columns:repeat(3,1fr)}
.kpi-card{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--line);padding:18px;box-shadow:var(--shadow-xs)}
.kpi-label{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);margin-bottom:6px}
.kpi-value{font-family:var(--font-mono);font-size:24px;font-weight:700;color:var(--brand);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpi-sub{font-size:12.5px;color:var(--text-2);font-weight:500;margin-top:2px}

/* ── Team chips ── */
.team-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.team-chip{display:inline-flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);padding:8px 16px 8px 8px;font-size:13.5px;font-weight:600;color:var(--text);box-shadow:var(--shadow-xs)}
.team-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:700;color:#fff;flex-shrink:0}
.av-enf{background:linear-gradient(135deg,#7B4FA6,#A180D9)}
.av-tec{background:linear-gradient(135deg,#5598E3,#7CBAF7)}
.av-med{background:linear-gradient(135deg,#3FAE6E,#7DD8A6)}
.av-multi{background:linear-gradient(135deg,#F47840,#FFA76B)}
.av-amber{background:linear-gradient(135deg,#F0A832,#FFD566)}
.av-pink{background:linear-gradient(135deg,#D470A0,#F4A0C8)}
.av-cuidador{background:linear-gradient(135deg,#3FAE6E,#A180D9)}
.team-role{font-size:11.5px;color:var(--text-3);font-weight:500;margin-left:4px}

/* ── Risk cards ── */
.risk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}
.risk-card{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--line);padding:20px;box-shadow:var(--shadow-xs);position:relative;overflow:hidden}
.risk-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px}
.risk-card.is-baixo::before{background:var(--green-2)}
.risk-card.is-medio::before{background:var(--yellow-2)}
.risk-card.is-alto::before{background:var(--red-2)}
.risk-card.is-critico::before{background:#7B1F1F}

.risk-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;padding:5px 11px;border-radius:var(--radius-pill);margin-bottom:14px}
.risk-badge.is-baixo{background:var(--green-bg);color:var(--green-text)}
.risk-badge.is-medio{background:var(--yellow-bg);color:var(--yellow-text)}
.risk-badge.is-alto{background:var(--red-bg);color:var(--red-text)}
.risk-badge.is-critico{background:#3A0F0F;color:#FEE}
.risk-dot{width:7px;height:7px;border-radius:50%;display:inline-block}
.risk-dot.is-baixo{background:var(--green-2)}
.risk-dot.is-medio{background:var(--yellow-2)}
.risk-dot.is-alto{background:var(--red-2)}
.risk-dot.is-critico{background:#7B1F1F}

.risk-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:8px}
.risk-criteria{font-size:13px;color:var(--text-2);line-height:1.55;margin-bottom:10px}
.risk-criteria strong{color:var(--text);font-weight:700}
.risk-list{list-style:none;padding:0;margin:8px 0 0}
.risk-list li{font-size:12.5px;color:var(--text-2);padding:5px 0 5px 18px;position:relative;line-height:1.5}
.risk-list li::before{content:"";position:absolute;left:0;top:11px;width:7px;height:7px;border-radius:50%;background:var(--brand-2)}

.rule-of-thumb{background:var(--brand-bg);border-left:3px solid var(--brand);padding:12px 16px;border-radius:0 var(--radius) var(--radius) 0;font-size:13.5px;color:var(--brand-3);margin-top:16px;font-weight:500}
.rule-of-thumb strong{font-weight:800}

/* ── Tabela de periodicidade ── */
.periodic-wrap{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--line);overflow:hidden;margin-top:18px;box-shadow:var(--shadow-xs)}
.p-table{width:100%;border-collapse:collapse}
.p-table th,.p-table td{padding:14px 18px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.p-table thead th{background:var(--brand-bg);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--brand-3)}
.p-table thead th:first-child{text-align:left;width:30%}
.p-table tbody tr:last-child td{border-bottom:none}
.p-table tbody td:first-child{font-weight:700;font-size:14px;color:var(--text)}
.p-table tbody td em{font-style:italic;color:var(--text-3);font-weight:500;font-size:12.5px}
.p-cell{display:flex;flex-direction:column;gap:4px}
.p-cell-value{font-family:var(--font-mono);font-size:16px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.p-cell-unit{font-size:11.5px;font-weight:500;color:var(--text-3);text-transform:lowercase}
.p-cell-note{display:inline-flex;align-items:center;font-size:11px;font-weight:600;color:var(--brand);margin-top:2px}
.p-cell-na{font-size:13px;color:var(--text-3);font-style:italic}
.p-cell-spanned{text-align:center;color:var(--text-2);font-size:13px;font-weight:500}
.p-cell-spanned strong{color:var(--text);font-weight:700}

/* ── Cartões de explicação item-por-item ── */
.explain-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:20px}
.explain-grid.is-1{grid-template-columns:1fr}
.explain-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:18px 20px;box-shadow:var(--shadow-xs);position:relative}
.explain-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}
.explain-num{flex-shrink:0;width:28px;height:28px;border-radius:8px;background:var(--brand-bg);color:var(--brand);display:grid;place-items:center;font-family:var(--font-mono);font-size:13px;font-weight:700}
.explain-titles{flex:1;min-width:0}
.explain-title{font-size:14.5px;font-weight:700;color:var(--text);letter-spacing:-.01em;line-height:1.25}
.explain-meta{font-size:11.5px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.07em;margin-top:3px}
.explain-body{font-size:13px;color:var(--text-2);line-height:1.6}
.explain-body strong{color:var(--text);font-weight:700}
.tag-baixo,.tag-medio,.tag-alto,.tag-critico{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:var(--radius-pill);margin:0 2px;vertical-align:1px;letter-spacing:.05em}
.tag-baixo{background:var(--green-bg);color:var(--green-text)}
.tag-medio{background:var(--yellow-bg);color:var(--yellow-text)}
.tag-alto{background:var(--red-bg);color:var(--red-text)}
.tag-critico{background:#3A0F0F;color:#FEE}

/* ── Timeline KCCQ/instrumento ── */
.kccq-wrap{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--line);padding:24px;margin-top:18px;box-shadow:var(--shadow-xs)}
.kccq-row{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:18px;padding:14px 0;border-bottom:1px dashed var(--line-strong)}
.kccq-row:last-child{border-bottom:none}
.kccq-label{display:flex;flex-direction:column;gap:2px}
.kccq-name{font-size:13px;font-weight:700;color:var(--text)}
.kccq-count{font-family:var(--font-mono);font-size:11.5px;font-weight:600;color:var(--text-3)}
.kccq-timeline{position:relative;height:38px}
.kccq-track{position:absolute;top:18px;left:0;right:0;height:2px;background:var(--line-strong)}
.kccq-mark{position:absolute;top:50%;transform:translate(-50%,-50%);background:var(--brand);color:#fff;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-mono);font-size:10.5px;font-weight:700;box-shadow:0 4px 10px rgba(123,79,166,.25);white-space:nowrap}
.kccq-mark.is-baseline{background:var(--brand-grad);box-shadow:0 4px 12px rgba(123,79,166,.35)}
.kccq-mark.is-ghost{background:var(--surface-3);color:var(--text-3);box-shadow:none;border:1px dashed var(--line-xstrong)}

/* ── Bandeiras vermelhas ── */
.flags-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}
.flag-card{background:var(--red-bg);border:1px solid rgba(224,75,75,.25);border-left:4px solid var(--red-2);border-radius:var(--radius-md);padding:14px 18px;display:flex;gap:12px;align-items:flex-start}
.flag-icon{flex-shrink:0;width:32px;height:32px;border-radius:9px;background:var(--red-2);color:#fff;display:grid;place-items:center;font-size:16px;font-weight:800}
.flag-text{flex:1}
.flag-title{font-size:13.5px;font-weight:700;color:var(--red-text);margin-bottom:3px}
.flag-action{font-size:12px;color:var(--red-text);line-height:1.5;opacity:.9}
.flag-action strong{font-weight:700;opacity:1}

.flag-callout{margin-top:18px;background:#FFF8F0;border:1px solid #F0A832;border-radius:var(--radius-md);padding:14px 18px;display:flex;gap:12px;font-size:13px;color:var(--yellow-text);line-height:1.55}
.flag-callout strong{font-weight:700}

/* ── Saída do programa ── */
.exit-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}
.exit-item{display:flex;align-items:flex-start;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}
.exit-tag{flex-shrink:0;font-family:var(--font-mono);font-size:10.5px;font-weight:700;background:var(--brand-bg);color:var(--brand-3);padding:3px 8px;border-radius:6px;margin-top:1px;white-space:nowrap}
.exit-text{font-size:12.5px;color:var(--text-2);line-height:1.55}

/* ── Footer ── */
.footer{margin-top:48px;padding-top:20px;border-top:1px solid var(--line-strong);font-size:11.5px;color:var(--text-3);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
.footer strong{color:var(--text-2);font-weight:700}

/* ── Print ── */
@page{size:A4;margin:18mm 14mm}
@media print{
  body{background:#fff}
  .page{max-width:none;padding:0}
  .back-link{display:none !important}
  .head-band,.kpi-card,.risk-card,.periodic-wrap,.kccq-wrap,.flag-card,.flag-callout,.explain-card,.exit-item{
    -webkit-print-color-adjust:exact;print-color-adjust:exact;box-shadow:none !important;page-break-inside:avoid;
  }
  section{page-break-inside:avoid}
  h2,.s-title{page-break-after:avoid}
  .kpi-grid,.risk-grid,.flags-grid,.exit-list{page-break-inside:avoid}
}
