a:link, a:visited, a:hover, a:active{
  text-decoration: none !important;
}

.rounded, .select2-selection, .bootstrap-tagsinput, .bootstrap-tagsinput > .badge{
	border-radius:8px !important;
}

.rounded-start,  .select2-selection, .bootstrap-tagsinput, .bootstrap-tagsinput > .badge{
	border-top-left-radius: 8px !important;
    border-bottom-left-radius: 8px !important;
}

.rounded-end,  .select2-selection, .bootstrap-tagsinput, .bootstrap-tagsinput > .badge{
	border-top-right-radius: 8px !important;
    border-bottom-right-radius: 8px !important;
}

.rounded-top,  .select2-selection, .bootstrap-tagsinput, .bootstrap-tagsinput > .badge{
	border-top-left-radius: 8px !important;
    border-top-right-radius: 8px !important;
}

.rounded-bottom,  .select2-selection, .bootstrap-tagsinput, .bootstrap-tagsinput > .badge{
	border-bottom-left-radius: 8px !important;
    border-bottom-right-radius: 8px !important;
}

.backgroundImage{
	width: 100%;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	position: relative;
	z-index: 1;
}

.form-check-input{
  width: 1.2em !important;
  height: 1.2em !important;
}

.form-check-input:active,.form-check-input:focus,.btn{
  outline:0 !important;
  box-shadow: none !important;
}

.list-group-item {
  border:0px !important;
}

/*=============================================
Campo con leyenda flotante (field-box)
=============================================*/

.field-box{
  position: relative;
  border: 1px solid #ced4da;
  border-radius: 8px;
  padding: .7rem .85rem .55rem;
  margin-bottom: 1rem;
}

.field-box .field-box-label{
  position: absolute;
  top: -.6rem;
  left: .65rem;
  background-color: #fff;
  padding: 0 .4rem;
  font-size: .72rem;
  color: #6c757d;
  white-space: nowrap;
}

.field-box .form-control,
.field-box .form-select{
  border: 0 !important;
  padding: .25rem 0 !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

.field-box-caption{
  font-size: .78rem;
  margin-top: -.5rem;
  margin-bottom: 1rem;
}

#subscriberMap{
  height: 320px;
  border-radius: 8px;
  z-index: 0;
}

.subscriber-marker-label{
  font-size: .75rem;
  font-weight: 600;
  padding: .15rem .5rem;
  border-radius: 6px;
}


/*=============================================
Catálogo CCPET: ingresos en azul, gastos en ámbar.
Tonos suaves y de bajo contraste en el fondo, texto
oscuro legible; azul/ámbar se distinguen también
con daltonismo. Variante para .dark-mode.
=============================================*/

.ccpet-ingresos{
  --ccpet-l1-bg:#d6e2f3; --ccpet-l1-fg:#1b2f52;
  --ccpet-l2-bg:#e1e9f6; --ccpet-l2-fg:#1f3660;
  --ccpet-l3-bg:#eaf0f9; --ccpet-l3-fg:#26406e;
  --ccpet-l4-bg:#f2f6fb; --ccpet-l4-fg:#2b4775;
  --ccpet-l5-bg:#f8fafd; --ccpet-l5-fg:#334e7c;
  --ccpet-accent:#3b5f9e;
  --ccpet-accent-fg:#ffffff;
  --ccpet-soft-bg:#f2f6fb;
  --ccpet-soft-border:#d6e2f3;
}

.ccpet-gastos{
  --ccpet-l1-bg:#f3e4cf; --ccpet-l1-fg:#4a3010;
  --ccpet-l2-bg:#f6eadb; --ccpet-l2-fg:#553713;
  --ccpet-l3-bg:#f9f0e5; --ccpet-l3-fg:#5e3e17;
  --ccpet-l4-bg:#fbf6ef; --ccpet-l4-fg:#68451a;
  --ccpet-l5-bg:#fdfaf6; --ccpet-l5-fg:#704b1d;
  --ccpet-accent:#9a6224;
  --ccpet-accent-fg:#ffffff;
  --ccpet-soft-bg:#fbf6ef;
  --ccpet-soft-border:#f3e4cf;
}

.dark-mode .ccpet-table{
  --bs-table-bg:transparent;
  --bs-table-color:#d9dee7;
}

