:root{
  color-scheme: light;
  --fl-primary: #155eef;
  --fl-primary-dark: #004eea;
  --fl-primary-soft: #e9f1ff;
  --fl-primary-border: #cfe0ff;

  --fl-bg: #f5f7fb;
  --fl-surface: #ffffff;
  --fl-surface-2: #f8fbff;

  --fl-text: #101828;
  --fl-text-soft: #475467;
  --fl-text-muted: #667085;

  --fl-border: #e4e7ec;
  --fl-border-strong: #d0d5dd;

  --fl-sidebar-bg: linear-gradient(180deg, #0f4fd6 0%, #0b3fae 100%);
  --fl-sidebar-text: rgba(255,255,255,0.92);
  --fl-sidebar-text-soft: rgba(255,255,255,0.68);

  --fl-success: #12b76a;
  --fl-danger: #f04438;
  --fl-warning: #f79009;

  --fl-shadow-sm: 0 4px 14px rgba(16, 24, 40, 0.06);
  --fl-shadow-md: 0 12px 30px rgba(16, 24, 40, 0.08);
  --fl-radius: 18px;
}

html[data-theme="dark"]{
  color-scheme: dark;
  --fl-primary: #6ea8fe;
  --fl-primary-dark: #9ec5fe;
  --fl-primary-soft: #132d52;
  --fl-primary-border: #28578d;
  --fl-bg: #0b1220;
  --fl-surface: #111b2d;
  --fl-surface-2: #162238;
  --fl-text: #f1f5f9;
  --fl-text-soft: #cbd5e1;
  --fl-text-muted: #9dadc2;
  --fl-border: #29384f;
  --fl-border-strong: #3a4b64;
  --fl-sidebar-bg: linear-gradient(180deg,#102c5c 0%,#0b2146 55%,#081a35 100%);
  --fl-shadow-sm: 0 4px 18px rgba(0,0,0,.24);
  --fl-shadow-md: 0 14px 36px rgba(0,0,0,.34);
}

*{
  box-sizing: border-box;
}

html, body{
  margin: 0;
  padding: 0;
}

body{
  font-family: 'Inter', sans-serif;
  background: radial-gradient(circle at top right, #eef4ff 0%, #f5f7fb 38%, #f5f7fb 100%);
  color: var(--fl-text);
}

html[data-theme="dark"] body{
  background: radial-gradient(circle at top right,#172946 0%,#0b1220 42%,#080e19 100%);
}

a{
  text-decoration: none;
}

.fl-app{
  display: flex;
  min-height: 100vh;
}

/* SIDEBAR */
.fl-sidebar{
  width: 280px;
  background: var(--fl-sidebar-bg);
  color: var(--fl-sidebar-text);
  padding: 18px 16px;
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  box-shadow: 8px 0 30px rgba(11, 63, 174, 0.18);
  z-index: 1040;
}

.fl-sidebar-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.fl-logo-wrap{
  display: flex;
  align-items: center;
  gap: 12px;
}

.fl-logo-icon{
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.14);
  backdrop-filter: blur(8px);
  font-size: 22px;
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.12);
}

.fl-logo-text{
  font-weight: 800;
  font-size: 18px;
  line-height: 1.1;
  color: #fff;
}

.fl-logo-subtext{
  font-size: 12px;
  color: var(--fl-sidebar-text-soft);
  margin-top: 2px;
}

.fl-sidebar-close{
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 20px;
}

.fl-sidebar-section-title{
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fl-sidebar-text-soft);
  margin: 18px 10px 10px;
  font-weight: 700;
}

.fl-link{
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--fl-sidebar-text);
  padding: 12px 14px;
  border-radius: 14px;
  margin-bottom: 6px;
  transition: all .18s ease;
  font-weight: 600;
  min-height: 48px;
}

.fl-link i{
  font-size: 18px;
  width: 20px;
  text-align: center;
}

.fl-link:hover{
  background: rgba(255,255,255,0.13);
  color: #fff;
  transform: translateX(2px);
}

.fl-link small{
  margin-left: auto;
  font-size: 10px;
  font-weight: 700;
  color: rgba(255,255,255,0.72);
  background: rgba(255,255,255,0.11);
  padding: 4px 7px;
  border-radius: 999px;
}

.fl-link-disabled{
  opacity: .82;
  cursor: default;
}

.fl-link-disabled:hover{
  transform: none;
}

