/* ============================================================================
   FM Method — Admin UI modernization overrides
   Loaded LAST in layouts/_head.blade.php so these token-driven rules win over
   the legacy "Stack/MDK" theme. Restyles shared component classes → modernizes
   every page with no per-page markup changes. (Enhancement spec, Part A / P1)
   ========================================================================== */

:root {
  --admin-bg:#f5f6fa;
  --admin-surface:#ffffff;
  --admin-border:#e6e8ef;
  --admin-border-strong:#d7dae5;
  --admin-text:#1f2430;
  --admin-muted:#6b7280;
  --admin-faint:#9aa1ad;

  --brand:#4338ca;        /* FM indigo   */
  --brand-600:#3730a3;
  --brand-050:#eef0fb;
  --accent:#eb0084;       /* FM magenta  */
  --success:#16a34a; --success-050:#e9f8ef;
  --warning:#d97706; --warning-050:#fdf3e6;
  --danger:#dc2626;  --danger-050:#fdeaea;
  --info:#0ea5e9;    --info-050:#e6f5fd;

  --sidebar-bg:#ffffff;
  --sidebar-text:#3b4252;

  --radius:14px; --radius-sm:10px; --radius-xs:8px;
  --shadow-sm:0 1px 2px rgba(16,24,40,.05);
  --shadow:0 6px 22px rgba(16,24,40,.07);
  --font:"Poppins","Hind Siliguri","Noto Sans Bengali",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}

/* ---- base ------------------------------------------------------------- */
body.layout-default,
body.layout-login-centered-boxed,
body.fm-auth {
  background:var(--admin-bg) !important;
  color:var(--admin-text);
  font-family:var(--font) !important;
  -webkit-font-smoothing:antialiased;
}
/* exclude icon fonts so Material Icons + FontAwesome glyphs still render */
body.layout-default *:not(.material-icons):not([class*="fa-"]) { font-family:var(--font); }
a { color:var(--brand); }
a:hover { color:var(--brand-600); }
.page__heading, h1,h2,h3,h4,h5 { color:var(--admin-text); font-weight:700; letter-spacing:-.01em; }
.text-muted { color:var(--admin-muted) !important; }

/* ---- scale: a touch smaller & tighter ---- */
body.layout-default { font-size:14px; }
.page__heading h1, .page__heading .h1 { font-size:1.5rem; letter-spacing:-.02em; }
h1 { font-size:1.6rem; } h2 { font-size:1.35rem; } h3 { font-size:1.18rem; } h4 { font-size:1.05rem; } h5 { font-size:.95rem; }
.card .h4, .h4 { font-size:1.3rem; }
.card-body { padding:1.1rem 1.25rem; }
.card-header, .card-header-large { padding:.9rem 1.25rem; }
.card-header__title { font-size:1rem; }
.card-subtitle { font-size:.8rem; }
.material-icons.icon-40pt { font-size:30px !important; }
.card .fas, .card .far, .card .fa, .card .fab { font-size:30px !important; }
small, .small { font-size:.8rem; }
/* KPI card hover lift */
a > .card.h-100 { transition:transform .12s ease, box-shadow .12s ease; }
a:hover > .card.h-100 { transform:translateY(-2px); box-shadow:var(--shadow); border-color:var(--admin-border-strong) !important; }

/* ---- topbar (was navbar-dark bg-primary → clean white bar) ------------ */
.navbar-main.bg-primary,
#navbar.navbar-main {
  background:var(--admin-surface) !important;
  border-bottom:1px solid var(--admin-border);
  box-shadow:0 2px 10px rgba(16,24,40,.04);
}
.navbar-main .navbar-toggler,
.navbar-main .material-icons,
.navbar-main .dropdown-toggle,
.navbar-main .nav-link { color:var(--admin-text) !important; }
.navbar-main .navbar-toggler-dashboard.border-left { border-left:1px solid var(--admin-border) !important; }
.navbar-main .dropdown-toggle:hover { color:var(--brand) !important; }

