/* =============================================================================
   DGAAE · Instrumento de levantamiento — sistema de diseño
   Tokens de 00_GOBIERNO/04_SISTEMA_DISENO_DOCUMENTOS.md
   ============================================================================= */
:root{
  --indigo-900:#1E1B4B; --indigo-800:#312E81; --indigo:#4338CA;
  --tinta:#14171F; --texto:#2B303B; --tenue:#6B7280;
  --borde:#D5D9E0; --crema:#EEF1FF; --hueso:#FAFBFD; --blanco:#fff;
  --ok:#067647; --ok-bg:#ECFDF3; --warn:#B54708; --warn-bg:#FFFAEB;
  --hip:#B42318; --hip-bg:#FEF3F2; --contra:#7C3AED; --contra-bg:#F5F3FF;
  --info:#0369A1; --info-bg:#F0F9FF; --off:#6B7280; --off-bg:#F2F4F8;
  --f:Calibri,"Segoe UI",system-ui,sans-serif; --m:Consolas,ui-monospace,monospace;
  --esc:1;            /* escala de lectura · botón A A A A */
}
*{box-sizing:border-box}
body{margin:0;background:var(--hueso);color:var(--texto);font-family:var(--f);font-size:15px;line-height:1.55}
a{color:var(--indigo)}

/* ------------------------------------------------------------------ barra -- */
.top{position:sticky;top:0;z-index:40;background:var(--indigo-900);color:#fff;display:flex;
     align-items:center;gap:16px;padding:9px 20px;box-shadow:0 2px 12px rgba(20,23,31,.18);flex-wrap:wrap}
