body{background:var(--app-bg);color:#263044}.app-sidebar{width:var(--app-sidebar-width)!important;height:100vh;height:100dvh;overflow:hidden;background:#fff;border-right:1px solid #e5e9f0}.sidebar-inner{display:flex;min-height:0;flex:1;flex-direction:column;padding:1rem}.sidebar-brand,.mobile-brand,.shell-brand{display:flex;align-items:center;gap:.7rem;color:#1d2939;font-weight:700;text-decoration:none;letter-spacing:-.02em}.brand-icon{width:2.15rem;height:2.15rem;display:grid;place-items:center;border-radius:.65rem;background:#e8edff;color:var(--bs-primary);font-size:1.2rem}.sidebar-nav{display:flex;min-height:0;flex:1;flex-direction:column;gap:.2rem;margin-top:1.75rem;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.sidebar-label{margin:.9rem .7rem .35rem;color:#98a2b3;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.sidebar-link{display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;border-radius:.6rem;color:#475467;text-decoration:none;font-weight:500}.sidebar-link i{font-size:1.15rem}.sidebar-link:hover{background:#f4f6fb;color:#263044}.sidebar-link.active{background:#e8edff;color:var(--bs-primary)}.sidebar-footer{flex:0 0 auto;padding-top:1rem;border-top:1px solid #edf0f4}.company-name{display:flex;align-items:center;gap:.55rem;padding:.25rem .6rem .8rem;color:#667085;font-size:.85rem}.sidebar-user{display:flex;align-items:center;gap:.65rem;padding:.65rem .55rem}.user-avatar{width:2.1rem;height:2.1rem;display:grid;place-items:center;border-radius:50%;background:#eef2ff;color:var(--bs-primary);font-weight:700}.user-info{display:flex;flex:1;min-width:0;flex-direction:column}.user-info strong,.user-info small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-info strong{font-size:.85rem}.user-info small{color:#98a2b3;font-size:.75rem}.app-shell{min-height:100vh;margin-left:var(--app-sidebar-width)}.mobile-header{height:58px;display:flex;align-items:center;gap:.8rem;padding:.6rem 1rem;background:#fff;border-bottom:1px solid #e5e9f0}.card{border:1px solid #e5e9f0;border-radius:.8rem;box-shadow:0 1px 2px rgba(16,24,40,.03)}.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.page-head h1{font-size:1.75rem;margin:0 0 .25rem}.page-head p{color:#667085;margin:0}.table-card{overflow:hidden}.table>:not(caption)>*>*{padding:.9rem 1rem}.table thead th{background:#fafbfc;color:#667085;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(145deg,#eef2ff,#f8fafc)}.login-card{width:min(430px,100%)}.login-icon{width:3rem;height:3rem;border-radius:.8rem;display:grid;place-items:center;margin:0 auto 1rem;background:#e8edff;color:var(--bs-primary);font-size:1.5rem}.empty-state{text-align:center;padding:4rem 1rem;background:#fff;border:1px dashed #ccd3df;border-radius:.8rem}.empty-state>i{font-size:2.5rem;color:#98a2b3}.empty-state p{color:#667085;margin:1rem}@media(max-width:991.98px){.app-shell{margin-left:0}.sidebar-inner{padding-top:0}.sidebar-brand{display:none}}@media(max-width:575px){.page-head{align-items:flex-start;flex-direction:column}.page-head .btn{width:100%}}
.app-sidebar{display:flex;flex-direction:column}
@media (min-width:992px){.app-sidebar{position:fixed;inset:0 auto 0 0}}
.brand-logo{width:2.2rem;height:2.2rem;object-fit:contain;border-radius:.45rem}.branding-preview{display:flex;align-items:center;gap:.8rem;padding:.8rem;border:1px solid #e5e9f0;border-radius:.65rem}.branding-preview img{width:3.5rem;height:3.5rem;object-fit:contain}.branding-preview span{color:#667085;font-size:.85rem}
.login-logo{display:block;width:4.5rem;height:4.5rem;object-fit:contain;margin:0 auto 1rem;border-radius:.8rem}
.login-theme-toggle{position:fixed;top:1rem;right:1rem;display:flex;align-items:center;gap:.5rem}.login-page .login-card{background:var(--bs-body-bg)}[data-bs-theme=dark] .login-page{background:linear-gradient(145deg,#111827,#0b0f17)}
.theme-toggle{width:100%;display:flex;align-items:center;gap:.65rem;margin-bottom:.6rem;padding:.6rem .65rem;border:0;border-radius:.6rem;background:transparent;color:#667085;text-align:left}.theme-toggle:hover{background:#f4f6fb;color:#263044}.theme-toggle-icon{width:1.8rem;height:1.8rem;display:grid;place-items:center;border-radius:50%;background:#eef2ff;color:var(--bs-primary)}[data-bs-theme=dark] body{color:#e6eaf0}[data-bs-theme=dark] .app-sidebar,[data-bs-theme=dark] .mobile-header{background:#171c26;border-color:#2a3240}[data-bs-theme=dark] .sidebar-brand,[data-bs-theme=dark] .mobile-brand,[data-bs-theme=dark] .shell-brand{color:#f3f4f6}[data-bs-theme=dark] .sidebar-link{color:#aeb8c7}[data-bs-theme=dark] .sidebar-link:hover,[data-bs-theme=dark] .theme-toggle:hover{background:#222a37;color:#fff}[data-bs-theme=dark] .sidebar-link.active{background:#25345f;color:#9db4ff}[data-bs-theme=dark] .sidebar-footer{border-color:#2a3240}[data-bs-theme=dark] .company-name,[data-bs-theme=dark] .theme-toggle{color:#aeb8c7}[data-bs-theme=dark] .theme-toggle-icon,[data-bs-theme=dark] .user-avatar{background:#25345f;color:#b8c7ff}[data-bs-theme=dark] .table thead th{background:#191f2a;color:#9aa6b6}[data-bs-theme=dark] .empty-state{background:#171c26;border-color:#394354}
.movement-type-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.movement-type-option{display:flex;align-items:center;gap:.75rem;padding:1rem;border:2px solid var(--bs-border-color);border-radius:.8rem;cursor:pointer;transition:.15s ease}.movement-type-option i{font-size:1.8rem}.movement-type-option span{display:flex;flex-direction:column}.movement-type-option strong{font-size:1rem}.movement-type-option small{color:var(--bs-secondary-color)}.movement-type-option.income i{color:var(--bs-success)}.movement-type-option.expense i{color:var(--bs-danger)}.btn-check:checked+.movement-type-option.income{border-color:var(--bs-success);background:rgba(var(--bs-success-rgb),.1)}.btn-check:checked+.movement-type-option.expense{border-color:var(--bs-danger);background:rgba(var(--bs-danger-rgb),.1)}.movement-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:999px;font-size:.78rem;font-weight:600}.movement-badge.income{color:var(--bs-success);background:rgba(var(--bs-success-rgb),.1)}.movement-badge.expense{color:var(--bs-danger);background:rgba(var(--bs-danger-rgb),.1)}
.grade-badge{display:inline-grid;min-width:2rem;place-items:center;padding:.25rem .45rem;border-radius:.5rem;background:#eef2ff;color:var(--bs-primary);font-weight:700}.unit-code{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;border-radius:.65rem;background:var(--bs-tertiary-bg)}
.server-table-toolbar,.server-table-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem}.server-table-toolbar{border-bottom:1px solid var(--bs-border-color)}.server-table-toolbar .input-group{max-width:32rem}.server-table-toolbar [data-table-size]{width:auto}.server-table-footer{min-height:4rem;border-top:1px solid var(--bs-border-color);color:var(--bs-secondary-color);font-size:.875rem}.table-card.is-loading{cursor:progress}.table-card [data-table-body],.table-card.is-loading [data-table-body]{opacity:1;transition:none}@media(max-width:575px){.server-table-toolbar{align-items:stretch;flex-direction:column}.server-table-toolbar .input-group{max-width:none}.server-table-toolbar [data-table-size]{width:100%}}
/* Shared Select2 theme. Size classes also travel with detached dropdowns. */
.select2-container--bootstrap-app { min-width: 0; font-size: 1rem; }
.select2-container--bootstrap-app .select2-selection {
  display: flex;
  align-items: center;
  min-height: calc(1.5em + .75rem + 2px);
  height: auto;
  padding: .375rem .75rem;
  border: var(--bs-border-width) solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
}
.select2-container--bootstrap-app .select2-selection--single { padding-right: 2.25rem; }
.select2-container--bootstrap-app .select2-selection--single .select2-selection__rendered { padding: 0; color: inherit; line-height: 1.5; }
.select2-container--bootstrap-app .select2-selection__arrow { position: absolute; inset: 0 .75rem 0 auto; display: grid; align-items: center; }
.select2-container--bootstrap-app .select2-selection__arrow b { width: .5rem; height: .5rem; border: solid var(--bs-body-color); border-width: 0 1px 1px 0; transform: translateY(-.125rem) rotate(45deg); }
.select2-container--bootstrap-app.select2-container--open .select2-selection__arrow b { transform: translateY(.125rem) rotate(225deg); }
.select2-container--bootstrap-app.select2-container--focus .select2-selection,
.select2-container--bootstrap-app.select2-container--open .select2-selection { border-color: #86b7fe; box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .25); }
.select2-container--bootstrap-app .select2-dropdown { border-color: var(--bs-border-color); background: var(--bs-body-bg); color: var(--bs-body-color); border-radius: var(--bs-border-radius); }
.select2-container--bootstrap-app .select2-search__field { width: 100%; padding: .375rem .75rem; border: var(--bs-border-width) solid var(--bs-border-color) !important; border-radius: var(--bs-border-radius); background: var(--bs-body-bg); color: var(--bs-body-color); font: inherit; }
.select2-container--bootstrap-app .select2-results__option[aria-selected=true] { background: var(--bs-secondary-bg); color: var(--bs-body-color); }
.select2-container--bootstrap-app .select2-results__option--highlighted[aria-selected] { background: var(--bs-primary); color: #fff; }
.select2-container--bootstrap-app .select2-results__option[aria-disabled=true] { color: var(--bs-secondary-color); }
.select2-container--bootstrap-app.select2-container--disabled .select2-selection { background: var(--bs-secondary-bg); cursor: not-allowed; opacity: 1; }
.select2-container--bootstrap-app .select2-selection--sm,
.select2-container--bootstrap-app .select2-dropdown--sm { font-size: .875rem; border-radius: var(--bs-border-radius-sm); }
.select2-container--bootstrap-app .select2-selection--sm { min-height: calc(1.5em + .5rem + 2px); padding-top: .25rem; padding-bottom: .25rem; }
.select2-container--bootstrap-app .select2-dropdown--sm .select2-search__field,
.select2-container--bootstrap-app .select2-dropdown--sm .select2-results__option { padding: .25rem .5rem; line-height: 1.5; }
.select2-container--bootstrap-app .select2-selection--multiple { flex-wrap: wrap; gap: .25rem; }
.select2-container--bootstrap-app .select2-selection--multiple .select2-selection__rendered { width: 100%; min-width: 0; display: flex; flex-wrap: wrap; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.select2-container--bootstrap-app .select2-selection__choice { max-width: 100%; white-space: normal; overflow-wrap: anywhere; padding: 0 .35rem; border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-sm); background: var(--bs-secondary-bg); }
.select2-container--bootstrap-app .select2-selection__choice__remove { margin-right: .25rem; cursor: pointer; }
.select2-container--bootstrap-app .select2-search--inline { flex: 1 0 8rem; min-width: 0; }
.select2-container--bootstrap-app .select2-search--inline .select2-search__field { width: 100% !important; min-width: 0; margin: 0; padding: 0; border: 0 !important; }
select.d-none + .select2-container,
select[hidden] + .select2-container,
select[aria-hidden="true"]:not(.select2-hidden-accessible) + .select2-container { display: none !important; }
select.is-invalid + .select2-container .select2-selection,
.was-validated select:invalid + .select2-container .select2-selection { border-color: var(--bs-form-invalid-border-color); }
.server-table-toolbar [data-table-size] + .select2-container { flex: 0 0 5.5rem; width: 5.5rem !important; }
@media (max-width: 575px) { .server-table-toolbar [data-table-size] + .select2-container { flex-basis: auto; width: 100% !important; } }
.input-group > select + .select2-container { flex: 1 1 auto; width: 1% !important; }
.input-group > :not(select):not(.select2-container) + select + .select2-container .select2-selection { border-start-start-radius: 0; border-end-start-radius: 0; }
.input-group > select + .select2-container:not(:last-child) .select2-selection { border-start-end-radius: 0; border-end-end-radius: 0; }
.select-entity-header>.form-label{flex:0 0 auto;max-width:100%}.select-entity-actions{white-space:nowrap}
.filepond--root{margin-bottom:.5rem;font-family:inherit}.filepond--panel-root{border:1px dashed var(--bs-border-color);background:var(--bs-tertiary-bg)}.filepond--drop-label{color:var(--bs-body-color)}.filepond--label-action{color:var(--bs-primary);text-decoration:none}.filepond--label-action:hover{text-decoration:underline}.filepond--file{background:var(--bs-primary)}.filepond--file-info-main,.filepond--file-info-sub{color:#fff}.filepond--credits{display:none}
.table tbody tr[data-detail-url]{cursor:pointer}.table tbody tr[data-detail-url]:hover>*{background:var(--bs-tertiary-bg)}.record-detail{display:grid;gap:1.5rem}.record-detail-section{padding:1rem;border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius-lg);background:var(--bs-tertiary-bg)}.record-detail-section h2{margin-bottom:1rem;font-size:.75rem;letter-spacing:.05em}.record-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.5rem}.record-detail-item{min-width:0}.record-detail-item-wide{grid-column:1/-1}.record-detail-item dt{margin-bottom:.2rem;color:var(--bs-secondary-color);font-size:.78rem;font-weight:600}.record-detail-item dd{margin:0;overflow-wrap:anywhere;white-space:normal}.record-detail-table{margin:0 -1rem -1rem}.record-detail-table .table>:not(caption)>*>*{padding:.7rem 1rem}.record-detail-table td{overflow-wrap:anywhere}@media(max-width:575.98px){.record-detail-grid{grid-template-columns:1fr}.record-detail-item-wide{grid-column:auto}.record-detail-table{margin:0}.record-detail-table thead{display:none}.record-detail-table tbody,.record-detail-table tr,.record-detail-table td{display:block}.record-detail-table tr{padding:.35rem 0;border-bottom:1px solid var(--bs-border-color)}.record-detail-table tr:last-child{border-bottom:0}.record-detail-table td{display:grid;grid-template-columns:minmax(7rem,40%) minmax(0,1fr);gap:.75rem;padding:.35rem 0!important;border:0}.record-detail-table td::before{content:attr(data-label);text-align:left;color:var(--bs-secondary-color);font-size:.78rem;font-weight:600}.record-detail-table td[colspan]{display:block;text-align:center!important}.record-detail-table td[colspan]::before{content:none}}
.dashboard-page-head{margin-bottom:.75rem}.dashboard-page-title{display:flex;align-items:baseline;gap:.75rem}.dashboard-page-title h1{margin:0}.dashboard-page-title span{color:var(--bs-secondary-color);font-size:.82rem}.dashboard-section{margin-top:1rem}.dashboard-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.45rem}.dashboard-section-head h2{margin:0;font-size:1rem}.dashboard-section-head small{color:var(--bs-secondary-color)}.dashboard-section a{font-size:.8rem;text-decoration:none}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-kpi{display:flex;min-width:0;min-height:6.65rem;align-items:flex-start;flex-direction:column;padding:.8rem 1rem;border-left:1px solid var(--bs-border-color)}.dashboard-kpi:first-child{border-left:0}.dashboard-kpi>span{color:var(--bs-secondary-color);font-size:.76rem;font-weight:600}.dashboard-kpi>strong,.dashboard-kpi-currencies strong{font-size:1.35rem;line-height:1.2}.dashboard-kpi>strong{margin-top:.4rem}.dashboard-kpi>small{margin-top:auto;color:var(--bs-secondary-color);font-size:.74rem}.dashboard-kpi-primary{box-shadow:inset 3px 0 var(--bs-primary)}.dashboard-kpi-currencies{display:grid;gap:.25rem;margin-top:.35rem}.dashboard-kpi-currencies>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:.2rem .5rem}.dashboard-kpi-currencies small{color:var(--bs-secondary-color);font-size:.72rem}.dashboard-chart-card .card-body{padding:.75rem 1rem .35rem}.dashboard-chart-card h3{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin:0;font-size:.9rem}.dashboard-chart-card h3 span{color:var(--bs-secondary-color);font-size:.7rem;font-weight:500}.dashboard-chart{min-height:230px}.dashboard-chart.is-empty{display:grid;place-items:center}.dashboard-chart.is-empty>div{display:flex;align-items:center;flex-direction:column;gap:.4rem;color:var(--bs-secondary-color);font-size:.8rem;text-align:center}.dashboard-chart.is-empty i{font-size:1.4rem}.dashboard-ranking-column{padding:.75rem 1rem}.dashboard-ranking-column+.dashboard-ranking-column{border-left:1px solid var(--bs-border-color)}.dashboard-ranking-head,.dashboard-inline-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.dashboard-ranking-head h3,.dashboard-inline-head h3{margin:0;font-size:.88rem}.dashboard-ranking-list{display:grid;margin:.35rem 0 0;padding:0;counter-reset:dashboard-rank;list-style:none}.dashboard-ranking-list li{display:grid;grid-template-columns:1.25rem minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.38rem 0;border-top:1px solid var(--bs-border-color);counter-increment:dashboard-rank}.dashboard-ranking-list li::before{content:counter(dashboard-rank);color:var(--bs-secondary-color);font-size:.72rem;font-weight:700}.dashboard-ranking-list span{display:flex;min-width:0;flex-direction:column}.dashboard-ranking-list strong{overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.dashboard-ranking-list small{color:var(--bs-secondary-color);font-size:.7rem}.dashboard-ranking-list b{font-size:.76rem}.dashboard-operation-card{overflow:hidden}.dashboard-operation-group{padding:.75rem 1rem}.dashboard-stock-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:.5rem}.dashboard-stock-grid>div{display:grid;grid-template-columns:auto 1fr;gap:0 .4rem;padding:.2rem .75rem;border-left:1px solid var(--bs-border-color)}.dashboard-stock-grid>div:first-child{padding-left:0;border-left:0}.dashboard-stock-grid strong{grid-row:1/3;font-size:1.35rem}.dashboard-stock-grid span{font-size:.76rem;font-weight:600}.dashboard-stock-grid small{color:var(--bs-secondary-color);font-size:.68rem}.dashboard-purchase-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.55rem 1rem;border-top:1px solid var(--bs-border-color);background:var(--bs-tertiary-bg)}.dashboard-purchase-row>div:first-child{display:flex;align-items:baseline;gap:.4rem}.dashboard-purchase-row strong{font-size:1.1rem}.dashboard-purchase-row span{color:var(--bs-secondary-color);font-size:.76rem}.dashboard-purchase-totals{display:flex;gap:1rem}.dashboard-purchase-totals b{color:var(--bs-body-color)}.dashboard-inline-head{padding:.65rem 1rem;border-bottom:1px solid var(--bs-border-color)}.dashboard-finance-card .card-body{padding:.25rem 1rem}.dashboard-finance-row{display:grid;grid-template-columns:3rem minmax(0,1fr);gap:.5rem;align-items:center;padding:.48rem 0;border-bottom:1px solid var(--bs-border-color)}.dashboard-finance-row:last-child{border-bottom:0}.dashboard-finance-row>div{display:flex;justify-content:space-between;gap:.75rem}.dashboard-finance-row>div span{color:var(--bs-secondary-color);font-size:.74rem}.dashboard-finance-row>div strong{font-size:.8rem}.dashboard-accounts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-account{min-width:0;padding:.48rem 1rem;border-bottom:1px solid var(--bs-border-color)}.dashboard-account:nth-child(odd){border-right:1px solid var(--bs-border-color)}.dashboard-account span{display:block;overflow:hidden;color:var(--bs-secondary-color);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.dashboard-account strong{display:block;margin-top:.1rem;font-size:.92rem}.dashboard-empty{margin:.5rem 0;color:var(--bs-secondary-color);font-size:.8rem}@media(max-width:991.98px){.dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-kpi:nth-child(odd){border-left:0}.dashboard-kpi:nth-child(n+3){border-top:1px solid var(--bs-border-color)}.dashboard-ranking-column+.dashboard-ranking-column{border-top:1px solid var(--bs-border-color);border-left:0}.dashboard-stock-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.dashboard-stock-grid>div:nth-child(3){padding-left:0;border-left:0}.dashboard-finance-row{grid-template-columns:3rem minmax(0,1fr)}}@media(max-width:575.98px){.dashboard-page-head{align-items:stretch}.dashboard-page-title{justify-content:space-between}.dashboard-section{margin-top:.8rem}.dashboard-section-head small{display:none}.dashboard-kpi-grid{grid-template-columns:1fr}.dashboard-kpi{min-height:auto;padding:.7rem .85rem;border-top:1px solid var(--bs-border-color);border-left:0}.dashboard-kpi:first-child{border-top:0}.dashboard-kpi>small{margin-top:.25rem}.dashboard-chart{min-height:220px}.dashboard-stock-grid{grid-template-columns:1fr 1fr}.dashboard-stock-grid>div{display:flex;align-items:baseline;flex-wrap:wrap;padding:.25rem 0;border:0}.dashboard-stock-grid strong{font-size:1.15rem}.dashboard-purchase-row{grid-template-columns:1fr auto}.dashboard-purchase-totals{grid-column:1/-1;grid-row:2}.dashboard-accounts-grid{grid-template-columns:1fr}.dashboard-account:nth-child(odd){border-right:0}.dashboard-finance-row{grid-template-columns:1fr}.dashboard-finance-row>div{padding-left:.25rem}.dashboard-ranking-list li{grid-template-columns:1.25rem minmax(0,1fr)}.dashboard-ranking-list b{grid-column:2}}

.counter-cart-shortcut{position:fixed;right:1rem;bottom:1rem;z-index:1020;min-height:44px}#counterSelection{scroll-margin-top:1rem}@media(max-width:1199.98px){body:has([data-sale-form]) .app-shell{padding-bottom:4rem}}

[data-bs-theme="dark"] .counter-catalog .btn-outline-primary{color:var(--bs-primary-text-emphasis);border-color:var(--bs-primary-text-emphasis)}[data-bs-theme="dark"] .counter-catalog .server-table-card-highlight{color:var(--bs-primary-text-emphasis)}

[data-counter-variants] .btn-outline-secondary{color:var(--bs-body-color);border-color:var(--bs-border-color)}[data-model-variant-editor] .form-check-label{min-height:32px;display:inline-flex;align-items:center}

.image-gallery-main { display:block; width:100%; padding:.5rem; color:var(--bs-body-color); }
.image-gallery-main img { display:block; width:100%; height:240px; object-fit:contain; }
.image-gallery-thumbs { display:flex; gap:.5rem; overflow-x:auto; padding:.25rem; }
.image-gallery-thumbs img { object-fit:contain; }
.image-gallery-thumbs [aria-pressed="true"] { outline:2px solid var(--bs-primary); outline-offset:1px; }
.image-editor-preview { width:100%; height:110px; object-fit:contain; background:var(--bs-tertiary-bg); border-radius:.25rem; }
.image-choice { display:flex; align-items:center; gap:.5rem; min-height:44px; cursor:pointer; font-size:.875rem; }
.image-viewer { width:min(960px,96vw); max-height:96dvh; padding:1rem; border:1px solid var(--bs-border-color); border-radius:.75rem; background:var(--bs-body-bg); color:var(--bs-body-color); }
.image-viewer::backdrop { background:rgba(0,0,0,.78); }
.image-viewer > img { width:100%; height:min(65dvh,650px); object-fit:contain; }
@media(max-width:575.98px) { .image-gallery-main img { height:200px; } .image-viewer { padding:.75rem; } }

/* Simple section menus share Bootstrap's light/dark colors. */
.navigation-choice { color: var(--bs-body-color); transition: border-color .15s ease; }
.navigation-choice:hover { color: var(--bs-body-color); border-color: var(--bs-primary); }

/* Icon-only actions keep every Bootstrap intent while enforcing a circular target. */
.btn.btn-icon {
  --app-btn-icon-size: 44px;
  --bs-btn-padding-x: 0;
  --bs-btn-padding-y: 0;
  display: inline-grid;
  width: var(--app-btn-icon-size);
  min-width: var(--app-btn-icon-size);
  height: var(--app-btn-icon-size);
  min-height: var(--app-btn-icon-size);
  flex: 0 0 var(--app-btn-icon-size);
  place-items: center;
  padding: 0;
  border-radius: 50%;
  line-height: 1;
}

.btn.btn-icon.btn-sm { --app-btn-icon-size: 36px; }
.btn.btn-icon.btn-lg { --app-btn-icon-size: 52px; }
.btn.btn-icon > i { margin: 0; font-size: 1.1em; line-height: 1; }
@media (max-width: 767.98px) {
  .btn.btn-icon.btn-sm { --app-btn-icon-size: 44px; }
}
.navigation-choice:focus-visible { outline: 3px solid var(--bs-primary); outline-offset: 3px; }

/* Desktop preference leaves the mobile menu unchanged. */
@media (min-width: 992px) {
  .sidebar-hidden .app-sidebar { display: none !important; }
  .sidebar-hidden .app-shell { margin-left: 0; }
}
@media print {
  [data-sidebar-toggle] { display: none !important; }
}

/* Keep one visible brand when the desktop sidebar is collapsed. */
.shell-brand {
  display: none;
  min-width: 0;
  max-width: 100%;
}
.shell-brand .brand-logo,
.shell-brand .brand-icon {
  flex-shrink: 0;
}
.shell-brand > span:last-child {
  overflow-wrap: anywhere;
}
@media (min-width: 992px) {
  .sidebar-hidden .shell-brand { display: flex; }
}

/* Cabecera operativa compacta: referencia monetaria y utilidades globales. */
.app-topbar {
  display: flex;
  min-height: 4rem;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .3rem 1rem .3rem .5rem;
  border-bottom: 1px solid var(--bs-border-color);
  background: var(--app-bg);
}
.app-topbar-start {
  display: flex;
  min-width: 0;
  flex: 0 1 auto;
  align-items: center;
  gap: .5rem;
}
.app-exchange {
  display: flex;
  min-width: 0;
  flex: 0 1 auto;
  max-width: min(32rem, 100%);
  align-items: center;
  gap: .55rem;
  padding-left: .75rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 999px;
  background: var(--bs-body-bg);
  box-shadow: 0 1px 2px rgba(16,24,40,.03);
  font-size: .875rem;
  font-weight: 600;
  overflow: hidden;
}
.app-exchange-button {
  min-height: 2.125rem;
  color: var(--bs-body-color);
  cursor: pointer;
  text-align: left;
}
.app-exchange-button:hover {
  border-color: var(--bs-primary);
  background: var(--bs-primary-bg-subtle);
}
.app-exchange-button:focus-visible {
  outline: 3px solid var(--app-accent);
  outline-offset: 2px;
}
.app-exchange-label {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.app-exchange [data-exchange-reference] {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: .35rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.app-exchange-rate,
.app-exchange-status { flex: 0 0 auto; }
.app-exchange-meta {
  overflow: hidden;
  color: var(--bs-secondary-color);
  font-size: .75rem;
  font-weight: 500;
  text-overflow: ellipsis;
}
.app-topbar-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: .55rem;
  margin-left: auto;
}
.app-icon-button {
  width: 2.125rem;
  height: 2.125rem;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--bs-border-color);
  border-radius: 50%;
  background: var(--bs-body-bg);
  color: var(--bs-secondary-color);
  font-size: 1.1rem;
}
.app-icon-button:hover,
.app-icon-button:focus-visible {
  border-color: var(--bs-primary);
  color: var(--bs-primary);
}
.app-icon-button .theme-toggle-icon {
  display: contents;
}
@media (max-width: 991.98px) {
  .app-topbar { min-height: 2.75rem; padding: .3rem .75rem; }
  .app-topbar [data-sidebar-toggle] { display: none; }
}
@media (max-width: 575.98px) {
  .app-topbar { gap: .5rem; padding-inline: .75rem; }
  .app-exchange { gap: .35rem; padding-left: .4rem; font-size: .8rem; }
  .app-exchange-label { display: none; }
  .app-topbar-actions { gap: .35rem; }
  .app-icon-button { width: 2.35rem; height: 2.35rem; }
}

.financial-amount-badge{font-size:.95rem;padding:.5em .7em;white-space:normal;text-align:start;line-height:1.35;overflow-wrap:anywhere}

/* Consulta operativa de stock por variante y depósito. */
.stock-page-head h1{display:flex;align-items:center;gap:.55rem}.stock-page-actions{justify-content:flex-end}.stock-toolbar-options [data-table-filter]{min-width:13rem}.stock-table th:first-child{min-width:12rem}.stock-table th:nth-child(2){min-width:6rem}.stock-table th{white-space:nowrap}.stock-product-cell{display:flex;align-items:center;gap:.6rem;min-width:0}.stock-product-thumb{display:inline-flex;width:2.5rem;height:2.5rem;flex:0 0 2.5rem;align-items:center;justify-content:center;overflow:hidden;padding:0;border:1px solid var(--bs-border-color);border-radius:var(--app-radius-control);background:var(--bs-tertiary-bg)}.stock-product-thumb img{width:100%;height:100%;object-fit:cover}.stock-product-thumb:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}.stock-product-name{min-width:0;font-weight:400}@media(max-width:767.98px){.stock-toolbar-options{width:100%}.stock-toolbar-options .form-select{flex:1 1 10rem}.stock-page-actions{width:100%}.stock-page-actions>*{flex:1 1 auto}}

.customer-registration-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border-color:var(--bs-border-color);box-shadow:none}.customer-registration-stat{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.25rem 1rem;min-width:0;padding:.9rem 1rem;border-left:1px solid var(--bs-border-color)}.customer-registration-stat:first-of-type{border-left:0}.customer-registration-stat>span{font-size:.78rem;font-weight:650}.customer-registration-stat>strong{grid-row:1/3;grid-column:2;font-size:1.7rem;line-height:1;color:var(--bs-body-color)}.customer-registration-stat>small{color:var(--bs-secondary-color);font-size:.72rem}.customer-registration-stat-current{box-shadow:inset 3px 0 var(--bs-primary)}.iti{display:block;width:100%}.iti .form-control{width:100%}.iti__country-container{color:var(--bs-body-color)}.iti__selected-country,.iti__country-selector,.iti__search-input{background:var(--bs-body-bg);color:var(--bs-body-color)}.iti__country{color:var(--bs-body-color)}.iti__country.iti__highlight{background:var(--bs-tertiary-bg)}.iti__dropdown-content{border-color:var(--bs-border-color);background:var(--bs-body-bg);box-shadow:var(--bs-box-shadow)}.iti__search-input{border-color:var(--bs-border-color)}@media(max-width:575.98px){.customer-registration-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-registration-stat{padding:.8rem .85rem}.customer-registration-stat:nth-of-type(3){grid-column:1/-1;border-top:1px solid var(--bs-border-color);border-left:0}.customer-registration-stat>strong{font-size:1.35rem}}

/* Panel declarativo de filtros para tablas server-side. */
#stockTable{overflow:visible}.stock-toolbar{position:relative;overflow:visible}.stock-toolbar-search{display:flex;flex:1 1 48rem;align-items:center;gap:.55rem;min-width:0}.stock-search-group{flex:1 1 32rem;max-width:48rem!important;min-width:14rem}.table-filter-panel{position:static}.table-filter-panel>summary{list-style:none}.table-filter-panel>summary::-webkit-details-marker{display:none}.table-filter-trigger{display:flex;align-items:center;gap:.5rem;border-color:var(--bs-border-color);border-radius:var(--bs-border-radius);background:var(--bs-body-bg);color:var(--bs-body-color);white-space:nowrap}.table-filter-trigger:focus-visible{position:relative;z-index:2}.table-filter-popover{position:absolute;z-index:1040;top:calc(100% + .35rem);left:1rem;width:min(32rem,calc(100% - 2rem));max-height:min(50vh,20rem);overflow-y:auto;border:1px solid var(--bs-border-color);border-radius:.85rem;background:var(--bs-body-bg);box-shadow:0 .75rem 1.75rem rgba(16,24,40,.16)}.table-filter-popover-head,.table-filter-actions{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.55rem .75rem}.table-filter-popover-head{position:sticky;z-index:1;top:0;border-bottom:1px solid var(--bs-border-color);background:var(--bs-body-bg)}.table-filter-popover-head strong{font-size:.95rem}.table-filter-group{padding:.6rem .75rem;border:0;border-bottom:1px solid var(--bs-border-color)}.table-filter-group legend{float:none;width:auto;margin:0 0 .45rem;color:var(--bs-secondary-color);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.table-filter-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.table-filter-option{display:flex;min-height:34px;align-items:center;justify-content:center;gap:.3rem;padding:.36rem .55rem;border:1px solid var(--bs-border-color);border-radius:999px;background:var(--bs-body-bg);color:var(--bs-body-color);font-size:.875rem;font-weight:600;line-height:1.15}.table-filter-option i{visibility:hidden;color:var(--bs-primary);font-size:1rem}.table-filter-option:hover,.table-filter-option:focus-visible{border-color:var(--bs-primary)}.table-filter-option.active{border-color:var(--bs-primary);background:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis)}.table-filter-option.active i{visibility:visible}.table-filter-actions{position:sticky;bottom:0;background:var(--bs-body-bg)}
#stockTable [data-table-body],#stockTable [data-table-cards],#stockTable.is-loading [data-table-body],#stockTable.is-loading [data-table-cards]{opacity:1;transition:none}#stockTable.is-loading{cursor:progress}
@media(max-width:767.98px){.stock-toolbar-search{width:100%;flex-basis:100%;align-items:stretch;flex-direction:column}.stock-search-group{width:100%;max-width:none!important;flex:0 0 auto;flex-wrap:nowrap}.stock-search-group>[data-table-search]{width:1%;min-width:0}.stock-toolbar .table-filter-trigger{justify-content:center;width:100%}.table-filter-popover{top:calc(100% + .5rem);left:.75rem;width:calc(100% - 1.5rem);max-height:42vh;border-radius:.85rem}.table-filter-options{grid-template-columns:repeat(2,minmax(0,1fr))}.table-filter-option{justify-content:flex-start}}

/* Editor de precios: anchos acotados sin cambiar controles ni máscaras. */
.price-currency-select { max-width: 12rem; }
/* Editor del modelo: filas comparables, sin tarjetas anidadas. */
.product-prices-card { box-shadow: none; }
.product-prices-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding: .75rem 1rem; border-top: 1px solid var(--bs-border-color); }
.product-prices-general { max-width: 48rem; }
.variant-price-editor { container-type: inline-size; min-width: 0; }
.variant-price-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; padding: .75rem 1rem; }
.variant-price-row { border: 0; border-top: 1px solid var(--bs-border-color); margin: 0; padding: .75rem 1rem; min-width: 0; }
.variant-price-fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: .5rem; align-items: end; }
.variant-price-fields > div { min-width: 0; }
.variant-price-fields .form-label { margin-bottom: .25rem; }
.variant-price-fields [data-price-cell="equipment_condition"],
.variant-price-fields [data-price-cell="storage"] { grid-column: span 6; }
.variant-price-fields [data-price-cell="color"] { grid-column: span 8; }
.variant-price-fields [data-price-cell="grade_code"] { grid-column: span 4; }
.variant-price-fields [data-price-cell="sale_price"],
.variant-price-fields [data-price-cell="minimum_sale_price"] { grid-column: span 5; }
.variant-price-action { grid-column: span 2; justify-self: end; }
.variant-price-action .btn { min-width: 44px; min-height: 44px; }
.variant-price-fields :is(.form-control, .select2-selection) { min-height: 38px; }
.variant-price-grade-unused > :is(select, .select2) { display: none !important; }
.variant-price-grade-unused .variant-price-not-applicable { display: flex; align-items: center; min-height: 38px; }
.variant-price-head { display: none; }
.variant-price-empty { margin: 0; padding: 1.25rem 1rem; border-top: 1px solid var(--bs-border-color); }
[data-variant-price-rows]:not(:empty) + .variant-price-empty { display: none; }
.variant-price-help { padding: .65rem 1rem; border-top: 1px solid var(--bs-border-color); }
.variant-price-help summary { width: fit-content; cursor: pointer; }
[data-bs-theme="dark"] .variant-price-editor .btn-outline-secondary { color: var(--bs-body-color); border-color: var(--bs-secondary-color); }
@container (min-width: 600px) {
  .variant-price-fields { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .variant-price-fields [data-price-cell="equipment_condition"] { grid-column: 1; }
  .variant-price-fields [data-price-cell="storage"] { grid-column: 2; }
  .variant-price-fields [data-price-cell="color"] { grid-column: 3; }
  .variant-price-fields [data-price-cell="grade_code"] { grid-row: 1; grid-column: 4; }
  .variant-price-fields [data-price-cell="sale_price"],
  .variant-price-fields [data-price-cell="minimum_sale_price"],
  .variant-price-action { grid-row: 2; grid-column: auto; }
}
@container (min-width: 1000px) {
  .variant-price-fields { grid-template-columns: minmax(7rem, 1fr) minmax(6rem, .85fr) minmax(9rem, 1.35fr) minmax(5rem, .65fr) repeat(2, minmax(7rem, .9fr)) 44px; }
  .variant-price-fields [data-price-cell], .variant-price-action { grid-row: auto; grid-column: auto; }
  .variant-price-head { display: grid; padding: .5rem 1rem; background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); font-size: .8125rem; }
  .variant-price-row .form-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
}
@media (max-width: 575.98px) {
  .product-prices-footer .btn { width: 100%; }
}

