/* ── Responsive tables ────────────────────────────────────────── */
.table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  margin: 1.5rem 0;
  box-shadow: var(--shadow-sm);
}
.table-scroll table {
  border-collapse: collapse;
  width: 100%;
  min-width: 480px;
  font-size: .9rem;
}
.table-scroll thead tr { background: var(--color-primary); color: #fff; }
.table-scroll thead th {
  padding: .75rem 1rem;
  text-align: left;
  font-weight: 600;
  font-size: .85rem;
  letter-spacing: .03em;
  white-space: nowrap;
}
.table-scroll tbody tr:nth-child(odd)  { background: var(--color-surface); }
.table-scroll tbody tr:nth-child(even) { background: var(--color-bg); }
.table-scroll tbody tr:hover { background: var(--color-surface-2); }
.table-scroll td, .table-scroll th {
  padding: .65rem 1rem;
  border-bottom: 1px solid var(--color-border);
}
.table-scroll tbody tr:last-child td { border-bottom: none; }

/* ── Interactive checkboxes ──────────────────────────────────── */
.task-list-item {
  list-style: none;
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  margin-bottom: .5rem;
  padding-left: 0;
}
.task-list-item input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  min-width: 18px;
  border: 2px solid var(--color-border);
  border-radius: 4px;
  background: var(--color-bg);
  cursor: pointer;
  margin-top: 3px;
  transition: background var(--transition), border-color var(--transition);
  position: relative;
}
.task-list-item input[type="checkbox"]:checked {
  background: var(--color-primary);
  border-color: var(--color-primary);
}
.task-list-item input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  left: 3px;
  top: 0px;
  width: 6px;
  height: 10px;
  border: 2px solid #fff;
  border-top: none;
  border-left: none;
  transform: rotate(45deg);
}
.task-list-item label {
  cursor: pointer;
  line-height: 1.5;
  transition: color var(--transition);
}
.task-list-item input[type="checkbox"]:checked + label {
  text-decoration: line-through;
  color: var(--color-text-muted);
}

/* ── FAQ Accordions ────────────────────────────────────────────── */
.faq-section { margin: 1.5rem 0; }
.faq-item {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  margin-bottom: .75rem;
  overflow: hidden;
  transition: box-shadow var(--transition);
}
.faq-item:hover { box-shadow: var(--shadow-sm); }
.faq-item[open] { border-color: var(--color-primary-light); box-shadow: var(--shadow-md); }
.faq-question {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .9rem 1.1rem;
  cursor: pointer;
  font-weight: 600;
  color: var(--color-primary-dark);
  background: var(--color-surface);
  transition: background var(--transition);
  user-select: none;
  gap: 1rem;
}
.faq-question::-webkit-details-marker { display: none; }
.faq-question::after {
  content: '＋';
  font-size: 1.1rem;
  color: var(--color-primary);
  flex-shrink: 0;
  transition: transform var(--transition);
}
.faq-item[open] .faq-question { background: var(--color-surface-2); }
.faq-item[open] .faq-question::after { transform: rotate(45deg); }
.faq-question:hover { background: var(--color-surface-2); }
.faq-answer {
  padding: 1rem 1.1rem 1.1rem;
  color: var(--color-text);
  border-top: 1px solid var(--color-border);
  background: var(--color-bg);
  animation: fadeIn .2s ease;
}
.faq-answer p:last-child { margin-bottom: 0; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* ── Mermaid diagrams ────────────────────────────────────────── */
.mermaid {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 1.5rem;
  margin: 1.5rem 0;
  overflow-x: auto;
  text-align: center;
}

