/* ===== Identidad LARUSSO: colores y tipografía =====
   Negro #1D1D1D · Blanco #FFFFFF · Títulos en Coolvetica */

@font-face { font-family: 'Coolvetica'; src: url('fonts/coolvetica-rg.otf') format('opentype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Coolvetica'; src: url('fonts/coolvetica-rg-it.otf') format('opentype'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Coolvetica Condensed'; src: url('fonts/coolvetica-rg-cond.otf') format('opentype'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Coolvetica Crammed'; src: url('fonts/coolvetica-rg-cram.otf') format('opentype'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Coolvetica Heavy'; src: url('fonts/coolvetica-hv-comp.otf') format('opentype'); font-weight: 400; font-display: swap; }

:root {
  --lr-negro: #1D1D1D;
  --lr-blanco: #FFFFFF;
  --lr-gris: #F3F3F3;
  --lr-titulos: 'Coolvetica', 'Helvetica Neue', Arial, sans-serif;

  --bs-dark: #1D1D1D;
  --bs-dark-rgb: 29, 29, 29;
  --bs-light-rgb: 243, 243, 243;
  --bs-primary: #1D1D1D;
  --bs-primary-rgb: 29, 29, 29;
  --bs-link-color: #1D1D1D;
  --bs-link-color-rgb: 29, 29, 29;
  --bs-link-hover-color: #000;
  --bs-link-hover-color-rgb: 0, 0, 0;
  --bs-body-color: #1D1D1D;
  --bs-emphasis-color: #1D1D1D;
  --bs-focus-ring-color: rgba(29, 29, 29, .25);
}

body { background-color: var(--lr-gris) !important; }

/* Títulos */
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--lr-titulos); font-weight: 400 !important; letter-spacing: .01em; color: var(--lr-negro);
}
h2 { font-size: 2.1rem; }

/* Números grandes de las tarjetas y resultados */
.display-6, .card .fs-4.fw-bold, .card .fs-5.fw-bold {
  font-family: var(--lr-titulos); font-weight: 400 !important; letter-spacing: .02em;
}
.card .fs-4.fw-bold { font-size: 1.75rem !important; }
.card .fs-5.fw-bold { font-size: 1.45rem !important; }
.display-6 { font-size: 2.15rem; }

/* Barra de navegación */
.navbar.bg-dark { background-color: var(--lr-negro) !important; }
.navbar .nav-link { font-family: 'Coolvetica Condensed', var(--lr-titulos); font-size: 1.12rem; letter-spacing: .02em; color: rgba(255, 255, 255, .7); }
.navbar .nav-link:hover, .navbar .nav-link:focus { color: var(--lr-blanco); }
.navbar .nav-link.active { color: var(--lr-blanco) !important; box-shadow: inset 0 -2px 0 var(--lr-blanco); }
.navbar .nav-link { white-space: nowrap; padding-left: .7rem !important; padding-right: .7rem !important; }
.navbar .dropdown-menu { border: 0; border-radius: .6rem; box-shadow: 0 10px 30px rgba(0,0,0,.18); padding: .4rem; }
.navbar .dropdown-item { border-radius: .4rem; padding: .45rem .8rem; }
.navbar .dropdown-item.active, .navbar .dropdown-item:active { background-color: var(--lr-negro); color: var(--lr-blanco); }

/* Botones */
.btn-dark, .btn-primary {
  --bs-btn-bg: var(--lr-negro); --bs-btn-border-color: var(--lr-negro); --bs-btn-color: var(--lr-blanco);
  --bs-btn-hover-bg: #000; --bs-btn-hover-border-color: #000; --bs-btn-hover-color: var(--lr-blanco);
  --bs-btn-active-bg: #000; --bs-btn-active-border-color: #000;
  --bs-btn-disabled-bg: var(--lr-negro); --bs-btn-disabled-border-color: var(--lr-negro);
  --bs-btn-focus-shadow-rgb: 29, 29, 29;
}
.btn-outline-dark, .btn-outline-primary {
  --bs-btn-color: var(--lr-negro); --bs-btn-border-color: var(--lr-negro);
  --bs-btn-hover-bg: var(--lr-negro); --bs-btn-hover-border-color: var(--lr-negro); --bs-btn-hover-color: var(--lr-blanco);
  --bs-btn-active-bg: var(--lr-negro); --bs-btn-active-border-color: var(--lr-negro); --bs-btn-active-color: var(--lr-blanco);
  --bs-btn-disabled-color: var(--lr-negro); --bs-btn-disabled-border-color: var(--lr-negro);
  --bs-btn-focus-shadow-rgb: 29, 29, 29;
}
.btn-check:checked + .btn-outline-dark { background-color: var(--lr-negro); border-color: var(--lr-negro); color: var(--lr-blanco); }

/* Avisos y textos que usaban el azul de Bootstrap */
.alert-primary { --bs-alert-color: var(--lr-negro); --bs-alert-bg: var(--lr-blanco); --bs-alert-border-color: var(--lr-negro); --bs-alert-link-color: var(--lr-negro); border-left-width: 4px; }
.text-primary { color: #555 !important; }
.form-control:focus, .form-select:focus { border-color: #8a8a8a; box-shadow: 0 0 0 .2rem rgba(29, 29, 29, .15); }
.form-check-input:checked { background-color: var(--lr-negro); border-color: var(--lr-negro); }

/* Tablas y tarjetas */
.table-light { --bs-table-bg: #EDEDED; --bs-table-color: var(--lr-negro); }
.table > thead th { font-weight: 600; font-size: .85rem; text-transform: uppercase; letter-spacing: .03em; }
.card { border-radius: .6rem; }
.text-bg-dark { background-color: var(--lr-negro) !important; }

/* Pantalla de ingreso */
body.login { background-color: var(--lr-negro) !important; }

/* =====================================================================
   CAPA PREMIUM: paleta cálida, bordes finos, aire y tipografía editorial
   ===================================================================== */
:root {
  --lr-fondo: #F6F5F2;          /* marfil cálido */
  --lr-borde: #E8E6E1;
  --lr-borde-fuerte: #D9D6CF;
  --lr-texto-suave: #7C786F;
  --lr-hover: #FAF9F6;
  --lr-radio: 16px;
  /* Colores de estado apagados, más elegantes */
  --bs-success: #2F7D55; --bs-success-rgb: 47, 125, 85;
  --bs-danger: #B23A3A;  --bs-danger-rgb: 178, 58, 58;
  --bs-warning: #C48A1A; --bs-warning-rgb: 196, 138, 26;
  --bs-info: #356E8C;    --bs-info-rgb: 53, 110, 140;
  --bs-secondary-color: var(--lr-texto-suave);
  --bs-border-color: var(--lr-borde);
  --bs-body-font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --bs-body-font-size: .86rem;
}
body { background-color: var(--lr-fondo) !important; -webkit-font-smoothing: antialiased; }
.container { max-width: 1320px; }
.text-muted { color: var(--lr-texto-suave) !important; }
a { text-decoration: none; }
main a:hover, .card a:not(.btn):hover { text-decoration: underline; text-underline-offset: 3px; }

/* Encabezado de cada página */
h2 { font-size: 1.95rem; letter-spacing: .005em; line-height: 1.1; }
h2 + .text-muted, h2 + div.text-muted { margin-top: .35rem; }
h5 { font-size: 1.05rem; } h6 { font-size: .95rem; letter-spacing: .02em; }

/* Barra de navegación */
.navbar { padding-top: .85rem; padding-bottom: .85rem; border-bottom: 1px solid rgba(255,255,255,.06); }
.navbar .nav-link { font-size: .95rem; letter-spacing: .04em; color: rgba(255,255,255,.62); }
.navbar .nav-link .bi { opacity: .75; }
.navbar .nav-link.active { box-shadow: none; position: relative; }
.navbar .nav-link.active::after { content: ''; position: absolute; left: .7rem; right: .7rem; bottom: -.15rem; height: 1px; background: #fff; }
.navbar .dropdown-menu { margin-top: .6rem !important; border-radius: 14px; padding: .5rem; box-shadow: 0 18px 50px rgba(0,0,0,.22); min-width: 15rem; }
.navbar .dropdown-item { font-size: .85rem; }
.navbar .btn-outline-light { border-color: rgba(255,255,255,.25); border-radius: 999px; padding: .35rem .9rem; }

/* Tarjetas: blancas, borde fino, sin sombras pesadas */
.card { border: 1px solid var(--lr-borde) !important; border-radius: var(--lr-radio) !important; box-shadow: none !important; background: #fff; }
.card.border-0 { border: 1px solid var(--lr-borde) !important; }
.card-header { background: #fff !important; border-bottom: 1px solid var(--lr-borde); padding: 1rem 1.25rem;
  font-family: var(--lr-titulos); font-weight: 400 !important; font-size: .95rem; letter-spacing: .03em; }
.card-header b, .card-header .fw-semibold { font-weight: 400 !important; }
.card-body { padding: 1.25rem 1.35rem; }
.card > .card-header:first-child { border-radius: var(--lr-radio) var(--lr-radio) 0 0; }
.card.border-success { border-color: #BFD9C9 !important; background: #FBFDFB; }
.card.border-start.border-4 { border-left-width: 1px !important; }

/* Tarjetas de números (Panel, cierres, etc.): etiqueta chica en mayúsculas y número grande */
.card .card-body > .text-muted.small:first-child, .card .card-body > div > .text-muted.small:first-child {
  text-transform: uppercase; font-size: .7rem; letter-spacing: .12em; font-weight: 500; margin-bottom: .45rem; }
.card .fs-4.fw-bold { font-size: 1.6rem !important; line-height: 1.1; }
.card .fs-5.fw-bold { font-size: 1.3rem !important; }

/* Tablas: más aire y encabezados discretos */
.table { --bs-table-hover-bg: var(--lr-hover); margin-bottom: 0; }
.table > :not(caption) > * > * { padding: .9rem 1rem; border-bottom-color: var(--lr-borde); }
.table-sm > :not(caption) > * > * { padding: .6rem .8rem; }
.table-light, .table > thead.table-light { --bs-table-bg: transparent; }
.table > thead th { font-size: .68rem; letter-spacing: .12em; color: var(--lr-texto-suave); font-weight: 600; border-bottom: 1px solid var(--lr-borde-fuerte); background: #FCFBF9 !important; }
.table tbody tr:last-child > * { border-bottom: 0; }
.card > .table-responsive:first-child, .card > .table-responsive:first-child .table thead th:first-child { border-top-left-radius: var(--lr-radio); }
.card > .table-responsive { border-radius: var(--lr-radio); }

/* Insignias suaves */
.badge { font-weight: 500; letter-spacing: .03em; border-radius: 999px; padding: .38em .75em; }
.badge.text-bg-success   { background: #E7F2EB !important; color: #23613F !important; }
.badge.text-bg-danger    { background: #F7E6E6 !important; color: #8E2B2B !important; }
.badge.text-bg-warning   { background: #FAF0DA !important; color: #7A5410 !important; }
.badge.text-bg-info      { background: #E3EEF4 !important; color: #23526B !important; }
.badge.text-bg-primary   { background: #EDEBE6 !important; color: var(--lr-negro) !important; }
.badge.text-bg-secondary { background: #EEEDEA !important; color: #5C5850 !important; }
.badge.text-bg-light     { background: #F7F6F3 !important; color: #5C5850 !important; border-color: var(--lr-borde) !important; }
.badge.text-bg-dark      { background: var(--lr-negro) !important; color: #fff !important; }

/* Botones */
.btn { border-radius: 10px; font-weight: 500; letter-spacing: .01em; padding: .42rem .85rem; font-size: .86rem; }
.btn-sm { border-radius: 8px; padding: .26rem .6rem; font-size: .78rem; }
.btn-outline-dark { --bs-btn-border-color: var(--lr-borde-fuerte); }
.btn-outline-secondary { --bs-btn-color: #5C5850; --bs-btn-border-color: var(--lr-borde-fuerte); --bs-btn-hover-bg: #EEEDEA; --bs-btn-hover-color: var(--lr-negro); --bs-btn-hover-border-color: var(--lr-borde-fuerte); }
.btn-outline-success { --bs-btn-color: #23613F; --bs-btn-border-color: #BFD9C9; --bs-btn-hover-bg: #23613F; --bs-btn-hover-border-color: #23613F; }
.btn-outline-danger { --bs-btn-color: #8E2B2B; --bs-btn-border-color: #E8C6C6; --bs-btn-hover-bg: #8E2B2B; --bs-btn-hover-border-color: #8E2B2B; }
.btn-success { --bs-btn-bg: #23613F; --bs-btn-border-color: #23613F; --bs-btn-hover-bg: #1B4D32; --bs-btn-hover-border-color: #1B4D32; }

/* Formularios */
.form-control, .form-select, .input-group-text { border-radius: 10px; border-color: var(--lr-borde-fuerte); padding: .45rem .75rem; font-size: .86rem; }
.form-control-sm, .form-select-sm { border-radius: 8px; padding: .3rem .6rem; }
.input-group > .form-control, .input-group > .form-select, .input-group > .btn, .input-group > .input-group-text { border-radius: 0; }
.input-group > :first-child { border-top-left-radius: 10px !important; border-bottom-left-radius: 10px !important; }
.input-group > :last-child { border-top-right-radius: 10px !important; border-bottom-right-radius: 10px !important; }
.input-group-text { background: #FAF9F6; color: var(--lr-texto-suave); }
.form-label { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--lr-texto-suave); font-weight: 500; margin-bottom: .35rem; }
.form-control:focus, .form-select:focus { border-color: var(--lr-negro); box-shadow: 0 0 0 3px rgba(29,29,29,.08); }
hr { border-color: var(--lr-borde); opacity: 1; }

/* Avisos suaves con acento a la izquierda */
.alert { border: 1px solid var(--lr-borde); border-left: 3px solid; border-radius: 12px; background: #fff; }
.alert-success { border-left-color: #2F7D55; color: #1F4D35; background: #F5FAF7; }
.alert-danger { border-left-color: #B23A3A; color: #6E2222; background: #FCF6F6; }
.alert-warning { border-left-color: #C48A1A; color: #5E4310; background: #FDF9EF; }
.alert-info, .alert-secondary { border-left-color: #8A867D; color: #3D3A35; background: #FBFAF8; }
.alert-primary { border-left-width: 3px; background: #fff; }

/* Listas y pestañas */
.list-group-item { border-color: var(--lr-borde); padding: .85rem 1.1rem; }
.list-group-item-action:hover { background: var(--lr-hover); }
.nav-tabs { border-bottom-color: var(--lr-borde); }
.nav-tabs .nav-link { color: var(--lr-texto-suave); border: 0; border-bottom: 2px solid transparent; }
.nav-tabs .nav-link.active { color: var(--lr-negro); border-bottom-color: var(--lr-negro); background: transparent; }
.progress { background: #ECEAE5; border-radius: 999px; }

/* Montos y fechas en una sola línea; el nombre del auto con lugar suficiente */
.table td.text-end, .table th.text-end, .table td.text-nowrap { white-space: nowrap; }
.table td:has(> strong + br) { min-width: 210px; }
.table td:has(> img.thumb), .table td:has(> div.thumb) { width: 1%; }
.table > :not(caption) > * > * { padding: .7rem .7rem; }

/* Textos listos para copiar (Redes): misma letra que en las redes, con aire */
textarea.font-monospace { font-family: var(--bs-body-font-family) !important; font-size: .92rem !important; line-height: 1.6; background: #FCFBF9; }

/* Miniaturas de autos */
.thumb { border-radius: 10px !important; width: 76px !important; height: 57px !important; }

/* Pantalla de ingreso premium */
body.login .card { border: 0 !important; border-radius: 22px !important; box-shadow: 0 30px 80px rgba(0,0,0,.45) !important; }
body.login .card-body { padding: 2.5rem 2.25rem !important; }

/* Redes: lista compacta con detalle desplegable */
.fila-redes { transition: background .15s; }
.fila-redes:hover { background: var(--lr-hover); }
.fila-redes .desplegar .bi { transition: transform .2s; display: inline-block; }
.fila-redes .desplegar[aria-expanded="true"] .bi { transform: rotate(180deg); }
/* ===== FOTOS DE LOS AUTOS: el recorte se centra en el auto =====
   Las fotos se sacan verticales (3:4) y el auto queda abajo (~75% de la altura). En las miniaturas y portadas
   (object-fit: cover) se muestra esa zona y no el medio de la foto. El archivo original no se toca. */
:root { --foco-auto: 78%; }
img[src*="uploads/"] { object-position: 50% var(--foco-auto); }
/* Vista ampliada de las miniaturas al pasar el mouse (ver footer.php) */
img.thumb { cursor: zoom-in; }
.foto-zoom { position: fixed; left: 0; top: 0; z-index: 2000; pointer-events: none; opacity: 0; transition: opacity .12s;
  background: #1D1D1D; padding: 4px; border-radius: 10px; box-shadow: 0 18px 40px -12px rgba(0,0,0,.55); }
.foto-zoom.on { opacity: 1; }
.foto-zoom img { display: block; max-width: min(380px, 45vw); max-height: min(480px, 75vh); width: auto; height: auto; border-radius: 7px; object-fit: contain; }