/* szcz-styles.css – opieka.farm · Szczepienia (indeks + baza wiedzy).
   Builds on home-styles.css (tokens, chrome) and reuses the index scaffolding
   from calc-styles.css (.calc-head, .cat-filter, .calc-group-h, .calc-grid,
   .calc-card) plus the detail scaffolding (.calc-wrap, .calc-prose, .calc-warn,
   .interp). This file adds only vaccination-specific colour variants, the
   setting flag pill, a procedure-step list and a schedule table. Loaded last. */

/* Per-group icon colour variants on the shared card */
.calc-card.s-apt   .ic { background: rgba(20,160,133,0.12); color: var(--accent-2); }
.calc-card.s-adult .ic { background: rgba(29,115,139,0.10); color: var(--primary-2); }
.calc-card.s-basic .ic { background: rgba(13,75,92,0.08);   color: var(--primary); }
.calc-card.s-travel .ic { background: rgba(204,50,102,0.12); color: var(--warn); }

/* Setting flag – gdzie można się zaszczepić / typ wpisu. Top-right of card. */
.calc-card .vflag {
  margin-left: auto; flex-shrink: 0;
  padding: 3px 9px; border-radius: 999px;
  font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 600;
  letter-spacing: 0.05em; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 5px; white-space: nowrap;
}
.calc-card .vflag::before {
  content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor;
}
.calc-card .vflag.apt  { background: rgba(20,160,133,0.12); color: var(--accent-2); }
.calc-card .vflag.poz  { background: rgba(29,115,139,0.12); color: var(--primary-2); }
.calc-card .vflag.info { background: rgba(13,75,92,0.08);   color: var(--primary); }
.calc-card .vflag.szp  { background: rgba(204,50,102,0.12);  color: var(--warn); }

/* Group / age tag in the card foot, replacing .meth */
.calc-card .vmeta {
  font-family: 'IBM Plex Mono', monospace; font-size: 11.5px; font-weight: 600;
  letter-spacing: 0.02em; color: var(--ink-3);
  padding: 2px 7px; border-radius: 5px; background: var(--bg);
}

/* Tiny legend under the filter row */
.szcz-legend {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin: 14px 0 2px; font-size: 12px; color: var(--ink-3);
}
.szcz-legend .lg { display: inline-flex; align-items: center; gap: 7px; }
.szcz-legend .lg .d { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.szcz-legend .lg.apt  .d { background: var(--accent-2); }
.szcz-legend .lg.poz  .d { background: var(--primary-2); }
.szcz-legend .lg.info .d { background: var(--primary); }
.szcz-legend .lg.szp  .d { background: var(--warn); }

/* ─────────────────────────────────────────────────────────────────────────
   DETAIL – vaccination knowledge entry. Reuses .calc-wrap / .calc-main /
   .calc-rail / .calc-detail-h / .calc-prose / .calc-warn / .interp.
   ───────────────────────────────────────────────────────────────────────── */

/* Kicker icon tint on the detail header */
.calc-detail-h .kicker.szcz .ic { background: rgba(20,160,133,0.12); color: var(--accent-2); }
.calc-detail-h .kicker.szcz { color: var(--accent-2); }

/* Top fact strip – quick reference card (shared shape with chor-facts) */
.szcz-facts {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px;
  background: var(--line); border: 1px solid var(--line);
  border-radius: var(--rad-lg); overflow: hidden; margin: 4px 0 8px;
}
.szcz-facts .fact { background: var(--card); padding: 16px 18px; }
.szcz-facts .fact .k {
  font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3);
  margin-bottom: 7px;
}
.szcz-facts .fact .v { font-size: 16px; font-weight: 600; color: var(--ink); line-height: 1.25; letter-spacing: -0.01em; }
.szcz-facts .fact .v small { display: block; font-size: 11.5px; font-weight: 400; color: var(--ink-3); margin-top: 3px; letter-spacing: 0; }
.szcz-facts .fact .v .pin { color: var(--accent-2); }

