/* ==========================================================================
   components.css — ชิ้นส่วนที่ใช้ซ้ำในสไลด์
   card / steps / checks / table / code / warn
   ========================================================================== */

/* ---- Cards ---- */
.cards{display:grid;gap:12px}
.cards.c2{grid-template-columns:1fr 1fr}
.cards.c3{grid-template-columns:repeat(3,1fr)}
@media (max-width:860px){
  .cards.c2,.cards.c3{grid-template-columns:1fr}
}
.card{
  background:var(--mist);border-radius:var(--radius-card);padding:16px 18px;
  display:flex;flex-direction:column;gap:6px;
}
.card .t{font-weight:600;font-size:16px;color:var(--indigo);line-height:1.3}
.card .d{font-size:14px;line-height:1.5;color:var(--muted)}

/* การ์ดเน้น — ใช้อย่างมากหนึ่งใบต่อสไลด์ */
.card.hi{background:var(--indigo)}
.card.hi .t{color:var(--lime)}
.card.hi .d{color:#D9DEFF}
.card.hi code{background:#4E2CFF;color:var(--lime)}

/* การ์ดเสริม เส้นประ */
.card.ghost{background:var(--white);border:2px dashed var(--line)}
.card.ghost .t{color:var(--muted)}

/* ---- Numbered steps ---- */
.steps{display:flex;flex-direction:column;gap:10px}
.step{display:flex;gap:14px;align-items:flex-start}
.step .n{
  flex:0 0 auto;width:26px;height:26px;border-radius:50%;
  background:var(--indigo);color:var(--white);
  font-family:var(--mono);font-size:13px;font-weight:500;
  display:grid;place-items:center;margin-top:1px;
}
.step .tx{font-size:15px;line-height:1.5}
.step .tx b{color:var(--indigo);font-weight:600}

/* ---- Checklist ---- */
.checks{display:flex;flex-direction:column;gap:9px}
.check{display:flex;gap:11px;align-items:flex-start;font-size:14.5px;line-height:1.5}
.check svg{flex:0 0 auto;margin-top:3px}

/* ---- Table ---- */
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{
  text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);
  vertical-align:top;line-height:1.45;
}
th{
  font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);border-bottom:2px solid var(--indigo);
}
td:first-child{font-weight:500;color:var(--ink)}
tbody tr:last-child td{border-bottom:none}
.tbl-tight th,.tbl-tight td{padding:7px 10px;font-size:13.5px}
.yes{color:var(--indigo);font-weight:700}
.no{color:#B9BDD4;font-weight:700}
.never{color:var(--alert);font-weight:700}
.num-col{font-variant-numeric:tabular-nums}
tr.mark{background:var(--mist)}

/* ---- Code block ---- */
pre{
  font-family:var(--mono);font-size:13px;line-height:1.65;
  background:var(--ink);color:#E8E9F5;border-radius:var(--radius-card);
  padding:18px 20px;margin:0;overflow-x:auto;
}
pre .c{color:#8B90B8}  /* comment */
pre .g{color:var(--lime)}  /* string / directive */
pre .b{color:var(--soft)}  /* identifier */

/* ---- Warning strip ---- */
.warn{
  display:flex;gap:13px;align-items:flex-start;
  background:var(--lime);border-radius:var(--radius-card);padding:15px 18px;
}
.warn .wt{font-size:14.5px;line-height:1.5;font-weight:500;color:var(--ink)}
.warn .wt b{font-weight:700}
.warn code{background:rgba(10,10,18,.09);color:var(--ink)}

/* ---- สารบัญ ----
   หัวข้อแต่ละบทกดได้ เลขหน้าเติมโดย deck.js ตอนโหลด
   จึงไม่ต้องไล่แก้เมื่อแทรกสไลด์กลางเล่ม */
.toc-head{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex:0 0 auto}
.toc-head .logo{width:26px;height:26px;flex:0 0 auto}
.toc-head .lb{
  font-size:12px;font-weight:500;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted);
}

.toc{
  display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;
  flex:1 1 auto;min-height:0;align-content:start;
}
@media (max-width:860px){.toc{grid-template-columns:1fr}}

.toc-item{
  display:flex;gap:14px;align-items:flex-start;
  background:var(--mist);border-radius:var(--radius-card);
  padding:13px 16px;text-decoration:none;color:inherit;
  border:2px solid transparent;cursor:pointer;text-align:left;font:inherit;
}
.toc-item:hover{border-color:var(--indigo);background:var(--white)}
.toc-item .n{
  flex:0 0 auto;width:26px;height:26px;border-radius:50%;
  background:var(--indigo);color:var(--white);
  font-family:var(--mono);font-size:13px;font-weight:500;
  display:grid;place-items:center;margin-top:1px;
}
.toc-item .tx{display:flex;flex-direction:column;gap:3px;min-width:0}
.toc-item .tt{font-size:15.5px;font-weight:600;color:var(--indigo);line-height:1.3}
.toc-item .dd{font-size:13px;line-height:1.45;color:var(--muted)}
.toc-item .pg{
  margin-left:auto;flex:0 0 auto;align-self:center;
  font-family:var(--mono);font-size:12px;color:var(--muted);
  white-space:nowrap;
}
