/* WebAdmin · lo mínimo propio: el resto es eyesoft-pos.css del POS (enlazado desde el .csproj, sin copiar). */

/* Header: nombre del administrador y chip del rol cuando no hay a cuál cambiar */
.adm-nombre { font-size: .85rem; color: var(--muted); max-width: 18ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-chip-fijo { cursor: default; }
.adm-chip-fijo:hover { border-color: var(--border); }

.adm-angosto { max-width: 480px; }
.adm-parrafo { margin: .6rem 0 1rem; }
.adm-nowrap { white-space: nowrap; }

/* Panel */
.adm-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; margin-bottom: 1rem; }
.adm-kpi { display: flex; flex-direction: column; text-decoration: none !important; }
.adm-ultimos { margin-bottom: 1rem; }

/* Administradores: roles marcables y contraseña temporal */
.us-roles { display: grid; gap: .45rem; margin: .4rem 0 .2rem; }
.us-rol { display: flex; align-items: flex-start; gap: .55rem; font-size: .9rem; cursor: pointer; padding: .35rem .5rem; border: 1px solid var(--border); border-radius: 6px; background: var(--bg2); }
.us-rol input { margin-top: .15rem !important; }
/* El texto del rol se recorta dentro de la tarjeta: la descripción va en su propia línea, con puntos suspensivos */
.us-rol > span { flex: 1; min-width: 0; overflow: hidden; }
.us-rol small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-clave-temporal { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin: .4rem 0 .8rem; padding: .7rem .9rem; border: 1px dashed var(--blue-b); border-radius: 8px; background: var(--bg2); }
.adm-clave-temporal code { font-size: 1.25rem; font-weight: 700; letter-spacing: .06em; user-select: all; overflow-wrap: anywhere; }

