/* =====================================================================
   MARÍA VIRGEN — BASE, COMPONENTES Y DISPOSICIÓN (Sprint 1)
   Todo color proviene de mv-tokens.css. El acento solo aparece en:
   botón primario, indicador activo y borde de foco.
   ===================================================================== */

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--mv-font-sans);
  font-size: var(--mv-fs-md);
  line-height: 1.5;
  color: var(--mv-ink);
  background: var(--mv-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: background-color .25s var(--mv-ease), color .25s var(--mv-ease);
}
h1, h2, h3, h4, p { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: inherit; }
svg.mv-ico { width: 16px; height: 16px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.mv-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
[hidden] { display: none !important; }

:focus { outline: none; }
:focus-visible { outline: 2px solid var(--mv-focus); outline-offset: 2px; border-radius: var(--mv-r-sm); }

.mv-serif { font-family: var(--mv-font-serif); letter-spacing: -.01em; }
.mv-mono { font-family: var(--mv-font-mono); font-size: .92em; }
.mv-tenue { color: var(--mv-ink-3); }
.mv-sec { color: var(--mv-ink-2); }
.mv-fuerte { font-weight: 600; }
.mv-pequeno { font-size: var(--mv-fs-sm); }
.mv-micro { font-size: var(--mv-fs-xs); }
.mv-num { font-variant-numeric: tabular-nums; }

/* ---------------------------- BOTONES ---------------------------- */
.mv-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  height: 32px; padding: 0 12px;
  border: 1px solid var(--mv-border-strong); border-radius: var(--mv-r-sm);
  background: var(--mv-surface); color: var(--mv-ink);
  font-size: var(--mv-fs-sm); font-weight: 500; white-space: nowrap; text-decoration: none;
  cursor: pointer; transition: background-color .15s, border-color .15s, color .15s;
}
.mv-btn:hover { background: var(--mv-surface-hover); }
.mv-btn:disabled { opacity: .5; cursor: not-allowed; }
.mv-btn--primario { background: var(--mv-accent); border-color: var(--mv-accent); color: var(--mv-accent-ink); }
.mv-btn--primario:hover { background: var(--mv-accent-hover); border-color: var(--mv-accent-hover); }
.mv-btn--sutil { background: transparent; border-color: transparent; color: var(--mv-ink-2); }
.mv-btn--sutil:hover { background: var(--mv-surface-hover); color: var(--mv-ink); }
.mv-btn--peligro:hover { color: var(--mv-crit); border-color: var(--mv-crit); background: var(--mv-crit-soft); }
.mv-btn--chico { height: 26px; padding: 0 9px; font-size: var(--mv-fs-xs); }
.mv-btn--icono { width: 32px; padding: 0; }
.mv-btn--chico.mv-btn--icono { width: 26px; }
.mv-btn--bloque { width: 100%; height: 40px; font-size: var(--mv-fs-md); }

/* ---------------------------- CAMPOS ---------------------------- */
.mv-campo, .mv-select, .mv-area {
  width: 100%; height: 34px; padding: 0 10px;
  border: 1px solid var(--mv-border-strong); border-radius: var(--mv-r-sm);
  background: var(--mv-surface); color: var(--mv-ink);
  font-size: var(--mv-fs-md);
  transition: border-color .15s, box-shadow .15s;
}
.mv-area { height: auto; min-height: 76px; padding: 9px 10px; resize: vertical; line-height: 1.5; }
.mv-campo::placeholder, .mv-area::placeholder { color: var(--mv-ink-3); }
.mv-campo:focus, .mv-select:focus, .mv-area:focus { border-color: var(--mv-accent); box-shadow: 0 0 0 3px var(--mv-accent-soft); }
.mv-etq-campo { display: block; font-size: var(--mv-fs-xs); font-weight: 600; color: var(--mv-ink-2); margin-bottom: 4px; letter-spacing: .01em; }
.mv-grupo-campo { margin-bottom: var(--mv-sp-3); }
.mv-fila-campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: var(--mv-sp-3); }

/* Selector segmentado (tema, trato, etc.) */
.mv-segmento { display: inline-flex; padding: 2px; gap: 2px; border: 1px solid var(--mv-border); border-radius: var(--mv-r-sm); background: var(--mv-surface-2); }
.mv-segmento button {
  height: 24px; padding: 0 9px; border: 0; border-radius: 4px; background: transparent;
  color: var(--mv-ink-3); font-size: var(--mv-fs-xs); font-weight: 500; cursor: pointer;
  display: inline-flex; align-items: center; gap: 5px;
}
.mv-segmento button:hover { color: var(--mv-ink); }
.mv-segmento button[aria-pressed="true"] { background: var(--mv-surface); color: var(--mv-ink); box-shadow: var(--mv-shadow-sm); }

