/* Subdirección Administrativa: panel, inventario, levantamiento físico, resguardos, almacén e inmuebles.
   Prefijo de clase: adm-. Usa los tokens de :root (css/base.css). */

/* ---------- Encabezado del panel ---------- */
.adm-hero { position: relative; overflow: hidden; display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); padding: 20px 18px 18px; }
.adm-hero .arcos { position: absolute; left: 0; right: 0; bottom: -6px; width: 100%; height: 70px; pointer-events: none; }
.adm-hero > * { position: relative; }
.adm-hero-fila { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 26px; }
.adm-hero-cifra { font-size: clamp(28px, 8vw, 38px); line-height: 1; font-weight: 750; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: #fff; }
.adm-hero-cifra small { font-size: 16px; font-weight: 600; color: var(--plata); letter-spacing: 0; }
.adm-hero-etq { font-size: 13.5px; font-weight: 600; color: var(--plata); margin-bottom: 4px; }
.adm-hero .progreso { background: rgba(255, 255, 255, .16); }
.adm-hero .progreso-barra { background: var(--oro); }
@media (min-width: 900px) { .adm-hero { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: center; padding: 24px 26px 26px; } }

/* Indicadores: el de valor ocupa dos columnas para que el monto completo no se corte */
.adm-ancho { grid-column: auto; }
@media (min-width: 380px) { .adm-ancho { grid-column: span 2; } }
@media (max-width: 379px) { .adm-ancho .dato-valor { font-size: 24px; } }
.adm-monto { font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ---------- Contador del levantamiento ---------- */
.adm-contador { display: grid; gap: 14px; }
.adm-contador-fila { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 6px 12px; }
.adm-contador-num { display: inline-block; font-size: clamp(44px, 12vw, 64px); line-height: .95; font-weight: 780; letter-spacing: -.03em; font-variant-numeric: tabular-nums; color: #fff; transform-origin: left bottom; }
.adm-contador-de { font-size: 17px; font-weight: 600; color: var(--plata); padding-bottom: 6px; }
.adm-contador-num.adm-sube { animation: adm-sube .9s cubic-bezier(.2, .8, .2, 1); }
@keyframes adm-sube { 0% { color: var(--oro); transform: scale(1.12); } 60% { color: var(--oro); } 100% { color: #fff; transform: none; } }
.adm-contador .chip { background: rgba(255, 255, 255, .12); color: #fff; }
.adm-contador .chip .i { color: var(--oro); }
.adm-contador .progreso { height: 12px; background: rgba(255, 255, 255, .16); }
.adm-contador .progreso-barra { background: var(--oro); }
.adm-escanear { display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr); }
.adm-escanear .btn-oro { min-height: 56px; font-size: 17px; border-radius: 14px; }
@media (min-width: 600px) { .adm-escanear { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }

/* Botón flotante para escanear en el celular */
.adm-fab {
  position: fixed; z-index: 28;
  right: calc(16px + var(--seg-der)); bottom: calc(var(--nav-alto) + var(--seg-abajo) + 16px);
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 54px; padding: 0 20px 0 16px;
  border: 0; border-radius: 999px;
  background: var(--oro); color: var(--azul-950);
  font-size: 16px; font-weight: 750;
  box-shadow: var(--sombra-alta);
}
.adm-fab:active { transform: scale(.97); }
@media (min-width: 1024px) { .adm-fab { display: none; } }
.adm-espacio-fab { height: 72px; }
@media (min-width: 1024px) { .adm-espacio-fab { display: none; } }

/* Resultado del levantamiento: tres botones grandes */
.adm-lev-opciones { display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 520px) { .adm-lev-opciones { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.adm-lev-op {
  display: flex; align-items: center; gap: 12px;
  min-height: 62px; padding: 10px 14px;
  border: 2px solid transparent; border-radius: 14px;
  font-size: 16.5px; font-weight: 750; text-align: left;
}
.adm-lev-op small { display: block; font-size: 12.5px; font-weight: 550; opacity: .85; }
.adm-lev-op .i { flex: none; }
.adm-lev-op:active { transform: scale(.98); }
.adm-lev-op-verde { background: var(--verde); color: #fff; }
.adm-lev-op-verde:hover { background: #276B43; }
.adm-lev-op-ambar { background: var(--ambar-fondo); color: var(--ambar-texto); border-color: #EBCB8B; }
.adm-lev-op-ambar:hover { background: #F7E4BC; }
.adm-lev-op-rojo { background: var(--rojo-fondo); color: var(--rojo-texto); border-color: #E6B4AF; }
.adm-lev-op-rojo:hover { background: #F3D3D0; }

/* Ficha corta de un bien (hoja del levantamiento y encabezado de la ficha) */
.adm-bien-cabeza { display: flex; gap: 14px; align-items: flex-start; }
.adm-bien-icono { flex: none; width: 56px; height: 56px; border-radius: 16px 16px 12px 12px; display: flex; align-items: center; justify-content: center; background: var(--azul-100); color: var(--azul-700); }
.adm-bien-num { font-family: var(--sans); font-variant-numeric: tabular-nums; font-weight: 750; letter-spacing: .02em; color: var(--azul-800); font-size: 15px; }
.adm-bien-desc { font-family: var(--serif); font-size: 21px; font-weight: 650; color: var(--azul-900); line-height: 1.2; }

/* Etiqueta QR (vista previa de la que se imprime) */
.adm-etiqueta { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; align-items: center; max-width: 360px; padding: 10px 12px 10px 10px; border: 1px dashed var(--linea-fuerte); border-radius: 12px; background: #fff; }
.adm-etiqueta .qr { padding: 2px; }
.adm-etiqueta-escuela { font-size: 11px; color: var(--tinta-3); font-weight: 600; }
.adm-etiqueta-num { font-size: 16px; font-weight: 800; color: var(--azul-900); font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.adm-etiqueta-desc { font-size: 13px; color: var(--tinta-2); line-height: 1.3; }

/* ---------- Resguardos: documento y firma ---------- */
.adm-doc { background: #fff; border: 1px solid var(--linea); border-radius: var(--radio-g); padding: 20px 18px; display: flex; flex-direction: column; gap: 16px; box-shadow: var(--sombra); }
@media (min-width: 720px) { .adm-doc { padding: 28px 32px; } }
.adm-doc-cabeza { display: flex; gap: 14px; align-items: center; padding-bottom: 14px; border-bottom: 2px solid var(--oro); }
.adm-doc-cabeza img { width: 46px; height: auto; flex: none; }
.adm-doc-dep { font-size: 12.5px; color: var(--tinta-3); }
.adm-doc-esc { font-family: var(--serif); font-weight: 650; font-size: 17px; color: var(--azul-900); line-height: 1.2; }
.adm-folio { margin-left: auto; flex: none; padding: 6px 10px; border: 1.5px solid var(--oro); border-radius: 10px; text-align: center; line-height: 1.15; }
.adm-folio span { display: block; font-size: 11px; color: var(--tinta-3); font-weight: 600; }
.adm-folio b { font-size: 14px; color: var(--azul-900); font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 479px) { .adm-doc-cabeza { flex-wrap: wrap; } .adm-folio { margin-left: 0; } }
.adm-doc-titulo { font-family: var(--serif); font-size: 22px; font-weight: 650; color: var(--azul-900); text-align: center; }
.adm-doc-texto { font-family: var(--serif); font-size: 16px; line-height: 1.55; color: var(--tinta); }
.adm-firmas { display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 720px) { .adm-firmas { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: end; } }
.adm-firma-caja { display: flex; flex-direction: column; gap: 6px; }
.adm-firma-trazo { height: 104px; border-bottom: 1.5px solid var(--tinta-2); display: flex; align-items: flex-end; justify-content: center; }
.adm-firma-trazo svg, .adm-firma-trazo img { height: 100px; width: auto; max-width: 100%; }
.adm-firma-mini { height: 56px; min-width: 120px; display: flex; align-items: flex-end; justify-content: center; border-bottom: 1px solid var(--linea-fuerte); }
.adm-firma-mini svg, .adm-firma-mini img { height: 52px; width: auto; max-width: 160px; }
.adm-firma-vacia { height: 104px; border: 2px dashed var(--linea-fuerte); border-radius: 12px; display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--tinta-3); font-weight: 600; text-align: center; padding: 8px; }
.adm-firma-nombre { font-family: var(--serif); font-weight: 650; font-size: 16px; }
.adm-firma-puesto { font-size: 13.5px; color: var(--tinta-3); }

/* Lienzo para firmar con el dedo */
.adm-lienzo-env { position: relative; border: 2px dashed var(--azul-200); border-radius: 16px; background: #fff; overflow: hidden; }
.adm-lienzo { display: block; width: 100%; aspect-ratio: 3 / 1.25; touch-action: none; cursor: crosshair; }
.adm-lienzo-guia { position: absolute; left: 7%; right: 7%; bottom: 24%; border-bottom: 1.5px solid var(--plata); pointer-events: none; }
.adm-lienzo-guia::before { content: '×'; position: absolute; left: -2px; bottom: 2px; font-size: 18px; color: var(--tinta-3); }
.adm-lienzo-ayuda { position: absolute; left: 0; right: 0; top: 38%; text-align: center; color: var(--tinta-3); font-size: 15px; font-weight: 600; pointer-events: none; transition: opacity .2s; }
.adm-lienzo-env.adm-con-trazo .adm-lienzo-ayuda { opacity: 0; }

/* ---------- Nivel de existencia (almacén) ---------- */
.adm-nivel { position: relative; height: 10px; border-radius: 999px; background: var(--plata-claro); min-width: 80px; }
.adm-nivel-barra { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 999px; background: var(--verde); }
.adm-nivel-barra.adm-bajo { background: var(--rojo); }
.adm-nivel-barra.adm-medio { background: var(--ambar); }
.adm-nivel-min { position: absolute; top: -4px; bottom: -4px; width: 2px; margin-left: -1px; border-radius: 2px; background: var(--tinta-2); }
.adm-art { display: grid; gap: 6px 14px; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.adm-art .adm-nivel { grid-column: 1 / -1; }
.adm-existencia { font-size: 20px; font-weight: 750; color: var(--azul-900); font-variant-numeric: tabular-nums; text-align: right; line-height: 1.1; }
.adm-existencia small { display: block; font-size: 12px; font-weight: 600; color: var(--tinta-3); }
.adm-existencia.adm-bajo { color: var(--rojo); }

/* Captura de partidas (entrada y vale) */
.adm-lineas { display: flex; flex-direction: column; gap: 10px; }
.adm-linea { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) 44px; align-items: end; padding: 10px; border: 1px solid var(--linea); border-radius: 14px; background: var(--cal); }
.adm-linea-campos { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.adm-linea-campos .campo:first-child { grid-column: 1 / -1; }
@media (min-width: 720px) { .adm-linea-campos { grid-template-columns: minmax(0, 2.2fr) minmax(0, .8fr) minmax(0, 1fr); } .adm-linea-campos .campo:first-child { grid-column: auto; } }

/* ---------- Filtros ---------- */
.adm-filtros { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.adm-filtros .buscador { flex: 1 1 260px; }
.adm-filtros .campo { flex: 1 1 170px; }
.adm-chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.adm-chips::-webkit-scrollbar { display: none; }
.adm-chip-btn { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border: 1px solid var(--linea-fuerte); border-radius: 999px; background: #fff; color: var(--tinta-2); font-size: 14px; font-weight: 650; white-space: nowrap; }
.adm-chip-btn[aria-pressed='true'] { background: var(--azul-800); border-color: var(--azul-800); color: #fff; }
.adm-chip-btn .contador { font-size: 12px; opacity: .8; font-variant-numeric: tabular-nums; }

/* Barras pequeñas dentro de tablas y listas */
.adm-mini { display: flex; align-items: center; gap: 8px; min-width: 120px; }
.adm-mini .progreso { flex: 1 1 auto; height: 8px; }
.adm-mini b { font-size: 13.5px; font-variant-numeric: tabular-nums; min-width: 40px; text-align: right; }

/* ---------- Croquis del conjunto (inmuebles) ---------- */
.adm-plano-env { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--linea); border-radius: var(--radio-g); background: #EEF2EA; }
.adm-plano { display: block; width: 100%; min-width: 620px; height: auto; }
.adm-plano text { font-family: var(--sans); pointer-events: none; }
.adm-plano-ed { cursor: pointer; outline: none; }
.adm-plano-ed rect.adm-forma { transition: filter .15s, stroke-width .15s; }
.adm-plano-ed:hover rect.adm-forma, .adm-plano-ed:focus-visible rect.adm-forma { filter: brightness(.96); stroke-width: 3; }
.adm-plano-leyenda { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: var(--tinta-2); }
.adm-plano-leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.adm-plano-leyenda i { width: 14px; height: 14px; border-radius: 4px; display: inline-block; border: 1.5px solid currentColor; }

/* ---------- Varios ---------- */
.adm-kv-2 { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .adm-kv-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.adm-lateral { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1100px) { .adm-lateral { grid-template-columns: minmax(0, 1.65fr) minmax(300px, 1fr); } }
.adm-reporte { display: flex; flex-direction: column; gap: 12px; }
.adm-reporte-acciones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.adm-reporte-acciones .btn { flex: 1 1 150px; }
.adm-orden-acciones { display: flex; flex-wrap: wrap; gap: 8px; }
.adm-mas { display: flex; justify-content: center; padding-top: 4px; }
.adm-total { font-size: 15px; font-weight: 700; color: var(--azul-900); font-variant-numeric: tabular-nums; }
.adm-cuadra { display: flex; align-items: center; gap: 14px; }
.adm-cuadra-sello { flex: none; width: 58px; height: 58px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--verde-fondo); color: var(--verde); }
.adm-cuadra-sello.adm-pendiente { background: var(--ambar-fondo); color: var(--ambar); }
.adm-plazo { display: inline-flex; align-items: baseline; gap: 4px; font-variant-numeric: tabular-nums; font-weight: 750; }
.adm-plazo b { font-size: 22px; }
.adm-num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.adm-tabla-num td:first-child { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 650; color: var(--azul-800); }
@media print { .adm-fab, .adm-escanear { display: none !important; } .adm-doc { box-shadow: none; border: 0; } }

/* Integración: montos largos (valor del inventario) ocupan todo el ancho en celular para no desbordar */
@media (max-width: 599px) { .rejilla-datos > .adm-ancho, .rejilla-datos > :has(.adm-monto) { grid-column: 1 / -1; } }
.dato-valor .adm-monto { font-size: min(1em, 7.4vw); }
