:root {
    --theme-bg-body: #f9f9f9;
    --theme-bg-card: #ffffff;
    --theme-text-main: #333333;
    --theme-text-muted: #6c757d;
    --theme-header-bg: #fff3e0; 
    --theme-header-text: #e65100;
    --theme-primary: #ff6f00;
    --theme-secondary: #6c757d;
    --theme-footer-bg: #ffffff;
    --font-family-base: 'Segoe UI', system-ui, sans-serif;
    --font-size-base: 14px;
}

body {
    background-color: var(--theme-bg-body) !important;
    color: var(--theme-text-main) !important;
    font-family: var(--font-family-base) !important;
    font-size: var(--font-size-base) !important;
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* Clases Universales */
.bg-theme-header { background-color: var(--theme-header-bg) !important; color: var(--theme-header-text) !important; transition: all 0.3s ease; }
.text-theme-header { color: var(--theme-header-text) !important; }
.text-theme-primary { color: var(--theme-primary) !important; }
.text-theme-secondary { color: var(--theme-secondary) !important; transition: color 0.3s ease; }

.bg-theme-primary { background-color: var(--theme-primary) !important; color: #fff !important; }
.btn-theme-primary { background-color: var(--theme-primary) !important; border-color: var(--theme-primary) !important; color: #fff !important; transition: all 0.2s ease; }
.btn-theme-primary:hover { opacity: 0.9; color: #fff !important; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }

.btn-theme-secondary { color: var(--theme-secondary) !important; border-color: var(--theme-secondary) !important; background-color: transparent; transition: all 0.3s ease; }
.btn-theme-secondary:hover { background-color: var(--theme-secondary) !important; color: #fff !important; }

/* Componentes */
.card { background-color: var(--theme-bg-card) !important; border-color: rgba(0,0,0,0.08) !important; transition: background-color 0.3s ease; }
.card-header { background-color: var(--theme-header-bg) !important; color: var(--theme-header-text) !important; transition: all 0.3s ease; }
.card-footer { background-color: var(--theme-footer-bg) !important; border-top: 1px solid rgba(0,0,0,0.05); }
.navbar-brand { color: var(--theme-header-text) !important; transition: color 0.3s ease; }
.form-control-color { cursor: pointer; padding: 0.2rem; }

/* Layout App */
.table-scroll-container { position: relative; max-height: calc(100vh - 380px); min-height: 300px; overflow-y: auto; border-bottom: 1px solid rgba(0,0,0,0.05); }
.table-scroll-container::-webkit-scrollbar { width: 6px; height: 6px; }
.table-scroll-container::-webkit-scrollbar-track { background: transparent; }
.table-scroll-container::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.1); border-radius: 3px; }
.table-scroll-container::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.2); }

.bg-light-texture { background-color: rgba(0, 0, 0, 0.02); background-image: radial-gradient(rgba(0,0,0,0.05) 1px, transparent 1px); background-size: 10px 10px; }
.label-xs { font-size: 0.65rem; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; display: block; color: var(--theme-text-muted); }

.table { color: var(--theme-text-main) !important; }
.table thead th { background-color: var(--theme-header-bg) !important; color: var(--theme-text-main) !important; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.5px; border-bottom: 2px solid rgba(0,0,0,0.05); }
.vr { background-color: var(--theme-text-muted); opacity: 0.25; }

.receipt-container.thermal-font, 
.receipt-container .content-area, 
.receipt-container .item-value td, 
.receipt-container .item-desc, 
.receipt-container .label-normal, 
.receipt-container .small-text,
.receipt-container .sii-texto,
.receipt-container .sii-numero,
.receipt-container .iva-label,
.receipt-container .iva-value {
    color: #1a1a1a !important;
    -webkit-text-fill-color: #1a1a1a !important;
    opacity: 1 !important;
    font-weight: 400 !important;
}

/* Forzar nitidez en tablas y celdas al rasterizar en móviles */
.receipt-container .custom-table {
    border-color: #1a1a1a !important;
}

.receipt-container .custom-table td {
    color: #1a1a1a !important;
}

@media screen and (max-width: 768px), print and (pointer: coarse) {
    .thermal-font, 
    .content-area, 
    .small-text, 
    .thermal-text-block, 
    .item-value, 
    .item-desc, 
    .sii-texto, 
    .sii-numero {
        font-weight: 400 !important;
        color: #111111 !important;
        -webkit-text-fill-color: #111111 !important;
    }
}