:root {
    --bg-dark: #0f172a;
    --bg-darker: #020617;
    --bg-card: #1e293b;
    --bg-global: #0f172a;
    --bg-tarjetas: #1e293b;
    --text-global: #f8fafc;
    --text-muted: #94a3b8;
    --border-theme: #334155;
    --field-bg: #1e293b;
    --cian-itecnova: #38E0C4;
    --cian-hover: #2bc0a6;
    --text-light: var(--text-global);
    --text-gray: var(--text-muted);
    --border: var(--border-theme);
    --danger: #f87171;
    --success: #4ade80;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Roboto', sans-serif;
    background-color: var(--bg-global);
    color: var(--text-global);
    line-height: 1.6;
}

h1, h2, h3, .sidebar-logo {
    font-family: 'Rajdhani', sans-serif;
}

/* Layout con sidebar */
.admin-layout {
    display: flex;
    min-height: 100vh;
}

.sidebar {
    width: 260px;
    background-color: var(--brand-primary, var(--bg-darker));
    border-right: 1px solid var(--border);
    padding: 1.5rem 1rem;
    display: flex;
    flex-direction: column;
    position: fixed;
    height: 100vh;
    left: 0;
    top: 0;
    overflow: hidden;
}

.sidebar-logo {
    font-family: 'Rajdhani', sans-serif;
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--text-light);
    text-decoration: none;
    letter-spacing: 1px;
}

.sidebar-logo span {
    color: var(--brand-secondary, var(--cian-itecnova));
}

.sidebar-logo-brand {
    display: block;
    padding: 0 0.25rem;
    margin-bottom: 0.25rem;
}

.sidebar-logo-img {
    display: block;
    max-width: 100%;
    max-height: 48px;
    object-fit: contain;
}

.sidebar-logo-text {
    font-family: 'Rajdhani', sans-serif;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--text-light);
    letter-spacing: 0.04em;
    line-height: 1.2;
    word-break: break-word;
}

.admin-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin: -1rem -1rem 1.5rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--border-theme);
}

.admin-topbar-start {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
    flex: 1;
}

.admin-topbar-brand {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
}

.admin-topbar-meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    justify-content: flex-end;
    margin-left: auto;
}

.admin-topbar-quick-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 1rem;
    font-family: 'Rajdhani', sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 999px;
    transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
    white-space: nowrap;
}

.admin-topbar-quick-btn:hover {
    color: #fff;
    filter: brightness(1.08);
    transform: translateY(-1px);
}

.admin-topbar-quick-btn--pos {
    background: linear-gradient(135deg, #16a34a 0%, #15803d 100%);
    box-shadow: 0 2px 8px rgba(22, 163, 74, 0.35);
}

.admin-topbar-quick-btn--pos:hover {
    box-shadow: 0 4px 14px rgba(22, 163, 74, 0.45);
}

.admin-topbar-quick-btn--taller {
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.35);
}

.admin-topbar-quick-btn--taller:hover {
    box-shadow: 0 4px 14px rgba(37, 99, 235, 0.45);
}

.admin-topbar-logo {
    height: 2.25rem;
    max-width: min(220px, 42vw);
    object-fit: contain;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.25));
}

.admin-topbar-title {
    font-family: 'Rajdhani', sans-serif;
    font-size: clamp(1.1rem, 3vw, 1.5rem);
    font-weight: 700;
    color: var(--text-global);
    letter-spacing: 0.05em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.admin-topbar-user {
    font-size: 0.875rem;
    color: var(--text-gray);
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--border-theme);
    background: color-mix(in srgb, var(--bg-tarjetas) 80%, transparent);
    white-space: nowrap;
}

.admin-sidebar-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    border: 1px solid var(--border-theme);
    border-radius: 0.5rem;
    background: var(--bg-tarjetas);
    color: var(--text-global);
    cursor: pointer;
    flex-shrink: 0;
    transition: background-color 0.2s, border-color 0.2s;
}

.admin-sidebar-toggle:hover {
    border-color: var(--brand-secondary);
    background: color-mix(in srgb, var(--brand-secondary) 12%, var(--bg-tarjetas));
}

.admin-hamburger,
.admin-hamburger::before,
.admin-hamburger::after {
    display: block;
    width: 1.25rem;
    height: 2px;
    background: currentColor;
    border-radius: 1px;
    position: relative;
}

.admin-hamburger::before,
.admin-hamburger::after {
    content: '';
    position: absolute;
    left: 0;
}

.admin-hamburger::before {
    top: -6px;
}

.admin-hamburger::after {
    top: 6px;
}

.admin-sidebar-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(2, 6, 23, 0.65);
    backdrop-filter: blur(2px);
}

body.admin-sidebar-open .admin-sidebar-backdrop {
    display: block;
}

.admin-table-scroll {
    overflow-x: auto;
    width: 100%;
    -webkit-overflow-scrolling: touch;
}

.password-field-wrap {
    position: relative;
}

.password-field-wrap input {
    padding-right: 2.75rem !important;
}

.password-toggle {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: none;
    border-radius: 0.375rem;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.password-toggle:hover {
    color: var(--brand-secondary);
    background: color-mix(in srgb, var(--brand-secondary) 10%, transparent);
}

.password-toggle svg {
    width: 1.15rem;
    height: 1.15rem;
    fill: currentColor;
}

.password-toggle .icon-eye-off {
    display: none;
}

.password-toggle.is-visible .icon-eye {
    display: none;
}

.password-toggle.is-visible .icon-eye-off {
    display: block;
}

@media (max-width: 768px) {
    .admin-sidebar-toggle {
        display: inline-flex;
    }

    .sidebar {
        z-index: 1050;
        transform: translateX(-100%);
        transition: transform 0.25s ease;
        box-shadow: 4px 0 24px rgba(0, 0, 0, 0.35);
    }

    .sidebar.is-open {
        transform: translateX(0);
    }

    .main-content {
        margin-left: 0 !important;
        padding: 1rem 1rem 2rem !important;
    }

    .admin-topbar {
        margin: -0.5rem -0.25rem 1rem;
    }
}

.sidebar-subtitle {
    font-size: 0.8rem;
    color: var(--text-gray);
    margin-top: 0.25rem;
    margin-bottom: 1rem;
    padding: 0 0.5rem;
}

.sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    flex: 1;
    overflow-y: auto;
    min-height: 0;
    padding-right: 0.25rem;
}

