/* ==========================================================
   eKart MegaStore - Modern Admin Dashboard Stylesheet
   Dark-accented sidebar, glassmorphic KPI cards, crisp data tables
   ========================================================== */

:root {
  --admin-sidebar-w: 260px;
  --admin-sidebar-bg: #0F172A;
  --admin-sidebar-hover: #1E293B;
  --admin-sidebar-active: #4F46E5;
  --admin-sidebar-text: #94A3B8;
  --admin-sidebar-text-active: #FFFFFF;
  --admin-header-h: 64px;
  --admin-bg: #F8FAFC;
}

body.admin-body {
  background-color: var(--admin-bg);
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  color: #1E293B;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  display: flex;
}

/* Sidebar Navigation */
.admin-sidebar {
  width: var(--admin-sidebar-w);
  background: var(--admin-sidebar-bg);
  color: var(--admin-sidebar-text);
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1040;
  display: flex;
  flex-direction: column;
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);
  transition: transform 0.3s ease;
}

.admin-sidebar-brand {
  height: var(--admin-header-h);
  display: flex;
  align-items: center;
  padding: 0 1.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 800;
  font-size: 1.25rem;
  color: #FFFFFF;
  text-decoration: none;
}

.admin-sidebar-brand span {
  color: #F59E0B;
}

.admin-nav {
  list-style: none;
  padding: 1rem 0.75rem;
  margin: 0;
  flex: 1;
  overflow-y: auto;
}

.admin-nav-item {
  margin-bottom: 0.25rem;
}

.admin-nav-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem 1rem;
  color: var(--admin-sidebar-text);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  border-radius: 8px;
  transition: all 0.2s ease;
}

.admin-nav-link i {
  font-size: 1.15rem;
  color: #64748B;
  transition: color 0.2s ease;
}

.admin-nav-link:hover {
  background: var(--admin-sidebar-hover);
  color: #FFFFFF;
}

.admin-nav-link:hover i {
  color: #38BDF8;
}

.admin-nav-link.active {
  background: var(--admin-sidebar-active);
  color: #FFFFFF;
  box-shadow: 0 4px 12px rgba(79, 70, 229, 0.35);
}

.admin-nav-link.active i {
  color: #FFFFFF;
}

.admin-nav-header {
  font-size: 0.725rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  color: #64748B;
  padding: 1rem 1rem 0.5rem;
}

