/* ============================================================
   Econ Student Assistant Program - โทเคนสีและสไตล์ส่วนกลาง
   โหลดต่อจาก Bootstrap 5.3: ปรับสีแบรนด์ + ความคมชัดระดับ WCAG AA
   ============================================================ */

:root {
  /* น้ำเงินหลักของระบบ: ตัวอักษรขาวบนสีนี้คมชัด 6.3:1 (ค่าเดิมของ Bootstrap ได้ 4.0:1) */
  --esap-primary: #1d4ed8;
  --esap-primary-dark: #1e40af;
  --esap-primary-rgb: 29, 78, 216;

  --bs-link-color: var(--esap-primary);
  --bs-link-color-rgb: var(--esap-primary-rgb);
  --bs-link-hover-color: var(--esap-primary-dark);
  --bs-link-hover-color-rgb: 30, 64, 175;
}

body {
  font-family: 'Sarabun', sans-serif;
  background: #f5f7fb;
}

/* ---------- ปุ่ม: สีแบรนด์ครบทุกสถานะ (default / hover / active / focus / disabled) ---------- */

.btn-primary {
  --bs-btn-bg: var(--esap-primary);
  --bs-btn-border-color: var(--esap-primary);
  --bs-btn-hover-bg: var(--esap-primary-dark);
  --bs-btn-hover-border-color: var(--esap-primary-dark);
  --bs-btn-active-bg: var(--esap-primary-dark);
  --bs-btn-active-border-color: var(--esap-primary-dark);
  --bs-btn-disabled-bg: var(--esap-primary);
  --bs-btn-disabled-border-color: var(--esap-primary);
  --bs-btn-focus-shadow-rgb: var(--esap-primary-rgb);
}

.btn-outline-primary {
  --bs-btn-color: var(--esap-primary);
  --bs-btn-border-color: var(--esap-primary);
  --bs-btn-hover-bg: var(--esap-primary);
  --bs-btn-hover-border-color: var(--esap-primary);
  --bs-btn-active-bg: var(--esap-primary);
  --bs-btn-active-border-color: var(--esap-primary);
  --bs-btn-focus-shadow-rgb: var(--esap-primary-rgb);
}

/* ---------- ยูทิลิตีสี: ยกความคมชัดให้ผ่าน WCAG AA ---------- */

.bg-primary {
  background-color: var(--esap-primary) !important;
}

.text-primary {
  color: var(--esap-primary) !important;
}

/* cyan เริ่มต้นของ Bootstrap (#0dcaf0) อ่านไม่ออกบนพื้นขาว -> ใช้โทนเข้ม (4.8:1) */
.text-info {
  color: #0e7490 !important;
}

/* ตัวอักษรตัวเล็กในป้าย (badge) ต้องเข้มกว่าสี success ปกติ */
.badge.text-success {
  color: #0f5132 !important;
}

/* ---------- ฟอร์ม: focus ring สีแบรนด์ ---------- */

.form-control:focus,
.form-select:focus {
  border-color: #93b4f5;
  box-shadow: 0 0 0 .25rem rgba(var(--esap-primary-rgb), .25);
}

/* ---------- โครงหน้า ---------- */

.navbar-brand {
  font-weight: 700;
  max-width: 72vw;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.navbar .nav-link.active {
  font-weight: 600;
}

.card {
  border: 0;
  box-shadow: 0 1px 3px rgba(15, 23, 42, .08);
}

.table > :not(caption) > * > * {
  vertical-align: middle;
}

/* ---------- สถานะว่างของตาราง ---------- */

.empty-state {
  color: var(--bs-secondary-color);
}

.empty-state .bi {
  font-size: 2rem;
  display: block;
  margin-bottom: .5rem;
  opacity: .6;
}

/* ---------- เคารพการตั้งค่าลดการเคลื่อนไหวของผู้ใช้ ---------- */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