/* Marco visual compartido: navegación clara, azul de acción y foco visible. */
@media (max-width: 767.98px) {
  .app-profile-trigger { padding: .25rem; }
  .app-profile-name,
  .app-profile-chevron { display: none; }
  .app-profile-avatar { width: 2rem; height: 2rem; }
}

/* Densidad de lectura compartida: mantener objetivos táctiles sin agrandar el texto. */
.app-shell { font-size: .9375rem; }
.app-shell .page-head { margin-bottom: 1.15rem; }
.app-shell .page-head h1 { font-size: 1.5rem; }
.app-shell .page-head p { font-size: .9rem; }
.app-shell .btn:not(.btn-lg) { --bs-btn-font-size: .875rem; }
.section-navigation .btn { padding: .45rem .75rem !important; }
.section-navigation .small { font-size: .78rem; }
.app-topbar { min-height: 2.75rem; padding-block: .3rem; }
.app-exchange { gap: .3rem; padding: .15rem .35rem; font-size: .84rem; }
.app-exchange-label { font-size: .67rem; }
.app-profile-trigger { font-size: .875rem; }
@media (max-width: 575.98px) {
  .app-exchange { gap: .35rem; padding-left: .4rem; font-size: .8rem; }
}

/* Encabezado de sección: título y accesos usan la misma franja vertical. */
.page-context-header {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.15rem;
}
.page-context-title { min-width: 0; }
.page-context-title h1 { margin: 0 0 .2rem; font-size: 1.5rem; }
.page-context-title p { margin: 0; color: var(--bs-secondary-color); font-size: .9rem; }
.page-context-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .6rem; }
.section-navigation-inline > div { justify-content: flex-end; }
.section-navigation-inline .btn { padding: .4rem .6rem !important; font-size: .82rem; white-space: nowrap; }
[data-bs-theme="dark"] .page-context-actions .btn-outline-secondary { color: var(--bs-body-color); border-color: var(--bs-secondary-color); }
@media (max-width: 991.98px) {
  .page-context-header { grid-template-columns: 1fr; gap: .75rem; }
  .page-context-actions,
  .section-navigation-inline > div { justify-content: flex-start; }
}
@media (max-width: 575.98px) {
  .page-context-actions { align-items: stretch; }
  .page-context-actions > .btn { width: 100%; }
}