.dark-mode .ccpet-ingresos{
  --ccpet-l1-bg:rgba(110,150,215,.26); --ccpet-l1-fg:#d6e3f8;
  --ccpet-l2-bg:rgba(110,150,215,.20); --ccpet-l2-fg:#d0def5;
  --ccpet-l3-bg:rgba(110,150,215,.15); --ccpet-l3-fg:#c9d8f1;
  --ccpet-l4-bg:rgba(110,150,215,.10); --ccpet-l4-fg:#c3d3ee;
  --ccpet-l5-bg:rgba(110,150,215,.06); --ccpet-l5-fg:#bdcfeb;
  --ccpet-accent:#8fb0e6;
  --ccpet-accent-fg:#0f1a2e;
  --ccpet-soft-bg:rgba(110,150,215,.12);
  --ccpet-soft-border:rgba(110,150,215,.35);
}

.dark-mode .ccpet-gastos{
  --ccpet-l1-bg:rgba(214,160,90,.24); --ccpet-l1-fg:#f3e1c6;
  --ccpet-l2-bg:rgba(214,160,90,.18); --ccpet-l2-fg:#efdbbd;
  --ccpet-l3-bg:rgba(214,160,90,.13); --ccpet-l3-fg:#ebd5b5;
  --ccpet-l4-bg:rgba(214,160,90,.09); --ccpet-l4-fg:#e7cfad;
  --ccpet-l5-bg:rgba(214,160,90,.05); --ccpet-l5-fg:#e3caa6;
  --ccpet-accent:#deb27a;
  --ccpet-accent-fg:#2a1a06;
  --ccpet-soft-bg:rgba(214,160,90,.12);
  --ccpet-soft-border:rgba(214,160,90,.35);
}

.ccpet-table tr.ccpet-l1 > td{ background-color:var(--ccpet-l1-bg); color:var(--ccpet-l1-fg); }
.ccpet-table tr.ccpet-l2 > td{ background-color:var(--ccpet-l2-bg); color:var(--ccpet-l2-fg); }
.ccpet-table tr.ccpet-l3 > td{ background-color:var(--ccpet-l3-bg); color:var(--ccpet-l3-fg); }
.ccpet-table tr.ccpet-l4 > td{ background-color:var(--ccpet-l4-bg); color:var(--ccpet-l4-fg); }
.ccpet-table tr.ccpet-l5 > td{ background-color:var(--ccpet-l5-bg); color:var(--ccpet-l5-fg); }

.ccpet-table .badge{ font-size:11px; font-weight:600; }

.ccpet-table .ccpet-badge-level{
  background-color:var(--ccpet-soft-bg);
  color:var(--ccpet-accent);
  border:1px solid var(--ccpet-soft-border);
}

.ccpet-table .ccpet-badge-a{
  background-color:var(--ccpet-accent);
  color:var(--ccpet-accent-fg);
}

.ccpet-table .ccpet-badge-c{
  background-color:transparent;
  color:var(--ccpet-accent);
  border:1px solid var(--ccpet-accent);
}

