: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;}
.app-brand:hover{color:#fff;}
.app-brand-mark{
  width:46px; height:46px; border-radius:16px; display:grid; place-items:center;
  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; border-radius:14px; display:grid; place-items:center;
  background:rgba(255,255,255,.08); font-size:1rem; flex:0 0 auto;
}
.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; padding:0; display:grid; place-items:center;}
.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-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; padding:0; display:grid; place-items:center;}
.app-shell-body.sidebar-collapsed .app-sidebar{width:104px; padding:1rem .75rem;}
.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-sidebar-section-label,
.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:.95rem;}
.app-shell-body.sidebar-collapsed .app-nav-icon{margin:0;}
.app-shell-body.sidebar-collapsed .app-user-card{justify-content:center; padding:.8rem;}
.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;}

.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;}
}