/* KPI compartidos: información comparable, compacta y reconocible sin depender del color. */
.kpi-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}
.kpi-card-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kpi-card-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kpi-card {
  --kpi-card-bg: var(--bs-primary-bg-subtle);
  --kpi-card-color: var(--bs-primary-text-emphasis);
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 5.5rem;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  padding: .75rem 3.6rem .75rem 1rem;
  border: 1px solid var(--bs-primary-border-subtle);
  border-radius: var(--app-radius-card);
  background: var(--kpi-card-bg);
  color: var(--bs-body-color);
  box-shadow: var(--app-shadow-card);
}
.kpi-card-primary {
  --kpi-card-bg: var(--bs-primary-bg-subtle);
  --kpi-card-color: var(--bs-primary-text-emphasis);
  border-color: var(--bs-primary-border-subtle);
}
.kpi-card-secondary {
  --kpi-card-bg: var(--bs-secondary-bg-subtle);
  --kpi-card-color: var(--bs-secondary-text-emphasis);
  border-color: var(--bs-secondary-border-subtle);
}
.kpi-card-success {
  --kpi-card-bg: var(--bs-success-bg-subtle);
  --kpi-card-color: var(--bs-success-text-emphasis);
  border-color: var(--bs-success-border-subtle);
}
.kpi-card-warning {
  --kpi-card-bg: var(--bs-warning-bg-subtle);
  --kpi-card-color: var(--bs-warning-text-emphasis);
  border-color: var(--bs-warning-border-subtle);
}
.kpi-card-danger {
  --kpi-card-bg: var(--bs-danger-bg-subtle);
  --kpi-card-color: var(--bs-danger-text-emphasis);
  border-color: var(--bs-danger-border-subtle);
}
.kpi-card-info {
  --kpi-card-bg: var(--bs-info-bg-subtle);
  --kpi-card-color: var(--bs-info-text-emphasis);
  border-color: var(--bs-info-border-subtle);
}
.kpi-card-icon {
  position: absolute;
  top: 50%;
  right: .7rem;
  color: var(--kpi-card-color);
  font-size: 3.25rem;
  line-height: 1;
  opacity: .16;
  transform: translateY(-50%);
  pointer-events: none;
}
.kpi-card-label {
  position: relative;
  color: var(--kpi-card-color);
  font-size: .75rem;
  font-weight: 700;
  line-height: 1.25;
}
.kpi-card-lines { position: relative; display: grid; gap: .2rem; margin-top: .28rem; }
.kpi-card-line { display: flex; min-width: 0; align-items: baseline; flex-wrap: wrap; gap: .1rem .45rem; }
.kpi-card-line strong,
.kpi-card-value {
  color: var(--bs-emphasis-color);
  font-size: 1.45rem;
  font-variant-numeric: tabular-nums;
  line-height: 1.05;
}
.kpi-card-line small { color: var(--bs-secondary-color); font-size: .7rem; line-height: 1.25; }
.table-kpi-card { width: 100%; appearance: none; text-align: start; }
.table-kpi-card:hover { filter: brightness(.98); }
.table-kpi-card:focus-visible,
.table-kpi-card.active {
  outline: 3px solid rgba(var(--bs-primary-rgb), .22);
  outline-offset: 1px;
}
[data-bs-theme="dark"] .table-kpi-card.active { border-color: var(--kpi-card-color); }
@media (max-width: 767.98px) {
  .kpi-card-grid-3,
  .kpi-card-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpi-card { min-height: 5rem; padding: .65rem 3rem .65rem .8rem; }
  .kpi-card-icon { right: .45rem; font-size: 2.75rem; }
  .kpi-card-line strong,
  .kpi-card-value { font-size: 1.2rem; }
}

