/* Colores y fuentes provisionales: el kit de marca de Citadela los reemplaza aquí. */
:root {
  --negro: #111311; --hueso: #F5F2EA; --verde: #2F5D3A; --verde-claro: #9FC3A5; --cantera: #B9A488; --gris: #6E6B63;
  --ambar: #D99A1E; --rojo: #B23A2E; --linea: #D9D4C7; --blanco: #FFFFFF;
  --fuente: 'Poppins', system-ui, sans-serif;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; font-family: var(--fuente); background: var(--hueso); color: var(--negro); height: 100vh; display: grid; grid-template-rows: auto auto 1fr auto; }
.eyebrow { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--verde); font-weight: 600; margin: 0; }
.barra-sup { display: flex; gap: 16px; align-items: center; padding: 10px 16px; background: var(--negro); color: var(--hueso); flex-wrap: wrap; }
.barra-sup .marca { display: flex; flex-direction: column; }
.barra-sup .eyebrow { color: var(--verde-claro); }
.herramientas, .acciones { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.acciones { margin-left: auto; }
button, select { font: inherit; font-size: 13px; padding: 6px 12px; border-radius: 6px; border: 1px solid var(--gris); background: transparent; color: inherit; cursor: pointer; }
.barra-sup select { background: var(--negro); }
.barra-sup button.activa { background: var(--verde); border-color: var(--verde); }
.nombre-version { font: inherit; font-size: 13px; padding: 6px 10px; border-radius: 6px; border: 1px solid var(--verde-claro); min-width: 280px; }
.usuario { font-size: 12px; color: var(--verde-claro); }
.mesa { display: grid; grid-template-columns: 230px 1fr 300px; min-height: 0; }
.panel { padding: 14px; overflow: auto; background: var(--blanco); border-right: 1px solid var(--linea); }
.panel.der { border-right: 0; border-left: 1px solid var(--linea); }
.panel label { display: block; font-size: 13px; margin: 4px 0; }
.panel h2 { margin-top: 18px; }
.ayuda { font-size: 12px; color: var(--gris); line-height: 1.5; }
.vacio { color: var(--gris); font-size: 14px; }
.lienzo { position: relative; min-width: 0; min-height: 0; overflow: hidden; background: #E9E5DA; }
#plano { position: absolute; inset: 0; width: 100%; height: 100%; display: block; touch-action: none; user-select: none; -webkit-user-select: none; }
.lindero { fill: none; stroke: var(--negro); stroke-width: .6; }
.comun { fill: #CFC9BA; fill-opacity: .3; stroke: none; }
.arbol { fill: #4E7A45; fill-opacity: .7; }
.vehicular { fill: none; stroke: #5E5B55; stroke-width: 1.2; }
.peatonal { fill: none; stroke: var(--cantera); stroke-width: .8; }
.deck { fill: none; stroke: #8A6A45; stroke-width: .8; stroke-dasharray: 2 1; }
.agua { fill: none; stroke: #4F86B0; stroke-width: .5; }
.espejo { fill: #4F86B0; fill-opacity: .45; stroke: #4F86B0; stroke-width: .3; }
.agua-punto { fill: #4F86B0; }
.vialidad { fill: #B9B3A5; fill-opacity: .45; stroke: none; }
.cebra { fill: var(--blanco); fill-opacity: .8; }
.acceso { fill: var(--negro); stroke: var(--blanco); stroke-width: .3; }
.capa-documentos, .capa-estacionamiento { pointer-events: none; }
.pasillo { fill: #6F6C66; fill-opacity: .35; stroke: none; }
.isla-estac { fill: #6E9A5E; fill-opacity: .6; stroke: none; }
.cajon { fill: var(--blanco); fill-opacity: .25; stroke: var(--blanco); stroke-width: .15; }
.cajon.discapacidad { fill: #4F7FA8; fill-opacity: .6; }
.doc-pol { fill: var(--c); fill-opacity: .18; stroke: var(--c); stroke-width: .3; }
.doc-lin { fill: none; stroke: var(--c); stroke-width: .35; }
.doc-pun { fill: var(--c); stroke: var(--blanco); stroke-width: .2; }
.panel label.sub { margin-left: 18px; font-size: 12px; }
.documentos { margin-top: 14px; }
.documentos summary { cursor: pointer; }
.documentos label { font-size: 12px; }
.muestra { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 5px; vertical-align: 0; }
.lote { fill-opacity: .6; stroke: var(--blanco); stroke-width: .35; cursor: pointer; }
.lote:hover { fill-opacity: .75; }
.lote.sel { stroke: var(--negro); stroke-width: .9; fill-opacity: .82; }
.lote.eliminado { fill-opacity: .12; stroke: var(--gris); stroke-dasharray: 1 1; }
.rotulo { font-size: 3px; font-weight: 600; text-anchor: middle; dominant-baseline: middle; pointer-events: none; fill: var(--negro); paint-order: stroke; stroke: var(--blanco); stroke-width: .5; }
.editando { fill: none; stroke: var(--negro); pointer-events: none; }
.arista { stroke: transparent; cursor: copy; }
.vertice { fill: var(--blanco); stroke: var(--negro); cursor: grab; }
.trazo { fill: none; stroke: var(--rojo); stroke-dasharray: 1 .6; pointer-events: none; }
.punto-trazo { fill: var(--rojo); pointer-events: none; }
.ficha label { display: block; font-size: 12px; color: var(--gris); margin-top: 10px; }
.ficha input:not([type=checkbox]), .ficha select, .ficha textarea { width: 100%; font: inherit; font-size: 14px; padding: 6px; border: 1px solid var(--linea); border-radius: 6px; background: var(--blanco); }
.ficha .dato { font-size: 20px; font-weight: 700; }
.ficha button { border-color: var(--rojo); color: var(--rojo); margin-top: 12px; }
.supuesto { color: var(--ambar); font-size: 12px; }
.usos-fila { display: flex; align-items: center; gap: 6px; font-size: 13px; margin: 3px 0; }
.usos-fila i { width: 10px; height: 10px; border-radius: 2px; display: inline-block; flex: none; }
.usos-fila span:last-child { margin-left: auto; font-variant-numeric: tabular-nums; }
.barra-inf { display: flex; gap: 24px; padding: 8px 16px; background: var(--blanco); border-top: 1px solid var(--linea); font-size: 13px; flex-wrap: wrap; }
.medidor { display: flex; align-items: center; gap: 8px; }
.medidor .pista { width: 160px; height: 8px; background: var(--linea); border-radius: 4px; overflow: hidden; }
.medidor .pista b { display: block; height: 100%; background: var(--verde); }
.medidor.ambar .pista b { background: var(--ambar); }
.medidor.rojo .pista b { background: var(--rojo); }
.aviso { position: fixed; bottom: 56px; left: 50%; transform: translateX(-50%); background: var(--negro); color: var(--hueso); padding: 10px 16px; border-radius: 8px; font-size: 14px; z-index: 40; max-width: 90vw; }
.bloqueo { background: #F6E1DE; color: var(--rojo); padding: 10px 12px; border-radius: 8px; font-size: 14px; }
.aviso.error { background: var(--rojo); }
.menu-exportar { position: fixed; top: 56px; right: 16px; display: grid; gap: 6px; box-shadow: 0 8px 24px #0003; border-radius: 8px; z-index: 10; border: 1px solid var(--linea); }
.menu-exportar a { font-size: 13px; color: var(--verde); padding: 6px 12px; }
.entrada { position: fixed; inset: 0; background: var(--negro); color: var(--hueso); display: grid; place-content: center; text-align: center; gap: 12px; z-index: 30; }
.entrada .eyebrow { color: var(--verde-claro); }
.entrada button { border-color: var(--hueso); font-size: 15px; padding: 10px 18px; }
.impresion { display: none; }
.volver { color: var(--verde-claro); text-decoration: none; }
.aviso-pagina { grid-column: 1 / -1; max-width: 560px; margin: 12vh auto; padding: 0 16px; text-align: center; line-height: 1.6; }
.aviso-pagina a { color: var(--verde); }
.ventana { position: fixed; inset: 0; background: #0006; display: grid; place-items: center; z-index: 25; padding: 16px; }
.ventana > .panel { width: min(640px, 100%); max-height: 80vh; overflow: auto; border-radius: 10px; border: 0; }
.ventana label { display: flex; gap: 8px; align-items: center; justify-content: space-between; font-size: 13px; margin: 6px 0; }
.ventana select { max-width: 60%; }
@media (max-width: 900px) {
  .mesa { grid-template-columns: 1fr; grid-template-rows: 55vh auto auto; }
  .panel.izq { order: 2; } .panel.der { border-left: 0; border-top: 1px solid var(--linea); }
}
@media print {
  @page { size: A3 landscape; margin: 10mm; }
  .ar-barra, .nav-pie, .barra-sup, .migas, .panel.izq, .panel.der, .aviso, .capa-edicion, .menu-exportar { display: none !important; }
  body { display: block; height: auto; background: var(--blanco); }
  .mesa { display: block; } .lienzo { height: auto; overflow: visible; background: var(--blanco); }
  #plano { position: static; height: 230mm; }
  .impresion { display: block; font-size: 10px; margin-top: 6mm; }
  .impresion table { border-collapse: collapse; width: 100%; }
  .impresion td, .impresion th { border-bottom: 1px solid var(--linea); padding: 2px 6px; text-align: left; }
}

/* Ficha del estacionamiento: locales que atiende */
.ficha .medidor { margin: 6px 0 4px; font-size: 13px; }
.ficha .medidor .pista { flex: 1; width: auto; }
.ligados { width: 100%; border-collapse: collapse; font-size: 13px; margin: 4px 0; }
.ligados th, .ligados td { text-align: left; padding: 4px 6px; border-bottom: 1px solid var(--linea); }
.ligados td:last-child, .ligados th:last-child { text-align: right; }
.ligados sup { color: var(--gris); }
.ligados td:first-child small { display: block; font-size: 11px; color: var(--gris); }
.ligados td:nth-child(2) { text-align: center; }
.ligados .total td { font-weight: 700; border-bottom: 0; }
.ligados .norma { width: 48px; padding: 2px 4px; font: inherit; text-align: right; }

/* Negociación: capa 6 y pestaña de la ficha */
.capa-negociacion { pointer-events: none; }
.neg { fill: none; stroke-width: 1.2; }
.neg-prospecto { stroke: var(--ambar); stroke-dasharray: 2 1.5; }
.neg-platicas { stroke: var(--ambar); stroke-width: 1.6; }
.neg-cerrado { stroke: var(--verde); stroke-width: 2; }
.fp { display: flex; gap: 4px; margin: 6px 0 12px; }
.fp button.sel { background: var(--verde); color: var(--hueso); border-color: var(--verde); }
.prospectos { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.prospecto { display: grid; text-align: left; line-height: 1.25; }
.prospecto small { font-size: 11px; color: var(--gris); }
.prospecto.sel { border: 2px solid var(--negro); }
.prospecto.est-cerrado { background: #2F5D3A22; }
.prospecto.est-descartado { opacity: .55; }
.locales { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.local { font-size: 12px; background: var(--hueso); border: 1px solid var(--linea); border-radius: 99px; padding: 3px 10px; display: inline-flex; gap: 6px; align-items: center; }
.local button { padding: 0 6px; border: 0; font-size: 14px; line-height: 1; }
.fuera { color: var(--ambar); font-size: 13px; margin: 0; font-weight: 600; }
.resultado { display: grid; gap: 8px; background: var(--hueso); border-radius: 8px; padding: 10px; margin: 8px 0; }
.resultado small { display: block; font-size: 11px; color: var(--gris); }
.cerrar { background: var(--verde); color: var(--hueso); border-color: var(--verde); }
.cerrado-ok { color: var(--verde); font-weight: 600; font-size: 13px; }
.notas { list-style: none; padding: 0; margin: 0 0 6px; font-size: 13px; }
.notas li { margin-bottom: 6px; }
.notas small { display: block; color: var(--gris); font-size: 11px; }

/* Navegación del mapa: regreso al panel y lista de negociaciones */
.a-panel { color: var(--hueso); text-decoration: none; font-size: 13px; font-weight: 600; border: 1px solid var(--verde-claro); border-radius: 6px; padding: 6px 12px; white-space: nowrap; }
.a-panel:hover { background: var(--verde); border-color: var(--verde); }
.barra-sup .b-negs { border-color: var(--ambar); color: var(--ambar); }
.lista-negs { list-style: none; padding: 0; margin: 8px 0; display: grid; gap: 6px; }
.lista-negs button { width: 100%; text-align: left; display: grid; gap: 2px; background: var(--blanco); border: 1px solid var(--linea); color: var(--negro); }
.lista-negs button:hover { border-color: var(--negro); }
.lista-negs small { font-size: 12px; color: var(--gris); }
.lista-negs .est-cerrado { border-left: 4px solid var(--verde); }
.lista-negs .est-platicas, .lista-negs .est-prospecto { border-left: 4px solid var(--ambar); }
.lista-negs .est-descartado { opacity: .55; }

/* Mercado de origen: proveedores y reparto del ancla */
.fp.sub button { font-size: 12px; padding: 4px 10px; }
.casilla-neg { display: flex; gap: 8px; align-items: center; font-size: 13px; margin-bottom: 8px; }
.provs { list-style: none; padding: 0; margin: 6px 0 10px; display: grid; gap: 6px; }
.prov { border: 1px solid var(--linea); border-radius: 8px; background: var(--blanco); }
.prov.est-descartado { opacity: .55; }
.prov.est-cerrado { border-left: 4px solid var(--verde); }
.prov-cab { width: 100%; text-align: left; border: 0; display: grid; gap: 2px; }
.prov-cab small { font-size: 12px; color: var(--gris); }
.prov-cuerpo { padding: 4px 10px 10px; display: grid; gap: 6px; }
.reparto td small { display: block; font-size: 11px; color: var(--gris); }
.reparto .norma { width: 96px; }

/* Negociador v2: trato en la ficha */
.cubre { color: var(--verde); }
.ligados td small { display: block; font-size: 11px; color: var(--gris); }
.ligados.colegio input[data-k=nombre] { width: 92px; padding: 2px 4px; font: inherit; }
.ligados.colegio .norma { width: 64px; }

/* Dónde estás, también en la mesa de acomodo (10-oct-2026): mismo patrón que negociar.css. */
.migas { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 6px 16px; font-size: 13px;
  background: var(--hueso); border-bottom: 1px solid var(--linea); color: var(--gris); min-width: 0; }
.migas a { color: var(--gris); text-decoration: none; }
.migas a:hover, .migas a:focus-visible { color: var(--negro); text-decoration: underline; }
.migas i { font-style: normal; opacity: .55; }
.migas [aria-current="page"] { color: var(--negro); font-weight: 600; }
.migas:empty { display: none; }
