/* =====================================================================
   Boletín Jurídico — Sistema visual (Manual de Marca González Páez)
   Navy #1B2337 · Dorado #EBC480 / #B89255 · Crema #F7F4EE
   ===================================================================== */
:root{
  --bj-navy:#1B2337; --bj-navy2:#374463; --bj-gold:#EBC480; --bj-gold-d:#B89255;
  --bj-cream:#F7F4EE; --bj-cream2:#F4F2EC; --bj-ink:#2A2F3D; --bj-muted:#6F7689;
  --bj-line:#E5E5E0; --bj-ok:#4F7A4D; --bj-amber:#D8A93E;
  --bj-ff-d:'Montserrat',sans-serif; --bj-ff-b:'Lato','Segoe UI',sans-serif;
}
body{background:#F2F3F5;font-family:var(--bj-ff-b);color:var(--bj-ink);}
.bj-wrap{max-width:100%;width:100%;margin:0;padding:16px 24px 90px;box-sizing:border-box;}
@media(max-width:640px){.bj-wrap{padding:12px 12px 70px;}}
/* Tabla responsiva: scroll horizontal en pantallas estrechas */
.bj-card-b{overflow-x:auto;-webkit-overflow-scrolling:touch;}
table.bj-tbl{min-width:760px;}

/* Breadcrumb */
.bj-bc{font-size:13px;color:var(--bj-muted);margin:6px 0 14px;}
.bj-bc a{color:var(--bj-muted);text-decoration:none;}
.bj-bc a:hover{color:var(--bj-gold-d);}
.bj-bc .sep{margin:0 8px;color:#C7CDDC;}
.bj-bc .cur{color:var(--bj-navy);font-weight:600;}

/* Hero */
.bj-hero{position:relative;background:var(--bj-navy);background-image:linear-gradient(135deg,#1B2337 0%,#374463 100%);
  border-radius:16px;padding:30px 34px;color:#fff;overflow:hidden;border-bottom:4px solid var(--bj-gold);}
.bj-hero::after{content:"";position:absolute;right:26px;top:0;bottom:0;width:250px;
  background:url(../assets/marca/gp_watermark.png) no-repeat right center;background-size:contain;
  opacity:.6;pointer-events:none;}
.bj-hero .row1{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;position:relative;z-index:1;}
.bj-pill{display:inline-block;background:rgba(235,196,128,.16);color:var(--bj-gold);
  border:1px solid rgba(235,196,128,.4);padding:5px 14px;border-radius:999px;font-size:11px;
  letter-spacing:2px;text-transform:uppercase;font-weight:700;}
.bj-hero h1{font-family:var(--bj-ff-d);font-weight:800;font-size:30px;margin:12px 0 6px;line-height:1.15;}
.bj-hero h1 .g{color:var(--bj-gold);}
.bj-hero p{color:#C7CDDC;font-size:14px;margin:0;max-width:640px;}
.bj-hero-actions{display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:1;}

/* Botones */
.bj-btn{display:inline-flex;align-items:center;gap:8px;border:none;cursor:pointer;
  padding:11px 20px;border-radius:9px;font-family:var(--bj-ff-d);font-weight:700;font-size:13px;
  text-decoration:none;transition:.15s;}
.bj-btn-gold{background:var(--bj-gold);color:var(--bj-navy);}
.bj-btn-gold:hover{background:#f0d199;box-shadow:0 6px 16px rgba(235,196,128,.4);color:var(--bj-navy);}
.bj-btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4);}
.bj-btn-ghost:hover{background:rgba(255,255,255,.1);color:#fff;}
.bj-btn-navy{background:var(--bj-navy);color:#fff;}
.bj-btn-navy:hover{background:#2c3754;color:#fff;}
.bj-btn-outline{background:#fff;color:var(--bj-navy);border:1px solid var(--bj-line);}
.bj-btn-outline:hover{border-color:var(--bj-gold-d);color:var(--bj-gold-d);}
.bj-btn-sm{padding:7px 13px;font-size:12px;}
.bj-btn[disabled]{opacity:.5;cursor:not-allowed;}

/* KPIs */
.bj-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:18px 0;}
.bj-kpi{background:#fff;border-radius:12px;padding:16px;border-left:4px solid var(--bj-gold);
  box-shadow:0 2px 10px rgba(27,35,55,.05);cursor:pointer;transition:.15s;}
.bj-kpi:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(27,35,55,.1);}
.bj-kpi .n{font-family:var(--bj-ff-d);font-weight:800;font-size:26px;color:var(--bj-navy);line-height:1;}
.bj-kpi .l{font-size:11px;color:var(--bj-muted);text-transform:uppercase;letter-spacing:1px;margin-top:6px;}
.bj-kpi.is-active{background:var(--bj-navy);border-left-color:var(--bj-gold);}
.bj-kpi.is-active .n{color:var(--bj-gold);} .bj-kpi.is-active .l{color:#C7CDDC;}

/* Card / tabla */
.bj-card{background:#fff;border-radius:14px;box-shadow:0 2px 12px rgba(27,35,55,.06);overflow:hidden;}
.bj-card-h{padding:16px 22px;border-bottom:2px solid var(--bj-cream2);display:flex;
  justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;}
.bj-card-h h3{font-family:var(--bj-ff-d);font-weight:700;font-size:16px;color:var(--bj-navy);margin:0;}
.bj-card-b{padding:18px 22px;}
table.bj-tbl{width:100%;border-collapse:collapse;}
table.bj-tbl th{background:var(--bj-cream);color:var(--bj-navy);font-family:var(--bj-ff-d);
  font-size:12px;text-transform:uppercase;letter-spacing:.5px;padding:12px 14px;text-align:left;border-bottom:2px solid var(--bj-gold);}
table.bj-tbl td{padding:13px 14px;border-bottom:1px solid var(--bj-line);font-size:14px;vertical-align:middle;}
table.bj-tbl tr:hover td{background:#FBFAF6;}
.bj-num{font-family:var(--bj-ff-d);font-weight:800;color:var(--bj-gold-d);font-size:16px;}

/* Badges estado */
.bj-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:11px;
  font-weight:700;color:#fff;letter-spacing:.4px;text-transform:uppercase;}
.bj-chip{display:inline-block;padding:3px 9px;border-radius:6px;font-size:11px;font-weight:600;
  background:var(--bj-cream);color:var(--bj-navy);border:1px solid var(--bj-line);}
.bj-chip.ia{background:#EDE7F6;color:#5E35B1;border-color:#D1C4E9;}
.bj-chip.ok{background:#E8F5E9;color:#2E7D32;border-color:#C8E6C9;}
.bj-chip.warn{background:#FFF3E0;color:#B26A00;border-color:#FFE0B2;}

/* Filtros */
.bj-filters{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;}
.bj-filters .f{display:flex;flex-direction:column;gap:5px;}
.bj-filters label{font-size:11px;font-weight:700;color:var(--bj-muted);text-transform:uppercase;letter-spacing:.5px;}
.bj-filters select,.bj-inp{border:1px solid var(--bj-line);border-radius:8px;padding:9px 12px;
  font-size:13px;font-family:var(--bj-ff-b);color:var(--bj-ink);background:#fff;min-width:160px;}
.bj-filters select:focus,.bj-inp:focus{outline:none;border-color:var(--bj-gold-d);}

/* ---- Editor ---- */
.bj-grid{display:grid;grid-template-columns:1fr 360px;gap:18px;align-items:start;}
.bj-actions-bar{position:sticky;top:0;z-index:20;background:#fff;border:1px solid var(--bj-line);
  border-radius:12px;padding:12px 18px;display:flex;justify-content:space-between;
  align-items:center;gap:14px;flex-wrap:wrap;box-shadow:0 2px 10px rgba(27,35,55,.06);margin-bottom:16px;}
.bj-flow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.bj-flow .step{font-size:11px;color:var(--bj-muted);padding:4px 10px;border-radius:999px;
  background:var(--bj-cream);text-transform:uppercase;letter-spacing:.5px;font-weight:700;}
.bj-flow .step.on{background:var(--bj-navy);color:var(--bj-gold);}
.bj-flow .arr{color:#C7CDDC;font-size:11px;}
.bj-side .bj-card{margin-bottom:16px;}
.bj-fuente{border:1px solid var(--bj-line);border-radius:9px;padding:11px 13px;margin-bottom:10px;background:#fff;}
.bj-fuente.v{border-left:4px solid var(--bj-ok);background:#F6FBF6;}
.bj-fuente.p{border-left:4px solid var(--bj-amber);}
.bj-fuente .ref{font-weight:700;color:var(--bj-navy);font-size:13px;}
.bj-fuente .ent{font-size:11px;color:var(--bj-muted);margin-top:2px;}
.bj-fuente .ln{font-size:11px;}
.bj-fuente .ln a{color:var(--bj-navy2);}
.bj-tl{list-style:none;margin:0;padding:0;}
.bj-tl li{position:relative;padding:0 0 16px 22px;border-left:2px solid var(--bj-cream2);}
.bj-tl li:last-child{border-left-color:transparent;}
.bj-tl li::before{content:"";position:absolute;left:-7px;top:2px;width:12px;height:12px;
  border-radius:50%;background:var(--bj-gold);border:2px solid #fff;box-shadow:0 0 0 1px var(--bj-gold-d);}
.bj-tl .ac{font-weight:700;color:var(--bj-navy);font-size:12px;text-transform:uppercase;letter-spacing:.5px;}
.bj-tl .dt{font-size:11px;color:var(--bj-muted);}
.bj-tl .de{font-size:13px;color:var(--bj-ink);margin-top:3px;}
.bj-preview{border:1px solid var(--bj-line);border-radius:10px;background:#fff;padding:26px 32px;
  font-family:Georgia,'Times New Roman',serif;color:#2A2F3D;line-height:1.7;max-height:70vh;overflow:auto;}
.bj-preview h1,.bj-preview h2,.bj-preview h3{font-family:var(--bj-ff-d);color:var(--bj-navy);}
.bj-preview h2{border-bottom:1px solid var(--bj-gold);padding-bottom:5px;margin-top:22px;}
.bj-preview a{color:var(--bj-navy2);}
.bj-empty{text-align:center;padding:50px 20px;color:var(--bj-muted);}
.bj-empty i{font-size:42px;color:var(--bj-cream2);display:block;margin-bottom:12px;}
@media(max-width:1024px){.bj-grid{grid-template-columns:1fr;}.bj-kpis{grid-template-columns:repeat(3,1fr);}}
@media(max-width:640px){.bj-kpis{grid-template-columns:repeat(2,1fr);}}

/* =====================================================================
   SweetAlert2 — Tema Manual de Marca GPA (módulo Boletín)
   Navy #1B2337 · Dorado #EBC480/#B89255 · Montserrat/Lato
   (boletin.css solo se carga en las vistas del módulo → scope seguro)
   ===================================================================== */
.swal2-container{backdrop-filter:blur(2px);}
.swal2-container.swal2-backdrop-show{background:rgba(15,22,38,.55);}
.swal2-popup{
  border-radius:16px!important;padding:0 0 22px!important;overflow:hidden;
  font-family:var(--bj-ff-b)!important;color:var(--bj-ink);
  border-top:5px solid var(--bj-gold);
  box-shadow:0 18px 50px rgba(15,22,38,.32);width:34em;max-width:94vw;}
/* Modales con campos personalizados → mucho más anchos (los selects
   suelen tener texto largo, p. ej. «Replicar interno → web»).
   Nota: SweetAlert2 siempre inserta campos por defecto OCULTOS
   (#swal2-input/#swal2-select/#swal2-textarea), por eso se excluyen. */
.swal2-popup:has(.swal2-input:not(#swal2-input)){width:760px!important;max-width:94vw!important;}
.swal2-popup:has(.swal2-textarea:not(#swal2-textarea)){width:820px!important;max-width:94vw!important;}
/* Modales con el campo NATIVO de SweetAlert2 (input/select/textarea/file
   de `input:'text'` etc.): el placeholder por defecto está oculto con
   `display: none;`; si está ACTIVO (sin esa regla inline) → ensanchar. */
.swal2-popup:has(#swal2-input:not([style*="display: none"])),
.swal2-popup:has(#swal2-select:not([style*="display: none"])),
.swal2-popup:has(#swal2-file:not([style*="display: none"])){width:620px!important;max-width:94vw!important;}
.swal2-popup:has(#swal2-textarea:not([style*="display: none"])){width:760px!important;max-width:94vw!important;}
.swal2-popup::before{content:"";display:block;height:54px;
  background:linear-gradient(135deg,#1B2337 0%,#374463 100%);}
.swal2-popup .swal2-title{
  font-family:var(--bj-ff-d)!important;font-weight:800;color:var(--bj-navy);
  font-size:20px;line-height:1.25;padding:18px 28px 4px;margin:0;text-align:left;}
.swal2-popup .swal2-title::after{content:"";display:block;width:54px;height:3px;
  background:var(--bj-gold);border-radius:2px;margin-top:10px;}
.swal2-html-container{
  font-family:var(--bj-ff-b)!important;color:#374463;font-size:14px;line-height:1.6;
  padding:6px 28px 0!important;margin:8px 0 0!important;text-align:left!important;}

/* Campos de formulario uniformes (estilo .bj-inp) */
.swal2-popup .swal2-input,
.swal2-popup .swal2-select,
.swal2-popup .swal2-textarea,
.swal2-popup .swal2-file{
  box-sizing:border-box;width:calc(100% - 56px);margin:10px 28px 0;
  border:1px solid var(--bj-line)!important;border-radius:9px!important;
  box-shadow:none!important;background:#fff;color:var(--bj-ink);
  font-family:var(--bj-ff-b);font-size:14px;padding:11px 13px!important;height:auto;}
.swal2-popup .swal2-textarea{min-height:84px;}
.swal2-popup .swal2-select{appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2010%206'%3E%3Cpath%20fill='%23B89255'%20d='M0%200l5%206%205-6z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:10px;padding-right:34px!important;}
.swal2-popup .swal2-input:focus,
.swal2-popup .swal2-select:focus,
.swal2-popup .swal2-textarea:focus{
  border-color:var(--bj-gold-d)!important;
  box-shadow:0 0 0 3px rgba(235,196,128,.28)!important;outline:none;}
.swal2-popup .swal2-input::placeholder,
.swal2-popup .swal2-textarea::placeholder{color:#9A958A;}

/* Acciones / botones */
.swal2-actions{margin:20px 28px 0!important;gap:10px;justify-content:flex-end;}
.swal2-styled{
  font-family:var(--bj-ff-d)!important;font-weight:700!important;
  border-radius:9px!important;padding:11px 22px!important;font-size:13px!important;
  box-shadow:none!important;transition:.15s;}
.swal2-styled.swal2-confirm{background:var(--bj-navy)!important;color:#fff!important;}
.swal2-styled.swal2-confirm:hover{background:var(--bj-gold)!important;color:var(--bj-navy)!important;
  box-shadow:0 6px 16px rgba(235,196,128,.4)!important;}
.swal2-styled.swal2-cancel{background:#fff!important;color:var(--bj-navy)!important;
  border:1px solid var(--bj-line)!important;}
.swal2-styled.swal2-cancel:hover{border-color:var(--bj-gold-d)!important;color:var(--bj-gold-d)!important;}
.swal2-styled.swal2-deny{background:var(--bj-danger,#C24E3A)!important;color:#fff!important;}
.swal2-styled:focus{box-shadow:0 0 0 3px rgba(235,196,128,.4)!important;}
.swal2-loader{border-color:var(--bj-gold) transparent var(--bj-gold) transparent!important;}

/* Iconos en paleta de marca */
.swal2-icon.swal2-success{border-color:#7EB374;color:#4F7A4D;}
.swal2-icon.swal2-success [class^='swal2-success-line']{background-color:#4F7A4D;}
.swal2-icon.swal2-success .swal2-success-ring{border-color:rgba(79,122,77,.3);}
.swal2-icon.swal2-warning{border-color:#E8C36B;color:#D8A93E;}
.swal2-icon.swal2-error{border-color:#E0857A;color:#C24E3A;}
.swal2-icon.swal2-error [class^='swal2-x-mark-line']{background-color:#C24E3A;}
.swal2-icon.swal2-info,.swal2-icon.swal2-question{border-color:#7C87A3;color:var(--bj-navy);}

/* Validación / cerrar / título de progreso */
.swal2-validation-message{background:#FBEFE9!important;color:#C24E3A!important;
  font-family:var(--bj-ff-b);border-radius:8px;margin:14px 28px 0;}
.swal2-close{color:var(--bj-gold)!important;opacity:.85;}
.swal2-close:hover{color:#fff!important;opacity:1;}
.swal2-popup .swal2-image{border-radius:10px;margin:16px auto 0;}
@media(max-width:560px){
  .swal2-popup{width:96vw;}
  .swal2-popup .swal2-input,.swal2-popup .swal2-select,
  .swal2-popup .swal2-textarea,.swal2-popup .swal2-file{width:calc(100% - 36px);margin-left:18px;margin-right:18px;}
  .swal2-html-container{padding-left:18px!important;padding-right:18px!important;}
  .swal2-actions{margin-left:18px!important;margin-right:18px!important;}
}
