:root{
  --app-bg:#f4f7fb;
  --app-surface:#ffffff;
  --app-surface-soft:#f8fafc;
  --app-border:rgba(15,23,42,.08);
  --app-border-strong:rgba(15,23,42,.12);
  --app-shadow:0 18px 42px rgba(15,23,42,.08);
  --app-shadow-soft:0 10px 24px rgba(15,23,42,.06);
  --app-text:#132238;
  --app-text-soft:#5f6c80;
  --app-primary:#0d6efd;
  --app-primary-strong:#0b57d0;
  --app-accent:#123765;
  --app-radius:20px;
  --app-radius-sm:14px;
  --sidebar-width:290px;
}

html,body{min-height:100%;}
body{
  background:
    radial-gradient(circle at top right, rgba(13,110,253,.10), transparent 24%),
    radial-gradient(circle at left top, rgba(18,55,101,.08), transparent 22%),
    var(--app-bg);
  color:var(--app-text);
}

body, .form-control, .form-select, .btn, .table, .alert {font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;}
.fw-black{font-weight:800; letter-spacing:-.02em;}
.rounded-4{border-radius:var(--app-radius-sm)!important;}
.card{border:1px solid var(--app-border); box-shadow:var(--app-shadow-soft); background:var(--app-surface);}
.card .card-body{padding:1.25rem;}
@media (min-width: 1200px){.card .card-body{padding:1.45rem;}}