/* Listados: panel blanco, encabezado liviano, filas y controles compactos. */
.app-shell .table-card { border-radius: 1rem; background: var(--bs-body-bg); }
.product-variations-table { overflow-x: auto; }
.stock-balance-filter .card-body { padding: 1rem; }
.stock-balance-period { min-width: min(100%, 32rem); }
.stock-balance-period legend { float: none; width: auto; font-size: .875rem; }
.stock-balance-category { min-width: min(100%, 15rem); }
.stock-balance-summary-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--bs-border-color); }
.stock-balance-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stock-balance-metrics > div { padding: 1rem 1.25rem 0; border-left: 1px solid var(--bs-border-color); }
.stock-balance-metrics > div:first-child { padding-left: 0; border-left: 0; }
.stock-balance-metrics dt { color: var(--bs-secondary-color); font-size: .8rem; font-weight: 600; }
.stock-balance-metrics dd { margin: .15rem 0 0; font-size: clamp(1.35rem, 2vw, 1.8rem); font-weight: 700; font-variant-numeric: tabular-nums; }
.stock-balance-metrics .stock-balance-current dd { color: var(--bs-primary); }
@media (max-width: 767.98px) {
  .stock-balance-summary-heading { align-items: stretch; flex-direction: column; }
  .stock-balance-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stock-balance-metrics > div { padding: .85rem 0; border-left: 0; border-bottom: 1px solid var(--bs-border-color); }
  .stock-balance-metrics > div:nth-child(odd) { padding-right: .75rem; }
  .stock-balance-metrics > div:nth-child(even) { padding-left: .75rem; border-left: 1px solid var(--bs-border-color); }
  .stock-balance-metrics > div:nth-last-child(-n+2) { border-bottom: 0; }
}
.product-variations-table th {
  color: var(--bs-secondary-color);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.product-variations-table td { font-size: .875rem; }
.variation-photo-placeholder {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px dashed var(--bs-border-color);
  border-radius: .5rem;
  color: var(--bs-secondary-color);
  background: var(--bs-tertiary-bg);
}
.product-editor { display: grid; gap: 1.25rem; }
.product-editor-catalogs { margin-bottom: -1rem !important; }
.product-form-section {
  min-width: 0;
  margin: 0;
  padding: 0 0 1.25rem;
  border: 0;
  border-bottom: 1px solid var(--bs-border-color);
}
.product-form-section > h2,
.product-form-section > summary {
  color: var(--bs-emphasis-color);
  font-weight: 650;
}
.product-form-section > h2 { margin-bottom: 1rem; }
.product-form-section > summary { cursor: pointer; }
.product-form-section[open] > summary { margin-bottom: .75rem; }
.product-form-note { margin: -.5rem 0 0; }
.product-editor-actions {
  position: sticky;
  z-index: 2;
  bottom: -1rem;
  margin: -.25rem -1rem -1rem;
  padding: .85rem 1rem;
  border-top: 1px solid var(--bs-border-color);
  background: var(--bs-body-bg);
}
.supplier-order-heading h1 { font-size: 1.5rem; margin: 0 0 .5rem; }
.supplier-order-editor { max-width: 1280px; padding-bottom: 1rem; }
.supplier-order-mode {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.supplier-order-mode .btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  min-height: 38px;
  font-weight: 600;
}
.supplier-order-editor > .card > .card-body { padding: .75rem 1rem; }
.supplier-order-editor .form-label { margin-bottom: .25rem; }
.supplier-order-choice { padding: .5rem 0; }
.supplier-order-choice .supplier-order-mode { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 575.98px) {
  .supplier-order-choice .supplier-order-mode { grid-template-columns: 1fr; }
}
.supplier-order-lines .table > :not(caption) > * > * {
  padding: .55rem .6rem;
  vertical-align: top;
}
.supplier-order-lines .form-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}
.supplier-order-lines .form-control,
.supplier-order-lines .form-select,
.supplier-order-lines .select2-container--bootstrap-app .select2-selection:not(.select2-selection--sm) {
  min-height: 36px;
  font-size: .875rem;
}
.supplier-order-lines .table { table-layout: fixed; width: 100%; }
.supplier-order-lines th:nth-child(2) { width: 6rem; }
.supplier-order-lines th:nth-child(3) { width: 9rem; }
.supplier-order-lines th:nth-child(4) { width: 7rem; }
.supplier-order-lines td { min-width: 0; overflow-wrap: anywhere; }
.supplier-order-lines .select2-container { width: 100% !important; min-width: 0; }
.supplier-order-variants { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; margin-top: .35rem; }
.supplier-order-variants > div { min-width: 0; }
@media (max-width: 767.98px) { .supplier-order-variants > [data-variant-field="equipment_condition"] { grid-column: 1 / -1; } }
.supplier-order-lines .supplier-order-variant-label { position: static; width: auto; height: auto; clip: auto; display: block; font-size: .75rem; }
.supplier-order-line-actions .btn { min-width: 38px; min-height: 38px; }
.supplier-order-line-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: .25rem;
  white-space: nowrap;
}
@media (max-width: 767.98px) {
  .product-variations-table { overflow: visible; }
  .product-variations-table thead { display: none; }
  .product-variations-table tbody,
  .product-variations-table tr,
  .product-variations-table td { display: block; }
  .product-variations-table tr { padding: .75rem 0; border-bottom: 1px solid var(--bs-border-color); }
  .product-variations-table tr:last-child { border-bottom: 0; }
  .product-variations-table td {
    display: grid;
    grid-template-columns: minmax(7.5rem, 42%) minmax(0, 1fr);
    align-items: center;
    gap: .75rem;
    padding: .35rem 0;
    border: 0;
  }
  .product-variations-table td::before {
    content: attr(data-label);
    text-align: left;
    color: var(--bs-secondary-color);
    font-size: .78rem;
    font-weight: 600;
  }
  .product-variations-table td[colspan] { display: block; }
  .product-variations-table td[colspan]::before { content: none; }
  .supplier-order-mode { width: 100%; }
  .supplier-order-mode .btn { flex: 1 1 11rem; justify-content: center; }
  .supplier-order-lines { overflow: visible; }
  .supplier-order-lines thead { display: none; }
  .supplier-order-lines table,
  .supplier-order-lines tbody,
  .supplier-order-lines tr,
  .supplier-order-lines td { display: block; width: 100%; }
  .supplier-order-lines tr {
    padding: .75rem;
    border-bottom: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
  }
  .supplier-order-lines tr:last-child { border-bottom: 0; }
  .supplier-order-lines td {
    display: grid;
    grid-template-columns: minmax(7.5rem, 34%) minmax(0, 1fr);
    align-items: center;
    gap: .5rem;
    min-width: 0 !important;
    padding: .32rem 0 !important;
    border: 0;
  }
  .supplier-order-lines td::before {
    content: attr(data-label);
    text-align: left;
    color: var(--bs-secondary-color);
    font-size: .78rem;
    font-weight: 600;
  }
  .supplier-order-lines .form-label { display: none; }
  .supplier-order-lines td:first-child { display: block; }
  .supplier-order-lines td:first-child::before { content: none; }
  .supplier-order-lines .supplier-order-variant-label { display: block; }
  .supplier-order-line-actions .btn { min-width: 44px; min-height: 44px; }
  .supplier-order-line-actions { justify-content: flex-start; flex-wrap: wrap; white-space: normal; }

}
.app-shell .table-card .table { margin-bottom: 0; font-size: .875rem; }
.app-shell .table-card .table > :not(caption) > * > * { padding: .62rem .75rem; border-color: var(--bs-border-color); }
.app-shell .table-card .table thead th {
  padding-block: .66rem;
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
}
.app-shell .table-card .table tbody td { line-height: 1.35; }
.table tbody tr.movement-row-expense { --bs-table-bg: var(--bs-danger-bg-subtle); }
#movementsTable .movement-row-expense:hover > * {
  background-color: color-mix(in srgb, var(--bs-table-bg) 85%, var(--bs-danger));
}
.app-shell .table-card .table tbody td .small { font-size: .78rem; }
.app-shell .table-card .table tbody tr:hover > * { background: var(--bs-tertiary-bg); }
.app-shell .table-card .table .btn-sm { padding: .32rem .58rem; }
[data-bs-theme="dark"] .app-shell .table-card .btn-outline-secondary { color: var(--bs-body-color); border-color: var(--bs-secondary-color); }
.app-shell .server-table-toolbar,
.app-shell .server-table-footer { gap: .7rem; padding: .7rem .85rem; }
.app-shell .server-table-footer { min-height: 3.2rem; }
.app-shell .server-table-toolbar .form-control,
.app-shell .server-table-toolbar .form-select { min-height: 38px; padding: .38rem .65rem; font-size: .875rem; }
.app-shell .server-table-toolbar > [data-table-search],
.app-shell .server-table-toolbar > .input-group { flex: 0 0 auto; min-height: 38px; max-height: var(--app-touch-target); }
.app-shell .server-table-toolbar > .input-group > .form-control,
.app-shell .server-table-toolbar > .input-group > .input-group-text,
.app-shell .server-table-toolbar > .input-group > .btn { height: auto; min-height: 38px; }
.app-shell .server-table-toolbar [data-table-size] { min-width: 4.75rem; }
@media (min-width: 768px) {
  .app-shell .table-card:not(.counter-catalog) .server-table-toolbar:not(.stock-toolbar) [data-table-size] { order: -1; }
  .app-shell .table-card:not(.counter-catalog) .server-table-toolbar:not(.stock-toolbar) > [data-table-search],
  .app-shell .table-card:not(.counter-catalog) .server-table-toolbar:not(.stock-toolbar) > .input-group { width: min(20rem, 100%); flex: 0 1 20rem; }
}
@media (max-width: 767.98px) {
  .app-shell .server-table-toolbar > [data-table-search],
  .app-shell .server-table-toolbar > .input-group { width: 100%; }
  .app-shell .server-table-toolbar > .input-group { flex-wrap: nowrap; }
  .app-shell .server-table-toolbar > .input-group > [data-table-search] { min-width: 0; width: 1%; }
  .app-shell .table-card .server-table-card { font-size: .875rem; }
}