.sidebar-nav::-webkit-scrollbar {
    width: 6px;
}

.sidebar-nav::-webkit-scrollbar-thumb {
    background-color: var(--border);
    border-radius: 3px;
}

.sidebar-link,
.sidebar-nav a {
    color: #f1f5f9 !important;
    text-decoration: none;
    padding: 0.75rem 1rem;
    border-radius: 6px;
    transition: all 0.2s ease;
    font-weight: 500;
    display: block;
}

.sidebar-link-sub {
    padding: 0.6rem 1rem 0.6rem 1.35rem;
    font-size: 0.92rem;
}

.sidebar-link-sub .fa-sm.me-2 {
    margin-right: 0.5rem;
    font-size: 0.875em;
    vertical-align: -0.05em;
}

.sidebar-link-sub .opacity-50 {
    opacity: 0.5;
}

.sidebar-link-sub:hover .opacity-50,
.sidebar-link-sub.active .opacity-50 {
    opacity: 0.72;
}

.sidebar-link .sidebar-badge,
.sidebar-link-sub .sidebar-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    margin-left: 0.45rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: #dc2626;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1;
    vertical-align: middle;
}

.sidebar-nav a:hover,
.sidebar-nav a.active,
.sidebar-link:hover,
.sidebar-link.active {
    color: var(--brand-secondary, var(--cian-itecnova));
    background-color: color-mix(in srgb, var(--brand-secondary, #38E0C4) 12%, transparent);
}

.sidebar-accordion {
    border: 1px solid transparent;
    border-radius: 8px;
}

.sidebar-accordion-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    background: transparent;
    border: none;
    border-radius: 6px;
    color: #f1f5f9 !important;
    font-family: 'Rajdhani', sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}

.sidebar-accordion-toggle:hover {
    background-color: rgba(56, 224, 196, 0.06);
    color: var(--cian-itecnova);
}

.sidebar-accordion-icon {
    font-size: 0.85rem;
    transition: transform 0.2s ease;
    color: var(--text-gray);
}

.sidebar-accordion.is-open .sidebar-accordion-icon {
    transform: rotate(180deg);
}

.sidebar-accordion-panel {
    display: none;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.15rem 0 0.35rem;
}

.sidebar-accordion.is-open .sidebar-accordion-panel {
    display: flex;
}

.sidebar-footer {
    border-top: 1px solid var(--border);
    padding-top: 1rem;
    margin-top: 0.75rem;
    flex-shrink: 0;
}

.sidebar-logout {
    color: var(--danger);
    text-decoration: none;
    font-size: 0.95rem;
    transition: opacity 0.2s;
}

.sidebar-logout:hover {
    opacity: 0.85;
}

.main-content {
    flex: 1;
    margin-left: 260px;
    padding: 2.5rem 3rem;
    background-color: var(--bg-global);
    color: var(--text-global);
    min-height: 100vh;
}

.pos-precio-ref {
    font-size: 0.65rem;
    color: #64748b;
    margin-top: 2px;
    font-weight: 400;
}

.page-header {
    margin-bottom: 2rem;
}

.page-header h1 {
    font-size: 2rem;
    font-weight: 700;
    color: var(--text-global);
}

.page-header p {
    color: var(--text-gray);
    margin-top: 0.25rem;
}

/* Botones de acción en cabeceras de vista (marca blanca) */
.btn-header-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    background-color: var(--brand-secondary) !important;
    color: var(--text-on-secondary, #0f172a) !important;
    font-weight: 600;
    padding: 0.625rem 1.25rem;
    border-radius: 0.75rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
    transition: opacity 0.15s ease, filter 0.15s ease;
    text-decoration: none !important;
    border: none !important;
    cursor: pointer;
    font-size: 0.9375rem;
    line-height: 1.25;
}

.btn-header-action:hover {
    opacity: 0.88;
    filter: brightness(1.04);
}

.btn-header-action--outline {
    background-color: transparent !important;
    color: var(--brand-secondary) !important;
    border: 2px solid var(--brand-secondary) !important;
    box-shadow: none;
}

.btn-header-action--outline:hover {
    background-color: color-mix(in srgb, var(--brand-secondary) 12%, transparent) !important;
    opacity: 1;
}

/* Cabeceras: anular grises / text-black fijos en botones de acción */
body.admin-themed header.mb-6 .btn-header-action,
body.admin-themed header.mb-6 a[class*="bg-itecnova"],
body.admin-themed header.mb-6 a[class*="bg-slate-7"],
body.admin-themed header.mb-6 button[class*="bg-itecnova"],
body.admin-themed header.mb-6 button[class*="bg-slate-7"] {
    background-color: var(--brand-secondary) !important;
    color: var(--text-on-secondary, #0f172a) !important;
    border-color: transparent !important;
    font-weight: 600;
}

body.admin-themed header.mb-6 .btn-header-action:hover,
body.admin-themed header.mb-6 a[class*="bg-itecnova"]:hover,
body.admin-themed header.mb-6 a[class*="bg-slate-7"]:hover,
body.admin-themed header.mb-6 button[class*="bg-itecnova"]:hover,
body.admin-themed header.mb-6 button[class*="bg-slate-7"]:hover {
    opacity: 0.88;
    filter: brightness(1.04);
}

/* Cards page-header clásico + acciones en la misma fila */
body.admin-themed header.page-header + .header-actions a,
body.admin-themed .page-header-row .btn-header-action,
body.admin-themed .page-header-row a.btn-header-action {
    background-color: var(--brand-secondary) !important;
    color: var(--text-on-secondary, #0f172a) !important;
}

/* Cards y dashboard */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.stat-card {
    background-color: var(--bg-tarjetas);
    border: 1px solid var(--border-theme);
    border-radius: 8px;
    padding: 1.5rem;
}

.stat-card h3 {
    font-size: 0.9rem;
    color: var(--text-gray);
    font-weight: 400;
    margin-bottom: 0.5rem;
}

.stat-card .stat-value {
    font-family: 'Rajdhani', sans-serif;
    font-size: 2rem;
    font-weight: 700;
    color: var(--brand-secondary, var(--cian-itecnova));
}

.welcome-card {
    background-color: var(--bg-tarjetas);
    border: 1px solid var(--border-theme);
    border-radius: 8px;
    padding: 2rem;
}

.welcome-card h2 {
    margin-bottom: 0.75rem;
}

.welcome-card p {
    color: var(--text-gray);
}

/* Formularios */
.card {
    background-color: var(--bg-tarjetas);
    border: 1px solid var(--border-theme);
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 2rem;
    color: var(--text-global);
}

.card h2 {
    font-size: 1.25rem;
    margin-bottom: 1rem;
}

.form-row {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: flex-end;
}

.form-group {
    flex: 1;
    min-width: 200px;
}

.form-group label {
    display: block;
    font-size: 0.85rem;
    color: var(--text-gray);
    margin-bottom: 0.4rem;
}

.form-group input,
.form-group input[type="number"] {
    width: 100%;
    padding: 0.75rem 1rem;
    background-color: var(--field-bg);
    border: 1px solid var(--border-theme);
    border-radius: 6px;
    color: var(--text-global);
    font-size: 1rem;
    transition: border-color 0.2s;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--cian-itecnova);
}

.form-group select,
.form-group textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    background-color: var(--field-bg);
    border: 1px solid var(--border-theme);
    border-radius: 6px;
    color: var(--text-global);
    font-size: 1rem;
    font-family: 'Roboto', sans-serif;
    transition: border-color 0.2s;
}

.form-group textarea {
    min-height: 100px;
    resize: vertical;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
}

.form-grid .form-group-full {
    grid-column: 1 / -1;
}

.form-check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.form-check input[type="checkbox"] {
    width: auto;
    accent-color: var(--cian-itecnova);
}

.form-hint {
    font-size: 0.8rem;
    color: var(--text-gray);
    margin-top: 0.35rem;
}

.form-actions {
    margin-top: 1.25rem;
}

.btn {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 6px;
    font-weight: 700;
    font-size: 0.95rem;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.2s ease;
    font-family: 'Roboto', sans-serif;
}

.btn-primary {
    background-color: var(--brand-secondary, var(--cian-itecnova)) !important;
    color: var(--text-on-secondary, #0f172a) !important;
    border: none !important;
}

.btn-primary:hover {
    filter: brightness(0.92);
}

.btn-danger {
    background-color: transparent;
    border: 1px solid var(--danger);
    color: var(--danger);
    padding: 0.45rem 0.9rem;
    font-size: 0.85rem;
}

.btn-danger:hover {
    background-color: rgba(248, 113, 113, 0.15);
}

.btn-edit {
    background-color: transparent;
    border: 1px solid #64748b;
    color: #94a3b8;
    padding: 0.45rem 0.9rem;
    font-size: 0.85rem;
}

.btn-edit:hover {
    border-color: var(--cian-itecnova);
    color: var(--cian-itecnova);
    background-color: rgba(56, 224, 196, 0.08);
}

.btn-secondary {
    background-color: color-mix(in srgb, var(--brand-secondary) 14%, var(--bg-tarjetas));
    border: 1px solid var(--brand-secondary);
    color: var(--text-global);
    padding: 0.75rem 1.25rem;
}

.btn-secondary:hover {
    background-color: var(--brand-secondary);
    color: var(--text-on-secondary, #0f172a);
    border-color: var(--brand-secondary);
}

.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: flex-end;
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--border);
}

.filter-bar .form-group {
    flex: 1;
    min-width: 160px;
    margin-bottom: 0;
}

/* Panel estandarizado de filtros (facturas, ventas, compras, RCV) */
.admin-filtros-panel {
    margin-bottom: 1.5rem;
}

.admin-filtros-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
    align-items: end;
}

