/* ═══════════════════════════════════════════════════════════════════
   CICOM · Avance y Valorizaciones (AV) · identidad del sistema
   ═══════════════════════════════════════════════════════════════════
   El aspecto entero sale de qms.css, copiado SIN TOCAR de Calidad (vía el
   EDMS): la familia CICOM comparte tipografías, escalas, componentes, riel,
   barra superior, cajetín y Piper. Una mejora de qms.css se trae copiando
   el archivo.

   Este archivo hace tres cosas:
     1. cambia la identidad del marco al verde oliva del AV (las fichas
        --sis-* del bloque CICOM-UI-001 de qms.css),
     2. trae del EDMS las piezas comunes que Calidad no tiene (fichas,
        menú «próximamente», distintivo del proyecto, indicador del Núcleo), y
     3. añade lo propio de avance y valorizaciones (av-*).

   Contraste comprobado (WCAG): blanco sobre #4A7524 5,4:1 · #2E4A12
   sobre el tinte 8,8:1 · #4A7524 sobre el tinte 4,9:1.
   ═══════════════════════════════════════════════════════════════════ */

:root{
  --sis-color:#4A7524;    /* encabezado, sigla, botón de acceso */
  --sis-oscuro:#2E4A12;   /* el mismo color como texto sobre claro */
  --sis-tinte:#EDF3E3;    /* panel del login, bloque de la barra, ítem activo */
  --sis-borde:#C9DBB0;    /* borde sobre el tinte */
}

/* La sigla de fondo (decoración en «content», no texto: no la lee un lector de pantalla) */
.login-art::before,
.rail-mark::before{content:'AV'}

