/* SIGJ-FIDE · estilo institucional.
   Sin tipografías ni recursos externos (RF-064, RF-077): fuentes del sistema. */
:root{
  --verde:#0b5d3b;          /* verde institucional FIDE */
  --verde-oscuro:#073d27;
  --verde-claro:#e7f2ec;
  --ambar:#b7791f;
  --rojo:#a12622;
  --tinta:#1d2521;
  --gris:#5b6660;
  --linea:#d6ded9;
  --fondo:#f5f7f6;
  --blanco:#ffffff;
}
*{box-sizing:border-box}
body{margin:0;font-family:Georgia,'Times New Roman',serif;color:var(--tinta);background:var(--fondo);font-size:15px;line-height:1.5}
h1,h2,h3,summary,.logo,button,.btn,nav,th,label,.etiqueta{font-family:'Segoe UI',system-ui,-apple-system,Arial,sans-serif}
h1{font-size:1.45rem;margin:.2rem 0 1rem;color:var(--verde-oscuro)}
h2{font-size:1.1rem;margin:1.4rem 0 .6rem;color:var(--verde-oscuro);border-bottom:2px solid var(--verde-claro);padding-bottom:.25rem}
h3{font-size:.95rem;margin:.8rem 0 .4rem}
a{color:var(--verde)}