/* El resumen conserva dos KPI por fila en móvil para evitar una portada innecesariamente larga. */
@media (max-width: 575.98px) {
  .dashboard-chart { min-height: 200px; }
}

.dashboard-privacy-toggle {
  width: 2.5rem;
  height: 2.5rem;
  display: inline-grid;
  place-items: center;
  flex: 0 0 2.5rem;
  padding: 0;
  font-size: 1.05rem;
}
.dashboard-quick-actions {
  display: flex;
  align-items: stretch;
  gap: .25rem;
  padding: .3rem;
  overflow-x: auto;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius-lg);
  background: var(--bs-body-bg);
  scrollbar-width: thin;
}
.dashboard-quick-action {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1 0 auto;
  gap: .42rem;
  padding: .45rem .75rem;
  border: 0;
  border-radius: .65rem;
  background: transparent;
  color: var(--bs-body-color);
  font: inherit;
  font-size: .78rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.dashboard-quick-action:hover,
.dashboard-quick-action:focus-visible {
  background: var(--bs-tertiary-bg);
  color: var(--bs-primary);
}
.dashboard-quick-action-primary {
  background: var(--bs-primary);
  color: #fff;
}
.dashboard-quick-action-primary:hover,
.dashboard-quick-action-primary:focus-visible {
  background: var(--bs-primary);
  color: #fff;
  filter: brightness(.94);
}
.dashboard-quick-action i { font-size: 1rem; }
.dashboard-values-hidden [data-dashboard-value],
.dashboard-values-hidden .dashboard-chart:not(.is-empty) {
  filter: blur(6px);
  pointer-events: none;
  user-select: none;
}

/* Edición de personas: contacto y facturación se comparan sin recorrer un panel largo. */
.person-form-columns fieldset { min-width: 0; }
.person-form-columns legend {
  margin-bottom: 1rem;
  padding-bottom: .65rem;
  border-bottom: 1px solid var(--bs-border-color);
  color: var(--bs-heading-color);
  font-size: 1rem;
  font-weight: 650;
}
.person-form-columns legend span { color: var(--bs-secondary-color); font-size: .84rem; font-weight: 400; }
.person-form-fiscal { border-left: 1px solid var(--bs-border-color); }
.person-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: .65rem;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--bs-border-color);
}
@media (max-width: 991.98px) {
  .person-form-fiscal {
    padding-top: .25rem;
    border-top: 1px solid var(--bs-border-color);
    border-left: 0;
  }
}
@media (max-width: 575.98px) {
  .person-form-actions { flex-direction: column-reverse; }
  .person-form-actions .btn { width: 100%; min-height: 44px; }
}

