/* =====================================================================
   IS-Supervision@PNB : สไตล์หลักของระบบ (ต่อยอดจาก AdminLTE 4 / Bootstrap 5.3)
   ค่า --iss-primary / --iss-secondary / --iss-font ถูกกำหนดจาก tbl_system_config
   ===================================================================== */
:root {
  --iss-primary: #F26522;
  --iss-primary-rgb: 242, 101, 34;
  --iss-primary-dark: #c24e19;
  --iss-primary-light: #fde3d6;
  --iss-secondary: #6C757D;
  --iss-secondary-rgb: 108, 117, 125;
  --iss-font: 'Noto Sans Thai';
  --iss-font-scale: 1;
}

html { font-size: calc(16px * var(--iss-font-scale)); }

body,
.tooltip, .popover, .swal2-popup, .form-control, .form-select, .btn, .dropdown-menu {
  font-family: var(--iss-font), 'Noto Sans Thai', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ---------- Brand color override ---------- */
:root, [data-bs-theme="light"], [data-bs-theme="dark"] {
  --bs-primary: var(--iss-primary);
  --bs-primary-rgb: var(--iss-primary-rgb);
  --bs-secondary: var(--iss-secondary);
  --bs-secondary-rgb: var(--iss-secondary-rgb);
  --bs-link-color: var(--iss-primary-dark);
  --bs-link-color-rgb: var(--iss-primary-rgb);
  --bs-link-hover-color: var(--iss-primary);
}
[data-bs-theme="dark"] { --bs-link-color: var(--iss-primary); }

.btn-primary {
  --bs-btn-bg: var(--iss-primary);
  --bs-btn-border-color: var(--iss-primary);
  --bs-btn-hover-bg: var(--iss-primary-dark);
  --bs-btn-hover-border-color: var(--iss-primary-dark);
  --bs-btn-active-bg: var(--iss-primary-dark);
  --bs-btn-active-border-color: var(--iss-primary-dark);
  --bs-btn-disabled-bg: var(--iss-primary);
  --bs-btn-disabled-border-color: var(--iss-primary);
  --bs-btn-focus-shadow-rgb: var(--iss-primary-rgb);
}
.btn-outline-primary {
  --bs-btn-color: var(--iss-primary-dark);
  --bs-btn-border-color: var(--iss-primary);
  --bs-btn-hover-bg: var(--iss-primary);
  --bs-btn-hover-border-color: var(--iss-primary);
  --bs-btn-active-bg: var(--iss-primary-dark);
}
.btn-secondary {
  --bs-btn-bg: var(--iss-secondary);
  --bs-btn-border-color: var(--iss-secondary);
}
.text-primary { color: var(--iss-primary-dark) !important; }
.bg-primary   { background-color: var(--iss-primary) !important; }
.border-primary { border-color: var(--iss-primary) !important; }
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: rgba(var(--iss-primary-rgb), .6);
  box-shadow: 0 0 0 .25rem rgba(var(--iss-primary-rgb), .2);
}
.form-check-input:checked { background-color: var(--iss-primary); border-color: var(--iss-primary); }
.page-link { color: var(--iss-primary-dark); }
.active > .page-link, .page-link.active { background-color: var(--iss-primary); border-color: var(--iss-primary); }
.nav-pills .nav-link.active { background-color: var(--iss-primary); }
.nav-tabs .nav-link.active { border-top: 3px solid var(--iss-primary); font-weight: 600; }
.card-primary.card-outline { border-top: 3px solid var(--iss-primary); }