.ccpet-tab-ingresos{ color:#3b5f9e; }
.ccpet-tab-gastos{ color:#9a6224; }
.dark-mode .ccpet-tab-ingresos{ color:#8fb0e6; }
.dark-mode .ccpet-tab-gastos{ color:#deb27a; }

/*=============================================
Movimientos Presupuestales: tipos de movimiento
en tonos suaves, con variante para .dark-mode
=============================================*/

.mov-tipo{
  display:inline-block;
  padding:.2em .6em;
  border-radius:.375rem;
  font-size:11px;
  font-weight:600;
  border:1px solid transparent;
  background-color:var(--mov-bg);
  color:var(--mov-fg);
  border-color:var(--mov-border);
}

.mov-adicion        { --mov-bg:#e3f1e7; --mov-fg:#1e5631; --mov-border:#c3e0cb; }
.mov-reduccion      { --mov-bg:#f6e3e3; --mov-fg:#7a2626; --mov-border:#ebc9c9; }
.mov-credito        { --mov-bg:#e1e9f6; --mov-fg:#1f3660; --mov-border:#c6d5ee; }
.mov-contracredito  { --mov-bg:#f6eadb; --mov-fg:#5e3e17; --mov-border:#ebd5b8; }
.mov-aplazamiento   { --mov-bg:#e9eaee; --mov-fg:#33384a; --mov-border:#d2d5dd; }
.mov-desaplazamiento{ --mov-bg:#dff0f2; --mov-fg:#1c5059; --mov-border:#c0e0e4; }
.mov-otro           { --mov-bg:#eeeeee; --mov-fg:#444444; --mov-border:#dddddd; }

.dark-mode .mov-adicion        { --mov-bg:rgba(95,180,120,.16);  --mov-fg:#bfe3c9; --mov-border:rgba(95,180,120,.35); }
.dark-mode .mov-reduccion      { --mov-bg:rgba(215,110,110,.16); --mov-fg:#f0c4c4; --mov-border:rgba(215,110,110,.35); }
.dark-mode .mov-credito        { --mov-bg:rgba(110,150,215,.16); --mov-fg:#cddcf5; --mov-border:rgba(110,150,215,.35); }
.dark-mode .mov-contracredito  { --mov-bg:rgba(214,160,90,.16);  --mov-fg:#efdbbd; --mov-border:rgba(214,160,90,.35); }
.dark-mode .mov-aplazamiento   { --mov-bg:rgba(170,175,190,.14); --mov-fg:#d6d9e2; --mov-border:rgba(170,175,190,.32); }
.dark-mode .mov-desaplazamiento{ --mov-bg:rgba(90,180,195,.16);  --mov-fg:#bfe4ea; --mov-border:rgba(90,180,195,.35); }
.dark-mode .mov-otro           { --mov-bg:rgba(200,200,200,.12); --mov-fg:#dddddd; --mov-border:rgba(200,200,200,.3); }

/* Tarjetas de totales: el valor toma el color de texto del tipo */
.mov-total{
  border:1px solid var(--mov-border);
  border-left:4px solid var(--mov-fg);
  border-radius:.375rem;
  padding:.75rem 1rem;
  height:100%;
}
.mov-total .mov-total-label{ font-size:12px; opacity:.75; }
.mov-total .mov-total-value{ font-weight:700; color:var(--mov-fg); font-size:1rem; }

/* Franja de movimiento neto */
.mov-neto{
  border:1px solid var(--mov-border);
  background-color:var(--mov-bg);
  color:var(--mov-fg);
  border-radius:.375rem;
  padding:.6rem 1rem;
  font-size:13px;
}

/*=============================================
Modal de Movimientos: secciones de detalle con la paleta
de la sección (.ccpet-ingresos / .ccpet-gastos)
=============================================*/

.mov-seccion{ border-color:var(--ccpet-soft-border); }
.mov-seccion .mov-seccion-header{ background-color:var(--ccpet-l1-bg); color:var(--ccpet-l1-fg); border-bottom:0; }
.mov-detalle thead th{ background-color:var(--ccpet-l4-bg); color:var(--ccpet-l1-fg); font-weight:600; font-size:12px; border-bottom:1px solid var(--ccpet-soft-border); white-space:nowrap; }
.dark-mode .mov-detalle{ --bs-table-bg:transparent; color:#d9dee7; }

#myMovements .select2-container--bootstrap4 .select2-selection--single, #myScdps .select2-container--bootstrap4 .select2-selection--single{ height:calc(1.5em + .5rem + 2px) !important; font-size:.875rem; }
#myMovements .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered, #myScdps .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered{ line-height:calc(1.5em + .5rem); padding-left:.5rem; }
#myMovements .select2-container--bootstrap4 .select2-selection__arrow, #myScdps .select2-container--bootstrap4 .select2-selection__arrow{ height:calc(1.5em + .5rem) !important; }
#myMovements .select2-results__option, #myScdps .select2-results__option{ font-size:.85rem; }

/* Modal de Movimientos más ancho: hasta 95% de la pantalla (máx. 1600px) */
@media (min-width: 992px){
  #myMovements .mov-modal-dialog, #myScdps .mov-modal-dialog{ max-width:min(1600px, 95vw); }
  #myMovements .modal-dialog-scrollable .modal-content, #myScdps .modal-dialog-scrollable .modal-content{ max-height:calc(100vh - 2rem); }
}

/*=============================================
Ejecución Presupuestal: tabla ancha con scroll horizontal y
la columna de código fija a la izquierda
=============================================*/

.ejec-scroll{ max-height:75vh; overflow:auto; }
.ejec-tabla thead th{ position:sticky; top:0; z-index:2; white-space:nowrap; vertical-align:middle; }
.ejec-tabla .ejec-fija{ position:sticky; left:0; z-index:1; background-color:var(--bs-body-bg, #fff); }
.ejec-tabla thead .ejec-fija{ z-index:3; background-color:#212529; }
.ejec-tabla tfoot td{ position:sticky; bottom:0; background-color:#f8f9fa; }
.dark-mode .ejec-tabla .ejec-fija{ background-color:#1f2430; }
.dark-mode .ejec-tabla tfoot td{ background-color:#2a3040; }

/*=============================================
Panel de accesos: secciones plegables (submenús) con
tarjetas de acceso. El color sale del administrador
(backColor / textColor).
=============================================*/

.panel-seccion{
  border-radius:.6rem;
  overflow:hidden;
  background-color:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.08);
}

.panel-seccion-header{
  display:flex;
  align-items:center;
  gap:.75rem;
  width:100%;
  padding:.7rem 1rem;
  border:0;
  color:#fff !important;
  text-align:left;
  text-decoration:none;
  font-weight:700;
  font-size:1.05rem;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.panel-seccion-header:hover{ filter:brightness(1.08); color:#fff !important; }
.panel-seccion-header:focus-visible{ outline:3px solid rgba(255,255,255,.6); outline-offset:-3px; }

.panel-seccion-icono{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  flex:0 0 38px;
  border-radius:50%;
  background-color:#fff;
  border:2px solid rgba(255,255,255,.7);
  font-size:1.1rem;
}

.panel-seccion-titulo{ flex:1; }
.panel-seccion-flecha{ transition:transform .2s; }
.panel-seccion-header.collapsed .panel-seccion-flecha{ transform:rotate(-90deg); }

.panel-seccion-body{ padding:1rem; }

.panel-tile{
  position:relative;
  height:100%;
  border:1px solid #e3e6ec;
  border-radius:.5rem;
  background-color:#fff;
  transition:box-shadow .15s, transform .15s;
}
.panel-tile:hover{ box-shadow:0 4px 12px rgba(0,0,0,.1); transform:translateY(-2px); }

.panel-tile a{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  min-height:110px;
  padding:1rem .75rem;
  text-align:center;
  text-decoration:none;
}

.panel-tile-icono{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  border-radius:50%;
  border:3px solid currentColor;
  font-size:1.6rem;
}
.panel-tile-icono i{ line-height:1; }

.panel-tile-titulo{
  font-size:13px;
  color:#3d4a5c;
  line-height:1.25;
}

.panel-fav{
  position:absolute;
  top:.35rem;
  right:.4rem;
  z-index:2;
  border:0;
  background:transparent;
  color:#b5bcc8;
  font-size:1rem;
  line-height:1;
  padding:.2rem;
}
.panel-fav:hover{ color:#e0a800; }
.panel-fav.activo{ color:#e0a800; }

.dark-mode .panel-seccion{ background-color:#111827; box-shadow:none; border:1px solid #2a3344; }
.dark-mode .panel-tile{ background-color:#161e2e; border-color:#2a3344; }
.dark-mode .panel-tile-titulo{ color:#d9dee7; }
.dark-mode .panel-fav{ color:#5c6678; }
.dark-mode .panel-fav.activo, .dark-mode .panel-fav:hover{ color:#f0c14b; }

/*=============================================
Panel de Presupuesto con la paleta de la landing
(azul #1E63C4 -> #3A8EE6, verde #2FA84F, tinta #0F1B2D)
=============================================*/

.panel-landing{
  --pl-primary:#1E63C4;
  --pl-primary-2:#3A8EE6;
  --pl-primary-dark:#154A94;
  --pl-success:#2FA84F;
  --pl-ink:#0F1B2D;
  --pl-ink-2:#4A5A6E;
  --pl-border:#E4EBF3;
  --pl-bg-2:#F5F8FC;
  --pl-card:#FFFFFF;
  --pl-tint:rgba(30,99,196,.08);
  --pl-shadow:0 10px 30px rgba(15,27,45,.06);
  --pl-shadow-hover:0 18px 40px rgba(15,27,45,.12);
  font-family:"Manrope",system-ui,sans-serif;
}

.panel-landing .panel-seccion{
  border-radius:18px;
  background-color:var(--pl-card);
  border:1px solid var(--pl-border);
  box-shadow:var(--pl-shadow);
}

.panel-landing .panel-seccion-header{
  background:linear-gradient(120deg, var(--pl-primary), var(--pl-primary-2));
  font-family:"Poppins",system-ui,sans-serif;
  font-weight:600;
  font-size:1rem;
  letter-spacing:.06em;
  padding:.85rem 1.1rem;
}
.panel-landing .panel-seccion-header:hover{ filter:none; background:linear-gradient(120deg, var(--pl-primary-dark), var(--pl-primary)); }

.panel-landing .panel-seccion-icono{
  background:rgba(255,255,255,.95);
  border:0;
  color:var(--pl-primary);
  box-shadow:0 4px 12px rgba(15,27,45,.15);
}
.panel-landing .panel-icono-fav{ color:#E0A800; }

.panel-landing .panel-salir{ background:linear-gradient(120deg, #16283e, var(--pl-ink)); }
.panel-landing .panel-salir:hover{ background:linear-gradient(120deg, #1d3550, #16283e); }
.panel-landing .panel-salir .panel-seccion-icono{ color:var(--pl-ink); }

.panel-landing .panel-seccion-body{ background:var(--pl-bg-2); padding:1.1rem; }

.panel-landing .panel-tile{
  border:1px solid var(--pl-border);
  border-radius:12px;
  background-color:var(--pl-card);
  box-shadow:0 2px 6px rgba(15,27,45,.04);
}
.panel-landing .panel-tile:hover{ box-shadow:var(--pl-shadow-hover); border-color:rgba(30,99,196,.25); transform:translateY(-3px); }

.panel-landing .panel-tile-icono{
  border:0;
  background:linear-gradient(135deg, rgba(30,99,196,.12), rgba(47,168,79,.10));
  color:var(--pl-primary);
  box-shadow:inset 0 0 0 1px rgba(30,99,196,.16);
  font-size:1.45rem;
  transition:background .2s, color .2s;
}
.panel-landing .panel-tile:hover .panel-tile-icono{
  background:linear-gradient(120deg, var(--pl-primary), var(--pl-primary-2));
  color:#fff;
}

.panel-landing .panel-tile-titulo{ color:var(--pl-ink); font-weight:600; font-size:13.5px; }
.panel-landing .panel-tile:hover .panel-tile-titulo{ color:var(--pl-primary); }

.panel-landing .panel-fav.activo, .panel-landing .panel-fav:hover{ color:#E0A800; }

/* Subgrupos dentro de una sección (ej. Movimiento, Decretos) */
.panel-landing .panel-subgrupo{
  border:1px solid var(--pl-border);
  border-radius:12px;
  background-color:var(--pl-card);
  margin-bottom:1rem;
  overflow:hidden;
}
.panel-landing .panel-subgrupo:last-child{ margin-bottom:0; }
.panel-landing .panel-subgrupo-titulo{
  padding:.55rem 1rem;
  background-color:var(--pl-tint);
  border-bottom:1px solid var(--pl-border);
  color:var(--pl-primary-dark);
  font-family:"Poppins",system-ui,sans-serif;
  font-weight:600;
  font-size:12.5px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.panel-landing .panel-subgrupo-body{ padding:1rem; margin:0; }
.panel-landing .panel-subgrupo .panel-tile{ background-color:var(--pl-bg-2); }

.dark-mode .panel-landing{
  --pl-card:#111a2b;
  --pl-bg-2:#0d1524;
  --pl-border:#22314a;
  --pl-ink:#e6ecf5;
  --pl-shadow:none;
  --pl-shadow-hover:0 12px 30px rgba(0,0,0,.4);
}
.dark-mode .panel-landing .panel-tile-icono{ color:#8fb3ef; background:rgba(58,142,230,.14); box-shadow:inset 0 0 0 1px rgba(58,142,230,.28); }
.dark-mode .panel-landing .panel-tile:hover .panel-tile-titulo{ color:#8fb3ef; }
.dark-mode .panel-landing .panel-subgrupo-titulo{ color:#8fb3ef; background-color:rgba(58,142,230,.12); }
.dark-mode .panel-landing .panel-salir{ background:linear-gradient(120deg, #22324a, #1a2638); }
.dark-mode .panel-landing .panel-salir .panel-seccion-icono{ color:#16283e; }
