:root {
    --bg: #f4f6f9;
    --panel: #ffffff;
    --sidebar: #172033;
    --sidebar-soft: #243047;
    --text: #1f2937;
    --muted: #6b7280;
    --line: #e5e7eb;
    --primary: #1f7a4d;
    --primary-dark: #16623d;
    --danger: #b42318;
    --success: #087443;
    --warning: #b54708;
    --radius: 14px;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--text);
    background: var(--bg);
}

a { color: inherit; text-decoration: none; }
label { display: block; font-weight: 650; margin-bottom: 6px; }
input, select, textarea {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    color: var(--text);
    font: inherit;
}
textarea { min-height: 90px; }
button { font: inherit; }

.auth-body {
    min-height: 100vh;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #172033 0%, #1f7a4d 100%);
    padding: 24px;
}
.auth-wrapper { width: min(900px, 100%); }
.auth-card {
    background: var(--panel);
    border-radius: 20px;
    padding: 28px;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .22);
}
.brand-block { display: flex; gap: 14px; align-items: center; margin-bottom: 20px; }
.brand-logo {
    width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center;
    background: var(--primary); color: #fff; font-weight: 800; letter-spacing: .5px;
}
.brand-logo.small { width: 40px; height: 40px; border-radius: 12px; }
.brand-block h1 { margin: 0; }
.brand-block p { margin: 2px 0 0; color: var(--muted); }

