/* Los colores vienen del tema Bootswatch elegido en Configuración → Apariencia. */
body.admin-light { background: #f4f6f9; }
.admin-main { max-width: 1400px; }
.admin-card { border: 0; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
.stat-card .stat-icon { font-size: 2rem; opacity: .35; }
.table td, .table th { vertical-align: middle; }
.thumb { width: 56px; height: 56px; object-fit: contain; background: #fff; border: 1px solid #dee2e6; border-radius: .25rem; }
.thumb-wide { width: 140px; height: 56px; object-fit: cover; border-radius: .25rem; }
.upload-preview { max-height: 110px; max-width: 160px; object-fit: contain; }
.image-tile { position: relative; background: #fff; }
.image-tile img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; }
.image-tile .badge { position: absolute; top: .4rem; left: .4rem; }
.login-box { max-width: 420px; margin: 8vh auto; }
.theme-preview { width: 100%; height: 360px; border: 1px solid #dee2e6; border-radius: .25rem; background: #fff; }
.logo-preview { max-height: 80px; max-width: 100%; background: repeating-conic-gradient(#eee 0 25%, #fff 0 50%) 0 0 / 16px 16px; padding: .5rem; border-radius: .25rem; }
.nav-tabs .nav-link { font-weight: 500; }
.required::after { content: " *"; color: #dc3545; }

/* Estadística */
.rank-table td { padding-top: .45rem; padding-bottom: .45rem; }
.rank-bar { height: 4px; background: #e9ecef; border-radius: 2px; margin-top: .3rem; overflow: hidden; }
.rank-bar span { display: block; height: 100%; background: var(--primary); border-radius: 2px; }
.flag { font-family: "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif; }
.visit-chart { display: flex; align-items: flex-end; height: 200px; gap: 3px; padding-bottom: 1.4rem; position: relative; }
.visit-col { flex: 1 1 0; min-width: 0; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; position: relative; }
.visit-bar { width: 100%; max-width: 48px; min-height: 2px; background: var(--primary); border-radius: 3px 3px 0 0; transition: opacity .15s; }
.visit-col:hover .visit-bar { opacity: .75; }
.visit-val { font-size: .7rem; color: #6c757d; line-height: 1.2; }
.visit-label { position: absolute; bottom: -1.3rem; font-size: .7rem; color: #6c757d; white-space: nowrap; }

/* Registros anulados (establecimientos, centros de costo): se conservan pero atenuados */
.row-annulled td { opacity: .6; }
.row-annulled .annul-text { text-decoration: line-through; }
.row-annulled td:last-child { opacity: 1; }

/* Pedidos */
.order-map { height: 260px; width: 100%; z-index: 0; }
@media print { .navbar, .d-print-none { display: none !important; } body, .card, .card-header, .table { background: #fff !important; color: #000 !important; } .admin-card { box-shadow: none; border: 1px solid #dee2e6; } }

/* Evaluaciones */
.eval-map { height: 240px; width: 100%; z-index: 0; border-radius: .25rem; }
.eval-report-map { height: 70vh; min-height: 380px; width: 100%; z-index: 0; }
.eval-photo-preview { max-height: 320px; }
.eval-thumb { width: 48px; height: 48px; object-fit: cover; border-radius: .25rem; }
.eval-popup img { width: 220px; max-width: 100%; height: auto; border-radius: .25rem; margin-bottom: .35rem; }
.eval-legend-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .35); vertical-align: middle; }
.eval-legend-list { max-height: 60vh; overflow-y: auto; }