/* ---------- Sidebar ---------- */
.app-sidebar { background: #343a40; }
.sidebar-brand { border-bottom: 3px solid var(--iss-primary) !important; }
.sidebar-brand .brand-link .brand-image { height: 36px; width: 36px; object-fit: contain; background: #fff; border-radius: 50%; padding: 2px; }
.sidebar-brand .brand-text { font-weight: 600 !important; letter-spacing: .3px; }
.sidebar-menu .nav-link.active,
.sidebar-menu .nav-item.menu-open > .nav-link.active {
  background-color: var(--iss-primary) !important;
  color: #fff !important;
}
.sidebar-menu .nav-header { color: rgba(255,255,255,.55); font-size: .75rem; letter-spacing: .5px; }
.sidebar-user { padding: .75rem 1rem; border-bottom: 1px solid rgba(255,255,255,.1); color: #fff; }
.sidebar-user img { width: 40px; height: 40px; object-fit: cover; }
.sidebar-user small { color: rgba(255,255,255,.6); }
.sidebar-collapse .sidebar-user .info { display: none; }

/* ---------- Header / misc ---------- */
.app-header { border-bottom: 2px solid rgba(var(--iss-primary-rgb), .25); }
.user-image-sm { width: 32px; height: 32px; object-fit: cover; }
.avatar-lg { width: 120px; height: 120px; object-fit: cover; border: 4px solid var(--iss-primary-light); }
.app-content-header h3 { font-weight: 600; }
.small-box { border-radius: .75rem; }
.small-box .small-box-icon { opacity: .35; }
.table > :not(caption) > * > th { white-space: nowrap; }
.required::after { content: ' *'; color: var(--bs-danger); }
.cursor-pointer { cursor: pointer; }
.text-pre-line { white-space: pre-line; }
.logo-preview { max-height: 80px; max-width: 200px; object-fit: contain; }
.color-input { width: 4rem; padding: .25rem; }

.avatar-md { width: 72px; height: 72px; object-fit: cover; }
.small-box { position: relative; }
.small-box .small-box-icon { position: absolute; right: 1rem; top: 1rem; font-size: 3.5rem; }
.small-box .small-box-footer { color: rgba(255,255,255,.9); }
.text-bg-warning.small-box .small-box-footer { color: rgba(0,0,0,.75); }
a.info-box:hover { box-shadow: 0 .25rem .75rem rgba(var(--iss-primary-rgb), .2); }

/* ---------- Front pages ---------- */
.hero-logo { max-height: 260px; }
.front-body { min-height: 100vh; background: linear-gradient(135deg, var(--iss-primary-light) 0%, #f8f9fa 45%, #e9ecef 100%); }
[data-bs-theme="dark"] .front-body { background: linear-gradient(135deg, #2b1a12 0%, #1f2327 60%); }
.front-navbar { border-bottom: 3px solid var(--iss-primary); }
.front-navbar .navbar-brand img { height: 44px; width: 44px; object-fit: contain; }
.hero { padding: 4rem 0 3rem; }
.hero h1 { font-weight: 700; }
.hero .accent { color: var(--iss-primary); }
.feature-icon { width: 3rem; height: 3rem; border-radius: .75rem; display: inline-flex; align-items: center; justify-content: center;
  background: rgba(var(--iss-primary-rgb), .12); color: var(--iss-primary); font-size: 1.5rem; }
.login-card { max-width: 440px; width: 100%; border: 0; border-top: 4px solid var(--iss-primary); }
.login-logo { width: 96px; height: 96px; object-fit: contain; }
.front-footer { border-top: 1px solid rgba(0,0,0,.08); }

/* ---------- Accessibility toolbar (A- A A+) ---------- */
.a11y-toolbar {
  position: fixed; right: 1rem; bottom: 1rem; z-index: 1085;
  display: flex; align-items: center; gap: .25rem; flex-wrap: wrap; justify-content: flex-end;
}
.a11y-toolbar .a11y-toggle {
  width: 3rem; height: 3rem; border-radius: 50%; border: 0; color: #fff; background: var(--iss-primary);
  box-shadow: 0 .25rem .75rem rgba(0,0,0,.25); font-size: 1.4rem; display: inline-flex; align-items: center; justify-content: center;
}
.a11y-toolbar .a11y-toggle:focus-visible { outline: 3px solid #000; outline-offset: 2px; }
.a11y-panel {
  display: none; align-items: center; gap: .35rem; padding: .4rem .5rem; border-radius: 2rem;
  background: var(--bs-body-bg); box-shadow: 0 .25rem .75rem rgba(0,0,0,.2); border: 1px solid var(--bs-border-color);
}
.a11y-toolbar.open .a11y-panel { display: flex; }
.a11y-panel .btn { min-width: 2.5rem; font-weight: 700; line-height: 1; }
.a11y-panel .btn-a-minus { font-size: .85rem; }
.a11y-panel .btn-a-plus  { font-size: 1.15rem; }
.a11y-panel .a11y-level  { min-width: 3.2rem; text-align: center; font-size: .8rem; color: var(--bs-secondary-color); }
.a11y-panel .form-select { width: auto; max-width: 10rem; border-radius: 2rem; }

/* High contrast mode */
html.a11y-contrast body { filter: contrast(1.25); }
html.a11y-contrast a { text-decoration: underline !important; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

@media (max-width: 575.98px) {
  .a11y-panel .form-select { max-width: 7.5rem; }
  .a11y-toolbar { right: .5rem; bottom: .5rem; }
}

@media print {
  .app-sidebar, .app-header, .app-footer, .a11y-toolbar, .no-print { display: none !important; }
  .app-main { margin: 0 !important; }
}