.top .marca{font-weight:700;font-size:13.5px;letter-spacing:.02em}
.top nav{display:flex;gap:3px;flex:1;flex-wrap:wrap}
.top nav a{color:#C7CBE8;text-decoration:none;font-size:13px;padding:5px 11px;border-radius:7px}
.top nav a:hover{background:rgba(255,255,255,.12);color:#fff}
.top nav a.on{background:var(--indigo);color:#fff;font-weight:700}
.swmodo{display:flex;align-items:center;gap:0;border:1px solid rgba(255,255,255,.32);border-radius:8px;overflow:hidden}
.swmodo button{font:700 11.5px var(--f);border:0;background:transparent;color:#C7CBE8;padding:6px 13px;cursor:pointer}
.swmodo button.on{background:#fff;color:var(--indigo-900)}
.top .proyectar{font:700 11.5px var(--f);border:1px solid rgba(255,255,255,.32);background:transparent;
     color:#C7CBE8;border-radius:8px;padding:6px 12px;cursor:pointer}
.top .proyectar:hover{background:rgba(255,255,255,.14);color:#fff}

body.sala .top{background:var(--indigo-800)}
.solo-inv{display:none!important}          /* nunca se proyecta */
.solo-consola{display:none}
body.consola .solo-consola{display:block}
body.consola .top{background:var(--indigo-900);border-bottom:3px solid var(--indigo)}
.yo{font:600 11.5px var(--f);color:#8f96c9;white-space:nowrap}
.sync{display:inline-flex;align-items:center;font:600 11.5px var(--f);color:#C7CBE8;
  padding:5px 11px;border:1px solid rgba(255,255,255,.22);border-radius:8px;cursor:default;
  white-space:nowrap}
.escala{display:flex;align-items:center;gap:1px;border:1px solid rgba(255,255,255,.3);
  border-radius:8px;overflow:hidden;margin-right:2px}
.escala button{border:0;background:transparent;color:#C7CBE8;cursor:pointer;
  font-family:var(--f);font-weight:700;line-height:1;padding:5px 9px}
.escala button:hover{background:rgba(255,255,255,.14);color:#fff}
.escala button.on{background:#fff;color:var(--indigo-900)}
.escala button[data-e="1"]{font-size:12px}
.escala button[data-e="1.2"]{font-size:15px}
.escala button[data-e="1.45"]{font-size:18px}
.escala button[data-e="1.75"]{font-size:22px}
.escala .et{color:#8f96c9;font:600 10px var(--f);letter-spacing:.1em;
  text-transform:uppercase;padding:0 7px 0 9px}
.consola-link{color:#C7CBE8;text-decoration:none;font:700 12px var(--f);border:1px solid rgba(255,255,255,.3);
  border-radius:8px;padding:6px 12px;white-space:nowrap}
.consola-link:hover,.consola-link.on{background:#fff;color:var(--indigo-900);border-color:#fff}

.hoja{zoom:var(--esc);max-width:calc(1400px / var(--esc));margin:0 auto;padding:28px 26px 90px}
body.sala .hoja{max-width:1600px;padding-top:34px}
.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--indigo);font-weight:700;margin:0 0 8px}
h1{font-size:30px;line-height:1.14;color:var(--tinta);margin:0 0 12px;letter-spacing:-.01em}
body.sala h1{font-size:36px}
h2{font-size:20px;color:var(--tinta);margin:34px 0 10px}
h3{font-size:16px;color:var(--tinta);margin:20px 0 8px}
.barra{height:5px;background:var(--indigo);border:0;margin:0 0 18px;width:92px}
.bajada{font-size:16px;max-width:92ch;margin:0 0 16px}
body.sala .bajada{font-size:18px}
.pie{margin-top:38px;padding-top:14px;border-top:1px solid var(--borde);color:var(--tenue);font-size:12px}

/* ------------------------------------------------------------------ SVG ---- */
.lienzo{overflow-x:auto;text-align:center;background:#fff;border:1px solid var(--borde);border-radius:12px;padding:10px 6px;margin:14px 0}
.lane{fill:var(--hueso);stroke:var(--borde);stroke-width:1}
.lane.alt{fill:#fff}
.lanehdr{fill:var(--crema);stroke:var(--borde);stroke-width:1}
.lanetit{font:700 11.5px var(--f);fill:var(--indigo-800)}
.task{fill:#fff;stroke:var(--indigo-800);stroke-width:1.5}
.task.ext{fill:var(--warn-bg);stroke:var(--warn);stroke-dasharray:5 3}
.nodo{cursor:pointer}
.nodo:hover .task,.nodo:focus .task{fill:var(--crema);stroke:var(--indigo)}
.nodo.destaca .task{stroke-width:3;stroke:var(--indigo)}
body.consola .nodo.hueco .task{stroke:var(--hip);stroke-dasharray:6 4;fill:var(--hip-bg)}
.tasktit{font:12.5px var(--f);fill:var(--tinta);pointer-events:none}
.taskpl{font:700 10.5px var(--m);fill:var(--indigo);pointer-events:none}
.qn{font:700 9.5px var(--m);fill:#fff;pointer-events:none}
.ev{fill:#fff;stroke:var(--indigo-800);stroke-width:2.4}
.ev.fin{stroke-width:4}
.evt{font:11.5px var(--f);fill:var(--tinta);pointer-events:none;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.gw{fill:var(--crema);stroke:var(--indigo);stroke-width:1.8}
.gwx{font:700 15px var(--f);fill:var(--indigo);pointer-events:none}
.flow{stroke:var(--tinta);stroke-width:1.5;fill:none}
.flow.ret{stroke:var(--warn);stroke-dasharray:6 4}
.flowlbl{font:700 10.5px var(--f);fill:var(--indigo-800);paint-order:stroke;stroke:#fff;stroke-width:3.5px;stroke-linejoin:round}
.bnd{fill:#fff;stroke:var(--indigo-800);stroke-width:1.4;stroke-dasharray:7 4}
.bndt{font:700 12px var(--f);fill:var(--indigo-800);letter-spacing:.05em;text-transform:uppercase}
.uco{fill:#fff;stroke:var(--indigo-800);stroke-width:1.5}
.nodo.uc:hover .uco,.nodo.uc:focus .uco{fill:var(--crema);stroke:var(--indigo)}
.nodo.uc.destaca .uco{stroke-width:3;stroke:var(--indigo)}
.nodo.uc.off .uco{stroke:var(--off);stroke-dasharray:5 3;fill:var(--off-bg)}
.uct{font:12.5px var(--f);fill:var(--tinta);pointer-events:none}
.ucc{font:700 10px var(--m);fill:var(--indigo);pointer-events:none}
.assoc{stroke:var(--tenue);stroke-width:1}
.actor circle,.actor line{stroke:var(--indigo-800);stroke-width:1.7;fill:none}
.actor.worker circle,.actor.worker line{stroke:var(--indigo)}
.actor.off circle,.actor.off line{stroke:var(--off);stroke-dasharray:3 2}
.actort{font:700 11.5px var(--f);fill:var(--tinta)}
.actorr{font:9.5px var(--m);fill:var(--tenue)}

.leyenda{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--tenue);margin:6px 0 18px}
.leyenda span{display:inline-flex;align-items:center;gap:6px}
.leyenda i{width:11px;height:11px;border-radius:50%;display:inline-block}

/* ------------------------------------------------------------- componentes -- */
.callout{border-left:4px solid var(--indigo);background:var(--crema);padding:12px 17px;border-radius:0 9px 9px 0;margin:14px 0}
.callout.alerta{border-left-color:var(--hip);background:var(--hip-bg)}
.callout.aviso{border-left-color:var(--warn);background:var(--warn-bg)}
.callout .tt{font-weight:700;color:var(--tinta);display:block;margin-bottom:3px}
.callout p{margin:0}
.sello{display:inline-block;font:700 10.5px var(--m);border-radius:5px;padding:2px 8px;white-space:nowrap}
.sello.ok{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok)}
.sello.warn{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn)}
.sello.hip{background:var(--hip-bg);color:var(--hip);border:1px solid var(--hip)}
.sello.off{background:var(--off-bg);color:var(--off);border:1px solid var(--off)}
.parte{display:inline-block;font:700 10.5px var(--m);border-radius:5px;padding:2px 8px;white-space:nowrap}
.parte.p-a {background:#FFF7ED;color:#9A3412;border:1px solid #9A3412}
.parte.p-b {background:var(--crema);color:var(--indigo);border:1px solid var(--indigo)}
.parte.p-ab{background:#F0FDFA;color:#0F766E;border:1px solid #0F766E}
.tag{display:inline-block;font:600 11px var(--m);background:var(--off-bg);color:var(--tenue);border-radius:5px;padding:2px 7px}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--borde);border-radius:10px;overflow:hidden;margin:12px 0}
th{background:var(--crema);color:var(--indigo-800);text-align:left;font-size:12px;letter-spacing:.04em;
   text-transform:uppercase;padding:9px 13px;border-bottom:1px solid var(--borde)}
td{padding:9px 13px;border-bottom:1px solid #EDF0F7;font-size:13.5px;vertical-align:top}
tr:last-child td{border-bottom:none}
tr:nth-child(even) td{background:var(--hueso)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:15px;margin:16px 0 24px}
a.card{border:1px solid var(--borde);border-radius:12px;overflow:hidden;background:#fff;text-decoration:none;display:block;transition:.15s}
a.card:hover{box-shadow:0 8px 22px rgba(20,23,31,.13);transform:translateY(-2px)}
a.card .h{background:var(--indigo-800);color:#fff;padding:12px 16px;display:flex;align-items:center;gap:10px}
a.card .h h3{margin:0;font-size:16px;color:#fff}
a.card .h .ord{font:700 12px var(--m);background:var(--crema);color:var(--indigo-800);border-radius:6px;padding:2px 8px}
a.card .b{padding:12px 16px} a.card .b p{margin:0 0 10px;color:var(--texto);font-size:13.5px}
a.card .meta{display:flex;justify-content:space-between;align-items:center;font-size:12px}
a.card .ir{font-weight:700;color:var(--indigo)}
.acciones{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.acciones button{font:700 13px var(--f);border:1.5px solid var(--indigo);background:#fff;color:var(--indigo);
                 border-radius:8px;padding:9px 15px;cursor:pointer}
.acciones button:hover{background:var(--indigo);color:#fff}
.acciones button.rojo{border-color:var(--hip);color:var(--hip)}
.acciones button.rojo:hover{background:var(--hip);color:#fff}

/* ------------------------------------------------------- panel de pregunta -- */
.ov{display:none;position:fixed;inset:0;background:rgba(20,23,31,.5);z-index:60}
.ov.on{display:block}
.panel{zoom:var(--esc);position:fixed;top:0;right:0;bottom:0;width:min(680px,calc(100vw / var(--esc)));background:#fff;z-index:61;
       transform:translateX(102%);transition:transform .22s;display:flex;flex-direction:column}
.panel.on{transform:none}
body.sala .panel{width:min(880px,100%)}
.ph{background:var(--indigo-900);color:#fff;padding:20px 26px;position:relative}
body.sala .ph{background:var(--indigo-800);padding:26px 34px}
.ph .cod{display:inline-block;background:var(--crema);color:var(--indigo-800);font:700 12px var(--m);
         padding:3px 10px;border-radius:6px;margin-bottom:8px}
.ph h3{margin:0;color:#fff;font-size:19px;line-height:1.38}
body.sala .ph h3{font-size:27px;line-height:1.32}
.ph .x{position:absolute;top:14px;right:20px;background:none;border:none;color:#fff;font-size:27px;cursor:pointer}
.pb{padding:18px 26px 30px;overflow:auto;flex:1}
body.sala .pb{padding:24px 34px}
.fld{margin-bottom:15px}
.lbl{display:inline-block;background:var(--crema);color:var(--indigo-800);font:700 10.5px var(--f);
     letter-spacing:.04em;text-transform:uppercase;padding:3px 10px;border-radius:6px;margin-bottom:6px}
textarea,input[type=text]{width:100%;border:1.5px solid var(--borde);border-radius:8px;padding:9px 12px;
     font:14px var(--f);color:var(--texto);resize:vertical}
textarea:focus,input:focus{outline:none;border-color:var(--indigo)}
.dosc{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* estados */
.estados{display:flex;gap:6px;flex-wrap:wrap}
.estados button{font:700 12.5px var(--f);border:1.5px solid var(--borde);background:#fff;color:var(--texto);
                border-radius:8px;padding:8px 13px;cursor:pointer}
.estados button:hover{border-color:var(--indigo)}
.estados button.on[data-e=RESP]{background:var(--crema);border-color:var(--indigo);color:var(--indigo)}
.estados button.on[data-e=CONF]{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}
.estados button.on[data-e=PARC]{background:var(--warn-bg);border-color:var(--warn);color:var(--warn)}
.estados button.on[data-e=DESC]{background:var(--off-bg);border-color:var(--off);color:var(--off)}
.estados button.on[data-e=CONTRA]{background:var(--contra-bg);border-color:var(--contra);color:var(--contra)}
.estados button.on[data-e=EVID]{background:var(--info-bg);border-color:var(--info);color:var(--info)}

/* ramas condicionales */
.ramas{display:flex;flex-direction:column;gap:8px}
.rama{border:1.5px solid var(--borde);border-radius:10px;padding:11px 14px;cursor:pointer;background:#fff}
.rama:hover{border-color:var(--indigo)}
.rama.on{border-color:var(--indigo);border-width:2.5px;background:var(--crema)}
.rama .rt{font-weight:700;color:var(--tinta)}
.rama .rn{font-size:12.5px;color:var(--tenue);margin-top:3px}
.subs{margin:10px 0 0 6px;border-left:3px solid var(--indigo);padding-left:14px;display:flex;flex-direction:column;gap:9px}
.sub .sq{font-size:14.5px;color:var(--tinta);margin-bottom:4px}
body.sala .sub .sq{font-size:20px;line-height:1.4;margin-bottom:0}
.sub input{font-size:13px}

/* lista de preguntas */
.qlist{display:flex;flex-direction:column;gap:9px}
.qitem{background:#fff;border:1px solid var(--borde);border-left:4px solid var(--borde);border-radius:9px;
       padding:12px 16px;cursor:pointer}
.qitem:hover{border-left-color:var(--indigo)}
.qitem.clave{border-left-color:var(--indigo)}
.qitem.e-CONF{border-left-color:var(--ok)} .qitem.e-PARC{border-left-color:var(--warn)}
.qitem.e-DESC{border-left-color:var(--off);opacity:.62} .qitem.e-CONTRA{border-left-color:var(--contra)}
.qitem.e-EVID{border-left-color:var(--info)} .qitem.e-RESP{border-left-color:var(--indigo)}
.qitem .qh{display:flex;gap:9px;align-items:center;margin-bottom:4px;flex-wrap:wrap}
.qitem .qid{font:700 12px var(--m);color:var(--indigo)}
.qitem .qq{font-size:15px;color:var(--tinta);line-height:1.45}
.qitem .qn2{font-size:12.5px;color:var(--tenue);margin-top:5px}
.qitem .qr{margin-top:8px;padding:8px 12px;background:var(--hueso);border-radius:7px;font-size:13px;
           border-left:3px solid var(--ok);white-space:pre-wrap}
.filtros{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 18px}
.filtros button{font:600 13px var(--f);border:1.5px solid var(--borde);background:#fff;color:var(--texto);
                border-radius:20px;padding:6px 14px;cursor:pointer}
.filtros button.on{background:var(--indigo);border-color:var(--indigo);color:#fff}
.avance{font:700 12px var(--m);color:var(--tenue)}
.barrap{height:7px;background:var(--borde);border-radius:4px;overflow:hidden;margin:6px 0 14px;max-width:420px}
.barrap i{display:block;height:100%;background:var(--ok)}

/* sala: lista de preguntas más grande y sin códigos */
body.sala:not(.consola) .qitem .qid,body.sala:not(.consola) .qitem .tag,body.sala:not(.consola) .qitem .qn2{display:none}
body.sala .panel{width:min(820px,100%)}
body.sala .sub input,body.sala #f_resp,body.sala #f_herr,body.sala #f_caso,body.sala #f_evid{font-size:16px}
body.sala .lbl{font-size:11.5px}
body.sala .rama .rt{font-size:17px}
body.sala:not(.consola) .qitem .qq{font-size:19px}
body.sala .lbl{font-size:11.5px}

@media print{.top,.filtros,.acciones,.ov,.panel{display:none!important}body{background:#fff}}
