:root {
  --bg: #f4f6f9; --surface: #ffffff; --text: #1b2430; --muted: #5d6b7a; --border: #dde3ea;
  --primary: #0f4c81; --primary-text: #ffffff; --accent: #e8f0f8;
  --ok: #1d7a46; --ok-bg: #e6f4ec; --warn: #9a5b00; --warn-bg: #fff4e0; --bad: #b42318; --bad-bg: #fdecea;
  --radius: 12px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #11161c; --surface: #1a2129; --text: #e6ebf0; --muted: #9aa8b6; --border: #2c3640;
    --primary: #5ea3e0; --primary-text: #0b1a28; --accent: #1f2d3b;
    --ok: #6fcf97; --ok-bg: #16301f; --warn: #f2b45a; --warn-bg: #33270f; --bad: #f28b82; --bad-bg: #3a1a18;
  }
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--bg); color: var(--text); font: 15px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
[hidden] { display: none !important; }

.topbar { position: sticky; top: 0; z-index: 5; display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 8px 16px; background: var(--surface); border-bottom: 1px solid var(--border); }
.brand { display: flex; gap: 10px; align-items: center; }
.brand small { display: block; color: var(--muted); font-size: 12px; }
.topbar nav { display: flex; gap: 2px; flex-wrap: wrap; }
.topbar nav button { background: transparent; border-color: transparent; padding: 8px 10px; }
.topbar nav button.activo { background: var(--accent); color: var(--primary); font-weight: 600; }