@media (min-width: 768px) {
    .admin-filtros-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .admin-filtros-actions--span-1 { grid-column: span 1; }
    .admin-filtros-actions--span-2 { grid-column: span 2; }
    .admin-filtros-actions--span-3 { grid-column: span 3; }
    .admin-filtros-actions--span-4 { grid-column: span 4; }
}

.admin-filtros-field {
    min-width: 0;
}

.admin-filtros-label {
    display: block;
    font-size: 0.875rem;
    color: var(--text-muted);
    margin-bottom: 0.35rem;
    font-weight: 500;
}

.admin-filtros-control {
    display: block;
    width: 100%;
    min-height: 42px;
    padding: 0.5rem 0.75rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.35;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.admin-filtros-control:focus {
    outline: none;
    border-color: var(--brand-secondary, #38E0C4) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--brand-secondary, #38E0C4) 25%, transparent);
}

.admin-filtros-control[type="date"] {
    color-scheme: dark;
    appearance: none;
    -webkit-appearance: none;
}

.admin-filtros-control[type="date"]::-webkit-calendar-picker-indicator {
    filter: invert(0.85);
    cursor: pointer;
    opacity: 0.9;
}

.admin-filtros-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.admin-filtros-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0.5rem 1.25rem !important;
    font-size: 0.875rem;
    font-weight: 700;
    border-radius: 0.5rem;
    text-decoration: none;
    white-space: nowrap;
}

body.admin-themed .admin-filtros-actions .btn-primary {
    background-color: var(--brand-secondary, #38E0C4) !important;
    color: var(--text-on-secondary, #0f172a) !important;
    border: none !important;
}

body.admin-themed .admin-filtros-actions .btn-secondary {
    background-color: color-mix(in srgb, var(--bg-tarjetas) 88%, #000) !important;
    border: 1px solid var(--border-theme, #475569) !important;
    color: var(--text-global, #e2e8f0) !important;
}

body.admin-themed .admin-filtros-actions .btn-secondary:hover {
    border-color: var(--brand-secondary, #38E0C4) !important;
    color: var(--text-global, #e2e8f0) !important;
    background-color: color-mix(in srgb, var(--brand-secondary) 12%, var(--bg-tarjetas)) !important;
}

.actions-cell {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}

.current-image-preview {
    margin-top: 0.75rem;
}

.current-image-preview img {
    max-width: 120px;
    border-radius: 6px;
    border: 1px solid var(--border);
}

.data-table .product-thumb,
.product-thumb {
    width: 60px !important;
    height: 60px !important;
    max-width: 60px;
    max-height: 60px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid var(--border);
    background-color: var(--bg-card);
    display: block;
}

.sidebar-section-title {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-gray);
    margin-top: 1.25rem;
    margin-bottom: 0.5rem;
    padding: 0 1rem;
}

.import-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1.5rem;
}

.import-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1rem;
    align-items: center;
}

.import-result {
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 6px;
    font-size: 0.9rem;
    background-color: var(--bg-card);
    border: 1px solid var(--border);
}

.import-result ul {
    margin-top: 0.5rem;
    padding-left: 1.25rem;
    color: var(--text-gray);
}

/* Modal */
.modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background-color: rgba(2, 6, 23, 0.85);
    z-index: 2000;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
}

.modal-overlay.active {
    display: flex;
}

.modal-box {
    width: 100%;
    max-width: 520px;
    background-color: var(--bg-darker);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 2rem;
    max-height: 90vh;
    overflow-y: auto;
}

.modal-box--cliente {
    max-width: 560px;
}

.modal-box .modal-select-categoria,
.modal-box .form-group select {
    display: block !important;
    width: 100% !important;
    min-height: 2.75rem;
    padding: 0.6rem 0.75rem;
    background-color: var(--field-bg, #334155) !important;
    color: var(--text-global, #f8fafc) !important;
    border: 1px solid var(--border-theme, #475569) !important;
    border-radius: 0.5rem;
    appearance: auto;
    -webkit-appearance: menulist;
}

.modal-field-categoria {
    padding-top: 0.25rem;
    border-top: 1px solid var(--border-theme, #334155);
    margin-top: 0.25rem;
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}

.modal-header h2 {
    font-size: 1.35rem;
}

.modal-close {
    background: none;
    border: none;
    color: var(--text-gray);
    font-size: 1.5rem;
    cursor: pointer;
    line-height: 1;
}

.modal-close:hover {
    color: var(--cian-itecnova);
}

/* Caja - apertura central */
.caja-apertura-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 50vh;
}

.caja-apertura-card {
    width: 100%;
    max-width: 420px;
    text-align: center;
    padding: 2.5rem;
}

.caja-apertura-card h2 {
    margin-bottom: 0.5rem;
}

.caja-apertura-card p {
    color: var(--text-gray);
    margin-bottom: 2rem;
}

.caja-apertura-card .form-group input {
    text-align: center;
    font-size: 1.5rem;
    font-family: 'Rajdhani', sans-serif;
    font-weight: 700;
}

.btn-caja-abrir {
    width: 100%;
    padding: 1rem;
    font-size: 1.1rem;
    margin-top: 0.5rem;
}

.btn-caja-cerrar {
    background-color: transparent;
    border: 1px solid var(--danger);
    color: var(--danger);
    padding: 0.85rem 1.75rem;
    font-weight: 700;
}

.btn-caja-cerrar:hover {
    background-color: rgba(248, 113, 113, 0.15);
}

/* Terminal POS */
.sidebar-pos-terminal {
    border: 1px solid rgba(56, 224, 196, 0.35);
    background-color: rgba(56, 224, 196, 0.08) !important;
    font-weight: 700;
}

.sidebar-pos-terminal.active,
.sidebar-pos-terminal:hover {
    border-color: var(--cian-itecnova);
    color: var(--cian-itecnova) !important;
}

.pos-bloqueado {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 55vh;
}

.pos-bloqueado .card {
    max-width: 480px;
    text-align: center;
    padding: 3rem 2rem;
}

.pos-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 1.5rem;
    align-items: start;
}

@media (max-width: 1100px) {
    .pos-layout {
        grid-template-columns: 1fr;
    }
}

.pos-busqueda-wrap {
    position: relative;
    margin-bottom: 1rem;
}

.pos-resultados {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 100;
    background-color: var(--bg-darker);
    border: 1px solid var(--border);
    border-radius: 8px;
    max-height: 280px;
    overflow-y: auto;
    display: none;
    margin-top: 0.35rem;
}

.pos-resultados.active {
    display: block;
}

.pos-resultado-item {
    padding: 0.75rem 1rem;
    cursor: pointer;
    border-bottom: 1px solid var(--border);
    transition: background 0.15s;
}

.pos-resultado-item:hover {
    background-color: rgba(56, 224, 196, 0.08);
}

.pos-resultado-item:last-child {
    border-bottom: none;
}

.pos-resultado-item small {
    color: var(--text-gray);
    display: block;
    margin-top: 0.2rem;
}

.pos-carrito-input-cant {
    width: 70px;
    padding: 0.35rem 0.5rem;
    background-color: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--text-light);
    text-align: center;
}

.pos-panel-cobro {
    position: sticky;
    top: 1.5rem;
}

.pos-total-grande {
    font-family: 'Rajdhani', sans-serif;
    font-size: 2.75rem;
    font-weight: 700;
    color: var(--cian-itecnova);
    text-align: center;
    margin: 1.25rem 0;
    line-height: 1;
}

.pos-efectivo-fields {
    display: none;
    margin-top: 1rem;
}

.pos-efectivo-fields.active {
    display: block;
}

.pos-cambio {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--success);
    text-align: center;
    margin-top: 0.5rem;
}

.btn-procesar-venta {
    width: 100%;
    padding: 1.15rem;
    font-size: 1.15rem;
    margin-top: 1.25rem;
}

.pos-empty-cart {
    text-align: center;
    padding: 2rem;
    color: var(--text-gray);
}

.badge-disponible {
    background-color: rgba(74, 222, 128, 0.15);
    color: var(--success);
}

.badge-consultar {
    background-color: rgba(56, 224, 196, 0.15);
    color: var(--cian-itecnova);
}

.badge-agotado {
    background-color: rgba(248, 113, 113, 0.15);
    color: var(--danger);
}

/* Alertas */
.alert {
    padding: 0.85rem 1rem;
    border-radius: 6px;
    margin-bottom: 1.5rem;
    font-size: 0.95rem;
}

.alert-success {
    background-color: rgba(74, 222, 128, 0.12);
    border: 1px solid var(--success);
    color: var(--success);
}

.alert-error {
    background-color: rgba(248, 113, 113, 0.12);
    border: 1px solid var(--danger);
    color: var(--danger);
}

/* Tabla */
.table-wrap {
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.95rem;
}

.data-table th,
.data-table td {
    padding: 0.85rem 1rem;
    text-align: left;
    border-bottom: 1px solid var(--border);
}

.data-table th {
    color: var(--text-gray);
    font-weight: 500;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.data-table tbody tr:hover {
    background-color: rgba(56, 224, 196, 0.04);
}

.badge {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 500;
}

.badge-active {
    background-color: rgba(74, 222, 128, 0.15);
    color: var(--success);
}

.badge-inactive {
    background-color: rgba(148, 163, 184, 0.15);
    color: var(--text-gray);
}

.badge-entrada {
    background-color: rgba(74, 222, 128, 0.15);
    color: var(--success);
}

.badge-salida {
    background-color: rgba(248, 113, 113, 0.15);
    color: var(--danger);
}

.badge-neutral {
    background-color: rgba(148, 163, 184, 0.15);
    color: var(--text-gray);
}

.product-search-wrap {
    position: relative;
}

.product-search-results {
    position: absolute;
    z-index: 50;
    left: 0;
    right: 0;
    top: calc(100% - 0.25rem);
    max-height: 260px;
    overflow-y: auto;
    margin: 0;
    padding: 0.35rem 0;
    list-style: none;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

.product-search-results li button {
    width: 100%;
    text-align: left;
    padding: 0.65rem 0.85rem;
    border: none;
    background: transparent;
    color: var(--text-light);
    font-family: 'Roboto', sans-serif;
    font-size: 0.9rem;
    cursor: pointer;
}

.product-search-results li button:hover {
    background: rgba(56, 224, 196, 0.08);
    color: var(--cian-itecnova);
}

.product-search-results .muted {
    color: var(--text-gray);
    font-size: 0.8rem;
}

.product-search-results .product-search-empty {
    padding: 0.75rem 0.85rem;
    color: var(--text-gray);
    font-size: 0.85rem;
}

.product-search-selected {
    margin-top: 0.5rem;
    font-size: 0.85rem;
    color: var(--text-gray);
}

.product-search-selected.is-selected {
    color: var(--cian-itecnova);
    font-weight: 600;
}

.empty-state {
    text-align: center;
    padding: 2rem;
    color: var(--text-muted);
}

/* —— Motor de tema white label (modo claro / oscuro) —— */
.bg-darkbg,
.bg-\[var\(--bg-global\)\] {
    background-color: var(--bg-global) !important;
}

.bg-darkpanel,
.bg-darkticket,
.bg-\[var\(--bg-tarjetas\)\] {
    background-color: var(--bg-tarjetas) !important;
}

.text-theme,
.text-\[var\(--text-global\)\] {
    color: var(--text-global) !important;
}

.text-muted-theme,
.text-\[var\(--text-muted\)\] {
    color: var(--text-muted) !important;
}

.border-theme,
.border-\[var\(--border-theme\)\] {
    border-color: var(--border-theme) !important;
}

.theme-field,
.theme-input {
    background-color: var(--field-bg) !important;
    color: var(--text-global) !important;
    border: 1px solid var(--border-theme) !important;
}

.theme-field::placeholder,
.theme-input::placeholder {
    color: var(--text-muted);
    opacity: 0.85;
}

.admin-themed select.theme-field option,
.admin-themed select.theme-input option {
    background-color: #0f172a;
    color: #e2e8f0;
}

.admin-layout {
    background-color: var(--bg-global);
    color: var(--text-global);
}

/* Anula utilidades Tailwind estáticas dentro del panel (tema curado) */
.admin-layout .bg-slate-900,
.admin-layout .bg-gray-900,
.admin-layout .bg-darkbg,
body.admin-themed.bg-slate-900,
body.admin-themed.bg-darkbg {
    background-color: var(--bg-global) !important;
}

.admin-layout .bg-slate-800,
.admin-layout .bg-gray-800,
.admin-layout .bg-darkpanel,
.admin-layout .bg-darkticket {
    background-color: var(--bg-tarjetas) !important;
}

.admin-layout .text-slate-100,
.admin-layout .text-slate-200,
.admin-layout .text-gray-100,
.admin-layout .text-gray-200,
.admin-layout h1.text-white,
.admin-layout h2.text-white,
.admin-layout h3.text-white,
.admin-layout .text-white.font-semibold,
.admin-layout .text-white.font-bold:not([class*="bg-"]),
.admin-layout td.text-white,
.admin-layout dd.text-white,
.admin-layout p.text-white:not([class*="bg-"]) {
    color: var(--text-global) !important;
}

.admin-layout .text-slate-400,
.admin-layout .text-slate-500,
.admin-layout .text-gray-400,
.admin-layout .text-gray-500 {
    color: var(--text-muted) !important;
}

.admin-layout .text-slate-300,
.admin-layout .text-gray-300 {
    color: var(--text-muted) !important;
}

.admin-layout .border-slate-700,
.admin-layout .border-slate-600,
.admin-layout .border-gray-700 {
    border-color: var(--border-theme) !important;
}

.admin-layout .bg-slate-800,
.admin-layout .bg-slate-800\/80,
.admin-layout input.bg-slate-800,
.admin-layout select.bg-slate-800,
.admin-layout textarea.bg-slate-800 {
    background-color: var(--field-bg) !important;
    color: var(--text-global) !important;
    border-color: var(--border-theme) !important;
}

main.main-content {
    background-color: var(--bg-global) !important;
    color: var(--text-global);
}

html {
    background-color: var(--bg-global);
}

/* —— Tema curado: clases invencibles (no dependen de Tailwind JIT) —— */
body.admin-themed {
    background-color: var(--bg-global) !important;
    color: var(--text-global) !important;
}

.theme-panel {
    background-color: var(--bg-tarjetas) !important;
    color: var(--text-global) !important;
}

.theme-text {
    color: var(--text-global) !important;
}

.theme-text-muted {
    color: var(--text-muted) !important;
}

.theme-input {
    background-color: var(--field-bg) !important;
    color: var(--text-global) !important;
    border: 1px solid var(--border-theme) !important;
}

.theme-input::placeholder {
    color: var(--text-muted);
    opacity: 0.85;
}

.theme-border {
    border-color: var(--border-theme) !important;
}

.admin-themed .admin-layout,
.admin-themed .main-content,
.admin-themed main.main-content {
    background-color: var(--bg-global) !important;
    color: var(--text-global) !important;
}

.admin-themed .stat-card,
.admin-themed .welcome-card,
.admin-themed .card,
.admin-themed .page-header h1 {
    color: var(--text-global) !important;
}

.admin-themed .stat-card,
.admin-themed .welcome-card,
.admin-themed .card {
    background-color: var(--bg-tarjetas) !important;
    border-color: var(--border-theme) !important;
}

.admin-themed .page-header p,
.admin-themed .form-hint,
.admin-themed .stat-card h3 {
    color: var(--text-muted) !important;
}

.admin-themed .form-group label {
    color: var(--text-muted) !important;
}

.admin-themed .admin-topbar {
    border-bottom-color: var(--border-theme) !important;
}

.admin-themed .admin-topbar-title {
    color: var(--text-global) !important;
}

.admin-themed .admin-topbar-user {
    color: var(--text-muted) !important;
}

/* Cirugía estética Fase 1 + nuclear: tema y contraste definitivos */

body.admin-themed {
    background-color: var(--bg-global) !important;
    color: var(--text-global) !important;
}

body.admin-themed .admin-layout {
    background-color: var(--bg-global) !important;
    color: var(--text-global) !important;
}

body.admin-themed main.main-content,
body.admin-themed .main-content {
    background-color: var(--bg-global) !important;
    color: var(--text-global) !important;
}

body.admin-themed aside.sidebar {
    background-color: var(--brand-primary) !important;
}

body.admin-themed .theme-panel,
body.admin-themed .card,
body.admin-themed .stat-card {
    background-color: var(--bg-tarjetas) !important;
    border: 1px solid var(--border-theme) !important;
    color: var(--text-global) !important;
}

/* Forzar tipografía global en el tema */
body.admin-themed h1, body.admin-themed h2, body.admin-themed h3,
body.admin-themed h4, body.admin-themed h5, body.admin-themed h6,
body.admin-themed p, body.admin-themed span, body.admin-themed div,
body.admin-themed label {
    color: var(--text-global) !important;
}

/* Forzar textos secundarios y atenuados */
body.admin-themed .text-muted, body.admin-themed .text-gray-400,
body.admin-themed .text-gray-500, body.admin-themed .text-sm {
    color: var(--text-muted) !important;
}

/* Enlaces del área de trabajo (no sidebar).
   Se excluyen los enlaces-botón con fondo propio (bg-red-600, bg-slate-700, etc.)
   para no pisar su text-white y dejarlos ilegibles. */
body.admin-themed .main-content a:not(.btn):not(.btn-primary):not(.btn-danger):not(.btn-edit):not(.btn-header-action):not(.btn-outline):not(.btn-header-action--outline):not([class*="bg-"]),
body.admin-themed main a:not(.sidebar-link):not(.sidebar-link-sub):not(.sidebar-logo):not(.btn):not(.btn-primary):not(.btn-header-action):not(.btn-outline):not(.btn-header-action--outline):not([class*="bg-"]) {
    color: var(--brand-secondary) !important;
    transition: opacity 0.2s;
}
body.admin-themed .main-content a:not(.btn):not(.btn-header-action):not(.btn-outline):not(.btn-header-action--outline):hover,
body.admin-themed main a:not(.sidebar-link):not(.sidebar-logo):not(.btn):not(.btn-header-action):not(.btn-outline):not(.btn-header-action--outline):hover {
    opacity: 0.8 !important;
}

/* Sidebar: enlaces legibles sobre color primario */
body.admin-themed aside.sidebar a.sidebar-link,
body.admin-themed aside.sidebar a.sidebar-link-sub,
body.admin-themed aside.sidebar .sidebar-nav a,
body.admin-themed aside.sidebar a.nav-link {
    color: #f1f5f9 !important;
}
body.admin-themed aside.sidebar a.sidebar-link:hover,
body.admin-themed aside.sidebar a.sidebar-link.active,
body.admin-themed aside.sidebar a.sidebar-link-sub:hover,
body.admin-themed aside.sidebar a.sidebar-link-sub.active {
    color: var(--brand-secondary) !important;
}

body.admin-themed aside.sidebar .sidebar-accordion-toggle {
    color: #f1f5f9 !important;
}

/* DataTables y Tablas Nativas */
body.admin-themed table th {
    background-color: var(--bg-global) !important;
    color: var(--text-global) !important;
    border-bottom: 1px solid var(--border-theme) !important;
}
body.admin-themed table td {
    background-color: var(--bg-tarjetas) !important;
    color: var(--text-global) !important;
    border-bottom: 1px solid var(--border-theme) !important;
}

/* ─── Normalización global de botones (marca blanca) ─── */

/* 1. Botones Primarios y Genéricos (Submit, Filtrar, Guardar) */
body.admin-themed .btn:not(.btn-outline):not(.btn-danger):not(.btn-edit):not(.btn-secondary),
body.admin-themed button[type="submit"]:not(.btn-outline):not(.btn-danger):not(.btn-edit):not(.sidebar-accordion-toggle),
body.admin-themed button[type="button"]:not(.btn-outline):not(.btn-light):not(.btn-danger):not(.btn-edit):not(.btn-wa-notify):not(.btn-wa-flotante):not(.sidebar-accordion-toggle):not(.btn-header-action--outline):not(.paginate_button):not(.dt-button):not([class*="bg-blue"]):not([class*="bg-red"]):not([class*="bg-emerald"]):not([class*="bg-green"]) {
    background-color: var(--brand-secondary) !important;
    color: var(--text-on-secondary) !important;
    border: none !important;
    opacity: 1 !important;
    transition: filter 0.2s;
}

body.admin-themed .btn:not(.btn-outline):not(.btn-danger):not(.btn-edit):hover,
body.admin-themed button[type="submit"]:not(.btn-outline):not(.btn-danger):not(.btn-edit):hover,
body.admin-themed button[type="button"]:not(.btn-outline):not(.btn-light):not(.btn-danger):not(.btn-edit):not(.btn-wa-notify):not(.btn-wa-flotante):not(.sidebar-accordion-toggle):not(.btn-header-action--outline):not(.paginate_button):not(.dt-button):not([class*="bg-blue"]):not([class*="bg-red"]):not([class*="bg-emerald"]):not([class*="bg-green"]):hover {
    filter: brightness(0.9);
}

/* 2. Botones de Acción Peligrosa / Eliminar / Desactivar (Mantener legibilidad) */
body.admin-themed .btn-danger,
body.admin-themed [class*="bg-red-5"],
body.admin-themed [class*="bg-red-6"],
body.admin-themed [class*="bg-red-7"],
body.admin-themed button[class*="bg-red"],
body.admin-themed a[class*="bg-red"] {
    background-color: #ef4444 !important;
    color: #ffffff !important;
    border: none !important;
}

/* 3. Botones Outline o de Limpieza (Ej: botón 'Limpiar' o 'Cancelar') */
body.admin-themed .btn-outline,
body.admin-themed .btn-light,
body.admin-themed .bg-gray-500,
body.admin-themed .bg-slate-500,
body.admin-themed .bg-slate-600,
body.admin-themed .bg-slate-700,
body.admin-themed a.bg-slate-600,
body.admin-themed a.bg-slate-700,
body.admin-themed button.bg-slate-600,
body.admin-themed button.bg-slate-700 {
    background-color: transparent !important;
    border: 1px solid var(--text-muted) !important;
    color: var(--text-global) !important;
    opacity: 1 !important;
}

body.admin-themed .btn-outline:hover,
body.admin-themed .btn-light:hover,
body.admin-themed .bg-slate-500:hover,
body.admin-themed .bg-slate-600:hover,
body.admin-themed .bg-slate-700:hover,
body.admin-themed a.bg-slate-600:hover,
body.admin-themed a.bg-slate-700:hover,
body.admin-themed button.bg-slate-600:hover,
body.admin-themed button.bg-slate-700:hover {
    filter: brightness(1.05);
    background-color: color-mix(in srgb, var(--text-muted) 12%, transparent) !important;
}

/* Compatibilidad: clases legacy → marca secundaria */
body.admin-themed button.bg-brand,
body.admin-themed .btn-brand,
body.admin-themed .btn-primary,
body.admin-themed .bg-itecnova,
body.admin-themed button.bg-itecnova,
body.admin-themed a.bg-itecnova {
    background-color: var(--brand-secondary) !important;
    color: var(--text-on-secondary) !important;
    border: none !important;
}

/* Corrección para Enlaces que funcionan como Botones (Sobrescribir color de enlace global) */
body.admin-themed a.btn,
body.admin-themed a.btn-header-action {
    color: var(--text-on-secondary) !important;
    background-color: var(--brand-secondary) !important;
}

/* Corrección para Botones Outline en formato Enlace */
body.admin-themed a.btn-outline,
body.admin-themed a.btn-header-action--outline {
    color: var(--text-global) !important;
    background-color: transparent !important;
    border: 1px solid var(--text-muted) !important;
}

/* Asegurar que al pasar el mouse el texto no desaparezca */
body.admin-themed a.btn:hover,
body.admin-themed a.btn-header-action:hover {
    color: var(--text-on-secondary) !important;
    opacity: 0.9 !important;
}

body.admin-themed a.btn-outline:hover,
body.admin-themed a.btn-header-action--outline:hover {
    color: var(--text-global) !important;
    opacity: 1 !important;
}

/* WhatsApp Web — notificaciones al cliente */
.btn-wa-notify,
a.btn-wa-notify {
    background-color: #25d366 !important;
    color: #fff !important;
    border: none !important;
    text-decoration: none !important;
    transition: background 0.15s ease, transform 0.1s ease;
}
.btn-wa-notify:hover,
a.btn-wa-notify:hover {
    background-color: #1da851 !important;
    color: #fff !important;
    transform: translateY(-1px);
}

/* Enlaces de texto dentro de paneles y tablas */
body.admin-themed table a:not(.btn):not(.btn-outline):not(.btn-header-action):not(.btn-header-action--outline),
body.admin-themed .theme-panel a:not(.btn):not(.btn-outline):not(.btn-header-action):not(.btn-header-action--outline) {
    color: #38bdf8 !important;
    text-decoration: none !important;
    font-weight: 500;
    transition: color 0.2s;
}

body.admin-themed table a:not(.btn):not(.btn-outline):not(.btn-header-action):not(.btn-header-action--outline):hover,
body.admin-themed .theme-panel a:not(.btn):not(.btn-outline):not(.btn-header-action):not(.btn-header-action--outline):hover {
    color: #7dd3fc !important;
    text-decoration: underline !important;
}

/* Botonera Accesos rápidos (dashboard) */
body.admin-themed .dashboard-quick-links a.btn-outline {
    display: inline-block !important;
    padding: 0.5rem 1rem !important;
    margin-right: 0.5rem !important;
    margin-bottom: 0.5rem !important;
    font-size: 0.875rem !important;
    line-height: 1.25rem !important;
    border-radius: 0.375rem !important;
    border: 1px solid #6b7280 !important;
    background-color: transparent !important;
    color: var(--text-global) !important;
    text-decoration: none !important;
    font-weight: 600;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

body.admin-themed .dashboard-quick-links a.btn-outline:hover {
    background-color: #374151 !important;
    border-color: #9ca3af !important;
    color: #f8fafc !important;
    text-decoration: none !important;
}

/* Impresión: Kardex, compras y reportes con encabezado corporativo */
@media print {
    body.admin-themed aside.sidebar,
    body.admin-themed .admin-sidebar-backdrop,
    body.admin-themed .admin-topbar,
    body.admin-themed .admin-sidebar-toggle,
    body.admin-themed .no-print,
    body.admin-themed .filter-bar,
    body.admin-themed .page-header,
    body.admin-themed .dataTables_wrapper .dataTables_length,
    body.admin-themed .dataTables_wrapper .dataTables_filter,
    body.admin-themed .dataTables_wrapper .dataTables_paginate {
        display: none !important;
    }

    body.admin-themed .main-content,
    body.admin-themed main.main-content {
        margin-left: 0 !important;
        padding: 0.5rem !important;
        width: 100% !important;
    }

    body.admin-themed .print-report-header {
        display: flex !important;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 1.5rem;
        padding-bottom: 1rem;
        border-bottom: 1px solid #ccc;
    }

    body.admin-themed .print-report-header.hidden {
        display: flex !important;
    }

    body.admin-themed .print-inventario-area:not(.print-inventario-active),
    body.admin-themed #catalogo-print-area:not(.print-catalogo-active) {
        display: none !important;
    }

    body.admin-themed .print-inventario-area.print-inventario-active,
    body.admin-themed #catalogo-print-area.print-catalogo-active,
    body.admin-themed #kardex-print-area,
    body.admin-themed #compras-print-area,
    body.admin-themed #taller-print-area.print-taller-active {
        border: none !important;
        box-shadow: none !important;
        background: #fff !important;
        color: #000 !important;
    }

    body.admin-themed #tabla-taller tr.no-print-row {
        display: none !important;
    }

    body.admin-themed #taller-print-area.print-taller-active table,
    body.admin-themed #taller-print-area.print-taller-active th,
    body.admin-themed #taller-print-area.print-taller-active td {
        color: #000 !important;
        border-color: #ccc !important;
        background: #fff !important;
    }

    body.admin-themed #kardex-print-area table,
    body.admin-themed #kardex-print-area th,
    body.admin-themed #kardex-print-area td,
    body.admin-themed #compras-print-area table,
    body.admin-themed #compras-print-area th,
    body.admin-themed #compras-print-area td {
        color: #000 !important;
        border-color: #ccc !important;
        background: #fff !important;
    }

    body.admin-themed .print-report-empresa,
    body.admin-themed .print-report-title {
        color: #000 !important;
    }

    body.admin-themed .rpt-header--solo-impresion {
        display: flex !important;
    }

    body.admin-themed .rpt-logo,
    body.admin-themed .print-report-logo {
        max-width: 200px !important;
        max-height: 80px !important;
        width: auto !important;
        height: auto !important;
        object-fit: contain !important;
    }

    body.admin-themed .rpt-table th {
        background: #0f172a !important;
        color: #fff !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}

/* Plantilla maestra de reportes (reporte_plantilla.php) — pantalla admin */
body.admin-themed .rpt-header--solo-impresion {
    display: none;
}
body.admin-themed .rpt-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid var(--border-color, #e2e8f0);
}
body.admin-themed .rpt-header-empresa {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}
body.admin-themed .rpt-logo,
body.admin-themed .print-report-logo {
    max-width: 200px;
    max-height: 80px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    flex-shrink: 0;
}
body.admin-themed .rpt-empresa-nombre {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
}
body.admin-themed .rpt-empresa-nit {
    margin: 0.25rem 0 0;
    font-size: 0.75rem;
    opacity: 0.85;
}
body.admin-themed .rpt-header-meta { text-align: right; flex-shrink: 0; }
body.admin-themed .rpt-titulo {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
body.admin-themed .rpt-fecha {
    margin: 0.35rem 0 0;
    font-size: 0.75rem;
    opacity: 0.8;
}
body.admin-themed #compras-print-area .rpt-table th,
body.admin-themed #kardex-print-area .rpt-table th,
body.admin-themed #taller-print-area .rpt-table th {
    background: #0f172a;
    color: #fff;
    padding: 8px 10px;
}
body.admin-themed .rpt-table {
    border-collapse: collapse;
    width: 100%;
}
body.admin-themed .rpt-table td {
    padding: 8px 10px;
    border-bottom: 1px solid #ddd;
}

/* POS móvil: botones de pago en modal */
@media (max-width: 1023px) {
    body.pos-terminal #btn_guardar_tipo_cambio,
    body.pos-terminal #btn-confirmar,
    body.pos-terminal .pos-pay-btn {
        min-height: 3rem;
        font-size: 1.1rem;
        touch-action: manipulation;
    }
}

/* SweetAlert2 - Dark Theme Forzado */
body.swal2-shown .swal2-container .swal2-popup,
body.admin-themed .swal2-popup.swal-dark-popup {
    background-color: #1e293b !important;
    color: #f8fafc !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
}
body.swal2-shown .swal2-container .swal2-title,
body.swal2-shown .swal2-container .swal2-html-container,
body.swal2-shown .swal2-container .swal2-content,
body.admin-themed .swal2-popup.swal-dark-popup .swal2-title,
body.admin-themed .swal2-popup.swal-dark-popup .swal2-html-container,
body.admin-themed .swal2-popup.swal-dark-popup .swal2-content {
    color: #f8fafc !important;
}
body.swal2-shown .swal2-container .swal2-html-container p,
body.swal2-shown .swal2-container .swal2-html-container strong {
    color: #f8fafc !important;
}
body.swal2-shown .swal2-container .swal2-icon.swal2-warning {
    border-color: #f59e0b !important;
    color: #f59e0b !important;
}
body.swal2-shown .swal2-container .swal2-icon.swal2-error {
    border-color: #ef4444 !important;
    color: #ef4444 !important;
}
body.swal2-shown .swal2-container .swal2-icon.swal2-success {
    border-color: #10b981 !important;
    color: #10b981 !important;
}
body.swal2-shown .swal2-container .swal2-icon.swal2-success [class^="swal2-success-line"] {
    background-color: #10b981 !important;
}
body.swal2-shown .swal2-container .swal2-icon.swal2-success .swal2-success-ring {
    border-color: rgba(16, 185, 129, 0.3) !important;
}
body.swal2-shown .swal2-container .swal2-validation-message {
    background: #0f172a !important;
    color: #f8fafc !important;
}
body.swal2-shown .swal2-container .swal2-styled.swal2-confirm {
    color: #fff !important;
}
