html { font-size: 15px; }
:root {
  --sv-green-900: #063f2a;
  --sv-green-800: #075436;
  --sv-green-700: #0b6b45;
  --sv-green-600: #0f8a57;
  --sv-green-500: #16a365;
  --sv-green-100: #dcfce7;
  --sv-green-50: #f0fdf4;
}
body { background: #f3f8f5; color: #1f2937; }
* { transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease; }
a { color: var(--sv-green-700); }
a:hover { color: var(--sv-green-900); }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 250px; background: linear-gradient(180deg, var(--sv-green-900), #052f21); color: white; padding: 22px 14px; z-index: 1040; }
.brand { font-weight: 800; font-size: 1.25rem; margin: 0 4px 18px; display: grid; gap: 10px; padding: 4px 8px 16px; border-bottom: 1px solid rgba(255,255,255,.14); }
.brand-system { font-size: 1.45rem; line-height: 1; }
.brand small { color: #a7f3c3; font-size: .72rem; font-weight: 600; }
.sidebar nav { display: grid; gap: 10px; }
.sidebar a { color: #dff8ea; text-decoration: none; padding: 10px 12px; border-radius: 8px; }
.sidebar a:hover, .sidebar a.active { background: rgba(255,255,255,.16); color: #fff; }
.side-nav { padding-bottom: 22px; }
.nav-group { border: 1px solid rgba(255,255,255,.08); border-radius: 8px; background: rgba(255,255,255,.035); overflow: hidden; }
.nav-section {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0;
  border: 0;
  background: transparent;
  color: #8de0ad;
  text-transform: uppercase;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .08em;
  padding: 10px 12px 7px;
}
.nav-chevron { font-size: .9rem; transform: rotate(0); opacity: .8; }
.nav-group:not(.open) .nav-chevron { transform: rotate(-90deg); }
.nav-group-links { display: grid; gap: 4px; padding: 0 6px 8px; }
.nav-group:not(.open) .nav-group-links { display: none; }
.sidebar .nav-link {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  color: #dff8ea;
  padding: 10px 10px;
  border-radius: 8px;
  font-weight: 700;
}
.sidebar .nav-link svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  fill: currentColor;
  opacity: .9;
}
.sidebar .nav-link span { min-width: 0; }
.sidebar .nav-link:hover {
  background: rgba(255,255,255,.12);
  color: #fff;
  transform: translateX(2px);
}
.sidebar .nav-link.active {
  background: linear-gradient(135deg, rgba(255,255,255,.2), rgba(167,243,195,.16));
  color: #fff;
  box-shadow: inset 3px 0 0 #bbf7d0, 0 8px 22px rgba(0,0,0,.12);
}
.mobile-menu-toggle { display: none; position: fixed; top: 10px; left: 10px; z-index: 1050; border: 0; border-radius: 8px; background: var(--sv-green-800); color: #fff; padding: 8px 12px; }
.app-main { margin-left: 250px; min-height: 100vh; }
.login-main { min-height: 100vh; display: grid; place-items: center; }
.content { padding: 24px; }
.navbar { box-shadow: 0 6px 18px rgba(6, 63, 42, .06); }
.operational-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; background: rgba(255,255,255,.94); border-bottom: 1px solid #d9eadf; padding: 14px 24px; position: sticky; top: 0; z-index: 1020; backdrop-filter: blur(10px); }
.module-heading h1 { margin: 0; font-size: 1.35rem; font-weight: 900; color: var(--sv-green-900); letter-spacing: 0; }
.module-kicker { color: var(--sv-green-700); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 900; }
.context-bar { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.context-chip { display: inline-flex; align-items: center; gap: .35rem; border-radius: 999px; background: #f8fafc; color: #315949; border: 1px solid #d9eadf; padding: .38rem .72rem; font-size: .82rem; font-weight: 700; text-decoration: none; }
.context-chip-ok { background: var(--sv-green-100); color: var(--sv-green-900); border-color: #a7f3c3; }
.context-chip-warn { background: #fff7ed; color: #9a3412; border-color: #fed7aa; }
.page-card, .metric, .table-panel { background: white; border: 1px solid #d9eadf; border-radius: 8px; box-shadow: 0 8px 24px rgba(6, 63, 42, .07); animation: contentIn .18s ease-out; }
.page-card:hover, .metric:hover, .table-panel:hover { box-shadow: 0 10px 28px rgba(6, 63, 42, .1); }
.metric { padding: 18px; }
.metric-label { color: #4b6f5c; font-size: .86rem; }
.metric-value { font-size: 1.8rem; font-weight: 800; color: var(--sv-green-800); }
.metric-note { margin-top: 4px; color: #64748b; font-size: .78rem; font-weight: 700; }
.metric-dashboard { min-height: 116px; display: flex; flex-direction: column; justify-content: center; }
.table-panel { padding: 18px; }
.module-header { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 18px; padding: 20px; border-radius: 8px; background: linear-gradient(135deg, #ffffff, #f0fdf4); border: 1px solid #d9eadf; box-shadow: 0 8px 24px rgba(6, 63, 42, .06); }
.module-header h2 { margin: 0; color: var(--sv-green-900); font-weight: 900; letter-spacing: 0; }
.module-header p { margin: 4px 0 0; color: #64748b; }
.module-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 18px; padding: 16px 18px; border-radius: 8px; background: linear-gradient(135deg, #ffffff, #f0fdf4); border: 1px solid #d9eadf; box-shadow: 0 8px 24px rgba(6, 63, 42, .06); }
.module-toolbar p { margin: 0; color: #64748b; }
.list-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.search-box { display: flex; gap: 8px; flex: 1 1 360px; max-width: 620px; }
.modern-table thead th { background: #f8fafc; }
.modern-table tbody tr { border-color: #edf5ef; }
.pagination-strip { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: #64748b; font-size: .88rem; padding-top: 12px; border-top: 1px solid #edf5ef; }
.guided-form { display: grid; gap: 18px; }
.form-section { border: 1px solid #e2eee6; border-radius: 8px; padding: 16px; background: #fbfefc; }
.form-section-title { margin-bottom: 14px; }
.form-section-title h3 { font-size: 1rem; margin: 0; color: var(--sv-green-900); font-weight: 900; }
.form-section-title p, .field-help { margin: 4px 0 0; color: #64748b; font-size: .82rem; }
.action-bar { display: flex; justify-content: flex-end; gap: 10px; padding-top: 14px; border-top: 1px solid #e2eee6; }
.status-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: .28rem .62rem; font-size: .78rem; font-weight: 800; border: 1px solid transparent; }
.status-ok { background: var(--sv-green-100); color: var(--sv-green-900); border-color: #a7f3c3; }
.status-muted { background: #f1f5f9; color: #475569; border-color: #cbd5e1; }
.status-warning { background: #fef3c7; color: #92400e; border-color: #f59e0b; }
.summary-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin-bottom: 16px; }
.dashboard-summary-strip { margin-top: -4px; margin-bottom: 24px; }
.summary-item { padding: 12px; border: 1px solid #d9eadf; border-radius: 8px; background: #fbfefc; }
.summary-item small { display: block; color: #64748b; }
.summary-item strong { color: var(--sv-green-900); font-size: 1.05rem; }
.file-input { max-width: 420px; }
.table thead th { color: #315949; font-size: .82rem; text-transform: uppercase; letter-spacing: .02em; border-bottom-color: #cfe3d7; }
.table > :not(caption) > * > * { padding: .8rem .75rem; }
.actions { white-space: nowrap; }
.invoice { background: white; color: #111827; max-width: 920px; margin: 0 auto; padding: 32px; border: 1px solid #e5e7eb; position: relative; }
.invoice * { color: inherit; }
.invoice .text-muted { color: #6b7280 !important; }
.invoice .border-bottom { border-bottom-color: #d1d5db !important; }
.invoice .table { color: #111827; border-color: #d1d5db; }
.invoice .table thead th { color: #063f2a; border-bottom-color: #063f2a; background: #fff; }
.invoice .table tbody td { color: #111827; border-color: #e5e7eb; background: #fff; }
.invoice .fs-3, .invoice .fs-4, .invoice .fw-bold, .invoice strong { color: #063f2a; }
.ticket { max-width: 302px; font-size: 12px; }
.btn-primary { background-color: var(--sv-green-700); border-color: var(--sv-green-700); }
.btn-primary:hover, .btn-primary:focus { background-color: var(--sv-green-800); border-color: var(--sv-green-800); }
.btn-outline-primary { color: var(--sv-green-700); border-color: var(--sv-green-700); }
.btn-outline-primary:hover, .btn-outline-primary:focus { background-color: var(--sv-green-700); border-color: var(--sv-green-700); color: #fff; }
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: var(--sv-green-500);
  box-shadow: 0 0 0 .2rem rgba(22, 163, 101, .18);
}
.form-check-input:checked { background-color: var(--sv-green-700); border-color: var(--sv-green-700); }
.table-hover tbody tr:hover { --bs-table-accent-bg: var(--sv-green-50); }
.alert-success { background-color: var(--sv-green-100); border-color: #a7f3c3; color: var(--sv-green-900); }
.toast-container { z-index: 2000; }
.luisoft-toast {
  border: 0;
  border-left: 5px solid var(--sv-green-700);
  border-radius: 8px;
  box-shadow: 0 18px 46px rgba(6, 63, 42, .18);
  overflow: hidden;
}
.luisoft-toast .toast-header { background: #fff; color: #1f2937; border-bottom-color: #e5e7eb; }
.luisoft-toast .toast-body { background: #fbfefc; color: #1f2937; font-weight: 600; }
.toast-success { border-left-color: var(--sv-green-700); }
.toast-error { border-left-color: #dc2626; }
.toast-warning { border-left-color: #f59e0b; }
.toast-info { border-left-color: #0f766e; }
.page-loader {
  position: fixed;
  inset: 0;
  z-index: 2100;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(243, 248, 245, .58);
  opacity: 0;
  pointer-events: none;
  backdrop-filter: blur(3px);
}
.page-loader.is-active {
  opacity: 1;
  pointer-events: auto;
}
.page-loader-card {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-width: 190px;
  justify-content: center;
  border-radius: 8px;
  border: 1px solid #cfead9;
  background: rgba(255,255,255,.96);
  color: var(--sv-green-900);
  padding: 14px 18px;
  box-shadow: 0 18px 46px rgba(6, 63, 42, .18);
  font-weight: 900;
}
.page-loader-spinner,
.btn-loading-spinner {
  display: inline-block;
  border-radius: 999px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  animation: loaderSpin .7s linear infinite;
}
.page-loader-spinner {
  width: 24px;
  height: 24px;
  color: var(--sv-green-700);
}
.btn-loading-spinner {
  width: 1em;
  height: 1em;
  margin-right: .45rem;
  vertical-align: -.12em;
}
.btn.is-loading,
.btn[aria-busy="true"] {
  cursor: wait;
  pointer-events: none;
}
.btn.is-loading {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .15rem;
}
.badge-sale-active { background: var(--sv-green-100); color: var(--sv-green-900); border: 1px solid #a7f3c3; }
.badge-sale-cancelled { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; font-weight: 900; }
.table-danger-soft {
  --bs-table-bg: #fff1f2;
  --bs-table-hover-bg: #ffe4e6;
  --bs-table-color: #7f1d1d;
  --bs-table-border-color: #fecaca;
  box-shadow: inset 4px 0 0 #dc2626;
}
.table-danger-soft > * { color: #7f1d1d !important; }
.table-danger-soft a:not(.btn) { color: #991b1b; }
.table-danger-soft .btn-outline-secondary { color: #991b1b; border-color: #fca5a5; background: #fff; }
.table-danger-soft .btn-outline-secondary:hover { background: #fee2e2; color: #7f1d1d; }
.sales-registry { display: grid; gap: 10px; }
.sale-register-item {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 14px;
  padding: 14px;
  border: 1px solid #d9eadf;
  border-radius: 8px;
  background: #fff;
}
.sale-register-item:hover { border-color: #a7f3c3; transform: translateY(-1px); box-shadow: 0 8px 22px rgba(6, 63, 42, .08); }
.sale-register-item.is-cancelled { background: #fff1f2; border-color: #fecaca; }
.sale-register-date { display: grid; place-items: center; border-radius: 8px; background: var(--sv-green-50); color: var(--sv-green-900); padding: 8px 6px; text-transform: uppercase; }
.sale-register-date strong { font-size: 1.25rem; line-height: 1; }
.sale-register-date span, .sale-register-date small { font-size: .72rem; font-weight: 800; }
.sale-register-main { min-width: 0; }
.sale-register-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; color: #64748b; font-size: .86rem; }
.sale-register-total { color: var(--sv-green-900); font-size: 1.2rem; font-weight: 900; white-space: nowrap; }
.sale-register-actions { display: flex; gap: 6px; justify-content: flex-end; }
.cash-status { border-radius: 999px; padding: .28rem .7rem; font-size: .82rem; text-decoration: none; font-weight: 700; }
.cash-status-open { background: var(--sv-green-100); color: var(--sv-green-900); }
.cash-status-closed { background: #fee2e2; color: #991b1b; }
.cash-pill { display: inline-flex; gap: .35rem; align-items: center; border-radius: 999px; background: #eef8f2; color: var(--sv-green-900); padding: .45rem .75rem; border: 1px solid #cfead9; }
.cash-difference {
  display: flex;
  align-items: center;
  min-height: 42px;
  border: 1px solid #d9eadf;
  border-radius: 8px;
  padding: .55rem .75rem;
  background: #fbfefc;
  color: var(--sv-green-900);
  font-size: 1.15rem;
  font-weight: 900;
}
.cash-difference.is-bad {
  background: #fff7ed;
  color: #9a3412;
  border-color: #fed7aa;
}
.cash-difference.is-ok {
  background: var(--sv-green-100);
  color: var(--sv-green-900);
  border-color: #a7f3c3;
}
.back-button { border-radius: 999px; font-weight: 700; }
.dashboard-hero {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 26px;
  color: #fff;
  background: linear-gradient(135deg, var(--sv-green-900), var(--sv-green-700));
  border-radius: 8px;
  box-shadow: 0 14px 34px rgba(6, 63, 42, .16);
  animation: contentIn .18s ease-out;
}
.dashboard-kicker { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: #b8f2cc; font-weight: 800; }
.dashboard-title { margin: 0; font-size: 1.9rem; font-weight: 900; letter-spacing: 0; }
.dashboard-subtitle { margin: .35rem 0 0; color: #e6fff0; }
.dashboard-hero-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.dashboard-alert { border-radius: 8px; border-color: #fde68a; }
.quick-actions { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.quick-action {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  min-height: 82px;
  color: #1f2937;
  text-decoration: none;
  background: #fff;
  border: 1px solid #d9eadf;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(6, 63, 42, .06);
}
.quick-action:hover { color: var(--sv-green-900); border-color: #a7f3c3; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(6, 63, 42, .12); }
.quick-action small { display: block; color: #64748b; margin-top: 2px; }
.quick-action-icon {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: var(--sv-green-100);
  color: var(--sv-green-900);
  font-weight: 900;
}
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .85fr); gap: 18px; align-items: start; }
.dashboard-side { display: grid; gap: 18px; }
.dashboard-chart-panel { min-height: 430px; }
.chart-wrap { height: 340px; }
.empty-state { display: grid; place-items: center; min-height: 120px; color: #64748b; background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 8px; text-align: center; padding: 16px; }
.list-stack { display: grid; gap: 10px; }
.list-stack-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid #e2eee6;
  border-radius: 8px;
  background: #fbfefc;
  color: inherit;
}
.list-stack-item:hover { background: var(--sv-green-50); border-color: #bceacb; }
.employee-panel { background: #fbfefc; border: 1px solid #d9eadf; border-radius: 8px; padding: 14px; }
.employee-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.employee-chip { padding: 12px; border: 1px solid #d9eadf; border-radius: 8px; background: #fff; }
.employee-count { display: inline-grid; place-items: center; min-width: 34px; height: 28px; border-radius: 999px; background: var(--sv-green-100); color: var(--sv-green-900); font-weight: 800; }
.sale-workspace { display: grid; gap: 16px; }
.sale-form { display: grid; gap: 16px; }
.sale-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px; }
.sale-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(340px, .65fr); gap: 18px; align-items: start; }
.sale-search { max-width: 320px; }
.product-picker { display: grid; gap: 10px; max-height: 62vh; overflow: auto; padding-right: 4px; }
.product-pick {
  width: 100%;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px;
  text-align: left;
  background: #fff;
  border: 1px solid #d9eadf;
  border-radius: 8px;
}
.product-pick:hover { background: var(--sv-green-50); border-color: #a7f3c3; transform: translateY(-1px); }
.product-pick:disabled { cursor: not-allowed; opacity: .58; transform: none; }
.product-pick-main, .product-pick-side, .sale-cart-product div { display: grid; gap: 2px; min-width: 0; }
.product-pick-main strong, .sale-cart-product strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.product-pick-main small, .product-pick-side small, .sale-cart-product small { color: #64748b; }
.product-pick-side { text-align: right; }
.sale-cart-panel { position: sticky; top: 16px; }
.sale-cart-items { display: grid; gap: 10px; }
.sale-cart-item { display: grid; gap: 10px; padding: 12px; border: 1px solid #e2eee6; border-radius: 8px; background: #fbfefc; }
.sale-cart-product { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; }
.sale-cart-controls { display: grid; grid-template-columns: 86px minmax(90px, 1fr) auto; gap: 8px; align-items: center; }
.purchase-controls { grid-template-columns: 76px 104px minmax(90px, 1fr) auto; }
.sale-total { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; padding-top: 14px; border-top: 1px solid #d9eadf; font-size: 1.25rem; }
.sale-total strong { color: var(--sv-green-800); font-size: 1.65rem; }
.product-thumb { width: 48px; height: 48px; object-fit: cover; border-radius: 8px; border: 1px solid #d9eadf; background: #f8fafc; }
.product-thumb-lg { width: 84px; height: 84px; object-fit: cover; border-radius: 8px; border: 1px solid #d9eadf; background: #f8fafc; }
.company-logo-preview { width: 120px; height: 80px; object-fit: contain; border-radius: 8px; border: 1px solid #d9eadf; background: #f8fafc; padding: 8px; }
.product-detail-image { max-width: 220px; max-height: 220px; object-fit: cover; border-radius: 8px; border: 1px solid #d9eadf; }
.product-thumb-placeholder { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 8px; border: 1px dashed #cbd5e1; color: #64748b; font-size: .7rem; text-align: center; }
.stamp-cancelled { position: absolute; inset: 95px 30px auto auto; transform: rotate(-12deg); border: 4px solid #b91c1c; color: #b91c1c; font-size: 2.4rem; font-weight: 900; padding: .2rem 1rem; opacity: .85; }
.filter-input { max-width: 280px; }
.filter-select { max-width: 190px; }
.login-main { background: #052f21; overflow: hidden; }
.login-landing {
  position: relative;
  width: 100%;
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  align-items: center;
  gap: 28px;
  padding: clamp(22px, 4vw, 58px);
  color: #fff;
  background:
    linear-gradient(120deg, rgba(5,47,33,.96), rgba(11,107,69,.86)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 86px);
}
.login-landing::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 20%, rgba(255,255,255,.08) 48%, transparent 72%);
  animation: loginSweep 8s ease-in-out infinite;
  pointer-events: none;
}
.login-hero, .login-preview { position: relative; z-index: 1; }
.login-brandline { display: flex; align-items: center; gap: 12px; margin-bottom: clamp(26px, 5vw, 58px); }
.login-brandline strong { display: block; font-size: 1.2rem; }
.login-brandline span { display: block; color: #c8f8d8; font-size: .9rem; }
.login-brandline-dark span { color: #64748b; }
.login-brand-mark { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 8px; background: #fff; color: var(--sv-green-800); font-weight: 900; }
.login-kicker { display: inline-flex; margin-bottom: 12px; color: #b8f2cc; font-weight: 900; text-transform: uppercase; font-size: .78rem; letter-spacing: .08em; }
.login-copy h1 { max-width: 760px; font-size: clamp(2.1rem, 5vw, 4.9rem); line-height: .98; font-weight: 900; letter-spacing: 0; margin: 0; }
.login-copy p { max-width: 680px; margin: 18px 0 0; color: #e6fff0; font-size: 1.06rem; }
.login-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.login-feature-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 34px; max-width: 860px; }
.login-feature-grid div { padding: 14px; border: 1px solid rgba(255,255,255,.18); border-radius: 8px; background: rgba(255,255,255,.09); backdrop-filter: blur(8px); }
.login-feature-grid strong, .login-feature-grid span { display: block; }
.login-feature-grid span { color: #d6fbe3; font-size: .86rem; margin-top: 4px; }
.login-preview { min-height: 520px; }
.preview-window { border: 1px solid rgba(255,255,255,.18); border-radius: 8px; background: rgba(255,255,255,.14); box-shadow: 0 28px 80px rgba(0,0,0,.28); backdrop-filter: blur(14px); }
.preview-main { padding: 18px; animation: previewFloat 6s ease-in-out infinite; }
.preview-topbar { display: flex; gap: 6px; margin-bottom: 18px; }
.preview-topbar span { width: 10px; height: 10px; border-radius: 999px; background: #b8f2cc; }
.preview-header { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 16px; border-radius: 8px; background: #fff; color: #1f2937; }
.preview-header small, .preview-metrics small { display: block; color: #64748b; }
.preview-header span { border-radius: 999px; background: var(--sv-green-100); color: var(--sv-green-900); padding: .35rem .65rem; font-size: .8rem; font-weight: 800; }
.preview-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 12px; }
.preview-metrics div { padding: 14px; border-radius: 8px; background: #fff; color: #1f2937; }
.preview-metrics strong { color: var(--sv-green-800); font-size: 1.2rem; }
.preview-list { display: grid; gap: 10px; margin-top: 14px; }
.preview-list span { height: 44px; border-radius: 8px; background: rgba(255,255,255,.72); animation: previewPulse 2.4s ease-in-out infinite; }
.preview-list span:nth-child(2) { animation-delay: .2s; width: 90%; }
.preview-list span:nth-child(3) { animation-delay: .4s; width: 96%; }
.preview-list span:nth-child(4) { animation-delay: .6s; width: 84%; }
.preview-floating { position: absolute; padding: 14px 16px; display: grid; gap: 3px; }
.preview-floating span { color: #d6fbe3; }
.preview-one { right: 8%; top: 42px; animation: previewDrift 7s ease-in-out infinite; }
.preview-two { left: -12px; bottom: 70px; animation: previewDrift 8s ease-in-out infinite reverse; }
.login-panel { position: fixed; inset: 0; z-index: 2000; display: grid; place-items: center; padding: 18px; background: rgba(5, 47, 33, .58); opacity: 0; pointer-events: none; backdrop-filter: blur(8px); }
.login-panel.open { opacity: 1; pointer-events: auto; }
.login-card { width: min(430px, 94vw); background: #fff; color: #1f2937; border-radius: 8px; padding: 24px; box-shadow: 0 28px 80px rgba(0,0,0,.32); transform: translateY(14px) scale(.98); }
.login-panel.open .login-card { transform: translateY(0) scale(1); }
.login-close { float: right; border: 0; background: #f1f5f9; color: #475569; border-radius: 999px; padding: .35rem .7rem; font-size: .8rem; font-weight: 800; }
@keyframes contentIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes loginSweep {
  0%, 100% { transform: translateX(-40%); opacity: .22; }
  50% { transform: translateX(40%); opacity: .55; }
}
@keyframes previewFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}
@keyframes previewDrift {
  0%, 100% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-10px) translateX(8px); }
}
@keyframes previewPulse {
  0%, 100% { opacity: .7; }
  50% { opacity: 1; }
}
@keyframes loaderSpin {
  to { transform: rotate(360deg); }
}
@media (max-width: 800px) {
  .mobile-menu-toggle { display: block; }
  .sidebar { transform: translateX(-105%); width: min(82vw, 280px); }
  .sidebar.open { transform: translateX(0); }
  .app-main { margin-left: 0; }
  .navbar { padding-left: 76px !important; align-items: flex-start; gap: 8px; }
  .navbar .ms-auto { flex-wrap: wrap; justify-content: flex-end; }
  .operational-header { align-items: flex-start; flex-direction: column; padding: 12px 16px 12px 76px; }
  .context-bar { justify-content: flex-start; }
  .context-chip { max-width: min(100%, 320px); }
  .context-chip-user { max-width: min(100%, 260px); }
  .module-header, .module-toolbar { align-items: flex-start; flex-direction: column; padding: 16px; }
  .search-box { max-width: none; width: 100%; }
  .search-box .form-control { min-width: 0; }
  .pagination-strip { align-items: flex-start; flex-direction: column; }
  .action-bar { position: sticky; bottom: 0; background: rgba(255,255,255,.96); padding: 12px; margin: 0 -12px -12px; }
  .content { padding: 16px; }
  .filter-input, .filter-select { max-width: none; width: 100%; }
  .table-panel { padding: 12px; }
  .actions { white-space: normal; }
  .btn { margin-bottom: 2px; }
  .page-loader-card { width: min(92vw, 320px); }
  .dashboard-hero { align-items: flex-start; flex-direction: column; padding: 20px; }
  .dashboard-title { font-size: 1.55rem; }
  .dashboard-hero-actions { width: 100%; justify-content: stretch; }
  .dashboard-hero-actions .btn { flex: 1 1 auto; }
  .quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-action { min-height: 74px; padding: 12px; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .dashboard-chart-panel { min-height: auto; }
  .chart-wrap { height: 260px; }
  .list-stack-item { align-items: flex-start; }
  .employee-grid { grid-template-columns: 1fr; }
  .sale-header { align-items: flex-start; flex-direction: column; }
  .sale-grid { grid-template-columns: 1fr; }
  .sale-search { max-width: none; width: 100%; }
  .product-picker { max-height: none; }
  .sale-cart-panel { position: static; }
  .sale-register-item { grid-template-columns: 54px minmax(0, 1fr); align-items: flex-start; }
  .sale-register-total, .sale-register-actions { grid-column: 2; justify-content: flex-start; }
  .product-pick { grid-template-columns: auto minmax(0, 1fr); }
  .product-pick-side { grid-column: 2; text-align: left; }
  .sale-cart-controls { grid-template-columns: 80px 1fr; }
  .purchase-controls { grid-template-columns: 1fr 1fr; }
  .sale-cart-controls .btn { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .quick-actions { grid-template-columns: 1fr; }
  .metric-dashboard { min-height: 96px; }
  .login-actions .btn { width: 100%; }
}
@media (max-width: 980px) {
  .login-landing { grid-template-columns: 1fr; }
  .login-preview { display: none; }
  .login-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .login-feature-grid { grid-template-columns: 1fr; }
}
@media print {
  body { background: white; }
  .sidebar, .navbar, .no-print { display: none !important; }
  .app-main { margin-left: 0; }
  .content { padding: 0; }
  .invoice {
    background: #fff !important;
    color: #111827 !important;
    border: 0;
    box-shadow: none;
    max-width: none;
  }
  .invoice * {
    color: #111827 !important;
    background-color: transparent !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  .invoice .text-muted { color: #4b5563 !important; }
  .invoice .fs-3, .invoice .fs-4, .invoice .fw-bold, .invoice strong, .invoice .table thead th { color: #000 !important; }
  .invoice .table { color: #111827 !important; border-color: #111827 !important; }
  .invoice .table thead th { border-bottom-color: #111827 !important; }
  .invoice .table tbody td { color: #111827 !important; border-color: #d1d5db !important; }
  .invoice .border-bottom { border-bottom-color: #111827 !important; }
  .company-logo-preview { background: #fff !important; border-color: #d1d5db !important; }
  @page { size: A4; margin: 12mm; }
}

/* Refinamientos multirubro, login extendido y dark mode */
.sidebar { overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.28) transparent; }
.sidebar::-webkit-scrollbar { width: 8px; }
.sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.24); border-radius: 999px; }
.theme-toggle { white-space: nowrap; }
.context-bar { row-gap: 6px; }
.context-chip {
  max-width: 260px;
  min-height: 34px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.context-chip-priority {
  font-size: .88rem;
  padding-inline: .82rem;
}
.context-chip-secondary {
  font-size: .78rem;
  color: #4b6f5c;
}
.context-chip-user {
  max-width: 230px;
  font-size: .8rem;
}
.logout-button {
  min-height: 34px;
  padding-inline: .85rem;
  white-space: nowrap;
}
.theme-switch {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  border: 1px solid #d9eadf;
  border-radius: 999px;
  background: #f8fafc;
  color: #315949;
  padding: 4px 10px 4px 5px;
  font-size: .78rem;
  font-weight: 800;
  white-space: nowrap;
}
.theme-switch:hover {
  border-color: #a7f3c3;
  background: var(--sv-green-50);
}
.theme-switch-track {
  position: relative;
  width: 38px;
  height: 22px;
  border-radius: 999px;
  background: #cbd5e1;
  box-shadow: inset 0 1px 2px rgba(0,0,0,.14);
}
.theme-switch-thumb {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.24);
}
.theme-switch.is-on .theme-switch-track {
  background: var(--sv-green-700);
}
.theme-switch.is-on .theme-switch-thumb {
  transform: translateX(16px);
}

.login-main { display: block; place-items: unset; overflow: auto; background: #052f21; }
.login-site {
  position: relative;
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 430px);
  gap: clamp(18px, 3vw, 38px);
  padding: clamp(18px, 4vw, 58px);
  color: #fff;
  background:
    radial-gradient(circle at 18% 10%, rgba(20,184,166,.22), transparent 34%),
    radial-gradient(circle at 90% 18%, rgba(167,243,208,.16), transparent 28%),
    linear-gradient(120deg, rgba(5,47,33,.98), rgba(11,107,69,.88)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 86px);
}
.login-site::before {
  content: "";
  position: fixed;
  inset: 0;
  background: linear-gradient(115deg, transparent 18%, rgba(255,255,255,.08) 48%, transparent 74%);
  animation: loginSweep 9s ease-in-out infinite;
  pointer-events: none;
}
.login-theme-toggle { position: fixed; top: 16px; right: 18px; z-index: 4; color: #fff; border-color: rgba(255,255,255,.38); background: rgba(255,255,255,.08); backdrop-filter: blur(10px); }
.login-story { position: relative; z-index: 1; display: grid; gap: 34px; min-width: 0; padding-right: 8px; }
.login-fixed-panel { position: sticky; top: 64px; align-self: start; z-index: 3; }
.login-fixed-panel .login-card { width: 100%; transform: none; }
.login-fixed-panel .login-card:hover { transform: translateY(-2px); }
.login-hero { min-height: auto; }
.login-brandline { margin-bottom: 34px; }
.login-copy h1 { font-size: clamp(2.2rem, 5.5vw, 5.4rem); }
.login-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 100%; }
.login-preview { min-height: 470px; max-width: 900px; padding: 46px 22px 34px; overflow: visible; }
.preview-main { position: relative; z-index: 1; overflow: visible; }
.preview-floating { z-index: 2; color: #fff; background: rgba(6,63,42,.92); border-color: rgba(255,255,255,.24); box-shadow: 0 18px 48px rgba(0,0,0,.24); }
.preview-floating strong { color: #fff; }
.preview-floating span { color: #bbf7d0; }
.preview-one { right: 22px; top: 78px; }
.preview-two { left: 8px; bottom: 24px; }
.login-section {
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 8px;
  background: rgba(255,255,255,.09);
  padding: clamp(18px, 3vw, 28px);
  backdrop-filter: blur(10px);
}
.login-section h2 { margin: 0 0 14px; font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 900; letter-spacing: 0; }
.login-section p { max-width: 900px; color: #e6fff0; }
.login-usecases, .login-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.login-usecases article, .login-flow div {
  display: grid;
  gap: 5px;
  padding: 15px;
  border-radius: 8px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.14);
}
.login-usecases span, .login-flow span { color: #d6fbe3; font-size: .9rem; }
body.dark-mode {
  --sv-green-900: #bbf7d0;
  --sv-green-800: #86efac;
  --sv-green-700: #34d399;
  --sv-green-600: #10b981;
  --sv-green-500: #14b8a6;
  --sv-green-100: #064e3b;
  --sv-green-50: #052e25;
  background: #081411;
  color: #e5f4ec;
}
body.dark-mode a { color: #86efac; }
body.dark-mode .operational-header,
body.dark-mode .page-card,
body.dark-mode .metric,
body.dark-mode .table-panel,
body.dark-mode .quick-action,
body.dark-mode .employee-chip,
body.dark-mode .product-pick,
body.dark-mode .sale-cart-item,
body.dark-mode .sale-register-item,
body.dark-mode .summary-item,
body.dark-mode .form-section {
  background: #0f1f1a;
  border-color: #1f3a30;
  color: #e5f4ec;
  box-shadow: 0 8px 24px rgba(0,0,0,.22);
}
body.dark-mode .module-toolbar,
body.dark-mode .module-header {
  background: linear-gradient(135deg, #0f1f1a, #0a2a21);
  border-color: #1f3a30;
}
body.dark-mode .module-heading h1,
body.dark-mode .form-section-title h3,
body.dark-mode .metric-value,
body.dark-mode .sale-register-total,
body.dark-mode .summary-item strong { color: #bbf7d0; }
body.dark-mode .context-chip,
body.dark-mode .modern-table thead th,
body.dark-mode .form-control,
body.dark-mode .form-select {
  background: #10251f;
  color: #e5f4ec;
  border-color: #26483c;
}
body.dark-mode .text-muted,
body.dark-mode .module-toolbar p,
body.dark-mode .module-header p,
body.dark-mode .metric-note,
body.dark-mode .field-help,
body.dark-mode .sale-register-meta,
body.dark-mode .product-pick-main small,
body.dark-mode .product-pick-side small,
body.dark-mode .sale-cart-product small { color: #9fb9ad !important; }
body.dark-mode .modal-content {
  background: #0f1f1a;
  color: #e5f4ec;
  border: 1px solid #26483c;
  box-shadow: 0 28px 80px rgba(0,0,0,.48);
}
body.dark-mode .modal-header,
body.dark-mode .modal-footer {
  background: #10251f;
  border-color: #26483c;
}
body.dark-mode .modal-title,
body.dark-mode .modal label,
body.dark-mode .modal .form-label {
  color: #d1fae5;
}
body.dark-mode .modal .btn-close {
  filter: invert(1) grayscale(100%);
  opacity: .78;
}
body.dark-mode .modal-backdrop.show { opacity: .72; }
body.dark-mode .modal .alert-danger {
  background: #3b1518;
  border-color: #7f1d1d;
  color: #fee2e2;
}
body.dark-mode .table { color: #e5f4ec; }
body.dark-mode .modern-table tbody tr { border-color: #1f3a30; }
body.dark-mode .invoice {
  background: #07110e;
  color: #e5f4ec;
  border-color: #26483c;
  box-shadow: 0 12px 34px rgba(0,0,0,.28);
}
body.dark-mode .invoice * { color: inherit; }
body.dark-mode .invoice .text-muted { color: #9fb9ad !important; }
body.dark-mode .invoice .fs-3,
body.dark-mode .invoice .fs-4,
body.dark-mode .invoice .fw-bold,
body.dark-mode .invoice strong,
body.dark-mode .invoice .table thead th { color: #bbf7d0 !important; }
body.dark-mode .invoice .table { color: #e5f4ec; border-color: #26483c; }
body.dark-mode .invoice .table tbody td {
  color: #e5f4ec !important;
  background: #07110e !important;
  border-color: #1f3a30 !important;
}
body.dark-mode .invoice .table thead th { background: #07110e !important; border-bottom-color: #86efac !important; }
body.dark-mode .invoice .border-bottom { border-bottom-color: #26483c !important; }
body.dark-mode .invoice .company-logo-preview { background: #f8fafc; border-color: #d9eadf; }
body.dark-mode .empty-state { background: #10251f; color: #9fb9ad; border-color: #26483c; }
body.dark-mode .list-stack-item {
  background: #10251f;
  border-color: #26483c;
  color: #e5f4ec;
}
body.dark-mode a.list-stack-item { color: #e5f4ec; }
body.dark-mode .list-stack-item:hover {
  background: #123329;
  border-color: #0f766e;
  color: #ffffff;
  box-shadow: 0 8px 22px rgba(0,0,0,.22);
}
body.dark-mode .list-stack-item strong { color: #bbf7d0; }
body.dark-mode .list-stack-item .fw-bold { color: #86efac; }
body.dark-mode .list-stack-item .text-muted,
body.dark-mode .list-stack-item .small { color: #9fb9ad !important; }
body.dark-mode .list-stack-item .badge,
body.dark-mode .list-stack-item .text-bg-warning {
  background-color: #854d0e !important;
  color: #fef3c7 !important;
  border: 1px solid #f59e0b;
}
body.dark-mode .list-stack-item.is-warning {
  background: #2a1f0b;
  border-color: #854d0e;
}
body.dark-mode .status-warning {
  background: #854d0e;
  color: #fef3c7;
  border-color: #f59e0b;
}
body.dark-mode .dashboard-hero { background: linear-gradient(135deg, #052e25, #0f766e); }
body.dark-mode .cash-pill,
body.dark-mode .cash-difference {
  background: #10251f;
  color: #bbf7d0;
  border-color: #26483c;
}
body.dark-mode .cash-difference.is-bad {
  background: #2a1f0b;
  color: #fef3c7;
  border-color: #854d0e;
}
body.dark-mode .cash-difference.is-ok {
  background: #064e3b;
  color: #d1fae5;
  border-color: #10b981;
}
body.dark-mode .btn-outline-secondary { color: #d1fae5; border-color: #3f5f52; }
body.dark-mode .btn-outline-secondary:hover { background: #1f3a30; color: #fff; }
body.dark-mode .badge-sale-cancelled {
  background: #7f1d1d;
  color: #fee2e2;
  border-color: #ef4444;
  box-shadow: 0 0 0 1px rgba(254,226,226,.08);
}
body.dark-mode .table-danger-soft {
  --bs-table-bg: #2a1012;
  --bs-table-hover-bg: #3b1518;
  --bs-table-color: #fee2e2;
  --bs-table-border-color: #5f2024;
  background: linear-gradient(90deg, rgba(127,29,29,.46), rgba(42,16,18,.96)) !important;
  box-shadow: inset 4px 0 0 #ef4444;
}
body.dark-mode .table-danger-soft > * {
  color: #fee2e2 !important;
  border-color: #5f2024 !important;
}
body.dark-mode .table-danger-soft .text-muted { color: #fecaca !important; }
body.dark-mode .table-danger-soft .btn-outline-secondary {
  color: #fee2e2;
  border-color: #ef4444;
  background: rgba(127,29,29,.22);
}
body.dark-mode .table-danger-soft .btn-outline-secondary:hover {
  color: #fff;
  background: #7f1d1d;
  border-color: #f87171;
}
body.dark-mode .sale-register-item.is-cancelled {
  background: linear-gradient(90deg, rgba(127,29,29,.42), #2a1012);
  border-color: #5f2024;
  box-shadow: inset 4px 0 0 #ef4444;
}
body.dark-mode .login-site { background: radial-gradient(circle at 18% 10%, rgba(20,184,166,.22), transparent 34%), linear-gradient(120deg, #06110f, #063f2a); }
body.dark-mode .login-card { background: #0f1f1a; color: #e5f4ec; border: 1px solid #26483c; }
body.dark-mode .login-card .text-muted { color: #9fb9ad !important; }
body.dark-mode .sidebar {
  background: linear-gradient(180deg, #031c16, #052e25);
  color: #f8fffb;
  border-right: 1px solid #123b30;
  scrollbar-color: rgba(187,247,208,.45) transparent;
}
body.dark-mode .sidebar::-webkit-scrollbar-thumb { background: rgba(187,247,208,.42); }
body.dark-mode .brand-system { color: #ffffff; text-shadow: 0 1px 12px rgba(187,247,208,.16); }
body.dark-mode .brand small { color: #bbf7d0; }
body.dark-mode .brand { border-bottom-color: rgba(187,247,208,.16); }
body.dark-mode .nav-group {
  background: rgba(255,255,255,.035);
  border-color: rgba(187,247,208,.12);
}
body.dark-mode .nav-section { color: #86efac; }
body.dark-mode .sidebar a { color: #ecfdf5; }
body.dark-mode .sidebar a:hover,
body.dark-mode .sidebar a.active {
  background: rgba(187,247,208,.16);
  color: #ffffff;
  box-shadow: inset 3px 0 0 #14b8a6;
}
body.dark-mode .sidebar .nav-link.active {
  background: linear-gradient(135deg, rgba(20,184,166,.26), rgba(187,247,208,.12));
  box-shadow: inset 3px 0 0 #14b8a6, 0 8px 22px rgba(0,0,0,.18);
}
body.dark-mode .luisoft-toast {
  box-shadow: 0 18px 46px rgba(0,0,0,.36);
}
body.dark-mode .luisoft-toast .toast-header {
  background: #0f1f1a;
  color: #e5f4ec;
  border-bottom-color: #26483c;
}
body.dark-mode .luisoft-toast .toast-body {
  background: #10251f;
  color: #e5f4ec;
}
body.dark-mode .luisoft-toast .btn-close { filter: invert(1) grayscale(100%); }
body.dark-mode .page-loader {
  background: rgba(8, 20, 17, .62);
}
body.dark-mode .page-loader-card {
  background: #0f1f1a;
  color: #d1fae5;
  border-color: #26483c;
  box-shadow: 0 18px 46px rgba(0,0,0,.36);
}
body.dark-mode .page-loader-spinner {
  color: #86efac;
}
body.dark-mode .theme-switch {
  background: #10251f;
  color: #d1fae5;
  border-color: #26483c;
}
body.dark-mode .theme-switch:hover {
  background: #123329;
  border-color: #10b981;
}
body.dark-mode .theme-switch-track {
  background: #315b4c;
}
body.dark-mode .context-chip-secondary {
  color: #9fb9ad;
}

/* Visual refresh Luisoft */
:root {
  --sv-surface: rgba(255,255,255,.92);
  --sv-surface-solid: #ffffff;
  --sv-border: #d7eadf;
  --sv-shadow-soft: 0 14px 38px rgba(6, 63, 42, .08);
  --sv-shadow-hover: 0 20px 46px rgba(6, 63, 42, .13);
  --sv-ring: 0 0 0 .22rem rgba(22, 163, 101, .18);
}
html { background: #f3f8f5; }
body {
  min-height: 100vh;
  background:
    radial-gradient(circle at 18% 0, rgba(187,247,208,.42), transparent 30%),
    radial-gradient(circle at 92% 8%, rgba(20,184,166,.16), transparent 24%),
    linear-gradient(180deg, #f7fbf8 0, #eef7f1 100%);
}
.content {
  animation: contentIn .2s ease-out;
}
.brand {
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}
.brand-logo {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  box-shadow: 0 12px 28px rgba(0,0,0,.22);
}
.brand-system { letter-spacing: .01em; }
.sidebar {
  background:
    linear-gradient(180deg, rgba(255,255,255,.06), transparent 24%),
    linear-gradient(180deg, var(--sv-green-900), #031f17);
  box-shadow: 12px 0 36px rgba(6, 63, 42, .16);
}
.sidebar .nav-link,
.quick-action,
.list-stack-item,
.product-pick,
.btn {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease;
}
.page-card,
.metric,
.table-panel,
.module-header,
.module-toolbar,
.quick-action,
.summary-item,
.form-section,
.employee-panel {
  border-color: var(--sv-border);
  background: var(--sv-surface);
  box-shadow: var(--sv-shadow-soft);
  backdrop-filter: blur(10px);
}
.page-card:hover,
.metric:hover,
.table-panel:hover,
.quick-action:hover,
.summary-item:hover,
.form-section:hover {
  box-shadow: var(--sv-shadow-hover);
}
.operational-header {
  background: rgba(255,255,255,.82);
  box-shadow: 0 12px 34px rgba(6, 63, 42, .08);
}
.btn {
  border-radius: 8px;
  font-weight: 800;
}
.btn-primary {
  background-image: linear-gradient(135deg, var(--sv-green-700), var(--sv-green-600));
  box-shadow: 0 8px 18px rgba(15, 138, 87, .2);
}
.btn-primary:hover,
.btn-primary:focus {
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(15, 138, 87, .28);
}
.btn-outline-primary:hover,
.btn-outline-secondary:hover,
.btn-outline-danger:hover,
.btn-outline-success:hover,
.btn-light:hover {
  transform: translateY(-1px);
}
.form-control,
.form-select {
  border-color: #d5e7dd;
  border-radius: 8px;
  min-height: 42px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
}
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  box-shadow: var(--sv-ring);
}
.table-panel {
  overflow: hidden;
}
.modern-table {
  margin-bottom: 0;
}
.modern-table thead th {
  border-bottom: 0;
  color: #315949;
  background: linear-gradient(180deg, #f8fafc, #eff8f2);
}
.modern-table tbody tr {
  transition: background-color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.modern-table tbody tr:hover {
  background: var(--sv-green-50);
}
.context-chip,
.status-badge,
.cash-pill,
.badge-sale-active {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55);
}
.dashboard-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 20%, rgba(187,247,208,.25), transparent 28%),
    linear-gradient(135deg, var(--sv-green-900), var(--sv-green-700));
}
.dashboard-hero::after {
  content: "";
  position: absolute;
  inset: auto -80px -120px auto;
  width: 280px;
  height: 280px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  pointer-events: none;
}
.quick-action {
  background: rgba(255,255,255,.88);
}
.quick-action-icon {
  background: linear-gradient(135deg, var(--sv-green-100), #ecfdf5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}
.sale-cart-panel {
  top: 88px;
}
.sale-product-table-wrap {
  max-height: 64vh;
  overflow: auto;
  border: 1px solid #edf5ef;
  border-radius: 8px;
}
.sale-product-table {
  min-width: 760px;
}
.sale-product-table tbody tr.is-selected {
  background: var(--sv-green-50);
  box-shadow: inset 4px 0 0 var(--sv-green-600);
}
.sale-product-table .btn {
  min-width: 86px;
}
.sale-cart-product-compact {
  grid-template-columns: minmax(0, 1fr);
}
.audit-json {
  max-width: 520px;
  max-height: 180px;
  overflow: auto;
  margin: 8px 0 0;
  padding: 10px;
  border-radius: 8px;
  background: #f8fafc;
  border: 1px solid #e2eee6;
  color: #1f2937;
  font-size: .78rem;
  white-space: pre-wrap;
}
.product-pick,
.sale-cart-item,
.employee-chip,
.list-stack-item {
  box-shadow: 0 6px 18px rgba(6, 63, 42, .05);
}
.product-pick:hover,
.list-stack-item:hover {
  box-shadow: 0 12px 26px rgba(6, 63, 42, .1);
}
.login-brand-mark {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  object-fit: contain;
  background: transparent;
  color: inherit;
  box-shadow: 0 14px 34px rgba(0,0,0,.24);
}
.login-card {
  box-shadow: 0 28px 80px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.72);
}
.login-section,
.preview-window {
  box-shadow: 0 18px 54px rgba(0,0,0,.16);
}
body.dark-mode {
  background:
    radial-gradient(circle at 16% 0, rgba(20,184,166,.2), transparent 30%),
    radial-gradient(circle at 92% 12%, rgba(187,247,208,.1), transparent 24%),
    linear-gradient(180deg, #07110e 0, #081411 100%);
  color: #ecfdf5;
}
body.dark-mode .content,
body.dark-mode .table,
body.dark-mode .table td,
body.dark-mode .table th,
body.dark-mode label,
body.dark-mode .form-label,
body.dark-mode .form-check-label,
body.dark-mode .modal-body,
body.dark-mode .page-card,
body.dark-mode .metric,
body.dark-mode .table-panel,
body.dark-mode .quick-action,
body.dark-mode .summary-item,
body.dark-mode .form-section,
body.dark-mode .employee-panel,
body.dark-mode .product-pick,
body.dark-mode .sale-cart-item {
  color: #ecfdf5;
}
body.dark-mode .operational-header {
  background: rgba(15,31,26,.86);
  border-color: #26483c;
  box-shadow: 0 12px 34px rgba(0,0,0,.32);
}
body.dark-mode .modern-table thead th {
  background: linear-gradient(180deg, #10251f, #0d1f1a);
  color: #d1fae5;
}
body.dark-mode .modern-table tbody tr:hover {
  background: #123329;
}
body.dark-mode .form-control,
body.dark-mode .form-select {
  background: #0b1c17;
  color: #f0fdf4;
  border-color: #315b4c;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
body.dark-mode .form-control::placeholder {
  color: #9fb9ad;
}
body.dark-mode .form-control:disabled,
body.dark-mode .form-select:disabled {
  background: #10251f;
  color: #9fb9ad;
}
body.dark-mode .input-group-text {
  background: #10251f;
  color: #d1fae5;
  border-color: #315b4c;
}
body.dark-mode .btn-light {
  background: #ecfdf5;
  border-color: #ecfdf5;
  color: #063f2a;
}
body.dark-mode .btn-outline-primary {
  color: #86efac;
  border-color: #34d399;
}
body.dark-mode .btn-outline-primary:hover {
  background: #10b981;
  color: #031c16;
}
body.dark-mode .btn-outline-danger {
  color: #fca5a5;
  border-color: #ef4444;
}
body.dark-mode .btn-outline-danger:hover {
  background: #ef4444;
  color: #fff;
}
body.dark-mode .quick-action-icon {
  background: linear-gradient(135deg, #064e3b, #0f766e);
  color: #d1fae5;
}
body.dark-mode .sale-product-table-wrap {
  border-color: #26483c;
}
body.dark-mode .sale-product-table tbody tr.is-selected {
  background: #123329;
  box-shadow: inset 4px 0 0 #10b981;
}
body.dark-mode .audit-json {
  background: #07110e;
  border-color: #26483c;
  color: #d1fae5;
}
body.dark-mode .login-card {
  box-shadow: 0 28px 80px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.06);
}
body.dark-mode .alert-warning {
  background: #2a1f0b;
  border-color: #854d0e;
  color: #fef3c7;
}
body.dark-mode .alert-danger {
  background: #3b1518;
  border-color: #7f1d1d;
  color: #fee2e2;
}
body.dark-mode .validation-summary-errors,
body.dark-mode .text-danger {
  color: #fca5a5 !important;
}

@media (max-width: 1080px) {
  .login-site { grid-template-columns: 1fr; }
  .login-fixed-panel { position: relative; top: auto; order: -1; }
  .login-theme-toggle { position: absolute; }
  .login-preview { max-width: none; }
  .login-usecases, .login-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .login-feature-grid, .login-usecases, .login-flow { grid-template-columns: 1fr; }
  .login-preview { display: none; }
  .login-site { padding-top: 64px; }
}

/* Ajustes finales: paleta mas serena, dashboard y contrastes */
:root {
  --sv-green-900: #173f35;
  --sv-green-800: #235447;
  --sv-green-700: #2f6f5f;
  --sv-green-600: #3b8a73;
  --sv-green-500: #4aa58a;
  --sv-green-100: #dceee8;
  --sv-green-50: #f3f8f6;
  --sv-surface: rgba(255,255,255,.94);
  --sv-border: #d7e5df;
  --sv-shadow-soft: 0 12px 30px rgba(23, 63, 53, .07);
  --sv-shadow-hover: 0 18px 38px rgba(23, 63, 53, .12);
  --sv-ring: 0 0 0 .22rem rgba(47, 111, 95, .18);
}

body {
  background:
    radial-gradient(circle at 16% 0, rgba(220,238,232,.72), transparent 30%),
    radial-gradient(circle at 92% 8%, rgba(74,165,138,.12), transparent 24%),
    linear-gradient(180deg, #f8faf9 0, #eef5f2 100%);
}

.sidebar {
  background:
    linear-gradient(180deg, rgba(255,255,255,.055), transparent 24%),
    linear-gradient(180deg, #173f35, #102c25);
}

.brand small,
.dashboard-kicker { color: #b9e6d4; }

.btn-primary {
  background-image: linear-gradient(135deg, #2f6f5f, #3b8a73);
  border-color: #2f6f5f;
  box-shadow: 0 8px 18px rgba(47, 111, 95, .18);
}

.btn-primary:hover,
.btn-primary:focus {
  background-image: linear-gradient(135deg, #235447, #2f6f5f);
  border-color: #235447;
  box-shadow: 0 12px 26px rgba(47, 111, 95, .24);
}

.dashboard-hero {
  padding: 28px;
  background:
    radial-gradient(circle at 84% 16%, rgba(255,255,255,.22), transparent 28%),
    linear-gradient(135deg, #173f35, #2f6f5f);
}

.dashboard-subtitle { color: #e7f6ef; }

.dashboard-metrics .metric {
  position: relative;
  overflow: hidden;
}

.dashboard-metrics .metric::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: #2f6f5f;
}

.metric-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.metric-topline span {
  border-radius: 999px;
  background: #eef7f2;
  color: #2f6f5f;
  border: 1px solid #d7e5df;
  padding: .18rem .5rem;
  font-size: .72rem;
  font-weight: 900;
}

.metric-accent-success::before { background: #2f7d68 !important; }
.metric-accent-muted::before { background: #64748b !important; }
.metric-accent-info::before { background: #0f766e !important; }
.metric-accent-warning::before { background: #d97706 !important; }

.quick-action-icon {
  background: linear-gradient(135deg, #dceee8, #f5fbf8);
  color: #173f35;
}

.status-low,
.table-warning,
.text-bg-warning {
  border-color: #f3c36b !important;
}

.table-warning {
  --bs-table-bg: #fff7df;
  --bs-table-hover-bg: #ffefc0;
  --bs-table-color: #5f3b00;
  box-shadow: inset 4px 0 0 #d97706;
}

.status-low,
.text-bg-warning {
  background-color: #fff1bf !important;
  color: #664000 !important;
  font-weight: 900;
}

.cancel-panel {
  border-left: 5px solid #dc2626;
  background:
    linear-gradient(135deg, #fff, #fff7f7);
}

.cancel-panel .alert-warning {
  background: #fff7ed;
  border-color: #fed7aa;
  color: #8a3a0a;
}

body.dark-mode .table-warning {
  --bs-table-bg: #3a2706;
  --bs-table-hover-bg: #4a3308;
  --bs-table-color: #fff3c4;
  --bs-table-border-color: #8a5a0a;
  box-shadow: inset 4px 0 0 #f59e0b;
}

body.dark-mode .table-warning > *,
body.dark-mode .table-warning td,
body.dark-mode .table-warning th {
  color: #fff3c4 !important;
}

body.dark-mode .status-low,
body.dark-mode .text-bg-warning {
  background-color: #854d0e !important;
  color: #fff7d6 !important;
  border: 1px solid #f59e0b !important;
}

body.dark-mode .cancel-panel {
  background: linear-gradient(135deg, #201113, #111c18);
  border-color: #ef4444;
}

body.dark-mode .cancel-panel textarea,
body.dark-mode .cancel-panel .form-control {
  background: #0b1c17;
  color: #f8fafc;
  border-color: #5f2024;
}

body.dark-mode .metric-label,
body.dark-mode .summary-item small {
  color: #d8f6e6;
}

body.dark-mode .dashboard-metrics .metric-label {
  color: #e8fff2;
  font-weight: 800;
}

/* Luisoft brand refresh from logo.png */
:root {
  --sv-logo-lime: #84d83e;
  --sv-logo-green: #48c83f;
  --sv-logo-green-deep: #08743e;
  --sv-logo-ink: #06110f;
  --sv-logo-ink-2: #0b1d18;
  --sv-logo-smoke: #eef2ee;
  --sv-logo-smoke-2: #dfe7df;
  --sv-green-900: #0b2c20;
  --sv-green-800: #0f4a2f;
  --sv-green-700: #14763e;
  --sv-green-600: #24a846;
  --sv-green-500: #48c83f;
  --sv-green-100: #dff5d9;
  --sv-green-50: #f4fbf2;
  --sv-surface: rgba(255,255,255,.94);
  --sv-surface-solid: #ffffff;
  --sv-border: #d9e6d9;
  --sv-shadow-soft: 0 14px 34px rgba(6, 17, 15, .08);
  --sv-shadow-hover: 0 18px 44px rgba(8, 116, 62, .16);
  --sv-ring: 0 0 0 .22rem rgba(72, 200, 63, .22);
}

html { background: var(--sv-logo-smoke); }

body {
  background:
    radial-gradient(circle at 18% 0, rgba(132,216,62,.22), transparent 31%),
    radial-gradient(circle at 86% 8%, rgba(8,116,62,.13), transparent 28%),
    linear-gradient(180deg, #f8faf8 0, var(--sv-logo-smoke) 100%);
  color: #1d2c25;
}

a { color: var(--sv-green-700); }
a:hover { color: var(--sv-green-900); }

.sidebar {
  background:
    radial-gradient(circle at 28% 8%, rgba(132,216,62,.2), transparent 28%),
    linear-gradient(180deg, #101915 0, #06110f 58%, #030807 100%);
  border-right: 1px solid rgba(132,216,62,.16);
  box-shadow: 16px 0 42px rgba(6, 17, 15, .28);
}

.brand {
  border-bottom-color: rgba(132,216,62,.2);
}

.brand-logo,
.login-brand-mark {
  object-fit: cover;
  background: #06110f;
  border: 1px solid rgba(132,216,62,.36);
  box-shadow: 0 14px 34px rgba(0,0,0,.3), 0 0 28px rgba(72,200,63,.2);
}

.brand-system {
  color: #ffffff;
  text-shadow: 0 0 18px rgba(132,216,62,.22);
}

.brand small,
.dashboard-kicker,
.login-kicker {
  color: #c9f7b7;
}

.nav-section {
  color: #9be96e;
}

.sidebar .nav-link {
  color: #e9f7e8;
}

.sidebar .nav-link:hover {
  background: rgba(132,216,62,.12);
  color: #ffffff;
}

.sidebar .nav-link.active {
  background: linear-gradient(135deg, rgba(72,200,63,.22), rgba(255,255,255,.08));
  box-shadow: inset 3px 0 0 var(--sv-logo-green), 0 10px 26px rgba(0,0,0,.22);
}

.operational-header {
  background: rgba(255,255,255,.86);
  border-bottom-color: rgba(8,116,62,.14);
  box-shadow: 0 14px 36px rgba(6, 17, 15, .08);
}

.module-heading h1,
.module-header h2,
.form-section-title h3,
.summary-item strong,
.metric-value,
.sale-total strong,
.sale-register-total {
  color: var(--sv-green-900);
}

.module-kicker {
  color: var(--sv-green-700);
}

.page-card,
.metric,
.table-panel,
.module-header,
.module-toolbar,
.quick-action,
.summary-item,
.form-section,
.employee-panel,
.product-pick,
.sale-cart-item,
.sale-register-item,
.list-stack-item {
  background: rgba(255,255,255,.94);
  border-color: var(--sv-border);
  box-shadow: var(--sv-shadow-soft);
}

.page-card:hover,
.metric:hover,
.table-panel:hover,
.quick-action:hover,
.summary-item:hover,
.form-section:hover,
.product-pick:hover,
.list-stack-item:hover {
  box-shadow: var(--sv-shadow-hover);
}

.btn-primary {
  background-image: linear-gradient(135deg, var(--sv-logo-green-deep), var(--sv-logo-green));
  border-color: var(--sv-logo-green-deep);
  color: #fff;
  box-shadow: 0 10px 24px rgba(72, 200, 63, .22);
}

.btn-primary:hover,
.btn-primary:focus {
  background-image: linear-gradient(135deg, #065c33, #31b947);
  border-color: #065c33;
  color: #fff;
  box-shadow: 0 14px 30px rgba(72, 200, 63, .32);
}

.btn-outline-primary {
  color: var(--sv-green-700);
  border-color: var(--sv-green-700);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
  background: var(--sv-green-700);
  border-color: var(--sv-green-700);
  color: #fff;
}

.form-control,
.form-select,
.input-group-text {
  border-color: #d2dfd4;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  border-color: var(--sv-logo-green);
  box-shadow: var(--sv-ring);
}

.form-check-input:checked {
  background-color: var(--sv-green-700);
  border-color: var(--sv-green-700);
}

.context-chip,
.status-badge,
.cash-pill,
.badge-sale-active {
  border-color: #d5e7d2;
}

.context-chip-ok,
.status-ok,
.cash-status-open,
.cash-difference.is-ok,
.badge-sale-active {
  background: var(--sv-green-100);
  color: var(--sv-green-900);
  border-color: #a9e69a;
}

.modern-table thead th {
  background: linear-gradient(180deg, #f8fbf7, #edf6ea);
  color: #274437;
}

.modern-table tbody tr:hover,
.table-hover tbody tr:hover {
  --bs-table-accent-bg: var(--sv-green-50);
  background: var(--sv-green-50);
}

.dashboard-hero {
  background:
    radial-gradient(circle at 78% 18%, rgba(132,216,62,.28), transparent 28%),
    linear-gradient(135deg, #06110f 0, #0b3f2a 52%, #08743e 100%);
  box-shadow: 0 18px 46px rgba(6, 17, 15, .22);
}

.dashboard-subtitle {
  color: #eefcea;
}

.dashboard-metrics .metric::before,
.metric-accent-success::before,
.metric-accent-info::before {
  background: var(--sv-logo-green) !important;
}

.metric-topline span,
.quick-action-icon,
.sale-register-date,
.employee-count {
  background: linear-gradient(135deg, #e1f8d9, #f5fbf2);
  color: var(--sv-green-900);
  border-color: #c9edbf;
}

.theme-switch {
  border-color: #d2dfd4;
  background: rgba(255,255,255,.82);
}

.theme-switch-track,
.theme-switch.is-on .theme-switch-track {
  background: linear-gradient(135deg, var(--sv-logo-green-deep), var(--sv-logo-green));
}

.page-loader {
  background: rgba(238, 242, 238, .66);
}

.page-loader-card {
  border-color: #c9edbf;
}

.page-loader-spinner {
  color: var(--sv-logo-green);
}

.login-main {
  background: #06110f;
}

.login-site {
  background:
    radial-gradient(circle at 24% 16%, rgba(132,216,62,.2), transparent 28%),
    radial-gradient(circle at 72% 10%, rgba(255,255,255,.12), transparent 25%),
    linear-gradient(120deg, #06110f 0, #0c1d18 52%, #202724 100%);
}

.login-site::before {
  background:
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 72px 72px;
  opacity: .2;
}

.login-brand-wide {
  display: block;
  width: min(640px, 100%);
  max-height: 210px;
  object-fit: contain;
  object-position: left center;
  margin: -10px 0 24px;
  padding: 8px 10px 8px 0;
  border-radius: 8px;
  background: radial-gradient(circle at 16% 50%, rgba(72,200,63,.18), transparent 44%);
  border: 0;
  filter: drop-shadow(0 18px 34px rgba(0,0,0,.28)) drop-shadow(0 0 24px rgba(72,200,63,.16));
  box-shadow: none;
}

.login-card,
.login-section,
.preview-window {
  border-color: rgba(255,255,255,.18);
}

.login-card {
  background: rgba(255,255,255,.96);
}

.login-feature-grid div,
.login-usecases article,
.login-flow div {
  background: rgba(255,255,255,.1);
  border-color: rgba(201,247,183,.2);
}

.login-copy p,
.login-section p,
.login-feature-grid span,
.login-usecases span,
.login-flow span {
  color: #e8f7e4;
}

body.dark-mode {
  background:
    radial-gradient(circle at 18% 0, rgba(72,200,63,.14), transparent 28%),
    radial-gradient(circle at 92% 12%, rgba(132,216,62,.08), transparent 24%),
    linear-gradient(180deg, #06110f 0, #0a1411 100%);
  color: #eefbea;
}

body.dark-mode a {
  color: #9be96e;
}

body.dark-mode .sidebar {
  background:
    radial-gradient(circle at 28% 8%, rgba(132,216,62,.15), transparent 28%),
    linear-gradient(180deg, #07110f 0, #030807 100%);
  border-right-color: rgba(132,216,62,.18);
}

body.dark-mode .operational-header {
  background: rgba(6,17,15,.88);
  border-color: rgba(132,216,62,.16);
  box-shadow: 0 16px 42px rgba(0,0,0,.38);
}

body.dark-mode .page-card,
body.dark-mode .metric,
body.dark-mode .table-panel,
body.dark-mode .quick-action,
body.dark-mode .summary-item,
body.dark-mode .form-section,
body.dark-mode .employee-panel,
body.dark-mode .product-pick,
body.dark-mode .sale-cart-item,
body.dark-mode .sale-register-item,
body.dark-mode .list-stack-item,
body.dark-mode .modal-content {
  background: #0d1b16;
  border-color: #244032;
  color: #eefbea;
  box-shadow: 0 12px 32px rgba(0,0,0,.3);
}

body.dark-mode .module-toolbar,
body.dark-mode .module-header {
  background: linear-gradient(135deg, #0d1b16, #10261c);
  border-color: #244032;
}

body.dark-mode .module-heading h1,
body.dark-mode .module-header h2,
body.dark-mode .form-section-title h3,
body.dark-mode .metric-value,
body.dark-mode .summary-item strong,
body.dark-mode .sale-total strong,
body.dark-mode .sale-register-total,
body.dark-mode .list-stack-item strong {
  color: #c9f7b7;
}

body.dark-mode .text-muted,
body.dark-mode .module-toolbar p,
body.dark-mode .module-header p,
body.dark-mode .metric-note,
body.dark-mode .field-help,
body.dark-mode .summary-item small,
body.dark-mode .sale-register-meta,
body.dark-mode .product-pick-main small,
body.dark-mode .product-pick-side small,
body.dark-mode .sale-cart-product small,
body.dark-mode .list-stack-item .small {
  color: #b6c9b3 !important;
}

body.dark-mode .form-control,
body.dark-mode .form-select,
body.dark-mode .input-group-text,
body.dark-mode .context-chip,
body.dark-mode .theme-switch {
  background: #0a1612;
  color: #eefbea;
  border-color: #31533f;
}

body.dark-mode .form-control:focus,
body.dark-mode .form-select:focus {
  border-color: var(--sv-logo-green);
  box-shadow: 0 0 0 .22rem rgba(72, 200, 63, .24);
}

body.dark-mode .modern-table thead th {
  background: linear-gradient(180deg, #11241b, #0a1612);
  color: #c9f7b7;
}

body.dark-mode .modern-table tbody tr,
body.dark-mode .table td,
body.dark-mode .table th {
  border-color: #244032;
}

body.dark-mode .modern-table tbody tr:hover,
body.dark-mode .table-hover tbody tr:hover {
  background: #102b1e;
}

body.dark-mode .quick-action:hover,
body.dark-mode .product-pick:hover,
body.dark-mode .list-stack-item:hover {
  background: #102b1e;
  border-color: #48c83f;
}

body.dark-mode .quick-action-icon,
body.dark-mode .metric-topline span,
body.dark-mode .sale-register-date,
body.dark-mode .employee-count {
  background: linear-gradient(135deg, #123b25, #08743e);
  border-color: #2f9a45;
  color: #ecffe8;
}

body.dark-mode .btn-light {
  background: #e8f7e4;
  border-color: #e8f7e4;
  color: #06110f;
}

body.dark-mode .btn-outline-primary {
  color: #9be96e;
  border-color: #48c83f;
}

body.dark-mode .btn-outline-primary:hover {
  background: #48c83f;
  color: #06110f;
}

body.dark-mode .context-chip-ok,
body.dark-mode .status-ok,
body.dark-mode .cash-status-open,
body.dark-mode .cash-difference.is-ok,
body.dark-mode .badge-sale-active {
  background: #123b25;
  color: #dfffd4;
  border-color: #48c83f;
}

body.dark-mode .dashboard-hero {
  background:
    radial-gradient(circle at 78% 18%, rgba(132,216,62,.2), transparent 28%),
    linear-gradient(135deg, #030807 0, #0b2c20 54%, #08743e 100%);
}

body.dark-mode .login-site {
  background:
    radial-gradient(circle at 24% 16%, rgba(72,200,63,.18), transparent 28%),
    radial-gradient(circle at 72% 10%, rgba(255,255,255,.08), transparent 25%),
    linear-gradient(120deg, #030807 0, #06110f 56%, #151c19 100%);
}

body.dark-mode .login-card {
  background: #0d1b16;
  color: #eefbea;
  border-color: #244032;
}

body.dark-mode .login-brandline-dark span {
  color: #b6c9b3;
}

body.dark-mode .login-brand-wide {
  background: radial-gradient(circle at 16% 50%, rgba(72,200,63,.16), transparent 44%);
  filter: drop-shadow(0 18px 36px rgba(0,0,0,.42)) drop-shadow(0 0 24px rgba(72,200,63,.15));
  box-shadow: none;
}

body.dark-mode .toast-header,
body.dark-mode .luisoft-toast .toast-header {
  background: #0d1b16;
  color: #eefbea;
  border-bottom-color: #244032;
}

body.dark-mode .toast-body,
body.dark-mode .luisoft-toast .toast-body {
  background: #0a1612;
  color: #eefbea;
}

body.dark-mode .page-loader {
  background: rgba(3, 8, 7, .68);
}

body.dark-mode .page-loader-card {
  background: #0d1b16;
  color: #dfffd4;
  border-color: #31533f;
}

@media (max-width: 680px) {
  .login-brand-wide {
    max-height: 150px;
    margin-bottom: 18px;
  }
}

.reports-directory {
  display: grid;
  gap: 16px;
}

.report-module {
  background: #fff;
  border: 1px solid #d9eadf;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(6, 63, 42, .06);
  overflow: hidden;
}

.report-module-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  background: #f8fbf7;
  border-bottom: 1px solid #d9eadf;
}

.report-module-header h2 {
  margin: 0;
  color: #123b25;
  font-size: 1rem;
  font-weight: 800;
}

.report-module-header span {
  color: #64748b;
  font-size: .85rem;
  white-space: nowrap;
}

.report-list {
  display: grid;
}

.report-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(180px, 280px) auto;
  align-items: center;
  gap: 16px;
  padding: 14px 16px;
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid #edf4ee;
  transition: background .15s ease, transform .15s ease;
}

.report-row:last-child {
  border-bottom: 0;
}

.report-row:hover {
  background: #f6fbf4;
  color: inherit;
  transform: translateX(2px);
}

.report-row-main,
.report-row-filters {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.report-row-main strong {
  color: #13251c;
  font-size: .98rem;
}

.report-row-main small,
.report-row-filters span {
  color: #64748b;
}

.report-row-filters strong {
  color: #31533f;
  font-size: .9rem;
  font-weight: 700;
}

.report-row-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  min-height: 34px;
  padding: 6px 12px;
  border: 1px solid #2f7d68;
  border-radius: 8px;
  color: #16624f;
  font-weight: 800;
  font-size: .9rem;
  white-space: nowrap;
}

.report-row:hover .report-row-action {
  background: #2f7d68;
  color: #fff;
}

body.dark-mode .report-module {
  background: #0d1b16;
  border-color: #244032;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .24);
}

body.dark-mode .report-module-header {
  background: #10251c;
  border-bottom-color: #244032;
}

body.dark-mode .report-module-header h2,
body.dark-mode .report-row-main strong {
  color: #eefbea;
}

body.dark-mode .report-module-header span,
body.dark-mode .report-row-main small,
body.dark-mode .report-row-filters span {
  color: #b6c9b3;
}

body.dark-mode .report-row {
  border-bottom-color: #1e3529;
}

body.dark-mode .report-row:hover {
  background: #123b25;
}

body.dark-mode .report-row-filters strong {
  color: #dfffd4;
}

body.dark-mode .report-row-action {
  border-color: #48c83f;
  color: #dfffd4;
}

body.dark-mode .report-row:hover .report-row-action {
  background: #48c83f;
  color: #06110f;
}

@media (max-width: 820px) {
  .report-row {
    grid-template-columns: 1fr auto;
  }

  .report-row-filters {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

@media (max-width: 520px) {
  .report-module-header,
  .report-row {
    padding: 12px;
  }

  .report-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .report-row-action {
    width: 100%;
  }
}
