*{box-sizing:border-box}
:root{
  --navy:#1d232b;
  --navy-2:#2d343d;
  --blue:#44556c;
  --blue-2:#66778f;
  --steel:#e8eaed;
  --steel-2:#f7f7f6;
  --line:#c9ced6;
  --line-dark:#4b5563;
  --text:#20252c;
  --muted:#636b75;
  --gold:#a88743;
  --gold-2:#d7c08a;
  --white:#ffffff;
  --danger:#8f2d2d;
  --ok:#2e6f58;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  padding:0;
  font-family:"Segoe UI",Arial,sans-serif;
  background:#e7ebf1;
  color:#182230;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  background:
    linear-gradient(90deg,rgba(22,27,34,.82),rgba(65,72,82,.64)),
    url("/img/doj/hero-edificio.png");
  background-size:cover;
  background-position:center;
  z-index:-2;
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  background:linear-gradient(180deg,rgba(246,247,249,.70),rgba(230,233,238,.50));
  pointer-events:none;
  z-index:-1;
}

/* TOPBAR */
.topbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:22px;
  padding:16px 48px;
  background:linear-gradient(180deg,#ffffff,#edf1f6);
  border-bottom:3px solid var(--gold);
  box-shadow:0 8px 28px rgba(24,34,48,.18);
  position:sticky;
  top:0;
  z-index:999;
}
.brand{display:flex;align-items:center;gap:16px}
.logo{
  width:64px;height:64px;border-radius:50%;object-fit:cover;
  background:#fff;border:2px solid #d5deeb;
  box-shadow:0 0 0 4px rgba(168,135,67,.13),0 8px 18px rgba(0,0,0,.18);
}
.brand h1{margin:0;font-size:25px;letter-spacing:4px;color:#0c1a2d;font-weight:900}
.brand span{display:block;margin-top:4px;font-size:12px;letter-spacing:1.8px;color:#49617f;text-transform:uppercase;font-weight:700}
nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
nav a,
.hero-buttons a,
.card a,
.banner a,
.panel-box button,
.action-buttons button,
.error-box button,
.case-actions button,
.mapa-boton-centro button,
.gold-btn,
button{
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:12px 22px;
  border-radius:4px;
  border:1px solid #9aa7b8;
  background:linear-gradient(180deg,#ffffff,#e4e8ee);
  color:#182230;
  text-decoration:none;
  font-size:13px;
  font-weight:900;
  letter-spacing:.9px;
  text-transform:uppercase;
  box-shadow:0 2px 0 rgba(255,255,255,.85) inset,0 5px 12px rgba(24,34,48,.13);
  cursor:pointer;
  transition:.20s ease;
}
nav a:hover,
.hero-buttons a:hover,
.card a:hover,
.banner a:hover,
.panel-box button:hover,
.action-buttons button:hover,
.case-actions button:hover,
.mapa-boton-centro button:hover,
.gold-btn:hover,
button:hover{
  transform:translateY(-1px);
  border-color:var(--gold);
  background:linear-gradient(180deg,#3f4752,#222831);
  color:#fff;
  box-shadow:0 8px 18px rgba(32,37,44,.28);
}
.login-btn,
.action-buttons button,
.hero-buttons a,
.panel-box button,
.case-actions button,
.mapa-boton-centro button,
.gold-btn{
  background:linear-gradient(180deg,#34445a,#1f2b3b);
  border-color:#65748a;
  color:#fff!important;
  box-shadow:0 7px 15px rgba(24,34,48,.22),inset 0 1px 0 rgba(255,255,255,.18);
}
.secondary{
  background:linear-gradient(180deg,#ffffff,#e4e9f1)!important;
  border-color:#b7c4d5!important;
  color:#102033!important;
}

/* HERO PUBLICO */
.hero-real{
  min-height:620px;
  background:
    linear-gradient(90deg,rgba(8,19,36,.97),rgba(15,34,58,.82),rgba(15,34,58,.35)),
    url("/img/doj/hero-edificio.png");
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:center;
  padding:80px;
  border-bottom:3px solid var(--gold);
  position:relative;
}
.hero-real::before{
  content:"FISCALÍA DEL ESTADO";
  position:absolute;
  right:38px;
  bottom:28px;
  color:rgba(255,255,255,.13);
  font-size:18px;
  letter-spacing:5px;
  font-weight:900;
}
.hero-content{max-width:820px;border-left:5px solid var(--gold);padding-left:30px}
.badge{
  display:inline-block;
  padding:9px 14px;
  background:rgba(255,255,255,.96);
  color:#10233c;
  border:1px solid var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:2px;
  text-transform:uppercase;
  margin-bottom:20px;
}
.hero-content h2{font-size:62px;margin:0;color:#fff;letter-spacing:1px;text-transform:uppercase;text-shadow:0 0 28px rgba(0,0,0,.85)}
.hero-content p{font-size:18px;line-height:1.8;color:#dce5f2;max-width:740px}
.hero-buttons{margin-top:32px;display:flex;gap:15px;flex-wrap:wrap}

/* SECCIONES PUBLICAS */
.info-section{
  padding:70px 30px;
  text-align:center;
  background:linear-gradient(180deg,#f8fafc,#e9eef5);
  color:var(--text);
  border-bottom:1px solid var(--line);
}
.info-section h2{font-size:34px;color:#102033;text-transform:uppercase;letter-spacing:2px;margin-top:0}
.info-section p{max-width:980px;margin:auto;font-size:17px;line-height:1.8;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:28px;padding:60px;background:#eef2f7}
.card{
  background:linear-gradient(180deg,#ffffff,#f2f5f9);
  border:1px solid #c8d2df;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 16px 34px rgba(12,26,45,.16);
  transition:.22s ease;
  color:var(--text);
}
.card:hover{transform:translateY(-5px);border-color:var(--blue-2);box-shadow:0 22px 44px rgba(12,26,45,.22)}
.card img{width:100%;height:220px;object-fit:cover;filter:contrast(106%) saturate(92%) brightness(92%);border-bottom:4px solid var(--gold)}
.card div{padding:24px}
.card h3{margin:0 0 12px;font-size:22px;color:#102033;text-transform:uppercase;letter-spacing:1px}
.card p{color:var(--muted);line-height:1.6}
.banner{
  padding:75px 30px;text-align:center;
  background:linear-gradient(rgba(8,19,36,.92),rgba(8,19,36,.96)),url("/img/doj/hero-operativo.png");
  background-size:cover;background-position:center;border-top:3px solid var(--gold);border-bottom:3px solid var(--blue)
}
.banner h2{font-size:38px;color:white;text-transform:uppercase;letter-spacing:2px}
.banner p{max-width:850px;margin:auto;color:#dce5f2;line-height:1.8}
footer{padding:28px;text-align:center;background:#f8fafc;color:#52627a;border-top:1px solid var(--line);font-size:13px}

/* DASHBOARD */
.panel{padding:48px;max-width:1500px;margin:auto;background:rgba(246,247,249,.72);min-height:100vh}
.panel-title{font-size:42px;text-transform:uppercase;letter-spacing:2px;margin:0 0 8px;color:#182230;text-shadow:none}
.panel-subtitle{color:#4e5c6d;margin-bottom:30px;font-size:16px}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:30px}
.stat-card{
  background:linear-gradient(180deg,#ffffff,#edf1f6);
  border:1px solid #c6d1df;
  border-left:5px solid var(--blue);
  border-radius:12px;
  padding:26px;
  box-shadow:0 14px 30px rgba(0,0,0,.20);
  color:var(--text);
}
.stat-card h3{font-size:44px;margin:0;color:#1f4fa3}
.stat-card p{text-transform:uppercase;letter-spacing:1.2px;color:#354861;font-weight:900}
.action-buttons{display:flex;gap:14px;flex-wrap:wrap;margin:26px 0 36px}
.panel-box,.wide-box,.case-item,.pdf-item,.modal-content{
  background:linear-gradient(180deg,#ffffff,#f0f4f9);
  border:1px solid #c6d1df;
  border-radius:12px;
  padding:24px;
  box-shadow:0 16px 36px rgba(0,0,0,.22);
  color:var(--text);
}
.wide-box{margin-bottom:24px}
.panel-box h3,.wide-box h3,.case-item h4,.pdf-item h4{
  color:#102033;
  text-transform:uppercase;
  letter-spacing:1.4px;
  margin-top:0;
}
.case-item{margin-bottom:18px;border-left:4px solid var(--blue)}
.case-item small{color:var(--muted)}
.panel-box input,.panel-box textarea,.panel-box select,.error-box input,input,textarea,select{
  width:100%;padding:13px 14px;margin:9px 0 14px;border-radius:8px;
  border:1px solid #b9c6d8;background:#fff;color:#102033;outline:none;font-family:inherit;font-size:14px;
}
.panel-box input:focus,.panel-box textarea:focus,.panel-box select:focus,input:focus,textarea:focus,select:focus{border-color:var(--blue-2);box-shadow:0 0 0 3px rgba(43,111,214,.16)}
textarea{min-height:110px;resize:vertical}
.check{display:flex;gap:10px;align-items:center;color:var(--muted);margin:10px 0}.check input{width:auto;margin:0}.oculto{display:none!important}

/* MAPA */
.mapa-gta{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  min-height:0;
  max-height:none;
  overflow:hidden;
  border-radius:14px;
  border:1px solid #aeb8c6;
  background:#dfe5ec;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.75),0 14px 28px rgba(24,34,48,.14);
}
.mapa-img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  background:#dfe5ec;
  filter:contrast(104%) saturate(96%);
  z-index:1;
}
.pin,.map-pin{
  position:absolute;
  transform:translate(-50%,-50%);
  z-index:5;
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:2px solid #fff;
  background:#1f4fa3;
  color:white;
  font-size:15px;
  line-height:1;
  box-shadow:0 6px 16px rgba(0,0,0,.38);
  cursor:pointer;
}
.pin-acusado{background:#8f2631}.pin-expediente{background:#234f9f}
.mapa-boton-centro{display:flex;justify-content:center;gap:12px;margin:14px 0;flex-wrap:wrap}

/* POPUPS Y MODAL */
.panel-popup,.modal{position:fixed;inset:0;background:rgba(7,18,34,.76);backdrop-filter:blur(5px);z-index:2000;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:60px 20px}.modal{z-index:1900}.panel-popup .accion-panel{display:block!important;max-width:820px;width:100%;position:relative}.popup-close,.close-modal{border:0;background:#10233c;color:#fff;border-radius:8px;padding:10px 14px;cursor:pointer}.popup-close{position:fixed;top:22px;right:28px;width:44px;height:44px;border-radius:50%;font-size:20px}.close-modal{float:right}.modal-content{max-width:1100px;width:100%}.visor-pdf{width:100%;height:480px;border:1px solid #b9c6d8;border-radius:8px;background:white}.capturado-card{opacity:.78;filter:grayscale(45%)}

/* LOGIN / ERROR */
.error-login-page{min-height:calc(100vh - 90px);display:flex;align-items:center;justify-content:center;padding:40px;background:linear-gradient(rgba(8,19,36,.88),rgba(8,19,36,.96)),url("/img/doj/hero-operativo.png");background-size:cover;background-position:center}.error-box{max-width:540px;width:100%;background:linear-gradient(180deg,#fff,#eef2f7);border:1px solid #c6d1df;border-top:5px solid var(--blue);border-radius:14px;padding:36px;text-align:center;color:var(--text);box-shadow:0 22px 52px rgba(0,0,0,.45)}.error-box h1{letter-spacing:2px;text-transform:uppercase;color:#102033}.error-box p{color:var(--muted)}.error-box a{display:block;margin-top:12px;color:#1f4fa3;text-decoration:none;font-weight:900}.secondary-error{color:#52627a!important}

@media(max-width:850px){
  .topbar{padding:12px 18px;align-items:flex-start;flex-direction:column}.hero-real{padding:45px 25px;min-height:520px}.hero-content h2{font-size:42px}.cards{padding:30px}.panel{padding:48px;max-width:1500px;margin:auto;background:rgba(246,247,249,.72);min-height:100vh}.brand h1{font-size:18px;letter-spacing:2px}nav a{font-size:12px;padding:9px 11px}.mapa-gta{aspect-ratio:16/9}.mapa-img{height:100%}.panel-title{font-size:42px;text-transform:uppercase;letter-spacing:2px;margin:0 0 8px;color:#182230;text-shadow:none}
}


/* CONSULTAS / DENUNCIAS */
.consulta-section{padding:70px 30px;background:linear-gradient(180deg,#f8fafc,#e4e8ee);text-align:center;color:var(--text);border-top:1px solid var(--line)}
.consulta-section h2{margin:0 0 14px;font-size:34px;text-transform:uppercase;letter-spacing:2px;color:#182230}
.consulta-section p{max-width:850px;margin:0 auto 28px;color:var(--muted);line-height:1.7}
.consulta-form{max-width:900px;margin:0 auto;background:#fff;border:1px solid #c8d0da;border-top:5px solid var(--gold);border-radius:10px;padding:26px;box-shadow:0 18px 36px rgba(24,34,48,.14);text-align:left}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.consulta-form input,.consulta-form textarea,.consulta-form select{width:100%;padding:13px 14px;margin:8px 0 14px;border-radius:6px;border:1px solid #b9c6d8;background:#fff;color:#182230;font-family:inherit}
.consulta-form button{background:linear-gradient(180deg,#3f4752,#222831);border-color:#b89b5b;color:#fff!important}
.denuncia-card{border-left:5px solid var(--gold)}
.estado-nueva{display:inline-flex;padding:5px 9px;border-radius:999px;background:#fff3cd;color:#684f13;font-weight:900;font-size:12px;text-transform:uppercase}

/* AJUSTE FINAL DOJ */
.action-buttons button,.login-btn,.hero-buttons a{background:linear-gradient(180deg,#404852,#20262e)!important;border-color:#a88743!important;color:#fff!important;}
.action-buttons button:hover,.login-btn:hover,.hero-buttons a:hover{background:linear-gradient(180deg,#5a6471,#303841)!important;border-color:#c6aa69!important;}
.consulta-form{border-top-color:#a88743!important;}
#respuestaDenuncia.ok{color:#247052!important;}
#respuestaDenuncia.error{color:#8f2d2d!important;}


/* Consultas pendientes y cartas */
.mini-alert{
    display:none;
    align-items:center;
    justify-content:center;
    min-width:22px;
    height:22px;
    margin-left:8px;
    padding:0 7px;
    border-radius:999px;
    background:#b68a2d;
    color:#ffffff;
    font-size:12px;
    font-weight:900;
    box-shadow:0 2px 8px rgba(0,0,0,.25);
}
.btn-secundario-federal{
    margin-left:10px;
    background:linear-gradient(180deg,#3b4452,#1f2937)!important;
    border:1px solid #b68a2d!important;
    color:#fff!important;
}
.denuncia-card p:nth-of-type(n+4){
    display:none;
}
.denuncia-card.denuncia-abierta p{
    display:block;
}
.denuncia-actions{
    margin-top:16px;
    align-items:center;
}
.denuncia-actions select{
    min-width:260px;
    padding:12px;
    border:1px solid #b9c4d6;
    border-radius:6px;
    background:#f6f8fb;
    color:#162033;
    font-weight:700;
}


/* ===============================
   AJUSTE FEDERAL GRIS + IMÁGENES REALES
=============================== */
body{
    background:#14171c;
    color:#172033;
}
body::before{
    background:linear-gradient(rgba(17,20,25,.90),rgba(17,20,25,.94)),url('/img/doj/operativo-1.webp');
    background-size:cover;
    background-position:center;
}
.topbar{
    background:linear-gradient(180deg,#eef2f6,#d7dde6)!important;
    border-bottom:3px solid #a57d2a!important;
    box-shadow:0 8px 28px rgba(0,0,0,.28)!important;
}
.brand h1{color:#111827!important;letter-spacing:4px;}
.brand span{color:#43516a!important;}
nav a,
.action-buttons button,
.hero-buttons a,
.card a,
.banner a,
.panel-box button,
.mapa-boton-centro button,
.case-actions button{
    background:linear-gradient(180deg,#2f3540,#171b22)!important;
    color:#fff!important;
    border:1px solid #b48a35!important;
    border-radius:8px!important;
    box-shadow:0 7px 16px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.18)!important;
}
nav a:hover,
.action-buttons button:hover,
.hero-buttons a:hover,
.card a:hover,
.banner a:hover,
.panel-box button:hover,
.mapa-boton-centro button:hover,
.case-actions button:hover{
    background:linear-gradient(180deg,#b48a35,#7d5b1a)!important;
    transform:translateY(-1px);
}
.login-btn{background:linear-gradient(180deg,#b48a35,#7d5b1a)!important;color:#fff!important;}
.hero-real{
    background:linear-gradient(90deg,rgba(11,14,19,.78),rgba(17,20,25,.58)),url('/img/doj/operativo-2.webp')!important;
    background-size:cover!important;
    background-position:center!important;
    border-bottom:3px solid #b48a35!important;
}
.hero-content{border-left:5px solid #b48a35!important;}
.badge{background:rgba(238,242,246,.92)!important;color:#18202e!important;border:1px solid #b48a35!important;}
.info-section,.consulta-section,.banner,.cards,.panel,.wide-box,.panel-box,.stat-card,.case-item,.modal-content{
    background:linear-gradient(180deg,rgba(246,248,251,.96),rgba(226,232,240,.96))!important;
    color:#111827!important;
    border-color:#c8a24a!important;
}
.info-section h2,.consulta-section h2,.panel-title,.wide-box h3,.panel-box h3,.card h3{color:#101827!important;}
.info-section p,.consulta-section p,.card p,.panel-subtitle{color:#334155!important;}
.card{background:#f8fafc!important;border:1px solid #c9d2df!important;border-radius:14px!important;box-shadow:0 20px 45px rgba(0,0,0,.22)!important;}
.card img{filter:contrast(1.05) saturate(.92) brightness(.82)!important;}
.card-media{position:relative;height:230px;overflow:hidden;border-bottom:1px solid #c8a24a;}
.card-media img{width:100%;height:100%;object-fit:cover;display:block;}
.card-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.68));}
.card-media span{position:absolute;left:18px;bottom:16px;z-index:2;color:white;font-weight:900;letter-spacing:2px;text-shadow:0 3px 10px #000;font-size:18px;}
.overlay-card > img{display:none;}
.consulta-form input,.consulta-form select,.consulta-form textarea,.panel-box input,.panel-box select,.panel-box textarea{
    background:#f8fafc!important;color:#111827!important;border:1px solid #aeb9c8!important;border-radius:8px!important;
}
.academy-status{padding:14px 18px;border-radius:10px;margin:18px auto;max-width:920px;font-weight:900;letter-spacing:1px;text-align:center;text-transform:uppercase;}
.academy-status.open{background:#e7f7ec;border:1px solid #28a455;color:#166534;}
.academy-status.closed{background:#f1f5f9;border:1px solid #94a3b8;color:#475569;}
.recruitment-section{border-top:4px solid #b48a35!important;}
.denuncia-extra-actions{margin-top:10px;display:flex;gap:10px;flex-wrap:wrap;}


/* =========================================================
FIX FINAL PANEL, RECLUTAMIENTO Y FORMULARIOS
========================================================= */
.reclutamiento-tools{margin:18px 0 20px!important;display:flex!important;gap:12px!important;flex-wrap:wrap!important;width:100%!important}
.reclutamiento-tools button{padding:14px 22px!important;border-radius:6px!important;border:1px solid #b4872f!important;background:linear-gradient(180deg,#242b35,#111827)!important;color:#fff!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:.7px!important;cursor:pointer!important;box-shadow:0 6px 14px rgba(0,0,0,.25)!important}
.reclutamiento-tools button.danger,.denuncia-actions button.danger{background:linear-gradient(180deg,#7a1f1f,#3b0d0d)!important;border-color:#c94b4b!important}
.public-form-section{width:100%!important;padding:45px 18px 75px!important;background:linear-gradient(180deg,#dfe6ef,#e9eef5)!important;display:block!important}
.public-form-box{width:100%!important;max-width:980px!important;margin:0 auto!important;padding:28px!important;background:#fff!important;border-top:4px solid #b4872f!important;border-radius:10px!important;box-shadow:0 20px 45px rgba(20,30,45,.20)!important;display:block!important}
.public-form-box .form-grid{width:100%!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important;align-items:start!important}
.public-form-box .form-grid input,.public-form-box .form-grid select,.public-form-box .form-grid textarea{width:100%!important;min-width:0!important;box-sizing:border-box!important;padding:15px 16px!important;border:1px solid #aebbd0!important;border-radius:7px!important;background:#f8fafc!important;color:#111827!important;font-size:14px!important}
.public-form-box .form-grid textarea{min-height:120px!important;resize:vertical!important}.public-form-box .form-grid .full{grid-column:1/-1!important}.academy-status{margin-bottom:20px!important;padding:14px!important;border-radius:7px!important;font-weight:900!important;text-align:center!important}.academy-status.open{color:#0b6b3a!important;background:#ecfdf3!important;border:1px solid #60b884!important}.academy-status.closed{color:#7a1f1f!important;background:#fff1f1!important;border:1px solid #d48a8a!important}@media(max-width:850px){.public-form-box .form-grid{grid-template-columns:1fr!important}}


/* GALERÍA PÚBLICA DOJ */
.galeria-publica-box{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    padding:55px 30px;
    background:rgba(5,16,31,.94);
    border-top:1px solid #b08d2a;
    border-bottom:1px solid #b08d2a;
}
.galeria-slide{
    width:min(1000px,90vw);
    background:linear-gradient(180deg,#071b35,#050b14);
    border:1px solid #b08d2a;
    border-radius:12px;
    overflow:hidden;
    text-align:center;
    box-shadow:0 18px 45px rgba(0,0,0,.55);
}
.galeria-slide img{
    width:100%;
    height:520px;
    object-fit:cover;
    display:block;
}
.galeria-slide h3{
    color:#f5d76e;
    text-transform:uppercase;
    letter-spacing:1px;
    font-size:26px;
    margin:22px 20px 8px;
}
.galeria-slide p{
    color:#d8c78a;
    margin:0 30px 28px;
    line-height:1.6;
}
.galeria-nav{
    width:58px;
    height:58px;
    border-radius:50%;
    border:2px solid #f5d76e;
    background:linear-gradient(180deg,#0b2a50,#030912);
    color:#f5d76e;
    font-size:44px;
    cursor:pointer;
    line-height:1;
}
.galeria-nav:hover{box-shadow:0 0 20px rgba(245,215,110,.4);}
@media(max-width:800px){.galeria-publica-box{gap:10px;padding:25px 10px}.galeria-slide img{height:260px}.galeria-nav{width:42px;height:42px;font-size:30px}}

.panel-grid-mini{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;}
.modal-caso{z-index:999999!important;align-items:flex-start!important;padding-top:35px!important;}
.modal-content{z-index:1000000!important;position:relative!important;}

/* FIX MODALES CENTRADOS */
.modal-caso{position:fixed!important;inset:0!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:24px!important;background:rgba(4,12,24,.72)!important;z-index:99999!important;}
.modal-caso.oculto{display:none!important;}
.modal-content{width:min(1100px,92vw)!important;max-height:88vh!important;overflow:auto!important;margin:0!important;background:#e9eef5!important;color:#101826!important;border:1px solid #c79b31!important;border-radius:10px!important;box-shadow:0 25px 90px rgba(0,0,0,.45)!important;}
.panel-popup{position:fixed!important;inset:0!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:24px!important;background:rgba(4,12,24,.72)!important;z-index:99998!important;}
.panel-popup .panel-box{width:min(900px,92vw)!important;max-height:88vh!important;overflow:auto!important;margin:0!important;}
/* FIX CAMPOS VISIBLES */
.panel-box input,.panel-box textarea,.panel-box select,.sub-panel input,.sub-panel textarea,.sub-panel select{color:#111!important;background:#eef4ff!important;border:1px solid #8aa0b8!important;}


/* === FIX DEFINITIVO MODAL EXPEDIENTE CENTRADO === */
.modal-expediente{
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px !important;
  background: rgba(4,12,24,.72) !important;
  backdrop-filter: blur(5px) !important;
  z-index: 999999 !important;
  overflow: auto !important;
}
.modal-expediente.oculto{display:none!important;}
.modal-expediente .modal-content{
  width: min(1050px, 92vw) !important;
  max-height: 88vh !important;
  overflow: auto !important;
  margin: auto !important;
  position: relative !important;
  background: #eef3f9 !important;
  color: #101826 !important;
  border: 1px solid #c79b31 !important;
  border-radius: 12px !important;
  padding: 28px !important;
  box-shadow: 0 25px 90px rgba(0,0,0,.55) !important;
}
.modal-expediente .modal-close{
  position:absolute!important;top:18px!important;right:18px!important;
  width:44px!important;height:44px!important;border-radius:8px!important;
  border:1px solid #b9c6d8!important;background:#f5f8fc!important;color:#101826!important;
  font-size:18px!important;font-weight:900!important;cursor:pointer!important;
}
.modal-expediente .pdf-item,.modal-expediente .case-item{
  background:#f8fbff!important;color:#101826!important;border:1px solid #d1dbe8!important;
}


/* ===============================
   CÓDIGO PENAL DOJ
   =============================== */
.codigo-hero{min-height:460px;background:linear-gradient(90deg,rgba(8,19,36,.97),rgba(15,34,58,.75)),url('/img/doj/hero-edificio.png');background-size:cover;background-position:center}
.codigo-toolbar{display:flex;gap:14px;flex-wrap:wrap;padding:25px 45px;background:#f8fafc;border-bottom:1px solid var(--line);position:sticky;top:97px;z-index:50;box-shadow:0 10px 25px rgba(24,34,48,.08)}
.codigo-toolbar input,.codigo-toolbar select{flex:1;min-width:260px;padding:14px 16px;border:1px solid #b9c5d3;border-radius:6px;background:white;color:#182230;font-weight:700}
.codigo-layout{display:grid;grid-template-columns:300px 1fr;gap:25px;padding:35px;background:#eef2f7;align-items:start}
.codigo-indice{position:sticky;top:180px;background:linear-gradient(180deg,#fff,#f2f5f9);border:1px solid #c8d2df;border-left:5px solid var(--gold);border-radius:10px;padding:20px;max-height:75vh;overflow:auto;box-shadow:0 12px 26px rgba(12,26,45,.12)}
.codigo-indice h3{margin-top:0;text-transform:uppercase;color:#102033;letter-spacing:1px}.codigo-indice a{display:block;padding:9px 0;color:#34445a;text-decoration:none;border-bottom:1px solid #e2e8f0;font-weight:800;font-size:13px}.codigo-indice a:hover{color:var(--gold)}
.codigo-main{min-width:0}.codigo-titulo{background:linear-gradient(180deg,#1f2b3b,#141b25);color:white;border-top:4px solid var(--gold);padding:24px;margin:0 0 18px;border-radius:10px;text-align:center}.codigo-titulo h2{margin:0;text-transform:uppercase;letter-spacing:2px}
.codigo-capitulo{background:#fff;border:1px solid #c8d2df;border-left:5px solid var(--blue);padding:18px 22px;margin:18px 0;border-radius:10px}.codigo-capitulo h3{margin:0;color:#102033;text-transform:uppercase;letter-spacing:1px}
.codigo-articulo{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #cad4e1;border-radius:10px;margin:16px 0;padding:22px;box-shadow:0 10px 22px rgba(12,26,45,.10)}
.codigo-art-head{display:flex;gap:16px;align-items:center;border-bottom:1px solid #e2e8f0;padding-bottom:12px;margin-bottom:14px}.codigo-art-head span{background:#1f2b3b;color:#fff;border:1px solid var(--gold);border-radius:6px;padding:8px 12px;font-weight:900;white-space:nowrap}.codigo-art-head h3{margin:0;color:#102033;font-size:22px}.codigo-articulo p{line-height:1.7;color:#3d4652}.codigo-datos{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.codigo-datos b{color:#102033}.codigo-datos{background:#eef2f7;border:1px solid #d3dce8;border-radius:6px;padding:10px 12px;color:#4b5563;font-weight:700}
#panelCodigoPenal textarea{min-height:110px}#listaCodigoPenalAdmin{margin-top:20px}#cpBuscarAdmin{width:100%;padding:14px;margin:15px 0;border:1px solid #b9c5d3;border-radius:6px}
@media(max-width:900px){.codigo-layout{grid-template-columns:1fr}.codigo-indice{position:relative;top:0;max-height:none}.codigo-toolbar{top:0}.codigo-art-head{align-items:flex-start;flex-direction:column}}