.app-shell { display: flex; min-height: 100vh; }
.sidebar {
    width: 280px;
    background: var(--sidebar);
    color: #fff;
    padding: 18px;
    position: fixed;
    top: 0; bottom: 0; left: 0;
    overflow-y: auto;
    transition: transform .2s ease;
}
.sidebar-brand { display: flex; gap: 12px; align-items: center; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.12); }
.sidebar-brand span { display: block; color: rgba(255,255,255,.65); font-size: 13px; margin-top: 2px; }
.menu { margin-top: 18px; display: grid; gap: 6px; }
.menu-item {
    display: block;
    padding: 11px 12px;
    border-radius: 10px;
    color: rgba(255,255,255,.88);
}
.menu-item:hover { background: var(--sidebar-soft); }
.menu-item.disabled { opacity: .45; cursor: not-allowed; }
.menu-section { margin: 18px 8px 6px; color: rgba(255,255,255,.5); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.main { flex: 1; margin-left: 280px; min-width: 0; }
.topbar {
    height: 64px;
    background: var(--panel);
    border-bottom: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 24px;
    position: sticky;
    top: 0;
    z-index: 10;
}
.hamburger { display: none; background: transparent; border: 0; font-size: 24px; }
.userbox { display: flex; align-items: center; gap: 14px; font-size: 14px; }
.content { padding: 24px; }

.card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 18px;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .04);
}
.card h2, .card h1 { margin-top: 0; }
.card-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.card-header h2 { margin: 0; font-size: 18px; }
.cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
.metric span { color: var(--muted); display: block; }
.metric strong { font-size: 34px; display: block; margin-top: 8px; }
.grid { display: grid; gap: 14px; }
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dashboard-grid { margin-bottom: 18px; }
.span-2 { grid-column: span 2; }
.form-stack { display: grid; gap: 16px; }
.form-card { max-width: 980px; }
.form-actions, .page-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; }
.inline-form { display: flex; gap: 8px; align-items: center; flex: 1; max-width: 620px; }
.inline-form input { min-width: 220px; }

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 14px;
    border-radius: 10px;
    border: 1px solid var(--line);
    background: #fff;
    color: var(--text);
    cursor: pointer;
    font-weight: 650;
}
.btn:hover { background: #f9fafb; }
.btn.primary { background: var(--primary); border-color: var(--primary); color: #fff; }
.btn.primary:hover { background: var(--primary-dark); }
.btn.full { width: 100%; }
.btn.small { min-height: 34px; padding: 7px 10px; font-size: 13px; }
.link-button { border: 0; background: transparent; color: var(--primary); cursor: pointer; font-weight: 700; }

.alert { padding: 12px 14px; border-radius: 12px; margin-bottom: 16px; font-weight: 600; }
.alert.success { background: #ecfdf3; color: var(--success); border: 1px solid #abefc6; }
.alert.error { background: #fef3f2; color: var(--danger); border: 1px solid #fecdca; }
.muted { color: var(--muted); font-size: 13px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 11px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.debug-box { background: #111827; color: #d1d5db; padding: 12px; border-radius: 10px; overflow: auto; }

@media (max-width: 980px) {
    .cards { grid-template-columns: repeat(2, 1fr); }
    .grid.two, .grid.three { grid-template-columns: 1fr; }
    .span-2 { grid-column: auto; }
}

@media (max-width: 760px) {
    .sidebar { transform: translateX(-100%); z-index: 30; }
    body.sidebar-open .sidebar { transform: translateX(0); }
    .main { margin-left: 0; }
    .hamburger { display: inline-block; }
    .topbar { padding: 0 14px; }
    .userbox span { display: none; }
    .content { padding: 14px; }
    .cards { grid-template-columns: 1fr; }
    .page-actions, .form-actions { flex-direction: column; align-items: stretch; }
    .inline-form { max-width: none; width: 100%; }
    .auth-card { padding: 20px; }
}

/* Ventas / proformas */
.right { text-align: right; }
.span-3 { grid-column: span 3; }
.card-header.compact { margin-bottom: 0; }
.inner-card { box-shadow: none; background: #fbfcfd; }
.sale-form-card { max-width: 1280px; }
.product-search-row { display: flex; gap: 8px; margin: 14px 0; }
.product-search-row input { flex: 1; }
.product-results { display: grid; gap: 8px; margin-bottom: 14px; }
.product-result {
    border: 1px solid var(--line);
    background: #fff;
    border-radius: 12px;
    padding: 10px 12px;
    text-align: left;
    cursor: pointer;
}
.product-result:hover { border-color: var(--primary); }
.product-result strong { display: block; }
.product-result span { display: block; color: var(--muted); font-size: 13px; margin-top: 2px; }
.sale-lines-wrap input.qty-input { min-width: 92px; max-width: 130px; text-align: right; }
.totals-grid { align-items: start; }
.totals-card { max-width: 460px; margin-left: auto; width: 100%; }
.totals-line { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.totals-line:last-child { border-bottom: 0; }
.totals-line.main { font-size: 20px; }
.totals-line.main strong { color: var(--primary); }
.compact-alert { margin: 0; }
.badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    background: #eef2ff;
    color: #3730a3;
}
.status-draft { background: #f2f4f7; color: #344054; }
.status-reserved { background: #fffaeb; color: #b54708; }
.status-approved { background: #ecfdf3; color: #087443; }
.status-invoiced { background: #eff8ff; color: #175cd3; }
.status-void { background: #fef3f2; color: #b42318; }
.wide-filters { max-width: none; margin-bottom: 16px; }
.wide-filters select { min-width: 190px; }
.document-header { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; margin-bottom: 18px; }
.document-header h1 { margin-bottom: 0; }
.document-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.document-meta { margin-bottom: 18px; }
.document-meta div { border: 1px solid var(--line); border-radius: 12px; padding: 12px; background: #fbfcfd; }
.document-meta span, .document-meta small { display: block; color: var(--muted); }
.document-meta strong { display: block; margin: 4px 0; }
.document-bottom { display: grid; grid-template-columns: 1fr 420px; gap: 18px; align-items: start; margin-top: 18px; }
.final-totals { margin-left: 0; }
.inline-action-form { display: inline; }
.btn.danger { background: var(--danger); border-color: var(--danger); color: #fff; }
.btn.danger:hover { filter: brightness(.95); }
.line-warning { color: var(--warning); margin-top: 4px; }

@media (max-width: 980px) {
    .span-3 { grid-column: auto; }
    .document-bottom { grid-template-columns: 1fr; }
    .totals-card { max-width: none; }
}

@media print {
    body { background: #fff; }
    .sidebar, .topbar, .no-print, .alert { display: none !important; }
    .main { margin-left: 0; }
    .content { padding: 0; }
    .card { border: 0; box-shadow: none; border-radius: 0; }
    .printable-document { padding: 0; }
    table { font-size: 12px; }
}


/* Importaciones */
.import-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.import-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.import-form-card { max-width: 900px; }
.compact-actions { margin-bottom: 12px; flex-wrap: wrap; justify-content: flex-start; }
.warning-soft { background: #fffaeb; color: var(--warning); border: 1px solid #fedf89; }
.column-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 18px; }
.column-tags span {
    display: inline-flex;
    padding: 6px 10px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #f9fafb;
    color: #344054;
    font-size: 13px;
    font-weight: 700;
}
.clean-list { margin: 8px 0 0; padding-left: 20px; }
.clean-list li { margin-bottom: 7px; }
.check-card {
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px;
    display: flex;
    gap: 10px;
    align-items: flex-start;
    cursor: pointer;
    background: #fff;
}
.check-card input { width: auto; min-height: auto; margin-top: 4px; }
.check-card small { display: block; color: var(--muted); margin-top: 3px; }

@media (max-width: 980px) {
    .import-cards, .import-summary { grid-template-columns: 1fr; }
}

/* Stock */
.stock-summary { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-bottom: 16px; }
.row-warning { background: #fffbeb; }
.text-danger { color: var(--danger); }
.text-success { color: var(--success); }
.check-inline { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; }
.check-inline input { width: auto; min-height: auto; }
.stock-search-box { margin: 18px 0; position: relative; }
.search-results { border: 1px solid var(--line); border-radius: 12px; background: #fff; margin-top: 8px; overflow: hidden; }
.search-results:empty { display: none; }
.search-result-item { width: 100%; border: 0; border-bottom: 1px solid var(--line); background: #fff; padding: 12px; display: flex; justify-content: space-between; gap: 12px; text-align: left; cursor: pointer; }
.search-result-item:last-child { border-bottom: 0; }
.search-result-item:hover { background: #f9fafb; }
.search-result-item span { color: var(--muted); font-size: 13px; }
.editable-table input { min-width: 120px; }
.editable-table td { vertical-align: top; }
@media (max-width: 980px) { .stock-summary { grid-template-columns: 1fr; } .search-result-item { flex-direction: column; } }


/* Compras */
.purchase-form-card { max-width: 1280px; }
.purchase-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 16px; }
.purchase-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 16px; }
.purchase-search-box { margin: 18px 0; position: relative; }
.purchase-lines-wrap input { min-width: 110px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.stat-card { border: 1px solid var(--line); border-radius: 14px; padding: 14px; background: #fff; }
.stat-card span { display: block; color: var(--muted); font-size: 13px; }
.stat-card strong { display: block; margin-top: 6px; font-size: 20px; }
.button-row { display: flex; gap: 8px; flex-wrap: wrap; }
.module-card { transition: transform .15s ease, border-color .15s ease; }
.module-card:hover { transform: translateY(-2px); border-color: var(--primary); }
.purchase-form-card .inner-card { margin-top: 18px; }
.info-soft { background: #eff8ff; color: #175cd3; border: 1px solid #b2ddff; }
.status-sent { background: #eff8ff; color: #175cd3; }
.status-partial_received { background: #fffaeb; color: #b54708; }
.status-received { background: #ecfdf3; color: #087443; }
.status-registered { background: #eef2ff; color: #3730a3; }
.status-paid { background: #ecfdf3; color: #087443; }
.status-closed { background: #f2f4f7; color: #344054; }
@media (max-width: 980px) {
    .purchase-summary, .purchase-cards, .grid-4, .grid-2 { grid-template-columns: 1fr; }
    .button-row { display: grid; }
}

/* Finanzas / pagos / cheques */
.finance-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.finance-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 18px; }
.finance-form-card { max-width: 1420px; }
.finance-lines-wrap select,
.finance-lines-wrap input { min-width: 120px; }
.check-fields-cell { min-width: 520px; }
.check-fields-grid { display: grid; grid-template-columns: repeat(4, minmax(105px, 1fr)); gap: 8px; }
.finance-total-card { margin-top: 14px; }
.finance-doc-meta { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.status-issued { background: #eef2ff; color: #3730a3; }
.status-partial_applied { background: #fffaeb; color: #b54708; }
.status-applied { background: #ecfdf3; color: #087443; }
.status-recibido, .status-en_cartera { background: #ecfdf3; color: #087443; }
.status-depositado { background: #eff8ff; color: #175cd3; }
.status-acreditado { background: #ecfdf3; color: #087443; }
.status-rechazado, .status-anulado { background: #fef3f2; color: #b42318; }
.status-endosado, .status-entregado_proveedor { background: #fffaeb; color: #b54708; }
tr[data-allocation-row][style*="none"] { display: none !important; }
@media (max-width: 980px) {
    .finance-summary, .finance-cards, .finance-doc-meta { grid-template-columns: 1fr; }
    .check-fields-cell { min-width: 320px; }
    .check-fields-grid { grid-template-columns: 1fr; }
}

/* Ficha 360 de clientes/proveedores */
.customer-hero {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 16px;
}
.customer-hero h1 { margin: 6px 0 2px; }
.customer-layout {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}
.customer-side { position: sticky; top: 82px; }
.customer-main { display: grid; gap: 16px; }
.customer-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 0; }
.customer-summary .metric strong { font-size: 24px; }
.entity-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding: 12px;
}
.entity-tabs a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 11px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    font-weight: 700;
    font-size: 13px;
}
.entity-tabs a:hover { border-color: var(--primary); color: var(--primary); }
.detail-list { display: grid; grid-template-columns: 120px 1fr; gap: 9px 12px; margin: 0; }
.detail-list dt { color: var(--muted); font-size: 13px; font-weight: 700; }
.detail-list dd { margin: 0; }
.status-debit { background: #fef3f2; color: #b42318; }
.status-credit { background: #ecfdf3; color: #087443; }
.status-exchange_adjustment { background: #fffaeb; color: #b54708; }

@media (max-width: 1120px) {
    .customer-layout { grid-template-columns: 1fr; }
    .customer-side { position: static; }
    .customer-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .customer-hero { flex-direction: column; }
    .customer-summary { grid-template-columns: 1fr; }
    .detail-list { grid-template-columns: 1fr; }
}

/* Cliente 360 */
.entity-link { color: var(--primary); font-weight: 800; }
.entity-link:hover { text-decoration: underline; }
.customer-profile-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 14px;
}
.customer-profile-header h1 { margin: 4px 0 4px; }
.customer-profile-header p { margin: 0; color: var(--muted); }
.customer-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.customer-tags span {
    display: inline-flex;
    padding: 5px 10px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #f9fafb;
    font-size: 13px;
    font-weight: 700;
}
.customer-section-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}
.customer-section-nav a {
    display: inline-flex;
    padding: 8px 11px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--text);
    font-size: 13px;
    font-weight: 800;
}
.customer-section-nav a:hover { border-color: var(--primary); color: var(--primary); }
.customer-summary-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.customer-summary-cards small { display: block; color: var(--muted); margin-top: 4px; font-weight: 700; }
.customer-section { margin-bottom: 18px; scroll-margin-top: 84px; }
.customer-data-grid > div {
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px;
    background: #fbfcfd;
}
.customer-data-grid span { display: block; }
.customer-data-grid strong { display: block; margin-top: 4px; }
@media (max-width: 980px) {
    .customer-profile-header { flex-direction: column; }
    .customer-summary-cards { grid-template-columns: 1fr; }
    .customer-section-nav { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
    .customer-section-nav a { white-space: nowrap; }
}
.entity-link { color: var(--primary); }
.entity-link:hover { text-decoration: underline; }

/* v0.10 POS profesional */
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
    color: var(--primary);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.sale-pos-shell { display: grid; gap: 16px; }
.sale-pos-form { display: grid; gap: 16px; }
.pos-hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    background: linear-gradient(135deg, #ffffff 0%, #f0fbf5 100%);
    border-color: #c7ead6;
}
.pos-hero h1 { margin: 0; font-size: 28px; }
.pos-hero-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.pos-layout { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: 16px; align-items: start; }
.pos-main { display: grid; gap: 16px; min-width: 0; }
.pos-side { display: grid; gap: 16px; }
.pos-panel { padding: 18px; }
.doc-type-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 14px 0 16px; }
.doc-type-card {
    min-height: 142px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.doc-type-card:hover { border-color: #9bd7b2; transform: translateY(-1px); }
.doc-type-card.selected { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(31, 122, 77, .12); }
.doc-type-card input { width: auto; min-height: auto; margin: 0 0 8px; }
.doc-type-card strong { display: block; font-size: 15px; margin-bottom: 6px; }
.doc-type-card span { display: block; color: var(--muted); font-size: 12px; line-height: 1.35; }
.pos-fields { margin-top: 10px; }
.pos-search input { min-height: 48px; font-size: 15px; }
.pos-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pos-results .product-result { box-shadow: 0 4px 12px rgba(15, 23, 42, .03); }
.modern-lines th, .modern-lines td { padding: 12px 10px; }
.modern-lines tbody tr:hover { background: #fbfcfd; }
.sale-lines-wrap input.discount-input { min-width: 92px; max-width: 120px; text-align: right; }
.sticky-totals { position: sticky; top: 82px; }
.sticky-totals h2 { margin-bottom: 12px; }
.discount-box { padding: 12px 0; border-bottom: 1px solid var(--line); }
.discount-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.flow-box {
    margin-top: 12px;
    padding: 12px;
    border-radius: 12px;
    background: #f0fbf5;
    color: #16623d;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.4;
}
.notes-card textarea { min-height: 130px; }
.doc-flow-legend {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 14px 0;
}
.doc-flow-legend span {
    display: block;
    padding: 10px 12px;
    border-radius: 12px;
    background: #fbfcfd;
    border: 1px solid var(--line);
    color: var(--muted);
    font-size: 13px;
}
.doc-flow-legend strong { color: var(--text); }
.status-partial_delivered { background: #fffaeb; color: #b54708; }
.status-delivered { background: #ecfdf3; color: #087443; }
.status-closed { background: #f2f4f7; color: #344054; }

@media (max-width: 1180px) {
    .pos-layout { grid-template-columns: 1fr; }
    .sticky-totals { position: static; }
    .doc-type-grid, .doc-flow-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .pos-hero { flex-direction: column; align-items: stretch; }
    .pos-hero-actions { justify-content: stretch; }
    .pos-hero-actions .btn { flex: 1; }
    .doc-type-grid, .doc-flow-legend, .pos-results { grid-template-columns: 1fr; }
    .discount-inputs { grid-template-columns: 1fr; }
}

/* v0.12 Navegación por áreas operativas */
.topbar-title { display: grid; gap: 2px; }
.topbar-title span { color: var(--muted); font-size: 12px; font-weight: 700; }
.menu { gap: 8px; }
.menu-dashboard { display: flex; align-items: center; gap: 10px; }
.menu-icon {
    display: inline-grid;
    place-items: center;
    min-width: 30px;
    width: 30px;
    height: 30px;
    border-radius: 10px;
    background: rgba(255,255,255,.09);
    color: #d9fbe7;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em;
}
.menu-group {
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    background: rgba(255,255,255,.025);
    overflow: hidden;
}
.menu-group summary {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 11px;
    color: rgba(255,255,255,.92);
    cursor: pointer;
    list-style: none;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.menu-group summary::-webkit-details-marker { display: none; }
.menu-group summary::after {
    content: '▾';
    margin-left: auto;
    color: rgba(255,255,255,.55);
    transform: rotate(-90deg);
    transition: transform .15s ease;
}
.menu-group[open] summary::after { transform: rotate(0deg); }
.menu-group-items {
    display: grid;
    gap: 2px;
    padding: 0 8px 8px 48px;
}
.menu-group-items .menu-item {
    padding: 8px 9px;
    border-radius: 9px;
    font-size: 13px;
    color: rgba(255,255,255,.78);
}
.menu-item.active {
    background: rgba(31, 122, 77, .92);
    color: #fff;
    box-shadow: inset 3px 0 0 #a7f3c7;
}
.menu-group-items .menu-item.active { box-shadow: none; }
.sidebar::-webkit-scrollbar { width: 8px; }
.sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.18); border-radius: 999px; }

.page-hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
    padding: 22px;
    border: 1px solid #d8ecdf;
    border-radius: 18px;
    background: linear-gradient(135deg, #ffffff 0%, #f1fbf5 100%);
    box-shadow: 0 8px 20px rgba(15, 23, 42, .04);
}
.page-hero h1 { margin: 0; font-size: 28px; }
.page-hero p { margin: 6px 0 0; color: var(--muted); max-width: 820px; }
.module-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.module-tile {
    display: grid;
    align-content: start;
    gap: 8px;
    min-height: 168px;
}
.module-tile strong { font-size: 18px; }
.module-tile p { margin: 0; color: var(--muted); line-height: 1.45; }
.tile-icon {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: #e9f8ef;
    color: var(--primary);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .05em;
}
.warning-tile {
    border-color: #fedf89;
    background: #fffaf0;
}
.warning-tile .tile-icon { background: #fffaeb; color: var(--warning); }
.config-summary-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.config-summary-cards .metric strong { font-size: 24px; line-height: 1.15; word-break: break-word; }
code {
    display: inline-flex;
    padding: 3px 7px;
    border-radius: 8px;
    background: #f2f4f7;
    color: #344054;
    font-size: 12px;
    font-weight: 800;
}
.status-ok, .status-authorized { background: #ecfdf3; color: #087443; }
.status-error, .status-rejected { background: #fef3f2; color: #b42318; }
.status-pending { background: #fffaeb; color: #b54708; }
.status-in, .status-debit { background: #ecfdf3; color: #087443; }
.status-out, .status-credit { background: #fef3f2; color: #b42318; }
.status-adjustment { background: #eff8ff; color: #175cd3; }

@media (max-width: 1180px) {
    .module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .config-summary-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .menu-group-items { padding-left: 12px; }
    .page-hero { flex-direction: column; align-items: stretch; padding: 16px; }
    .page-hero h1 { font-size: 22px; }
    .module-grid, .config-summary-cards { grid-template-columns: 1fr; }
}

/* v0.13 - Reportes y comprobantes corporativos */
.report-filter { max-width: none; justify-content: flex-end; }
.report-filter input { min-width: 150px; }
.report-summary-cards small { display: block; color: var(--muted); margin-top: 6px; font-weight: 700; }
.report-card { margin-bottom: 16px; }
.report-total-row td { background: #f8fafc; border-top: 2px solid var(--line); }
.template-config-grid { align-items: start; grid-template-columns: minmax(340px, 520px) 1fr; }
.check-inline { display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; margin: 0; }
.check-inline input { width: auto; min-height: auto; }

.document-page {
    --doc-accent: var(--primary);
    --doc-font-scale: .93;
    --doc-row-padding: 9px;
    position: relative;
    background: #fff;
    border: 1px solid #d7dde6;
    border-radius: 18px;
    box-shadow: 0 18px 42px rgba(15, 23, 42, .08);
    padding: 18px;
    overflow: hidden;
    font-size: calc(14px * var(--doc-font-scale));
}
.document-page.doc-paper-a4 { max-width: 1080px; margin-left: auto; margin-right: auto; }
.document-page.doc-landscape { max-width: 1280px; }
.document-preview { max-width: none; margin: 0; }
.doc-watermark {
    position: absolute;
    right: 24px;
    top: 88px;
    font-size: 86px;
    font-weight: 900;
    color: rgba(31, 122, 77, .045);
    letter-spacing: .1em;
    pointer-events: none;
    user-select: none;
}
.doc-section {
    position: relative;
    border: 1px solid #e7eaf0;
    border-radius: 14px;
    background: rgba(255,255,255,.94);
    padding: 12px;
    margin-bottom: 12px;
}
.doc-header-modern {
    display: grid;
    grid-template-columns: 1fr minmax(210px, 280px);
    gap: 14px;
    align-items: stretch;
    border-top: 5px solid var(--doc-accent);
}
.doc-company-block { display: flex; gap: 12px; align-items: center; min-width: 0; }
.doc-logo {
    width: 54px; height: 54px; border-radius: 14px;
    display: grid; place-items: center;
    background: var(--doc-accent); color: #fff;
    font-weight: 900; letter-spacing: .04em;
    flex: 0 0 auto;
}
.doc-company-block strong { display: block; font-size: 1.18em; color: #111827; }
.doc-company-block span { display: block; color: var(--muted); font-size: .88em; margin-top: 2px; }
.doc-number-box {
    border: 1px solid var(--doc-accent);
    border-radius: 12px;
    padding: 10px 12px;
    text-align: center;
    display: grid;
    align-content: center;
    background: linear-gradient(180deg, rgba(31, 122, 77, .08), rgba(31, 122, 77, .02));
}
.doc-number-box span { color: var(--muted); text-transform: uppercase; font-size: .74em; letter-spacing: .08em; font-weight: 800; }
.doc-number-box strong { font-size: 1.28em; color: var(--doc-accent); }
.doc-number-box small { color: #334155; font-weight: 750; }
.doc-meta-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.doc-meta-grid div { border-left: 3px solid rgba(31,122,77,.2); padding-left: 10px; }
.doc-meta-grid span, .doc-meta-grid small { display: block; color: var(--muted); font-size: .82em; }
.doc-meta-grid strong { display: block; margin: 2px 0; }
.doc-section-title { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 8px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; font-size: .78em; font-weight: 900; }
.doc-section-title strong { color: #111827; font-size: 1.05em; text-transform: none; letter-spacing: 0; }
.doc-table { font-size: .92em; }
.doc-table th, .doc-table td { padding: var(--doc-row-padding) 8px; }
.doc-table thead th { background: #f8fafc; color: #475467; border-top: 1px solid var(--line); }
.doc-table tbody tr:nth-child(even) td { background: #fbfcfd; }
.doc-price-footer { display: grid; grid-template-columns: 1fr minmax(280px, 380px); gap: 12px; align-items: stretch; margin-top: 12px; }
.doc-notes-box, .doc-totals-box, .doc-footer-modern {
    border: 1px solid #e7eaf0;
    border-radius: 14px;
    padding: 12px;
    background: #fff;
}
.doc-notes-box strong { display: block; margin-bottom: 6px; }
.doc-notes-box p, .doc-footer-modern p { margin: 0 0 8px; color: #475467; font-size: .88em; line-height: 1.45; }
.doc-totals-box { background: #fbfcfd; }
.doc-totals-box div { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); padding: 7px 0; }
.doc-totals-box div:last-child { border-bottom: 0; }
.doc-totals-box .total { font-size: 1.18em; color: var(--doc-accent); font-weight: 900; }
.doc-footer-modern { margin-top: 12px; border-bottom: 4px solid var(--doc-accent); }
.document-page .document-actions { position: relative; z-index: 2; }
.document-page .badge { font-size: .78em; }
.document-page h2 { font-size: 1.05em; margin: 16px 0 8px; }
.document-page .table-wrap { border: 1px solid var(--line); border-radius: 12px; overflow: auto; }
.document-page .totals-card { box-shadow: none; }
.document-page .inner-card { margin-top: 14px; }

@media (max-width: 980px) {
    .template-config-grid, .doc-header-modern, .doc-price-footer, .doc-meta-grid { grid-template-columns: 1fr; }
    .doc-number-box { text-align: left; }
}

@media print {
    .document-page { border: 0; box-shadow: none; border-radius: 0; padding: 0; font-size: calc(12px * var(--doc-font-scale)); }
    .document-page.doc-paper-a4 { max-width: none; }
    .doc-watermark { color: rgba(31,122,77,.035); }
    .doc-section, .doc-notes-box, .doc-totals-box, .doc-footer-modern { break-inside: avoid; }
    .report-card { border: 0; box-shadow: none; padding: 0; }
}

/* v0.13.1 - Reportes operativos y plantilla configurable robusta */
.report-metric-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.report-metric-cards .metric strong { font-size: clamp(18px, 2vw, 28px); line-height: 1.15; word-break: break-word; }
.report-metric-cards small { display: block; color: var(--muted); margin-top: 6px; font-weight: 700; }
.report-filter-form { margin-bottom: 16px; }
.compact-grid { gap: 10px; }
.grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid.five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.dense-table { font-size: 13px; }
.dense-table th, .dense-table td { padding: 8px 8px; }
.report-printable { margin-top: 16px; }
.report-note-card { margin-top: 16px; }
.checkline { display: inline-flex; align-items: center; gap: 8px; margin: 0; color: var(--text); }
.checkline input { width: auto; min-height: auto; }
.compact-card { padding: 12px; }
.button-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

.document-page .doc-footer-modern small { display: block; color: var(--muted); line-height: 1.45; }
.document-page .doc-footer-modern span { display: block; color: #344054; margin-bottom: 6px; font-size: .88em; }
.document-page .doc-footer-modern strong { display: block; color: #111827; margin-bottom: 6px; font-size: .9em; }
.tpl-header-classic .doc-number-box { border-width: 2px; background: #fff; }
.tpl-header-minimal .doc-header-modern { border-top-width: 2px; background: #fff; }
.tpl-density-compact .doc-table th, .tpl-density-compact .doc-table td { padding: 6px 7px; }
.tpl-density-normal .doc-table th, .tpl-density-normal .doc-table td { padding: 8px 8px; }
.tpl-density-comfortable .doc-table th, .tpl-density-comfortable .doc-table td { padding: 10px 10px; }

@media (max-width: 1180px) {
    .grid.five { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .report-metric-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .grid.five, .grid.four, .report-metric-cards { grid-template-columns: 1fr; }
}
.grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .grid.three { grid-template-columns: 1fr; } }
.doc-signature-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 12px;
}
.doc-signature-grid div {
    min-height: 54px;
    border: 1px dashed #cfd6e2;
    border-radius: 12px;
    background: #fff;
    padding: 10px 12px;
    display: grid;
    align-content: end;
}
.doc-signature-grid span { color: var(--muted); font-size: .78em; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; }
.doc-signature-grid strong { color: #111827; font-size: .92em; }
@media (max-width: 760px) { .doc-signature-grid { grid-template-columns: 1fr; } }
@media print { .doc-signature-grid { break-inside: avoid; } }

/* v0.13.1 - Edición de maestros y comprobantes de impresión compactos */
.form-section-title {
    margin: 6px 0 10px;
    padding: 8px 10px;
    border-left: 4px solid var(--primary);
    border-radius: 10px;
    background: #f3fbf6;
    color: #145c38;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-size: 12px;
}
.form-checkline { min-height: 42px; align-items: center; }
.action-cell { white-space: nowrap; }
.action-cell .btn { margin-left: 4px; margin-bottom: 4px; }
.branch-picker-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--line);
}
.branch-picker-row:last-child { border-bottom: 0; }
.radio-inline { display: inline-flex; align-items: center; gap: 6px; margin: 0; color: var(--muted); font-size: 13px; }
.radio-inline input { width: auto; min-height: auto; }

@media print {
    @page { size: A4; margin: 9mm 8mm; }
    html, body { width: auto; min-width: 0; }
    body { font-size: 9.5px !important; color: #111827; }
    .sidebar, .topbar, .no-print, .alert, .document-actions, .btn, button { display: none !important; }
    .main, .content { margin: 0 !important; padding: 0 !important; width: 100% !important; }
    .card { padding: 0 !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; }
    .document-page,
    section.document-page,
    .printable-document,
    .comprobante {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        overflow: visible !important;
        font-size: calc(9.2px * var(--doc-font-scale, .93)) !important;
        line-height: 1.22 !important;
    }
    .doc-section {
        padding: 5px 7px !important;
        margin-bottom: 5px !important;
        border-radius: 7px !important;
        border-color: #d7dde6 !important;
        background: #fff !important;
        break-inside: avoid;
    }
    .doc-header-modern {
        grid-template-columns: 1fr 190px !important;
        gap: 7px !important;
        border-top-width: 3px !important;
    }
    .doc-company-block { gap: 7px !important; align-items: center !important; }
    .doc-logo { width: 34px !important; height: 34px !important; border-radius: 8px !important; font-size: 10px !important; }
    .doc-company-block strong { font-size: 1.02em !important; }
    .doc-company-block span { font-size: .76em !important; margin-top: 1px !important; }
    .doc-number-box { padding: 5px 7px !important; border-radius: 7px !important; }
    .doc-number-box strong { font-size: 1.08em !important; }
    .doc-number-box span { font-size: .65em !important; }
    .doc-number-box small { font-size: .74em !important; }
    .doc-meta-grid { grid-template-columns: repeat(3, 1fr) !important; gap: 5px !important; }
    .doc-meta-grid div { padding-left: 6px !important; border-left-width: 2px !important; }
    .doc-meta-grid span, .doc-meta-grid small { font-size: .72em !important; }
    .doc-meta-grid strong { margin: 1px 0 !important; font-size: .88em !important; }
    .doc-section-title { margin-bottom: 4px !important; font-size: .68em !important; }
    .doc-section-title strong { font-size: .92em !important; }
    .document-page .table-wrap { border-radius: 7px !important; overflow: visible !important; }
    .doc-table, .document-page table { font-size: 8.6px !important; line-height: 1.18 !important; }
    .doc-table th, .doc-table td,
    .document-page table th, .document-page table td {
        padding: 2.8px 4px !important;
        vertical-align: top !important;
    }
    .doc-price-footer {
        grid-template-columns: 1fr 260px !important;
        gap: 6px !important;
        margin-top: 5px !important;
        break-inside: avoid;
    }
    .doc-notes-box, .doc-totals-box, .doc-footer-modern {
        padding: 5px 7px !important;
        border-radius: 7px !important;
        break-inside: avoid;
    }
    .doc-notes-box strong { margin-bottom: 3px !important; }
    .doc-notes-box p, .doc-footer-modern p { margin: 0 0 3px !important; font-size: .78em !important; line-height: 1.22 !important; }
    .doc-totals-box div { padding: 3px 0 !important; }
    .doc-totals-box .total { font-size: 1.05em !important; }
    .doc-footer-modern { margin-top: 5px !important; border-bottom-width: 2px !important; }
    .doc-signature-grid { gap: 6px !important; margin-top: 5px !important; }
    .doc-signature-grid div { min-height: 32px !important; padding: 5px 7px !important; border-radius: 7px !important; }
    .doc-watermark { font-size: 42px !important; top: 42px !important; right: 16px !important; color: rgba(31,122,77,.025) !important; }
    .document-header, .document-meta, .document-bottom { margin-bottom: 6px !important; margin-top: 6px !important; gap: 6px !important; }
    .document-meta div { padding: 5px 7px !important; border-radius: 7px !important; }
    h1 { font-size: 18px !important; margin: 0 0 5px !important; }
    h2 { font-size: 12px !important; margin: 6px 0 4px !important; }
    p { margin-top: 0; }
}

/* v0.13.3 - Plantillas avanzadas de comprobantes: layout, fuentes y espaciado */
.document-page.printable-document,
.document-page.comprobante {
    display: flex;
    flex-direction: column;
    gap: var(--doc-gap, 7px);
    font-size: var(--doc-font-base, 9.2px);
}
.document-page.printable-document > *,
.document-page.comprobante > * { order: var(--doc-order-body, 4); }
.document-page.printable-document > .doc-watermark,
.document-page.comprobante > .doc-watermark { order: 0; }
.document-page.printable-document > .doc-header-modern,
.document-page.comprobante > .doc-header-modern { order: var(--doc-order-header, 1); }
.document-page.printable-document > .document-actions,
.document-page.comprobante > .document-actions { order: var(--doc-order-actions, 2); }
.document-page.printable-document > .doc-meta-grid,
.document-page.comprobante > .doc-meta-grid { order: var(--doc-order-meta, 3); }
.document-page.printable-document > .doc-price-footer,
.document-page.comprobante > .doc-price-footer { order: var(--doc-order-prices, 5); }
.document-page.printable-document > .doc-signature-grid,
.document-page.comprobante > .doc-signature-grid { order: var(--doc-order-signature, 8); }
.document-page.printable-document > .doc-footer-modern,
.document-page.comprobante > .doc-footer-modern { order: var(--doc-order-footer, 9); }

.document-page .doc-section,
.document-page .doc-notes-box,
.document-page .doc-totals-box,
.document-page .doc-footer-modern {
    padding: var(--doc-section-padding, 7px);
    margin-bottom: 0;
}
.document-page .doc-header-modern,
.document-page .doc-price-footer,
.document-page .doc-signature-grid,
.document-page .doc-meta-grid { gap: var(--doc-gap, 7px); }
.document-page .doc-price-footer { margin-top: 0; }
.document-page .doc-company-block { font-size: var(--doc-font-header, 9px); }
.document-page .doc-company-block strong,
.document-page .doc-number-box strong { font-size: var(--doc-font-title, 11.2px); }
.document-page .doc-company-block span,
.document-page .doc-number-box span,
.document-page .doc-number-box small,
.document-page .doc-meta-grid span,
.document-page .doc-meta-grid small { font-size: var(--doc-font-meta, 8px); }
.document-page .doc-meta-grid { grid-template-columns: repeat(var(--doc-meta-columns, 3), minmax(0, 1fr)); }
.document-page .doc-table,
.document-page table { font-size: var(--doc-font-table, 8.4px); }
.document-page .doc-table th,
.document-page .doc-table td,
.document-page table th,
.document-page table td {
    padding: var(--doc-row-padding-y, 3.2px) var(--doc-row-padding-x, 4.2px);
}
.document-page .doc-totals-box,
.document-page .totals-card,
.document-page .final-totals { font-size: var(--doc-font-totals, 9px); }
.document-page .doc-footer-modern,
.document-page .doc-footer-modern p,
.document-page .doc-footer-modern span,
.document-page .doc-footer-modern strong { font-size: var(--doc-font-footer, 7.8px); }

.tpl-layout-compact.document-page {
    padding: 12px;
    border-radius: 12px;
}
.tpl-layout-compact .doc-logo { width: 38px; height: 38px; border-radius: 9px; }
.tpl-layout-compact .doc-section { border-radius: 10px; }
.tpl-layout-compact .doc-number-box { padding: 6px 8px; }
.tpl-layout-compact .doc-section-title { margin-bottom: 4px; }

.tpl-layout-arca_like.document-page {
    border-radius: 8px;
    border: 1px solid #b8c1cf;
    box-shadow: none;
}
.tpl-layout-arca_like .doc-header-modern {
    border-top-width: 0;
    border-radius: 6px;
    border-color: #111827;
    background: #fff;
}
.tpl-layout-arca_like .doc-number-box {
    border-color: #111827;
    background: #fff;
    border-width: 2px;
}
.tpl-layout-arca_like .doc-section,
.tpl-layout-arca_like .doc-notes-box,
.tpl-layout-arca_like .doc-totals-box,
.tpl-layout-arca_like .doc-footer-modern { border-radius: 6px; }

.tpl-price-bottom .doc-price-footer { grid-template-columns: 1fr; }
.tpl-price-top .doc-price-footer { grid-template-columns: 1fr minmax(260px, 360px); }
.tpl-logo-right .doc-company-block { flex-direction: row-reverse; text-align: right; }
.tpl-logo-hidden .doc-logo { display: none !important; }
.tpl-hide-section-titles .doc-section-title { display: none !important; }
.tpl-hide-item-codes .doc-table th:first-child,
.tpl-hide-item-codes .doc-table td:first-child { display: none !important; }

@media print {
    @page { size: A4; margin: var(--doc-print-margin, 8mm); }
    .document-page.printable-document,
    .document-page.comprobante {
        display: flex !important;
        flex-direction: column !important;
        gap: var(--doc-gap, 7px) !important;
        font-size: var(--doc-font-base, 9.2px) !important;
        line-height: 1.18 !important;
    }
    .document-page .doc-section,
    .document-page .doc-notes-box,
    .document-page .doc-totals-box,
    .document-page .doc-footer-modern {
        padding: var(--doc-section-padding, 7px) !important;
        margin: 0 !important;
    }
    .document-page .doc-header-modern,
    .document-page .doc-price-footer,
    .document-page .doc-signature-grid,
    .document-page .doc-meta-grid { gap: var(--doc-gap, 7px) !important; }
    .document-page .doc-table,
    .document-page table { font-size: var(--doc-font-table, 8.4px) !important; }
    .document-page .doc-table th,
    .document-page .doc-table td,
    .document-page table th,
    .document-page table td {
        padding: var(--doc-row-padding-y, 3.2px) var(--doc-row-padding-x, 4.2px) !important;
    }
    .document-page .doc-meta-grid { grid-template-columns: repeat(var(--doc-meta-columns, 3), minmax(0, 1fr)) !important; }
    .document-page .doc-company-block { font-size: var(--doc-font-header, 9px) !important; }
    .document-page .doc-company-block strong,
    .document-page .doc-number-box strong { font-size: var(--doc-font-title, 11.2px) !important; }
    .document-page .doc-company-block span,
    .document-page .doc-number-box span,
    .document-page .doc-number-box small,
    .document-page .doc-meta-grid span,
    .document-page .doc-meta-grid small { font-size: var(--doc-font-meta, 8px) !important; }
    .document-page .doc-totals-box,
    .document-page .totals-card,
    .document-page .final-totals { font-size: var(--doc-font-totals, 9px) !important; }
    .document-page .doc-footer-modern,
    .document-page .doc-footer-modern p,
    .document-page .doc-footer-modern span,
    .document-page .doc-footer-modern strong { font-size: var(--doc-font-footer, 7.8px) !important; }
    .tpl-price-bottom .doc-price-footer { grid-template-columns: 1fr !important; }
    .tpl-price-top .doc-price-footer { grid-template-columns: 1fr 250px !important; }
    .tpl-logo-right .doc-company-block { flex-direction: row-reverse !important; text-align: right !important; }
}

/* v0.13.3 - Plantilla avanzada: distribución, tamaños y fuentes por zona */
.tpl-width-narrow.document-page { max-width: 920px; }
.tpl-width-wide.document-page { max-width: 1220px; }
.tpl-width-auto.document-page.doc-paper-a4 { max-width: 1080px; }

.document-page {
    font-size: var(--doc-font-base, calc(14px * var(--doc-font-scale, .93)));
}
.document-page h1,
.document-page .doc-number-box strong { font-size: var(--doc-font-title, 12px); }
.document-page .doc-company-block strong { font-size: calc(var(--doc-font-title, 12px) * .98); }
.document-page .doc-company-block span,
.document-page .doc-number-box span,
.document-page .doc-number-box small,
.document-page .doc-section-title,
.document-page .doc-meta-grid span,
.document-page .doc-meta-grid small { font-size: var(--doc-font-header, 8.6px); }
.document-page .doc-meta-grid strong,
.document-page .doc-notes-box,
.document-page .doc-notes-box p { font-size: var(--doc-font-body, 8.6px); }
.document-page .doc-table,
.document-page table.doc-table { font-size: var(--doc-font-table, 8.2px); }
.document-page .doc-totals-box { font-size: var(--doc-font-totals, 9px); }
.document-page .doc-footer-modern,
.document-page .doc-footer-modern p,
.document-page .doc-footer-modern small,
.document-page .doc-footer-modern span { font-size: var(--doc-font-footer, 7.4px); }

.document-page .doc-section {
    padding: var(--doc-section-padding, 6px);
    margin-bottom: var(--doc-section-gap, 5px);
    border-radius: var(--doc-section-radius, 7px);
    border-color: var(--doc-section-border-color, #d7dde6);
}
.document-page .doc-header-modern {
    grid-template-columns: 1fr var(--doc-header-box-width, 190px);
    gap: var(--doc-section-gap, 5px);
}
.document-page .doc-logo {
    width: var(--doc-logo-size, 34px);
    height: var(--doc-logo-size, 34px);
    border-radius: calc(var(--doc-section-radius, 7px) + 1px);
}
.document-page .doc-meta-grid {
    grid-template-columns: repeat(var(--doc-meta-columns, 3), minmax(0, 1fr));
    gap: var(--doc-section-gap, 5px);
}
.document-page .doc-table th,
.document-page .doc-table td { padding: var(--doc-table-pad-y, 3px) var(--doc-table-pad-x, 4px); }
.document-page .doc-price-footer {
    grid-template-columns: 1fr var(--doc-totals-width, 260px);
    gap: var(--doc-section-gap, 5px);
}
.document-page.tpl-prices-totals-left-notes-right .doc-price-footer { grid-template-columns: var(--doc-totals-width, 260px) 1fr; }
.document-page.tpl-prices-totals-left-notes-right .doc-totals-box { order: 1; }
.document-page.tpl-prices-totals-left-notes-right .doc-notes-box { order: 2; }
.document-page.tpl-prices-stacked .doc-price-footer { grid-template-columns: 1fr; }
.document-page.tpl-prices-stacked .doc-totals-box,
.document-page.tpl-prices-stacked .doc-notes-box { order: initial; }

.document-page.tpl-layout-custom {
    display: flex;
    flex-direction: column;
}
.document-page.tpl-layout-custom > .document-actions { order: 0; }
.document-page.tpl-layout-custom > .doc-header-modern,
.document-page.tpl-layout-custom > .document-header { order: var(--doc-order-header, 10); }
.document-page.tpl-layout-custom > .doc-meta-grid,
.document-page.tpl-layout-custom > .document-meta { order: var(--doc-order-meta, 20); }
.document-page.tpl-layout-custom > .doc-section:has(.doc-table),
.document-page.tpl-layout-custom > .table-wrap { order: var(--doc-order-items, 30); }
.document-page.tpl-layout-custom > .doc-price-footer,
.document-page.tpl-layout-custom > .document-bottom { order: var(--doc-order-prices, 40); }
.document-page.tpl-layout-custom > .doc-signature-grid { order: var(--doc-order-signature, 50); }
.document-page.tpl-layout-custom > .doc-footer-modern { order: var(--doc-order-footer, 60); }

@media print {
    @page { margin: var(--doc-print-margin, 8mm); }
    .document-page,
    section.document-page,
    .printable-document,
    .comprobante {
        padding: var(--doc-page-padding, 0) !important;
        font-size: var(--doc-font-base, 9.2px) !important;
    }
    .document-page .doc-section {
        padding: var(--doc-section-padding, 6px) !important;
        margin-bottom: var(--doc-section-gap, 5px) !important;
        border-radius: var(--doc-section-radius, 7px) !important;
        border-color: var(--doc-section-border-color, #d7dde6) !important;
    }
    .document-page .doc-header-modern {
        grid-template-columns: 1fr var(--doc-header-box-width, 190px) !important;
        gap: var(--doc-section-gap, 5px) !important;
    }
    .document-page .doc-logo {
        width: var(--doc-logo-size, 34px) !important;
        height: var(--doc-logo-size, 34px) !important;
        font-size: calc(var(--doc-logo-size, 34px) * .28) !important;
    }
    .document-page .doc-company-block span,
    .document-page .doc-number-box span,
    .document-page .doc-number-box small,
    .document-page .doc-section-title,
    .document-page .doc-meta-grid span,
    .document-page .doc-meta-grid small { font-size: var(--doc-font-header, 8.6px) !important; }
    .document-page .doc-company-block strong,
    .document-page .doc-number-box strong { font-size: var(--doc-font-title, 12px) !important; }
    .document-page .doc-meta-grid { grid-template-columns: repeat(var(--doc-meta-columns, 3), minmax(0, 1fr)) !important; gap: var(--doc-section-gap, 5px) !important; }
    .document-page .doc-meta-grid strong,
    .document-page .doc-notes-box,
    .document-page .doc-notes-box p { font-size: var(--doc-font-body, 8.6px) !important; }
    .document-page .doc-table,
    .document-page table { font-size: var(--doc-font-table, 8.2px) !important; }
    .document-page .doc-table th,
    .document-page .doc-table td,
    .document-page table th,
    .document-page table td {
        padding: var(--doc-table-pad-y, 3px) var(--doc-table-pad-x, 4px) !important;
    }
    .document-page .doc-price-footer {
        grid-template-columns: 1fr var(--doc-totals-width, 260px) !important;
        gap: var(--doc-section-gap, 5px) !important;
        margin-top: var(--doc-section-gap, 5px) !important;
    }
    .document-page.tpl-prices-totals-left-notes-right .doc-price-footer { grid-template-columns: var(--doc-totals-width, 260px) 1fr !important; }
    .document-page.tpl-prices-stacked .doc-price-footer { grid-template-columns: 1fr !important; }
    .document-page .doc-notes-box,
    .document-page .doc-totals-box,
    .document-page .doc-footer-modern {
        padding: var(--doc-section-padding, 6px) !important;
        border-radius: var(--doc-section-radius, 7px) !important;
    }
    .document-page .doc-totals-box { font-size: var(--doc-font-totals, 9px) !important; }
    .document-page .doc-footer-modern,
    .document-page .doc-footer-modern p,
    .document-page .doc-footer-modern small,
    .document-page .doc-footer-modern span { font-size: var(--doc-font-footer, 7.4px) !important; }
}

/* v0.13.3 hotfix: no alterar orden en plantilla estándar */
.document-page.printable-document:not(.tpl-layout-custom),
.document-page.comprobante:not(.tpl-layout-custom) {
    display: block;
}
.document-page.printable-document:not(.tpl-layout-custom) > *,
.document-page.comprobante:not(.tpl-layout-custom) > * {
    order: initial;
}
.document-page.tpl-layout-custom {
    display: flex !important;
    flex-direction: column !important;
}
.document-page.tpl-layout-custom > * { order: var(--doc-order-items, 30); }
.document-page.tpl-layout-custom > .doc-watermark { order: 0; }
.document-page.tpl-layout-custom > .document-actions { order: 0; }
.document-page.tpl-layout-custom > .doc-header-modern,
.document-page.tpl-layout-custom > .document-header { order: var(--doc-order-header, 10); }
.document-page.tpl-layout-custom > .doc-meta-grid,
.document-page.tpl-layout-custom > .document-meta { order: var(--doc-order-meta, 20); }
.document-page.tpl-layout-custom > .doc-section:has(.doc-table),
.document-page.tpl-layout-custom > .table-wrap { order: var(--doc-order-items, 30); }
.document-page.tpl-layout-custom > .doc-price-footer,
.document-page.tpl-layout-custom > .document-bottom { order: var(--doc-order-prices, 40); }
.document-page.tpl-layout-custom > .doc-signature-grid { order: var(--doc-order-signature, 50); }
.document-page.tpl-layout-custom > .doc-footer-modern { order: var(--doc-order-footer, 60); }

/* v0.13.4 - Plantilla segura con logo real y orden visual protegido */
.doc-logo.doc-logo-image {
    background: #fff !important;
    border: 1px solid #d7dde6;
    padding: 3px;
    overflow: hidden;
}
.doc-logo.doc-logo-image img {
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.doc-logo.doc-logo-text { background: var(--doc-accent); color: #fff; }

.document-page.tpl-layout-custom {
    display: flex !important;
    flex-direction: column !important;
}
.document-page.tpl-layout-custom > * { order: 30; }
.document-page.tpl-layout-custom > .doc-watermark { order: 0 !important; }
.document-page.tpl-layout-custom > .document-actions,
.document-page.tpl-layout-custom > .no-print.document-actions { order: 11 !important; }
.document-page.tpl-layout-custom > .doc-header-modern,
.document-page.tpl-layout-custom > .document-header { order: 10 !important; }
.document-page.tpl-layout-custom > .doc-meta-grid,
.document-page.tpl-layout-custom > .document-meta { order: var(--doc-order-meta, 20) !important; }
.document-page.tpl-layout-custom > .doc-items-section,
.document-page.tpl-layout-custom > .doc-section.doc-items-section,
.document-page.tpl-layout-custom > .table-wrap { order: var(--doc-order-items, 30) !important; }
.document-page.tpl-layout-custom > .doc-price-footer,
.document-page.tpl-layout-custom > .document-bottom { order: var(--doc-order-prices, 40) !important; }
.document-page.tpl-layout-custom > .doc-signature-grid { order: var(--doc-order-signature, 50) !important; }
.document-page.tpl-layout-custom > .doc-footer-modern { order: 60 !important; }
.document-page.tpl-layout-custom > .doc-section-title.no-print,
.document-page.tpl-layout-custom > .alert.no-print,
.document-page.tpl-layout-custom > .card.no-print,
.document-page.tpl-layout-custom > .form-actions.no-print,
.document-page.tpl-layout-custom > .inner-card.no-print { order: 90 !important; }

@media print {
    .doc-logo.doc-logo-image { border: 1px solid #d7dde6 !important; }
    .document-page.tpl-layout-custom > .doc-header-modern,
    .document-page.tpl-layout-custom > .document-header { order: 10 !important; }
    .document-page.tpl-layout-custom > .doc-footer-modern { order: 60 !important; }
}
.template-logo-box{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.template-logo-preview{width:92px;height:70px;border:1px solid #d7dde6;border-radius:14px;background:#fff;display:grid;place-items:center;overflow:hidden;font-weight:900;color:#fff}.template-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.template-logo-preview span{background:var(--primary);width:52px;height:52px;border-radius:14px;display:grid;place-items:center}

/* v0.13.5 - Orden blindado de comprobantes y corrección de impresión.
   Evita que el cuerpo/ítems aparezca sobre la cabecera aunque existan reglas heredadas de plantillas anteriores. */
.document-page.printable-document,
.document-page.comprobante,
section.document-page.printable-document,
section.document-page.comprobante {
    display: flex !important;
    flex-direction: column !important;
}
.document-page.printable-document > *,
.document-page.comprobante > *,
section.document-page.printable-document > *,
section.document-page.comprobante > * {
    order: 30 !important;
}
.document-page.printable-document > .doc-watermark,
.document-page.comprobante > .doc-watermark { order: 0 !important; }
.document-page.printable-document > .doc-header-modern,
.document-page.printable-document > .document-header,
.document-page.comprobante > .doc-header-modern,
.document-page.comprobante > .document-header {
    order: 10 !important;
}
.document-page.printable-document > .document-actions,
.document-page.printable-document > .no-print.document-actions,
.document-page.comprobante > .document-actions,
.document-page.comprobante > .no-print.document-actions {
    order: 11 !important;
}
.document-page.printable-document > .doc-section-title.no-print,
.document-page.printable-document > .alert.no-print,
.document-page.comprobante > .doc-section-title.no-print,
.document-page.comprobante > .alert.no-print {
    order: 12 !important;
}
.document-page.printable-document > .doc-meta-grid,
.document-page.printable-document > .document-meta,
.document-page.comprobante > .doc-meta-grid,
.document-page.comprobante > .document-meta {
    order: var(--doc-order-meta, 20) !important;
}
.document-page.printable-document > .doc-items-section,
.document-page.printable-document > .doc-section.doc-items-section,
.document-page.printable-document > .table-wrap.doc-items-section,
.document-page.comprobante > .doc-items-section,
.document-page.comprobante > .doc-section.doc-items-section,
.document-page.comprobante > .table-wrap.doc-items-section {
    order: var(--doc-order-items, 30) !important;
}
.document-page.printable-document > .doc-price-footer,
.document-page.printable-document > .document-bottom,
.document-page.comprobante > .doc-price-footer,
.document-page.comprobante > .document-bottom {
    order: var(--doc-order-prices, 40) !important;
}
.document-page.printable-document > .doc-signature-grid,
.document-page.comprobante > .doc-signature-grid {
    order: var(--doc-order-signature, 50) !important;
}
.document-page.printable-document > .doc-footer-modern,
.document-page.comprobante > .doc-footer-modern {
    order: 60 !important;
}
.document-page.printable-document > .inner-card.no-print,
.document-page.printable-document > .card.no-print,
.document-page.printable-document > .form-actions.no-print,
.document-page.comprobante > .inner-card.no-print,
.document-page.comprobante > .card.no-print,
.document-page.comprobante > .form-actions.no-print {
    order: 90 !important;
}

@media print {
    .document-page.printable-document,
    .document-page.comprobante,
    section.document-page.printable-document,
    section.document-page.comprobante {
        display: flex !important;
        flex-direction: column !important;
    }
    .document-page.printable-document > *,
    .document-page.comprobante > * {
        order: 30 !important;
    }
    .document-page.printable-document > .doc-header-modern,
    .document-page.printable-document > .document-header,
    .document-page.comprobante > .doc-header-modern,
    .document-page.comprobante > .document-header { order: 10 !important; }
    .document-page.printable-document > .doc-meta-grid,
    .document-page.printable-document > .document-meta,
    .document-page.comprobante > .doc-meta-grid,
    .document-page.comprobante > .document-meta { order: var(--doc-order-meta, 20) !important; }
    .document-page.printable-document > .doc-items-section,
    .document-page.printable-document > .doc-section.doc-items-section,
    .document-page.printable-document > .table-wrap.doc-items-section,
    .document-page.comprobante > .doc-items-section,
    .document-page.comprobante > .doc-section.doc-items-section,
    .document-page.comprobante > .table-wrap.doc-items-section { order: var(--doc-order-items, 30) !important; }
    .document-page.printable-document > .doc-price-footer,
    .document-page.printable-document > .document-bottom,
    .document-page.comprobante > .doc-price-footer,
    .document-page.comprobante > .document-bottom { order: var(--doc-order-prices, 40) !important; }
    .document-page.printable-document > .doc-signature-grid,
    .document-page.comprobante > .doc-signature-grid { order: var(--doc-order-signature, 50) !important; }
    .document-page.printable-document > .doc-footer-modern,
    .document-page.comprobante > .doc-footer-modern { order: 60 !important; }
}

/* Configuración CRM v0.14 */
.config-grid { align-items: stretch; }
.mini-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.mini-summary-grid div { border: 1px solid var(--line); border-radius: 12px; padding: 10px; background: #fbfcfd; }
.mini-summary-grid span { display: block; color: var(--muted); font-size: 12px; margin-bottom: 4px; }
.mini-summary-grid strong { display: block; overflow-wrap: anywhere; }
.check-row { display: flex; align-items: center; gap: 10px; font-weight: 650; }
.check-row input[type="checkbox"] { width: auto; min-height: auto; }
.branch-switch-form { display: flex; align-items: center; gap: 8px; }
.branch-switch-form select { min-height: 34px; padding: 6px 28px 6px 10px; border-radius: 9px; min-width: 180px; font-size: 13px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.warning-tile { border-color: #fedf89; background: #fffaf0; }

@media (max-width: 760px) {
    .branch-switch-form { width: 100%; }
    .branch-switch-form select { min-width: 0; width: 100%; }
    .userbox { gap: 8px; }
}

/* Cierre formal de caja v0.15 */
.actions-row { display:flex; gap:.55rem; align-items:center; flex-wrap:wrap; }
.actions-cell { display:flex; gap:.35rem; align-items:center; flex-wrap:wrap; }
.small { font-size:.78rem; }
.compact-table th, .compact-table td { padding:.48rem .55rem; }
.small-input { max-width: 130px; padding:.42rem .5rem; }
.checkbox-line { display:flex; gap:.55rem; align-items:flex-start; background:#f8fafc; border:1px solid #e5e7eb; border-radius:12px; padding:.85rem 1rem; }
.danger-zone { border-color:#fecaca; background:#fff7f7; }
.warning-soft { border-color:#fde68a; background:#fffbeb; }
.text-danger { color:#b91c1c; font-weight:700; }
.text-success { color:#047857; font-weight:700; }
.status-pending { background:#fef3c7; color:#92400e; }
.status-draft { background:#e0f2fe; color:#075985; }
.status-in { background:#dcfce7; color:#166534; }
.status-out { background:#fee2e2; color:#991b1b; }
.status-adjustment { background:#ede9fe; color:#5b21b6; }
@media (max-width: 760px) { .actions-cell, .actions-row { align-items:stretch; } .actions-cell .btn, .actions-row .btn { width:100%; text-align:center; } .small-input { max-width: 100%; min-width: 110px; } }

/* v0.16 - Rendiciones a Caja Gerente */
.compact-filters { align-items: end; }
.badge.status-draft { background: #eef2ff; color: #3730a3; }
.badge.status-sent { background: #fff7ed; color: #9a3412; }
.badge.status-received { background: #ecfdf5; color: #065f46; }
.badge.status-rejected { background: #fef2f2; color: #991b1b; }
.badge.status-void { background: #f3f4f6; color: #374151; }
.subtle-card { background: #f8fafc; border-style: dashed; }
.compact-table table td, .compact-table table th { padding-top: .45rem; padding-bottom: .45rem; }
.doc-footer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.doc-footer-grid > div { border: 1px solid var(--border, #e5e7eb); border-radius: .65rem; padding: .75rem; }
@media (max-width: 800px) { .doc-footer-grid { grid-template-columns: 1fr; } }

/* v0.16 - Tesorería / Caja Gerente */
.treasury-cards .metric-card strong { font-size: 1.45rem; }
.compact-list { margin: .25rem 0 0; padding-left: 1.1rem; }
.status-pill.status-sent { background: #fff7ed; color: #9a3412; border-color: #fed7aa; }
.status-pill.status-received { background: #ecfdf5; color: #065f46; border-color: #bbf7d0; }
.status-pill.status-rejected { background: #fef2f2; color: #991b1b; border-color: #fecaca; }
.status-pill.status-draft { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
.status-pill.status-void { background: #f1f5f9; color: #475569; border-color: #cbd5e1; }
.treasury-form .inner-card { margin-top: 1rem; }
@media print {
    .no-print, .actions-row, .page-actions .actions-row { display: none !important; }
    .compact-document { font-size: 10px; }
}

/* v0.17 - Reset controlado */
.reset-warning { border-left: 5px solid #d97706; }
.reset-kpis .metric-card strong { display:block; font-size: 1.8rem; line-height:1.1; margin: 6px 0; }
.metric-label { display:block; font-size:.78rem; color: var(--muted, #64748b); text-transform: uppercase; letter-spacing:.06em; font-weight:700; }
.reset-group-list { display:flex; flex-direction:column; gap:10px; }
.reset-group { border:1px solid rgba(148,163,184,.28); border-radius:14px; background: rgba(248,250,252,.75); overflow:hidden; }
.reset-group summary { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; cursor:pointer; list-style:none; }
.reset-group summary::-webkit-details-marker { display:none; }
.reset-group summary span { display:block; color: var(--muted, #64748b); font-size:.86rem; margin-top:2px; }
.reset-group summary b { font-size:1.05rem; background:#fff; border:1px solid rgba(148,163,184,.35); border-radius:999px; padding:4px 10px; min-width:54px; text-align:center; }
.compact-table table { font-size:.86rem; }
.compact-table th, .compact-table td { padding:7px 9px; }
.right { text-align:right; }
.danger-zone-card { border:1px solid rgba(220,38,38,.28); box-shadow:0 10px 30px rgba(220,38,38,.08); }
.danger-soft { background: rgba(254,226,226,.65) !important; border-color: rgba(220,38,38,.35) !important; }
.danger-text { color:#991b1b; font-weight:700; }
.check-line { display:flex; align-items:flex-start; gap:10px; padding:8px 0; }
.check-line input { margin-top:3px; }
.reset-protected-box { margin-top:18px; padding-top:14px; border-top:1px solid rgba(148,163,184,.25); }
.reset-protected-box h3 { margin:0 0 10px; }
.protected-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); gap:8px; }
.protected-grid div { border:1px solid rgba(148,163,184,.24); border-radius:12px; padding:9px 10px; background:#fff; }
.protected-grid span { display:block; color:var(--muted, #64748b); font-size:.8rem; }
.protected-grid strong { display:block; margin-top:2px; }
.reset-form input[type="text"] { font-weight:700; letter-spacing:.03em; }

/* v0.20 - Cliente 360 ordenado por acordiones */
.customer-hero-compact { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 20px; }
.customer-hero-compact h1 { margin:.25rem 0 .15rem; font-size:1.55rem; line-height:1.12; }
.compact-actions { gap:7px; }
.customer-summary-compact { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); margin-bottom:16px; }
.customer-summary-compact .metric { padding:14px 16px; }
.customer-summary-compact .metric strong { font-size:1.25rem; }
.customer-360-grid { display:grid; grid-template-columns: 300px minmax(0, 1fr); gap:16px; align-items:start; }
.customer-side-compact { position: sticky; top: 76px; padding:0; overflow:hidden; }
.card-header.slim { padding:12px 14px; border-bottom:1px solid rgba(148,163,184,.22); }
.card-header.slim h2 { margin:0; font-size:1rem; }
.compact-detail-list { padding:12px 14px 14px; }
.compact-detail-list dt { font-size:.72rem; text-transform:uppercase; letter-spacing:.045em; color:#64748b; margin-top:8px; }
.compact-detail-list dd { margin:2px 0 6px; font-size:.9rem; }
.customer-360-main { display:flex; flex-direction:column; gap:10px; min-width:0; }
.accordion-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; }
.accordion-toolbar h2 { margin:0 0 2px; font-size:1.1rem; }
.accordion-toolbar p { margin:0; }
.entity-accordion { border:1px solid rgba(148,163,184,.28); border-radius:16px; background:#fff; box-shadow:0 8px 22px rgba(15,23,42,.04); overflow:hidden; }
.entity-accordion summary { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 16px; cursor:pointer; list-style:none; background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%); }
.entity-accordion summary::-webkit-details-marker { display:none; }
.entity-accordion summary::before { content:'+'; display:inline-flex; align-items:center; justify-content:center; flex:0 0 24px; width:24px; height:24px; border-radius:999px; background:#eef2ff; color:#1d4ed8; font-weight:800; margin-right:0; }
.entity-accordion[open] summary::before { content:'−'; background:#dbeafe; color:#1e40af; }
.entity-accordion summary > span:first-child { display:grid; gap:2px; flex:1 1 auto; }
.entity-accordion summary strong { font-size:.98rem; color:#0f172a; }
.entity-accordion summary small { color:#64748b; font-size:.78rem; }
.accordion-meta { flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; color:#475569; background:#fff; border:1px solid rgba(148,163,184,.25); border-radius:999px; padding:5px 10px; font-size:.78rem; white-space:nowrap; }
.accordion-meta b { color:#0f172a; }
.accordion-body { border-top:1px solid rgba(148,163,184,.22); padding:12px 14px 14px; }
.section-actions { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.compact-table-wrap { max-height:520px; overflow:auto; }
.compact-table { font-size:.82rem; }
.compact-table th { font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:#475569; background:#f8fafc; }
.compact-table th, .compact-table td { padding:7px 8px; vertical-align:top; }
.compact-table .btn.small { padding:5px 8px; font-size:.74rem; }
@media (max-width: 980px) {
    .customer-360-grid { grid-template-columns: 1fr; }
    .customer-side-compact { position:static; }
    .customer-hero-compact, .accordion-toolbar, .entity-accordion summary { flex-direction:column; align-items:stretch; }
    .accordion-meta { align-self:flex-start; }
}
@media print {
    .customer-360-grid { display:block; }
    .customer-side-compact, .accordion-toolbar, .customer-hero-compact .document-actions { display:none !important; }
    .entity-accordion { box-shadow:none; border:1px solid #ddd; margin-bottom:8px; break-inside:avoid; }
    .entity-accordion:not([open]) { display:none; }
    .entity-accordion summary { padding:6px 8px; }
    .accordion-body { padding:6px 8px; }
    .compact-table { font-size:9px; }
    .compact-table th, .compact-table td { padding:3px 4px; }
}

/* v0.21 - Resumen profesional de cuenta corriente */
.statement-filters .filters-grid { display:grid; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap:12px; align-items:end; }
.statement-print-actions { display:flex; justify-content:flex-end; margin-bottom:8px; }
.compact-document-header, .statement-header { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; border-bottom:1px solid #d9e2ef; padding-bottom:10px; margin-bottom:10px; }
.statement-company-block { display:flex; gap:12px; align-items:flex-start; }
.statement-logo-box { width:58px; height:58px; border:1px solid #d9e2ef; border-radius:14px; display:flex; align-items:center; justify-content:center; font-weight:800; color:var(--doc-primary, #0f4c81); overflow:hidden; flex:0 0 58px; }
.statement-logo { max-width:100%; max-height:100%; object-fit:contain; display:block; }
.statement-company-block h2 { margin:0; font-size:18px; line-height:1.1; color:#10233f; }
.statement-company-block p { margin:2px 0; font-size:11px; color:#53657d; }
.statement-title-box { text-align:right; border:1px solid #d9e2ef; border-radius:12px; padding:10px 12px; min-width:210px; background:#f8fafc; }
.statement-title-box strong { display:block; font-size:15px; color:#10233f; letter-spacing:.04em; }
.statement-title-box span { display:block; font-size:11px; color:#53657d; margin-top:4px; }
.statement-party-grid { display:grid; grid-template-columns: 1.35fr .85fr; gap:10px; margin:10px 0; }
.statement-box { border:1px solid #d9e2ef; border-radius:12px; padding:10px 12px; background:#fff; }
.statement-box h3 { margin:0 0 6px; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:#0f4c81; }
.statement-box p { margin:2px 0; font-size:11.5px; color:#34465f; }
.statement-balance-box dl { display:grid; grid-template-columns: 1fr auto; gap:4px 10px; margin:0; font-size:11.5px; }
.statement-balance-box dt { color:#53657d; }
.statement-balance-box dd { margin:0; text-align:right; color:#10233f; }
.statement-note-box { border-left:4px solid var(--doc-primary, #0f4c81); background:#f8fafc; padding:8px 10px; border-radius:8px; font-size:11.5px; color:#34465f; margin:10px 0; }
.statement-table-section { margin-top:10px; }
.statement-table { width:100%; border-collapse:collapse; font-size:11px; }
.statement-table th { background:#eef4fb; color:#10233f; text-transform:uppercase; font-size:10px; letter-spacing:.025em; border:1px solid #d9e2ef; padding:6px; }
.statement-table td { border:1px solid #e4ebf4; padding:5px 6px; vertical-align:top; }
.statement-table tbody tr:nth-child(even) td { background:#fbfdff; }
.statement-table tfoot th { background:#e8f0fa; font-size:11px; }
.statement-table .opening-row td { background:#fff8e6; }
.statement-footer { display:grid; grid-template-columns: 1fr 220px; gap:20px; margin-top:16px; padding-top:10px; border-top:1px solid #d9e2ef; font-size:11px; color:#53657d; }
.statement-signature { text-align:center; padding-top:20px; }
.statement-signature span { display:block; border-top:1px solid #9aa9bb; margin-bottom:4px; }
.center { text-align:center; }
@media print {
  .statement-filters, .statement-print-actions { display:none !important; }
  .statement-header { padding-bottom:6px; margin-bottom:7px; }
  .statement-logo-box { width:45px; height:45px; border-radius:10px; flex-basis:45px; }
  .statement-company-block h2 { font-size:15px; }
  .statement-company-block p, .statement-box p, .statement-balance-box dl, .statement-note-box, .statement-footer { font-size:9.5px; }
  .statement-title-box { padding:7px 9px; min-width:180px; }
  .statement-title-box strong { font-size:12px; }
  .statement-title-box span { font-size:9.5px; margin-top:2px; }
  .statement-party-grid { gap:7px; margin:7px 0; }
  .statement-box { padding:7px 8px; border-radius:8px; }
  .statement-box h3 { font-size:9.5px; margin-bottom:4px; }
  .statement-note-box { margin:7px 0; padding:6px 8px; }
  .statement-table { font-size:9.2px; }
  .statement-table th { font-size:8.4px; padding:4px; }
  .statement-table td { padding:3px 4px; }
  .statement-footer { margin-top:10px; padding-top:7px; }
}
@media (max-width: 800px) {
  .statement-filters .filters-grid, .statement-party-grid, .statement-footer { grid-template-columns:1fr; }
  .statement-header { flex-direction:column; }
  .statement-title-box { text-align:left; width:100%; }
}

/* v0.22 - Stock comprometido por venta anticipada */
.metric.accent-soft { border-left: 4px solid #2563eb; }
.metric.success-soft { border-left: 4px solid #16a34a; }
.commitment-cell { font-weight: 700; color: #1d4ed8; }
.paid-pending-cell { font-weight: 700; color: #15803d; }
.stock-logic-note { font-size: 12px; color: #64748b; margin-top: 6px; }
@media print {
  .commitment-cell, .paid-pending-cell { color: #111827 !important; font-weight: 700; }
}

/* v0.24: Ficha proveedor en acordeones y lectura compacta */
.supplier-accordion-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.entity-accordion-section{overflow:hidden}
.entity-accordion-header{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:default}
.entity-accordion-header h2{margin:0}
.accordion-toggle-btn{border:1px solid var(--border,#d7dde6);background:#fff;border-radius:10px;padding:6px 10px;font-weight:700;color:var(--text,#1f2937);cursor:pointer}
.accordion-toggle-btn:hover{background:#f6f8fb}
.entity-accordion-section:not(.is-open){padding-bottom:14px}
.entity-accordion-body[hidden]{display:none!important}
.entity-accordion-section.is-open{box-shadow:0 10px 30px rgba(15,23,42,.06)}
@media print{.entity-accordion-body[hidden]{display:block!important}.accordion-toggle-btn,.supplier-accordion-toolbar{display:none!important}}
.supplier-accordion-section{}

/* v0.25 - Proveedor 360: acordeón por título y gama diferenciada */
.supplier-360-theme { --supplier-primary:#0f766e; --supplier-soft:#ecfdf5; --supplier-soft-2:#f0fdfa; --supplier-border:#99f6e4; --supplier-dark:#134e4a; }
.supplier-hero { border-top:4px solid #0f766e; background:linear-gradient(135deg,#f0fdfa 0%,#ffffff 54%,#f7fee7 100%); }
.supplier-hero h1 { color:#134e4a; }
.supplier-side { border-top:4px solid #14b8a6; }
.supplier-summary .metric { border-left:4px solid #0f766e; background:linear-gradient(180deg,#ffffff 0%,#f0fdfa 100%); }
.supplier-accordion-toolbar { border-left:4px solid #0f766e; background:linear-gradient(135deg,#f0fdfa 0%,#fff 100%); }
.supplier-accordion-section { border:1px solid rgba(15,118,110,.22); border-radius:16px; background:#fff; box-shadow:0 8px 22px rgba(15,118,110,.045); overflow:hidden; }
.supplier-accordion-section + .supplier-accordion-section { margin-top:10px; }
.supplier-click-header { cursor:pointer; padding:14px 16px; background:linear-gradient(180deg,#ffffff 0%,#f0fdfa 100%); border-bottom:1px solid rgba(15,118,110,.12); user-select:none; }
.supplier-click-header:hover { background:linear-gradient(180deg,#ecfdf5 0%,#ccfbf1 100%); }
.supplier-click-header:focus { outline:3px solid rgba(20,184,166,.24); outline-offset:-3px; }
.supplier-click-header::before { content:'+'; display:inline-flex; align-items:center; justify-content:center; flex:0 0 24px; width:24px; height:24px; border-radius:999px; background:#ccfbf1; color:#0f766e; font-weight:900; margin-right:2px; }
.supplier-accordion-section.is-open .supplier-click-header::before { content:'−'; background:#99f6e4; color:#134e4a; }
.supplier-click-header h2 { color:#134e4a; font-size:1rem; }
.supplier-click-header p { margin:.15rem 0 0; }
.supplier-accordion-body { border-top:0; padding:12px 14px 14px; }
.supplier-accordion-section:not(.is-open) { padding-bottom:0; }
.supplier-accordion-section:not(.is-open) .supplier-click-header { border-bottom:0; }
.supplier-accordion-section.is-open { box-shadow:0 12px 28px rgba(15,118,110,.09); }
.supplier-accordion-section .btn.small { border-color:rgba(15,118,110,.22); }
.supplier-accordion-section .btn.small.primary { background:#0f766e; border-color:#0f766e; }
@media print {
  .supplier-hero { border-top:0; background:#fff!important; }
  .supplier-click-header { background:#fff!important; padding:6px 8px; border-bottom:1px solid #ddd; }
  .supplier-click-header::before { display:none!important; }
  .supplier-accordion-section { box-shadow:none; border:1px solid #ddd; margin-bottom:8px; break-inside:avoid; }
}


/* v0.26 - Interfaz compacta tipo Bootstrap/ERP
   No depende de CDN ni librerías externas. Ajuste visual global, reversible. */
.ui-v26 {
  --bg: #f3f6fa;
  --panel: #ffffff;
  --text: #172033;
  --muted: #64748b;
  --line: #dbe3ee;
  --primary: #2563eb;
  --primary-dark: #1d4ed8;
  --success: #0f7a50;
  --warning: #b7791f;
  --danger: #b42318;
  --sidebar: #111827;
  --sidebar-soft: #1f2937;
  --radius: 10px;
  font-size: 14px;
}
.ui-v26 body, body.ui-v26 {
  background: #f3f6fa;
  color: #172033;
}
.ui-v26 .sidebar {
  width: 250px;
  padding: 12px 10px;
  background: linear-gradient(180deg,#111827 0%,#172033 100%);
  border-right: 1px solid rgba(255,255,255,.08);
}
.ui-v26 .main { margin-left: 250px; }
.ui-v26 .sidebar-brand {
  padding: 8px 8px 12px;
  margin-bottom: 4px;
}
.ui-v26 .brand-logo.small {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  font-size: 12px;
  background: #2563eb;
}
.ui-v26 .sidebar-brand strong { font-size: 14px; }
.ui-v26 .sidebar-brand span { font-size: 11px; }
.ui-v26 .menu { gap: 3px; margin-top: 10px; }
.ui-v26 .menu-item,
.ui-v26 .menu-group summary {
  min-height: 34px;
  padding: 7px 9px;
  border-radius: 8px;
  font-size: 12.5px;
  line-height: 1.2;
}
.ui-v26 .menu-group summary {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  color: rgba(255,255,255,.88);
  list-style: none;
}
.ui-v26 .menu-group summary::-webkit-details-marker { display: none; }
.ui-v26 .menu-group summary::after {
  content: '›';
  margin-left: auto;
  opacity: .55;
  transform: rotate(0deg);
  transition: transform .16s ease;
}
.ui-v26 .menu-group[open] summary::after { transform: rotate(90deg); }
.ui-v26 .menu-group summary:hover,
.ui-v26 .menu-item:hover { background: rgba(255,255,255,.08); }
.ui-v26 .menu-group-items { padding: 2px 0 4px 22px; }
.ui-v26 .menu-group-items .menu-item {
  min-height: 30px;
  padding: 6px 8px;
  font-size: 12px;
  color: rgba(255,255,255,.72);
  border-left: 2px solid rgba(255,255,255,.06);
  border-radius: 0 8px 8px 0;
}
.ui-v26 .menu-item.active,
.ui-v26 .menu-group-items .menu-item.active,
.ui-v26 .menu-dashboard.active {
  background: rgba(37,99,235,.18);
  color: #fff;
  border-color: rgba(96,165,250,.8);
}
.ui-v26 .menu-icon {
  width: 24px;
  height: 24px;
  border-radius: 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.08);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .02em;
  flex: 0 0 24px;
}
.ui-v26 .topbar {
  height: 52px;
  padding: 0 16px;
  box-shadow: 0 1px 0 rgba(15,23,42,.04);
}
.ui-v26 .topbar-title strong { font-size: 13px; }
.ui-v26 .topbar-title span { display: block; font-size: 11px; color: #64748b; margin-top: 1px; }
.ui-v26 .userbox { gap: 10px; font-size: 12.5px; }
.ui-v26 .branch-switch-form select {
  min-height: 32px;
  padding: 5px 28px 5px 10px;
  border-radius: 8px;
  font-size: 12px;
}
.ui-v26 .content { padding: 14px 16px 22px; }
.ui-v26 h1 { font-size: 24px; line-height: 1.2; margin: 0 0 12px; letter-spacing: -.02em; }
.ui-v26 h2 { font-size: 17px; line-height: 1.25; }
.ui-v26 h3 { font-size: 15px; line-height: 1.25; }
.ui-v26 p { line-height: 1.45; }
.ui-v26 .card {
  border-radius: 10px;
  padding: 12px 14px;
  border-color: #dbe3ee;
  box-shadow: 0 3px 10px rgba(15,23,42,.035);
}
.ui-v26 .card + .card { margin-top: 10px; }
.ui-v26 .card-header { margin-bottom: 8px; }
.ui-v26 .card-header h2 { font-size: 15px; }
.ui-v26 .cards { gap: 10px; margin-bottom: 12px; }
.ui-v26 .metric strong { font-size: 24px; margin-top: 4px; }
.ui-v26 .metric span { font-size: 12px; }
.ui-v26 .grid { gap: 10px; }
.ui-v26 .form-stack { gap: 10px; }
.ui-v26 label { font-size: 12.5px; margin-bottom: 4px; }
.ui-v26 input,
.ui-v26 select,
.ui-v26 textarea {
  min-height: 34px;
  padding: 7px 9px;
  border-radius: 8px;
  font-size: 13px;
  box-shadow: none;
}
.ui-v26 textarea { min-height: 72px; }
.ui-v26 input:focus,
.ui-v26 select:focus,
.ui-v26 textarea:focus {
  outline: 0;
  border-color: #93c5fd;
  box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.ui-v26 .btn {
  min-height: 34px;
  padding: 7px 11px;
  border-radius: 8px;
  font-size: 12.5px;
  font-weight: 700;
}
.ui-v26 .btn.small { min-height: 28px; padding: 5px 8px; font-size: 11.5px; }
.ui-v26 .btn.primary { background: #2563eb; border-color: #2563eb; }
.ui-v26 .btn.primary:hover { background: #1d4ed8; border-color: #1d4ed8; }
.ui-v26 .alert { padding: 9px 11px; border-radius: 9px; font-size: 12.5px; margin-bottom: 10px; }
.ui-v26 .muted { font-size: 12px; }
.ui-v26 .badge { min-height: 20px; padding: 2px 7px; font-size: 10.5px; }
.ui-v26 .table-wrap,
.ui-v26 .compact-table-wrap {
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
}
.ui-v26 table { font-size: 12.5px; }
.ui-v26 th,
.ui-v26 td { padding: 7px 8px; border-bottom-color: #e8eef6; }
.ui-v26 th { font-size: 10.5px; color: #64748b; background: #f8fafc; }
.ui-v26 tbody tr:hover td { background: #f8fbff; }
.ui-v26 .page-actions,
.ui-v26 .form-actions { margin-bottom: 10px; gap: 8px; }
.ui-v26 .inline-form { gap: 6px; }
.ui-v26 .document-header { margin-bottom: 10px; gap: 12px; }
.ui-v26 .document-meta { margin-bottom: 10px; }
.ui-v26 .document-meta div { padding: 8px 10px; border-radius: 9px; }
.ui-v26 .document-bottom { gap: 10px; margin-top: 10px; grid-template-columns: 1fr 360px; }
.ui-v26 .totals-card { max-width: 380px; }
.ui-v26 .totals-line { padding: 5px 0; font-size: 12.5px; }
.ui-v26 .totals-line.main { font-size: 16px; }
.ui-v26 .product-search-row { margin: 8px 0; }
.ui-v26 .product-result { padding: 8px 10px; border-radius: 9px; }
.ui-v26 .sale-lines-wrap input.qty-input { min-width: 80px; max-width: 110px; }
.ui-v26 .customer-hero-compact,
.ui-v26 .supplier-hero,
.ui-v26 .supplier-accordion-toolbar,
.ui-v26 .accordion-toolbar {
  padding: 12px 14px;
  border-radius: 12px;
}
.ui-v26 .entity-accordion,
.ui-v26 .supplier-accordion-section {
  border-radius: 11px;
  margin-bottom: 8px;
  box-shadow: 0 3px 10px rgba(15,23,42,.035);
}
.ui-v26 .entity-accordion summary,
.ui-v26 .supplier-click-header {
  padding: 10px 12px;
}
.ui-v26 .entity-accordion summary h2,
.ui-v26 .supplier-click-header h2 { font-size: 14px; }
.ui-v26 .accordion-body,
.ui-v26 .supplier-accordion-body { padding: 9px 10px 10px; }
.ui-v26 .compact-table { font-size: 12px; }
.ui-v26 .compact-table th { font-size: 10px; }
.ui-v26 .compact-table th,
.ui-v26 .compact-table td { padding: 5px 6px; }
.ui-v26 .statement-box { padding: 8px 10px; border-radius: 9px; }
.ui-v26 .statement-table { font-size: 10.5px; }
.ui-v26 .statement-table th { font-size: 9px; padding: 4px 5px; }
.ui-v26 .statement-table td { padding: 4px 5px; }
.ui-v26 .statement-header { margin-bottom: 8px; padding-bottom: 8px; }
.ui-v26 .statement-logo-box { width: 48px; height: 48px; flex-basis: 48px; border-radius: 11px; }
.ui-v26 .statement-company-block h2 { font-size: 16px; }
.ui-v26 .statement-title-box { padding: 8px 10px; border-radius: 9px; }
.ui-v26 .document-template-editor .card,
.ui-v26 .template-card { padding: 12px; }
.ui-v26 .debug-box { font-size: 12px; padding: 9px; }
.ui-v26 .finance-payment-row,
.ui-v26 .payment-row,
.ui-v26 .receipt-payment-row { gap: 8px; }
.ui-v26 .table-responsive { overflow-x: auto; }
.ui-v26 .topbar .link-button { font-size: 12px; }
@media (min-width: 1180px) {
  .ui-v26 .content { max-width: 1580px; margin: 0 auto; width: 100%; }
  .ui-v26 .content > .card,
  .ui-v26 .content > .form-card { width: 100%; }
}
@media (max-width: 980px) {
  .ui-v26 .document-bottom { grid-template-columns: 1fr; }
  .ui-v26 .totals-card { max-width: none; }
}
@media (max-width: 760px) {
  .ui-v26 .sidebar { width: 260px; }
  .ui-v26 .main { margin-left: 0; }
  .ui-v26 .content { padding: 10px; }
  .ui-v26 .topbar { height: auto; min-height: 52px; padding: 8px 10px; gap: 8px; flex-wrap: wrap; }
  .ui-v26 .topbar-title { min-width: 160px; }
  .ui-v26 .userbox { width: 100%; justify-content: space-between; }
  .ui-v26 .branch-switch-form { flex: 1; }
  .ui-v26 h1 { font-size: 20px; }
  .ui-v26 .card { padding: 10px; }
}
@media print {
  .ui-v26 .content { max-width: none; padding: 0; }
  .ui-v26 .card { box-shadow: none; }
}

/* === v0.27 POS con personalidad / interfaz comercial === */
.ui-v26 .pos-v27 {
  --pos-accent: #2563eb;
  --pos-accent-2: #06b6d4;
  --pos-soft: #eff6ff;
  --pos-border: #bfdbfe;
  --pos-ink: #0f172a;
}
.ui-v26 .pos-v27[data-doc-type="PRESUPUESTO"] { --pos-accent:#7c3aed; --pos-accent-2:#a855f7; --pos-soft:#f5f3ff; --pos-border:#ddd6fe; }
.ui-v26 .pos-v27[data-doc-type="PROFORMA_X"] { --pos-accent:#0f766e; --pos-accent-2:#14b8a6; --pos-soft:#f0fdfa; --pos-border:#99f6e4; }
.ui-v26 .pos-v27[data-doc-type="VENTA_ANTICIPADA"] { --pos-accent:#c2410c; --pos-accent-2:#f97316; --pos-soft:#fff7ed; --pos-border:#fed7aa; }
.ui-v26 .pos-v27[data-doc-type="VENTA_MOSTRADOR"] { --pos-accent:#15803d; --pos-accent-2:#22c55e; --pos-soft:#f0fdf4; --pos-border:#bbf7d0; }

.ui-v26 .pos-v27 .pos-hero {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--pos-border);
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--pos-accent-2) 18%, transparent), transparent 36%),
    linear-gradient(135deg, #ffffff 0%, var(--pos-soft) 100%);
}
.ui-v26 .pos-v27 .pos-hero::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: linear-gradient(180deg, var(--pos-accent), var(--pos-accent-2));
}
.ui-v26 .pos-v27 .pos-hero h1 { letter-spacing: -0.04em; }
.ui-v26 .pos-v27 .pos-hero .eyebrow { color: var(--pos-accent); }
.ui-v26 .pos-quick-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.ui-v26 .pos-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  border: 1px solid #e2e8f0;
  background: rgba(255,255,255,.76);
  color: #334155;
}
.ui-v26 .pos-chip::before { content:""; width:7px; height:7px; border-radius:50%; background:#94a3b8; }
.ui-v26 .chip-presupuesto::before { background:#7c3aed; }
.ui-v26 .chip-proforma::before { background:#0f766e; }
.ui-v26 .chip-anticipada::before { background:#f97316; }
.ui-v26 .chip-mostrador::before { background:#22c55e; }

.ui-v26 .pos-section-banner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  margin-bottom:10px;
  border-radius:14px;
  background: var(--pos-soft);
  border:1px solid var(--pos-border);
}
.ui-v26 .pos-section-banner strong { display:block; font-size:13px; color:var(--pos-ink); }
.ui-v26 .pos-section-banner span { display:block; font-size:11.5px; color:#64748b; }
.ui-v26 .pos-live-type,
.ui-v26 .pos-total-badge {
  display:inline-flex !important;
  align-items:center;
  white-space:nowrap;
  border-radius:999px;
  padding:6px 10px;
  background:var(--pos-accent);
  color:white !important;
  font-size:11px !important;
  font-weight:900;
  letter-spacing:.02em;
  box-shadow:0 7px 18px color-mix(in srgb, var(--pos-accent) 20%, transparent);
}

.ui-v26 .pos-doc-type-grid { grid-template-columns: repeat(4, minmax(160px, 1fr)); }
.ui-v26 .pos-v27 .doc-type-card {
  position:relative;
  min-height:94px;
  border-radius:16px;
  border:1px solid #e2e8f0;
  background:linear-gradient(180deg, #fff, #f8fafc);
  transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease, background .14s ease;
}
.ui-v26 .pos-v27 .doc-type-card:hover { transform:translateY(-2px); box-shadow:0 14px 26px rgba(15,23,42,.08); }
.ui-v26 .pos-v27 .doc-type-card::after {
  content:"";
  position:absolute;
  right:12px;
  top:12px;
  width:10px;
  height:10px;
  border-radius:50%;
  background:#cbd5e1;
}
.ui-v26 .pos-v27 .doc-type-card[data-type-card="PRESUPUESTO"]::after { background:#7c3aed; }
.ui-v26 .pos-v27 .doc-type-card[data-type-card="PROFORMA_X"]::after { background:#0f766e; }
.ui-v26 .pos-v27 .doc-type-card[data-type-card="VENTA_ANTICIPADA"]::after { background:#f97316; }
.ui-v26 .pos-v27 .doc-type-card[data-type-card="VENTA_MOSTRADOR"]::after { background:#22c55e; }
.ui-v26 .pos-v27 .doc-type-card.selected {
  border-color:var(--pos-accent);
  background:linear-gradient(135deg, #fff 0%, var(--pos-soft) 100%);
  box-shadow:0 12px 24px color-mix(in srgb, var(--pos-accent) 13%, transparent);
}
.ui-v26 .pos-v27 .doc-type-card.selected strong { color:var(--pos-accent); }

.ui-v26 .pos-search-v27 {
  display:grid;
  grid-template-columns: 1fr auto;
  gap:8px;
  align-items:center;
  padding:8px;
  border-radius:16px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
}
.ui-v26 .pos-search-box { position:relative; display:flex; align-items:center; }
.ui-v26 .pos-search-icon {
  position:absolute;
  left:12px;
  z-index:1;
  color:var(--pos-accent);
  font-weight:900;
  font-size:18px;
}
.ui-v26 .pos-search-box input {
  padding-left:38px !important;
  min-height:42px;
  border-radius:12px !important;
  border-color:#dbe4ef !important;
  background:#fff !important;
}
.ui-v26 .pos-search-button { min-height:42px; border-radius:12px; background:var(--pos-accent); border-color:var(--pos-accent); }
.ui-v26 .pos-results {
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap:8px;
  margin:10px 0;
}
.ui-v26 .pos-results .product-result {
  position:relative;
  text-align:left;
  border:1px solid #e2e8f0;
  background:#fff;
  border-radius:14px;
  padding:10px 50px 10px 11px;
  min-height:74px;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.ui-v26 .pos-results .product-result:hover {
  transform:translateY(-1px);
  border-color:var(--pos-border);
  box-shadow:0 12px 22px rgba(15,23,42,.07);
}
.ui-v26 .pos-results .product-result strong { display:block; font-size:12.5px; color:#0f172a; }
.ui-v26 .pos-results .product-result span { display:block; margin-top:4px; font-size:11px; line-height:1.35; color:#64748b; }
.ui-v26 .pos-results .product-result em {
  position:absolute;
  right:9px;
  top:50%;
  transform:translateY(-50%);
  font-style:normal;
  font-size:10px;
  font-weight:900;
  padding:5px 7px;
  border-radius:999px;
  background:var(--pos-soft);
  color:var(--pos-accent);
  border:1px solid var(--pos-border);
}
.ui-v26 .result-code {
  display:inline-flex;
  border-radius:7px;
  padding:2px 5px;
  margin-right:4px;
  background:#f1f5f9;
  color:#334155;
}

.ui-v26 .pos-v27 .modern-lines table { border-collapse:separate; border-spacing:0 6px; }
.ui-v26 .pos-v27 .modern-lines thead th { background:transparent; border-bottom:0; }
.ui-v26 .pos-v27 .modern-lines tbody tr[data-product-id] td {
  background:#fff;
  border-top:1px solid #e2e8f0;
  border-bottom:1px solid #e2e8f0;
}
.ui-v26 .pos-v27 .modern-lines tbody tr[data-product-id] td:first-child { border-left:1px solid #e2e8f0; border-radius:12px 0 0 12px; }
.ui-v26 .pos-v27 .modern-lines tbody tr[data-product-id] td:last-child { border-right:1px solid #e2e8f0; border-radius:0 12px 12px 0; }
.ui-v26 .pos-v27 .qty-input,
.ui-v26 .pos-v27 .discount-input { border-radius:10px !important; }
.ui-v26 .pos-v27 .line-warning { color:#b45309; font-weight:700; font-size:10.5px; margin-top:3px; }

.ui-v26 .pos-total-v27 {
  border:1px solid var(--pos-border);
  background:linear-gradient(180deg, #ffffff 0%, var(--pos-soft) 120%);
}
.ui-v26 .pos-total-head { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; margin-bottom:8px; }
.ui-v26 .pos-total-head h2 { margin:0; }
.ui-v26 .pos-v27 .totals-line.main {
  margin-top:6px;
  padding:10px 0;
  border-top:1px dashed var(--pos-border);
  border-bottom:1px dashed var(--pos-border);
  color:var(--pos-accent);
}
.ui-v26 .pos-v27 .flow-box {
  margin-top:10px;
  padding:10px;
  border-radius:13px;
  background:#fff;
  border:1px solid var(--pos-border);
  color:#475569;
  font-size:12px;
  line-height:1.38;
}
.ui-v26 .pos-v27 .notes-card textarea { min-height:98px; border-radius:13px; }

@media (max-width: 1180px) {
  .ui-v26 .pos-doc-type-grid { grid-template-columns: repeat(2, minmax(160px, 1fr)); }
  .ui-v26 .pos-layout { grid-template-columns: 1fr; }
  .ui-v26 .sticky-totals { position: static; }
}
@media (max-width: 680px) {
  .ui-v26 .pos-doc-type-grid,
  .ui-v26 .pos-results,
  .ui-v26 .pos-search-v27 { grid-template-columns:1fr; }
  .ui-v26 .pos-section-banner { align-items:flex-start; flex-direction:column; }
  .ui-v26 .pos-hero-actions { width:100%; display:grid; grid-template-columns:1fr 1fr; }
}

/* === v0.28 POS: total ARS destacado y sin desborde === */
.ui-v26 .pos-total-v27 {
  overflow: hidden;
  min-width: 0;
}
.ui-v26 .pos-v27 .totals-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, auto);
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.ui-v26 .pos-v27 .totals-line span,
.ui-v26 .pos-v27 .totals-line strong {
  min-width: 0;
}
.ui-v26 .pos-v27 .totals-line strong {
  max-width: 100%;
  text-align: right;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  font-variant-numeric: tabular-nums;
}
.ui-v26 .pos-v27 .totals-line.main {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px;
  text-align: center;
  align-items: center;
  margin: 10px 0;
  padding: 12px 10px;
  border: 1px solid var(--pos-border);
  border-radius: 16px;
  background: rgba(255,255,255,.82);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.55);
}
.ui-v26 .pos-v27 .totals-line.main span {
  display: block;
  text-align: center;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: #64748b;
}
.ui-v26 .pos-v27 .totals-line.main strong,
.ui-v26 .pos-v27 #total-ars {
  display: block;
  width: 100%;
  max-width: 100%;
  text-align: center !important;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.08;
  font-size: clamp(20px, 2.1vw, 28px);
  color: var(--pos-accent) !important;
}
@media (max-width: 520px) {
  .ui-v26 .pos-v27 .totals-line {
    grid-template-columns: 1fr;
    gap: 2px;
  }
  .ui-v26 .pos-v27 .totals-line strong {
    text-align: left;
  }
  .ui-v26 .pos-v27 .totals-line.main strong,
  .ui-v26 .pos-v27 #total-ars {
    text-align: center !important;
    font-size: clamp(19px, 8vw, 25px);
  }
}

/* v0.30 - Comprobante interno: total ARS legible y pagos vinculados */
.document-page .doc-totals-box .totals-line.main {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 4px;
    padding: 10px 8px;
    margin: 6px 0;
    border: 1px solid color-mix(in srgb, var(--doc-accent, #1f7a4d) 28%, #d8dee8);
    border-radius: calc(var(--doc-section-radius, 7px) + 3px);
    background: linear-gradient(180deg, color-mix(in srgb, var(--doc-accent, #1f7a4d) 10%, #ffffff), #ffffff);
}
.document-page .doc-totals-box .totals-line.main span {
    display: block;
    width: 100%;
    color: #475467;
    font-size: .78em;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 900;
}
.document-page .doc-totals-box .totals-line.main strong {
    display: block;
    width: 100%;
    max-width: 100%;
    color: var(--doc-accent, #1f7a4d);
    font-size: clamp(16px, 2.4vw, 22px);
    line-height: 1.12;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.document-page .doc-totals-box .totals-line:not(.main) strong,
.document-page .doc-totals-box .totals-line:not(.main) span {
    min-width: 0;
    overflow-wrap: anywhere;
}
.document-page .doc-payment-summary-section {
    margin-top: var(--doc-section-gap, 8px);
    border-left: 4px solid color-mix(in srgb, var(--doc-accent, #1f7a4d) 70%, #ffffff);
}
.document-page .doc-payment-summary-note {
    margin: -2px 0 8px;
    color: #667085;
    font-size: var(--doc-font-body, .86em);
    line-height: 1.35;
}
.document-page .doc-payments-table td,
.document-page .doc-payments-table th {
    vertical-align: top;
}
.document-page .doc-payments-table strong {
    color: #111827;
}
@media print {
    .document-page .doc-totals-box .totals-line.main {
        padding: 6px 4px !important;
        margin: 3px 0 !important;
        break-inside: avoid;
    }
    .document-page .doc-totals-box .totals-line.main strong {
        font-size: 12.5px !important;
        line-height: 1.08 !important;
    }
    .document-page .doc-totals-box .totals-line.main span {
        font-size: 7.6px !important;
    }
    .document-page .doc-payment-summary-section {
        break-inside: avoid;
        margin-top: var(--doc-section-gap, 5px) !important;
    }
    .document-page .doc-payment-summary-note {
        font-size: var(--doc-font-footer, 7.4px) !important;
        margin-bottom: 4px !important;
    }
    .document-page .doc-payments-table {
        font-size: var(--doc-font-table, 8px) !important;
    }
}

/* v0.32 - Nunca mostrar la cotización MANUAL_VENTA en comprobantes para cliente.
   La cotización manual de venta es interna para pesificar precios; la única cotización visible al cliente es BNA comprador para cuenta corriente. */
.internal-rate-note,
[data-internal-rate],
.printable-document .internal-rate-note {
    display: none !important;
}
@media print {
    .internal-rate-note,
    [data-internal-rate],
    .printable-document .internal-rate-note {
        display: none !important;
    }
}

/* === v0.34 Dashboard ejecutivo === */
.dash-hero-v34{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:2px 0 14px;padding:18px 20px;border-radius:22px;background:linear-gradient(135deg,#0f172a 0%,#1d4ed8 52%,#059669 100%);color:#fff;box-shadow:0 18px 45px rgba(15,23,42,.18);position:relative;overflow:hidden}
.dash-hero-v34:after{content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;border-radius:999px;background:rgba(255,255,255,.12)}
.dash-hero-v34 h1{margin:4px 0 6px;font-size:clamp(1.5rem,2.8vw,2.35rem);letter-spacing:-.04em;color:#fff}
.dash-hero-v34 p{margin:0;max-width:760px;color:rgba(255,255,255,.82);font-size:.93rem;line-height:1.45}
.dash-eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;font-weight:900;color:#bfdbfe}
.dash-filter-v34{position:relative;z-index:1;display:flex;align-items:end;gap:9px;flex-wrap:wrap;min-width:310px;justify-content:flex-end}
.dash-filter-v34 label{display:grid;gap:4px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.8)}
.dash-filter-v34 input,.dash-filter-v34 select{height:36px;border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.13);color:#fff;border-radius:12px;padding:0 10px;outline:none}
.dash-filter-v34 select option{color:#111827;background:#fff}
.dash-filter-v34 .btn{height:36px;background:#fff;color:#1d4ed8;border:0}
.dash-rate-strip-v34{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.dash-rate-strip-v34>div{border:1px solid #dbeafe;background:#fff;border-radius:16px;padding:12px 14px;box-shadow:0 10px 24px rgba(15,23,42,.05)}
.dash-rate-strip-v34 small,.dash-kpi-v34 span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#64748b}
.dash-rate-strip-v34 strong{display:block;margin-top:3px;font-size:1rem;color:#0f172a}
.dash-rate-strip-v34 span{display:block;margin-top:2px;font-size:.72rem;color:#64748b}
.dash-kpi-grid-v34{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}
.dash-kpi-grid-v34.secondary{margin-bottom:16px}
.dash-kpi-v34{position:relative;border:1px solid #e2e8f0;background:#fff;border-radius:20px;padding:16px 16px 14px;box-shadow:0 12px 28px rgba(15,23,42,.06);overflow:hidden}
.dash-kpi-v34:before{content:"";position:absolute;right:-24px;top:-28px;width:92px;height:92px;border-radius:999px;background:rgba(37,99,235,.10)}
.dash-kpi-v34 strong{display:block;margin-top:7px;font-size:clamp(1.35rem,2.1vw,2rem);letter-spacing:-.05em;color:#111827;overflow-wrap:anywhere;line-height:1.05}
.dash-kpi-v34 small{display:block;margin-top:8px;font-size:.76rem;color:#64748b;line-height:1.35}
.dash-kpi-v34.compact strong{font-size:1.35rem}
.dash-kpi-v34.kpi-sales{border-color:#bfdbfe}.dash-kpi-v34.kpi-sales:before{background:rgba(37,99,235,.13)}
.dash-kpi-v34.kpi-cash{border-color:#bbf7d0}.dash-kpi-v34.kpi-cash:before{background:rgba(5,150,105,.13)}
.dash-kpi-v34.kpi-out{border-color:#fecaca}.dash-kpi-v34.kpi-out:before{background:rgba(220,38,38,.12)}
.dash-kpi-v34.kpi-net{border-color:#fde68a}.dash-kpi-v34.kpi-net:before{background:rgba(245,158,11,.14)}
.dash-kpi-v34.warn{border-color:#fed7aa;background:#fff7ed}.dash-kpi-v34.warn strong{color:#c2410c}
.dash-main-grid-v34{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.9fr);gap:14px;margin-bottom:14px}
.dash-card-v34{border-radius:18px;border:1px solid #e2e8f0;box-shadow:0 12px 30px rgba(15,23,42,.055)}
.dash-card-head-v34{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.dash-card-head-v34 h2{margin:0;font-size:1.02rem;letter-spacing:-.02em;color:#0f172a}
.dash-card-head-v34 p{margin:3px 0 0;color:#64748b;font-size:.78rem}
.chart-card canvas{width:100%;display:block;background:linear-gradient(180deg,#fff,#f8fafc);border-radius:14px;border:1px solid #eef2f7;padding:4px}
.compact-table-v34 table{font-size:.78rem}.compact-table-v34 th{font-size:.68rem;white-space:nowrap}.compact-table-v34 td{vertical-align:middle}.right{text-align:right}.danger-text{color:#dc2626;font-weight:900}
.dash-timeline-v34{display:grid;gap:8px;max-height:365px;overflow:auto;padding-right:4px}
.dash-event-v34{display:grid;gap:2px;border:1px solid #e2e8f0;border-left:4px solid #2563eb;background:#fff;border-radius:14px;padding:9px 11px}
.dash-event-v34 span{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#2563eb}
.dash-event-v34 strong{font-size:.82rem;color:#111827;line-height:1.25}.dash-event-v34 small{font-size:.72rem;color:#64748b}
.btn.tiny{padding:3px 7px;font-size:.7rem;border-radius:9px}
@media (max-width:1100px){.dash-kpi-grid-v34,.dash-rate-strip-v34{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-main-grid-v34{grid-template-columns:1fr}.dash-hero-v34{align-items:flex-start;flex-direction:column}.dash-filter-v34{justify-content:flex-start;width:100%}}
@media (max-width:640px){.dash-kpi-grid-v34,.dash-rate-strip-v34{grid-template-columns:1fr}.dash-filter-v34{display:grid;grid-template-columns:1fr}.dash-filter-v34 .btn{width:100%}.dash-hero-v34{padding:16px}.dash-card-head-v34{display:grid}.dash-kpi-v34 strong{font-size:1.35rem}}


/* v0.35 - topbar POS/rates + exchange edit */
.nowrap{white-space:nowrap;}
.btn.small{padding:.42rem .7rem;font-size:.78rem;border-radius:10px;}
.section-head.compact{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem;}
.section-head.compact h2{margin:0 0 .2rem;font-size:1.05rem;}
.badge.soft{background:#eef6ff;color:#1d4ed8;border:1px solid #bfdbfe;border-radius:999px;padding:.34rem .7rem;font-weight:800;font-size:.75rem;}
.topbar-tools{gap:.55rem;align-items:center;}
.top-pos-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .72rem;border-radius:12px;background:linear-gradient(135deg,#2563eb,#16a34a);color:#fff;text-decoration:none;font-weight:900;box-shadow:0 6px 14px rgba(37,99,235,.18);line-height:1;}
.top-pos-btn:hover{filter:brightness(.98);transform:translateY(-1px);}
.top-pos-icon{font-size:1rem;line-height:1;}
.top-rates{display:flex;gap:.35rem;align-items:center;}
.top-rate-pill{display:flex;flex-direction:column;gap:.05rem;min-width:84px;padding:.32rem .55rem;border-radius:12px;text-decoration:none;border:1px solid #dbe4ef;background:#fff;color:#111827;line-height:1.05;}
.top-rate-pill span{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:800;}
.top-rate-pill strong{font-size:.78rem;white-space:nowrap;color:#0f172a;}
.top-rate-pill.internal{border-color:#fde68a;background:#fffbeb;}
.top-rate-pill.bna{border-color:#bbf7d0;background:#f0fdf4;}
@media (max-width: 980px){
  .top-rates{display:none;}
  .top-pos-btn span:last-child{display:none;}
  .top-pos-btn{padding:.48rem .58rem;}
}


/* v0.36 - topbar accesos rápidos + POS cliente modal */
.top-quick-nav{display:flex;align-items:center;gap:.42rem;padding:.18rem .42rem;border:1px solid #dbe4ef;background:#f8fafc;border-radius:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
.top-quick-link{display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .62rem;border-radius:12px;text-decoration:none;font-weight:900;font-size:.78rem;line-height:1;border:1px solid transparent;transition:.16s ease;white-space:nowrap}
.top-quick-link:hover{transform:translateY(-1px);filter:brightness(.99)}
.top-quick-icon{font-size:.98rem;line-height:1}.top-quick-link.pos{background:linear-gradient(135deg,#2563eb,#16a34a);color:#fff;box-shadow:0 6px 14px rgba(37,99,235,.18)}
.top-quick-link.customers{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.top-quick-link.products{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.topbar-tools{gap:.48rem}.top-rates{border-left:1px solid #e2e8f0;padding-left:.48rem}
.pos-customer-field{position:relative}.pos-customer-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.55rem;align-items:center}.pos-customer-action{white-space:nowrap;font-weight:900}.pos-customer-action.new{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.pos-customer-action.edit{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.pos-customer-action:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.4)}.pos-customer-hint{margin:.35rem 0 0;font-size:.76rem}
.pos-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.42);display:grid;place-items:center;z-index:1000;padding:1rem}.pos-modal-backdrop[hidden]{display:none}.pos-modal-card{width:min(880px,96vw);max-height:92vh;overflow:auto;background:#fff;border:1px solid #dbe4ef;border-radius:22px;box-shadow:0 28px 70px rgba(15,23,42,.24)}.pos-modal-header{position:sticky;top:0;z-index:2;background:linear-gradient(135deg,#f8fafc,#eff6ff);border-bottom:1px solid #e2e8f0;padding:1rem 1.1rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.pos-modal-header h2{margin:.15rem 0 0;font-size:1.15rem}.pos-modal-close{border:1px solid #dbe4ef;background:#fff;border-radius:12px;width:34px;height:34px;font-size:1.35rem;line-height:1;cursor:pointer}.pos-modal-body{padding:1rem 1.1rem}.pos-customer-modal-form .modal-grid{display:grid;gap:.75rem}.pos-customer-modal-form .modal-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-customer-modal-form .span-2{grid-column:span 2}.pos-customer-modal-form label{font-weight:900;font-size:.78rem;color:#334155}.pos-customer-modal-form input,.pos-customer-modal-form select{width:100%}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid #e2e8f0}.check-line{display:flex;align-items:center;gap:.45rem}.check-line input{width:auto}
@media(max-width:1180px){.top-quick-link span:last-child{display:none}.top-quick-link{padding:.46rem .55rem}.top-rates{display:none}}
@media(max-width:720px){.pos-customer-row{grid-template-columns:1fr}.pos-customer-modal-form .modal-grid.two{grid-template-columns:1fr}.pos-customer-modal-form .span-2{grid-column:auto}.pos-modal-card{width:100%;max-height:94vh}.top-quick-nav{gap:.25rem;padding:.15rem}}


/* v0.43 - Formato proforma/venta inspirado en proforma comercial simple */
.quote-like-document.sales-print-v43 {
    --quote-border: #111827;
    --quote-soft: #f8fafc;
    background: #fff;
    border-radius: 8px;
}
.quote-like-document .doc-header-modern {
    display: grid;
    grid-template-columns: 1fr 52px minmax(240px, 330px);
    gap: 0;
    align-items: stretch;
    border: 1px solid var(--quote-border);
    border-top: 1px solid var(--quote-border);
    padding: 0;
    overflow: visible;
    background: #fff;
}
.quote-like-document .doc-header-modern .doc-company-block {
    padding: 14px 16px;
    border-right: 1px solid var(--quote-border);
}
.quote-like-document .quote-letter-box {
    display: grid;
    place-items: center;
    min-height: 54px;
    border-right: 1px solid var(--quote-border);
    font-weight: 900;
    font-size: 22px;
    color: #111827;
    background: #fff;
}
.quote-like-document .doc-number-box {
    border: 0;
    border-radius: 0;
    background: #fff;
    text-align: left;
    padding: 12px 16px;
    align-content: center;
}
.quote-like-document .doc-number-box span { color: #111827; font-size: 11px; letter-spacing: .02em; }
.quote-like-document .doc-number-box strong { color: #111827; font-size: 18px; line-height: 1.15; }
.quote-like-document .doc-number-box small { font-size: 12px; color: #111827; }
.quote-like-document .doc-company-block strong { font-size: 18px; color: #111827; }
.quote-like-document .doc-company-block span { color: #111827; font-size: 12px; }
.quote-like-document .quote-customer-panel {
    border: 1px solid var(--quote-border);
    border-top: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    background: #fff;
}
.quote-like-document .quote-party-row {
    display: grid;
    grid-template-columns: 92px 1fr;
    gap: 8px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--quote-border);
}
.quote-like-document .quote-party-row span,
.quote-like-document .quote-party-grid span { color: #111827; font-weight: 700; }
.quote-like-document .quote-party-row strong { color: #111827; font-size: 14px; }
.quote-like-document .quote-party-grid {
    display: grid;
    grid-template-columns: 1.2fr 1.1fr 1fr 1fr;
}
.quote-like-document .quote-party-grid > div {
    padding: 8px 14px;
    border-right: 1px solid var(--quote-border);
    min-height: 44px;
}
.quote-like-document .quote-party-grid > div:last-child { border-right: 0; }
.quote-like-document .quote-party-grid strong { display:block; color:#111827; font-size:12px; }
.quote-like-document .quote-party-grid small { display:block; color:#475467; font-size:10px; }
.quote-like-document .doc-items-section {
    border: 1px solid var(--quote-border);
    border-top: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    min-height: 420px;
    background: #fff;
}
.quote-like-document .doc-items-section .doc-section-title {
    padding: 12px 14px;
    margin: 0;
    border-bottom: 1px solid var(--quote-border);
    color: #111827;
    background: #fff;
}
.quote-like-document .doc-items-section .table-wrap {
    border: 0;
    border-radius: 0;
}
.quote-like-document table.doc-table {
    border-collapse: collapse;
    width: 100%;
}
.quote-like-document .doc-table thead th {
    background: #fff;
    color: #111827;
    border-top: 0;
    border-bottom: 1px solid var(--quote-border);
    font-size: 12px;
    padding: 10px 12px;
}
.quote-like-document .doc-table tbody td {
    border-bottom: 0;
    background: #fff !important;
    color: #111827;
    padding: 8px 12px;
}
.quote-like-document .doc-price-footer {
    display: grid;
    grid-template-columns: 1fr 370px;
    gap: 0;
    border: 1px solid var(--quote-border);
    border-top: 0;
    margin-top: 0;
    background: #fff;
}
.quote-like-document .doc-notes-box,
.quote-like-document .doc-totals-box {
    border: 0;
    border-radius: 0;
    background: #fff;
    padding: 12px 14px;
}
.quote-like-document .doc-notes-box { border-right: 1px solid var(--quote-border); min-height: 94px; }
.quote-like-document .doc-totals-box div { padding: 7px 0; border-bottom: 0; }
.quote-like-document .doc-totals-box .main,
.quote-like-document .doc-totals-box .total {
    border: 1px solid #cbd5e1;
    border-radius: 0;
    padding: 10px 12px;
    margin: 6px 0;
    background: #fff;
    color: #111827;
    justify-content: space-between;
}
.quote-like-document .doc-totals-box .main strong,
.quote-like-document .doc-totals-box .total strong { font-size: 18px; color: #111827; }
.quote-like-document .doc-payment-summary-section,
.quote-like-document .doc-signature-grid,
.quote-like-document .doc-footer-modern {
    border-color: var(--quote-border);
    border-radius: 0;
}
.quote-like-document .doc-footer-modern { border-bottom: 1px solid var(--quote-border); }

@media print {
    .quote-like-document.sales-print-v43 {
        border: 0 !important;
        box-shadow: none !important;
        padding: 0 !important;
        color: #000 !important;
        --quote-border: #111 !important;
        font-size: 10px !important;
    }
    .quote-like-document .document-actions,
    .quote-like-document .doc-section-title.no-print,
    .quote-like-document .no-print { display: none !important; }
    .quote-like-document .doc-watermark { display: none !important; }
    .quote-like-document .doc-header-modern,
    .quote-like-document .quote-customer-panel,
    .quote-like-document .doc-items-section,
    .quote-like-document .doc-price-footer,
    .quote-like-document .doc-footer-modern {
        border-color: #111 !important;
        break-inside: avoid;
    }
    .quote-like-document .doc-header-modern {
        grid-template-columns: 1fr 38px 285px !important;
    }
    .quote-like-document .doc-header-modern .doc-company-block { padding: 8px 10px !important; }
    .quote-like-document .doc-logo { width: 44px !important; height: 44px !important; border-radius: 4px !important; }
    .quote-like-document .doc-company-block strong { font-size: 15px !important; }
    .quote-like-document .doc-company-block span { font-size: 9px !important; line-height: 1.25 !important; }
    .quote-like-document .quote-letter-box { font-size: 17px !important; min-height: 42px !important; }
    .quote-like-document .doc-number-box { padding: 8px 10px !important; }
    .quote-like-document .doc-number-box strong { font-size: 14px !important; }
    .quote-like-document .doc-number-box small { font-size: 9px !important; }
    .quote-like-document .quote-party-row { padding: 5px 10px !important; grid-template-columns: 70px 1fr !important; }
    .quote-like-document .quote-party-row strong { font-size: 10px !important; }
    .quote-like-document .quote-party-grid { grid-template-columns: 1.3fr 1.1fr 1fr 1fr !important; }
    .quote-like-document .quote-party-grid > div { padding: 5px 10px !important; min-height: 34px !important; }
    .quote-like-document .quote-party-grid span { font-size: 8px !important; }
    .quote-like-document .quote-party-grid strong { font-size: 8.5px !important; }
    .quote-like-document .quote-party-grid small { font-size: 7.5px !important; }
    .quote-like-document .doc-items-section { min-height: 132mm !important; }
    .quote-like-document .doc-items-section .doc-section-title { padding: 7px 10px !important; font-size: 8px !important; }
    .quote-like-document .doc-table thead th { padding: 6px 8px !important; font-size: 9px !important; }
    .quote-like-document .doc-table tbody td { padding: 4px 8px !important; font-size: 8.5px !important; }
    .quote-like-document .client-print-hide { display: none !important; }
    .quote-like-document .doc-price-footer { grid-template-columns: 1fr 330px !important; }
    .quote-like-document .doc-notes-box,
    .quote-like-document .doc-totals-box { padding: 7px 10px !important; }
    .quote-like-document .doc-notes-box p { font-size: 8.5px !important; }
    .quote-like-document .doc-totals-box div { padding: 3px 0 !important; font-size: 9px !important; }
    .quote-like-document .doc-totals-box .main strong,
    .quote-like-document .doc-totals-box .total strong { font-size: 13px !important; }
    .quote-like-document .doc-payment-summary-section { break-inside: avoid; }
    .quote-like-document .doc-footer-modern p { font-size: 7.8px !important; }
}

/* v0.44 - impresión compacta para comprobantes tipo proforma
   Evita que el cuerpo de artículos reserve una altura excesiva y empuje totales/pie a otra página. */
.quote-like-document.sales-print-v43 .doc-items-section {
    min-height: 180px;
}
.quote-like-document.sales-print-v43 .doc-notes-box {
    min-height: 54px;
}

@media print {
    .quote-like-document.sales-print-v43 .doc-items-section {
        min-height: 0 !important;
        break-inside: auto !important;
        page-break-inside: auto !important;
    }
    .quote-like-document.sales-print-v43 .doc-items-section .table-wrap {
        min-height: 0 !important;
    }
    .quote-like-document.sales-print-v43 .doc-items-section .doc-section-title {
        padding-top: 4px !important;
        padding-bottom: 4px !important;
    }
    .quote-like-document.sales-print-v43 .doc-table thead th {
        padding-top: 4px !important;
        padding-bottom: 4px !important;
    }
    .quote-like-document.sales-print-v43 .doc-table tbody td {
        padding-top: 3px !important;
        padding-bottom: 3px !important;
        line-height: 1.18 !important;
    }
    .quote-like-document.sales-print-v43 .doc-price-footer {
        margin-top: 0 !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
        grid-template-columns: 1fr 310px !important;
    }
    .quote-like-document.sales-print-v43 .doc-notes-box,
    .quote-like-document.sales-print-v43 .doc-totals-box {
        padding-top: 5px !important;
        padding-bottom: 5px !important;
    }
    .quote-like-document.sales-print-v43 .doc-notes-box {
        min-height: 32px !important;
    }
    .quote-like-document.sales-print-v43 .doc-totals-box div {
        padding-top: 2px !important;
        padding-bottom: 2px !important;
        line-height: 1.15 !important;
    }
    .quote-like-document.sales-print-v43 .doc-totals-box .main,
    .quote-like-document.sales-print-v43 .doc-totals-box .total {
        margin: 3px 0 !important;
        padding: 5px 8px !important;
    }
    .quote-like-document.sales-print-v43 .doc-signature-grid {
        margin-top: 2mm !important;
        gap: 2mm !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }
    .quote-like-document.sales-print-v43 .doc-signature-grid > div {
        min-height: 11mm !important;
        padding: 4px 8px !important;
    }
    .quote-like-document.sales-print-v43 .doc-footer-modern {
        margin-top: 2mm !important;
        padding: 5px 8px !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }
    .quote-like-document.sales-print-v43 .doc-footer-modern p {
        margin: 1px 0 !important;
        line-height: 1.18 !important;
    }
}

/* v0.53 - Comprobante fiscal ARCA final con QR */
.fiscal-print-v53{
    position:relative;
    background:#fff;
    color:#172033;
    font-size:12px;
    line-height:1.28;
}
.fiscal-header-box{
    display:grid;
    grid-template-columns:1.55fr 90px 1.1fr;
    gap:10px;
    border:1.5px solid #121827;
    border-radius:14px;
    padding:12px;
    align-items:stretch;
    background:linear-gradient(180deg,#ffffff,#f8fafc);
}
.fiscal-company h1{margin:0;font-size:21px;line-height:1.05;letter-spacing:-.02em;color:#0f172a}
.fiscal-company p{margin:2px 0 0;color:#475569;font-weight:700}
.fiscal-brand-row{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.fiscal-brand-mark{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#0f766e;color:#fff;font-weight:900;font-size:16px;box-shadow:0 8px 22px rgba(15,118,110,.18)}
.fiscal-company-lines{display:grid;gap:2px;color:#334155;font-size:11.2px}
.fiscal-letter-panel{border:2px solid #121827;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff}
.fiscal-letter{font-size:42px;line-height:.9;font-weight:950;color:#0f172a}
.fiscal-code{margin-top:6px;font-size:10px;font-weight:800;color:#64748b;text-transform:uppercase}
.fiscal-number-box{border-left:4px solid #0f766e;padding-left:12px;display:flex;flex-direction:column;justify-content:center;gap:3px;text-align:right}
.fiscal-number-box span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:800}
.fiscal-number-box strong{font-size:18px;color:#0f172a}
.fiscal-number-box div{font-size:16px;font-weight:900;color:#0f766e}
.fiscal-number-box small{color:#475569;font-weight:700}
.fiscal-status-strip{margin:10px 0;padding:8px 10px;border-radius:10px;font-size:12px}
.fiscal-status-strip.authorized{background:#ecfdf5;border:1px solid #bbf7d0;color:#047857}
.fiscal-status-strip.warning{background:#fff7ed;border:1px solid #fed7aa;color:#c2410c}
.fiscal-party-box{margin-top:10px;border:1px solid #cbd5e1;border-radius:12px;overflow:hidden;background:#fff}
.fiscal-party-title{background:#0f172a;color:#fff;padding:6px 10px;text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:900}
.fiscal-party-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:0;border-top:1px solid #cbd5e1}
.fiscal-party-grid>div{padding:7px 9px;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;min-height:42px}
.fiscal-party-grid>div.wide{grid-column:span 2}
.fiscal-party-grid span{display:block;color:#64748b;text-transform:uppercase;font-size:9.5px;font-weight:900;letter-spacing:.04em;margin-bottom:2px}
.fiscal-party-grid strong{color:#0f172a;font-size:12px}
.fiscal-items-box{margin-top:10px;border:1px solid #cbd5e1;border-radius:12px;overflow:hidden;background:#fff}
.fiscal-table{width:100%;border-collapse:collapse;font-size:11px}
.fiscal-table th{background:#f1f5f9;color:#0f172a;text-transform:uppercase;font-size:9.5px;letter-spacing:.04em;padding:7px;border-bottom:1px solid #cbd5e1}
.fiscal-table td{padding:7px;border-bottom:1px solid #e2e8f0;vertical-align:top}
.fiscal-table tbody tr:nth-child(even){background:#fbfdff}
.fiscal-table .right{text-align:right;white-space:nowrap}
.fiscal-bottom-grid{display:grid;grid-template-columns:1.15fr 180px 1fr;gap:10px;margin-top:10px;align-items:stretch}
.fiscal-cae-box,.fiscal-qr-box,.fiscal-totals-box{border:1px solid #cbd5e1;border-radius:12px;background:#fff;padding:10px}
.fiscal-cae-title{font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:#0f766e;margin-bottom:8px}
.fiscal-cae-row{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dashed #cbd5e1;padding:4px 0;font-size:11.5px}
.fiscal-cae-row span{color:#64748b;font-weight:800}
.fiscal-homo-note{margin-top:8px;background:#fef3c7;color:#92400e;border-radius:8px;padding:6px;font-size:10px;font-weight:800}
.fiscal-qr-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center}
.fiscal-qr-img{width:150px;height:150px;object-fit:contain}
.fiscal-qr-link{font-size:10px;color:#0f766e;font-weight:900}
.fiscal-qr-placeholder{width:145px;height:145px;display:flex;align-items:center;justify-content:center;border:1px dashed #94a3b8;border-radius:10px;color:#64748b;font-size:11px;padding:8px}
.fiscal-totals-box{display:grid;gap:5px;align-content:end}
.fiscal-totals-box>div{display:flex;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px dashed #cbd5e1}
.fiscal-totals-box span{color:#475569;font-weight:900;text-transform:uppercase;font-size:10px}
.fiscal-totals-box strong{font-size:12px;color:#0f172a}
.fiscal-total-main{background:#0f172a!important;color:#fff;border-radius:10px;padding:9px 10px!important;border-bottom:0!important;margin-top:4px}
.fiscal-total-main span,.fiscal-total-main strong{color:#fff!important;font-size:16px!important}
.fiscal-observations{margin-top:10px;border:1px solid #facc15;background:#fefce8;border-radius:10px;padding:10px}
.fiscal-observations pre{white-space:pre-wrap;margin:6px 0 0;font-size:11px}
.fiscal-print-footer{margin-top:12px;border-top:1px solid #cbd5e1;padding-top:7px;font-size:10px;color:#64748b;display:flex;justify-content:space-between;gap:10px}
.fiscal-watermark{position:absolute;inset:36% auto auto 18%;font-size:54px;transform:rotate(-18deg);font-weight:950;color:rgba(239,68,68,.08);pointer-events:none;z-index:0}
.fiscal-print-v53>*:not(.fiscal-watermark){position:relative;z-index:1}
@media print{
    .fiscal-print-v53{display:flex;flex-direction:column;min-height:calc(100vh - 12mm);font-size:10.4px!important;padding:0!important;margin:0!important;box-shadow:none!important;border:0!important}
    .fiscal-header-box{grid-template-columns:1.55fr 70px 1.05fr;gap:7px;padding:8px;border-radius:8px}
    .fiscal-brand-mark{width:34px;height:34px;border-radius:8px;font-size:13px}
    .fiscal-company h1{font-size:16px}
    .fiscal-company-lines{font-size:9.5px;gap:1px}
    .fiscal-letter{font-size:32px}.fiscal-number-box{padding-left:8px}.fiscal-number-box strong{font-size:13px}.fiscal-number-box div{font-size:12px}
    .fiscal-party-box,.fiscal-items-box,.fiscal-bottom-grid{margin-top:6px!important}
    .fiscal-party-title{padding:4px 7px;font-size:8.5px}.fiscal-party-grid>div{padding:4px 6px;min-height:28px}.fiscal-party-grid span{font-size:8px}.fiscal-party-grid strong{font-size:9.5px}
    .fiscal-table{font-size:9.4px}.fiscal-table th{font-size:8px;padding:4px}.fiscal-table td{padding:4px}
    .fiscal-bottom-grid{grid-template-columns:1.2fr 120px .95fr;gap:6px;break-inside:avoid;page-break-inside:avoid;margin-top:auto!important;padding-top:6px}
    .fiscal-cae-box,.fiscal-qr-box,.fiscal-totals-box{padding:6px;border-radius:8px}.fiscal-cae-title{font-size:8px;margin-bottom:4px}.fiscal-cae-row{font-size:9px;padding:2px 0}
    .fiscal-qr-img{width:105px;height:105px}.fiscal-totals-box>div{padding:2px 0}.fiscal-totals-box span{font-size:8px}.fiscal-totals-box strong{font-size:9.5px}.fiscal-total-main{padding:5px 7px!important}.fiscal-total-main span,.fiscal-total-main strong{font-size:12px!important}
    .fiscal-print-footer{margin-top:6px;font-size:8.5px;break-inside:avoid;page-break-inside:avoid}
    .fiscal-watermark{font-size:42px;color:rgba(239,68,68,.06)}
}


/* v0.56 - INTERLINK.sys: estética profesional de producción */
:root {
    --bg: #f3f6fb;
    --panel: #ffffff;
    --sidebar: #0f172a;
    --sidebar-soft: #17223a;
    --text: #152033;
    --muted: #64748b;
    --line: #dbe4ef;
    --primary: #1d4ed8;
    --primary-dark: #1e3a8a;
    --primary-soft: #eff6ff;
    --success: #047857;
    --warning: #b45309;
    --danger: #b91c1c;
    --shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);
    --shadow-md: 0 12px 28px rgba(15, 23, 42, .08);
    --shadow-lg: 0 20px 50px rgba(15, 23, 42, .12);
    --chart-sales: #1d4ed8;
    --chart-collections: #047857;
    --chart-payments: #92400e;
}

body.ui-v26 {
    background:
        radial-gradient(circle at top left, rgba(29, 78, 216, .07), transparent 32rem),
        linear-gradient(180deg, #f8fafc 0%, #eef3f9 100%);
    color: var(--text);
}

.ui-v26 .sidebar {
    background:
        linear-gradient(180deg, rgba(15, 23, 42, .98) 0%, rgba(17, 24, 39, .98) 48%, rgba(15, 23, 42, 1) 100%);
    border-right: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 18px 0 40px rgba(15, 23, 42, .18);
}

.ui-v26 .sidebar-brand {
    padding: 4px 2px 18px;
    border-bottom: 1px solid rgba(226, 232, 240, .12);
}

.ui-v26 .brand-logo.small {
    width: 42px;
    height: 42px;
    border-radius: 15px;
    background: linear-gradient(145deg, #dbeafe 0%, #93c5fd 42%, #1d4ed8 100%);
    color: #0f172a;
    font-weight: 950;
    letter-spacing: -.02em;
    border: 1px solid rgba(255, 255, 255, .42);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.68), 0 14px 30px rgba(37, 99, 235, .25);
}

.ui-v26 .sidebar-brand strong {
    font-size: 15px;
    letter-spacing: .01em;
    color: #f8fafc;
}

.ui-v26 .sidebar-brand span {
    color: #94a3b8;
    font-weight: 650;
}

.ui-v26 .menu {
    gap: 8px;
}

.ui-v26 .menu-group summary,
.ui-v26 .menu-item {
    border: 1px solid transparent;
    transition: background .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}

.ui-v26 .menu-group summary:hover,
.ui-v26 .menu-item:hover {
    background: rgba(255,255,255,.075);
    border-color: rgba(255,255,255,.08);
    transform: translateX(1px);
}

.ui-v26 .menu-item.active,
.ui-v26 .menu-dashboard.active,
.ui-v26 .menu-group[open] > summary {
    background: linear-gradient(135deg, rgba(37, 99, 235, .20), rgba(14, 165, 233, .10));
    border-color: rgba(147, 197, 253, .22);
    color: #ffffff;
    box-shadow: inset 3px 0 0 #60a5fa;
}

.ui-v26 .menu-icon {
    background: rgba(255, 255, 255, .08);
    color: #dbeafe;
    border: 1px solid rgba(255, 255, 255, .12);
}

.ui-v26 .topbar {
    height: 68px;
    background: rgba(255, 255, 255, .92);
    border-bottom: 1px solid rgba(219, 228, 239, .9);
    backdrop-filter: blur(16px);
    box-shadow: 0 6px 22px rgba(15, 23, 42, .045);
}

.ui-v26 .topbar-title strong {
    color: #0f172a;
    font-size: 15px;
}

.ui-v26 .topbar-title span {
    color: #64748b;
    font-weight: 700;
}

.ui-v26 .card,
.ui-v26 .stat-card,
.ui-v26 .metric,
.ui-v26 .inner-card {
    border-color: rgba(219, 228, 239, .94);
    box-shadow: var(--shadow-sm);
}

.ui-v26 .card {
    border-radius: 18px;
}

.ui-v26 .card:hover,
.ui-v26 .stat-card:hover,
.ui-v26 .metric:hover {
    box-shadow: 0 12px 26px rgba(15, 23, 42, .065);
}

.ui-v26 input,
.ui-v26 select,
.ui-v26 textarea {
    border-color: #d8e2ee;
    background: #ffffff;
    box-shadow: inset 0 1px 1px rgba(15, 23, 42, .025);
}

.ui-v26 input:focus,
.ui-v26 select:focus,
.ui-v26 textarea:focus {
    outline: 0;
    border-color: #93c5fd;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, .13);
}

.ui-v26 .btn,
.ui-v26 button.btn,
.ui-v26 a.btn {
    border-radius: 12px;
    border-color: #cfd9e7;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    color: #1e293b;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .05), inset 0 1px 0 rgba(255,255,255,.82);
    font-weight: 800;
    letter-spacing: -.01em;
}

.ui-v26 .btn:hover,
.ui-v26 button.btn:hover,
.ui-v26 a.btn:hover {
    background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
    border-color: #b8c6d8;
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(15, 23, 42, .08), inset 0 1px 0 rgba(255,255,255,.9);
}

.ui-v26 .btn.primary,
.ui-v26 button.btn.primary,
.ui-v26 a.btn.primary {
    background: linear-gradient(180deg, #2563eb 0%, #1d4ed8 100%);
    border-color: #1d4ed8;
    color: #ffffff;
    box-shadow: 0 10px 20px rgba(37, 99, 235, .20), inset 0 1px 0 rgba(255,255,255,.22);
}

.ui-v26 .btn.primary:hover,
.ui-v26 button.btn.primary:hover,
.ui-v26 a.btn.primary:hover {
    background: linear-gradient(180deg, #1d4ed8 0%, #1e40af 100%);
}

.ui-v26 .btn.danger,
.ui-v26 button.btn.danger,
.ui-v26 a.btn.danger {
    background: linear-gradient(180deg, #dc2626 0%, #b91c1c 100%);
    border-color: #b91c1c;
    color: #fff;
}

.ui-v26 .link-button {
    color: #1d4ed8;
    border-radius: 10px;
    padding: 8px 10px;
}

.ui-v26 .top-quick-nav {
    gap: 7px;
}

.ui-v26 .top-quick-link,
.ui-v26 .top-quick-link.pos,
.ui-v26 .top-quick-link.customers,
.ui-v26 .top-quick-link.products {
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%) !important;
    color: #1e293b !important;
    border: 1px solid #d8e2ee !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .05) !important;
}

.ui-v26 .top-quick-link:hover {
    background: #eef4fb !important;
    border-color: #bfdbfe !important;
}

.ui-v26 .top-quick-icon {
    filter: grayscale(.85);
    opacity: .9;
}

.ui-v26 .top-rate-pill,
.ui-v26 .top-rate-pill.internal,
.ui-v26 .top-rate-pill.bna {
    background: #f8fafc !important;
    border: 1px solid #d8e2ee !important;
    color: #1e293b !important;
    box-shadow: none !important;
}

.ui-v26 .top-rate-pill strong {
    color: #0f172a !important;
}

.ui-v26 .badge {
    border: 1px solid transparent;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.5);
}

.ui-v26 .status-approved,
.ui-v26 .badge.status-approved {
    background: #ecfdf5;
    color: #047857;
    border-color: #bbf7d0;
}

.ui-v26 .status-draft,
.ui-v26 .badge.status-draft {
    background: #f1f5f9;
    color: #475569;
    border-color: #e2e8f0;
}

.ui-v26 .status-reserved,
.ui-v26 .badge.status-reserved {
    background: #fffbeb;
    color: #92400e;
    border-color: #fde68a;
}

.ui-v26 .dash-hero-v34 {
    background:
        linear-gradient(135deg, rgba(15, 23, 42, .96), rgba(30, 41, 59, .94)),
        radial-gradient(circle at 88% 12%, rgba(96, 165, 250, .28), transparent 24rem);
    border: 1px solid rgba(148, 163, 184, .22);
    border-radius: 24px;
    box-shadow: var(--shadow-lg);
}

.ui-v26 .dash-eyebrow {
    color: #bfdbfe;
}

.ui-v26 .dash-hero-v34 h1 {
    color: #ffffff;
    letter-spacing: -.035em;
}

.ui-v26 .dash-hero-v34 p {
    color: #cbd5e1;
}

.ui-v26 .dash-filter-v34 {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: none;
}

.ui-v26 .dash-filter-v34 label {
    color: #e2e8f0;
}

.ui-v26 .dash-rate-strip-v34,
.ui-v26 .dash-kpi-v34,
.ui-v26 .dash-card-v34 {
    border-color: rgba(219, 228, 239, .95);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .055);
}

.ui-v26 .dash-rate-strip-v34 {
    background: rgba(255,255,255,.88);
    backdrop-filter: blur(8px);
}

.ui-v26 .dash-kpi-v34 {
    background: linear-gradient(180deg, #ffffff 0%, #f9fbfe 100%);
    border-radius: 18px;
    overflow: hidden;
}

.ui-v26 .dash-kpi-v34::before {
    opacity: .16;
}

.ui-v26 .dash-kpi-v34.kpi-sales::before,
.ui-v26 .dash-kpi-v34.kpi-cash::before,
.ui-v26 .dash-kpi-v34.kpi-out::before,
.ui-v26 .dash-kpi-v34.kpi-net::before {
    background: linear-gradient(135deg, #1d4ed8, transparent);
}

.ui-v26 .dash-kpi-v34.kpi-cash::before { background: linear-gradient(135deg, #047857, transparent); }
.ui-v26 .dash-kpi-v34.kpi-out::before { background: linear-gradient(135deg, #92400e, transparent); }
.ui-v26 .dash-kpi-v34.kpi-net::before { background: linear-gradient(135deg, #334155, transparent); }

.ui-v26 .dash-kpi-v34 span,
.ui-v26 .dash-kpi-v34 small,
.ui-v26 .dash-card-head-v34 p {
    color: #64748b;
}

.ui-v26 .dash-kpi-v34 strong,
.ui-v26 .dash-card-head-v34 h2 {
    color: #0f172a;
}

.ui-v26 .dash-card-v34 {
    background: #ffffff;
    border-radius: 20px;
}

.ui-v26 .dash-event-v34 {
    background: linear-gradient(180deg, #ffffff, #f8fafc);
    border-color: #d8e2ee;
}

.ui-v26 th {
    background: #f8fafc;
    color: #475569;
}

.ui-v26 tr:hover td {
    background: #fbfdff;
}

.system-info-box {
    display: block;
    padding: 12px 14px;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #d8e2ee;
    color: #1e293b;
    overflow-wrap: anywhere;
}

.system-info-box.technical-detail {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    font-size: 12px;
}

.app-footer {
    margin-top: 22px;
    padding: 16px 18px;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    border: 1px solid rgba(219, 228, 239, .9);
    border-radius: 18px;
    background: rgba(255,255,255,.74);
    color: #64748b;
    font-size: 12px;
    box-shadow: 0 6px 16px rgba(15, 23, 42, .035);
}

.app-footer div {
    display: grid;
    gap: 3px;
}

.app-footer div:last-child {
    text-align: right;
}

.app-footer strong {
    color: #0f172a;
    font-size: 13px;
}

@media (max-width: 980px) {
    .ui-v26 .top-quick-nav,
    .ui-v26 .top-rates {
        display: none;
    }
    .app-footer {
        display: grid;
    }
    .app-footer div:last-child {
        text-align: left;
    }
}

@media (max-width: 760px) {
    .ui-v26 .topbar {
        height: auto;
        min-height: 64px;
        padding-top: 10px;
        padding-bottom: 10px;
    }
    .app-footer {
        padding: 13px 14px;
        font-size: 11px;
    }
}

/* === v0.56.1 Login INTERLINK.sys + corrección contraste Dashboard === */
.interlink-auth {
    background:
        radial-gradient(circle at 18% 15%, rgba(37, 99, 235, .30), transparent 32%),
        radial-gradient(circle at 88% 80%, rgba(5, 150, 105, .22), transparent 34%),
        linear-gradient(135deg, #0f172a 0%, #172033 48%, #0b3b54 100%);
}
.auth-wrapper-modern { width: min(1120px, 100%); }
.auth-panel-modern {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(390px, .88fr);
    gap: 18px;
    align-items: stretch;
}
.auth-visual,
.auth-card-modern {
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 28px;
    box-shadow: 0 28px 90px rgba(0,0,0,.28);
}
.auth-visual {
    min-height: 560px;
    padding: 34px;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(15,23,42,.92), rgba(29,78,216,.68)),
        linear-gradient(45deg, rgba(5,150,105,.45), transparent);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.auth-visual:before,
.auth-visual:after {
    content: "";
    position: absolute;
    border-radius: 999px;
    background: rgba(255,255,255,.10);
    pointer-events: none;
}
.auth-visual:before { width: 280px; height: 280px; right: -90px; top: -90px; }
.auth-visual:after { width: 190px; height: 190px; left: -70px; bottom: -55px; }
.auth-brand-modern,
.auth-claim,
.auth-contact-card { position: relative; z-index: 1; }
.auth-brand-modern { display: flex; align-items: center; gap: 14px; }
.auth-brand-modern h1 { margin: 0; font-size: 1.55rem; letter-spacing: -.04em; }
.auth-brand-modern p { margin: 3px 0 0; color: rgba(255,255,255,.72); font-weight: 750; }
.auth-logo {
    background: linear-gradient(145deg, #ffffff, #dbeafe);
    color: #1d4ed8;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 12px 28px rgba(0,0,0,.20);
}
.auth-claim { max-width: 620px; }
.auth-claim span {
    display: inline-flex;
    padding: 7px 11px;
    border: 1px solid rgba(255,255,255,.20);
    border-radius: 999px;
    background: rgba(255,255,255,.10);
    color: #dbeafe;
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .10em;
    font-weight: 900;
}
.auth-claim h2 { margin: 18px 0 10px; font-size: clamp(2rem, 4vw, 3.35rem); line-height: 1.02; letter-spacing: -.07em; }
.auth-claim p { margin: 0; max-width: 540px; color: rgba(255,255,255,.76); font-size: 1rem; line-height: 1.55; }
.auth-contact-card {
    display: grid;
    gap: 4px;
    max-width: 560px;
    padding: 16px 18px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 18px;
    background: rgba(15,23,42,.34);
    backdrop-filter: blur(10px);
}
.auth-contact-card strong { font-size: .84rem; text-transform: uppercase; letter-spacing: .08em; color: #bfdbfe; }
.auth-contact-card span { color: rgba(255,255,255,.82); font-size: .88rem; }
.auth-card-modern {
    padding: 34px;
    background: rgba(255,255,255,.97);
    align-self: center;
}
.auth-login-title { margin-bottom: 20px; }
.auth-login-title span {
    display: inline-flex;
    margin-bottom: 10px;
    color: #1d4ed8;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .10em;
    font-weight: 900;
}
.auth-login-title h2 { margin: 0; font-size: 2rem; letter-spacing: -.05em; color: #0f172a; }
.auth-login-title p { margin: 8px 0 0; color: #64748b; line-height: 1.45; }
.login-form-modern label { color: #334155; font-size: .84rem; text-transform: uppercase; letter-spacing: .04em; }
.login-form-modern input {
    min-height: 48px;
    border-radius: 14px;
    border-color: #d8e1ec;
    background: #f8fafc;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
.login-form-modern input:focus {
    border-color: #2563eb;
    background: #fff;
    outline: 3px solid rgba(37,99,235,.12);
}
.login-submit-modern {
    min-height: 48px;
    border-radius: 14px;
    background: linear-gradient(135deg, #1d4ed8, #0f766e) !important;
    border: 0 !important;
    box-shadow: 0 14px 32px rgba(37,99,235,.22);
}
.login-help-modern { margin: -4px 0 0; color: #64748b; font-size: .82rem; line-height: 1.45; }
.auth-footer-modern {
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid #e2e8f0;
    display: grid;
    gap: 3px;
    color: #64748b;
    font-size: .78rem;
    line-height: 1.35;
}
.auth-footer-modern strong { color: #0f172a; font-size: .86rem; }

/* El input date/select del dashboard no debe quedar blanco sobre blanco en algunos navegadores. */
.dash-filter-v34 input,
.dash-filter-v34 select {
    background: #ffffff !important;
    color: #0f172a !important;
    border-color: rgba(255,255,255,.70) !important;
    box-shadow: 0 10px 24px rgba(15,23,42,.16);
    font-weight: 800;
}
.dash-filter-v34 input::-webkit-calendar-picker-indicator { opacity: .85; filter: none; }
.dash-filter-v34 input:focus,
.dash-filter-v34 select:focus {
    outline: 3px solid rgba(255,255,255,.24);
    border-color: #ffffff !important;
}
.dash-filter-v34 label { color: #eaf2ff !important; text-shadow: 0 1px 2px rgba(15,23,42,.35); }
.dash-filter-v34 .btn {
    background: linear-gradient(135deg, #ffffff, #eaf2ff) !important;
    color: #1d4ed8 !important;
    border: 1px solid rgba(255,255,255,.82) !important;
    box-shadow: 0 10px 24px rgba(15,23,42,.16);
}
@media (max-width: 860px) {
    .auth-panel-modern { grid-template-columns: 1fr; }
    .auth-visual { min-height: auto; gap: 34px; }
    .auth-card-modern { align-self: stretch; }
}
@media (max-width: 560px) {
    .auth-body { padding: 14px; }
    .auth-visual, .auth-card-modern { border-radius: 22px; padding: 22px; }
    .auth-claim h2 { font-size: 2rem; }
}