/* Interruptor */
.mv-switch { position: relative; display: inline-flex; align-items: center; flex: none; width: 30px; height: 18px; cursor: pointer; }
.mv-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.mv-switch__pista { width: 100%; height: 100%; border-radius: var(--mv-r-pill); background: var(--mv-border-strong); transition: background-color .2s; }
.mv-switch__pista::after { content: ""; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: transform .2s var(--mv-ease); }
.mv-switch input:checked + .mv-switch__pista { background: var(--mv-accent); }
.mv-switch input:checked + .mv-switch__pista::after { transform: translateX(12px); }
.mv-switch input:focus-visible + .mv-switch__pista { outline: 2px solid var(--mv-focus); outline-offset: 2px; }

/* Chips de filtro (neutros: el acento no se usa aquí) */
.mv-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.mv-chip {
  height: 26px; padding: 0 10px; border: 1px solid var(--mv-border); border-radius: var(--mv-r-pill);
  background: var(--mv-surface); color: var(--mv-ink-2); font-size: var(--mv-fs-xs); font-weight: 500;
  cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
}
.mv-chip:hover { border-color: var(--mv-border-strong); color: var(--mv-ink); }
.mv-chip[aria-pressed="true"] { background: var(--mv-surface-2); border-color: var(--mv-border-strong); color: var(--mv-ink); font-weight: 600; }
.mv-chip__n { color: var(--mv-ink-3); font-weight: 500; }

/* Etiquetas de estado */
.mv-etq {
  display: inline-flex; align-items: center; gap: 5px; height: 20px; padding: 0 7px;
  border-radius: var(--mv-r-pill); font-size: 11px; font-weight: 600; white-space: nowrap;
  background: var(--mv-surface-2); color: var(--mv-ink-2);
}
.mv-etq--ok { background: var(--mv-ok-soft); color: var(--mv-ok); }
.mv-etq--warn { background: var(--mv-warn-soft); color: var(--mv-warn); }
.mv-etq--crit { background: var(--mv-crit-soft); color: var(--mv-crit); }
.mv-etq--info { background: var(--mv-info-soft); color: var(--mv-info); }
.mv-punto { width: 7px; height: 7px; border-radius: 50%; background: var(--mv-ink-3); flex: none; }
.mv-punto--ok { background: var(--mv-ok); }
.mv-punto--warn { background: var(--mv-warn); }
.mv-punto--crit { background: var(--mv-crit); }
.mv-punto--activo { background: var(--mv-accent); box-shadow: 0 0 0 3px var(--mv-accent-soft); }
.mv-punto--latido { animation: mv-latido 2.4s ease-in-out infinite; }
@keyframes mv-latido { 0%, 100% { box-shadow: 0 0 0 2px var(--mv-accent-soft); } 50% { box-shadow: 0 0 0 5px var(--mv-accent-soft); } }