@media (max-width: 575.98px) {
  .dashboard-page-head {
    align-items: center;
    flex-direction: row;
  }
  .dashboard-page-title { flex: 1 1 auto; }
  .dashboard-page-head .dashboard-privacy-toggle {
    width: 2.5rem;
    flex: 0 0 2.5rem;
    align-self: center;
  }
  .dashboard-quick-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: visible;
  }
  .dashboard-quick-action {
    min-width: 0;
    flex-direction: column;
    gap: .15rem;
    padding: .4rem .2rem;
    white-space: normal;
  }
}

/* El tema propio necesita su límite: Select2 sólo lo incluye para el tema default. */
.select2-container--bootstrap-app .select2-results > .select2-results__options {
  max-height: min(15rem, 40dvh);
  overflow-y: auto;
  overscroll-behavior-y: contain;
}

.supplier-order-totals output { overflow-wrap: anywhere; }
@media (max-width: 767.98px) {
  .supplier-order-lines td[data-label="Costo unitario US$"] small { grid-column: 2; }
}

/* Conservar blancos táctiles cómodos en dispositivos de puntero grueso. */
@media (pointer: coarse) {
  .app-topbar { min-height: 3.375rem; }
  .app-topbar .app-exchange-button,
  .app-topbar .app-profile-trigger { min-height: var(--app-touch-target); }
  .app-topbar .app-icon-button { width: var(--app-touch-target); height: var(--app-touch-target); }
}

/* Pedido: acentos suaves y estados legibles sin añadir filas de títulos. */
.supplier-order-header { border-color: var(--bs-primary-border-subtle); }
.supplier-order-editor .supplier-order-header-fields .form-label,
.supplier-order-editor .supplier-order-header-fields .select-entity-header { min-height: 1.5rem; }
.supplier-order-header-fields .select-entity-header { margin-bottom: .25rem !important; }
.supplier-order-save-status { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; }
.supplier-order-editor [data-lot-detail] { border-color: var(--bs-primary-border-subtle); }
.supplier-order-editor [data-lot-detail] > .card-body { background: color-mix(in srgb, var(--bs-primary) 4%, var(--bs-body-bg)); }
.supplier-order-item-status { display: flex; align-items: center; flex-wrap: wrap; gap: .3rem; }
.supplier-order-lines .select-entity-header { min-height: 1.5rem; }
.supplier-order-lines tr[data-save-state="pending"] > td { background-color: color-mix(in srgb, var(--bs-warning) 4%, var(--bs-body-bg)); }
.supplier-order-lines tr[data-save-state="error"] > td { background-color: color-mix(in srgb, var(--bs-danger) 5%, var(--bs-body-bg)); }
.supplier-order-lines tr > td:first-child { border-inline-start: 3px solid var(--bs-success-border-subtle); }
.supplier-order-lines tr[data-save-state="pending"] > td:first-child { border-inline-start-color: var(--bs-warning-border-subtle); }
.supplier-order-lines tr[data-save-state="saving"] > td:first-child { border-inline-start-color: var(--bs-info-border-subtle); }
.supplier-order-lines tr[data-save-state="error"] > td:first-child { border-inline-start-color: var(--bs-danger-border-subtle); }
.supplier-order-subtotal { color: var(--bs-primary-text-emphasis); font-weight: 600; }
.supplier-order-totals { padding: .75rem 1rem; border: 1px solid var(--bs-primary-border-subtle); border-radius: var(--bs-border-radius); background: color-mix(in srgb, var(--bs-primary) 4%, var(--bs-body-bg)); }
.supplier-order-totals [data-lot-total] { color: var(--bs-primary-text-emphasis); font-weight: 700; }
.supplier-order-breakdown { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.supplier-order-breakdown .badge { display: inline-flex; align-items: center; flex-wrap: wrap; gap: .35rem; padding: .45rem .6rem; font-size: .8rem; line-height: 1.3; font-weight: 500; white-space: normal; }
.supplier-order-breakdown .badge i { font-size: 1rem; }
.supplier-order-breakdown output { font-weight: 700; }
@media (min-width: 768px) {
  .supplier-order-lines td:not(:first-child) { padding-top: calc(.55rem + 1.5rem + .25rem) !important; }
}

.supplier-order-summary { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .65rem; padding: .65rem 1rem; border: 1px solid var(--bs-primary-border-subtle); border-radius: var(--bs-border-radius); background: var(--bs-body-bg); }
.supplier-order-summary[hidden] { display: none; }
.supplier-order-summary-data { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1.25rem; min-width: 0; }
.supplier-order-summary-data > span { overflow-wrap: anywhere; }
.supplier-order-summary-data i { color: var(--bs-primary-text-emphasis); }
.supplier-order-header-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: flex-end; }
.supplier-order-header-actions [data-lot-save-status] { margin-inline-end: auto; }
.supplier-order-finish { border-top: 1px solid var(--bs-border-color); padding-top: .85rem; }

.supplier-grade-menu.show { display: grid; grid-template-columns: repeat(3, minmax(3rem, 1fr)); gap: .35rem; max-height: min(18rem, 55vh); overflow-y: auto; min-width: min(16rem, 85vw); }
.supplier-grade-menu .dropdown-item { min-height: 44px; padding: .5rem; text-align: center; background-color: var(--bs-tertiary-bg); }
.supplier-grade-menu .dropdown-item:first-child { grid-column: 1 / -1; }
.supplier-grade-menu .dropdown-item.active { background-color: var(--bs-primary-bg-subtle); color: var(--bs-primary-text-emphasis); outline: 1px solid var(--bs-primary-border-subtle); }
.supplier-order-lines [data-variant-toggle] { min-height: 36px; font-size: .875rem; }