main { max-width: 1180px; margin: 0 auto; padding: 16px 16px 100px; }
h1 { font-size: 22px; margin: 8px 0 4px; } h2 { font-size: 17px; margin: 18px 0 8px; }
.lead, .muted { color: var(--muted); } .muted { font-size: 13px; }
.card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; margin: 12px 0; }
label { display: block; font-weight: 600; font-size: 13px; margin: 10px 0 4px; }
label .hint { display: block; font-weight: 400; color: var(--muted); }
input, select, textarea { width: 100%; font: inherit; color: inherit; background: var(--bg); border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; }
textarea { min-height: 70px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--primary); outline-offset: 1px; }
input[readonly] { background: var(--accent); font-weight: 600; }
.falta { border-color: var(--bad) !important; background: var(--bad-bg) !important; }
button { font: inherit; cursor: pointer; border-radius: 8px; padding: 8px 14px; border: 1px solid var(--border); background: var(--surface); color: var(--text); }
button.primary { background: var(--primary); color: var(--primary-text); border-color: var(--primary); font-weight: 600; }
button.small { padding: 5px 10px; font-size: 13px; }
button.peligro { color: var(--bad); }
button:disabled { opacity: .5; cursor: default; }
.fila { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.grid { display: grid; gap: 0 14px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.grid .ancho { grid-column: 1 / -1; }

.alert { border-radius: 8px; padding: 10px 14px; margin: 10px 0; }
.alert.ok { background: var(--ok-bg); color: var(--ok); } .alert.warn { background: var(--warn-bg); color: var(--warn); } .alert.bad { background: var(--bad-bg); color: var(--bad); }
.badge { display: inline-block; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--accent); color: var(--primary); white-space: nowrap; }
.badge.ok { background: var(--ok-bg); color: var(--ok); } .badge.warn { background: var(--warn-bg); color: var(--warn); } .badge.bad { background: var(--bad-bg); color: var(--bad); }

table.lista { width: 100%; border-collapse: collapse; font-size: 13px; }
table.lista th, table.lista td { text-align: left; padding: 7px 6px; border-bottom: 1px solid var(--border); vertical-align: top; }
table.lista tr.clic { cursor: pointer; } table.lista tr.clic:hover { background: var(--accent); }
.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.scroll { overflow-x: auto; }

.bandejas { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.bandeja h3 { margin: 0 0 6px; font-size: 15px; display: flex; justify-content: space-between; }
.contador { font-size: 26px; font-weight: 700; color: var(--primary); }

.secciones { display: flex; gap: 4px; flex-wrap: wrap; align-items: center; border-bottom: 1px solid var(--border); margin-top: 12px; }
.secciones button { border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; padding: 8px 12px; }
.secciones button.activo { border-bottom-color: var(--primary); color: var(--primary); font-weight: 600; background: var(--accent); }
.etapas { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--border); }
.etapa { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; }
.etapa small { color: var(--muted); font-size: 11px; }
.etapa.hecha { border-color: var(--ok); }
.barra-guardar { position: fixed; left: 0; right: 0; bottom: 0; background: var(--surface); border-top: 1px solid var(--border); padding: 10px 16px; display: flex; justify-content: flex-end; gap: 8px; z-index: 4; }
.persona { display: grid; grid-template-columns: 2fr 1fr 2fr; gap: 8px; align-items: end; }
@media (max-width: 640px) { .persona { grid-template-columns: 1fr; } }

.login { max-width: 420px; margin: 8vh auto; }
.toast { position: fixed; left: 50%; bottom: 80px; transform: translateX(-50%); background: var(--text); color: var(--bg); padding: 10px 16px; border-radius: 8px; opacity: 0; pointer-events: none; transition: opacity .2s; max-width: 90vw; z-index: 20; }
.toast.show { opacity: 1; }
.spinner { display: inline-block; width: 14px; height: 14px; border: 2px solid var(--border); border-top-color: var(--primary); border-radius: 50%; animation: spin 1s linear infinite; vertical-align: -2px; margin-right: 6px; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Documentos */
.doc { background: #fff; color: #111; padding: 28px; border-radius: 4px; font-family: "Century Gothic", "Segoe UI", Arial, sans-serif; font-size: 12px; line-height: 1.4; max-width: 860px; margin: 0 auto; position: relative; }
.doc p { margin: 3px 0; text-align: justify; }
.doc-membrete { display: flex; align-items: center; gap: 12px; border-bottom: 1px solid #999; padding-bottom: 6px; }
.doc-logo { max-height: 60px; max-width: 60%; }
.doc-entidad { display: flex; flex-direction: column; }
.doc-anio { text-align: center !important; font-style: italic; font-size: 11px; }
.doc-ini { position: absolute; top: 28px; right: 28px; font-size: 10px; color: #555; }
.doc-titulo { font-size: 13px; text-align: center; margin: 12px 0 4px; text-transform: uppercase; }
.doc-subtitulo { text-align: center !important; font-weight: 700; margin-bottom: 8px !important; }
.doc-nota { text-align: center !important; font-size: 10px; color: #444; }
.doc table { width: 100%; border-collapse: collapse; }
.doc-tabla > tbody > tr > td, .doc-tabla > tbody > tr > th { border: 1px solid #555; padding: 5px 7px; vertical-align: top; text-align: left; }
.doc-tabla th { width: 30%; background: #f2f2f2; font-size: 11px; }
.doc-n { width: 26px; text-align: center !important; font-weight: 700; }
.doc-seccion { background: #e6e6e6; font-weight: 700; text-align: center !important; }
.doc-kv th, .doc-kv td { border: 1px solid #bbb; padding: 3px 6px; text-align: left; font-size: 11px; }
.doc-kv th { width: 42%; background: #fafafa; }
.doc ol { margin: 4px 0; padding-left: 18px; }
.doc-firmas { display: flex; justify-content: space-around; gap: 24px; margin-top: 48px; flex-wrap: wrap; }
.doc-firma { text-align: center; min-width: 230px; font-size: 10px; }
.doc-firma .linea { border-top: 1px dotted #111; margin-bottom: 4px; }
.doc-importante { margin-top: 16px; font-size: 10px; border: 1px solid #999; padding: 8px; }
.doc-pie { margin-top: 20px; border-top: 1px solid #999; padding-top: 4px; text-align: right; font-size: 10px; color: #444; }
.salto { margin-top: 40px; padding-top: 20px; border-top: 2px dashed #bbb; }

@page { size: A4 portrait; margin: 15mm; }
@page estudio-horizontal { size: A4 landscape; margin: 15mm; }
@media print {
  body { background: #fff; }
  .no-print, .topbar, .barra-guardar { display: none !important; }
  main { padding: 0; max-width: none; }
  .doc { padding: 0; max-width: none; }
  .doc-ini { top: 0; right: 0; }
  .doc-pie { position: fixed; bottom: -8mm; left: 0; right: 0; margin: 0; padding-top: 4px; }
  .salto { page-break-before: always; border: 0; margin: 0; padding: 0; }
}

.estrategia-form h3 { margin-top: 28px; }
.estrategia-grupo { border: 1px solid #d8e3ef; border-radius: 10px; margin: 12px 0; padding: 16px; background: #fff; }
.estrategia-grupo summary { cursor: pointer; color: #0f4c81; font-weight: 700; }
.estrategia-grupo[open] summary { margin-bottom: 16px; }
.estrategia-grupo .muted { margin: 8px 0 16px; }
.estrategia-tabla h3 { font-size: 16px; margin-top: 18px; }
.estrategia-fila { padding: 16px; margin: 12px 0; background: #f7f9fc; border: 1px solid #e0e7ef; border-radius: 8px; }
.estrategia-fila > button { margin-top: 10px; }

/* Estudio de mercado */
.secciones-estudio { margin-top: 2px; background: var(--accent); border-radius: 8px 8px 0 0; align-items: center; }
.secciones-titulo { font-size: 12px; font-weight: 700; color: var(--primary); padding: 0 8px 0 10px; text-transform: uppercase; letter-spacing: .04em; }
.estudio h3 { font-size: 15px; margin: 20px 0 6px; }
.em-tabla td, .em-tabla th { vertical-align: top; }
.em-tabla input, .em-tabla select { min-width: 110px; }
.em-tabla textarea { min-width: 180px; min-height: 52px; }
.em-tabla .em-item th { background: var(--accent); }
.em-chk { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; margin: 6px 0; }
.em-chk input { width: auto; margin-top: 4px; }
.em-req { border-bottom: 1px dashed var(--border); padding: 4px 0 8px; }
.em-req textarea { min-height: 52px; margin-top: 4px; }
.em-vista { background: var(--bg); font-size: 14px; }
.em-consulta { background: var(--bg); }

/* Formatos del estudio de mercado */
.doc-h2 { font-size: 12px; margin: 14px 0 6px; text-transform: uppercase; }
.doc-h3 { font-size: 11.5px; margin: 12px 0 4px; }
.doc table.doc-grid { margin: 6px 0; }
.doc-grid th, .doc-grid td { border: 1px solid #555; padding: 4px 5px; font-size: 10px; vertical-align: top; text-align: left; }
.doc-grid th { background: #f2f2f2; }
.doc-total { margin: 10px 0 !important; font-size: 12px; }
.doc-apaisado { max-width: 1100px; }
@media print { .doc-apaisado { page: estudio-horizontal; } .doc-apaisado .doc-grid th, .doc-apaisado .doc-grid td { font-size: 8.5px; padding: 2px 3px; } }
/* Ruta de contrataciones no programadas */
.seg-rutas { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0; }
.seg-ruta { display:flex; align-items:center; gap:16px; text-align:left; padding:22px; border:1px solid #d3e0f0; border-radius:18px; background:#fff; box-shadow:0 5px 18px #12397708; }
.seg-ruta strong { display:block; font-size:20px; color:#123977; margin-bottom:5px; }
.seg-ruta small { display:block; font-weight:400; color:#536b86; line-height:1.5; }
.seg-ruta.activa { background:#edf5ff; border:2px solid #1764bf; padding:21px; }
.seg-ruta-icono { width:46px; height:46px; flex-shrink:0; display:grid; place-items:center; border-radius:13px; background:#e5efff; color:#175aba; font-size:26px; }
.seg-intro { display:flex; justify-content:space-between; gap:20px; align-items:center; margin:22px 0; }
.seg-intro h2 { font-size:24px; margin:5px 0 10px; color:#123977; }
.seg-intro p { max-width:780px; margin:0; color:#536b86; }
.seg-inicios { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.seg-inicios button { margin-top:12px; }
.seg-pasos { display:flex; flex-wrap:wrap; gap:10px; margin:16px 0 24px; }
.seg-pasos span { padding:9px 14px; background:#e8f0fc; color:#154778; font-size:13px; border-radius:20px; }
.seg-ficha { padding:8px 0 24px; }
.seg-ficha .card { border-radius:16px; padding:24px; }
.seg-ficha .card > h2 { margin-top:0; font-size:20px; }
.seg-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; }
.seg-grid .hint { display:block; margin-top:6px; line-height:1.5; }
.seg-grid input,.seg-grid select,.seg-grid textarea,.seg-criterio input,.seg-criterio select,.seg-criterio textarea { background:#fff; border-radius:9px; }
.seg-criterio { display:grid; grid-template-columns:1fr; gap:24px; padding:18px 0; border-top:1px solid #e3eaf4; }
.seg-criterio .ancho { grid-column:auto; }
.seg-criterio .hint { display:block; margin-top:8px; line-height:1.5; }
.seg-criterio textarea { min-height:76px; }
.seg-resultado { padding:26px; background:#eef3fa; border:1px solid #cbdcf0; border-radius:16px; margin:20px 0; }
.seg-resultado.listo { background:linear-gradient(110deg,#edf7ff,#f6fbff); border-color:#81aeda; }
.seg-resultado h2 { margin:8px 0 14px; color:#123977; font-size:27px; }
.seg-kicker { font-size:11px; letter-spacing:.1em; font-weight:700; color:#1760a6; }
.seg-interaccion { font-size:18px; margin-top:0; }
.seg-importes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:24px 0; }
.seg-importes div { background:#fff; border:1px solid #d8e5f4; border-radius:10px; padding:14px; }
.seg-importes dt { color:#4d6783; font-size:12px; line-height:1.4; }
.seg-importes dd { margin:8px 0 0; font-weight:700; color:#123977; font-size:18px; }
.seg-importes .total { border-color:#4387c9; }
.seg-acciones { display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
.seg-acciones button { min-height:44px; }
.seg-pendientes { margin-top:16px; }
.seg-pendientes li { margin:5px 0; }
.seg-informe summary { cursor:pointer; font-weight:700; font-size:18px; color:#123977; }
.seg-informe[open] summary { margin-bottom:16px; }
.seg-fuente { font-size:12px; color:#61748c; }
.doc-informe h2 { color:#000; font-size:11pt; margin:18px 0 8px; }
.doc-informe p { margin:8px 0; }
.doc-informe table { margin:10px 0; }
.doc-informe th,.doc-informe td { overflow-wrap:anywhere; }
.doc-informe .doc-tabla th { width:auto; }
.doc-informe .doc-firma { font-size:11pt; }
@media(max-width:720px) { .seg-rutas,.seg-inicios,.seg-grid,.seg-criterio { grid-template-columns:1fr; } .seg-importes { grid-template-columns:repeat(2,minmax(0,1fr)); } .seg-intro { align-items:flex-start; } .seg-ficha .card,.seg-resultado { padding:18px; } .seg-ruta strong { font-size:18px; } .seg-criterio { gap:12px; } }
@media(max-width:440px) { .seg-importes { grid-template-columns:1fr; } .seg-intro { display:block; } .seg-intro .badge { margin-top:12px; } .seg-acciones button { width:100%; } }
@media print { .doc-informe thead { display:table-header-group; } .doc-informe tr { break-inside:avoid; } .doc-informe .doc-firmas { break-inside:avoid; } }
/* Catálogo anual de metas aprobadas de SIGA */
.metas-panel { border-color:#b7d0ed; }
.metas-panel > .fila { justify-content:space-between; }
.metas-panel h2 { margin:0; }
.metas-carga { display:grid; grid-template-columns:150px minmax(240px,1fr) auto; align-items:end; gap:18px; margin:22px 0 16px; }
.metas-carga input { background:#fff; }
.metas-carga .hint { display:block; margin-top:6px; }
.metas-carga button { align-self:center; min-height:42px; margin-top:12px; }
.metas-ayuda { padding:12px 15px; background:#f1f6fc; border-radius:10px; margin-bottom:20px; }
.metas-ayuda summary { cursor:pointer; color:#134e80; font-weight:600; }
.metas-ayuda li { margin:8px 0; }
.metas-preview { background:#f8fbff; border:1px solid #c8daef; border-radius:12px; padding:20px; }
.metas-resumen { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:16px 0; }
.metas-resumen div { border:1px solid #d4e3f4; padding:14px; border-radius:10px; background:#fff; }
.metas-resumen b { display:block; font-size:25px; color:#155592; margin-bottom:5px; }
.metas-resumen span { font-size:13px; color:#536b86; }
.metas-acciones { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.metas-tabla { max-height:450px; overflow:auto; }
.metas-tabla th { position:sticky; top:0; background:#edf3fa; z-index:1; }
.metas-tabla td { white-space:nowrap; }
.metas-tabla .metas-nombre { min-width:260px; max-width:420px; white-space:normal; overflow-wrap:anywhere; }
.metas-catalogo { margin-top:20px; }
.metas-catalogo .fila { justify-content:space-between; }
.metas-catalogo input[type="search"] { max-width:580px; background:white; }
@media(max-width:720px) { .metas-carga { grid-template-columns:1fr; } .metas-carga button { margin:0; } .metas-resumen { grid-template-columns:repeat(2,minmax(0,1fr)); } .metas-preview { padding:14px; } }
/* Entidad y usuarios: una configuración común para el equipo. */
.entidad-contexto { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:12px; }
.entidad-contexto h1 { margin:6px 0 10px; }
.entidad-contexto p { margin:0; color:#415d7b; }
.entidad-contexto .badge { white-space:normal; text-align:center; }
.entidad-datos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 28px; }
.entidad-datos dt { color:#48617e; font-size:13px; margin-bottom:5px; }
.entidad-datos dd { margin:0; font-weight:600; white-space:pre-line; overflow-wrap:anywhere; }
.entidad-opciones { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:22px 0; }
.entidad-opciones button { white-space:normal; min-height:58px; text-align:left; line-height:1.5; }
.entidad-elegida { background:#edf5ff; border:1px solid #bed5f1; border-radius:12px; padding:18px; margin:20px 0; }
.entidad-elegida span,.entidad-elegida strong { display:block; }
.entidad-elegida span { color:#466385; font-size:13px; }
.entidad-elegida strong { color:#123b69; font-size:18px; margin:6px 0; }
.entidad-invitaciones .fila { align-items:end; gap:12px; }
.entidad-correo { flex:1; min-width:220px; }
.entidad-invitaciones .alert { margin-top:20px; }
#inv-enlace { flex:1; min-width:180px; background:#fff; }
#config-resultado .alert { margin:16px 0; }
@media(max-width:620px) { .entidad-contexto { align-items:flex-start; flex-direction:column; gap:10px; } .entidad-datos,.entidad-opciones { grid-template-columns:1fr; } .entidad-invitaciones .fila { flex-wrap:wrap; } }
/* Correcciones posteriores a un avance: motivo y constancia conservada. */
.correccion-dialog { width:min(780px,calc(100% - 28px)); max-height:90vh; padding:28px; border:1px solid #b7cce7; border-radius:16px; color:#183955; box-shadow:0 24px 90px #132e5560; }
.correccion-dialog::backdrop { background:#132b4b90; }
.correccion-dialog h2 { margin-top:8px; }
.correccion-dialog .fila { justify-content:flex-end; margin-top:20px; flex-wrap:wrap; }
.correccion-cambios { max-height:250px; margin-bottom:18px; }
.correccion-cambios td,.correcciones-historial td { overflow-wrap:anywhere; min-width:110px; max-width:320px; white-space:pre-wrap; }
.correccion-confirmacion { display:flex; align-items:flex-start; gap:10px; margin-top:14px; font-weight:400; }
.correccion-confirmacion input { width:auto; margin-top:3px; }
.correcciones-historial details { border-top:1px solid #d9e3f2; padding:15px 0; }
.correcciones-historial summary { font-weight:600; cursor:pointer; }
@media(max-width:620px) { .correccion-dialog { padding:18px; } }

/* Etapas cerradas y solicitudes de corrección. */
.dato-protegido,.dato-protegido:disabled{background:#edf8ed!important;color:#194d2c!important;border-color:#91c9a0!important;opacity:1;cursor:default}
.secciones button.seccion-cerrada{background:transparent;color:#25763d;border-color:transparent}.secciones button.seccion-cerrada.activo{border-bottom:3px solid var(--primary);color:var(--primary);background:var(--accent)}.etapa-cerrada-texto{display:block;font-size:11px;font-weight:700}.alert.ok{background:#edf8ed;border:1px solid #a6d7b2;color:#194d2c}.etapas-protegidas,.solicitud-modo{margin:14px 0}.etapas-protegidas p,.solicitud-modo p{margin:7px 0 12px}.solicitudes-correccion details{padding:14px 0;border-top:1px solid #d6e0eb}.solicitudes-correccion summary{cursor:pointer;font-weight:600}.correccion-cambios td{overflow-wrap:anywhere;white-space:pre-wrap}.correccion-cambios{max-height:40vh;overflow:auto}.solicitudes-correccion .correccion-cambios{max-height:340px}.correccion-dialog form>label{display:block;margin-top:14px}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Distribución de la certificación por meta y recurso. */
.cert-fin-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.cert-fin-heading h2{margin:6px 0 10px}.cert-fin-heading p{margin:6px 0 12px}.cert-fin-year{flex:0 0 150px}.cert-fin-catalogo{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cert-fin-fila{padding:20px;border:1px solid #ccdaea;border-radius:12px;background:#fbfdff;margin:16px 0}.cert-fin-row-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.cert-fin-row-title h3{margin:0;font-size:16px;color:#154c7e}.cert-fin-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1.8fr) minmax(120px,.8fr) minmax(130px,.8fr);gap:16px}.cert-fin-grid>*{min-width:0}.cert-fin-grid select{width:100%;text-overflow:ellipsis}.cert-fin-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:#234864;padding:14px 0 4px;overflow-wrap:anywhere}.cert-fin-estructura{border-top:1px solid #dce6ef;margin-top:12px;padding-top:12px}.cert-fin-estructura summary{cursor:pointer;color:#265c8a}.cert-fin-estructura .grid{margin-top:18px}.cert-fin-dato{padding:10px 12px;margin:0;border-radius:6px;background:#eef4fa;min-height:40px;overflow-wrap:anywhere}.cert-fin-bottom{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-top:20px}.cert-fin-total{display:flex;gap:26px;text-align:right}.cert-fin-total span{color:#4d6680;font-size:13px}.cert-fin-total strong{display:block;font-size:20px;color:#174773;margin-top:5px}.cert-fin-diferencia{font-size:13px;text-align:right;max-width:460px;color:#855d1a}.cert-fin-panel .hint{margin-top:20px;display:block}
@media(max-width:900px){.cert-fin-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:560px){.cert-fin-heading,.cert-fin-bottom{display:block}.cert-fin-year{max-width:170px}.cert-fin-grid{grid-template-columns:minmax(0,1fr)}.cert-fin-fila{padding:14px}.cert-fin-total{margin-top:20px;text-align:left;gap:20px}.cert-fin-total strong{font-size:18px}.cert-fin-diferencia{text-align:left}.cert-fin-row-title{align-items:flex-start}}
/* Catálogo de clasificadores: búsqueda explícita y contexto de la meta. */
.cert-clasificador-buscar{margin-top:8px;width:100%;white-space:normal}.cert-fin-proyecto{font-size:13px;background:#eaf1fa;padding:4px 9px;border-radius:6px}.cert-clasificador-elegido{font-size:13px;color:#265c8a;margin:12px 0 2px;overflow-wrap:anywhere}
.clasificador-dialog{width:min(1050px,calc(100% - 32px));max-height:92vh;padding:26px;border:1px solid var(--border);border-radius:18px;background:var(--surface);color:var(--text);box-shadow:0 24px 90px #132e5560}.clasificador-dialog::backdrop{background:#132b4b99}.clasificador-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.clasificador-head h2{margin:4px 0 12px;font-size:25px}.clasificador-head .seg-kicker{margin:0}.clasificador-contexto{padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:var(--accent);overflow-wrap:anywhere}.clasificador-filters{display:grid;grid-template-columns:1fr 1fr;gap:16px}.clasificador-filters>*{min-width:0}.clasificador-filters select{width:100%;text-overflow:ellipsis}.clasificador-estado{font-size:13px;color:var(--muted);margin:12px 0}.clasificador-resultados{max-height:43vh;overflow:auto;overscroll-behavior:contain;border:1px solid var(--border);border-radius:12px}.clasificador-resultado{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:18px;border-bottom:1px solid var(--border)}.clasificador-resultado:last-child{border:0}.clasificador-resultado>button{align-self:center;background:var(--primary);color:var(--primary-text)}.clasificador-codigo{display:inline-block;margin-right:10px;font-weight:750;color:var(--primary);font-size:16px}.clasificador-resultado h3{font-size:14px;margin:5px 0 4px;overflow-wrap:anywhere}.clasificador-categoria{font-size:12px;color:var(--primary);margin:5px 0}.clasificador-descripcion{font-size:12px;color:var(--muted);line-height:1.6;margin:7px 0;overflow-wrap:anywhere}.clasificador-resultado a{font-size:12px}.clasificador-pie{font-size:12px;color:var(--muted);margin:16px 0 0}.clasificador-resultados>.clasificador-estado{padding:10px 18px}
@media(max-width:620px){.clasificador-dialog{width:calc(100% - 16px);max-height:95vh;padding:16px}.clasificador-head h2{font-size:20px}.clasificador-filters{grid-template-columns:1fr;gap:10px}.clasificador-contexto{font-size:12px;padding:9px}.clasificador-dialog #clasificador-ayuda{font-size:13px}.clasificador-resultado{grid-template-columns:minmax(0,1fr);gap:10px;padding:14px}.clasificador-resultado>button{justify-self:start}.clasificador-resultados{max-height:37vh}}
.clasificador-atajos{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.clasificador-atajos button{font-size:12px;padding:7px 10px;white-space:normal}.clasificador-atajos button[aria-pressed="true"]{background:var(--primary);color:var(--primary-text)}.etapas-editables{background:var(--accent);border:1px solid var(--border)}.etapas-editables p{margin:6px 0}.contrato-registro{border-color:#aac5e0}

/* Recorrido de preparación, compartido con los documentos y el estudio de mercado. */
.flujo-cabecera { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.flujo-cabecera h2 { margin:4px 0 10px; }
.flujo-pasos { list-style:none; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; padding:0; margin:12px 0 18px; }
.flujo-pasos li { min-width:0; }
.flujo-paso { width:100%; height:100%; text-align:left; display:flex; gap:8px; align-items:flex-start; padding:12px 9px; }
.flujo-paso strong,.flujo-paso small { display:block; overflow-wrap:anywhere; }
.flujo-paso small { font-size:11px; margin-top:6px; }
.flujo-numero { border-radius:50%; background:#e8f0f7; width:24px; height:24px; display:grid; place-items:center; flex-shrink:0; }
.flujo-paso.completada { border-color:#bfe0d0; background:#fff; }
.flujo-paso.completada .flujo-numero { background:#dcf0e7; color:#256d4c; }
.flujo-paso.completada strong { color:#256d4c; }
.flujo-paso.completada small { color:#4a8a6d; }
.flujo-paso.omitida { border-style:dashed; border-color:#d8cba6; background:#fff; }
.flujo-paso.omitida .flujo-numero { background:#f0e9d8; color:#7a6835; }
.flujo-paso.omitida strong { color:#7a6835; }
.flujo-paso.actual { border:2px solid #175986; background:#f0f7fd; box-shadow:0 0 0 3px rgba(23,89,134,.15); }
.flujo-paso.actual .flujo-numero { background:#175986; color:#fff; }
.flujo-acciones { display:flex; gap:16px; justify-content:space-between; align-items:center; border-top:1px solid #d7e1ea; padding-top:14px; }
.flujo-acciones>div { flex:1; min-width:0; }
.flujo-acciones .hint { display:block; margin-top:6px; }
.flujo-final { margin:16px 0 8px; }
.flujo-origen { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:16px; }
.flujo-origen .seleccionada { border:2px solid #175986; background:#edf5fb; }
.flujo-otras { margin:12px 0; }
.flujo-otras>summary { cursor:pointer; color:#175986; font-weight:600; padding:10px 0; }
@media(max-width:800px) { .flujo-pasos { grid-template-columns:repeat(2,minmax(0,1fr)); } .flujo-acciones { align-items:stretch; flex-direction:column; } }
@media(max-width:460px) { .flujo-origen,.flujo-pasos { grid-template-columns:1fr; } .flujo-cabecera { align-items:flex-start; flex-direction:column; gap:4px; } }

/* Guías editables y estado de los sustentos de segmentación. */
.seg-obligatorio{display:inline-block;margin-left:7px;font-size:11px;color:var(--primary);font-weight:600}
.seg-sustento-estado{font-size:12px;margin:7px 0;line-height:1.5}.seg-sustento-estado.pendiente{color:var(--warn)}.seg-sustento-estado.completo{color:var(--ok)}
.seg-guia{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--accent);font-size:13px;margin-top:8px}.seg-guia summary{cursor:pointer;color:var(--primary);font-weight:600}.seg-guia p{margin:8px 0}.seg-guia-texto{white-space:pre-wrap;overflow-wrap:anywhere;border-left:3px solid var(--primary);padding:10px 12px;background:var(--surface);margin:10px 0}.seg-criterio>div{min-width:0}

/* Registro individual del catálogo de áreas usuarias. */
.areas-registro { display:grid; grid-template-columns:minmax(200px,1fr) auto; align-items:end; gap:16px; margin:20px 0 10px; }
.areas-registro .fila { padding-bottom:2px; }
.areas-cabecera { justify-content:space-between; margin-top:20px; }
.areas-tabla { max-height:420px; overflow:auto; margin-top:12px; }
.areas-tabla th { position:sticky; top:0; background:#edf3fa; z-index:1; }
.areas-tabla .area-nombre { overflow-wrap:anywhere; min-width:140px; }
.areas-tabla td:last-child { width:160px; }
@media(max-width:620px) { .areas-registro { grid-template-columns:1fr; } .areas-tabla .area-nombre { min-width:0; } }

.feriados-tabla { max-height:360px; overflow:auto; margin:16px 0; }
.feriados-tabla th { position:sticky; top:0; background:#edf3fa; z-index:1; }
.feriados-tabla td:first-child { white-space:nowrap; }
.feriados-tabla td { overflow-wrap:anywhere; }

/* Mantiene visibles los céntimos; en móvil el desplazamiento queda dentro de la tabla. */
.base-historial-tabla{min-width:620px}

.base-historial-simple{min-width:460px}

.seg-primera-pac{padding:16px;margin:12px 0;background:#edf5fc;border:1px solid #cbddee;border-radius:10px}.seg-primera-pac output{font-size:1.25rem;font-weight:700;color:#124d7d}.seg-base-legado{margin:14px 0}

.proc-acciones { min-width: 132px; }
.proc-acciones button { white-space: nowrap; }
.proc-acciones small { display: block; margin-top: 3px; }

/* Solicitud de certificación: formulario previo al documento. */
.cert-solicitud {margin-top:24px;min-width:0}.cert-solicitud h3{margin:24px 0 12px}.cert-solicitud .ancho{grid-column:1 / -1}.cert-solicitud input,.cert-solicitud select,.cert-solicitud textarea{max-width:100%;min-width:0}.cert-solicitud-acciones{margin-top:24px}.cert-editor>select{max-width:100%}.cert-solicitud-datos .ancho input{font-weight:600}.cert-solicitud-titulo{margin-bottom:16px}.cert-solicitud-titulo h2{margin:6px 0}.cert-solicitud .grid>div{min-width:0}

.cert-solicitud{margin-top:0}.cert-solicitud-titulo{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.cert-solicitud-titulo>div:first-child{flex:1;min-width:200px}.cert-solicitud-titulo .cert-solicitud-acciones{margin-top:0;align-items:flex-start}.cert-generar-memo{font-weight:700;border-color:var(--blue,#164f80);white-space:nowrap}.cert-solicitud-pie{margin-top:24px}.cert-otros-formatos>summary{cursor:pointer}.cert-otros-formatos>.fila{margin-top:14px}.cert-documento-acciones h2{margin:0 0 12px}
@media(max-width:640px){.cert-solicitud-titulo .cert-solicitud-acciones{width:100%}.cert-solicitud-acciones button{flex:1}.cert-solicitud-titulo>div:first-child{min-width:0}}
.formato-acciones{display:flex;justify-content:flex-end;margin-top:18px}
.btn-formato{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border:0;border-radius:10px;background:linear-gradient(180deg,#2b7cd3,#164f80);color:#fff;font-weight:800;font-size:15px;letter-spacing:.4px;cursor:pointer;box-shadow:0 3px 8px rgba(22,79,128,.35)}
.btn-formato:hover:not(:disabled){background:linear-gradient(180deg,#3590e6,#1a5c96)}
.btn-formato:active:not(:disabled){transform:translateY(1px)}
.btn-formato:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:640px){.formato-acciones{justify-content:stretch}.btn-formato{flex:1;justify-content:center}}