.admin-sidebar-footer {
  padding: 1rem 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

/* Main Content Area */
.admin-main {
  margin-left: var(--admin-sidebar-w);
  flex: 1;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.admin-topbar {
  height: var(--admin-header-h);
  background: #FFFFFF;
  border-bottom: 1px solid #E2E8F0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 2rem;
  position: sticky;
  top: 0;
  z-index: 1030;
}

.admin-content {
  padding: 2rem;
  flex: 1;
}

/* KPI Cards */
.kpi-card {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  padding: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.kpi-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
}

.kpi-title {
  font-size: 0.825rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
  color: #64748B;
  margin-bottom: 0.35rem;
}

.kpi-value {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1.75rem;
  font-weight: 700;
  color: #0F172A;
  margin: 0;
}

.kpi-icon-box {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
}

.kpi-icon-primary { background: #EEF2FF; color: #4F46E5; }
.kpi-icon-success { background: #ECFDF5; color: #10B981; }
.kpi-icon-warning { background: #FFFBEB; color: #F59E0B; }
.kpi-icon-info    { background: #F0F9FF; color: #0EA5E9; }

/* Admin Panels & Tables */
.admin-card {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  overflow: hidden;
  margin-bottom: 1.5rem;
}

.admin-card-header {
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid #E2E8F0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #FAFAFA;
}

.admin-card-title {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: #0F172A;
  margin: 0;
}

.admin-card-body {
  padding: 1.5rem;
}

/* Custom Table in Admin */
.admin-table-wrapper {
  overflow-x: auto;
}

.table.admin-table {
  margin-bottom: 0;
  vertical-align: middle;
}

.table.admin-table th {
  background: #F8FAFC;
  color: #475569;
  font-size: 0.775rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid #E2E8F0;
}

.table.admin-table td {
  padding: 0.85rem 1rem;
  border-bottom: 1px solid #F1F5F9;
  font-size: 0.875rem;
  color: #334155;
}

.table.admin-table tr:hover td {
  background-color: #F8FAFC;
}

/* Badges */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 0.35em 0.65em;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
  border-radius: 9999px;
  text-transform: capitalize;
}

.badge-success   { background-color: #ECFDF5; color: #047857; }
.badge-warning   { background-color: #FFFBEB; color: #B45309; }
.badge-danger    { background-color: #FEF2F2; color: #B91C1C; }
.badge-info      { background-color: #F0F9FF; color: #0369A1; }
.badge-primary   { background-color: #EEF2FF; color: #4338CA; }
.badge-secondary { background-color: #F1F5F9; color: #475569; }

/* Responsive adjustments */
@media (max-width: 991.98px) {
  .admin-sidebar {
    transform: translateX(-100%);
  }
  .admin-sidebar.show {
    transform: translateX(0);
  }
  .admin-main {
    margin-left: 0;
  }
}

/* ==========================================================
   Comprehensive Responsive Print Styles for Paper (A4 / Letter)
   ========================================================== */
/* ==========================================================
   Comprehensive Responsive Print Styles for Paper (A4 / Letter)
   ========================================================== */
@page {
  size: A4 portrait;
  margin: 8mm 10mm 8mm 10mm;
}

@media print {
  /* 1. Force exact colors, borders, and background shading on paper */
  *,
  *::before,
  *::after {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
    text-shadow: none !important;
    box-sizing: border-box !important;
  }

  /* 2. Hide non-printable browser UI, sidebars, navigation & form controls */
  .admin-sidebar,
  .admin-topbar,
  .admin-sidebar-brand,
  .admin-nav,
  .admin-sidebar-footer,
  .btn,
  button,
  .btn-group,
  .no-print,
  nav[aria-label="breadcrumb"],
  .modal-footer,
  .modal-header .btn-close,
  .alert-dismissible .btn-close,
  form input,
  form select,
  form button,
  form .input-group,
  .pagination,
  .modal-backdrop,
  #customDates,
  .modal:not(.show) {
    display: none !important;
  }

  /* 3. Reset main viewport & wrapper to 100% printable paper width */
  html,
  body,
  body.admin-body {
    background: #FFFFFF !important;
    color: #0F172A !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    font-size: 8.5pt !important;
    line-height: 1.35 !important;
    overflow: visible !important;
  }

  .admin-main {
    margin-left: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: auto !important;
    display: block !important;
    float: none !important;
  }

  .admin-content {
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
  }

  .container,
  .container-fluid {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* 4. Responsive Containers & Cards inside Paper Boundaries */
  .admin-card,
  .card {
    border: 1px solid #CBD5E1 !important;
    box-shadow: none !important;
    margin-bottom: 10px !important;
    border-radius: 6px !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    width: 100% !important;
    background: #FFFFFF !important;
  }

  .admin-card-header,
  .card-header {
    background: #F8FAFC !important;
    border-bottom: 1px solid #CBD5E1 !important;
    padding: 6px 10px !important;
  }

  .admin-card-body,
  .card-body {
    padding: 8px 10px !important;
  }

  /* Prevent negative margin bleed from rows onto paper margins */
  .row {
    display: flex !important;
    flex-wrap: wrap !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .row > * {
    padding-right: 5px !important;
    padding-left: 5px !important;
  }

  /* Paper responsive grid columns */
  .col-6.col-lg-3,
  .col-lg-3 {
    width: 25% !important;
    flex: 0 0 25% !important;
    max-width: 25% !important;
  }

  .col-md-4 {
    width: 33.333% !important;
    flex: 0 0 33.333% !important;
    max-width: 33.333% !important;
  }

  .col-6,
  .col-md-6 {
    width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50% !important;
  }

  .col-12 {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  /* 5. Responsive Data Tables inside paper width */
  .table-responsive,
  .admin-table-wrapper {
    overflow: visible !important;
    width: 100% !important;
    display: block !important;
  }

  table,
  .table,
  .admin-table {
    width: 100% !important;
    max-width: 100% !important;
    border-collapse: collapse !important;
    table-layout: auto !important;
    margin-bottom: 0 !important;
  }

  table th,
  .table th,
  .admin-table th {
    background-color: #F1F5F9 !important;
    color: #1E293B !important;
    border: 1px solid #CBD5E1 !important;
    padding: 4px 6px !important;
    font-size: 7.5pt !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
  }

  table td,
  .table td,
  .admin-table td {
    border: 1px solid #E2E8F0 !important;
    padding: 4px 6px !important;
    font-size: 7.5pt !important;
    word-break: break-word !important;
  }

  td.font-monospace,
  th.text-end,
  td.text-end {
    white-space: nowrap !important;
  }

  thead {
    display: table-header-group !important;
  }

  tfoot {
    display: table-footer-group !important;
  }

  tr {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  /* 6. Typography scaling for paper */
  h1, .h1 { font-size: 15pt !important; }
  h2, .h2 { font-size: 13pt !important; }
  h3, .h3 { font-size: 11.5pt !important; }
  h4, .h4 { font-size: 10.5pt !important; }
  h5, .h5 { font-size: 9.5pt !important; }
  h6, .h6 { font-size: 8.5pt !important; }

  h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid !important;
    break-after: avoid !important;
    color: #0F172A !important;
    margin-bottom: 3px !important;
  }

  /* Badges on paper */
  .badge {
    border: 1px solid #94A3B8 !important;
    padding: 2px 5px !important;
    font-size: 6.5pt !important;
    border-radius: 4px !important;
  }

  /* 7. Modal & Voucher Certificate Printing */
  body.modal-open {
    visibility: hidden !important;
  }

  body.modal-open .modal.show {
    visibility: visible !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    margin: 0 auto !important;
    display: block !important;
    background: transparent !important;
    padding: 0 !important;
  }

  body.modal-open .modal.show * {
    visibility: visible !important;
  }

  body.modal-open .modal.show .modal-dialog {
    max-width: 620px !important;
    width: 100% !important;
    margin: 20px auto !important;
    transform: none !important;
  }

  body.modal-open .modal.show .modal-content {
    border: 2px solid #B8860B !important;
    box-shadow: none !important;
    border-radius: 8px !important;
    padding: 14px !important;
    background: #FFFFFF !important;
  }

  body.modal-open .modal.show .btn,
  body.modal-open .modal.show .btn-close,
  body.modal-open .modal-backdrop {
    display: none !important;
  }
}