.fl-link-logout{
  background: rgba(255,255,255,0.1);
}

.fl-spacer{
  flex: 1;
}

.fl-sidebar-backdrop{
  display: none;
}

/* MAIN */
.fl-main{
  flex: 1;
  padding: 24px;
  min-width: 0;
}

/* TOPBAR */
.fl-topbar{
  background: rgba(255,255,255,0.88);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.65);
  box-shadow: var(--fl-shadow-md);
  border-radius: 22px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.fl-topbar-left{
  display: flex;
  align-items: center;
  gap: 14px;
}

.fl-page-kicker{
  font-size: 12px;
  color: var(--fl-text-muted);
  font-weight: 600;
}

.fl-page-title{
  font-size: 22px;
  font-weight: 800;
  color: var(--fl-text);
  line-height: 1.1;
}

.fl-topbar-right{
  display: flex;
  align-items: end;
  gap: 12px;
  flex-wrap: wrap;
}

.fl-inline{
  margin: 0;
  min-width: 180px;
}

.fl-topbar-label{
  display: block;
  font-size: 11px;
  color: var(--fl-text-muted);
  margin-bottom: 5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.fl-select{
  border-radius: 12px;
  border: 1px solid var(--fl-border);
  min-height: 40px;
  box-shadow: none !important;
}

.fl-user-chip{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 12px;
  background: var(--fl-primary-soft);
  color: var(--fl-primary);
  border: 1px solid var(--fl-primary-border);
  font-weight: 700;
  transition: .18s ease;
}

.fl-user-chip:hover{
  background: #dbe8ff;
  color: var(--fl-primary-dark);
}

.fl-theme-toggle{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;
  padding:0 13px;border-radius:12px;border:1px solid var(--fl-border);
  background:var(--fl-surface);color:var(--fl-text);font-weight:800;transition:.18s ease;
}
.fl-theme-toggle:hover{color:var(--fl-primary);border-color:var(--fl-primary-border);transform:translateY(-1px)}
.fl-theme-toggle i{font-size:16px;color:var(--fl-primary)}

.fl-burger{
  width: 42px;
  height: 42px;
  border-radius: 12px;
  border: 1px solid var(--fl-border);
  background: #fff;
  color: var(--fl-text);
  font-size: 22px;
}

/* DARK MODE: shared application surfaces and Bootstrap components */
html[data-theme="dark"] .fl-topbar{background:rgba(17,27,45,.9);border-color:rgba(90,112,143,.26)}
html[data-theme="dark"] .fl-sidebar{background:var(--fl-sidebar-bg);box-shadow:8px 0 30px rgba(0,0,0,.34)}
html[data-theme="dark"] .fl-burger,
html[data-theme="dark"] .fl-action-btn{background:var(--fl-surface);color:var(--fl-text);border-color:var(--fl-border)}
html[data-theme="dark"] .fl-user-chip{background:var(--fl-primary-soft);color:#9ec5fe;border-color:var(--fl-primary-border)}
html[data-theme="dark"] .fl-user-chip:hover{background:#18365f;color:#c7ddff}
html[data-theme="dark"] .card,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .dropdown-menu,
html[data-theme="dark"] .list-group-item,
html[data-theme="dark"] .offcanvas{background-color:var(--fl-surface);color:var(--fl-text);border-color:var(--fl-border)}
html[data-theme="dark"] .card-header,
html[data-theme="dark"] .card-footer,
html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-footer{background-color:var(--fl-surface-2);color:var(--fl-text);border-color:var(--fl-border)}
html[data-theme="dark"] .table{--bs-table-color:var(--fl-text);--bs-table-bg:transparent;--bs-table-border-color:var(--fl-border);--bs-table-striped-color:var(--fl-text);--bs-table-striped-bg:rgba(255,255,255,.025);--bs-table-hover-color:var(--fl-text);--bs-table-hover-bg:rgba(110,168,254,.08);color:var(--fl-text)}
html[data-theme="dark"] .table thead th{background:var(--fl-surface-2);color:var(--fl-text-soft);border-color:var(--fl-border)}
html[data-theme="dark"] .table tbody td{border-color:var(--fl-border)}
html[data-theme="dark"] .table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg:rgba(255,255,255,.025);color:var(--fl-text)}
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select,
html[data-theme="dark"] .input-group-text{background-color:#0d1728;color:var(--fl-text);border-color:var(--fl-border-strong)}
html[data-theme="dark"] .form-control::placeholder{color:#718198;opacity:1}
html[data-theme="dark"] .form-control:disabled,
html[data-theme="dark"] .form-control[readonly],
html[data-theme="dark"] .form-select:disabled{background-color:#172235;color:#95a3b7;opacity:1}
html[data-theme="dark"] .form-check-input{background-color:#0d1728;border-color:#60718a}
html[data-theme="dark"] .form-check-input:checked{background-color:#397ce8;border-color:#397ce8}
html[data-theme="dark"] .btn-close{filter:invert(1) grayscale(100%) brightness(180%)}
html[data-theme="dark"] .btn-light,
html[data-theme="dark"] .btn-outline-secondary{background:#17243a;color:var(--fl-text);border-color:var(--fl-border-strong)}
html[data-theme="dark"] .btn-light:hover,
html[data-theme="dark"] .btn-outline-secondary:hover{background:#22324a;color:#fff;border-color:#536984}
html[data-theme="dark"] .text-dark{color:var(--fl-text)!important}
html[data-theme="dark"] .text-muted,
html[data-theme="dark"] .text-secondary{color:var(--fl-text-muted)!important}
html[data-theme="dark"] .bg-white,
html[data-theme="dark"] .bg-light{background-color:var(--fl-surface-2)!important;color:var(--fl-text)!important}
html[data-theme="dark"] hr{border-color:var(--fl-border);opacity:1}
html[data-theme="dark"] .alert-info{color:#b9dcff;background:#102b48;border-color:#24527a}
html[data-theme="dark"] .alert-success{color:#b7f5d5;background:#103427;border-color:#236347}
html[data-theme="dark"] .alert-warning{color:#ffe2a8;background:#3b2b10;border-color:#76541d}
html[data-theme="dark"] .alert-danger{color:#ffc9c5;background:#421d24;border-color:#7c3540}
html[data-theme="dark"] .nav-tabs{border-color:var(--fl-border)}
html[data-theme="dark"] .nav-tabs .nav-link{color:var(--fl-text-soft)}
html[data-theme="dark"] .nav-tabs .nav-link.active{background:var(--fl-surface);color:#9ec5fe;border-color:var(--fl-border) var(--fl-border) var(--fl-surface)}
html[data-theme="dark"] .pagination{--bs-pagination-bg:var(--fl-surface);--bs-pagination-color:#9ec5fe;--bs-pagination-border-color:var(--fl-border);--bs-pagination-hover-bg:var(--fl-surface-2);--bs-pagination-hover-border-color:var(--fl-border-strong);--bs-pagination-disabled-bg:#172235;--bs-pagination-disabled-border-color:var(--fl-border)}
html[data-theme="dark"] .fl-priority-item{background:var(--fl-surface);border-color:var(--fl-border);color:var(--fl-text)}
html[data-theme="dark"] .fl-priority-item:hover{background:var(--fl-surface-2);color:var(--fl-text)}
html[data-theme="dark"] .fl-priority-item>b,
html[data-theme="dark"] .fl-status-pill{background:#203049;color:var(--fl-text-soft)}
html[data-theme="dark"] .fl-kpi-icon-warning{background:#392b13;color:#fdb750}
html[data-theme="dark"] .fl-kpi-icon-danger{background:#3c2025;color:#ff8d85}
html[data-theme="dark"] .fl-empty-state{background:#123629;color:#91e6ba}
html[data-theme="dark"] .progress{background:#253249}
html[data-theme="dark"] code{color:#f0a8cb}
html[data-theme="dark"] ::selection{background:#315e9c;color:#fff}

/* Views with local light-only styling */
html[data-theme="dark"] :is(.product-card,.inventory-card,.invoice-card,.invoice-shell,.invoice-panel,.search-panel,.filter-panel,.summary-card,.annotation-box,.dental-toolbar,.arch-label){background:var(--fl-surface)!important;color:var(--fl-text)!important;border-color:var(--fl-border)!important}

/* Escáner móvil de códigos de productos (fuera del POS). */
.fl-scanner-field{position:relative;width:100%}
.fl-scanner-field>.form-control{padding-right:112px}
.fl-scan-button{position:absolute;right:6px;top:50%;z-index:4;display:inline-flex;align-items:center;gap:6px;transform:translateY(-50%);height:calc(100% - 12px);max-height:38px;padding:0 10px;border:1px solid rgba(13,110,253,.3);border-radius:8px;background:#eef5ff;color:#0759c7;font-size:12px;font-weight:700;line-height:1;transition:.18s ease}
.fl-scan-button:hover,.fl-scan-button:focus{background:#0d6efd;color:#fff;border-color:#0d6efd;box-shadow:0 0 0 3px rgba(13,110,253,.15)}
.fl-scan-button i{font-size:18px}
.input-group>.fl-scan-button-inline{position:static;transform:none;height:auto;max-height:none;border-radius:0;background:#eef5ff}
.input-group>.fl-scan-button-inline:last-child{border-radius:0 .375rem .375rem 0}
body.fl-scanner-open{overflow:hidden}
.fl-scanner-modal{position:fixed;inset:0;z-index:1095;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(3,12,27,.78);backdrop-filter:blur(6px)}
.fl-scanner-modal.is-open{display:flex}
.fl-scanner-dialog{width:min(620px,100%);overflow:hidden;border:1px solid rgba(255,255,255,.13);border-radius:22px;background:#fff;color:#182033;box-shadow:0 28px 80px rgba(0,0,0,.45)}
.fl-scanner-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px 16px}
.fl-scanner-title{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:800}.fl-scanner-title i{color:#0d6efd;font-size:24px}
.fl-scanner-subtitle{margin-top:3px;color:#667085;font-size:13px}
.fl-scanner-close{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#f0f3f8;color:#344054}
.fl-scanner-stage{position:relative;min-height:320px;overflow:hidden;background:#030914}
.fl-scanner-stage video,.fl-scanner-stage #flScannerFallback{display:block;width:100%;height:clamp(320px,54vh,480px);object-fit:cover}
#flScannerFallback video{width:100%!important;height:clamp(320px,54vh,480px)!important;object-fit:cover!important}
#flScannerFallback img,#flScannerFallback>div>div:first-child{display:none!important}
.fl-scanner-guide{pointer-events:none;position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:linear-gradient(rgba(0,0,0,.22),rgba(0,0,0,.22))}
.fl-scanner-guide span{position:relative;display:block;width:min(78%,420px);height:150px;border:2px solid rgba(255,255,255,.95);border-radius:16px;box-shadow:0 0 0 999px rgba(0,0,0,.26),0 0 24px rgba(0,173,255,.28)}
.fl-scanner-guide span:after{content:"";position:absolute;left:8%;right:8%;top:50%;height:2px;background:#2ed6ff;box-shadow:0 0 9px #2ed6ff}
.fl-scanner-status{min-height:48px;padding:15px 22px 10px;color:#475467;font-size:14px}.fl-scanner-status.is-error{color:#b42318;font-weight:600}
.fl-scanner-actions{display:flex;justify-content:flex-end;gap:10px;padding:6px 22px 20px}
html[data-theme="dark"] .fl-scan-button{background:#102b50;color:#70b7ff;border-color:#285a91}
html[data-theme="dark"] .fl-scan-button:hover,html[data-theme="dark"] .fl-scan-button:focus{background:#1d73d5;color:#fff}
html[data-theme="dark"] .fl-scanner-dialog{background:#111c2e;color:#edf4ff;border-color:#30425c}
html[data-theme="dark"] .fl-scanner-subtitle,html[data-theme="dark"] .fl-scanner-status{color:#aebdd1}
html[data-theme="dark"] .fl-scanner-status.is-error{color:#ff9b96}
html[data-theme="dark"] .fl-scanner-close{background:#1d2c42;color:#e6edf7}
@media(max-width:575.98px){.fl-scan-button span{display:none}.fl-scanner-field>.form-control{padding-right:52px}.fl-scan-button{width:38px;justify-content:center;padding:0}.fl-scanner-modal{padding:0;align-items:flex-end}.fl-scanner-dialog{border-radius:22px 22px 0 0}.fl-scanner-stage,.fl-scanner-stage video,.fl-scanner-stage #flScannerFallback,#flScannerFallback video{height:56vh!important;min-height:300px}.fl-scanner-head{padding:17px 18px 13px}.fl-scanner-actions{padding:6px 18px 16px}.fl-scanner-status{padding-left:18px;padding-right:18px}}
html[data-theme="dark"] :is(.product-card,.inventory-card,.invoice-card,.invoice-shell,.invoice-panel,.search-panel,.filter-panel,.summary-card,.annotation-box) :is(h1,h2,h3,h4,h5,h6,strong,label){color:var(--fl-text)!important}
html[data-theme="dark"] .tooth:hover{background:#1b2c45}
html[data-theme="dark"] .tooth.selected{background:#16385f}
html[data-theme="dark"] .tooth-body{fill:#dbe4ef;stroke:#91a2b9}
html[data-theme="dark"] .tooth-detail{stroke:#657991}
html[data-theme="dark"] .tooth-map{background:#18263b;border-color:#73859d}
html[data-theme="dark"] .tooth-map button[style*="background:#fff"]{background:#dbe4ef!important}
html[data-theme="dark"] .dental-divider{background:#53667f}

@media(max-width:767.98px){.fl-theme-label{display:none}.fl-theme-toggle{padding:0;width:40px}.fl-topbar-right{grid-template-columns:40px 1fr 1fr}.fl-topbar-right .fl-inline{grid-column:1/-1}}

/* CARDS */
.card{
  border: 1px solid rgba(228,231,236,0.9);
  border-radius: 22px;
  box-shadow: var(--fl-shadow-sm);
  overflow: hidden;
}

.card-body{
  padding: 22px;
}

.fl-stat-card{
  position: relative;
  overflow: hidden;
}

.fl-stat-card::after{
  content: "";
  position: absolute;
  right: -35px;
  top: -35px;
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background: rgba(21,94,239,0.07);
}

.fl-stat-label{
  color: var(--fl-text-muted);
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 8px;
}

.fl-stat-value{
  font-size: 30px;
  font-weight: 800;
  color: var(--fl-text);
  line-height: 1.1;
}

.fl-stat-sub{
  color: var(--fl-text-soft);
  margin-top: 6px;
  font-size: 13px;
}

.fl-action-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(180px,1fr));
  gap: 12px;
}

.fl-action-btn{
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  border-radius: 16px;
  padding: 0 16px;
  font-weight: 700;
  border: 1px solid var(--fl-border);
  background: #fff;
  color: var(--fl-text);
  transition: .18s ease;
}

.fl-action-btn:hover{
  transform: translateY(-1px);
  box-shadow: var(--fl-shadow-sm);
  color: var(--fl-primary);
  border-color: var(--fl-primary-border);
}

.fl-action-btn i{
  color: var(--fl-primary);
  font-size: 18px;
}

/* TABLES */
.table{
  margin-bottom: 0;
}

.table thead th{
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--fl-text-muted);
  background: var(--fl-surface-2);
  border-bottom: 1px solid var(--fl-border);
  padding: 14px 16px;
}

.table tbody td{
  padding: 15px 16px;
  vertical-align: middle;
  border-color: #f0f2f5;
}

.table-striped > tbody > tr:nth-of-type(odd) > *{
  --bs-table-accent-bg: #fcfdff;
}

.fl-badge-status{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.fl-badge-issued{
  background: #e8fff3;
  color: #067647;
}

.fl-badge-rejected{
  background: #fff1f1;
  color: #b42318;
}

/* FORMS */
.form-control,
.form-select{
  border-radius: 14px;
  border: 1px solid var(--fl-border);
  min-height: 46px;
  box-shadow: none !important;
}

.form-control:focus,
.form-select:focus{
  border-color: #84adff;
}

.btn{
  border-radius: 14px;
  font-weight: 700;
  min-height: 46px;
  padding: 0 18px;
}

.btn-primary{
  background: linear-gradient(135deg, var(--fl-primary) 0%, var(--fl-primary-dark) 100%);
  border: 0;
  box-shadow: 0 10px 20px rgba(21,94,239,0.22);
}

.btn-primary:hover{
  background: linear-gradient(135deg, #0e56df 0%, #0047d3 100%);
}

.btn-outline-primary{
  border-color: var(--fl-primary-border);
  color: var(--fl-primary);
}

.btn-outline-primary:hover{
  background: var(--fl-primary-soft);
  color: var(--fl-primary-dark);
  border-color: var(--fl-primary-border);
}

/* PAGE TITLES */
.fl-section-title{
  font-size: 26px;
  font-weight: 800;
  color: var(--fl-text);
  margin-bottom: 6px;
}

.fl-section-subtitle{
  color: var(--fl-text-muted);
  margin-bottom: 20px;
}

/* EXECUTIVE DASHBOARD */
.fl-dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}
.fl-dashboard-actions{display:flex;gap:10px;flex-wrap:wrap}
.fl-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.fl-kpi{padding:20px;display:flex;align-items:center;gap:15px;color:inherit;min-width:0}
.fl-kpi-link{transition:.18s ease}.fl-kpi-link:hover{transform:translateY(-2px);box-shadow:var(--fl-shadow-md);color:inherit}
.fl-kpi-icon{width:46px;height:46px;flex:0 0 46px;border-radius:15px;display:grid;place-items:center;background:var(--fl-primary-soft);color:var(--fl-primary);font-size:20px}
.fl-kpi-icon-warning{background:#fff7e8;color:#dc6803}.fl-kpi-icon-danger{background:#fff0ef;color:#d92d20}
.fl-kpi .fl-stat-value{font-size:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fl-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}
.fl-card-heading h2{font-size:17px;font-weight:800;margin:0 0 4px}.fl-card-heading p{font-size:13px;color:var(--fl-text-muted);margin:0}
.fl-card-heading>a{font-size:13px;font-weight:700;color:var(--fl-primary);white-space:nowrap}
.fl-mini-chart{height:230px;display:flex;align-items:flex-end;gap:7px;padding:14px 2px 0;border-bottom:1px solid var(--fl-border)}
.fl-chart-column{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px;min-width:0}
.fl-chart-bar{width:100%;max-width:32px;min-height:4px;border-radius:7px 7px 2px 2px;background:linear-gradient(180deg,#5b8def,#155eef);transition:.18s}
.fl-chart-column:hover .fl-chart-bar{filter:brightness(.9)}.fl-chart-column span{font-size:10px;color:var(--fl-text-muted);height:17px}
.fl-priority-list{display:grid;gap:9px}
.fl-priority-item{display:grid;grid-template-columns:10px 1fr auto;gap:11px;align-items:center;padding:11px;border:1px solid var(--fl-border);border-radius:14px;color:var(--fl-text)}
.fl-priority-item:hover{background:var(--fl-surface-2);color:var(--fl-text)}
.fl-priority-item strong{display:block;font-size:13px}.fl-priority-item small{display:block;color:var(--fl-text-muted);font-size:12px;margin-top:2px}
.fl-priority-item>b{font-size:13px;background:#f2f4f7;border-radius:999px;padding:5px 9px}
.fl-priority-dot{width:9px;height:9px;border-radius:50%}.fl-tone-danger{background:var(--fl-danger)}.fl-tone-warning{background:var(--fl-warning)}.fl-tone-info{background:var(--fl-primary)}
.fl-empty-state{display:flex;align-items:center;justify-content:center;gap:9px;color:#067647;background:#ecfdf3;border-radius:14px;padding:22px;font-weight:700;font-size:13px}
.fl-status-pill{display:inline-block;padding:5px 8px;background:#f2f4f7;border-radius:999px;font-size:11px;font-weight:700;text-transform:capitalize}
.fl-compact-table td,.fl-compact-table th{white-space:nowrap}.fl-action-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr))}

/* RESPONSIVE FOUNDATION */
.table-responsive{border-radius:14px}.card img{max-width:100%;height:auto}
@media(max-width:1199.98px){.fl-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){
  .fl-main{padding:10px}.fl-dashboard-heading{align-items:stretch;flex-direction:column}.fl-dashboard-actions{display:grid;grid-template-columns:1fr 1fr}
  .fl-kpi-grid{grid-template-columns:1fr 1fr;gap:9px}.fl-kpi{padding:14px;gap:10px}.fl-kpi-icon{width:38px;height:38px;flex-basis:38px;border-radius:12px;font-size:17px}
  .fl-kpi .fl-stat-value{font-size:19px}.fl-stat-label,.fl-stat-sub{font-size:11px}.card-body{padding:15px}
  .fl-mini-chart{height:190px;gap:3px}.fl-chart-column:nth-child(even) span{visibility:hidden}
  .fl-topbar-right{display:grid;grid-template-columns:1fr 1fr}.fl-topbar-right .fl-inline{grid-column:1/-1}.fl-user-chip{padding:0 9px;font-size:13px}
  .fl-section-title{font-size:22px}.fl-action-grid-compact{grid-template-columns:1fr 1fr}
  .table td,.table th{padding:11px 12px;font-size:13px}.btn{min-height:44px;padding:0 13px}
}
@media(max-width:420px){.fl-kpi-grid{grid-template-columns:1fr}.fl-dashboard-actions{grid-template-columns:1fr}.fl-action-grid-compact{grid-template-columns:1fr}}

/* MOBILE */
@media (max-width: 991.98px){
  .fl-sidebar{
    position: fixed;
    left: 0;
    top: 0;
    transform: translateX(-100%);
    transition: transform .22s ease;
    width: 290px;
    height: 100vh;
  }

  .fl-sidebar.is-open{
    transform: translateX(0);
  }

  .fl-sidebar-backdrop{
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(16,24,40,0.35);
    opacity: 0;
    visibility: hidden;
    transition: .2s ease;
    z-index: 1030;
  }

  .fl-sidebar-backdrop.is-open{
    opacity: 1;
    visibility: visible;
  }

  .fl-main{
    padding: 16px;
  }

  .fl-topbar{
    flex-direction: column;
    align-items: stretch;
    padding: 14px;
    border-radius: 18px;
  }

  .fl-topbar-left{
    justify-content: space-between;
  }

  .fl-topbar-right{
    align-items: stretch;
    gap: 10px;
  }

  .fl-inline{
    min-width: 100%;
  }

  .fl-user-chip{
    justify-content: center;
  }

  .fl-page-title{
    font-size: 20px;
  }
}
/* ===== SIDEBAR MEJORADO ===== */

.fl-sidebar{
  width: 272px;
  background: linear-gradient(180deg, #1552d6 0%, #0d43b8 55%, #0a3798 100%);
  color: var(--fl-sidebar-text);
  padding: 14px 12px;
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  box-shadow: 8px 0 30px rgba(11, 63, 174, 0.18);
  z-index: 1040;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.18) transparent;
}

.fl-sidebar::-webkit-scrollbar{
  width: 6px;
}

.fl-sidebar::-webkit-scrollbar-thumb{
  background: rgba(255,255,255,0.16);
  border-radius: 999px;
}

.fl-sidebar-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  padding: 2px 4px 8px;
}

.fl-logo-wrap{
  display: flex;
  align-items: center;
  gap: 10px;
}

.fl-logo-icon{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.10) 100%);
  border: 1px solid rgba(255,255,255,0.14);
  font-size: 20px;
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.05);
}

.fl-logo-text{
  font-weight: 800;
  font-size: 20px;
  line-height: 1;
  color: #fff;
}

.fl-logo-subtext{
  font-size: 11px;
  color: rgba(255,255,255,0.74);
  margin-top: 3px;
}

.fl-sidebar-section-title{
  font-size: 10px;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.62);
  margin: 12px 10px 8px;
  font-weight: 800;
}

.fl-link{
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(255,255,255,0.94);
  padding: 9px 10px;
  border-radius: 14px;
  margin-bottom: 4px;
  transition: all .18s ease;
  font-weight: 600;
  min-height: 44px;
  font-size: 15px;
}

.fl-link i{
  width: 32px;
  height: 32px;
  min-width: 32px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  color: #ffffff;
  background: rgba(7, 25, 74, 0.22);
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}

.fl-link span{
  flex: 1;
  line-height: 1.15;
}

.fl-link:hover{
  background: rgba(255,255,255,0.13);
  color: #fff;
  transform: translateX(2px);
}

.fl-link:hover i{
  background: rgba(7, 25, 74, 0.36);
}

.fl-link small{
  margin-left: auto;
  font-size: 10px;
  font-weight: 800;
  color: #dbe8ff;
  background: rgba(4, 26, 80, 0.55);
  border: 1px solid rgba(255,255,255,0.10);
  padding: 4px 8px;
  border-radius: 999px;
  line-height: 1;
}

.fl-link-disabled{
  opacity: .94;
  cursor: default;
}

.fl-link-disabled:hover{
  transform: none;
  background: rgba(255,255,255,0.09);
}

.fl-link-logout{
  background: rgba(255,255,255,0.10);
  margin-top: 8px;
}

.fl-link-logout i{
  background: rgba(79, 17, 27, 0.28);
}

.fl-spacer{
  flex: 1;
  min-height: 8px;
}

/* ===== MÓVIL ===== */

@media (max-width: 991.98px){
  .fl-sidebar{
    position: fixed;
    left: 0;
    top: 0;
    transform: translateX(-100%);
    transition: transform .22s ease;
    width: 290px;
    height: 100vh;
    padding: 16px 12px 20px;
    border-top-right-radius: 22px;
    border-bottom-right-radius: 22px;
  }

  .fl-sidebar.is-open{
    transform: translateX(0);
  }

  .fl-sidebar-backdrop{
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(16,24,40,0.45);
    opacity: 0;
    visibility: hidden;
    transition: .2s ease;
    z-index: 1030;
    backdrop-filter: blur(2px);
  }

  .fl-sidebar-backdrop.is-open{
    opacity: 1;
    visibility: visible;
  }

  .fl-sidebar-header{
    margin-bottom: 12px;
  }

  .fl-link{
    min-height: 46px;
    padding: 10px 10px;
  }

  .fl-link i{
    width: 34px;
    height: 34px;
    min-width: 34px;
    border-radius: 11px;
  }

  .fl-link small{
    font-size: 9px;
    padding: 4px 7px;
  }
}
/* ===== BOTONES ALINEADOS ===== */

.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  line-height: 1;
}

.btn i{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1;
}

.btn-sm{
  min-height: 36px;
}

.btn-primary,
.btn-outline-primary{
  padding: 0 18px;
  height: 46px;
}
.btn i.bi{
  position: relative;
  top: 0;
}
.btn-primary:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(21,94,239,0.28);
}
.pos-product-card{
  transition: transform .15s ease, box-shadow .15s ease;
  border-radius: 18px;
}

.pos-product-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(16,24,40,0.10);
}

.pos-out-stock{
  opacity: .65;
}

.pos-cart-card{
  position: sticky;
  top: 92px;
}
.pos-layout{
  min-height:100vh;
  background:#f6f8fb;
}

.pos-dark{
  background:#0f172a;
  color:#e5e7eb;
}

.pos-dark .card{
  background:#111827;
  color:#e5e7eb;
  border-color:#1f2937;
}

.pos-dark .form-control,
.pos-dark .form-select{
  background:#0b1220;
  color:#e5e7eb;
  border-color:#334155;
}

.pos-dark .text-muted{
  color:#94a3b8 !important;
}

.pos-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:20px;
}

.pos-grid{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap:14px;
}

.pos-product-card{
  min-height:220px;
  cursor:pointer;
  border-radius:18px;
  overflow:hidden;
}

.pos-product-image{
  height:110px;
  background:linear-gradient(135deg,#dbeafe,#eff6ff);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:34px;
  color:#2563eb;
}

.pos-dark .pos-product-image{
  background:linear-gradient(135deg,#1e293b,#0f172a);
  color:#60a5fa;
}

.pos-categories{
  display:flex;
  gap:10px;
  overflow:hidden;
  margin-bottom:16px;
}

.pos-category-chip{
  border:1px solid #dbe3ef;
  background:#fff;
  border-radius:999px;
  padding:10px 16px;
  white-space:nowrap;
  font-weight:600;
  cursor:pointer;
}

.pos-dark .pos-category-chip{
  background:#111827;
  border-color:#334155;
  color:#e5e7eb;
}

.pos-category-chip.active{
  background:#155eef;
  border-color:#155eef;
  color:#fff;
}

.pos-arrow-btn{
  width:42px;
  height:42px;
  border-radius:12px;
}

.pos-keyboard{
  display:grid;
  grid-template-columns: repeat(10, 1fr);
  gap:8px;
}

.pos-key{
  min-height:46px;
  border:none;
  border-radius:12px;
  background:#eef2ff;
  font-weight:700;
}

.pos-dark .pos-key{
  background:#1e293b;
  color:#e5e7eb;
}

.pos-modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,0.45);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:3000;
  padding:20px;
}

.pos-modal-backdrop.open{
  display:flex;
}

.pos-modal-card{
  width:min(680px,100%);
  background:#fff;
  border-radius:20px;
  padding:20px;
  box-shadow:0 20px 60px rgba(0,0,0,0.18);
}

.pos-dark .pos-modal-card{
  background:#111827;
  color:#e5e7eb;
}

.pos-payment-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}

.pos-pay-btn{
  min-height:58px;
  border-radius:14px;
  font-weight:700;
}

.pos-hidden-print{
  display:none;
}
