.app-min-vh { min-height: 100vh; }
.app-shell-reset { min-height: 100vh; margin: 0; padding: 0; }
.app-main { margin-left: 0 !important; width: auto !important; min-width: 0; }
.app-main-min { min-width: 0; }
.toolbar-300 { max-width: 300px; }
.toolbar-320 { max-width: 320px; }
.table-col-12 { width: 12%; }
.table-col-15 { width: 15%; }
.table-col-24 { width: 24%; }
.table-col-25 { width: 25%; }
.table-col-30 { width: 30%; }
.table-col-45 { width: 45%; }
.table-col-52 { width: 52%; }
.text-09 { font-size: .9rem; }
.text-085 { font-size: .85rem; }
.text-08 { font-size: .8rem; }
.text-075-wide { font-size: .75rem; letter-spacing: .5px; }
.text-065-wide { font-size: .65rem; letter-spacing: .5px; }
.text-115 { font-size: 1.15rem; }
.text-14 { font-size: 1.4rem; }
.icon-3rem { font-size: 3rem; }
.icon-3rem-tight { font-size: 3rem; line-height: 1; }
.icon-4rem { font-size: 4rem; }
.avatar-28 { width: 28px; height: 28px; font-size: .8rem; }
.avatar-40 { width: 40px; height: 40px; flex-shrink: 0; }
.avatar-cover-white { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; border: 2px solid #fff; }
.avatar-cover-muted { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; border: 2px solid #ddd; }
.avatar-placeholder-muted { width: 100%; height: 100%; background-color: #e9ecef; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 2px solid #ddd; }
.muted-user-icon { font-size: 20px; color: #999; }
.logo-sm { width: 34px; height: 34px; object-fit: contain; }
.logo-login { width: 76px; height: 76px; object-fit: contain; }
.nav-gap-2 { gap: 2px; }
.sidebar-shell { height: 100vh; position: sticky; top: 0; min-width: 240px; max-width: 240px; background-color: #fff; border-right: 1px solid #dee2e6; flex-shrink: 0; margin: 0; padding-top: 20px; overflow-y: auto; }
.scroll-300 { max-height: 300px; overflow-y: auto; }
.sticky-top-20 { top: 20px; }
.product-thumb-sm { width: 45px; height: 45px; object-fit: contain; }
.favorite-thumb { width: 70px; height: 70px; object-fit: contain; }
.carousel-image-frame { height: 350px; }
.object-contain { object-fit: contain; }
.truncate-250 { max-width: 250px; }
.login-card-wide { max-width: 560px; }
.progress-thin { height: 7px; }
.chart-limited { max-height: 280px; }
.preview-image { max-width: 150px; border-radius: 5px; }
.modal-qr-image { width: min(100%, 360px); }
.cart-qty-input { width: 55px; }
.venta-producto-cantidad { width: 90px; }
[data-hidden-initial="true"] { display: none; }