/* ---------------------------- TARJETAS ---------------------------- */
.mv-tarjeta { background: var(--mv-surface); border: 1px solid var(--mv-border); border-radius: var(--mv-r-lg); box-shadow: var(--mv-shadow-sm); min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.mv-tarjeta__cab { display: flex; align-items: center; flex-wrap: wrap; gap: var(--mv-sp-2) var(--mv-sp-3); padding: 14px 16px 10px; }
.mv-tarjeta__cab > div:first-child { min-width: 0; flex: 1 1 200px; }
.mv-tarjeta__titulo { font-size: var(--mv-fs-lg); font-weight: 600; letter-spacing: -.005em; display: flex; align-items: center; gap: 8px; }
.mv-tarjeta__titulo svg.mv-ico { color: var(--mv-ink-3); }
.mv-tarjeta__sub { font-size: var(--mv-fs-xs); color: var(--mv-ink-3); margin-top: 1px; }
.mv-tarjeta__acciones { margin-left: auto; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.mv-tarjeta__cuerpo { padding: 4px 16px 16px; }
.mv-tarjeta__cuerpo--sin { padding: 0 0 6px; }
.mv-seccion-etq { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--mv-ink-3); margin: 14px 0 6px; display: flex; align-items: center; gap: 8px; }
.mv-seccion-etq:first-child { margin-top: 2px; }
.mv-seccion-etq .mv-etq { text-transform: none; letter-spacing: 0; }
.mv-separador { height: 1px; background: var(--mv-border); margin: 12px 0; border: 0; }

/* Filas de lista */
.mv-lista { list-style: none; margin: 0; padding: 0; }
.mv-fila {
  display: flex; align-items: flex-start; gap: 10px; padding: 10px 16px;
  border-top: 1px solid var(--mv-border);
}
.mv-lista--interna .mv-fila { padding: 9px 0; }
.mv-lista--interna .mv-fila:first-child { border-top: 0; }
.mv-fila:hover { background: color-mix(in srgb, var(--mv-surface-hover) 45%, transparent); }
.mv-fila__hora { width: 46px; flex: none; font-variant-numeric: tabular-nums; font-size: var(--mv-fs-sm); color: var(--mv-ink-2); font-weight: 600; padding-top: 1px; }
.mv-fila__cuerpo { flex: 1; min-width: 0; }
.mv-fila__titulo { font-weight: 550; font-weight: 600; font-size: var(--mv-fs-md); line-height: 1.4; }
.mv-fila__meta { font-size: var(--mv-fs-xs); color: var(--mv-ink-3); margin-top: 2px; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; }
.mv-fila__lado { flex: none; display: flex; align-items: center; gap: 6px; }
.mv-fila__icono { width: 28px; height: 28px; flex: none; border-radius: var(--mv-r-sm); background: var(--mv-surface-2); display: grid; place-items: center; color: var(--mv-ink-2); }

/* Vacío (cuenta virgen) */
.mv-vacio { padding: 22px 16px; text-align: center; color: var(--mv-ink-3); font-size: var(--mv-fs-sm); }
.mv-vacio svg.mv-ico { width: 22px; height: 22px; display: block; margin: 0 auto 8px; opacity: .7; }
.mv-vacio strong { display: block; color: var(--mv-ink-2); font-weight: 600; margin-bottom: 2px; }

/* ====================================================================
   DISPOSICIÓN DE LA APLICACIÓN
   ==================================================================== */
.mv-app { display: grid; grid-template-columns: var(--mv-sidebar-w) minmax(0, 1fr); grid-template-rows: var(--mv-header-h) minmax(0, 1fr); min-height: 100vh; }

/* ---------------------------- CABECERA ---------------------------- */
.mv-cabecera {
  grid-column: 1 / -1; position: sticky; top: 0; z-index: 30;
  display: flex; align-items: center; gap: var(--mv-sp-4); padding: 0 var(--mv-sp-5);
  height: var(--mv-header-h); background: color-mix(in srgb, var(--mv-bg) 88%, transparent);
  backdrop-filter: saturate(1.2) blur(10px); -webkit-backdrop-filter: saturate(1.2) blur(10px);
  border-bottom: 1px solid var(--mv-border);
}
.mv-marca { display: flex; align-items: center; gap: 10px; min-width: calc(var(--mv-sidebar-w) - 40px); text-decoration: none; }
.mv-marca__sello { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; background: var(--mv-ink); color: var(--mv-bg); font-family: var(--mv-font-serif); font-size: 16px; font-weight: 600; }
.mv-marca__nombre { font-family: var(--mv-font-serif); font-size: 17px; font-weight: 600; line-height: 1.1; letter-spacing: -.01em; }
.mv-marca__lema { font-size: 10.5px; color: var(--mv-ink-3); letter-spacing: .04em; text-transform: uppercase; line-height: 1.2; }

.mv-motores { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.mv-motor {
  position: relative; display: inline-flex; align-items: center; gap: 8px; height: 32px; padding: 0 10px 0 9px;
  border: 1px solid var(--mv-border); border-radius: var(--mv-r-pill); background: var(--mv-surface);
  font-size: var(--mv-fs-xs); color: var(--mv-ink-2); cursor: pointer; white-space: nowrap;
}
.mv-motor:hover { border-color: var(--mv-border-strong); }
.mv-motor__nombre { font-weight: 600; color: var(--mv-ink); }
.mv-motor__estado { color: var(--mv-ink-3); }
.mv-motor .mv-switch { margin-left: 2px; }
.mv-motor__panel {
  position: absolute; top: calc(100% + 8px); right: 0; width: 300px; z-index: 40;
  padding: 14px; border: 1px solid var(--mv-border); border-radius: var(--mv-r-md);
  background: var(--mv-surface); box-shadow: var(--mv-shadow-lg); white-space: normal; cursor: default;
  font-size: var(--mv-fs-sm); color: var(--mv-ink-2); text-align: left;
}
.mv-motor__panel h4 { font-size: var(--mv-fs-md); color: var(--mv-ink); margin-bottom: 6px; display: flex; align-items: center; gap: 8px; }
.mv-motor__panel ul { margin: 8px 0 0; padding-left: 16px; }
.mv-motor__panel li { margin: 3px 0; }

.mv-cabecera__der { display: flex; align-items: center; gap: 10px; }
.mv-avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--mv-surface-2); border: 1px solid var(--mv-border-strong); display: grid; place-items: center; font-size: 11.5px; font-weight: 700; color: var(--mv-ink-2); flex: none; }
.mv-avatar--g { width: 38px; height: 38px; font-size: 13px; }