/* Procedure ladder – numbered steps with optional level tag */
.szcz-steps { display: flex; flex-direction: column; gap: 10px; margin: 6px 0 2px; }
.szcz-steps .step {
  display: grid; grid-template-columns: 34px 1fr; gap: 14px; align-items: start;
  padding: 15px 17px; background: var(--card); border: 1px solid var(--line);
  border-radius: var(--rad-md);
}
.szcz-steps .step .no {
  width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center;
  font-family: 'IBM Plex Mono', monospace; font-size: 14px; font-weight: 700;
  background: rgba(20,160,133,0.12); color: var(--accent-2);
}
.szcz-steps .step .tt { font-size: 14.5px; font-weight: 600; color: var(--ink); line-height: 1.3; }
.szcz-steps .step .tt .lvl {
  margin-left: 8px; font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 600;
  letter-spacing: 0.05em; text-transform: uppercase; padding: 2px 7px; border-radius: 5px;
  vertical-align: 1px; background: var(--bg); color: var(--ink-3);
}
.szcz-steps .step .tt .lvl.ok  { background: rgba(20,160,133,0.12); color: var(--accent-2); }
.szcz-steps .step .tt .lvl.doc { background: rgba(29,115,139,0.12); color: var(--primary-2); }
.szcz-steps .step .ds { font-size: 13px; color: var(--ink-2); line-height: 1.55; margin-top: 5px; }
.szcz-steps .step .ds b { color: var(--ink); font-weight: 600; }

/* Chip rows (e.g. kto może / objawy NOP) */
.szcz-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 2px; }
.szcz-chips .chip {
  padding: 8px 13px; border-radius: 999px; border: 1px solid var(--line);
  background: var(--card); font-size: 13px; color: var(--ink-2); font-weight: 500;
  display: inline-flex; align-items: center; gap: 8px;
}
.szcz-chips .chip .d { width: 6px; height: 6px; border-radius: 50%; background: var(--accent-2); flex-shrink: 0; }
.szcz-chips .chip.alarm { border-color: rgba(204,50,102,0.30); background: rgba(204,50,102,0.05); color: var(--ink); }
.szcz-chips .chip.alarm .d { background: var(--warn); }

/* Red-flag list inside a warn block */
.flag-list { display: flex; flex-direction: column; gap: 9px; margin: 2px 0 0; }
.flag-list li {
  list-style: none; display: flex; gap: 10px; align-items: flex-start;
  font-size: 13.5px; color: var(--ink-2); line-height: 1.5;
}
.flag-list li .x {
  width: 18px; height: 18px; border-radius: 5px; flex-shrink: 0; margin-top: 1px;
  display: grid; place-items: center; background: rgba(204,50,102,0.14); color: var(--warn);
}
.flag-list li b { color: var(--ink); font-weight: 600; }

/* Counsel grid (myth vs fact / zalecaj – odradzaj) */
.counsel { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 6px; }
.counsel .col { background: var(--card); border: 1px solid var(--line); border-radius: var(--rad-md); padding: 16px 18px; }
.counsel .col h4 {
  margin: 0 0 12px; font-size: 13px; font-weight: 600; display: flex; align-items: center; gap: 8px;
}
.counsel .col.yes h4 { color: var(--accent-2); }
.counsel .col.no h4 { color: var(--warn); }
.counsel .col ul { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.counsel .col li { list-style: none; font-size: 13px; color: var(--ink-2); line-height: 1.5; padding-left: 18px; position: relative; }
.counsel .col li::before { content: ''; position: absolute; left: 0; top: 7px; width: 7px; height: 7px; border-radius: 50%; }
.counsel .col.yes li::before { background: var(--accent-2); }
.counsel .col.no li::before { background: var(--warn); }

/* Pull-quote / key takeaway inside prose */
.szcz-note {
  margin: 24px 0; padding: 18px 22px; border-left: 3px solid var(--accent-2);
  background: rgba(20,160,133,0.05); border-radius: 0 var(--rad-md) var(--rad-md) 0;
}
.szcz-note .lab {
  font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent-2);
  margin-bottom: 7px;
}
.szcz-note p { margin: 0; font-size: 15px; color: var(--ink); line-height: 1.6; }
.szcz-note p em { font-style: italic; }

@media (max-width: 860px) {
  .szcz-facts { grid-template-columns: repeat(2, 1fr); }
  .counsel { grid-template-columns: 1fr; }
}