.rail-mark:hover{background:#E2ECD4}
.rail-a.on .n{background:rgba(46,74,18,.12);color:var(--sis-oscuro)}
.qa-entrar:focus-visible{box-shadow:0 0 0 3px rgba(74,117,36,.35)}
.sa-cab{
  background:linear-gradient(135deg,#6A9442 0%,var(--sis-color) 55%,var(--sis-oscuro) 100%);
  box-shadow:0 8px 22px -10px rgba(46,74,18,.5);
}

/* ── Piezas comunes de la familia (desde el EDMS) ─────────────────── */
   pulsar ni recibe el foco, y lo dice con aria-disabled. */
.rail-a.pronto{color:var(--t4);cursor:default;opacity:.78}
.rail-a.pronto:hover{background:transparent;color:var(--t4)}
.rail-a.pronto .ic{opacity:.45}
.rail-a .fase{
  margin-left:auto;flex:none;font:500 10px/1 var(--f-mo);letter-spacing:.06em;
  padding:3px 6px;border-radius:var(--r-pill);background:var(--paper-2);color:var(--t3);
  border:1px solid var(--line);
}

.dc-ficha{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px 18px}
.dc-ficha .k{font:500 10px/1.3 var(--f-mo);letter-spacing:.1em;text-transform:uppercase;color:var(--t3)}
.dc-ficha .v{font:500 13.5px/1.35 var(--f-tx);color:var(--t1);margin-top:2px;word-break:break-word}
.dc-ficha .v.mono{font-family:var(--f-mo)}

.dc-equipo{display:flex;flex-wrap:wrap;gap:8px}
.dc-equipo .badge b{font-weight:700;margin-left:4px}

.dc-sello{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--t2)}
.dc-sello .ic{flex:none}
/* ── Barra superior ───────────────────────────────────────────────────
   El EDMS lleva un elemento más que Calidad en la barra (la vuelta a CICOM
   está siempre presente en las sesiones del Núcleo) y el código del
   proyecto no puede salir cortado: es el dato con el que se codifica todo.
   El código ocupa lo suyo; cliente, sector y fecha ceden si falta sitio. */
.topbar .cajetin{grid-template-columns:max-content}
.topbar .cajetin .c-proyecto .v{max-width:none}
.topbar .buscador{width:min(300px,24vw)}
@media (max-width:1600px){ .topbar .cajetin .c-sector{display:none} }
/* Tarjetas del panel que llevan al listado ya filtrado (spec §18.3) */
a.dc-kpi{text-decoration:none;color:inherit;transition:box-shadow var(--mov),transform var(--mov)}
a.dc-kpi:hover{box-shadow:0 6px 18px -8px rgba(46,74,18,.35);transform:translateY(-1px)}
a.dc-kpi:focus-visible{outline:3px solid rgba(74,117,36,.4);outline-offset:2px}

.dc-pend{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px 22px}
.dc-pend h4{font:600 13px/1.3 var(--f-ui);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.dc-pend a{display:flex;flex-direction:column;padding:6px 10px;border-left:3px solid var(--sis-borde);text-decoration:none;margin-bottom:4px;border-radius:0 var(--r) var(--r) 0}
.dc-pend a:hover{background:var(--sis-tinte)}
.dc-pend a.urge{border-left-color:var(--stop)}
.dc-pend a b{font-size:12px;color:var(--sis-oscuro)}
.dc-pend a span{font-size:12px;color:var(--t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dc-modo{display:inline-flex;gap:4px;padding:4px;background:var(--seg);border-radius:var(--r-lg);margin-bottom:14px}
.dc-modo button{padding:6px 12px;border:0;background:none;border-radius:var(--r);font:500 12.5px/1.2 var(--f-tx);color:var(--t2);cursor:pointer}
.dc-modo button.on{background:var(--paper);color:var(--t1);font-weight:600;box-shadow:0 1px 2px rgba(16,24,40,.06)}
.dc-alerta-campo{font-size:12px;color:var(--warn-tx);background:var(--warn-bg);padding:8px 10px;border-radius:var(--r);margin-top:8px}
.dc-chk{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--t2);cursor:pointer}
.tbl tr.inactivo td{color:var(--t4)}
.dc-tabla-k td{vertical-align:top}
.dc-k-off{opacity:.7}
.dc-k-eq{border-top:1px solid var(--line,#e5e7eb);padding-top:12px}
.dc-k-eq .h{display:flex;align-items:center;gap:6px}
.dc-k-eq .h .sp{flex:1}
.card-h .sp{flex:1}
.in.in-xs{padding:3px 6px;font-size:12px;height:auto;width:auto}
tr.dc-fila-error td:first-child{box-shadow:inset 3px 0 0 var(--stop)}
/* v0.17.0 · buscador: enlace a la página de resultados y vínculos de la ficha */
.buscador-r a.b-todos{border-top:1px solid var(--line);background:var(--paper-2)}
.buscador-r a.b-todos .t{font-family:inherit;font-weight:600}
.dc-vinc{display:flex;flex-wrap:wrap;gap:5px;margin:3px 0 8px}
.dc-vinc .chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 8px;border:1px solid var(--line);border-radius:999px;font:500 11.5px/1.4 var(--f-mo);background:var(--paper)}
.dc-vinc .chip button{border:0;background:none;color:var(--t3);cursor:pointer;padding:0 3px;font-size:13px;line-height:1}
.dc-vinc .chip button:hover{color:var(--stop)}

/* v0.19.0 · requisitos de contenido (§15) en la ficha */
.dc-req{margin-top:10px;border:1px solid var(--line);border-radius:var(--r-lg,8px);background:var(--paper)}
.dc-req>summary{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;list-style:none;font-size:12.5px}
.dc-req>summary::-webkit-details-marker{display:none}
.dc-req-b{padding:4px 12px 10px;border-top:1px solid var(--line)}
.dc-req-i{display:grid;grid-template-columns:minmax(160px,1fr) 130px minmax(140px,1.2fr);gap:8px;align-items:center;padding:4px 0;border-bottom:1px dashed var(--line);font-size:12.5px}
.dc-req-i:last-of-type{border-bottom:0}
.dc-req-i.pendiente .t{color:var(--warn-tx,#8a5a00)}
.dc-req-f{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
@media (max-width:720px){.dc-req-i{grid-template-columns:1fr}}

/* D23 · Distintivo común de proyecto (CICOM-INT-001 Rev. 13 §7.6): mismos colores en los cuatro sistemas */
.cicom-dist{font-family:var(--f-tx);display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.5;white-space:nowrap;vertical-align:middle;letter-spacing:.01em;text-decoration:none;border:1px solid transparent}
.cicom-dist-integrado{background:#1E3A5F;color:#fff;border-color:#1E3A5F}
a.cicom-dist-integrado:hover{background:#16304f;color:#fff;text-decoration:none}
.cicom-dist-independiente{background:transparent;color:#5B6575;border-color:#DDE2E9}
.cicom-dist-sin_conexion{background:#F8EADB;color:#8A4510;border-color:#F8EADB}
.topbar .cicom-dist-independiente{background:#fff}
.dist-filtro{display:inline-flex;gap:4px}
.dist-filtro button{border:1px solid var(--line,#DDE2E9);background:transparent;border-radius:999px;padding:3px 10px;font-size:12px;cursor:pointer;color:inherit}
.dist-filtro button[aria-pressed="true"]{background:#1E3A5F;border-color:#1E3A5F;color:#fff}
.topbar .cajetin .cicom-dist{font-family:var(--f-tx);font-size:11px;margin-left:6px}
.topbar .cajetin .cicom-dist{font-family:var(--f-tx);font-size:11px;margin-left:6px}
/* D23 · Indicador del conector (solo superadministrador), discreto en el pie del menú */
.rail-nucleo{display:flex;align-items:center;justify-content:center;gap:6px;font-size:10.5px;color:var(--muted,#5B6575);padding:0 0 8px}
.rail-nucleo i{width:7px;height:7px;border-radius:50%;background:#9AA3AF;display:inline-block}
.rail-nucleo-conectado i{background:#1F9D55}
.rail-nucleo-sin_respuesta i{background:#D9822B}
/* v0.25.1 · D23: en la tarjeta «Proyecto activo» del menú, la regla .rail-proj a pintaba el texto del distintivo
   con el color del sistema sobre el fondo azul (no se leía) y le cambiaba la letra */
.rail-proj a.cicom-dist{font:600 11px/1.5 var(--f-tx);margin-top:0}
.rail-proj a.cicom-dist-integrado,.rail-proj a.cicom-dist-integrado:hover{color:#fff}
/* v0.26.1 · Diálogos con un <form> alrededor de cabecera, cuerpo y pie (Nuevo proyecto, entre otros): el form
   también es columna flexible, así el cuerpo se desplaza por dentro y el pie con los botones queda siempre a la vista */
.modal > form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.modal-b{min-height:0}
/* ═══ Avance y valorizaciones ═════════════════════════════════════ */

/* Indicadores del panel */
.av-kps{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.av-kp{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px;text-decoration:none;color:inherit}
a.av-kp:hover{box-shadow:0 6px 18px -8px rgba(46,74,18,.35)}
.av-kp .k{font:500 10px/1.3 var(--f-mo);letter-spacing:.1em;text-transform:uppercase;color:var(--t3)}
.av-kp .v{font:700 26px/1.2 var(--f-ti,var(--f-ui));color:var(--t1);margin-top:2px}
.av-kp .s{font-size:12px;color:var(--t2)}
.av-kp .v.mal{color:var(--stop)} .av-kp .v.bien{color:var(--ok)} .av-kp .v.ojo{color:var(--warn-tx,#8a5a00)}

/* Barra de avance: real (verde), validado (oscuro) y marca del plan */
.av-barra{height:8px;background:var(--paper-2);border-radius:4px;overflow:hidden;position:relative;min-width:90px}
.av-barra i{position:absolute;left:0;top:0;bottom:0;background:var(--sis-borde)}
.av-barra i.val{background:var(--sis-color)}
.av-barra b{position:absolute;top:-2px;bottom:-2px;width:2px;background:#8A93A8}
.av-pct{font:600 12.5px/1 var(--f-mo);white-space:nowrap}

/* Curva S */
.av-curva{width:100%;height:auto;display:block}
.av-curva .g{stroke:var(--line);stroke-width:1}
.av-curva .t{font:11px var(--f-tx,sans-serif);fill:var(--t3)}
.av-curva .plan{fill:none;stroke:#8A93A8;stroke-width:2.2;stroke-dasharray:6 4}
.av-curva .real{fill:none;stroke:var(--sis-borde);stroke-width:3}
.av-curva .val{fill:none;stroke:var(--sis-color);stroke-width:3}
.av-curva circle{fill:var(--paper);stroke:var(--sis-color);stroke-width:2}
.av-ley{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--t2);margin-top:6px}
.av-ley>span{display:inline-flex;align-items:center;gap:6px}
.av-ley>span>span{display:inline-block;width:22px;height:0;border-top:3px solid var(--sis-color);margin-right:2px;vertical-align:middle}
.av-ley>span>span.r{border-top-color:var(--sis-borde)}
.av-ley>span>span.p{border-top:2px dashed #8A93A8}

/* Estados */
.av-est{display:inline-flex;align-items:center;gap:4px;font:600 11px/1 var(--f-tx);padding:3px 8px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--paper-2);color:var(--t2);white-space:nowrap}
.av-est.abierto,.av-est.borrador{background:#E6F0FA;color:#1F4E7A;border-color:#BFD5EC}
.av-est.en_revision{background:var(--warn-bg);color:var(--warn-tx);border-color:#F2D3A6}
.av-est.aprobado,.av-est.aprobada,.av-est.vigente,.av-est.validado{background:var(--ok-bg);color:var(--ok);border-color:#BFE3CC}
.av-est.congelado{background:var(--sis-tinte);color:var(--sis-oscuro);border-color:var(--sis-borde)}
.av-est.observado,.av-est.anulada{background:var(--stop-bg);color:var(--stop);border-color:#F3C2BD}
.av-est.reemplazado,.av-est.registrado{background:var(--paper-2);color:var(--t3)}

/* Editor de hitos */
.av-hitos{width:100%;border-collapse:collapse}
.av-hitos td,.av-hitos th{padding:5px 6px;border-bottom:1px solid var(--line);font-size:12.5px;vertical-align:middle}
.av-hitos th{font:500 10px/1.3 var(--f-mo);letter-spacing:.08em;text-transform:uppercase;color:var(--t3);text-align:left}
.av-hitos .in{min-width:0;width:100%}
.av-hitos tfoot td{font-weight:600}
.av-suma.mal{color:var(--stop)} .av-suma.bien{color:var(--ok)}

/* Árbol de la EDT */
.av-arbol{list-style:none;margin:0;padding:0;font-size:13px}
.av-arbol ul{list-style:none;margin:0;padding-left:16px;border-left:1px dashed var(--line)}
.av-arbol a{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--r);text-decoration:none;color:var(--t1)}
.av-arbol a:hover{background:var(--paper-2)}
.av-arbol a.on{background:var(--sis-tinte);color:var(--sis-oscuro);font-weight:600}
.av-arbol .cod{font:500 11.5px/1 var(--f-mo);color:var(--t3)}
.av-arbol .n{margin-left:auto;font:500 11px/1 var(--f-mo);color:var(--t3)}
.av-dos{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:1000px){.av-dos{grid-template-columns:1fr}}

/* Registro de avance: matriz entregables × hitos */
.tbl.av-reg td,.tbl.av-reg th{font-size:12px;white-space:nowrap;vertical-align:middle}
.tbl.av-reg th.h{text-align:center;min-width:92px}
.tbl.av-reg th.h small{display:block;font:500 10px/1.2 var(--f-mo);color:var(--t3);text-transform:none;letter-spacing:0}
.tbl.av-reg td.h{text-align:center}
.av-celda{display:inline-flex;align-items:center;gap:4px}
.av-celda input[type=number]{width:74px;padding:3px 6px;font:500 12px/1.2 var(--f-mo);text-align:right}
.av-celda input[type=checkbox]{width:18px;height:18px;accent-color:var(--sis-color)}
.av-celda .s{width:8px;height:8px;border-radius:50%;background:var(--line-2)}
.av-celda .s.validado{background:var(--ok)} .av-celda .s.registrado{background:#D9822B} .av-celda .s.observado{background:var(--stop)}
.av-celda.cambio input{outline:2px solid var(--sis-color);outline-offset:1px}
.tbl.av-reg tr.sin-cambio td{color:var(--t3)}
.av-guardar{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;gap:10px;padding:10px 14px;margin-top:12px;
  background:var(--paper);border:1px solid var(--sis-borde);border-radius:var(--r-lg);box-shadow:0 -4px 16px -8px rgba(0,0,0,.18)}

/* Valorización */
.tbl.av-val td,.tbl.av-val th{font-size:12px;white-space:nowrap}
.tbl.av-val td.d{white-space:normal;min-width:220px}
.tbl.av-val tr.tit td{background:var(--paper-2);font-weight:600}
.tbl.av-val td.n,.tbl.av-val th.n{text-align:right;font-family:var(--f-mo)}
.av-totales{display:grid;grid-template-columns:max-content max-content;gap:4px 24px;justify-content:end;font-size:13px}
.av-totales .k{color:var(--t2)} .av-totales .v{text-align:right;font-family:var(--f-mo)}
.av-totales .neto{font-weight:700;font-size:15px;border-top:1px solid var(--line);padding-top:4px}

/* Importación desde Excel: vista previa */
.av-imp-acc{font-size:11px;font-weight:600;padding:2px 6px;border-radius:var(--r-pill)}
.av-imp-acc.crear{background:var(--ok-bg);color:var(--ok)} .av-imp-acc.actualizar{background:#E6F0FA;color:#1F4E7A}
.av-imp-acc.error{background:var(--stop-bg);color:var(--stop)} .av-imp-acc.igual{background:var(--paper-2);color:var(--t3)}

@media print{
  .rail,.topbar,.av-guardar,.no-imprimir,.toast,#ia{display:none !important}
  .shell{margin:0 !important}
  .card{break-inside:avoid;box-shadow:none}
}

/* Utilidades propias */
.dc-atraso{color:var(--stop);font-weight:600}
.av-acciones{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.av-filtros{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.av-filtros .in{width:auto}
.av-alertas{margin:0;padding-left:18px;font-size:12.5px;color:var(--warn-tx)}
.av-alertas li{margin:2px 0}

/* El contenido nunca empuja la página a lo ancho: las tablas anchas se desplazan dentro de su caja */
.main,.shell>*{min-width:0}
