body.login-page { background: #1e2a3a; }
.login-logo b { color: #fff; }
.wrapper { min-height: 100vh; }
.content-module { padding: 15px; }
html, body { max-width: 100%; overflow-x: hidden; }

#loading-overlay {
	display: none; position: fixed; inset: 0; background: rgba(255,255,255,.55);
	z-index: 99999; justify-content: center; align-items: center;
}

.form-required::after { content: " *"; color: #dc3545; }
.card-header.d-flex { flex-wrap: wrap; row-gap: 8px; }
.card-header.d-flex::after { display: none; }
.table td, .table th { vertical-align: middle; }
.table-sm td, .table-sm th { padding: .35rem .5rem; }
.text-mono { font-family: SFMono-Regular, Menlo, Consolas, monospace; }
.nowrap { white-space: nowrap; }
.monto { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.badge-anulado { text-decoration: line-through; opacity: .6; }
.dt-buttons .btn { margin-right: 4px; }
.select2-container { width: 100% !important; }

/* Tarjetas de indicadores */
.kpi { border-left: 4px solid #0d6efd; }
.kpi .kpi-valor { font-size: 1.45rem; font-weight: 600; }
.kpi .kpi-label { color: #6c757d; font-size: .85rem; }
.kpi.verde { border-left-color: #198754; }
.kpi.rojo { border-left-color: #dc3545; }
.kpi.ambar { border-left-color: #fd7e14; }

/* Punto de venta */
.pos-items td input { min-width: 70px; }
.pos-total { font-size: 1.9rem; font-weight: 700; }
.pos-resultados { max-height: 320px; overflow-y: auto; position: absolute; z-index: 1050; width: 100%; }
.pos-resultados .list-group-item { cursor: pointer; padding: .45rem .75rem; }
.pos-resultados .list-group-item.active, .pos-resultados .list-group-item:hover { background: #e7f1ff; color: inherit; }
.pos-tipo .btn { min-width: 110px; }

/* Matriz de permisos */
.permisos-modulo { border: 1px solid #dee2e6; border-radius: 6px; padding: 8px 12px; margin-bottom: 10px; }
.permisos-modulo h6 { text-transform: capitalize; margin-bottom: 6px; }

/* Impresión: solo el área del comprobante */
#area_impresion { display: none; }
@media print {
	body.imprimiendo * { visibility: hidden; }
	body.imprimiendo #area_impresion, body.imprimiendo #area_impresion * { visibility: visible; }
	body.imprimiendo #area_impresion { display: block; position: absolute; left: 0; top: 0; width: 100%; }
}

@media (max-width: 576px) {
	.content-module { padding: 8px; }
	.card-body { padding: .75rem; }
	.modal-dialog { margin: .5rem; }
	.pos-total { font-size: 1.5rem; }
}