/* ---- sidebar (inverted: light surface, dark text, right border) ------- */
.sidebar.sidebar-dark,
.sidebar.bg-dark-gray {
  background:var(--sidebar-bg) !important;
  border-right:1px solid var(--admin-border);
  color:var(--admin-text);
}
.sidebar .sidebar-account { border-bottom:1px solid var(--admin-border); padding-bottom:1rem; }
.sidebar .sidebar-brand { color:var(--admin-text) !important; font-weight:800; letter-spacing:.3px; font-size:1.02rem; }
.sidebar .sidebar-account img { border-radius:0 !important; }
.sidebar .sidebar-heading {
  color:var(--admin-faint) !important;
  text-transform:uppercase; letter-spacing:.09em; font-size:.68rem; font-weight:700;
  padding-left:1.25rem;
}
.sidebar .sidebar-menu-button {
  color:var(--sidebar-text) !important;
  border-radius:10px; margin:2px 10px; padding:.6rem .8rem;
  transition:background .15s ease,color .15s ease;
}
.sidebar .sidebar-menu-button:hover { background:var(--brand-050) !important; color:var(--brand) !important; }
.sidebar .sidebar-menu-icon { color:var(--admin-muted) !important; opacity:1; }
.sidebar .sidebar-menu-button:hover .sidebar-menu-icon { color:var(--brand) !important; }
.sidebar .sidebar-menu-item.active > .sidebar-menu-button {
  background:var(--brand) !important; color:#fff !important;
  box-shadow:0 6px 16px rgba(67,56,202,.30);
}
.sidebar .sidebar-menu-item.active > .sidebar-menu-button .sidebar-menu-icon { color:#fff !important; }
.sidebar .collapse .sidebar-menu-button { padding-left:2.6rem; font-size:.92rem; }

/* ---- cards ------------------------------------------------------------ */
.card {
  background:var(--admin-surface);
  border:1px solid var(--admin-border) !important;
  border-radius:var(--radius) !important;
  box-shadow:var(--shadow-sm) !important;
}
.card .card-header { background:transparent; border-bottom:1px solid var(--admin-border); font-weight:600; }

/* ---- buttons ---------------------------------------------------------- */
.btn { border-radius:var(--radius-sm) !important; font-weight:600; letter-spacing:.01em; box-shadow:none !important; }
.btn:active { transform:translateY(1px); }
.btn-primary { background:var(--brand) !important; border-color:var(--brand) !important; }
.btn-primary:hover,.btn-primary:focus { background:var(--brand-600) !important; border-color:var(--brand-600) !important; }
.btn-secondary { background:#eef0f4 !important; border-color:#eef0f4 !important; color:var(--admin-text) !important; }
.btn-secondary:hover { background:#e2e5ec !important; border-color:#e2e5ec !important; }
.btn-success { background:var(--success) !important; border-color:var(--success) !important; }
.btn-danger  { background:var(--danger)  !important; border-color:var(--danger)  !important; }
.btn-info    { background:var(--info)    !important; border-color:var(--info)    !important; color:#fff !important; }
.btn-warning { background:var(--warning) !important; border-color:var(--warning) !important; color:#fff !important; }
.btn-outline-primary { color:var(--brand) !important; border-color:var(--brand) !important; }
.btn-outline-primary:hover { background:var(--brand) !important; color:#fff !important; }
.btn-sm { border-radius:var(--radius-xs) !important; }

/* ---- forms ------------------------------------------------------------ */
.form-control,.custom-select,.input-group-text {
  border:1px solid var(--admin-border-strong) !important;
  border-radius:var(--radius-sm) !important;
  padding:.55rem .85rem; color:var(--admin-text);
  box-shadow:none !important; transition:border-color .15s ease,box-shadow .15s ease;
}
.form-control:focus,.custom-select:focus {
  border-color:var(--brand) !important;
  box-shadow:0 0 0 3px rgba(67,56,202,.15) !important;
}
label,.text-label { font-weight:600; color:var(--admin-text); margin-bottom:.35rem; }
.input-group-text { background:#f5f6fa; color:var(--admin-muted); }

/* ---- tables ----------------------------------------------------------- */
.table { color:var(--admin-text); }
.table thead th,
.table thead.thead-dark th,
.table .thead-dark th {
  background:#f7f8fb !important; color:var(--admin-muted) !important;
  text-transform:uppercase; font-size:.72rem; letter-spacing:.05em; font-weight:700;
  border-top:0 !important; border-bottom:1px solid var(--admin-border) !important;
  padding:.85rem 1rem;
}
.table td,.table th { border-color:var(--admin-border) !important; vertical-align:middle !important; padding:.8rem 1rem; }
.table-bordered,.table-bordered td,.table-bordered th { border-color:var(--admin-border) !important; }
.table-hover tbody tr:hover { background:#f7f8fb !important; }
.table-striped tbody tr:nth-of-type(odd) { background:#fbfcfe; }
.table-responsive { border-radius:var(--radius); }

/* ---- badges ----------------------------------------------------------- */
.badge { border-radius:var(--radius-xs); padding:.4em .65em; font-weight:600; font-size:.72rem; }
.badge-primary { background:var(--brand-050) !important; color:var(--brand) !important; }
.badge-success { background:var(--success-050) !important; color:var(--success) !important; }
.badge-danger  { background:var(--danger-050)  !important; color:var(--danger)  !important; }
.badge-warning { background:var(--warning-050) !important; color:var(--warning) !important; }
.badge-info    { background:var(--info-050)    !important; color:var(--info)    !important; }
.badge-secondary { background:#eef0f4 !important; color:var(--admin-muted) !important; }

/* ---- alerts ----------------------------------------------------------- */
.alert { border-radius:var(--radius-sm); border:1px solid transparent; }
.alert-danger  { background:var(--danger-050);  color:var(--danger);  border-color:#f6cfcf; }
.alert-success { background:var(--success-050); color:var(--success); border-color:#c9ecd6; }
.alert-warning { background:var(--warning-050); color:var(--warning); border-color:#f2ddb8; }

/* ---- pagination ------------------------------------------------------- */
.pagination { gap:4px; }
.page-link { color:var(--brand); border:1px solid var(--admin-border); border-radius:var(--radius-xs) !important; margin:0; }
.page-item.active .page-link { background:var(--brand); border-color:var(--brand); color:#fff; }
.page-item.disabled .page-link { color:var(--admin-faint); }

/* ---- modals + sweetalert --------------------------------------------- */
.modal-content { border:0; border-radius:var(--radius); box-shadow:var(--shadow); }
.modal-header,.modal-footer { border-color:var(--admin-border); }
.swal2-popup { border-radius:16px !important; font-family:var(--font) !important; }
.swal2-styled { border-radius:var(--radius-sm) !important; font-weight:600; box-shadow:none !important; }
.swal2-styled.swal2-confirm { background:var(--brand) !important; }
.swal2-styled.swal2-cancel  { background:#eef0f4 !important; color:var(--admin-text) !important; }

/* ---- admin footer ----------------------------------------------------- */
.admin-footer {
  margin-top:auto;
  padding:1rem 0;
  border-top:1px solid var(--admin-border);
  background:var(--admin-surface);
  font-size:.82rem;
  color:var(--admin-muted);
}
.admin-footer strong { color:var(--admin-text); }
.admin-footer__right { color:var(--admin-muted); }

/* ---- misc chrome ------------------------------------------------------ */
.page__heading { margin-bottom:1rem; }
.page__container { max-width:1280px; }
hr { border-color:var(--admin-border); }
.dropdown-menu { border:1px solid var(--admin-border); border-radius:var(--radius-sm); box-shadow:var(--shadow); }
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-thumb { background:#c9cdd8; border-radius:8px; }
::-webkit-scrollbar-thumb:hover { background:#b3b8c6; }

/* ============================================================================
   Login screen (auth/login.blade.php uses .fm-auth-* classes)
   ========================================================================== */
body.fm-auth {
  min-height:100vh; margin:0; display:flex; align-items:center; justify-content:center;
  background:radial-gradient(1200px 600px at 100% 0%,rgba(235,0,132,.10),transparent 55%),
             radial-gradient(1000px 700px at 0% 100%,rgba(67,56,202,.14),transparent 55%),
             var(--admin-bg);
  padding:24px;
}
.fm-auth-card {
  width:100%; max-width:420px; background:var(--admin-surface);
  border:1px solid var(--admin-border); border-radius:20px;
  box-shadow:0 20px 60px rgba(16,24,40,.12); padding:36px 32px;
}
.fm-auth-brand { text-align:center; margin-bottom:22px; }
.fm-auth-brand img { width:150px; height:auto; }
.fm-auth-title { text-align:center; font-size:1.4rem; font-weight:800; margin:14px 0 2px; color:var(--admin-text); }
.fm-auth-sub { text-align:center; color:var(--admin-muted); font-size:.9rem; margin-bottom:22px; }
.fm-auth-field { margin-bottom:16px; }
.fm-auth-field label { display:block; font-size:.85rem; font-weight:600; margin-bottom:6px; color:var(--admin-text); }
.fm-auth-input {
  display:flex; align-items:center; gap:10px;
  border:1px solid var(--admin-border-strong); border-radius:12px; padding:0 14px;
  background:#fff; transition:border-color .15s,box-shadow .15s;
}
.fm-auth-input:focus-within { border-color:var(--brand); box-shadow:0 0 0 3px rgba(67,56,202,.15); }
.fm-auth-input i,.fm-auth-input .material-icons { color:var(--admin-faint); font-size:20px; }
.fm-auth-input input {
  border:0; outline:0; background:transparent; width:100%; padding:12px 0;
  font-size:.95rem; color:var(--admin-text); font-family:var(--font);
}
.fm-auth-btn {
  width:100%; border:0; border-radius:12px; padding:13px 16px; margin-top:6px;
  background:var(--brand); color:#fff; font-weight:700; font-size:1rem; cursor:pointer;
  transition:background .15s,transform .05s;
}
.fm-auth-btn:hover { background:var(--brand-600); }
.fm-auth-btn:active { transform:translateY(1px); }
.fm-auth-error {
  background:var(--danger-050); color:var(--danger); border:1px solid #f6cfcf;
  border-radius:12px; padding:12px 14px; margin-bottom:18px; font-size:.88rem;
}
.fm-auth-error ul { margin:0; padding-left:18px; }
.fm-auth-foot { text-align:center; color:var(--admin-faint); font-size:.78rem; margin-top:22px; }