/* Cabecera */
.cabecera{background:var(--verde-oscuro);color:#eaf3ee;padding:.6rem 1.2rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem}
.logo{font-weight:700;font-size:1.25rem;color:#fff;text-decoration:none;letter-spacing:.04em}
.logo span{color:#9fd3b4;font-weight:400}
.lema{display:block;font-size:.72rem;color:#b9d4c4}
.navegacion{display:flex;flex-wrap:wrap;gap:.15rem;flex:1}
.navegacion a{color:#dcebe2;text-decoration:none;padding:.35rem .55rem;border-radius:4px;font-size:.83rem}
.navegacion a:hover{background:rgba(255,255,255,.12)}
.sesion{display:flex;align-items:center;gap:.6rem;font-size:.82rem;font-family:'Segoe UI',system-ui,sans-serif}
.usuario small{color:#a9c8b6}
.notifs{position:relative}
.notifs summary{cursor:pointer;list-style:none;background:var(--ambar);color:#fff;padding:.2rem .5rem;border-radius:10px;font-size:.78rem}
.notifs-lista{position:absolute;right:0;top:1.9rem;background:#fff;color:var(--tinta);border:1px solid var(--linea);border-radius:6px;min-width:320px;max-height:320px;overflow:auto;padding:.5rem;z-index:30;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.notif{margin:.25rem 0;padding:.35rem .5rem;border-left:3px solid var(--verde);background:var(--verde-claro);font-size:.8rem}
.notif.alerta{border-color:var(--ambar);background:#fdf3e3}

.contenido{max-width:1200px;margin:1.2rem auto;padding:0 1rem}
.pie{max-width:1200px;margin:2rem auto 1rem;padding:0 1rem;color:var(--gris);font-size:.75rem;border-top:1px solid var(--linea);padding-top:.6rem}

/* Avisos */
.aviso{padding:.6rem .9rem;border-radius:6px;margin-bottom:.8rem;font-size:.88rem;border:1px solid}
.aviso.ok{background:var(--verde-claro);border-color:#a9d1bb;color:var(--verde-oscuro)}
.aviso.error{background:#fbeaea;border-color:#e0b4b2;color:var(--rojo)}

/* Tarjetas y rejillas */
.tarjeta{background:var(--blanco);border:1px solid var(--linea);border-radius:8px;padding:1rem 1.2rem;margin-bottom:1rem}
.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}
.rejilla-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}

/* Tablas */
table{width:100%;border-collapse:collapse;background:var(--blanco);font-size:.85rem}
th{background:var(--verde-claro);color:var(--verde-oscuro);text-align:left;padding:.45rem .6rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}
td{padding:.45rem .6rem;border-bottom:1px solid var(--linea);vertical-align:top}
tr:hover td{background:#fafcfb}

/* Formularios */
form.bloque{display:grid;gap:.7rem}
label{display:block;font-size:.8rem;color:var(--gris);margin-bottom:.15rem}
input,select,textarea{width:100%;padding:.45rem .55rem;border:1px solid var(--linea);border-radius:5px;font:inherit;font-size:16px;background:#fff;box-sizing:border-box}
textarea{min-height:80px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--verde);outline-offset:1px}
.fila{display:flex;gap:.8rem;flex-wrap:wrap}
.fila>div{flex:1;min-width:160px}
fieldset{border:1px solid var(--linea);border-radius:6px;margin:0 0 .8rem;padding:.7rem .9rem}
legend{font-family:'Segoe UI',system-ui,sans-serif;font-size:.82rem;color:var(--verde-oscuro);font-weight:600;padding:0 .3rem}

/* Botones */
.btn,button{background:var(--verde);color:#fff;border:0;border-radius:5px;padding:.5rem .9rem;font-size:.85rem;cursor:pointer;text-decoration:none;display:inline-block}
.btn:hover,button:hover{background:var(--verde-oscuro)}
.btn-sec{background:#fff;color:var(--verde);border:1px solid var(--verde)}
.btn-sec:hover{background:var(--verde-claro);color:var(--verde-oscuro)}
.btn-peligro{background:var(--rojo)}
.btn-mini{padding:.25rem .55rem;font-size:.75rem}

/* Etiquetas de estado */
.estado{display:inline-block;padding:.12rem .5rem;border-radius:10px;font-size:.72rem;font-family:'Segoe UI',system-ui,sans-serif;font-weight:600;white-space:nowrap}
.e-BOR{background:#eee;color:#555}
.e-ENV,.e-VAL,.e-REE{background:#e3ecf7;color:#274a78}
.e-DEV,.e-OBS,.e-ERR{background:#fdf0e0;color:var(--ambar)}
.e-ASI,.e-ATE,.e-BRE{background:var(--verde-claro);color:var(--verde-oscuro)}
.e-PIN{background:#f3e8fb;color:#6b3fa0}
.e-REV,.e-APR{background:#e0f0f5;color:#1b6577}
.e-EMI{background:#dcefe3;color:#12693d}
.e-CER,.e-ARC{background:#e6e6e6;color:#444}
.e-REA{background:#fff3cd;color:#7a5b00}
.e-CAN{background:#f8dede;color:var(--rojo)}
.vencido{color:var(--rojo);font-weight:700}
.riesgo{color:var(--ambar);font-weight:700}

/* Semáforo almacenamiento */
.barra{height:14px;background:#e6ece9;border-radius:8px;overflow:hidden}
.barra>span{display:block;height:100%;background:var(--verde)}
.barra .advertencia{background:var(--ambar)}
.barra .critico{background:var(--rojo)}

/* Selección guiada de servicios */
.cat-titulo{margin-top:1.2rem}
.servicios-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.7rem}
.servicio-opcion{display:block;background:#fff;border:1px solid var(--linea);border-left:4px solid var(--verde);border-radius:6px;padding:.7rem .9rem;text-decoration:none;color:var(--tinta)}
.servicio-opcion:hover{border-left-color:var(--verde-oscuro);background:var(--verde-claro)}
.servicio-opcion strong{font-family:'Segoe UI',system-ui,sans-serif}
.servicio-opcion .meta{display:block;font-size:.75rem;color:var(--gris);margin-top:.2rem}

/* Línea de tiempo del expediente */
.linea-tiempo{list-style:none;margin:0;padding:0}
.linea-tiempo li{position:relative;padding:.15rem 0 .5rem 1.3rem;border-left:2px solid var(--verde-claro);margin-left:.4rem;font-size:.83rem}
.linea-tiempo li::before{content:"";position:absolute;left:-6px;top:.4rem;width:10px;height:10px;border-radius:50%;background:var(--verde)}
.linea-tiempo .fecha{color:var(--gris);font-size:.75rem}

details.seccion{background:#fff;border:1px solid var(--linea);border-radius:8px;margin-bottom:.7rem}
details.seccion>summary{cursor:pointer;padding:.6rem 1rem;font-weight:600;color:var(--verde-oscuro);font-size:.9rem}
details.seccion[open]>summary{border-bottom:1px solid var(--linea)}
details.seccion>div{padding:.8rem 1rem}

.kpi-tarjeta{background:#fff;border:1px solid var(--linea);border-top:4px solid var(--verde);border-radius:8px;padding:.8rem 1rem;text-decoration:none;color:var(--tinta);display:block}
.kpi-tarjeta:hover{border-top-color:var(--ambar)}
.kpi-valor{font-size:1.9rem;font-weight:700;font-family:'Segoe UI',system-ui,sans-serif;color:var(--verde-oscuro)}
.kpi-nombre{font-size:.78rem;color:var(--gris)}

.login-caja{max-width:400px;margin:8vh auto;background:#fff;border:1px solid var(--linea);border-radius:10px;padding:2rem;border-top:6px solid var(--verde)}
.login-caja h1{text-align:center}

@media (max-width:720px){
  .cabecera{flex-direction:column;align-items:flex-start}
  .contenido{padding:0 .6rem}
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .navegacion a{padding:.55rem .7rem;font-size:.9rem}          /* área táctil ≥ 40px */
  button,.btn{padding:.6rem 1rem;min-height:44px}
  .fila{flex-direction:column}
  .login-caja{margin:4vh .8rem;padding:1.4rem}
}
@media (pointer:coarse){button,.btn{min-height:44px}}

/* Semáforos de los controles de área (gestión y salidas, recepción) */
.sem{display:inline-block;padding:.12rem .5rem;border-radius:10px;font-size:.75rem;
     font-family:'Segoe UI',system-ui,sans-serif;font-weight:600;border:1px solid}
.sem-vencido{background:#fdecea;color:#a02020;border-color:#e5b3ad}
.sem-urgente{background:#fdf1e0;color:#9a5b00;border-color:#e8cfa5}
.sem-próximo,.sem-proximo{background:#fdfae0;color:#7a6a00;border-color:#e5dda5}
.sem-en-tiempo{background:#e8f3ec;color:#0b5d3b;border-color:#b6d8c5}
.sem-sin-plazo{background:#eef0f2;color:#5b6770;border-color:#d3d8dc}
.sem-concluido{background:#e8f3ec;color:#0b5d3b;border-color:#b6d8c5}
.sem-cancelado{background:#eef0f2;color:#5b6770;border-color:#d3d8dc}
table.datos th{background:transparent;color:var(--gris);text-transform:none;font-size:.78rem;
               width:38%;vertical-align:top;letter-spacing:0}
table.datos td{font-size:.85rem}
.filtros{background:var(--blanco);border:1px solid var(--linea);border-radius:8px;
         padding:.8rem;margin-bottom:1rem}
.lista-alertas{list-style:none;padding:0;margin:.3rem 0}
.lista-alertas li{padding:.3rem 0;border-bottom:1px solid var(--linea);font-size:.83rem}
.lista-alertas li:last-child{border-bottom:none}
.lista-alertas small{display:block}
.aviso{background:#fdfae0;border:1px solid #e5dda5;border-left:5px solid var(--ambar);
       border-radius:6px;padding:.7rem .9rem;margin:.8rem 0;font-size:.85rem}
fieldset{border:1px solid var(--linea);border-radius:8px;padding:.8rem;margin-bottom:.9rem}
legend{font-family:'Segoe UI',system-ui,sans-serif;font-size:.78rem;font-weight:600;
       color:var(--verde);text-transform:uppercase;letter-spacing:.04em;padding:0 .4rem}
details.tarjeta summary{cursor:pointer;font-size:.87rem}
