:root{
  --primary:#714B67;
  --primary-dark:#5a3b52;
  --primary-soft:#f4eef2;
  --bg:#f5f7fb;
  --white:#ffffff;
  --text:#111827;
  --muted:#6b7280;
  --border:#e5e7eb;
  --shadow:0 18px 45px rgba(15,23,42,.08);
  --shadow-lg:0 28px 70px rgba(15,23,42,.14);
  --danger:#ef4444;
  --warning:#f59e0b;
  --success:#16a34a;
  --blue:#3b82f6;
}

.header-home-link{
    text-decoration:none;
    color:inherit;
    cursor:pointer;
    border-radius:18px;
    transition:.2s ease;
}

.header-home-link:hover{
    color:inherit;
    transform:translateY(-1px);
}

.header-home-link:hover .header-icon{
    box-shadow:0 16px 30px rgba(113, 75, 103,.26);
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 1000px #f9fafb inset !important;
    box-shadow: 0 0 0 1000px #f9fafb inset !important;
    -webkit-text-fill-color: #000 !important;
    transition: background-color 5000s ease-in-out 0s;
}

html{
  scrollbar-gutter: stable;
}

body.app-loading{
  cursor:wait;
}

/* Prevent SweetAlert / loader scrollbar jump */
body.swal2-shown,
body.swal2-height-auto{
  padding-right:0 !important;
}

/* =========================
   Select2
========================= */
.theme-select2{width:100%;}
.select2-container{width:100%!important;}

.select2-container .select2-selection--single{
  height:50px!important;
  border-radius:16px!important;
  border:1px solid var(--border)!important;
  background:#fff!important;
  box-shadow:none!important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:50px!important;
  padding-left:14px!important;
  padding-right:42px!important;
  color:#334155!important;
  font-size:14px!important;
  font-weight:800!important;
}