/* Auditoría */
.adm-filtros-aud .campo { min-width: 140px; }
.adm-nota-aud { margin: -.4rem 0 .8rem; font-size: .8rem; }
.adm-dl { display: grid; grid-template-columns: max-content 1fr; gap: .3rem .9rem; margin: 0 0 .9rem; font-size: .88rem; }
.adm-dl dt { color: var(--muted); }
.adm-dl dd { margin: 0; overflow-wrap: anywhere; }
.adm-tabla-cambios td:first-child { color: var(--muted); white-space: nowrap; }
.adm-tabla-cambios tr.adm-cambio td { background: color-mix(in srgb, var(--gold, #f0b429) 12%, transparent); }
.adm-tabla-cambios tr.adm-cambio td:first-child { color: var(--text); font-weight: 600; }
.adm-json { margin: .6rem 0 .4rem; }
.adm-json summary { cursor: pointer; color: var(--muted); font-size: .85rem; }
.adm-json pre { max-height: 320px; overflow: auto; margin: .5rem 0 0; padding: .7rem .8rem; border: 1px solid var(--border); border-radius: 6px; background: var(--bg2); font-size: .78rem; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 1099px) { .adm-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) {
  .adm-nombre { display: none; }
  .adm-kpis { gap: .55rem; }
  .adm-dl { grid-template-columns: 1fr; gap: .1rem; }
  .adm-dl dd { margin-bottom: .35rem; }
  .adm-clave-temporal { flex-direction: column; align-items: stretch; }
}

/* Clientes y empresas (fase 2) */
.cli-ayuda { margin: -.35rem 0 .7rem; font-size: .8rem; }
.cli-txt-err { color: var(--red); }
.cli-estado-resumen { margin: 0; }
.cd-sub { margin: .2rem 0 0; }
.cd-chips { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }
.cd-cabecera, .cd-empresas { margin-bottom: 1rem; }
.cd-datos { grid-template-columns: max-content 1fr max-content 1fr; margin-bottom: 0; }
.cd-tarjetas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.cd-tarjeta .dash-title .ico, .cd-empresas .dash-title .ico { vertical-align: -2px; }
.cd-nota { font-size: .8rem; margin: 0 0 .8rem; }
.cd-mensaje { margin: 0 0 .8rem; padding: .55rem .75rem; border-radius: 6px; font-size: .85rem; color: var(--gold); background: rgba(240,180,41,.08); border: 1px solid rgba(240,180,41,.3); }
.cd-botones { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.cd-empresa { margin-top: .9rem; border: 1px solid var(--border); border-radius: 8px; background: var(--bg2); }
.cd-empresa > summary { cursor: pointer; padding: .6rem .8rem; }
.cd-empresa-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 1rem; padding: 0 .8rem .8rem; }
.cd-sub-tit { font-size: .85rem; margin: .3rem 0 .5rem; }
.cd-lista { margin: 0; padding-left: 1.1rem; font-size: .86rem; }
.cd-lista > li { margin-bottom: .45rem; }
.cd-lista small { display: block; }
.cd-lista ul { margin: .2rem 0 0; padding-left: 1rem; color: var(--muted); }
.tabla td.num, .tabla th.num { text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 899px) {
  .cd-tarjetas, .cd-empresa-cuerpo { grid-template-columns: 1fr; }
  .cd-datos { grid-template-columns: max-content 1fr; }
}
@media (max-width: 639px) { .cd-datos { grid-template-columns: 1fr; } }

/* Clientes · errores del formulario: centrados en la vista y nunca bajo la barra fija de botones */
#form-cliente .error-linea { scroll-margin: 4rem 0 7rem; }
/* Detalle del cliente · avisos de la tarjeta «Usuario administrador» (empresas a las que no puede ingresar) */
.cd-avisos { margin: 0 0 .8rem; padding: .5rem .75rem .5rem 1.6rem; border-radius: 6px; font-size: .85rem; color: var(--gold); background: rgba(240,180,41,.08); border: 1px solid rgba(240,180,41,.3); }
.cd-avisos li + li { margin-top: .2rem; }


/* Licencias (fase 3): vencida en rojo, por vencer (≤ 15 días) en ámbar */
.li-filtros .campo, .adm-filtros-aud .li-campo-cliente { min-width: 160px; }
.li-campo-cliente select { max-width: 320px; }
.li-vencida { color: var(--red); font-weight: 600; }
.li-por-vencer { color: var(--gold); font-weight: 600; }
.li-ok { color: var(--green); font-weight: 600; }
.li-vence { display: inline-flex; align-items: center; gap: .45rem; }
.li-resumen { margin: 0; }
.li-errores ul { margin: .3rem 0 0; padding-left: 1.1rem; font-size: .85rem; }
.li-sub { margin: -.3rem 0 .6rem; }
.li-actual { margin-bottom: 1rem; }
.li-bajas { margin: .2rem 0 .9rem; padding: .6rem .8rem .7rem; border: 1px solid rgba(255,77,106,.35); border-radius: 8px; }
.li-bajas legend { padding: 0 .3rem; font-weight: 600; font-size: .9rem; }
.li-bajas-msj { margin: 0 0 .5rem; font-size: .86rem; }
.li-usuarios { display: grid; gap: .4rem; max-height: 260px; overflow: auto; }
.li-usuario .badge { margin-left: .25rem; vertical-align: 1px; }
.li-usuario-off { opacity: .6; cursor: not-allowed; }
.slick-header-column.num, .slick-cell.num { text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 639px) { .li-campo-cliente select { max-width: none; } }
.li-errores summary { cursor: pointer; }
.li-errores summary .texto-suave { font-weight: 400; }

/* Configuración de clientes (fase 4) · Menús por cliente: árbol con interruptores */
.mc-filtros .mc-campo-buscar { flex: 1 1 240px; }
.mc-aviso { display: flex; gap: .6rem; align-items: flex-start; }
.mc-aviso .ico { flex: none; margin-top: .1rem; }
.mc-panel { position: relative; min-height: 160px; }
.mc-cab { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .4rem 1rem; margin-bottom: .6rem; }
.mc-cab-texto { min-width: 0; }
.mc-resumen { margin: .2rem 0 0; font-size: .85rem; }
.mc-cab-botones { display: flex; gap: .2rem; }
.mc-arbol { display: grid; grid-template-columns: minmax(0, 1fr); gap: .45rem; }
.mc-nodo { min-width: 0; }
.mc-nodo[hidden], .mc-hijos[hidden] { display: none; }
.mc-modulo { border: 1px solid var(--border); border-radius: 8px; }
.mc-modulo > .mc-fila { background: var(--bg3); border-radius: 8px; }
.mc-modulo > .mc-hijos { padding: .3rem .5rem .45rem 1.4rem; }
.mc-hijos { display: grid; grid-template-columns: minmax(0, 1fr); gap: .05rem; min-width: 0; }
.mc-nodo .mc-nodo .mc-hijos { margin-left: .85rem; padding-left: .9rem; border-left: 2px solid var(--border); }
.mc-fila { display: flex; align-items: center; gap: .5rem; padding: .35rem .5rem .35rem .25rem; border-radius: 6px; min-width: 0; }
.mc-nodo:not(.mc-modulo) > .mc-fila:hover { background: color-mix(in srgb, var(--cyan) 6%, transparent); }
.mc-abrir { flex: none; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 4px; background: none; color: var(--muted); cursor: pointer; padding: 0; }
.mc-abrir span { display: inline-block; transition: transform .15s; font-size: .9rem; }
.mc-nodo[aria-expanded="true"] > .mc-fila .mc-abrir span { transform: rotate(90deg); }
.mc-abrir:hover { background: var(--bg2); color: var(--text); }
.mc-hoja { cursor: default; }
.mc-texto { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.mc-nombre { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-grupo > .mc-fila .mc-nombre { color: var(--muted); font-size: .9rem; }
.mc-permiso > .mc-fila .mc-nombre { font-weight: 400; font-size: .88rem; }
.mc-texto small { font-size: .75rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-codigo { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.mc-marcas { display: flex; gap: .3rem; flex-wrap: wrap; justify-content: flex-end; }
.mc-marcas .badge { white-space: nowrap; }
.mc-apagado > .mc-fila .mc-texto { opacity: .55; }
.mc-cambiado > .mc-fila { box-shadow: inset 3px 0 0 var(--gold); }
/* Interruptor */
.mc-switch { flex: none; display: inline-flex; align-items: center; gap: .45rem; margin: 0; cursor: pointer; position: relative; }
.mc-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.mc-switch-pista { width: 40px; height: 22px; border-radius: 11px; background: var(--border); position: relative; transition: background .15s; }
.mc-switch-pista::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.3); transition: transform .15s; }
.mc-switch input:checked + .mc-switch-pista { background: var(--green); }
.mc-switch input:checked + .mc-switch-pista::after { transform: translateX(18px); }
.mc-switch input:focus-visible + .mc-switch-pista { outline: 2px solid var(--blue-b); outline-offset: 2px; }
.mc-switch input:disabled + .mc-switch-pista { opacity: .55; }
.mc-switch:has(input:disabled) { cursor: default; }
.mc-switch-texto { width: 6.2em; font-size: .8rem; color: var(--muted); }
.mc-diferencias { margin-bottom: .7rem; }
/* Barra fija de pendientes */
.mc-barra { position: sticky; bottom: 0; z-index: 30; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem 1rem; margin-top: .8rem;
  padding: .6rem 1rem calc(.6rem + env(safe-area-inset-bottom)); background: var(--panel); border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 -4px 16px rgba(0,0,0,.18); }
.mc-barra[hidden] { display: none; }
.mc-barra-texto { margin: 0; flex: 1 1 260px; color: var(--gold); font-weight: 600; font-size: .9rem; }
.mc-barra-botones { display: flex; gap: .5rem; }
@media (max-width: 639px) {
  .mc-modulo > .mc-hijos { padding-left: .5rem; }
  .mc-nodo .mc-nodo .mc-hijos { margin-left: .4rem; padding-left: .5rem; }
  .mc-switch-texto { display: none; }
  .mc-url { display: none; }
  .mc-marcas { display: none; }
  .mc-cambiado > .mc-fila .mc-nombre::after { content: " •"; color: var(--gold); }
  .mc-barra-botones { flex: 1 1 100%; }
  .mc-barra-botones > * { flex: 1; }
}

/* Parámetros */
.pa-campo-def { flex: 1 1 260px; }
.pa-campo-def select { max-width: 420px; }
/* Valores en la grilla: una línea con «…» al final (el título tiene todos); en la tarjeta, en varias líneas */
.pa-vals { display: block; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pa-vals > span + span { margin-left: .55rem; }
.pa-vals small { color: var(--muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .03em; }
.cl-tarjeta .pa-vals { white-space: normal; }
.pa-campo-buscar { flex: 1 1 200px; min-width: 180px; }
.pa-fila3 { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr); }
.pa-valores { margin: .2rem 0 .8rem; padding: .5rem .8rem .2rem; border: 1px solid var(--border); border-radius: 8px; }
.pa-valores legend { padding: 0 .3rem; font-weight: 600; font-size: .9rem; }
@media (max-width: 639px) { .pa-campo-def select { max-width: none; } .pa-filtros .li-campo-cliente, .pa-filtros .pa-campo-def { flex: 1 1 100%; } .pa-fila3 { grid-template-columns: 1fr; } }

/* Variables del sistema */
.vs-campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.vs-campos .vs-ancho, .vs-campos .vs-sensible { grid-column: 1 / -1; }
.vs-campos .campo small { font-weight: 400; }
.vs-secreto { display: inline-flex; align-items: center; gap: .3rem; color: var(--muted); }
.vs-secreto .ico { width: 14px; height: 14px; }
.vs-sensible { padding: .5rem .7rem; border: 1px dashed var(--border); border-radius: 8px; margin-bottom: .8rem; }
.vs-sensible-estado { display: flex; align-items: center; gap: .35rem; margin: .1rem 0 .35rem; font-size: .88rem; }
.vs-sensible-estado .ico { width: 15px; height: 15px; }
.vs-sensible-ops { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; margin-bottom: .4rem; font-size: .88rem; }
@media (max-width: 639px) { .vs-campos { grid-template-columns: 1fr; } }

/* Logs de errores (fase 5) */
.lg-filtros { align-items: flex-end; }
.lg-campo-texto { flex: 1 1 220px; min-width: 180px; }
.lg-campo-proy { position: relative; min-width: 180px; }
.lg-multi { position: relative; }
.lg-multi > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: .5rem; min-height: 40px; padding: .55rem .7rem;
  background: var(--bg2); border: 1px solid var(--border); border-radius: 6px; cursor: pointer; font-size: .92rem; color: var(--text); white-space: nowrap; }
.lg-multi > summary::-webkit-details-marker { display: none; }
.lg-multi > summary::after { content: "▾"; color: var(--muted); }
.lg-multi > summary:focus-visible { outline: 2px solid var(--blue-b); outline-offset: 1px; }
.lg-multi-lista { position: absolute; z-index: 40; top: calc(100% + 4px); left: 0; min-width: 100%; max-width: min(360px, calc(100vw - 32px)); max-height: 300px; overflow: auto;
  padding: .35rem; background: var(--panel); border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,.25); }
.lg-multi-op { display: flex; align-items: center; gap: .5rem; padding: .35rem .45rem; border-radius: 6px; cursor: pointer; margin: 0; font-size: .88rem; white-space: nowrap; }
.lg-multi-op:hover { background: var(--bg3); }
.lg-multi-op input { width: auto; min-height: 0; }
.lg-multi-op span { flex: 1; overflow: hidden; text-overflow: ellipsis; }
.lg-multi-op small { color: var(--muted); font-size: .72rem; }
.lg-niveles { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .9rem; flex-basis: 100%; }
.lg-nivel { position: relative; margin: 0; cursor: pointer; }
.lg-nivel input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lg-nivel span { display: inline-flex; align-items: center; gap: .35rem; min-height: 34px; padding: 0 .75rem; border: 1px solid var(--border); border-radius: 17px;
  font-size: .8rem; font-weight: 700; color: var(--muted); background: transparent; }
.lg-nivel span b { font-weight: 600; font-size: .75rem; }
.lg-nivel input:checked + span { color: var(--text); border-color: var(--blue-b); background: var(--bg3); }
.lg-n-wrn input:checked + span { border-color: var(--gold); }
.lg-n-err input:checked + span, .lg-n-crt input:checked + span { border-color: var(--red); }
.lg-nivel input:focus-visible + span { outline: 2px solid var(--blue-b); outline-offset: 2px; }
#lg-carpeta { overflow-wrap: anywhere; }
#lg-carpeta.lg-sin-carpeta { color: var(--gold); }
#lg-aviso { margin-bottom: .7rem; }
#lg-tabs .badge:empty { display: none; }
.lg-crt { background: var(--red); color: #fff; }
.lg-tipo { color: var(--red); font-weight: 600; }
.lg-msj { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lg-tarjeta-msj { overflow-wrap: anywhere; }
.lg-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; overflow-wrap: anywhere; }
.lg-modal { max-width: min(1100px, calc(100vw - 32px)); }
.lg-sub { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: .9rem 0 .35rem; }
.lg-pre { margin: 0; max-height: 46vh; overflow: auto; padding: .6rem .75rem; background: var(--bg2); border: 1px solid var(--border); border-radius: 6px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .78rem; line-height: 1.45; white-space: pre; tab-size: 4; color: var(--text); }
.lg-pre:focus-visible { outline: 2px solid var(--blue-b); outline-offset: 1px; }
.lg-ex { max-height: 56vh; }
.lg-grupo { margin-bottom: .2rem; }
.lg-nota { margin: 0 0 .6rem; font-size: .82rem; }
@media (max-width: 639px) {
  .lg-campo-proy, .lg-campo-texto { flex: 1 1 100%; }
  .lg-pre { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 40vh; }
}

/* Monitoreo (fase 6) · Transacciones y Actividad por usuario */
.tr-filtros, .ac-filtros { align-items: flex-end; }
.tr-dias { display: flex; align-items: center; gap: .45rem; color: var(--muted); white-space: nowrap; }
.tr-dias input { width: 5.5rem; }
.ac-campo-empresa select { max-width: 320px; }
.tr-graficos, .tr-inferior, .ac-inferior { margin-bottom: 1rem; }
.tr-graficos > .dash, .tr-inferior > .dash, .ac-inferior > .dash { min-width: 0; }
.tr-seccion, .ac-seccion { margin-bottom: 1rem; min-width: 0; }
.tr-inferior > .tr-seccion, .ac-inferior > .ac-seccion { margin-bottom: 0; }
.tr-anterior { font-size: .8rem; }
.tr-razon { display: block; font-size: .75rem; max-width: 28ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tr-objeto { display: block; max-width: 34ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; }
.tr-kpis .stat-box .d, .ac-kpis .stat-box .d { font-weight: 500; }
.tabla-datos { margin-top: .6rem; }
.tabla-datos .tabla-envoltura { max-height: 320px; overflow: auto; }
.tr-rec-fechas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.mt-estado { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .2rem .45rem; font-size: .82rem; min-width: 0; }
.mt-error { flex-basis: 100%; color: var(--red); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow-wrap: anywhere; }
#tr-procesos { table-layout: fixed; width: 100%; }
#tr-procesos th:first-child { width: 22%; }
#tr-procesos td { vertical-align: top; overflow-wrap: anywhere; }
#ac-proceso .mt-error { -webkit-line-clamp: 3; }
/* Sin hover (táctil) o angosta: el error completo, que dice qué hacer (el title no se puede leer en un teléfono) */
@media (hover: none), (max-width: 639px) {
  .mt-error, #ac-proceso .mt-error { display: block; -webkit-line-clamp: unset; overflow: visible; }
}
.ac-vacio { margin-bottom: 1rem; }
.ac-vacio .tabla-vacia { margin: 0; }
.ac-filtro-tipo select { min-height: 34px; padding: .3rem .5rem; font-size: .85rem; }
.ac-usuario { padding: 0; font-weight: 600; text-align: left; }
.ac-filtrado td { background: var(--bg3); font-size: .85rem; }
#ac-proceso .mt-estado { vertical-align: middle; }
/* Con el menú lateral, las tablas de abajo no caben de a dos hasta pantallas anchas: una debajo de la otra */
@media (max-width: 1599px) { .tr-inferior, .ac-inferior { grid-template-columns: minmax(0, 1fr); } }
.tr-sin-datos { margin: .6rem 0 0; font-size: .8rem; }
@media (max-width: 639px) {
  .tr-filtros .campo, .ac-filtros .campo { flex: 1 1 calc(50% - .5rem); min-width: 0; }
  .tr-filtros .li-campo-cliente, .ac-filtros .li-campo-cliente, .ac-filtros .ac-campo-empresa { flex: 1 1 100%; }
  .ac-campo-empresa select { max-width: none; }
  .tr-filtros > .btn-primary, .ac-filtros > .btn-primary { flex: 1 1 100%; }
  .tr-razon, .tr-objeto { max-width: 22ch; }
  /* Procedimientos más pesados en tarjeta: el nombre y «N clientes» a todo el ancho; el nombre se parte en «.» o «_» (<wbr>) */
  table.tabla-tarjetas tbody tr td.tr-celda-objeto { display: block; text-align: left; }
  .tr-celda-objeto .tr-objeto, .tr-celda-objeto .tr-razon { max-width: none; white-space: normal; overflow: visible; text-overflow: clip; }
  .tr-celda-objeto .tr-objeto { overflow-wrap: break-word; }
  #tr-procesos { table-layout: auto; }
  .tr-rec-fechas { grid-template-columns: 1fr; }
}

/* ───── Fase 7 · Plantilla de base (/Plantilla) y Nuevo cliente (/Clientes/Nuevo) ───── */
.texto-error { color: var(--red); }
.pl-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 1rem; margin-bottom: 1rem; }
.pl-grid > .dash, .pl-form-sec, .nc-asistente { margin-bottom: 0; }
.pl-form-sec, .nc-asistente { margin-bottom: 1rem; }
.pl-dl dd, .nc-dl dd { overflow-wrap: anywhere; }
.nc-ubigeo { margin-top: 12px; }
.nc-ubigeo select { width: 100%; margin-top: 6px; font: inherit; }
.pl-ruta { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; overflow-wrap: anywhere; }
.pl-subtitulo { margin: .9rem 0 .4rem; font-size: .9rem; color: var(--muted); font-weight: 600; }
.pl-nota { font-size: .8rem; margin: .6rem 0 0; }
.pl-campo-usuario { max-width: 360px; }
.pl-resultado { margin-top: .8rem; }
.pl-resultado .alerta { margin-bottom: .6rem; }
.pl-botones { justify-content: flex-start; }
.nc-plantilla { margin: 0 0 .8rem; font-size: .85rem; overflow-wrap: anywhere; }
.nc-sub { margin: .15rem 0 0; font-size: .85rem; overflow-wrap: anywhere; }
.nc-pasos { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; margin: .4rem 0 1rem; padding: 0; counter-reset: paso; }
.nc-pasos li { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: .55rem; align-items: center; padding: .55rem .7rem; border: 1px solid var(--border); border-radius: 10px; background: var(--bg2); min-width: 0; }
.nc-num { grid-row: span 2; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--border); font-weight: 700; font-size: .85rem; }
.nc-nombre { font-weight: 600; font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nc-est { font-size: .75rem; color: var(--muted); }
.nc-pasos li.nc-ok .nc-num { border-color: var(--green); color: var(--green); }
.nc-pasos li.nc-err { border-color: var(--red); }
.nc-pasos li.nc-err .nc-num, .nc-pasos li.nc-err .nc-est { border-color: var(--red); color: var(--red); }
.nc-pasos li.nc-curso .nc-num { border-color: var(--gold); color: var(--gold); }
.nc-pasos li.nc-actual { border-color: var(--blue-b); box-shadow: 0 0 0 1px var(--blue-b) inset; }
.nc-estado-panel .alerta { margin-bottom: .7rem; }
.nc-en-curso .eye-spinner, .nc-estado-panel .alerta .eye-spinner { vertical-align: middle; margin-right: .3rem; }
.nc-avance { display: flex; align-items: center; gap: .6rem; margin: -.2rem 0 .8rem; }
.nc-avance progress { flex: 1 1 auto; height: 10px; accent-color: var(--blue-b); }
.nc-resultado { border: 1px solid var(--border); border-radius: 8px; padding: .4rem .8rem; margin-top: .6rem; }
.nc-resultado summary { cursor: pointer; font-weight: 600; padding: .2rem 0; }
.nc-resultado .alerta { margin: .4rem 0; }
.nc-botones { flex-wrap: wrap; }
.nc-error-corto { font-size: .75rem; color: var(--red); max-width: 40ch; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow-wrap: anywhere; }
#nc-lista td.acciones { white-space: nowrap; text-align: right; }
#nc-lista td.acciones .btn-chico + .btn-chico { margin-left: .3rem; }
#nc-lista tr.nc-fila-actual td { background: var(--bg3); }
@media (max-width: 1099px) { .pl-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 639px) {
  .nc-pasos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nc-botones > button, .pl-botones > button { flex: 1 1 100%; }
  .nc-error-corto { max-width: none; -webkit-line-clamp: unset; display: block; }
  #nc-lista td.acciones { white-space: normal; }
  .pl-campo-usuario { max-width: none; }
}
#cli-clave-campo .con-boton input, #rc-form .con-boton input { flex: 1; min-width: 0; }

/* Clientes › Facturación electrónica (detalle del cliente y paso 5 de Nuevo cliente) */
.cd-facturacion, .nc-facturacion { margin-top: 1rem; }
.nc-facturacion h3 { font-size: 1rem; margin: 0 0 .25rem; }
.fe-pendientes { margin: .25rem 0 0; padding-left: 1.1rem; font-size: .85rem; opacity: .85; }
.fe-caja { width: min(760px, calc(100vw - 32px)); }
.fe-pais { border: 1px solid var(--border); border-radius: 8px; padding: .5rem .75rem; margin: .5rem 0; }
.fe-pais legend { padding: 0 .35rem; font-weight: 600; }
.fe-cert-estado { align-self: center; font-size: .85rem; }
/* Usuario de la Web API de la base (db/107) y mantenedor Usuarios Web API */
.fe-webapi { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin: .25rem 0 .75rem; }
.fe-webapi .ico { vertical-align: -2px; }
.fe-enlace { font-size: .85rem; }
.wa-clave-acciones { display: flex; flex-wrap: wrap; gap: .5rem; margin: .25rem 0; }
/* Facturación: «Ver» junto a Clave SOL y Client secret (03/11/2026) */
.fe-clave-tit { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.fe-ver { display: inline-flex; align-items: center; gap: .3rem; font-weight: 400; font-size: .78rem; cursor: pointer; user-select: none; }
.fe-ver input[type="checkbox"] { margin: 0; width: .9rem; height: .9rem; min-height: 0; padding: 0; flex: none; }
.fe-clave-tit .fe-ver { line-height: 1; }
/* Plantilla de base por país (03/11/2026) */
.pl-activas-sec { margin-bottom: 1rem; }
.pl-activas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 1rem; }
.pl-pais-card { border: 1px solid var(--border); border-radius: 12px; padding: .9rem 1rem; min-width: 0; }
.pl-pais-vacia { border-style: dashed; }
.pl-pais-cab { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .6rem; }
.pl-pais-cab h3 { margin: 0; font-size: 1rem; }
.pl-detalles { margin-top: .5rem; }
.pl-detalles > summary { cursor: pointer; color: var(--muted); font-size: .84rem; }
.pl-bak-fila { display: flex; gap: .5rem; align-items: center; }
.pl-bak-fila select { flex: 1 1 auto; min-width: 0; }
.pl-bak-fila .btn-chico { flex: none; }
.nc-plantilla { margin: .25rem 0 .9rem; }
.nc-plantilla .adm-dl { margin: .4rem 0 0; }
/* Monitoreo › Versiones (db/108) */
.ve-seccion { margin-top: 1rem; }
.ve-kpi { cursor: pointer; text-align: left; font: inherit; color: inherit; }
.ve-kpi[aria-pressed="true"] { outline: 2px solid var(--blue); outline-offset: -2px; }
.ve-resumen { font-size: .8rem; max-width: 34rem; }
.ve-bloquea td:first-child { box-shadow: inset 3px 0 0 var(--red); }
.ve-sin-senal td { color: var(--muted); }
.ve-det-scroll { max-height: 58vh; overflow: auto; margin-top: .6rem; }