.app-shell-body{overflow-x:hidden;}
.app-shell{display:flex; min-height:100vh;}
.app-sidebar{
  width:var(--sidebar-width);
  flex:0 0 var(--sidebar-width);
  position:sticky;
  top:0;
  height:100vh;
  padding:1.15rem;
  border-right:1px solid var(--app-border);
  background:linear-gradient(180deg,#0f172a 0%, #14284a 100%);
  color:#d9e6ff;
  box-shadow:18px 0 38px rgba(15,23,42,.10);
  flex-direction:column;
  gap:1rem;
}

.app-brand-wrap{display:flex; align-items:center; justify-content:space-between; gap:.75rem;}
.app-brand{
  display:flex;
  align-items:center;
  gap:.85rem;
  color:#fff;
  text-decoration:none;
  min-width:0;
  line-height:1;
}
.app-brand:hover{color:#fff;}
.app-brand-mark{
  width:46px;
  height:46px;
  min-width:46px;
  min-height:46px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 46px;
  line-height:1;
  letter-spacing:0;
  padding:0;
  background:linear-gradient(135deg,#60a5fa, #2563eb 70%);
  color:#fff;
  font-weight:800;
  font-size:1.2rem;
  box-shadow:0 12px 28px rgba(37,99,235,.35);
}
.app-brand-title{display:block; font-weight:800; letter-spacing:-.02em;}
.app-brand-subtitle{display:block; font-size:.82rem; color:rgba(217,230,255,.72);}
.app-sidebar-section-label{
  padding:.25rem .15rem 0;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(217,230,255,.58);
}
.app-nav{display:flex; flex-direction:column; gap:.45rem;}
.app-nav-link{
  display:flex; align-items:center; gap:.9rem; text-decoration:none;
  padding:.85rem .9rem; border-radius:18px; color:#d9e6ff;
  border:1px solid transparent; transition:.18s ease;
}
.app-nav-link:hover{color:#fff; background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.08); transform:translateX(2px);}
.app-nav-link.is-active{
  background:linear-gradient(135deg, rgba(37,99,235,.25), rgba(96,165,250,.12));
  border-color:rgba(96,165,250,.35);
  box-shadow:0 12px 28px rgba(2,6,23,.16);
}
.app-nav-icon{
  width:42px;
  height:42px;
  min-width:42px;
  min-height:42px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 42px;
  line-height:1;
  padding:0;
  background:rgba(255,255,255,.08);
  font-size:1rem;
}
.app-nav-link.is-active .app-nav-icon{background:rgba(96,165,250,.18); color:#fff;}
.app-nav-copy{display:flex; flex-direction:column; min-width:0;}
.app-nav-label{font-weight:700; color:#fff;}
.app-nav-desc{font-size:.82rem; color:rgba(217,230,255,.68); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.app-user-card{
  display:flex; align-items:center; gap:.9rem; padding:1rem; border-radius:20px;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08);
}
.app-user-avatar{
  width:46px; height:46px; border-radius:16px; display:grid; place-items:center; flex:0 0 auto;
  background:linear-gradient(135deg, rgba(96,165,250,.95), rgba(29,78,216,.92)); color:#fff; font-weight:800;
}
.app-user-meta{min-width:0; flex:1;}
.app-user-name{font-weight:700; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.app-user-email{font-size:.82rem; color:rgba(217,230,255,.7); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}

.app-main{min-width:0; flex:1; display:flex; flex-direction:column;}
.app-topbar{
  display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.25rem;
  background:rgba(244,247,251,.75); backdrop-filter:blur(14px); border-bottom:1px solid rgba(15,23,42,.06); z-index:1030;
}
.app-topbar-left,.app-topbar-right{display:flex; align-items:center; gap:.9rem;}
.app-topbar-kicker{font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--app-text-soft);}
.app-topbar-title{font-size:1.1rem; font-weight:800; letter-spacing:-.02em; color:var(--app-text);}
.app-topbar-user{
  display:flex; flex-direction:column; padding:.65rem .85rem; min-width:0;
  background:rgba(255,255,255,.72); border:1px solid rgba(15,23,42,.08); border-radius:16px;
}
.app-user-pill-name{font-size:.9rem; font-weight:700;}
.app-user-pill-email{font-size:.78rem; color:var(--app-text-soft);}
.app-icon-btn{
  width:42px;
  height:42px;
  min-width:42px;
  min-height:42px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.app-content{padding:1.35rem 1.35rem 1.6rem;}
.app-container{max-width:1600px; padding:0;}
.app-alert{margin-bottom:1rem;}
.app-mobile-nav{background:linear-gradient(180deg,#f8fbff 0%, #f3f7fc 100%);}

.auth-shell-body{background:
  radial-gradient(circle at top left, rgba(13,110,253,.14), transparent 26%),
  radial-gradient(circle at right center, rgba(18,55,101,.10), transparent 24%),
  linear-gradient(180deg,#eef4fb 0%, #f7fafe 100%);
}
.auth-main{min-height:100vh; display:grid; place-items:center; padding:1.5rem;}
.auth-container{width:100%; max-width:1280px;}
.auth-card{
  border-radius:32px; overflow:hidden; box-shadow:0 28px 60px rgba(15,23,42,.12); border:1px solid rgba(15,23,42,.08);
}
.auth-card .card-body{padding:2rem;}
.auth-panel-side{
  background:linear-gradient(160deg,#0f172a 0%, #133b69 60%, #1d4ed8 100%);
  color:#eaf2ff;
}
.auth-panel-side .badge{background:rgba(255,255,255,.12)!important;}
.auth-feature-list{display:grid; gap:.85rem; margin-top:1.5rem;}
.auth-feature-item{display:flex; gap:.85rem; align-items:flex-start;}
.auth-feature-icon{
  width:38px; height:38px; border-radius:12px; background:rgba(255,255,255,.12);
  display:grid; place-items:center; flex:0 0 auto;
}
.auth-panel-copy{max-width:420px;}

.page-hero{
  display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:1rem;
  padding:1.2rem 1.3rem; margin-bottom:1rem; border-radius:24px; border:1px solid var(--app-border);
  background:linear-gradient(135deg, rgba(255,255,255,.92), rgba(249,251,255,.92)); box-shadow:var(--app-shadow-soft);
}
.page-hero-title{margin:0; font-size:clamp(1.45rem,2vw,1.9rem); font-weight:800; letter-spacing:-.03em; color:var(--app-text);}
.page-hero-text{margin:.35rem 0 0; color:var(--app-text-soft); max-width:780px;}
.page-hero-meta{display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.9rem;}
.hero-chip{
  display:inline-flex; align-items:center; gap:.45rem; padding:.45rem .8rem; border-radius:999px;
  background:#fff; border:1px solid var(--app-border); color:#314155; font-size:.84rem; font-weight:600;
}
.page-hero-actions{display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;}
.section-card{border-radius:24px; overflow:hidden;}
.section-card-header{
  display:flex; align-items:flex-start; justify-content:space-between; gap:.9rem; flex-wrap:wrap;
  padding:1.1rem 1.25rem 0;
}
.section-card-title{margin:0; font-size:1.06rem; font-weight:800; letter-spacing:-.02em;}
.section-card-text{margin:.2rem 0 0; color:var(--app-text-soft); font-size:.92rem;}
.section-card-body{padding:1.25rem;}
.metric-card{height:100%;}
.metric-value{font-size:clamp(2rem,4vw,2.55rem); font-weight:800; letter-spacing:-.04em; line-height:1;}
.metric-label{font-size:.86rem; color:var(--app-text-soft); text-transform:uppercase; letter-spacing:.08em; font-weight:700;}
.metric-foot{font-size:.86rem; color:var(--app-text-soft); margin-top:.6rem;}
.search-card .card-body, .table-card .card-body {padding:1rem 1.1rem;}

.form-label{font-weight:700; color:#233247; margin-bottom:.45rem;}
.form-control,.form-select{
  border-radius:16px; border-color:rgba(15,23,42,.12); background:#fff; min-height:46px;
  box-shadow:none; transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.form-control.form-control-lg,.form-select.form-select-lg{min-height:56px; border-radius:18px;}
.form-control:focus,.form-select:focus{
  border-color:rgba(13,110,253,.42); box-shadow:0 0 0 .24rem rgba(13,110,253,.12);
}
.form-text{color:var(--app-text-soft); font-size:.82rem;}
.btn{font-weight:700; border-radius:14px;}
.btn.rounded-pill{border-radius:999px!important;}
.btn-group>.btn{border-radius:14px!important;}

.table{--bs-table-bg:transparent;}
.table>:not(caption)>*>*{padding:.95rem .9rem; border-bottom-color:rgba(15,23,42,.08); vertical-align:middle;}
.table thead th{
  font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:#617086; font-weight:800;
  background:#f8fbff; border-bottom-width:1px;
}
.table tbody tr:hover{background:rgba(13,110,253,.03);}
.table-card .table-responsive{overflow:auto;}
.badge{font-weight:700; letter-spacing:.01em;}
.pagination .page-link{border-radius:12px!important; margin:0 .12rem; border-color:rgba(15,23,42,.10); color:var(--app-text);}
.pagination .page-item.active .page-link{background:var(--app-primary); border-color:var(--app-primary);}

.pos-toolbar{display:flex; gap:.6rem; flex-wrap:wrap;}
.pos-grid{display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:.9rem;}
@media (min-width: 768px){.pos-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width: 1400px){.pos-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.pos-item{
  position:relative; text-align:left; border:1px solid rgba(15,23,42,.08); background:linear-gradient(180deg,#fff, #fbfdff);
  padding:1rem; border-radius:20px; transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
  min-height:122px; display:flex; flex-direction:column; gap:.7rem;
}
.pos-item:hover{transform:translateY(-2px); box-shadow:0 14px 32px rgba(15,23,42,.08); border-color:rgba(13,110,253,.18);}
.pos-item-title{font-weight:800; font-size:.98rem; line-height:1.2; color:var(--app-text);}
.pos-item-meta{display:flex; gap:.5rem; flex-wrap:wrap; color:var(--app-text-soft); font-size:.83rem;}
.pos-item-pill{
  display:inline-flex; align-items:center; gap:.3rem; padding:.35rem .7rem; border-radius:999px;
  background:#f6f9fd; border:1px solid rgba(15,23,42,.08); font-weight:700;
}
.pos-summary-card{position:sticky; top:96px;}
.pos-summary-top{display:flex; align-items:flex-start; justify-content:space-between; gap:1rem;}
.pos-sale-id{font-size:.88rem; color:var(--app-text-soft);}
.pos-counter-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; margin:1rem 0 1.15rem;}
.pos-counter{
  padding:.9rem 1rem; border-radius:18px; background:#f8fbff; border:1px solid var(--app-border);
}
.pos-counter-label{font-size:.75rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--app-text-soft);}
.pos-counter-value{font-size:1.15rem; font-weight:800; margin-top:.2rem;}
.pos-cart-wrap{max-height:min(46vh, 520px); overflow:auto; padding-right:.15rem;}
.pos-line{
  display:flex; gap:.95rem; align-items:flex-start; justify-content:space-between; padding:1rem;
  border:1px solid rgba(15,23,42,.08); background:#fff; border-radius:20px; margin-bottom:.8rem; box-shadow:0 8px 20px rgba(15,23,42,.04);
}
.pos-line .meta{min-width:0; flex:1;}
.pos-line .name{font-weight:800; color:var(--app-text); margin-bottom:.25rem;}
.pos-line .qty{width:84px; min-height:40px;}
.pos-empty-state{
  padding:1.25rem; text-align:center; border:1px dashed rgba(15,23,42,.14); border-radius:20px; color:var(--app-text-soft);
  background:linear-gradient(180deg,#fbfdff, #f8fbff);
}
.pos-totals{border-top:1px solid rgba(15,23,42,.08); margin-top:1.1rem; padding-top:1rem;}
.pos-total-row{display:flex; justify-content:space-between; gap:1rem; align-items:center; margin-bottom:.45rem;}
.pos-total-row strong{font-size:1.6rem; letter-spacing:-.03em;}
.pos-actions{display:grid; gap:.75rem; margin-top:1rem;}
.pos-xml-actions{display:grid; grid-template-columns:1fr 1fr; gap:.6rem;}
.pos-message-wrap{margin-top:1rem;}
.pos-filter-bar{display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:.85rem;}
.pos-filter-bar > div{grid-column:span 12;}
@media (min-width:768px){
  .pos-filter-bar > div.col-6-md{grid-column:span 6;}
  .pos-filter-bar > div.col-4-md{grid-column:span 4;}
  .pos-filter-bar > div.col-3-md{grid-column:span 3;}
  .pos-filter-bar > div.col-9-md{grid-column:span 9;}
}
.pos-section-note{font-size:.82rem; color:var(--app-text-soft);}
.pos-search-wrap{display:flex; align-items:end; gap:.75rem; flex-wrap:wrap;}
.pos-search-wrap .search-main{flex:1 1 320px;}
.pos-search-wrap .search-side{display:flex; align-items:center; gap:.5rem; flex-wrap:wrap;}

pre.bg-light{background:#f7faff!important; border:1px solid var(--app-border);}
code{color:#0f3c78;}
.list-clean{padding-left:1rem; margin-bottom:0;}
.list-clean li+li{margin-top:.45rem;}

@media (max-width: 991.98px){
  .app-content{padding:1rem;}
  .page-hero{padding:1rem;}
  .section-card-header{padding:1rem 1rem 0;}
  .section-card-body{padding:1rem;}
  .pos-summary-card{position:static;}
}

.app-sidebar-scroll{flex:1; min-height:0; overflow-y:auto; padding-right:.35rem; margin-right:-.35rem;}
.app-sidebar-scroll::-webkit-scrollbar{width:10px;}
.app-sidebar-scroll::-webkit-scrollbar-track{background:transparent;}
.app-sidebar-scroll::-webkit-scrollbar-thumb{background:rgba(217,230,255,.18); border-radius:999px; border:2px solid transparent; background-clip:padding-box;}
.app-sidebar-scroll{scrollbar-width:thin; scrollbar-color:rgba(217,230,255,.24) transparent;}
.app-nav{display:flex; flex-direction:column; gap:.95rem; min-height:0;}
.app-nav-group + .app-nav-group{padding-top:.9rem; border-top:1px solid rgba(255,255,255,.08);}
.app-nav-group-title{padding:0 .15rem .55rem; font-size:.72rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; color:rgba(217,230,255,.56);}
.app-nav-list{display:flex; flex-direction:column; gap:.45rem;}
.app-svg-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  min-width:20px;
  min-height:20px;
  line-height:1;
  vertical-align:middle;
}

.app-svg-icon svg{
  width:20px;
  height:20px;
  display:block;
  flex:0 0 20px;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
  fill:none;
}

.app-svg-icon-toggle{
  width:18px;
  height:18px;
  min-width:18px;
  min-height:18px;
}

.app-svg-icon-toggle svg{
  width:18px;
  height:18px;
  display:block;
  flex:0 0 18px;
}

.app-brand-wrap{display:flex; align-items:center; justify-content:space-between; gap:.75rem;}
.app-brand-text{display:flex; flex-direction:column; min-width:0;}
.app-brand-actions{display:flex; align-items:center; gap:.55rem; margin-left:auto;}
.app-sidebar-toggle{border-color:rgba(15,23,42,.12); background:#fff; color:#233247;}
.app-sidebar-toggle:hover{background:#eef5ff; color:#0d6efd; border-color:rgba(13,110,253,.22);}
.app-sidebar-toggle-inline{
  width:38px;
  height:38px;
  min-width:38px;
  min-height:38px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.app-shell-body.sidebar-collapsed .app-sidebar{width:84px; flex:0 0 84px; min-width:84px; padding:1rem .65rem; overflow:hidden;}
.app-shell-body.sidebar-collapsed .app-brand-wrap{flex-direction:column; align-items:center;}
.app-shell-body.sidebar-collapsed .app-brand{justify-content:center;}
.app-shell-body.sidebar-collapsed .app-brand-text,
.app-shell-body.sidebar-collapsed .app-nav-group-title,
.app-shell-body.sidebar-collapsed .app-nav-copy,
.app-shell-body.sidebar-collapsed .app-user-meta,
.app-shell-body.sidebar-collapsed .app-brand-cta,
.app-shell-body.sidebar-collapsed .app-user-card form{display:none !important;}
.app-shell-body.sidebar-collapsed .app-nav-link{justify-content:center; padding:.85rem .55rem;}
.app-shell-body.sidebar-collapsed .app-nav-icon{margin:0;}
.app-shell-body.sidebar-collapsed .app-user-card{justify-content:center; padding:.65rem;}
.app-shell-body.sidebar-collapsed .app-brand-actions{width:100%; justify-content:center;}
.app-shell-body.sidebar-collapsed .app-sidebar-toggle-inline{display:grid !important;}
.app-shell-body.sidebar-collapsed .app-sidebar-scroll{padding-right:0; margin-right:0;}
.app-shell-body.sidebar-collapsed .app-nav-group + .app-nav-group{padding-top:.55rem; margin-top:.55rem;}

.documents-table-card .card-body{padding-top:.75rem;}
.documents-table-head{align-items:center;}
.documents-table-tools{display:flex; align-items:center; gap:.75rem; flex-wrap:wrap;}
.documents-columns-menu{min-width:240px; border-radius:20px;}
.documents-column-option{display:flex; align-items:center; gap:.55rem;}
.documents-table{table-layout:fixed; min-width:1180px;}
.documents-table th[data-col="id"], .documents-table td[data-col="id"]{width:84px;}
.documents-table th[data-col="fecha"], .documents-table td[data-col="fecha"]{width:155px;}
.documents-table th[data-col="tipo"], .documents-table td[data-col="tipo"]{width:100px;}
.documents-table th[data-col="cliente"], .documents-table td[data-col="cliente"]{width:220px;}
.documents-table th[data-col="total"], .documents-table td[data-col="total"]{width:130px;}
.documents-table th[data-col="estado-interno"], .documents-table td[data-col="estado-interno"]{width:150px;}
.documents-table th[data-col="estado-mh"], .documents-table td[data-col="estado-mh"]{width:135px;}
.documents-table th.documents-col-key, .documents-table td.documents-col-key{width:300px;}
.documents-table th.documents-col-actions, .documents-table td.documents-col-actions{width:200px;}
.documents-key-wrap{max-width:100%; overflow-wrap:anywhere; word-break:break-word; white-space:normal; line-height:1.35;}
.documents-key-wrap code{display:block; white-space:normal; overflow-wrap:anywhere; word-break:break-all; background:transparent; padding:0; color:#0f3c78; font-size:.8rem;}
.documents-actions{display:flex; align-items:center; gap:.4rem; flex-wrap:wrap;}
.documents-action-btn{width:36px; height:36px; padding:0; display:grid; place-items:center; border-radius:12px !important;}
.documents-action-btn i{font-size:.95rem;}

@media (max-width: 991.98px){
  .documents-table{min-width:1080px;}
}

.pos-item-media{
  width:100%; aspect-ratio: 16 / 9; border-radius:18px; overflow:hidden;
  background:linear-gradient(135deg,#eef4fb,#f8fbff); border:1px solid rgba(15,23,42,.08);
  display:flex; align-items:center; justify-content:center;
}
.pos-item-media img{width:100%; height:100%; object-fit:cover; display:block;}
.pos-item-media-fallback{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.35rem; color:#6d7b8f; font-weight:700; font-size:.86rem;}
.pos-item-media-fallback i{font-size:1.55rem; color:#8ca0b8;}
.pos-item-body{display:flex; flex-direction:column; gap:.7rem; flex:1;}
.pos-line{gap:.85rem;}
.pos-line-media{
  width:72px; height:72px; border-radius:18px; overflow:hidden; flex:0 0 72px;
  background:linear-gradient(135deg,#eef4fb,#f8fbff); border:1px solid rgba(15,23,42,.08);
  display:flex; align-items:center; justify-content:center;
}
.pos-line-media img{width:100%; height:100%; object-fit:cover; display:block;}
.pos-line-media-fallback{display:flex; align-items:center; justify-content:center; width:100%; height:100%; color:#8ca0b8;}
.pos-line-media-fallback i{font-size:1.35rem;}
.pos-line .controls{display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:.65rem;}
.pos-line .controls > div{grid-column:span 12;}
.pos-line .desc-extra{margin-top:.15rem;}
.pos-line .line-totals{margin-top:.55rem; padding:.65rem .8rem; border-radius:16px; background:#f8fbff; border:1px solid rgba(15,23,42,.08); font-size:.84rem; color:#4c5a6e;}
.pos-line .line-actions{display:flex; flex-direction:column; gap:.5rem; align-items:flex-end;}
.pos-line .line-remove{min-width:42px; height:42px; padding:0; display:grid; place-items:center;}
.pos-line .line-remove i{font-size:1rem;}
.product-image-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:.8rem;}
.product-image-card{border:1px solid rgba(15,23,42,.08); border-radius:18px; overflow:hidden; background:#fff; box-shadow:0 8px 20px rgba(15,23,42,.04);}
.product-image-card img{width:100%; height:120px; object-fit:cover; display:block;}
.product-image-card .caption{padding:.55rem .7rem; font-size:.8rem; color:#58667a;}
.products-thumb{width:54px; height:54px; border-radius:14px; overflow:hidden; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#eef4fb,#f8fbff); border:1px solid rgba(15,23,42,.08); flex:0 0 54px;}
.products-thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.products-thumb i{font-size:1.15rem; color:#8ca0b8;}
.products-name-wrap{display:flex; align-items:center; gap:.75rem; min-width:0;}
.report-tabs{border-bottom:1px solid rgba(15,23,42,.08); gap:.5rem;}
.report-tabs .nav-link{border:none; border-bottom:2px solid transparent; color:#5c6b80; font-weight:700; border-radius:0; padding:.85rem 1rem; background:transparent;}
.report-tabs .nav-link:hover{color:#0d6efd; border-color:rgba(13,110,253,.16);}
.report-tabs .nav-link.active{color:#0d6efd; border-color:#0d6efd; background:transparent;}
.report-tab-tools{display:flex; gap:.5rem; flex-wrap:wrap;}
@media (min-width:768px){
  .pos-line .controls > div.col-md-2{grid-column:span 2;}
  .pos-line .controls > div.col-md-3{grid-column:span 3;}
  .pos-line .controls > div.col-md-4{grid-column:span 4;}
  .pos-line .controls > div.col-md-5{grid-column:span 5;}
  .pos-line .controls > div.col-md-6{grid-column:span 6;}
}
@media (max-width: 767.98px){
  .pos-line{flex-direction:column;}
  .pos-line-media{width:100%; height:160px; flex:auto;}
  .pos-line .line-actions{align-items:stretch;}
  .pos-line .line-remove{width:100%;}
}

.app-stat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1rem;
  margin-bottom:1rem;
}
.app-stat-card{
  position:relative;
  padding:1.15rem 1.2rem;
  border-radius:22px;
  background:linear-gradient(180deg,#ffffff 0%, #f9fbff 100%);
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 12px 28px rgba(15,23,42,.05);
  overflow:hidden;
}
.app-stat-card::after{
  content:"";
  position:absolute;
  inset:auto -24px -38px auto;
  width:110px;
  height:110px;
  border-radius:999px;
  background:radial-gradient(circle, rgba(13,110,253,.12) 0%, rgba(13,110,253,0) 72%);
}
.app-stat-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  margin-bottom:.55rem;
  color:#617086;
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.app-stat-title{
  margin:0;
  font-size:1.85rem;
  line-height:1;
  font-weight:800;
  letter-spacing:-.04em;
  color:var(--app-text);
}
.app-stat-note{
  margin:.55rem 0 0;
  color:var(--app-text-soft);
  font-size:.9rem;
}
.app-panel-note{
  padding:1rem 1.05rem;
  border-radius:18px;
  border:1px dashed rgba(15,23,42,.12);
  background:linear-gradient(180deg,#fbfdff 0%, #f7faff 100%);
}
.app-panel-note-title{
  margin:0 0 .35rem;
  font-size:.98rem;
  font-weight:800;
  color:var(--app-text);
}
.app-panel-note p:last-child{margin-bottom:0;}
.app-check-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.8rem;
}
.app-check-list li{
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  color:#4e5d71;
}
.app-check-list li i{
  width:28px;
  height:28px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#eef5ff;
  color:#0d6efd;
  flex:0 0 auto;
}
.app-kv-list{
  display:grid;
  gap:.7rem;
  margin:0;
}
.app-kv-item{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding:.8rem .95rem;
  border-radius:16px;
  background:#f8fbff;
  border:1px solid rgba(15,23,42,.07);
}
.app-kv-label{
  color:#637286;
  font-size:.8rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.app-kv-value{
  text-align:right;
  color:var(--app-text);
  font-weight:700;
  word-break:break-word;
}
.app-empty{
  padding:1.15rem 1.1rem;
  border-radius:18px;
  border:1px dashed rgba(15,23,42,.14);
  color:var(--app-text-soft);
  background:linear-gradient(180deg,#fbfdff 0%, #f8fbff 100%);
}
.app-inline-badge{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.35rem .65rem;
  border-radius:999px;
  font-size:.78rem;
  font-weight:700;
  border:1px solid rgba(15,23,42,.08);
  background:#fff;
  color:#334257;
}
.app-form-divider{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:.35rem;
}
.app-form-divider + .section-card-text{margin-top:0;}
.auth-panel-side .display-6{
  font-size:clamp(1.65rem,2.5vw,2.45rem);
  line-height:1.1;
}
.auth-mini-card{
  margin-top:1.2rem;
  padding:1rem 1.1rem;
  border-radius:20px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}
.auth-mini-card-title{
  margin:0 0 .35rem;
  font-size:.95rem;
  font-weight:800;
  color:#fff;
}
.auth-mini-card p:last-child{margin-bottom:0;}

.pos-payment-box{
  margin-top:1rem;
  padding:1rem;
  border:1px solid rgba(15,23,42,.08);
  border-radius:22px;
  background:#f8fbff;
}
.pos-payment-box-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:.8rem;
}
.pos-payment-box-title{
  font-size:.92rem;
  font-weight:800;
  color:var(--app-text);
}
.pos-payment-box-text{
  font-size:.82rem;
  color:var(--app-text-soft);
  margin-top:.15rem;
}
.pos-payment-summary-empty{
  color:var(--app-text-soft);
  font-size:.9rem;
}
.pos-payment-summary-list{
  display:grid;
  gap:.7rem;
}
.pos-payment-summary-item{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:flex-start;
  padding:.8rem .9rem;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
}
.pos-payment-summary-name{
  font-weight:800;
  color:var(--app-text);
  margin-bottom:.2rem;
}
.pos-payment-summary-meta{
  display:flex;
  gap:.55rem;
  flex-wrap:wrap;
  font-size:.8rem;
  color:var(--app-text-soft);
}
.pos-payment-summary-totals{
  display:flex;
  gap:.85rem;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  margin-top:.85rem;
  padding-top:.85rem;
  border-top:1px dashed rgba(15,23,42,.12);
  font-size:.84rem;
  color:var(--app-text-soft);
}
.pos-payment-summary-totals .is-ok strong{color:#198754;}
.pos-payment-summary-totals .is-warning strong{color:#d97706;}
.pos-payment-modal-head,
.pos-payment-modal-footer{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.85rem;
}
.pos-payment-modal-stat{
  padding:1rem 1.1rem;
  border-radius:20px;
  border:1px solid rgba(15,23,42,.08);
  background:#f8fbff;
}
.pos-payment-modal-stat.total{
  background:#eef5ff;
  border-color:rgba(13,110,253,.18);
}
.pos-payment-modal-stat.compact{
  padding:.85rem 1rem;
}
.pos-payment-modal-stat .label{
  display:block;
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--app-text-soft);
  margin-bottom:.25rem;
}
.pos-payment-modal-stat strong{
  font-size:1.15rem;
  color:var(--app-text);
}
.pos-payment-row{
  padding:1rem;
  border:1px solid rgba(15,23,42,.08);
  border-radius:22px;
  background:#fff;
  margin-bottom:.85rem;
}
.pos-payment-row-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:.85rem;
}
.pos-payment-row-grid > div{grid-column:span 12;}
.pos-payment-row-note{
  margin-top:.7rem;
  font-size:.82rem;
  color:var(--app-text-soft);
}
.pos-payment-row-note.has-file strong{color:var(--app-text);}
.pos-discount-group .form-select{
  flex:0 0 118px;
  max-width:118px;
}
.pos-line .desc-meta,
.pos-line .desc-extra{transition:all .18s ease;}
.pos-line .line-totals{
  margin-top:.65rem;
  padding:.7rem .8rem;
  border-radius:16px;
  background:#f8fbff;
  border:1px solid rgba(15,23,42,.08);
  display:flex;
  gap:.55rem;
  flex-wrap:wrap;
}
.pos-total-chip{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.35rem .6rem;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  font-size:.8rem;
  color:#4c5a6e;
}
.pos-total-chip strong{color:var(--app-text);}
@media (min-width: 992px){
  .pos-payment-row-grid > div.col-lg-1{grid-column:span 1;}
  .pos-payment-row-grid > div.col-lg-2{grid-column:span 2;}
  .pos-payment-row-grid > div.col-lg-3{grid-column:span 3;}
  .pos-payment-row-grid > div.col-lg-4{grid-column:span 4;}
  .pos-payment-row-grid > div.col-lg-5{grid-column:span 5;}
  .pos-payment-row-grid > div.col-lg-6{grid-column:span 6;}
  .pos-payment-row-grid > div.col-lg-7{grid-column:span 7;}
}
@media (max-width: 991.98px){
  .pos-payment-modal-head,
  .pos-payment-modal-footer{grid-template-columns:1fr;}
}
@media (max-width: 767.98px){
  .pos-payment-box-head{align-items:stretch;}
  .pos-payment-summary-item{flex-direction:column;}
  .pos-payment-summary-totals{justify-content:flex-start;}
  .pos-discount-group .form-select{flex:0 0 96px; max-width:96px;}
}

.pos-discount-box{
  margin-bottom:1rem;
  padding:1rem;
  border:1px solid rgba(15,23,42,.08);
  border-radius:20px;
  background:linear-gradient(180deg,#fbfdff 0%, #f7faff 100%);
}
.pos-discount-box-title{
  font-size:.92rem;
  font-weight:800;
  color:var(--app-text);
}
.pos-discount-box-text{
  margin-top:.2rem;
  font-size:.82rem;
  color:var(--app-text-soft);
}
.pos-discount-box-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem;
}
@media (max-width: 767.98px){
  .pos-discount-box-grid{
    grid-template-columns:1fr;
  }
}

.pos-line .controls.pos-line-main-controls{
  grid-template-columns:minmax(0,220px);
}
.pos-line .controls.pos-line-main-controls > div{
  grid-column:1 / -1;
}

.pos-line-inline-row{
  display:flex;
  align-items:flex-end;
  gap:.7rem;
  flex-wrap:wrap;
}
.pos-inline-total-chip{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  min-height:40px;
  padding:.55rem .8rem;
  border-radius:16px;
  background:#f8fbff;
  border:1px solid rgba(15,23,42,.08);
  font-size:.84rem;
  color:#4c5a6e;
}
.pos-inline-total-chip strong{
  color:var(--app-text);
}
.pos-line-discount-note{
  margin-top:.55rem;
  font-size:.82rem;
  color:var(--app-text-soft);
}
@media (max-width: 767.98px){
  .pos-line-inline-row{
    align-items:stretch;
  }
}

.cobro-dialog{max-width:780px;width:100%;}
.cobro-shell{border:none;border-radius:20px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.18);background:#fff;}
.cobro-header{background:linear-gradient(135deg,#0d6efd 0%, #2563eb 100%);padding:1.25rem 1.5rem 1rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.cobro-header-left{display:flex;align-items:center;gap:.85rem;min-width:0;}
.cobro-header-icon{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:1.2rem;color:#fff;flex-shrink:0;}
.cobro-header h2{margin:0;font-size:1.1rem;font-weight:700;color:#fff;}
.cobro-header p{margin:0;font-size:.82rem;color:rgba(255,255,255,.78);}
.cobro-btn-close{background:rgba(255,255,255,.15);border:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:#fff;cursor:pointer;flex-shrink:0;font-size:1rem;transition:background .15s ease;}
.cobro-btn-close:hover{background:rgba(255,255,255,.28);}
.cobro-btn-close i{pointer-events:none;}
.cobro-stats,.cobro-footer-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:#f8fafc;}
.cobro-stats{border-bottom:1px solid #e2e8f0;}
.cobro-footer-totals{border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;}
.cobro-stat{padding:.85rem 1.25rem;border-right:1px solid #e2e8f0;}
.cobro-stat:last-child{border-right:none;}
.cobro-stat-label{font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#64748b;margin-bottom:.18rem;}
.cobro-stat-value{font-size:1.15rem;font-weight:800;color:#0f172a;letter-spacing:-.02em;}
.cobro-stat-value-client{font-size:.96rem;line-height:1.35;}
.cobro-stat.is-total .cobro-stat-value{color:#2563eb;}
.cobro-stat.is-ok .cobro-stat-value{color:#16a34a;}
.cobro-stat.is-warn .cobro-stat-value{color:#d97706;}
.cobro-stat.is-neutral .cobro-stat-value{color:#0f172a;}
.cobro-body{padding:1.25rem 1.5rem;max-height:55vh;overflow-y:auto;}
.cobro-body::-webkit-scrollbar{width:6px;}
.cobro-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px;}
.cobro-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;gap:.75rem;flex-wrap:wrap;}
.cobro-note{display:inline-flex;align-items:center;gap:.5rem;font-size:.81rem;color:#64748b;}
.cobro-note i{color:#2563eb;font-size:.95rem;}
.btn-agregar{display:inline-flex;align-items:center;gap:.4rem;font-size:.84rem;font-weight:600;padding:.52rem 1rem;border-radius:10px;background:#2563eb;color:#fff;border:none;cursor:pointer;white-space:nowrap;transition:background .15s ease, transform .1s ease;}
.btn-agregar:hover{background:#1d4ed8;}
.btn-agregar:active{transform:scale(.97);}
.pay-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.06),0 4px 16px rgba(0,0,0,.06);margin-bottom:.85rem;overflow:hidden;}
.pay-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.08),0 8px 24px rgba(0,0,0,.08);}
.pay-card-head{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem .55rem;background:#f8fafc;border-bottom:1px solid #e2e8f0;gap:.75rem;}
.pay-card-head-left{display:flex;align-items:center;gap:.6rem;min-width:0;flex-wrap:wrap;}
.pay-card-num{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#2563eb;background:#eff6ff;padding:.22rem .65rem;border-radius:99px;border:1px solid #bfdbfe;}
.pay-card-method-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;color:#334155;}
.pay-card-method-badge i{color:#2563eb;}
.btn-quitar{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;cursor:pointer;border:1px solid #fecaca;background:#fef2f2;color:#dc2626;font-size:.9rem;transition:background .15s ease, border-color .15s ease;flex-shrink:0;}
.btn-quitar:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5;}
.btn-quitar:disabled{opacity:.35;cursor:not-allowed;}
.pay-card-body{padding:1rem;}
.pay-fields{display:grid;grid-template-columns:2fr 1.5fr 1.5fr 1.4fr;gap:.75rem;align-items:end;}
.pay-fields.is-digital{grid-template-columns:2fr 1.5fr 2fr 1.6fr;}
.pay-field{min-width:0;}
.pay-field label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#64748b;margin-bottom:.35rem;}
.pay-field input,.pay-field select{width:100%;font-size:.92rem;font-weight:500;padding:.55rem .75rem;border-radius:8px;border:1.5px solid #e2e8f0;background:#fff;color:#0f172a;transition:border-color .15s ease, box-shadow .15s ease;outline:none;box-sizing:border-box;}
.pay-field input:focus,.pay-field select:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1);}
.pay-field input[type="file"]{padding:.5rem .65rem;}
.pay-field-file-name{margin-top:.35rem;font-size:.75rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.vuelto-display{display:flex;align-items:center;justify-content:space-between;padding:.55rem .85rem;border-radius:8px;border:1.5px solid #bbf7d0;background:#f0fdf4;min-height:42px;gap:.75rem;transition:border-color .2s ease, background .2s ease;}
.vuelto-display.is-zero{background:#f8fafc;border-color:#e2e8f0;}
.vuelto-label{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#16a34a;display:flex;align-items:center;gap:.3rem;}
.vuelto-display.is-zero .vuelto-label{color:#64748b;}
.vuelto-amount{font-size:1rem;font-weight:800;color:#16a34a;letter-spacing:-.02em;}
.vuelto-display.is-zero .vuelto-amount{color:#64748b;}
.cobro-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;}
.btn-cancelar{padding:.6rem 1.3rem;border-radius:10px;background:transparent;color:#334155;border:1.5px solid #cbd5e1;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s ease, border-color .15s ease;}
.btn-cancelar:hover{background:#f1f5f9;border-color:#94a3b8;}
.btn-guardar{padding:.6rem 1.6rem;border-radius:10px;background:#2563eb;color:#fff;border:none;font-size:.9rem;font-weight:700;cursor:pointer;transition:background .15s ease, transform .1s ease;display:inline-flex;align-items:center;gap:.4rem;}
.btn-guardar:hover{background:#1d4ed8;}
.btn-guardar:active{transform:scale(.97);}
.btn-guardar:disabled{opacity:.6;cursor:not-allowed;}
@media (max-width: 860px){.pay-fields,.pay-fields.is-digital{grid-template-columns:1fr 1fr;}}
@media (max-width: 600px){.pay-fields,.pay-fields.is-digital,.cobro-stats,.cobro-footer-totals{grid-template-columns:1fr;}.cobro-stat{border-right:none;border-bottom:1px solid #e2e8f0;}.cobro-stat:last-child{border-bottom:none;}.cobro-body,.cobro-header,.cobro-actions{padding-left:1rem;padding-right:1rem;}.cobro-toolbar,.cobro-actions{flex-direction:column;align-items:stretch;}.btn-agregar,.btn-cancelar,.btn-guardar{justify-content:center;width:100%;}}

/* ═══════════════════════════════════════════════════
   DESIGN REFRESH — Contabilidad · Nómina · Bancos
   Gastos · Dashboard · RRHH
   ═══════════════════════════════════════════════════ */

/* ── Stat grid mejorado ── */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.kpi-card {
  position: relative;
  padding: 1.2rem 1.25rem 1rem;
  border-radius: 20px;
  background: #fff;
  border: 1px solid rgba(15,23,42,.07);
  box-shadow: 0 2px 8px rgba(15,23,42,.04), 0 8px 24px rgba(15,23,42,.04);
  overflow: hidden;
  transition: box-shadow .18s;
}
.kpi-card:hover { box-shadow: 0 4px 16px rgba(15,23,42,.08), 0 12px 32px rgba(15,23,42,.06); }
.kpi-card-accent {
  position: absolute; top: 0; left: 0; right: 0; height: 3px; border-radius: 20px 20px 0 0;
}
.kpi-card-accent.blue   { background: linear-gradient(90deg, #2563eb, #60a5fa); }
.kpi-card-accent.green  { background: linear-gradient(90deg, #16a34a, #4ade80); }
.kpi-card-accent.amber  { background: linear-gradient(90deg, #d97706, #fbbf24); }
.kpi-card-accent.red    { background: linear-gradient(90deg, #dc2626, #f87171); }
.kpi-card-accent.purple { background: linear-gradient(90deg, #7c3aed, #a78bfa); }
.kpi-card-accent.teal   { background: linear-gradient(90deg, #0d9488, #2dd4bf); }
.kpi-eyebrow {
  font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
  color: var(--app-text-soft); margin-bottom: .5rem; display: flex; align-items: center; gap: .4rem;
}
.kpi-eyebrow i { font-size: .85rem; }
.kpi-value {
  font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 800;
  letter-spacing: -.04em; line-height: 1.1; color: var(--app-text);
}
.kpi-foot {
  margin-top: .45rem; font-size: .8rem; color: var(--app-text-soft);
}
.kpi-badge {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .2rem .55rem; border-radius: 999px;
  font-size: .72rem; font-weight: 700;
}
.kpi-badge.up   { background: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; }
.kpi-badge.down { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; }
.kpi-badge.neutral { background: #f8fafc; color: #64748b; border: 1px solid #e2e8f0; }

/* ── Pending action cards ── */
.pending-action-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: .75rem; padding: .85rem 1rem;
  border-radius: 14px; border: 1px solid rgba(15,23,42,.07);
  background: #fff; margin-bottom: .55rem;
  transition: background .15s, border-color .15s;
}
.pending-action-row:hover { background: #f8fbff; border-color: rgba(13,110,253,.14); }
.pending-action-row:last-child { margin-bottom: 0; }
.pending-action-left { min-width: 0; flex: 1; }
.pending-action-title { font-weight: 700; color: var(--app-text); font-size: .93rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pending-action-sub { font-size: .78rem; color: var(--app-text-soft); margin-top: .12rem; }
.pending-action-amount { font-weight: 800; font-size: .95rem; color: var(--app-text); white-space: nowrap; }
.pending-section-title {
  font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
  color: var(--app-text-soft); margin-bottom: .65rem; padding-bottom: .4rem;
  border-bottom: 1px solid rgba(15,23,42,.07);
  display: flex; align-items: center; gap: .5rem;
}
.pending-section-title i { font-size: .9rem; color: var(--app-primary); }

/* ── Module alert strip ── */
.module-alert {
  display: flex; align-items: center; gap: .9rem;
  padding: .9rem 1.1rem; border-radius: 16px; margin-bottom: 1rem;
  border: 1px solid;
}
.module-alert.info    { background: #eff6ff; border-color: #bfdbfe; color: #1e40af; }
.module-alert.warning { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.module-alert.success { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.module-alert i { font-size: 1.1rem; flex-shrink: 0; }

/* ── Table improvements ── */
.tbl-status {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .28rem .65rem; border-radius: 999px;
  font-size: .76rem; font-weight: 700; white-space: nowrap;
}
.tbl-status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.tbl-status.active   { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.tbl-status.active::before { background: #16a34a; }
.tbl-status.inactive { background: #f8fafc; color: #64748b; border: 1px solid #e2e8f0; }
.tbl-status.inactive::before { background: #94a3b8; }
.tbl-status.pending  { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.tbl-status.pending::before  { background: #d97706; }
.tbl-status.closed   { background: #f5f3ff; color: #4c1d95; border: 1px solid #ddd6fe; }
.tbl-status.closed::before   { background: #7c3aed; }
.tbl-status.calculated { background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; }
.tbl-status.calculated::before { background: #2563eb; }
.tbl-status.accepted { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.tbl-status.accepted::before { background: #16a34a; }
.tbl-status.rejected { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.tbl-status.rejected::before { background: #dc2626; }
.tbl-status.overdue  { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.tbl-status.overdue::before  { background: #dc2626; }

.tbl-action-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 9px; border: 1px solid rgba(15,23,42,.1);
  background: #fff; color: var(--app-text-soft); text-decoration: none;
  transition: background .15s, border-color .15s, color .15s; cursor: pointer;
}
.tbl-action-btn:hover { background: #eff6ff; border-color: rgba(37,99,235,.25); color: #2563eb; }
.tbl-action-btn.danger:hover { background: #fef2f2; border-color: #fecaca; color: #dc2626; }
.tbl-action-btn.success:hover { background: #f0fdf4; border-color: #bbf7d0; color: #16a34a; }
.tbl-actions { display: flex; gap: .35rem; justify-content: flex-end; flex-wrap: wrap; }

/* ── Section header pill ── */
.section-chip {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .28rem .7rem; border-radius: 999px; font-size: .74rem; font-weight: 700;
  background: var(--blue-light, #eff6ff); border: 1px solid var(--blue-mid, #bfdbfe);
  color: #1e40af;
}
.section-chip.green { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.section-chip.amber { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.section-chip.red   { background: #fef2f2; border-color: #fecaca; color: #991b1b; }

/* ── Dashboard quick-stats ── */
.dash-iva-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: .85rem;
}
.dash-iva-cell {
  padding: 1rem 1.1rem; border-radius: 16px;
  background: #fff; border: 1px solid rgba(15,23,42,.07);
  box-shadow: 0 2px 8px rgba(15,23,42,.04);
}
.dash-iva-cell .label { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--app-text-soft); margin-bottom: .3rem; }
.dash-iva-cell .value { font-size: 1.25rem; font-weight: 800; letter-spacing: -.03em; color: var(--app-text); }
.dash-iva-cell.highlight { background: linear-gradient(135deg,#eff6ff,#f0f9ff); border-color: #bfdbfe; }
.dash-iva-cell.highlight .value { color: #1d4ed8; }

/* ── Expense / recent activity list ── */
.activity-list { display: grid; gap: .55rem; }
.activity-item {
  display: flex; align-items: center; gap: .85rem;
  padding: .75rem 1rem; border-radius: 14px; border: 1px solid rgba(15,23,42,.07);
  background: #fff; text-decoration: none; color: var(--app-text);
  transition: background .15s, border-color .15s;
}
.activity-item:hover { background: #f8fbff; border-color: rgba(37,99,235,.14); color: var(--app-text); }
.activity-icon {
  width: 38px; height: 38px; border-radius: 12px; flex-shrink: 0;
  display: grid; place-items: center; font-size: .95rem;
}
.activity-icon.blue   { background: #eff6ff; color: #2563eb; }
.activity-icon.green  { background: #f0fdf4; color: #16a34a; }
.activity-icon.amber  { background: #fffbeb; color: #d97706; }
.activity-icon.red    { background: #fef2f2; color: #dc2626; }
.activity-body { min-width: 0; flex: 1; }
.activity-title { font-weight: 700; font-size: .9rem; color: var(--app-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.activity-sub   { font-size: .77rem; color: var(--app-text-soft); margin-top: .1rem; }
.activity-right { text-align: right; white-space: nowrap; }
.activity-amount { font-weight: 800; font-size: .92rem; color: var(--app-text); }
.activity-date   { font-size: .73rem; color: var(--app-text-soft); margin-top: .1rem; }

/* ── Accounting trial balance ── */
.tb-row-credit td { background: rgba(22,163,74,.03); }
.tb-row-debit td  { background: rgba(37,99,235,.03); }
.tb-saldo-pos { color: #16a34a; font-weight: 700; }
.tb-saldo-neg { color: #dc2626; font-weight: 700; }

/* ── Payroll params table ── */
.param-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); gap: .65rem;
}
.param-field { display: flex; flex-direction: column; gap: .3rem; }
.param-field label { font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--app-text-soft); }

/* ── Bank movement card ── */
.bank-account-card {
  display: flex; align-items: center; gap: .9rem;
  padding: .9rem 1rem; border-radius: 16px; border: 1px solid rgba(15,23,42,.08);
  background: #fff; margin-bottom: .6rem;
  transition: border-color .15s;
}
.bank-account-card:hover { border-color: rgba(37,99,235,.2); }
.bank-account-icon {
  width: 40px; height: 40px; border-radius: 12px; flex-shrink: 0;
  background: linear-gradient(135deg,#eff6ff,#dbeafe); color: #2563eb;
  display: grid; place-items: center; font-size: 1rem;
}
.bank-account-body { min-width: 0; flex: 1; }
.bank-account-name { font-weight: 700; font-size: .93rem; color: var(--app-text); }
.bank-account-meta { font-size: .78rem; color: var(--app-text-soft); margin-top: .08rem; }
.bank-account-saldo { text-align: right; white-space: nowrap; }
.bank-account-saldo .amount { font-weight: 800; font-size: .98rem; color: var(--app-text); }
.bank-account-saldo .currency { font-size: .73rem; color: var(--app-text-soft); }

/* ── Empty states ── */
.empty-state {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 2.5rem 1.5rem; text-align: center;
  border: 1.5px dashed rgba(15,23,42,.12); border-radius: 18px;
  background: linear-gradient(180deg,#fbfdff,#f7faff);
}
.empty-state-icon {
  width: 52px; height: 52px; border-radius: 16px;
  background: #eff6ff; color: #2563eb; display: grid; place-items: center;
  font-size: 1.4rem; margin-bottom: .85rem;
}
.empty-state p { color: var(--app-text-soft); margin: 0; font-size: .9rem; }

/* ── Responsive ── */
@media (max-width: 767.98px) {
  .kpi-grid { grid-template-columns: 1fr 1fr; }
  .dash-iva-grid { grid-template-columns: 1fr 1fr; }
  .pending-action-row { flex-wrap: wrap; }
}
@media (max-width: 479.98px) {
  .kpi-grid { grid-template-columns: 1fr; }
}

.product-editor {
  display: block;
}
.product-save-bar {
  position: sticky;
  top: 0.75rem;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 1rem;
  margin-bottom: 1rem;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 1rem 2rem rgba(15, 23, 42, 0.08);
  backdrop-filter: blur(12px);
}
.product-save-bar span {
  display: block;
  color: #64748b;
  font-size: 0.9rem;
}
.product-tax-card .form-label {
  font-weight: 700;
  color: #0f172a;
}
.tax-summary-box {
  min-height: 42px;
  display: flex;
  align-items: center;
  color: #0f172a;
  font-weight: 700;
  background: #f8fafc;
}
.tax-disabled {
  opacity: 0.48;
}
.specific-tax-panel {
  padding: 1rem;
  border: 1px solid rgba(37, 99, 235, 0.14);
  border-radius: 1.25rem;
  background: #f8fbff;
}
.specific-tax-title {
  font-weight: 800;
  color: #0f172a;
}
.product-bottom-actions {
  margin-bottom: 2rem;
}
.tax-list-badge {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  max-width: 22rem;
  padding: 0.45rem 0.65rem;
  border: 1px solid rgba(22, 163, 74, 0.22);
  border-radius: 999px;
  background: rgba(220, 252, 231, 0.65);
  color: #166534;
  font-size: 0.82rem;
  line-height: 1.2;
}
.tax-list-badge small,
.tax-list-badge span {
  color: #166534;
}
.product-code-cell {
  max-width: 9.5rem;
  word-break: break-word;
  white-space: normal;
}
.product-action-buttons {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.4rem;
}
.product-table-wrap table td,
.product-table-wrap table th {
  vertical-align: middle;
}
@media (max-width: 768px) {
  .product-save-bar {
    position: static;
    align-items: stretch;
    flex-direction: column;
  }
  .product-save-bar .btn {
    width: 100%;
  }
}

.pos-other-charges-box {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  padding: 14px;
  background: rgba(248, 250, 252, 0.82);
  margin-bottom: 14px;
}

.pos-other-charges-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.pos-other-charges-list {
  display: grid;
  gap: 12px;
}

.pos-other-charges-empty {
  border: 1px dashed rgba(15, 23, 42, 0.18);
  border-radius: 14px;
  padding: 12px;
  font-size: 0.88rem;
  color: #64748b;
  background: #fff;
}

.pos-other-charge-row {
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 16px;
  padding: 12px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
}

.pos-other-charge-grid {
  display: grid;
  grid-template-columns: minmax(170px, 1.1fr) minmax(160px, 1.2fr) minmax(95px, .6fr) minmax(105px, .7fr) auto;
  gap: 10px;
  align-items: end;
}

.pos-other-charge-actions {
  display: flex;
  align-items: end;
  justify-content: flex-end;
}

.pos-other-charge-extra {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.pos-other-charge-third-grid {
  display: grid;
  grid-template-columns: minmax(120px, .7fr) minmax(150px, .9fr) minmax(180px, 1.1fr);
  gap: 10px;
}

@media (max-width: 767.98px) {
  .pos-other-charges-head,
  .pos-other-charge-grid,
  .pos-other-charge-third-grid {
    grid-template-columns: 1fr;
  }

  .pos-other-charges-head {
    display: grid;
  }
}

.pos-other-charge-modal-third {
  margin-top: 16px;
  padding: 14px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  background: rgba(248, 250, 252, 0.9);
}