.select2-container--default .select2-selection--single .select2-selection__placeholder{
  color:#94a3b8!important;
  font-weight:800!important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow{
  height:50px!important;
  width:40px!important;
  right:6px!important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow b{
  border-color:var(--primary-dark) transparent transparent transparent!important;
  border-width:6px 5px 0 5px!important;
  margin-left:-5px!important;
  margin-top:-2px!important;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single{
  border-color:rgba(113, 75, 103,.55)!important;
  box-shadow:0 0 0 4px rgba(113, 75, 103,.10)!important;
}

.select2-dropdown{
  border:1px solid rgba(113, 75, 103,.18)!important;
  border-radius:18px!important;
  overflow:hidden!important;
  box-shadow:0 24px 60px rgba(15,23,42,.16)!important;
  background:#fff!important;
  z-index:100005!important;
}

.select2-search--dropdown{
  padding:10px!important;
  background:#f8fffd!important;
  border-bottom:1px solid rgba(113, 75, 103,.10);
}

.select2-search--dropdown .select2-search__field{
  border:1px solid rgba(113, 75, 103,.24)!important;
  border-radius:12px!important;
  padding:10px 12px!important;
  font-size:13px!important;
  font-weight:800!important;
  color:#334155!important;
  outline:none!important;
}

.select2-results__options{padding:8px!important;}

.select2-container--default .select2-results__option{
  border-radius:12px!important;
  padding:11px 12px!important;
  font-size:13px!important;
  font-weight:800!important;
  color:#334155!important;
  margin-bottom:4px;
}

.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{
  background:var(--primary-soft)!important;
  color:var(--primary-dark)!important;
}

.select2-container--default .select2-results__option--selected{
  background:rgba(113, 75, 103,.12)!important;
  color:var(--primary-dark)!important;
}

/* =========================
   Flatpickr Calendar
========================= */
.theme-date{
  background:#fff!important;
  cursor:pointer;
}

.flatpickr-calendar{
  border:none!important;
  border-radius:22px!important;
  box-shadow:0 26px 70px rgba(15,23,42,.22)!important;
  overflow:hidden!important;
  font-family:"Roboto",Arial,sans-serif!important;
  z-index:100003!important;
}

.flatpickr-months{
  padding:10px 10px 4px!important;
  background:linear-gradient(135deg,#f8fffd,#ffffff)!important;
  border-bottom:1px solid rgba(113, 75, 103,.12)!important;
}

span.flatpickr-weekday{
  color:var(--primary-dark)!important;
  font-size:12px!important;
  font-weight:900!important;
}

.flatpickr-day{
  border-radius:12px!important;
  color:#334155!important;
  font-weight:800!important;
}

.flatpickr-day:hover{
  background:var(--primary-soft)!important;
  border-color:var(--primary-soft)!important;
  color:var(--primary-dark)!important;
}

.flatpickr-day.today{
  border-color:rgba(113, 75, 103,.55)!important;
  color:var(--primary-dark)!important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange{
  background:var(--primary)!important;
  border-color:var(--primary)!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(113, 75, 103,.22)!important;
}

/* =========================
   Compact Preloader
========================= */
.app-click-blocker{
  position:fixed;
  inset:0;
  display:none;
  z-index:99990;
  background:rgba(15,23,42,.05);
  cursor:wait;
}

.app-click-blocker.show{
  display:block;
}

.theme-preloader{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:99999;
  width:min(360px,calc(100vw - 32px));
  display:none;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border-radius:20px;
  background:#fff;
  border:1px solid var(--border);
  box-shadow:0 24px 70px rgba(15,23,42,.18);
  overflow:hidden;
}

.theme-preloader.show{
  display:flex;
  animation:toastIn .22s ease;
}

.theme-preloader::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:linear-gradient(180deg,var(--primary),var(--primary-dark));
}

.theme-preloader-spinner{
  width:42px;
  height:42px;
  min-width:42px;
  border-radius:15px;
  background:var(--primary-soft);
  color:var(--primary-dark);
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}

.theme-preloader-spinner::before{
  content:"";
  width:25px;
  height:25px;
  border-radius:50%;
  border:3px solid rgba(113, 75, 103,.16);
  border-top-color:var(--primary);
  border-right-color:var(--primary-dark);
  animation:themeSpin .75s linear infinite;
}

.theme-preloader-spinner i{
  position:absolute;
  font-size:12px;
}

.theme-preloader b{
  display:block;
  color:var(--text);
  font-size:14px;
  font-weight:900;
  margin-bottom:3px;
}

.theme-preloader span{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:600;
  line-height:1.35;
}

@keyframes themeSpin{
  to{transform:rotate(360deg)}
}

/* =========================
   Toast
========================= */
.app-toast{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:99980;
  display:none;
  align-items:center;
  gap:12px;
  min-width:290px;
  max-width:420px;
  padding:15px 16px;
  border-radius:18px;
  background:#fff;
  color:var(--text);
  border:1px solid var(--border);
  box-shadow:0 18px 45px rgba(17,24,39,.16);
}

.app-toast.show{
  display:flex;
  animation:toastIn .25s ease;
}

.app-toast i{
  width:38px;
  height:38px;
  border-radius:13px;
  background:var(--primary-soft);
  color:var(--primary-dark);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  flex-shrink:0;
}

.app-toast.success i{background:rgba(22,163,74,.10);color:var(--success);}
.app-toast.warning i{background:rgba(245,158,11,.12);color:var(--warning);}
.app-toast.error i{background:rgba(239,68,68,.10);color:var(--danger);}
.app-toast.info i{background:var(--primary-soft);color:var(--primary-dark);}

.app-toast b{
  display:block;
  font-size:14px;
  font-weight:900;
  margin-bottom:2px;
}

.app-toast span{
  display:block;
  color:var(--muted);
  font-size:13px;
  line-height:1.4;
}

@keyframes toastIn{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}

/* =========================
   ERP SweetAlert Theme
   (aligned with dashboard)
========================= */
div:where(.swal2-container){
  z-index:1000001!important;
  font-family:Inter,system-ui,-apple-system,sans-serif!important;
}

div:where(.swal2-container) .swal2-backdrop-show{
  background:rgba(17,24,39,.45)!important;
  backdrop-filter:blur(2px);
}

@keyframes erpSwalIn{
  from{opacity:0;transform:translateY(10px) scale(.98);}
  to{opacity:1;transform:translateY(0) scale(1);}
}

@keyframes erpSwalOut{
  from{opacity:1;transform:translateY(0) scale(1);}
  to{opacity:0;transform:translateY(6px) scale(.98);}
}

.erp-swal-show{animation:erpSwalIn .22s cubic-bezier(.2,.8,.2,1) both!important;}
.erp-swal-hide{animation:erpSwalOut .16s ease-in both!important;}

.compact-confirm-popup,
.erp-swal-popup{
  width:420px!important;
  max-width:calc(100vw - 32px)!important;
  padding:0!important;
  border-radius:16px!important;
  background:#fff!important;
  border:1px solid var(--border)!important;
  box-shadow:0 16px 48px rgba(15,23,42,.14)!important;
  overflow:hidden!important;
  font-family:Inter,system-ui,-apple-system,sans-serif!important;
}

.compact-confirm-html,
.erp-swal-html{
  margin:0!important;
  padding:0!important;
}

.compact-confirm-card,
.erp-swal-card{
  text-align:left;
}

.compact-confirm-head,
.erp-swal-head{
  padding:18px 20px;
  display:flex;
  gap:12px;
  align-items:flex-start;
  background:#f9fafb;
  border-bottom:1px solid var(--border);
}

.erp-swal-head--solo{
  border-bottom:none;
}

.compact-confirm-icon,
.erp-swal-icon{
  width:42px;
  height:42px;
  border-radius:12px;
  background:var(--primary-soft);
  color:var(--primary-dark);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.125rem;
  flex-shrink:0;
}

.erp-swal-icon--success,
.compact-confirm-icon.is-success{background:rgba(22,163,74,.1);color:var(--success);}
.erp-swal-icon--warning,
.compact-confirm-icon.is-warning{background:rgba(245,158,11,.12);color:var(--warning);}
.erp-swal-icon--danger,
.compact-confirm-icon.is-danger{background:rgba(239,68,68,.1);color:var(--danger);}
.erp-swal-icon--info,
.compact-confirm-icon.is-info{background:rgba(59,130,246,.1);color:var(--blue);}

.compact-confirm-title,
.erp-swal-title{
  margin:0 0 3px!important;
  font-size:1rem!important;
  font-weight:600!important;
  color:var(--text)!important;
  letter-spacing:-.015em;
}

.compact-confirm-sub,
.erp-swal-sub{
  font-size:.8125rem;
  font-weight:500;
  color:var(--muted);
  line-height:1.4;
}

.compact-confirm-body,
.erp-swal-body{
  padding:16px 20px;
  color:#374151;
  font-size:.875rem;
  font-weight:400;
  line-height:1.55;
}

.compact-confirm-note,
.erp-swal-note{
  margin-top:10px;
  padding:10px 12px;
  border-radius:10px;
  background:var(--primary-soft);
  border:1px solid rgba(113, 75, 103,.14);
  color:var(--primary-dark);
  font-size:.8125rem;
  font-weight:500;
  display:flex;
  align-items:flex-start;
  gap:8px;
}

.erp-swal-note--warning{
  background:rgba(245,158,11,.08);
  border-color:rgba(245,158,11,.18);
  color:#b45309;
}

.erp-swal-note--danger{
  background:rgba(239,68,68,.06);
  border-color:rgba(239,68,68,.14);
  color:#b91c1c;
}

div:where(.swal2-container) .swal2-actions.compact-confirm-actions,
div:where(.swal2-container) .swal2-actions.erp-swal-actions{
  padding:0 20px 18px!important;
  margin:0!important;
  width:100%!important;
  display:grid!important;
  grid-template-columns:1fr 1fr;
  gap:8px!important;
}

div:where(.swal2-container) .swal2-actions.erp-swal-actions.is-single{
  grid-template-columns:1fr;
}

.compact-confirm-ok,
.compact-confirm-cancel,
.erp-swal-ok,
.erp-swal-cancel{
  border:none!important;
  border-radius:10px!important;
  min-height:40px!important;
  padding:0 14px!important;
  font-size:.8125rem!important;
  font-weight:600!important;
  font-family:inherit!important;
  transition:background .15s,border-color .15s,transform .15s!important;
}

.compact-confirm-ok,
.erp-swal-ok{
  background:var(--primary)!important;
  color:#fff!important;
}

.compact-confirm-ok:hover,
.erp-swal-ok:hover{
  background:var(--primary-dark)!important;
}

.compact-confirm-cancel,
.erp-swal-cancel{
  background:#fff!important;
  color:#374151!important;
  border:1px solid var(--border)!important;
}

.compact-confirm-cancel:hover,
.erp-swal-cancel:hover{
  background:#f9fafb!important;
  border-color:#d1d5db!important;
}

.erp-swal-ok.is-danger{background:var(--danger)!important;}
.erp-swal-ok.is-danger:hover{background:#dc2626!important;}

.erp-swal-ok.is-warning{background:var(--warning)!important;}
.erp-swal-ok.is-warning:hover{background:#d97706!important;}

div:where(.swal2-container) button.swal2-close{
  width:32px!important;
  height:32px!important;
  border-radius:8px!important;
  color:#9ca3af!important;
  transition:background .15s,color .15s!important;
}

div:where(.swal2-container) button.swal2-close:hover{
  background:#f3f4f6!important;
  color:#374151!important;
}

div:where(.swal2-container) .swal2-icon{display:none!important;}

@media(max-width:640px){
  div:where(.swal2-container) .swal2-actions.compact-confirm-actions,
  div:where(.swal2-container) .swal2-actions.erp-swal-actions{
    grid-template-columns:1fr;
  }
}