/* Resumen financiero: saldos y flujo por unidad. */
.app-shell .overview-page-head { margin-bottom: .65rem; }
.overview-section { padding: .7rem .85rem; }
.overview-balances {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    gap: .65rem;
    align-items: start;
}
@media (min-width: 576px) and (max-width: 1199.98px) {
    .overview-balances { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
}
.overview-balance { min-width: 0; font-variant-numeric: tabular-nums; }
.overview-balance-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .45rem; padding-bottom: .35rem; }
.overview-balance-amount { min-width: 0; font-size: 1.4rem; overflow-wrap: anywhere; }
.overview-unit { background: var(--bs-primary-bg-subtle); color: var(--bs-primary-text-emphasis); border: 1px solid var(--bs-primary-border-subtle); }
.overview-account-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, auto);
    align-items: baseline;
    gap: .45rem;
    padding-block: .23rem;
    font-size: .875rem;
    overflow-wrap: anywhere;
}
.overview-account-row dd { max-width: 8.5rem; }
.overview-account-row .status-badge, .overview-balance-head .status-badge { white-space: normal; }
.overview-fields {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.25rem), 1fr));
    align-items: end;
    gap: .5rem .65rem;
}
.overview-fields > div { min-width: 0; }
[aria-labelledby="overview-calculator-title"] .overview-fields {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
}
.overview-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .35rem .6rem;
    border-block-start: 1px solid var(--bs-border-color);
    padding-top: .45rem;
}
.overview-metric { min-width: 0; font-size: .875rem; }
.overview-metric dt { margin-bottom: .15rem; }
.overview-metric dd { overflow-wrap: anywhere; }
.overview-metric[data-finance-metric="net"] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: .2rem .4rem;
    grid-column: 1 / -1;
    padding: .25rem .35rem;
    background: var(--bs-primary-bg-subtle);
    border-radius: .3rem;
}
.overview-metric .status-badge { white-space: normal; }

.supplier-grade-menu .dropdown-item { white-space: normal; overflow-wrap: anywhere; }
.supplier-order-variants [data-variant-field="equipment_condition"] .supplier-grade-menu.show { grid-template-columns: 1fr; }

/* Los menús de variantes deben poder salir de la tabla y su tarjeta. */
.supplier-order-editor [data-lot-detail],
.supplier-order-editor .supplier-order-lines { overflow: visible; }

/* Pricing ledger: compact desktop rows, the same live inputs on mobile. */
.app-shell .pricing-page-head { margin-bottom: .6rem; }
.pricing-page-head h1 { margin: 0; font-size: 1.5rem; }
.pricing-toolbar { display: grid; grid-template-columns: minmax(13rem, 2fr) repeat(3, minmax(7rem, 1fr)) 6rem; gap: .5rem; padding: .5rem; }
.pricing-toolbar > div { min-width: 0; }
.pricing-toolbar .form-label, .pricing-bulk .form-label { font-size: .75rem; margin-bottom: .15rem; }
.pricing-filter-switches { font-size: .8125rem; }
.pricing-filter-switches label { padding-block: .25rem; }
.pricing-products { min-width: 0; }
.app-shell .pricing-products .server-table-footer { min-height: 2.5rem; padding: .3rem .6rem; font-size: .75rem; }
.pricing-filter-switches { gap: .5rem !important; }
.pricing-filter-switches .btn { min-height: 32px; }
.pricing-products > table { table-layout: fixed; width: 100%; }
.pricing-products > table > tbody > tr > td { padding: 0; }
.pricing-product-heading { padding: .35rem .6rem; cursor: pointer; background: var(--bs-primary-bg-subtle); border-inline-start: 3px solid var(--bs-primary); font-size: .875rem; }
.pricing-product-heading:focus-visible { outline: 2px solid var(--bs-primary); outline-offset: -2px; }
.pricing-product-heading > span { margin-left: .5rem; font-size: .75rem; }
.pricing-product-panel { padding: .2rem .5rem .4rem; }
.pricing-grid-meta { display: flex; justify-content: space-between; align-items: center; gap: .5rem; font-size: .75rem; min-height: 1.5rem; }
.pricing-grid-wrap { overflow-x: auto; }
.pricing-grid { min-width: 760px; }
.pricing-grid.table-sm > :not(caption) > * > * { padding: .25rem .35rem; }
.pricing-grid th { font-size: .75rem; color: var(--bs-secondary-color); }
.pricing-grid td { font-size: .8125rem; }
.pricing-grid th:first-child, .pricing-grid td:first-child { width: 2rem; }
.pricing-grid td:nth-child(2) { min-width: 170px; white-space: normal; }
.pricing-grid td:nth-child(5), .pricing-grid td:nth-child(6) { min-width: 110px; width: 125px; }
.pricing-grid .form-control { text-align: right; min-height: 32px; }
.pricing-grid td:nth-child(3), .pricing-grid td:nth-child(4), .pricing-grid td:last-child { text-align: right; font-variant-numeric: tabular-nums; white-space: normal; }
.pricing-grid .status-badge { font-size: .7rem; }
/* Pending edits are informational; validation errors stay on the affected inputs. */
.pricing-row-changed > td { background: var(--bs-info-bg-subtle); }
.pricing-grid [aria-invalid="true"] { border-color: var(--bs-danger); }
.pricing-bulk { background: var(--bs-tertiary-bg); font-size: .8125rem; }
.pricing-bulk summary { padding-block: .25rem; cursor: pointer; }
.pricing-bulk input { max-width: 180px; }
.pricing-add-panel { font-size: .75rem; margin-top: .25rem; }
.pricing-add-panel summary { padding-block: .25rem; cursor: pointer; }
.pricing-save-bar { position: sticky; bottom: .5rem; background: var(--bs-body-bg); z-index: 5; box-shadow: 0 -.2rem .8rem #0001; font-size: .8125rem; }
.pricing-save-bar > [data-pricing-error]:empty { display: none; }
.pricing-footnote { font-size: .75rem; margin-block: .4rem; }
@media (max-width: 991.98px) {
  .pricing-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing-search { grid-column: 1 / -1; }
  .pricing-grid { min-width: 0; }
  .pricing-grid thead { display: none; }
  .pricing-grid tbody { display: grid; gap: .4rem; }
  .pricing-grid tr { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border: 1px solid var(--bs-border-color); border-radius: .3rem; padding: .25rem; }
  .pricing-grid td, .pricing-grid td:nth-child(n) { min-width: 0; width: auto; text-align: left; border: 0; padding: .25rem; overflow-wrap: anywhere; }
  .pricing-grid td:first-child { grid-column: 1; grid-row: 1; }
  .pricing-grid td:nth-child(2) { grid-column: 2 / -1; grid-row: 1; }
  .pricing-grid td:nth-child(3) { grid-column: 1 / 3; grid-row: 2; }
  .pricing-grid td:nth-child(4) { grid-column: 3 / 5; grid-row: 2; }
  .pricing-grid td:nth-child(7) { grid-column: 5 / 7; grid-row: 2; }
  .pricing-grid td:nth-child(5) { grid-column: 1 / 4; grid-row: 3; }
  .pricing-grid td:nth-child(6) { grid-column: 4 / 7; grid-row: 3; }
  .pricing-grid td[data-label]::before { content: attr(data-label); display: block; font-size: .7rem; color: var(--bs-secondary-color); margin-bottom: .15rem; }
  .pricing-grid .form-control { min-height: 40px; }
  .pricing-bulk > div > div { flex: 1 1 100%; }
  .pricing-bulk input { max-width: none; }
}
@media (max-width: 575.98px) {
  .app-shell .pricing-page-head { flex-direction: row; align-items: center; }
  .pricing-page-head .btn { width: auto; flex: 0 0 auto; }
  .pricing-page-head > div { flex-wrap: wrap; gap: .25rem !important; }
}
.pricing-grid tr[hidden] { display: none !important; }

/* Cuentas corrientes: dirección principal y vistas secundarias dentro del grupo. */
.account-navigation { display: flex; flex-direction: column; gap: .35rem; }
.account-direction { align-self: flex-start; }
.account-direction .btn { min-width: 8rem; min-height: 44px; font-weight: 600; }
.account-views { gap: 1rem; padding: 0 .15rem; border-bottom: 1px solid var(--bs-border-color); }
.account-views .nav-link { display: flex; align-items: center; min-height: 44px; padding: .35rem 0; font-size: .82rem; color: var(--bs-secondary-color); }
.account-views .nav-link.active { color: var(--bs-primary); }
.account-table .server-table-toolbar { padding: .5rem .75rem; }
@media (max-width: 575.98px) {
    .account-direction { align-self: stretch; }
    .account-direction .btn { min-width: 0; flex: 1; }
    .account-views { justify-content: space-between; gap: .6rem; }
    .account-views .nav-link { font-size: .78rem; }
}
.account-table:has(.table-filter-panel[open]) { overflow: visible; }
@media (max-width: 767.98px) {
    .app-shell .account-table .server-table-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) 5.5rem; }
    .app-shell .account-table .server-table-toolbar > [data-table-search] { grid-column: 1 / -1; }
    .app-shell .account-table .server-table-toolbar .select2-container { width: 100% !important; min-width: 0; }
}
@media (min-width: 768px) {
    .app-shell .table-card.account-table:not(.counter-catalog) .server-table-toolbar:not(.stock-toolbar) > [data-table-search] {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
        max-width: none;
    }
    .app-shell .account-table .server-table-toolbar [data-table-sort-control] + .select2-container {
        flex: 0 1 15rem;
        width: 15rem !important;
        min-width: 0;
    }
}

.pricing-activity-toolbar { display: grid; grid-template-columns: minmax(11rem, 1fr) minmax(15rem, 2fr); gap: .5rem; }
.pricing-activity-toolbar > div { min-width: 0; }
.pricing-activity-toolbar .form-label { font-size: .75rem; margin-bottom: .15rem; }
@media (max-width: 575.98px) {
  .pricing-activity-toolbar { grid-template-columns: minmax(0, 1fr); }
}

/* Read-only amounts: radix and precision remain selectable as one continuous number. */
.number-readable { white-space: nowrap; font-variant-numeric: tabular-nums; }
.number-readable__integer { font-weight: 600; }
.number-readable__fraction { font-size: max(.8em, .75rem); font-weight: 400; vertical-align: baseline; }
.pricing-grid .number-readable { font-size: .9375rem; }

