/* ===== Elegant Government Theme (Sarabun) ===== */
:root{
  --primary:#0D47A1;
  --primary-600:#1565C0;
  --primary-700:#0B3C8A;
  --bg:#F6F8FB;
  --card:#ffffff;
  --text:#222;
  --muted:#6c757d;
  --shadow-sm:0 6px 20px rgba(13,71,161,.08);
  --shadow-md:0 10px 35px rgba(13,71,161,.10);
  --radius-md:12px;
  --radius-lg:18px;
}

html,body{
  font-family:"Sarabun", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans Thai", sans-serif;
  color:var(--text);
}

.bg-body-tertiary{ background:var(--bg)!important; }

/* Brand Bar */
.brand-bar{ background:#fff; border-bottom:1px solid #e5e7eb; }
.brand-title{ color:var(--primary); font-weight:700; }

/* Navbar */
.app-navbar{
  background:linear-gradient(90deg,var(--primary) 0%,var(--primary-600) 100%);
  box-shadow:0 2px 5px rgba(0,0,0,.07);
}
.app-navbar .nav-link{ color:#e3f2fd!important; font-weight:500; }
.app-navbar .nav-link:hover{ color:#fff!important; background:rgba(255,255,255,.08); border-radius:.5rem; }
.app-navbar .nav-link.active{ color:#fff!important; font-weight:700; border-bottom:3px solid #FFC107; }

/* Cards / Panels */
.card{ border:0; background:var(--card); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }
.card .card-header{ background:transparent; border:0; color:var(--primary-700); font-weight:700; }

/* Forms */
.form-control,.form-select{
  border-radius:12px; border:1px solid #dde3ef; background:#fff;
}
.form-control:focus,.form-select:focus{
  border-color:var(--primary-600);
  box-shadow:0 0 0 .2rem rgba(21,101,192,.15);
}

/* Buttons */
.btn-primary{ background:var(--primary); border-color:var(--primary); }
.btn-primary:hover{ background:var(--primary-600); border-color:var(--primary-600); }
.btn-outline-primary{ color:var(--primary); border-color:var(--primary); }
.btn-outline-primary:hover{ background:var(--primary); color:#fff; }

/* DataTables polish */
table.dataTable{ background:#fff; border-radius:12px; overflow:hidden; }
.dataTables_wrapper .dataTables_filter input{ border-radius:999px; padding-inline:1rem; }
.dataTables_wrapper .dataTables_paginate .paginate_button{
  border:0!important; border-radius:8px!important; background:#fff!important; box-shadow:var(--shadow-sm); margin-inline:.2rem!important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current{ background:var(--primary)!important; color:#fff!important; }

/* Select2 */
.select2-container--bootstrap4 .select2-selection{
  border-radius:12px; border:1px solid #dde3ef; min-height:2.6rem;
}
.select2-container--bootstrap4 .select2-selection__rendered{ line-height:2.5rem; }

/* Flatpickr */
.flatpickr-calendar{ border-radius:14px; box-shadow:var(--shadow-md); }
.flatpickr-day.today{ border-color:var(--primary-600); }
.flatpickr-day.selected{ background:var(--primary); border-color:var(--primary); }

/* Status badges (ตัวอย่าง) */
.badge-pending{ background:#FFF7E6; color:#B75D00; border:1px solid #FFE4B5; }
.badge-approved{ background:#E8F5E9; color:#1B5E20; border:1px solid #C8E6C9; }
.badge-rejected{ background:#FFEBEE; color:#B71C1C; border:1px solid #FFCDD2; }
.badge-cancelled{ background:#ECEFF1; color:#37474F; border:1px solid #CFD8DC; }

/* Footer */
.app-footer{ background:#fff; }

/* ========= Login Page ========= */
.login-hero{
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(21,101,192,.12), transparent 60%),
    radial-gradient(1200px 600px at 90% 10%, rgba(13,71,161,.10), transparent 60%),
    var(--bg);
}
.login-container{ min-height:calc(100vh - 96px); display:flex; align-items:center; justify-content:center; }
.login-card{
  background:#fff; border:0; border-radius:var(--radius-lg); box-shadow:var(--shadow-md);
  max-width:560px; width:100%;
}
.login-title{ color:var(--primary-700); font-weight:800; letter-spacing:.2px; }
.btn-login{
  background:var(--primary); border-color:var(--primary); color:#fff; border-radius:12px;
  box-shadow:var(--shadow-sm); transition:transform .08s ease, filter .12s ease;
}
.btn-login:hover{ background:var(--primary-600); border-color:var(--primary-600); filter:brightness(1.02); }
.btn-login:active{ transform:translateY(1px); }

/* Focus ring สำหรับ A11y */
:focus-visible{ outline:3px solid rgba(21,101,192,.35); outline-offset:2px; border-radius:6px; }

/* Select2 height = .form-select */
.select2-container .select2-selection--single {
  height: calc(2.25rem + 2px);
  padding: .375rem .75rem;
  border: 1px solid var(--bs-border-color, #ced4da);
  border-radius: .375rem;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 1.5;
  color: var(--bs-body-color, #212529);
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: calc(2.25rem + 2px);
  right: .5rem;
}
.select2-dropdown {
  border-color: var(--bs-border-color, #ced4da);
  border-radius: .375rem;
}
