:root{
  --primary:#3f7df6;
  --primary-dark:#2563eb;
  --primary-soft:#eaf1ff;
  --sidebar:#ffffff;
  --bg:#f3f6fb;
  --card:#ffffff;
  --text:#15223a;
  --muted:#6b7890;
  --border:#e5ebf3;
  --ok:#22c55e;
  --danger:#ef4444;
  --warning:#f59e0b;
  --shadow:0 14px 35px rgba(21,34,58,.08);
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0;
  background:var(--bg);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--text);
  overflow-x:hidden;
}
.app-shell{display:flex;min-height:100vh;background:linear-gradient(180deg,#f7faff 0%,#eef3f9 100%)}
.sidebar{
  width:260px;
  background:var(--sidebar);
  color:var(--text);
  position:fixed;
  inset:0 auto 0 0;
  z-index:1040;
  padding:14px 12px;
  transition:.25s transform,.25s box-shadow;
  overflow-y:auto;
  border-right:1px solid var(--border);
  box-shadow:6px 0 26px rgba(21,34,58,.04);
}
.brand-box{
  display:flex;
  gap:10px;
  align-items:center;
  padding:8px 6px 12px;
  border-bottom:1px solid var(--border);
  margin-bottom:10px;
}
.brand-icon{
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:linear-gradient(135deg,var(--primary),#64b5ff);
  font-size:23px;
  color:#fff;
  box-shadow:0 10px 22px rgba(63,125,246,.28);
}
.brand-text{min-width:0;flex:1}
.brand-title{font-weight:900;line-height:1.05;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-subtitle{font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-close{color:#6b7890;border:0;background:#f1f5f9;border-radius:10px}
.sidebar-profile{
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 8px;
  margin:8px 2px 10px;
  background:#f7faff;
  border:1px solid var(--border);
  border-radius:16px;
}
.avatar-mini,.avatar-top{
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:linear-gradient(135deg,#2563eb,#60a5fa);
  color:#fff;
  font-weight:900;
  box-shadow:0 8px 16px rgba(37,99,235,.25);
}
.avatar-mini{width:38px;height:38px;font-size:13px}.avatar-top{width:34px;height:34px;font-size:12px}
.profile-meta{min-width:0}.profile-name{font-weight:800;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-role{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px}.status-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.13)}
.menu-caption{
  color:#99a5b7;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:10px;
  font-weight:900;
  margin:16px 10px 7px;
}
.sidebar-nav .nav-link{
  color:#526079;
  border-radius:11px;
  padding:9px 11px;
  display:flex;
  gap:10px;
  align-items:center;
  margin:2px 0;
  font-weight:700;
  font-size:14px;
  position:relative;
  transition:.18s ease;
}
.sidebar-nav .nav-link .nav-icon{width:23px;height:23px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:#7190b6}
.sidebar-nav .nav-link:hover{background:#f1f6ff;color:var(--primary-dark);transform:translateX(2px)}
.sidebar-nav .nav-link:hover .nav-icon{color:var(--primary-dark)}
.sidebar-nav .nav-link.active{background:linear-gradient(90deg,var(--primary),#5aa4ff);color:#fff;box-shadow:0 9px 18px rgba(63,125,246,.25)}
.sidebar-nav .nav-link.active .nav-icon{color:#fff;background:rgba(255,255,255,.17)}
.sidebar-nav .nav-link.active:after{content:"";position:absolute;right:-12px;top:12px;bottom:12px;width:4px;border-radius:999px;background:var(--primary)}
.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(15,23,42,.35);z-index:1030}
.main-content{margin-left:260px;width:calc(100% - 260px);min-height:100vh}
.topbar{
  position:sticky;
  top:0;
  z-index:1000;
  min-height:78px;
  background:linear-gradient(90deg,#3f7df6 0%,#2f88ff 55%,#35a7ff 100%);
  color:#fff;
  padding:14px 24px;
  display:flex;
  align-items:center;
  gap:16px;
  box-shadow:0 10px 28px rgba(63,125,246,.22);
}
.topbar:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 20%,rgba(255,255,255,.18),transparent 30%),radial-gradient(circle at 85% 0%,rgba(255,255,255,.16),transparent 26%);pointer-events:none}
.topbar>*{position:relative}
.topbar-menu{width:42px;height:42px;border:0;background:rgba(255,255,255,.18);color:#fff;border-radius:12px;font-size:22px;display:flex;align-items:center;justify-content:center}
.page-heading{min-width:0}.breadcrumb-mini{display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.75);font-size:12px;font-weight:700;margin-bottom:3px}.topbar h1{font-size:22px;line-height:1.1;margin:0;font-weight:900;letter-spacing:.1px}.topbar-actions{display:flex;align-items:center;gap:10px}.topbar-icon{width:36px;height:36px;border-radius:12px;background:rgba(255,255,255,.15);align-items:center;justify-content:center;color:#fff;border:1px solid rgba(255,255,255,.13)}.user-pill{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;background:rgba(255,255,255,.16);font-weight:800;font-size:13px;border:1px solid rgba(255,255,255,.14);max-width:220px}.user-pill span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{background:#fff;color:#2563eb;border:0;border-radius:12px;font-weight:800;box-shadow:0 7px 16px rgba(15,23,42,.12)}.logout-btn:hover{background:#f8fbff;color:#164bb8}
.content-wrap{padding:24px 24px 44px}.app-card{border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);background:var(--card);overflow:hidden}.card.app-card.p-3{padding:1.15rem!important}
.stat-card{
  border-radius:16px;
  padding:16px;
  background:#fff;
  box-shadow:0 10px 25px rgba(21,34,58,.07);
  height:100%;
  border:1px solid var(--border);
  position:relative;
  overflow:hidden;
  transition:.18s ease;
}
.stat-card:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(21,34,58,.1)}
.stat-card:after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:var(--primary)}
.row.g-3.mb-4>.col-6:nth-child(2) .stat-card:after{background:#22c55e}.row.g-3.mb-4>.col-6:nth-child(3) .stat-card:after{background:#f97316}.row.g-3.mb-4>.col-6:nth-child(4) .stat-card:after{background:#ef4444}.row.g-3.mb-4>.col-6:nth-child(5) .stat-card:after{background:#8b5cf6}.row.g-3.mb-4>.col-6:nth-child(6) .stat-card:after{background:#06b6d4}
.stat-label{color:var(--muted);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:26px;font-weight:950;margin-top:6px;letter-spacing:-.03em}.stat-icon{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary-dark);font-size:22px}.stat-trend{margin-top:12px;height:28px;display:flex;align-items:end;gap:3px}.stat-trend i{display:block;width:9px;border-radius:4px 4px 0 0;background:rgba(63,125,246,.25)}
.table{--bs-table-color:var(--text)}.table thead th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#526079;background:#f8fafd;border-bottom:1px solid var(--border);padding-top:.85rem;padding-bottom:.85rem}.table td,.table th{vertical-align:middle;border-color:#edf2f7}.table-hover tbody tr:hover{background:#f7faff}.btn{font-weight:750}.btn-primary{background:linear-gradient(135deg,var(--primary),#2f88ff);border-color:transparent;box-shadow:0 8px 17px rgba(63,125,246,.2)}.btn-primary:hover{background:linear-gradient(135deg,#2f6be4,#207af0);border-color:transparent}.btn-outline-primary{border-color:#bcd0ff;color:var(--primary-dark);font-weight:800}.btn-outline-primary:hover{background:var(--primary);border-color:var(--primary);color:#fff}.btn-light{background:#f6f8fb;border-color:#edf2f7;color:#243046}.badge-soft{background:var(--primary-soft);color:#1d4ed8;border-radius:999px;padding:.38rem .65rem;font-weight:900}.form-label{font-weight:800;color:#334155}.required:after{content:" *";color:var(--danger)}.form-control,.form-select{border-color:#dbe4ef;border-radius:10px}.form-control:focus,.form-select:focus{border-color:#7ea6ff;box-shadow:0 0 0 .22rem rgba(63,125,246,.13)}
.action-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.compact-input{max-width:125px}.total-box{font-size:22px;font-weight:950;color:#086aa6}.login-bg{min-height:100vh;background:radial-gradient(circle at top left,#bfd8ff,transparent 35%),linear-gradient(135deg,#173d8f,#0f172a);display:flex;align-items:center;justify-content:center;padding:20px}.login-card{max-width:420px;width:100%;border-radius:26px;border:0;box-shadow:0 28px 80px rgba(0,0,0,.3)}.login-logo{width:72px;height:72px;border-radius:24px;margin:auto;display:flex;align-items:center;justify-content:center;background:#eaf1ff;color:#2563eb;font-size:42px}
.dashboard-hero{background:linear-gradient(135deg,#ffffff,#f5f9ff);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:18px;position:relative;overflow:hidden}.dashboard-hero:after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:rgba(63,125,246,.1)}.hero-title{font-weight:950;margin:0}.hero-subtitle{color:var(--muted);font-weight:650;margin:4px 0 0}.quick-btn{display:inline-flex;align-items:center;gap:8px;border-radius:14px;padding:10px 14px;background:#fff;border:1px solid var(--border);box-shadow:0 8px 18px rgba(21,34,58,.06);color:var(--text);text-decoration:none;font-weight:850}.quick-btn:hover{color:var(--primary-dark);transform:translateY(-1px)}
.modal-content{border:0;border-radius:18px;box-shadow:0 30px 80px rgba(21,34,58,.25)}.modal-header{border-color:var(--border)}.modal-footer{border-color:var(--border)}
.modal.show .modal-dialog{transform:none!important}
.modal-dialog-scrollable{max-height:calc(100vh - 3.5rem)}
.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem);display:flex;flex-direction:column;overflow:hidden}
.modal-dialog-scrollable .modal-content>form{display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden}
.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{flex:0 0 auto}
.modal-dialog-scrollable .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto}
#ventaModal .qty,#ventaModal .price{text-align:center}#ventaModal .price[readonly]{background:#f3f6fb;font-weight:900;color:#172033}#ventaModal .modal-body{padding-bottom:22px}#ventaModal #itemsTable .prod{min-width:150px}#ventaModal #itemsTable .qty{min-width:86px}#ventaModal #itemsTable .price{min-width:105px}#saleAdjustments{background:#fbfdff;border-radius:14px;padding-left:8px;padding-right:8px}
#ventaModal #itemsTable tbody tr:nth-child(odd){background:#ffffff}
#ventaModal #itemsTable tbody tr:nth-child(even){background:var(--primary-soft)}
#ventaModal #itemsTable tbody tr{transition:background-color .15s ease}
@media (max-width:991.98px){
  .sidebar{transform:translateX(-100%)}.sidebar.show{transform:translateX(0);box-shadow:10px 0 40px rgba(15,23,42,.18)}.sidebar-backdrop.show{display:block}.main-content{margin-left:0;width:100%}.topbar{padding:12px 14px;min-height:66px}.topbar h1{font-size:19px}.breadcrumb-mini{display:none}.content-wrap{padding:14px}.table-responsive{font-size:14px}.stat-value{font-size:22px}.app-card{border-radius:16px}.topbar-actions{gap:6px}.user-pill{padding-right:4px}.logout-btn{padding:.48rem .62rem}
}
@media (max-width:575.98px){
  html,body{overflow-x:hidden}body.modal-open{overflow:hidden;padding-right:0!important}.topbar{padding:9px 10px;gap:9px}.topbar h1{font-size:17px;line-height:1.15}.topbar-menu{width:40px;height:40px}.topbar-actions{gap:5px}.topbar-user .btn{padding:.34rem .55rem;font-size:12px;white-space:nowrap}.content-wrap{padding:10px 8px 76px}.card.app-card.p-3{padding:.85rem!important}.action-bar{gap:6px}.action-bar .btn{width:100%;min-height:42px}.stat-card{padding:13px}.stat-value{font-size:19px}.stat-icon{width:36px;height:36px;font-size:18px}.stat-trend{display:none}
  .modal{padding:0!important}.modal-dialog,.modal-dialog-centered,.modal-dialog-scrollable,.modal-fullscreen-sm-down{width:100%!important;max-width:100%!important;height:100dvh!important;min-height:100dvh!important;margin:0!important;display:flex!important;align-items:stretch!important}.modal-content{width:100%;height:100dvh!important;max-height:100dvh!important;border:0!important;border-radius:0!important;display:flex;flex-direction:column;overflow:hidden}.modal-content>form{height:100%;min-height:0;display:flex;flex-direction:column}.modal-header{flex:0 0 auto;padding:.75rem .9rem;background:#fff;border-bottom:1px solid #e5e7eb}.modal-title{font-size:1rem;line-height:1.2}.modal-body{flex:1 1 auto;min-height:0;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch;padding:.85rem .85rem 1rem!important}.modal-footer,.modal-fullscreen-sm-down .modal-footer{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;flex:0 0 auto;gap:.5rem;padding:.7rem .85rem!important;background:#fff;border-top:1px solid #e5e7eb;box-shadow:0 -8px 22px rgba(15,23,42,.08)}.modal-footer .btn{flex:1 1 0;min-height:44px;margin:0!important}.modal .form-control,.modal .form-select,.modal .btn{min-height:44px;font-size:16px}.modal .form-control-sm,.modal .form-select-sm{min-height:40px;font-size:15px}.modal .form-label{font-size:.94rem;margin-bottom:.24rem}.modal .form-text{font-size:.78rem;margin-top:.18rem}.modal .mb-3{margin-bottom:.72rem!important}.modal .mb-2{margin-bottom:.58rem!important}.modal textarea.form-control{min-height:88px;resize:vertical}.modal .row.g-2{--bs-gutter-y:.5rem}.modal .table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
  #ventaModal .modal-body{padding-bottom:1rem!important}#ventaModal #itemsTable{min-width:0!important;width:100%}#ventaModal #itemsTable thead{display:none}#ventaModal #itemsTable tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px;gap:7px;align-items:center;border:1px solid #e5e7eb;border-radius:13px;padding:8px;margin-bottom:8px;background:#fff}#ventaModal #itemsTable tbody td{display:block;border:0!important;padding:0!important}#ventaModal #itemsTable tbody td:nth-child(1){grid-column:1 / 3}#ventaModal #itemsTable tbody td:nth-child(2){grid-column:1 / 2}#ventaModal #itemsTable tbody td:nth-child(3){grid-column:2 / 3}#ventaModal #itemsTable tbody td:nth-child(4){grid-column:1 / 3;display:flex;justify-content:space-between;align-items:center;padding-top:2px!important}#ventaModal #itemsTable tbody td:nth-child(4)::before{content:'Total';font-weight:800;color:#64748b;font-size:.85rem}#ventaModal #itemsTable tbody td:nth-child(5){grid-column:3 / 4;grid-row:1 / 4;display:flex;justify-content:center;align-items:center}#ventaModal #itemsTable .prod,#ventaModal #itemsTable .qty,#ventaModal #itemsTable .price{width:100%;min-width:0!important}#ventaModal #itemsTable tbody td:nth-child(2),#ventaModal #itemsTable tbody td:nth-child(3){min-width:0;width:100%}#ventaModal #itemsTable .qty,#ventaModal #itemsTable .price{width:100%;min-width:0!important;text-align:center}#ventaModal #itemsTable .lineTotal{text-align:right;font-size:1.05rem;color:#0369a1}#ventaModal #itemsTable .btn-outline-danger{width:38px;height:38px;min-height:38px;padding:0;border-radius:10px}#ventaModal .total-box{font-size:24px;white-space:nowrap}#ventaModal #addRow{width:100%;margin-top:.1rem}#saleAdjustments{margin-left:0;margin-right:0;padding:.75rem .2rem .1rem;background:#fbfdff}.table-responsive{border-radius:12px}.table-responsive .table{margin-bottom:0}.table-responsive th,.table-responsive td{font-size:.9rem;white-space:nowrap}
}
@media (min-width:576px) and (max-width:991.98px){.modal-dialog-scrollable .modal-content{max-height:calc(100dvh - 1.5rem)}.modal-dialog-scrollable .modal-body{overflow-y:auto;-webkit-overflow-scrolling:touch}}
@media print{.sidebar,.topbar,.no-print{display:none!important}.main-content{margin:0;width:100%}.content-wrap{padding:0}.app-card{box-shadow:none;border:0}}