/* Pricing: search first, optional facets, and a distinct editing surface. */
.pricing-main-filters { display: grid; grid-template-columns: minmax(12rem, 2fr) minmax(12rem, 1fr) auto; gap: .6rem; align-items: end; padding: .6rem; }
.pricing-main-filters > *, .pricing-secondary-fields > * { min-width: 0; }
.pricing-main-filters .form-label, .pricing-secondary-fields .form-label, .pricing-page-size .form-label { font-size: .75rem; margin-bottom: .15rem; }
.pricing-secondary-fields { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: .6rem; padding: .6rem; }
[data-pricing-secondary] { border-top: 1px solid var(--bs-border-color); background: var(--bs-tertiary-bg); }
.pricing-active-filters { display: flex; flex-wrap: wrap; gap: .35rem; }
.pricing-active-filters:not(:empty) { padding-bottom: .5rem; }
.pricing-filter-chip { white-space: normal; text-align: left; overflow-wrap: anywhere; }
.pricing-grid td:nth-child(4) { color: var(--bs-secondary-color); }
.pricing-grid td:nth-child(4) .number-readable__integer { font-weight: 400; }
.pricing-grid th:nth-child(5), .pricing-grid th:nth-child(6), .pricing-grid td:nth-child(5), .pricing-grid td:nth-child(6) { background: var(--bs-tertiary-bg); }
.pricing-grid th:nth-child(5), .pricing-grid th:nth-child(6) { color: var(--bs-primary-text-emphasis); }
.pricing-grid [data-pricing-input="sale_price"] { font-weight: 600; font-size: 1rem; }
.pricing-grid [data-pricing-input="minimum_sale_price"] { font-size: .875rem; }
.pricing-grid [data-pricing-variant-label] { font-weight: 500; }
.pricing-row-changed > td:nth-child(n) { background: var(--bs-info-bg-subtle); }
.pricing-products .pricing-page-size { display: flex; align-items: center; gap: .4rem; max-width: 11rem; }
.pricing-page-size .form-label { white-space: nowrap; }
.pricing-save-bar-idle { position: static; padding-block: .25rem !important; box-shadow: none; border-color: transparent !important; background: transparent; color: var(--bs-secondary-color); }
.pricing-save-bar-idle button { display: none; }
@media (max-width: 991.98px) {
  .pricing-secondary-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing-secondary-fields > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 575.98px) {
  .pricing-main-filters { grid-template-columns: minmax(0, 1fr) auto; }
  .pricing-main-filters .pricing-search { grid-column: 1 / -1; }
  .pricing-secondary-fields { grid-template-columns: minmax(0, 1fr); }
  .pricing-bulk .d-flex > div { width: 100%; }
  .pricing-bulk input { max-width: none; }
  .pricing-products .server-table-footer { flex-wrap: wrap; gap: .4rem; }
}
.pricing-products nav[data-table-pagination]:not(:has(.page-item:not(.disabled))) { display: none; }
@media (min-width: 992px) {
  .pricing-grid { table-layout: fixed; width: 100%; }
  .pricing-grid th:nth-child(2) { width: 32%; }
  .pricing-grid th:nth-child(3) { width: 7%; }
  .pricing-grid th:nth-child(4) { width: 15%; }
  .pricing-grid th:nth-child(5), .pricing-grid th:nth-child(6) { width: 14%; }
  .pricing-grid th:nth-child(7) { width: 15%; }
}

/* Divulgación de filas: conservar ocultamiento también en la adaptación móvil. */
[data-disclosure-row][hidden] { display: none !important; }
[data-row-disclosure] { cursor: pointer; }

/* Consultas cortas: sólo filas, sin barras redundantes. */
[data-table-compact] > .server-table-toolbar,
[data-table-compact] > .server-table-footer { display: none !important; }

.pricing-profit-rates { white-space: pre-line; line-height: 1.35; font-size: .75rem; margin-top: .2rem; }


/* Configuración comercial: una superficie y escalones en filas. */
.product-commercial { container-type: inline-size; }
.commercial-priority { margin-bottom: 1rem; }
.commercial-heading { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .5rem; }
.commercial-discount { display: grid; grid-template-columns: 6rem minmax(0, 1fr) 44px; gap: .5rem; align-items: end; padding: .65rem 0; margin: 0; border: 0; border-top: 1px solid var(--bs-border-color); min-width: 0; }
.commercial-discount > div { min-width: 0; }
.commercial-discount > div:nth-of-type(2) { grid-column: span 2; }
.commercial-discount-value { grid-column: span 2; }
.commercial-discount .form-label { margin-bottom: .25rem; }
.commercial-discount :is(.form-control, .select2-selection) { min-height: 38px; }
.commercial-discount > .btn { min-width: 44px; min-height: 44px; }
.commercial-scope { margin-top: .75rem; max-width: 24rem; }
.commercial-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; border-top: 1px solid var(--bs-border-color); margin-top: 1rem; padding-top: .75rem; }
.commercial-actions .btn-link { min-height: 44px; display: inline-flex; align-items: center; padding-inline: .25rem; }
[data-bs-theme="dark"] .product-commercial .btn-outline-secondary { color: var(--bs-body-color); border-color: var(--bs-secondary-color); }
@container (min-width: 480px) {
  .commercial-discount { grid-template-columns: 6rem minmax(8rem, 1fr) minmax(7rem, 1fr) 44px; }
  .commercial-discount > div:nth-of-type(2), .commercial-discount-value { grid-column: auto; }
}
@container (max-width: 479.98px) {
  .commercial-actions > .btn-primary { width: 100%; order: -1; }
}

.pricing-bulk-issues { font-size: .8125rem; line-height: 1.45; max-height: 18rem; overflow: auto; padding-inline-start: 1.25rem; }
.pricing-bulk-issues li + li { margin-top: .5rem; }

/* Pricing adjustments: configure first, then compare final amounts. */
.pricing-adjust-config { padding: .25rem .25rem .5rem; }
.pricing-bulk .pricing-adjust-config input { max-width: none; }
.pricing-bulk [data-pricing-info] { min-width: 1.75rem; min-height: 1.75rem; text-decoration: none; }
.pricing-preview-item { display: grid; grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)); gap: .5rem 1rem; padding: .65rem .25rem; border-top: 1px solid var(--bs-border-color); }
.pricing-preview-variant { font-weight: 500; align-self: center; overflow-wrap: anywhere; }
.pricing-preview-price { font-variant-numeric: tabular-nums; text-align: end; }
.pricing-preview-price small { display: block; font-size: .7rem; }
.pricing-preview-before { font-size: .75rem; }
.pricing-preview-price strong { color: var(--bs-primary-text-emphasis); font-size: 1rem; white-space: nowrap; }
@media (max-width: 767.98px) {
  .pricing-preview-item { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing-preview-variant { grid-column: 1 / -1; }
  .pricing-preview-price { text-align: start; }
  .pricing-preview-price strong { display: block; white-space: normal; overflow-wrap: anywhere; }
}

/* Keep profitability labels and percentages together in narrow previews. */
.pricing-preview-price .pricing-preview-profit { display: flex; flex-wrap: wrap; justify-content: flex-end; column-gap: .25rem; }
.pricing-preview-profit span { white-space: nowrap; }
@media (max-width: 767.98px) { .pricing-preview-price .pricing-preview-profit { justify-content: flex-start; } }

/* Attribute choices follow the model's explicit definition switch. */
.product-attribute-options { display: grid; grid-template-rows: 0fr; opacity: 0; visibility: hidden; }
.product-attribute-options.is-active { grid-template-rows: 1fr; opacity: 1; visibility: visible; }
.product-attribute-options__content { min-height: 0; overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
    .product-attribute-options { transition: grid-template-rows .2s ease, opacity .2s ease, visibility .2s; }
}

/* Keep the shared image editor visible beside product details when space permits. */
.product-editor { container-type: inline-size; }
.product-editor-layout { display: grid; gap: 1.5rem; min-width: 0; }
.product-editor-fields { display: grid; gap: 1.25rem; min-width: 0; }
.product-editor-images { min-width: 0; }
.product-editor-images > [data-image-editor] { margin-bottom: 0 !important; }
@container (min-width: 850px) {
  .product-editor-layout { grid-template-columns: minmax(0, 1.8fr) minmax(280px, 1fr); align-items: start; }
  .product-editor-images { border-left: 1px solid var(--bs-border-color); padding-left: 1.5rem; }
  .product-editor-images [data-image-editor] > .row > .col-md-4 { width: 50%; }
}
.product-editor-images [data-image-editor] { display: flex; flex-direction: column; }
.product-editor-images [data-image-editor] > .row { order: 1; }
.product-editor-images [data-image-queued] { order: 2; }

/* Privacidad visual de costos: también alcanza las tarjetas y filas recargadas. */
.stock-cost-hidden [data-stock-cost-value] {
  filter: blur(6px);
  pointer-events: none;
  user-select: none;
}

/* A compact, single-line variant of the shared KPI filters. */
.table-kpis.table-kpis-compact {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0 !important;
  padding: .75rem;
  border-bottom: 1px solid var(--bs-border-color);
}
.table-kpis-compact .table-kpi-card {
  display: inline-flex;
  flex-direction: row;
  width: auto;
  box-shadow: none;
  align-items: center;
  gap: .5rem;
  min-height: 44px;
  padding: .4rem .75rem;
  border-radius: var(--bs-border-radius);
}
.table-kpis-compact .kpi-card-icon { display: none; }
.table-kpis-compact .kpi-card-label { margin: 0; font-size: .875rem; }
.table-kpis-compact .kpi-card-value { margin: 0; font-size: 1rem; }
@media (max-width: 575.98px) {
  .table-kpis.table-kpis-compact { gap: .375rem; padding: .625rem; }
  .table-kpis-compact .table-kpi-card { padding-inline: .5rem; gap: .375rem; }
  .table-kpis-compact .kpi-card-label { font-size: .8125rem; }
}

.product-detail {
  display: grid;
  gap: 1.25rem;
  overflow-wrap: anywhere;
}

.product-detail > .image-gallery { min-width: 0; margin-bottom: 0 !important; }
.product-detail .image-gallery-main img { height: clamp(9rem, 34dvh, 20rem); }
.product-detail .image-gallery-thumbs { flex-wrap: wrap; }
.product-detail .image-gallery-thumbs img { width: 2.5rem; height: 2.5rem; }
.product-detail .image-gallery[data-generic-caption] [data-image-caption] { display: none; }

.product-detail-stock {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

#detailModal:has(.product-detail) .modal-footer { display: none; }

@media (min-width: 768px) {
  #detailModal .modal-xl:has(.product-detail) { --bs-modal-width: min(1320px, calc(100vw - 3rem)); }
  .product-detail-with-photos {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: 2rem;
  }
}
