/* ── General ─────────────────────────────────────────────────────────────── */
body {
  background-color: #f5f7fb;
  font-size: 0.92rem;
}

.card {
  border-radius: 0.75rem;
}

/* ── Navbar ──────────────────────────────────────────────────────────────── */
.navbar {
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
}

/* ── Dashboard stat cards ────────────────────────────────────────────────── */
.card .fs-2.fw-bold {
  line-height: 1.1;
}

/* ── Test paper option boxes ─────────────────────────────────────────────── */
.option-box {
  border: 2px solid #dee2e6;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
  background: #fff;
}

.option-box:hover {
  background: #f0f5ff;
  border-color: #86b7fe;
  box-shadow: 0 2px 8px rgba(13,110,253,.1);
}

.option-box label {
  cursor: pointer;
  user-select: none;
}

.option-letter {
  transition: background 0.15s, color 0.15s;
  font-weight: 700;
}

/* ── Timer ───────────────────────────────────────────────────────────────── */
#timer {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.05em;
}

/* ── Tables ──────────────────────────────────────────────────────────────── */
.table th {
  white-space: nowrap;
  font-weight: 600;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* ── Login card ──────────────────────────────────────────────────────────── */
.card.shadow-sm {
  box-shadow: 0 4px 20px rgba(0,0,0,.08) !important;
}

/* ── Alerts ──────────────────────────────────────────────────────────────── */
.alert {
  border-radius: 0.6rem;
}

/* ── SweetAlert2 custom theme ────────────────────────────────────────────── */

/* Popup container */
.swal2-popup.swal-app {
  font-family: inherit;
  border-radius: 1rem;
  padding: 2rem 2rem 1.6rem;
  box-shadow: 0 20px 60px rgba(0,0,0,.18);
}

/* Title */
.swal2-popup.swal-app .swal2-title {
  font-size: 1.2rem;
  font-weight: 700;
  color: #212529;
  padding-bottom: 0.25rem;
}

/* Body text */
.swal2-popup.swal-app .swal2-html-container {
  font-size: 0.92rem;
  color: #6c757d;
  margin-top: 0.4rem;
}

/* Icon sizing */
.swal2-popup.swal-app .swal2-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 1rem;
}
.swal2-popup.swal-app .swal2-icon .swal2-icon-content {
  font-size: 2.2rem;
}

/* Actions row */
.swal2-popup.swal-app .swal2-actions {
  margin-top: 1.4rem;
  gap: 0.5rem;
}

/* Confirm button */
.swal2-popup.swal-app .swal2-confirm {
  border-radius: 0.5rem !important;
  font-weight: 600;
  font-size: 0.9rem;
  padding: 0.5rem 1.4rem;
  box-shadow: none !important;
  letter-spacing: 0.01em;
}

/* Cancel button */
.swal2-popup.swal-app .swal2-cancel {
  border-radius: 0.5rem !important;
  font-weight: 500;
  font-size: 0.9rem;
  padding: 0.5rem 1.4rem;
  background: #f1f3f5 !important;
  color: #495057 !important;
  box-shadow: none !important;
}
.swal2-popup.swal-app .swal2-cancel:hover {
  background: #e2e6ea !important;
}

/* Close button */
.swal2-popup.swal-app .swal2-close {
  font-size: 1.4rem;
  color: #adb5bd;
}
.swal2-popup.swal-app .swal2-close:hover {
  color: #495057;
}

/* Timer bar */
.swal2-popup.swal-app .swal2-timer-progress-bar {
  height: 3px;
  background: rgba(13,110,253,.35);
  border-radius: 0 0 1rem 1rem;
}

/* ── Toast custom theme ───────────────────────────────────────────────────── */
.swal2-popup.swal-toast {
  font-family: inherit;
  border-radius: 0.75rem !important;
  padding: 0.7rem 1rem !important;
  font-size: 0.88rem;
  box-shadow: 0 8px 30px rgba(0,0,0,.12);
  border-left: 4px solid transparent;
}
.swal2-popup.swal-toast.swal2-icon-success  { border-left-color: #198754; }
.swal2-popup.swal-toast.swal2-icon-error    { border-left-color: #dc3545; }
.swal2-popup.swal-toast.swal2-icon-warning  { border-left-color: #fd7e14; }
.swal2-popup.swal-toast.swal2-icon-info     { border-left-color: #0d6efd; }

.swal2-popup.swal-toast .swal2-title {
  font-size: 0.88rem;
  font-weight: 600;
  color: #212529;
}
.swal2-popup.swal-toast .swal2-html-container {
  font-size: 0.82rem;
  color: #6c757d;
  margin: 0;
}
.swal2-popup.swal-toast .swal2-timer-progress-bar {
  background: rgba(0,0,0,.12);
  height: 3px;
}
.swal2-popup.swal-toast .swal2-icon {
  width: 26px !important;
  height: 26px !important;
  margin: 0 !important;
}
.swal2-popup.swal-toast .swal2-icon .swal2-icon-content {
  font-size: 1rem !important;
}

/* ── Question progress dots ──────────────────────────────────────────────── */
.q-dot:hover {
  background: #0d6efd !important;
  color: #fff !important;
  border-color: #0d6efd !important;
  transform: scale(1.12);
}

.q-dot.answered {
  background: #198754 !important;
  color: #fff !important;
  border-color: #198754 !important;
}