/* ---------------------------- NAVEGACIÓN LATERAL ---------------------------- */
.mv-lateral {
  position: sticky; top: var(--mv-header-h); height: calc(100vh - var(--mv-header-h));
  display: flex; flex-direction: column; gap: 2px; padding: var(--mv-sp-4) var(--mv-sp-3);
  border-right: 1px solid var(--mv-border); background: var(--mv-bg); overflow-y: auto;
}
.mv-nav__titulo { font-size: 10.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--mv-ink-3); padding: 0 10px 8px; }
.mv-nav__item {
  position: relative; display: flex; align-items: center; gap: 10px; width: 100%; height: 36px; padding: 0 10px;
  border: 0; border-radius: var(--mv-r-sm); background: transparent; color: var(--mv-ink-2);
  font-size: var(--mv-fs-md); font-weight: 500; text-align: left; cursor: pointer; text-decoration: none; white-space: nowrap;
}
.mv-nav__etq { overflow: hidden; text-overflow: ellipsis; }
.mv-nav__item:hover { background: var(--mv-surface-hover); color: var(--mv-ink); }
.mv-nav__item[aria-current="page"] { background: var(--mv-surface); color: var(--mv-ink); font-weight: 600; box-shadow: var(--mv-shadow-sm); border: 1px solid var(--mv-border); }
.mv-nav__item[aria-current="page"]::before { content: ""; position: absolute; left: -12px; top: 9px; bottom: 9px; width: 3px; border-radius: 0 3px 3px 0; background: var(--mv-accent); }
.mv-nav__item[aria-current="page"] svg.mv-ico { color: var(--mv-accent); }
.mv-nav__num { margin-left: auto; font-size: 11px; color: var(--mv-ink-3); font-variant-numeric: tabular-nums; font-weight: 600; }
.mv-nav__pie { margin-top: auto; padding: 12px 10px 4px; border-top: 1px solid var(--mv-border); font-size: var(--mv-fs-xs); color: var(--mv-ink-3); display: grid; gap: 6px; }
.mv-nav__pie strong { color: var(--mv-ink-2); font-weight: 600; }
.mv-politica { display: flex; align-items: flex-start; gap: 8px; }
.mv-politica svg.mv-ico { margin-top: 2px; color: var(--mv-ok); }

/* ---------------------------- CONTENIDO ---------------------------- */
.mv-principal { min-width: 0; padding: var(--mv-sp-6) var(--mv-sp-6) 48px; }
.mv-vista { display: none; max-width: 1480px; margin: 0 auto; animation: mv-entrar .25s var(--mv-ease); }
.mv-vista.is-activa { display: block; }
@keyframes mv-entrar { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.mv-vista__cab { display: flex; align-items: flex-end; gap: var(--mv-sp-4); margin-bottom: var(--mv-sp-5); flex-wrap: wrap; }
.mv-vista__titulo { font-family: var(--mv-font-serif); font-size: var(--mv-fs-2xl); font-weight: 600; letter-spacing: -.015em; line-height: 1.15; }
.mv-vista__sub { color: var(--mv-ink-3); font-size: var(--mv-fs-md); margin-top: 4px; }
.mv-vista__acciones { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }
.mv-pila { display: grid; gap: var(--mv-sp-4); align-content: start; min-width: 0; }

/* Grilla 2 + 1 de El Despacho (~68% / ~32%) */
.mv-grilla-2-1 { display: grid; grid-template-columns: minmax(0, 67fr) minmax(0, 33fr); gap: var(--mv-sp-4); align-items: start; }
.mv-grilla-2-1__lateral { position: sticky; top: calc(var(--mv-header-h) + var(--mv-sp-6)); }
.mv-subgrilla { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--mv-sp-4); }

/* Tablero dual de seguimiento */
.mv-tablero-dual { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--mv-sp-4); align-items: start; }
.mv-rejilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--mv-sp-4); }
.mv-rejilla--docs { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: var(--mv-sp-3); }

/* Reloj de seguimiento */
.mv-reloj { display: inline-flex; align-items: center; gap: 4px; font-variant-numeric: tabular-nums; }
.mv-reloj--vencido { color: var(--mv-crit); font-weight: 600; }
.mv-reloj--pronto { color: var(--mv-warn); font-weight: 600; }
.mv-barra { height: 3px; border-radius: 3px; background: var(--mv-surface-2); overflow: hidden; margin-top: 7px; }
.mv-barra > span { display: block; height: 100%; background: var(--mv-ink-3); border-radius: 3px; }

