/* ====================================================================
 *  app.css — Identidad de aplicación (ERP), compacta y de alta densidad.
 *  Paleta: tinta fría, superficies blancas, líneas hairline, acento azul.
 * ==================================================================== */
:root{
  --bg:#eef1f5;
  --surface:#ffffff;
  --line:#e1e5ea;
  --line-soft:#eef1f4;
  --ink:#1b2733;
  --muted:#6b7785;
  --accent:#2563c9;
  --accent-d:#1d4fa3;
  --accent-soft:rgba(37,99,201,.16);
  --ok:#2f9e6f;
  --warn:#e08a2b;
  --danger:#d24b4b;

  --bs-body-font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

*{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }

body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--bs-body-font-family);
  font-size:13px;
  letter-spacing:.005em;
}

main.container-fluid{ padding:1rem 1.15rem 2rem; }

/* ---- Tipografía / encabezados ---- */
h1,h2,h3,h4,h5,h6{ color:var(--ink); font-weight:650; letter-spacing:-.01em; }
h1.h4{ font-size:1.12rem; }
.h5,h1.h5{ font-size:.92rem; font-weight:650; }
.text-muted{ color:var(--muted)!important; }

/* ---- Barra de navegación ---- */
.navbar.bg-dark{
  background:linear-gradient(180deg,#13294a 0%,#0f2240 100%)!important;
  padding:.45rem .35rem;
  box-shadow:0 2px 10px rgba(8,18,33,.18);
  border-bottom:2px solid var(--accent);
}
.navbar-brand{ font-size:.92rem; font-weight:700; letter-spacing:.01em; color:#fff!important; display:inline-flex; align-items:center; gap:.4rem; padding-left:.35rem; }
.navbar-brand .bi{ color:var(--accent); font-size:1.02rem; }
.navbar .nav-link{
  font-size:.78rem; font-weight:500; color:#aeb9c8!important;
  padding:.34rem .72rem!important; border-radius:7px; margin:0 1px;
  transition:background .12s ease, color .12s ease;
}
.navbar .nav-link:hover{ color:#fff!important; background:rgba(255,255,255,.07); }
.navbar .nav-link.active{ color:#fff!important; background:rgba(37,99,201,.32); box-shadow:inset 0 0 0 1px rgba(255,255,255,.06); }
.navbar .dropdown-toggle::after{ margin-left:.34em; opacity:.55; vertical-align:.1em; }

/* Menús desplegables del navbar: mismo tamaño de texto que los enlaces */
.navbar .dropdown-menu{
  font-size:.78rem; border:1px solid var(--line); border-radius:10px;
  box-shadow:0 10px 28px rgba(16,36,62,.16); padding:.3rem; margin-top:.45rem; min-width:12.5rem;
}
.navbar .dropdown-item{
  font-size:.78rem; font-weight:500; color:var(--ink);
  padding:.4rem .7rem; border-radius:7px; line-height:1.2;
}
.navbar .dropdown-item:hover,.navbar .dropdown-item:focus{ background:var(--accent-soft); color:var(--accent-d); }
.navbar .dropdown-item.active{ background:var(--accent); color:#fff; }
.navbar .dropdown-header{
  font-size:.62rem; text-transform:uppercase; letter-spacing:.06em;
  color:var(--muted); font-weight:700; padding:.45rem .7rem .2rem;
}
.navbar .dropdown-divider{ border-color:var(--line); margin:.3rem .25rem; }
.navbar .nav-link .badge{ font-size:.6rem; text-transform:uppercase; letter-spacing:.04em; padding:.28em .5em; }

/* ---- Tarjetas ---- */
.card{ background:var(--surface); border:1px solid var(--line); border-radius:9px; box-shadow:0 1px 2px rgba(16,36,62,.04); }
.card-header{ background:var(--surface); border-bottom:1px solid var(--line); padding:.6rem .9rem; font-weight:600; border-radius:9px 9px 0 0; }
.card-header h1{ letter-spacing:-.01em; }
.card-body{ padding:.9rem; }
.card-footer{ background:#f8fafc; border-top:1px solid var(--line); padding:.6rem .9rem; border-radius:0 0 9px 9px; }

/* ---- Botones ---- */
.btn{ --bs-btn-padding-y:.3rem; --bs-btn-padding-x:.65rem; --bs-btn-font-size:.78rem; --bs-btn-border-radius:6px; font-weight:550; letter-spacing:.005em; }
.btn-sm{ --bs-btn-padding-y:.18rem; --bs-btn-padding-x:.45rem; --bs-btn-font-size:.72rem; --bs-btn-border-radius:5px; }
.btn .bi{ font-size:.85em; }
.btn-primary{ --bs-btn-bg:var(--accent); --bs-btn-border-color:var(--accent); --bs-btn-hover-bg:var(--accent-d); --bs-btn-hover-border-color:var(--accent-d); --bs-btn-active-bg:var(--accent-d); --bs-btn-active-border-color:var(--accent-d); }
.btn-success{ --bs-btn-bg:var(--ok); --bs-btn-border-color:var(--ok); --bs-btn-hover-bg:#268760; --bs-btn-hover-border-color:#268760; }
.btn-danger{ --bs-btn-bg:var(--danger); --bs-btn-border-color:var(--danger); }
.btn-outline-secondary{ --bs-btn-color:var(--muted); --bs-btn-border-color:var(--line); --bs-btn-hover-bg:#f1f4f8; --bs-btn-hover-color:var(--ink); --bs-btn-hover-border-color:#cfd6de; }

/* ---- Formularios ---- */
.form-label{ font-size:.72rem; font-weight:600; color:var(--muted); margin-bottom:.22rem; }
.form-label.required::after{ content:" *"; color:var(--danger); }
.form-control,.form-select{ font-size:.8125rem; padding:.3rem .55rem; border-color:var(--line); border-radius:6px; color:var(--ink); }
.form-control::placeholder{ color:#aab2bd; }
.form-control:focus,.form-select:focus{ border-color:var(--accent); box-shadow:0 0 0 .18rem var(--accent-soft); }
.form-control-sm,.form-select-sm{ font-size:.75rem; padding:.2rem .45rem; border-radius:5px; }
.form-control[readonly],.bg-light{ background:#f4f6f9!important; }
.input-group .btn{ border-color:var(--line); }
.form-check-input:checked{ background-color:var(--accent); border-color:var(--accent); }
.form-check-input:focus{ box-shadow:0 0 0 .18rem var(--accent-soft); border-color:var(--accent); }
.form-check-label{ font-size:.8rem; }

/* números alineados como ledger */
input[inputmode="decimal"], .text-end, td.text-end, th.text-end{ font-variant-numeric:tabular-nums; }

/* ---- Tablas ---- */
.table{ font-size:.8rem; margin-bottom:0; color:var(--ink); }
.table>thead th{ font-size:.66rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600; background:#f7f9fb; border-bottom:1px solid var(--line); padding:.5rem .6rem; white-space:nowrap; }
.table>tbody td{ padding:.42rem .6rem; border-bottom:1px solid var(--line-soft); vertical-align:middle; }
.table-striped{ --bs-table-striped-bg:#f8fafc; }
.table-hover>tbody>tr:hover>*{ --bs-table-hover-bg:#eef4fc; }
.table-sm>tbody td,.table-sm>thead th{ padding:.3rem .45rem; }

/* ---- Badges de estado ---- */
.badge{ font-weight:600; font-size:.66rem; letter-spacing:.02em; padding:.32em .55em; border-radius:5px; }
.badge-pendiente{ background:var(--warn); }
.badge-incorporado{ background:var(--ok); }

/* ---- DataTables ---- */
.dataTables_wrapper{ font-size:.78rem; color:var(--muted); }
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select{ font-size:.78rem; padding:.22rem .45rem; border:1px solid var(--line); border-radius:6px; }
.dataTables_wrapper .dataTables_filter input:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 .18rem var(--accent-soft); }
.page-link{ font-size:.76rem; color:var(--accent); border-color:var(--line); padding:.25rem .5rem; }
.page-item.active .page-link{ background:var(--accent); border-color:var(--accent); }
table.dataTable thead th{ border-bottom:1px solid var(--line)!important; }

/* ---- Select2 (alinear con los inputs) ---- */
.select2-container--bootstrap-5 .select2-selection{ min-height:31px; border-color:var(--line); font-size:.78rem; color:var(--ink); }
.select2-container--bootstrap-5.select2-container--focus .select2-selection,
.select2-container--bootstrap-5.select2-container--open .select2-selection{ border-color:var(--accent); box-shadow:0 0 0 .18rem var(--accent-soft); }
.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered{ line-height:1.4; padding-top:.22rem; font-size:.78rem; }
.select2-container--bootstrap-5 .select2-selection__placeholder{ font-size:.78rem; }
.select2-container--bootstrap-5 .select2-results__option--highlighted{ background:var(--accent)!important; }
/* Desplegables Select2 más compactos (opciones y buscador) */
.select2-container--bootstrap-5 .select2-dropdown{ font-size:.7rem !important; }
.select2-container--bootstrap-5 .select2-results__option{ padding:.12rem .5rem !important; line-height:1.15 !important; min-height:0 !important; font-size:.7rem !important; }
.select2-container--bootstrap-5 .select2-search--dropdown .select2-search__field{ font-size:.7rem !important; padding:.18rem .4rem !important; }
/* selects pequeños dentro de la rejilla de líneas */
#lineas .select2-container--bootstrap-5 .select2-selection{ min-height:28px; }
#lineas .select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered{ font-size:.74rem; line-height:1.3; padding-top:.15rem; }
/* Select2 dentro de input-group: que el botón "+" quede alineado y no salte de línea */
.input-group > .select2-container{ flex:1 1 auto; width:1%!important; }
.input-group > .select2-container .select2-selection{ border-top-right-radius:0; border-bottom-right-radius:0; height:100%; }

/* ---- Rejilla de líneas del albarán ---- */
#lineas thead th{ position:sticky; top:0; z-index:2; }
#lineas td{ padding:.25rem .3rem; }
#lineas input.form-control-sm{ height:28px; }
#doc_total{ font-variant-numeric:tabular-nums; color:var(--ink); }

/* ---- SweetAlert2 acorde ---- */
.swal2-styled.swal2-confirm{ background:var(--accent)!important; }

/* Foco accesible visible */
a:focus-visible, button:focus-visible{ outline:2px solid var(--accent); outline-offset:1px; }