/* Tarjeta de borrador (Escudo de Visto Bueno) */
.mv-borrador { border: 1px solid var(--mv-border); border-radius: var(--mv-r-md); padding: 12px 14px; background: var(--mv-surface); }
.mv-borrador + .mv-borrador { margin-top: 10px; }
.mv-borrador__cab { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.mv-borrador__texto { font-size: var(--mv-fs-md); line-height: 1.55; padding: 10px 12px; border-radius: var(--mv-r-sm); background: var(--mv-surface-2); border-left: 2px solid var(--mv-border-strong); white-space: pre-wrap; }
.mv-borrador__pie { display: flex; align-items: center; gap: 6px; margin-top: 10px; flex-wrap: wrap; }
.mv-borrador__pie .mv-tenue { margin-right: auto; font-size: var(--mv-fs-xs); }

/* Contactos VIP */
.mv-contacto { padding: 14px 16px; display: grid; gap: 12px; }
.mv-contacto__cab { display: flex; align-items: center; gap: 10px; }
.mv-contacto__nombre { font-weight: 600; font-size: var(--mv-fs-lg); line-height: 1.25; }
.mv-ajuste { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: var(--mv-fs-sm); color: var(--mv-ink-2); }
.mv-permisos { display: grid; gap: 8px; padding-top: 10px; border-top: 1px solid var(--mv-border); }

/* Documentos de la Bóveda */
.mv-doc { padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.mv-doc__cab { display: flex; align-items: center; gap: 10px; }
.mv-doc__dato { font-family: var(--mv-font-mono); font-size: var(--mv-fs-sm); color: var(--mv-ink-2); letter-spacing: .02em; }
.mv-doc__pie { display: flex; align-items: center; gap: 6px; margin-top: auto; }

/* Indicadores financieros */
.mv-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--mv-sp-3); }
.mv-kpi { padding: 14px 16px; }
.mv-kpi__etq { font-size: var(--mv-fs-xs); color: var(--mv-ink-3); font-weight: 500; }
.mv-kpi__valor { font-size: 22px; font-weight: 600; letter-spacing: -.02em; font-variant-numeric: tabular-nums; margin-top: 2px; }
.mv-kpi__nota { font-size: var(--mv-fs-xs); color: var(--mv-ink-3); margin-top: 2px; }
.mv-tasa { display: flex; align-items: baseline; gap: 8px; }
.mv-tasa__valor { font-size: 28px; font-weight: 600; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }

/* Captura rápida */
.mv-captura__barra { display: flex; align-items: center; gap: 6px; margin-top: 8px; flex-wrap: wrap; }

/* Sub-pestañas (Vista 5) */
.mv-subpestanas { display: flex; gap: 2px; border-bottom: 1px solid var(--mv-border); margin-bottom: var(--mv-sp-5); overflow-x: auto; }
.mv-subpestanas button {
  position: relative; height: 38px; padding: 0 14px; border: 0; background: transparent; cursor: pointer;
  color: var(--mv-ink-3); font-size: var(--mv-fs-md); font-weight: 500; white-space: nowrap;
}
.mv-subpestanas button:hover { color: var(--mv-ink); }
.mv-subpestanas button[aria-selected="true"] { color: var(--mv-ink); font-weight: 600; }
.mv-subpestanas button[aria-selected="true"]::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: -1px; height: 2px; border-radius: 2px; background: var(--mv-accent); }
.mv-subpanel { display: none; }
.mv-subpanel.is-activo { display: block; }

/* Reglas permanentes */
.mv-regla { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; }
.mv-regla__texto { flex: 1; min-width: 0; }
.mv-regla__texto p { font-size: var(--mv-fs-md); line-height: 1.5; }
.mv-regla.is-inactiva .mv-regla__texto p { color: var(--mv-ink-3); text-decoration: line-through; text-decoration-color: var(--mv-border-strong); }

/* Bitácora */
.mv-linea { position: relative; padding-left: 18px; }
.mv-linea::before { content: ""; position: absolute; left: 4px; top: 6px; bottom: 6px; width: 1px; background: var(--mv-border); }
.mv-linea__item { position: relative; padding: 0 0 14px; }
.mv-linea__item::before { content: ""; position: absolute; left: -18px; top: 6px; width: 9px; height: 9px; border-radius: 50%; background: var(--mv-surface); border: 2px solid var(--mv-ink-3); }

/* Simulador de Criterio */
.mv-simulador { border: 1px solid var(--mv-border-strong); border-radius: var(--mv-r-lg); background: var(--mv-surface); overflow: clip; }
.mv-cintillo-simulacro {
  position: sticky; top: var(--mv-header-h); z-index: 20;
  display: flex; align-items: center; justify-content: center; gap: 10px; padding: 9px 14px;
  background: repeating-linear-gradient(-45deg, var(--mv-surface-2), var(--mv-surface-2) 10px, var(--mv-surface) 10px, var(--mv-surface) 20px);
  border-bottom: 1px solid var(--mv-border-strong);
  font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mv-ink); text-align: center;
  user-select: none;
}
.mv-cintillo-simulacro svg.mv-ico { color: var(--mv-warn); }
.mv-sim__cuerpo { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); min-height: 420px; }
.mv-sim__config { padding: 16px; border-right: 1px solid var(--mv-border); background: var(--mv-bg); }
.mv-sim__chat { display: flex; flex-direction: column; min-width: 0; }
.mv-sim__mensajes { flex: 1; padding: 16px; display: flex; flex-direction: column; gap: 10px; overflow-y: auto; max-height: 520px; }
.mv-burbuja { max-width: 82%; padding: 9px 12px; border-radius: 12px; font-size: var(--mv-fs-md); line-height: 1.5; background: var(--mv-surface-2); border: 1px solid var(--mv-border); }
.mv-burbuja--entrante { align-self: flex-start; border-bottom-left-radius: 4px; }
.mv-burbuja--maria { align-self: flex-end; border-bottom-right-radius: 4px; background: var(--mv-surface); border-color: var(--mv-border-strong); }
.mv-burbuja__autor { font-size: 11px; font-weight: 600; color: var(--mv-ink-3); margin-bottom: 3px; }
.mv-veredicto { align-self: stretch; padding: 10px 12px; border-radius: var(--mv-r-md); border: 1px dashed var(--mv-border-strong); font-size: var(--mv-fs-sm); color: var(--mv-ink-2); background: var(--mv-bg); }
.mv-sim__entrada { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--mv-border); }

/* ---------------------------- MODAL Y AVISOS ---------------------------- */
/* Resultado del Router Multi-Intención (Captura Rápida y Simulador) */
.mv-resultado { margin-top: 12px; border: 1px solid var(--mv-border); border-radius: var(--mv-r-md); background: var(--mv-bg); overflow: hidden; }
.mv-resultado__cab { display: flex; align-items: center; gap: 8px; padding: 9px 12px; border-bottom: 1px solid var(--mv-border); font-size: var(--mv-fs-xs); font-weight: 600; color: var(--mv-ink-2); }
.mv-resultado__fila { display: flex; gap: 8px; align-items: flex-start; padding: 8px 12px; border-top: 1px solid var(--mv-border); font-size: var(--mv-fs-sm); line-height: 1.45; }
.mv-resultado__fila:first-of-type { border-top: 0; }
.mv-resultado__fila .mv-etq { flex: none; margin-top: 1px; }
.mv-resultado__voz { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-top: 1px solid var(--mv-border); font-size: var(--mv-fs-sm); color: var(--mv-ink); background: var(--mv-surface); }
.mv-resultado__voz svg.mv-ico { color: var(--mv-accent); margin-top: 2px; }
.mv-etq--mono { font-family: var(--mv-font-mono); letter-spacing: .02em; }

/* Lotes del Escudo */
.mv-lote { border: 1px solid var(--mv-border); border-radius: var(--mv-r-md); padding: 10px; background: var(--mv-bg); }
.mv-lote + .mv-lote { margin-top: 12px; }
.mv-lote__cab { display: flex; align-items: center; gap: 8px; margin: 0 2px 10px; flex-wrap: wrap; }
.mv-lote .mv-borrador { background: var(--mv-surface); }

/* Cuadernos con columnas dinámicas */
.mv-cuaderno-envoltura { overflow-x: auto; margin-top: 10px; border: 1px solid var(--mv-border); border-radius: var(--mv-r-sm); }
.mv-cuaderno-grid { width: 100%; border-collapse: collapse; font-size: var(--mv-fs-sm); }
.mv-cuaderno-grid th { text-align: left; font-size: 11px; font-weight: 600; color: var(--mv-ink-3); text-transform: uppercase; letter-spacing: .04em; padding: 7px 10px; border-bottom: 1px solid var(--mv-border); background: var(--mv-surface-2); white-space: nowrap; }
.mv-cuaderno-grid td { padding: 7px 10px; border-bottom: 1px solid var(--mv-border); vertical-align: top; }
.mv-cuaderno-grid tr:last-child td { border-bottom: 0; }
.mv-cuaderno-alta { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.mv-cuaderno-alta .mv-campo { flex: 1 1 120px; height: 30px; font-size: var(--mv-fs-sm); }

/* ---------------------------- MODAL Y AVISOS ---------------------------- */
.mv-modal-fondo { position: fixed; inset: 0; z-index: 60; background: var(--mv-overlay); display: grid; place-items: center; padding: 16px; animation: mv-aparecer .15s ease; }
@keyframes mv-aparecer { from { opacity: 0; } to { opacity: 1; } }
.mv-modal { width: min(520px, 100%); max-height: calc(100vh - 32px); overflow: auto; background: var(--mv-surface); border: 1px solid var(--mv-border); border-radius: var(--mv-r-lg); box-shadow: var(--mv-shadow-lg); }
.mv-modal__cab { display: flex; align-items: center; gap: 10px; padding: 16px 18px 6px; }
.mv-modal__titulo { font-size: var(--mv-fs-xl); font-weight: 600; font-family: var(--mv-font-serif); }
.mv-modal__cuerpo { padding: 8px 18px 4px; }
.mv-modal__pie { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 18px 16px; }
.mv-nota { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: var(--mv-r-sm); background: var(--mv-surface-2); font-size: var(--mv-fs-sm); color: var(--mv-ink-2); }
.mv-nota svg.mv-ico { margin-top: 2px; color: var(--mv-ink-3); }

.mv-avisos { position: fixed; right: 18px; bottom: 18px; z-index: 70; display: grid; gap: 8px; }
.mv-aviso { display: flex; align-items: center; gap: 10px; padding: 10px 14px; min-width: 240px; max-width: 380px; border-radius: var(--mv-r-md); background: var(--mv-ink); color: var(--mv-ink-inverse); font-size: var(--mv-fs-sm); box-shadow: var(--mv-shadow-lg); animation: mv-entrar .2s var(--mv-ease); }
.mv-aviso svg.mv-ico { color: var(--mv-accent); }

/* ====================================================================
   RESPONSIVIDAD
   - Grilla 2 + 1 (≈67% / ≈33%) activa lado a lado desde 1024 px
     (cubre 1280 px y 1366 px); colapsa a 1 columna solo bajo 1024 px.
   - Entre 1024 px y 1279 px la navegación lateral pasa a riel de íconos
     para liberar ancho útil a la grilla.
   ==================================================================== */
@media (max-width: 1365.98px) {
  .mv-motor__estado { display: none; }
}
@media (max-width: 1100px) {
  .mv-tablero-dual { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1279.98px) {
  :root { --mv-sidebar-w: 72px; }
  .mv-marca { min-width: auto; }
  .mv-marca__texto { display: none; }
  .mv-nav__titulo, .mv-nav__etq, .mv-nav__num, .mv-nav__pie { display: none; }
  .mv-nav__item { justify-content: center; padding: 0; }
  .mv-nav__item svg.mv-ico { width: 18px; height: 18px; }
  .mv-principal { padding-left: var(--mv-sp-5); padding-right: var(--mv-sp-5); }
}
@media (max-width: 1023.98px) {
  .mv-grilla-2-1 { grid-template-columns: minmax(0, 1fr); }
  .mv-grilla-2-1__lateral { position: static; }
  .mv-subgrilla { grid-template-columns: minmax(0, 1fr); }
  .mv-sim__cuerpo { grid-template-columns: minmax(0, 1fr); }
  .mv-sim__config { border-right: 0; border-bottom: 1px solid var(--mv-border); }
}
@media (max-width: 760px) {
  .mv-app { grid-template-columns: minmax(0, 1fr); grid-template-rows: var(--mv-header-h) minmax(0, 1fr) auto; max-width: 100vw; overflow-x: clip; }
  .mv-cabecera { padding: 0 10px; gap: 6px; max-width: 100vw; }
  .mv-motores { gap: 6px; min-width: 0; }
  .mv-cabecera__der { gap: 6px; flex: none; }
  .mv-motor { padding: 0 7px; gap: 5px; height: 30px; }
  .mv-motor__nombre--largo { display: none; }
  .mv-cabecera__der .mv-segmento { display: none; }
  .mv-antesala__chips .mv-etq { white-space: normal; height: auto; padding: 3px 8px; line-height: 1.3; }
  .mv-antesala__cuerpo, .mv-antesala__bloque, .mv-antesala__guion, .mv-grilla-2-1 > *, .mv-subgrilla > * { min-width: 0; max-width: 100%; }
  .mv-lateral {
    position: fixed; top: auto; bottom: 0; left: 0; right: 0; height: auto; z-index: 35;
    flex-direction: row; justify-content: space-around; padding: 6px 6px calc(6px + env(safe-area-inset-bottom));
    border-right: 0; border-top: 1px solid var(--mv-border); background: color-mix(in srgb, var(--mv-bg) 94%, transparent);
    backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  }
  .mv-nav__item { flex-direction: column; height: 48px; gap: 2px; font-size: 10px; width: auto; flex: 1; }
  .mv-nav__etq { display: block; font-size: 10px; }
  .mv-nav__etq-larga { display: none; }
  .mv-nav__item[aria-current="page"] { box-shadow: none; border-color: transparent; background: transparent; }
  .mv-nav__item[aria-current="page"]::before { left: 30%; right: 30%; top: -7px; bottom: auto; width: auto; height: 2px; border-radius: 0 0 2px 2px; }
  .mv-principal { padding: 16px 14px 96px; }
  .mv-vista__titulo { font-size: 22px; }
  .mv-motor__panel { position: fixed; top: calc(var(--mv-header-h) + 6px); left: 12px; right: 12px; width: auto; }
  .mv-avisos { left: 12px; right: 12px; bottom: 76px; }
  .mv-fila { padding: 10px 12px; }
  .mv-burbuja { max-width: 92%; }
}
@media (min-width: 761px) { .mv-nav__etq-corta { display: none; } }
@media (max-width: 420px) {
  .mv-motor__nombre { display: none; }
  .mv-principal { padding: 14px 12px 92px; }
  .mv-vista__cab .mv-vista__acciones { margin-left: 0; width: 100%; }
  .mv-vista__cab .mv-vista__acciones .mv-btn { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ====================================================================
   LOGIN — "Despacho Privado — Custodiado por María"
   ==================================================================== */
.mv-login { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; }
.mv-login__barra { display: flex; justify-content: space-between; align-items: center; padding: 18px 24px; }
.mv-login__centro { display: grid; place-items: center; padding: 24px 16px 48px; }
.mv-login__caja { width: min(400px, 100%); }
.mv-login__sello { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; margin: 0 auto 22px; background: var(--mv-ink); color: var(--mv-bg); font-family: var(--mv-font-serif); font-size: 26px; font-weight: 600; }
.mv-login__titulo { font-family: var(--mv-font-serif); font-size: 30px; font-weight: 600; letter-spacing: -.02em; text-align: center; line-height: 1.15; }
.mv-login__sub { text-align: center; color: var(--mv-ink-3); margin: 8px 0 28px; font-size: var(--mv-fs-md); }
.mv-login__panel { padding: 22px; }
.mv-login__clave { height: 44px; font-size: 18px; letter-spacing: .35em; text-align: center; font-family: var(--mv-font-mono); }
.mv-login__error { min-height: 18px; font-size: var(--mv-fs-xs); color: var(--mv-crit); text-align: center; margin: 8px 0 4px; }
.mv-login__pie { text-align: center; padding: 18px; font-size: var(--mv-fs-xs); color: var(--mv-ink-3); }
.mv-login__garantias { display: grid; gap: 8px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--mv-border); font-size: var(--mv-fs-xs); color: var(--mv-ink-3); }
.mv-login__garantias div { display: flex; gap: 8px; align-items: center; }

/* ====================================================================
   SPRINT 3 — ANTESALA (-15 MIN), AGENDA BIDIRECCIONAL, TRIAGE E INDUCCIÓN
   ==================================================================== */
.mv-antesala { border-left: 3px solid var(--mv-accent); background: var(--mv-surface); }
.mv-antesala__cuerpo { padding: 14px 16px; display: grid; gap: 10px; }
.mv-antesala__guion { padding: 10px 12px; border-radius: var(--mv-r-sm); background: var(--mv-surface-2); border: 1px solid var(--mv-border); font-size: var(--mv-fs-md); line-height: 1.5; display: flex; gap: 10px; align-items: flex-start; }
.mv-antesala__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.mv-antesala__bloque { font-size: var(--mv-fs-sm); color: var(--mv-ink-2); display: grid; gap: 4px; }

.mv-agenda-conflicto { margin-top: 6px; padding: 8px 10px; border-radius: var(--mv-r-sm); border: 1px solid var(--mv-warn); background: color-mix(in srgb, var(--mv-warn) 8%, var(--mv-surface)); font-size: var(--mv-fs-sm); display: grid; gap: 6px; }
.mv-acciones-linea { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }

/* Inducción Express (90 segundos) */
.mv-induccion-fondo { position: fixed; inset: 0; z-index: 65; background: var(--mv-overlay); display: grid; place-items: center; padding: 16px; animation: mv-aparecer .18s ease; }
.mv-induccion { width: min(640px, 100%); max-height: calc(100vh - 32px); overflow: auto; background: var(--mv-surface); border: 1px solid var(--mv-border-strong); border-radius: var(--mv-r-lg); box-shadow: var(--mv-shadow-lg); padding: 22px 24px; display: grid; gap: 16px; }
.mv-induccion__top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.mv-induccion__pasos { display: flex; gap: 6px; }
.mv-induccion__paso { padding: 3px 10px; border-radius: 99px; font-size: 11px; font-weight: 600; border: 1px solid var(--mv-border); color: var(--mv-ink-3); }
.mv-induccion__paso.is-activo { background: var(--mv-ink); color: var(--mv-ink-inverse); border-color: var(--mv-ink); }
.mv-induccion__paso.is-hecho { border-color: var(--mv-accent); color: var(--mv-ink); }
.mv-induccion__titulo { font-family: var(--mv-font-serif); font-size: 24px; font-weight: 600; line-height: 1.2; }
.mv-induccion__vip-fila { display: grid; grid-template-columns: 1.1fr 1fr .9fr 1.1fr auto; gap: 6px; align-items: center; }
@media (max-width: 700px) {
  .mv-induccion { padding: 16px; }
  .mv-induccion__vip-fila { grid-template-columns: 1fr; padding-bottom: 10px; border-bottom: 1px solid var(--mv-border); }
}
.mv-induccion__pie { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding-top: 10px; border-top: 1px solid var(--mv-border); }
.mv-aviso-induccion { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border: 1px dashed var(--mv-border-strong); border-radius: var(--mv-r-lg); background: var(--mv-surface); }
