/* Tres presentaciones; ninguna altera datos, permisos ni estructura HTML. */
:root{--sis-font-size-body:14px;--sis-font-size-label:13px;--sis-font-size-table:13px;--sis-control-height:40px;--sis-tooltip-fondo:#101522;--sis-tooltip-texto:#fff}
/* La ayuda flotante tiene su propio par de contraste: el menú puede ser claro u oscuro. */
:is([data-tooltip],[data-tip])::after{background:var(--sis-tooltip-fondo)!important;color:var(--sis-tooltip-texto)!important}
.tooltip{--bs-tooltip-bg:var(--sis-tooltip-fondo);--bs-tooltip-color:var(--sis-tooltip-texto)}
.tooltip .tooltip-inner{background:var(--sis-tooltip-fondo)!important;color:var(--sis-tooltip-texto)!important}
.tooltip .tooltip-inner *{color:var(--sis-tooltip-texto)!important}
html{max-width:100%;overflow-x:clip;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{max-width:100%;min-width:0}
html[data-sis-theme] body{font-size:var(--sis-font-size-body);line-height:1.45}
html[data-sis-theme] label,.sis-formulario__etiqueta{font-size:var(--sis-font-size-label)}
html[data-sis-theme] table{font-size:var(--sis-font-size-table)}
/* :where() mantiene baja la especificidad del valor base. Así los contratos
   explícitos de cada tema (por ejemplo, el campo Gestalt de 56 px con etiqueta
   interior) pueden prevalecer sin !important. */
html[data-sis-theme] :where(input:not([type=checkbox]):not([type=radio]),select,textarea){min-height:var(--sis-control-height);font-size:14px}
html[data-sis-theme] button,html[data-sis-theme] .btn,html[data-sis-theme] [role="button"]{font-size:13px;line-height:1.25}
html[data-sis-theme] img,html[data-sis-theme] svg,html[data-sis-theme] video{max-width:100%}
html[data-sis-theme] img,html[data-sis-theme] video{height:auto}
html[data-sis-theme] textarea{resize:vertical}
html[data-sis-theme] dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
html[data-sis-theme] :where(button,a,[tabindex]):focus-visible{outline:2px solid var(--sis-color-primario,#3157d5);outline-offset:2px}
html[data-sis-theme] :where(input:not([type=checkbox]):not([type=radio]),select,textarea):focus-visible{outline:0;border-color:var(--sis-color-primario,#3157d5);box-shadow:0 0 0 2px color-mix(in srgb,var(--sis-color-primario,#3157d5) 10%,transparent)}
html[data-sis-theme] :where(.table-responsive,[class*="tabla-contenedor"],[class*="table-wrap"]){max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
html[data-sis-theme] :where(button,.btn,a[href],[role="button"],input,select,textarea){touch-action:manipulation}
html[data-sis-theme] :where(p,li,label,.alert,[role="alert"],[role="status"]){overflow-wrap:anywhere}
html[data-sis-theme] :where(main,.sis-app__contenido)[tabindex="-1"]:focus{outline:none}

.sis-saltar-contenido{
  position:fixed;
  z-index:2147483647;
  inset-block-start:max(8px,env(safe-area-inset-top));
  inset-inline-start:max(8px,env(safe-area-inset-left));
  max-width:calc(100vw - 16px);
  padding:10px 14px;
  border:2px solid var(--sis-color-primario,#2e6be6);
  border-radius:var(--sis-control-radius,8px);
  background:var(--sis-color-superficie,#fff);
  color:var(--sis-color-texto,#1c2333);
  font:600 14px/1.3 var(--sis-theme-font,"Segoe UI",Arial,sans-serif);
  transform:translateY(calc(-100% - 24px));
  transition:transform .12s ease-out;
}
.sis-saltar-contenido:focus{transform:translateY(0);outline:3px solid var(--sis-color-primario,#2e6be6);outline-offset:2px}

/* ============================================================
   FASE 2 — contrato visual transversal

   Estos tokens gobiernan tanto los componentes del framework como las
   pantallas históricas. No cambian estructura, datos ni permisos: solamente
   hacen que un tema sea una decisión completa, no una colección de parches.
   ============================================================ */
html[data-sis-theme]{
  --sis-control-padding-x:12px;
  --sis-control-radius:var(--sis-radio-md,10px);
  --sis-panel-radius:var(--sis-radio-md,10px);
  --sis-focus-ring:0 0 0 3px color-mix(in srgb,var(--sis-color-primario,#2e6be6) 16%,transparent);
  --sis-control-bg:var(--sis-color-superficie,#fff);
  --sis-control-disabled:var(--sis-color-superficie-alterna,#eef1f7);
  --sis-control-placeholder:var(--sis-color-texto-suave,#626b82);
  --sis-theme-font:var(--sis-fuente-base,"Segoe UI",Arial,sans-serif);
  --sis-color-sobre-primario:#fff;
  --sis-color-sobre-menu:#fff;
  /* Compatibilidad del portal nuevo: su estructura sigue usando nombres VC,
     pero los valores ya proceden de la misma fuente de verdad visual. */
  --vc-smoke:var(--sis-color-fondo,#f4f6fa);
  --vc-white:var(--sis-color-superficie,#fff);
  --vc-navy:var(--sis-color-menu-fondo,#151b2b);
  --vc-text:var(--sis-color-texto,#1c2333);
  --vc-gold:var(--sis-color-primario,#2e6be6);
  --vc-gold-text:var(--sis-color-primario-hover,#1f55c4);
  --vc-on-gold:var(--sis-color-sobre-primario,#fff);
  --vc-teal:var(--sis-color-secundario,#14b8a6);
  --vc-muted:var(--sis-color-texto-suave,#626b82);
  --vc-border:var(--sis-color-borde,#dfe5ee);
  --vc-danger:var(--sis-color-error,#e64545);
  --suite-radius-control:var(--sis-control-radius);
  --suite-radius-panel:var(--sis-panel-radius);
  --suite-border:var(--sis-color-borde);
  --suite-focus:var(--sis-color-primario);
  --suite-shadow:var(--sis-sombra-suave);
  --bs-primary:var(--sis-color-primario);
  --bs-body-bg:var(--sis-color-fondo);
  --bs-body-color:var(--sis-color-texto);
  --bs-border-color:var(--sis-color-borde);
}

html[data-sis-theme="gestalt"]{
  --sis-color-fondo:#f4f6fa;
  --sis-color-superficie:#fff;
  --sis-color-superficie-alterna:#eef1f7;
  --sis-color-texto:#1c2333;
  --sis-color-texto-suave:#626b82;
  --sis-color-borde:#dfe5ee;
  --sis-color-primario:#2e6be6;
  --sis-color-primario-hover:#1f55c4;
  --sis-color-secundario:#14b8a6;
  --sis-color-exito:#1db874;
  --sis-color-advertencia:#e6a417;
  --sis-color-error:#e64545;
  --sis-color-info:#2e6be6;
  --sis-color-menu-fondo:#151b2b;
  --sis-color-menu-fondo-hover:#1f2a44;
  --sis-color-menu-texto:#aeb8cc;
  --sis-color-menu-texto-activo:#fff;
  --sis-radio-sm:6px;
  --sis-radio-md:10px;
  --sis-radio-lg:16px;
  --sis-sombra-suave:0 1px 3px rgba(16,24,40,.08);
  --sis-sombra-media:0 8px 24px rgba(16,24,40,.14);
  --sis-control-radius:11px;
  --sis-panel-radius:12px;
  --sis-control-height:44px;
  --sis-color-hover:#eef1f7;
  --sis-color-encabezado-tabla:#eef1f7;
}

html[data-sis-theme="basic"]{
  --sis-color-fondo:#f3f4f6;
  --sis-color-superficie:#fff;
  --sis-color-superficie-alterna:#e9edf2;
  --sis-color-texto:#20242a;
  --sis-color-texto-suave:#5c6673;
  --sis-color-borde:#b9c1cc;
  --sis-color-primario:#334155;
  --sis-color-primario-hover:#1e293b;
  --sis-color-secundario:#475569;
  --sis-color-exito:#18794e;
  --sis-color-advertencia:#9a6700;
  --sis-color-error:#b42318;
  --sis-color-info:#1d4ed8;
  --sis-color-menu-fondo:#303640;
  --sis-color-menu-fondo-hover:#414956;
  --sis-color-menu-texto:#e5e7eb;
  --sis-color-menu-texto-activo:#fff;
  --sis-radio-sm:2px;
  --sis-radio-md:3px;
  --sis-radio-lg:4px;
  --sis-sombra-suave:none;
  --sis-sombra-media:0 2px 6px rgba(15,23,42,.14);
  --sis-control-radius:3px;
  --sis-panel-radius:3px;
  --sis-control-height:38px;
  --sis-color-hover:#e9edf2;
  --sis-color-encabezado-tabla:#e9edf2;
  --sis-theme-font:Arial,Helvetica,sans-serif;
}

html[data-sis-theme="retro"]{
  --sis-color-fondo:#008080;
  --sis-color-superficie:#c0c0c0;
  --sis-color-superficie-alterna:#d4d0c8;
  --sis-color-texto:#000;
  --sis-color-texto-suave:#404040;
  --sis-color-borde:#000;
  --sis-color-primario:#000080;
  --sis-color-primario-hover:#0000a0;
  --sis-color-secundario:#008080;
  --sis-color-exito:#008000;
  --sis-color-advertencia:#808000;
  --sis-color-error:#800000;
  --sis-color-info:#000080;
  --sis-color-menu-fondo:#000080;
  --sis-color-menu-fondo-hover:#0000a0;
  --sis-color-menu-texto:#fff;
  --sis-color-menu-texto-activo:#ffff80;
  --sis-color-hover:#d4d0c8;
  --sis-color-encabezado-tabla:#000080;
  --sis-radio-sm:0;
  --sis-radio-md:0;
  --sis-radio-lg:0;
  --sis-sombra-suave:none;
  --sis-sombra-media:2px 2px 0 #000;
  --sis-control-radius:0;
  --sis-panel-radius:0;
  --sis-control-height:34px;
  --sis-focus-ring:1px dotted #000;
  --sis-theme-font:"MS Sans Serif",Tahoma,Arial,sans-serif;
}

/* ── Temas nuevos: Océano, Bosque, Terracota, Violeta, Arena, Grafito (oscuro) y Contraste (accesibilidad). Mismos tokens que Gestalt. ── */
html[data-sis-theme="oceano"]{
  color-scheme:light;
  --sis-color-fondo:#f1f7fa;
  --sis-color-superficie:#fff;
  --sis-color-superficie-alterna:#e5f0f5;
  --sis-color-texto:#10252f;
  --sis-color-texto-suave:#4e6a77;
  --sis-color-borde:#cfe0e8;
  --sis-color-primario:#0b7a9e;
  --sis-color-primario-hover:#08607c;
  --sis-color-secundario:#12b5b0;
  --sis-color-exito:#1c9a6c;
  --sis-color-advertencia:#d99a14;
  --sis-color-error:#d64550;
  --sis-color-info:#0b7a9e;
  --sis-color-menu-fondo:#0b2a38;
  --sis-color-menu-fondo-hover:#123b4d;
  --sis-color-menu-texto:#a9c5d2;
  --sis-color-menu-texto-activo:#fff;
  --sis-color-sobre-primario:#fff;
  --sis-radio-sm:6px;
  --sis-radio-md:10px;
  --sis-radio-lg:16px;
  --sis-sombra-suave:0 1px 3px rgba(16,24,40,.08);
  --sis-sombra-media:0 8px 24px rgba(16,24,40,.14);
  --sis-control-radius:11px;
  --sis-panel-radius:12px;
  --sis-control-height:44px;
  --sis-color-hover:#e5f0f5;
  --sis-color-encabezado-tabla:#e5f0f5;
}
html[data-sis-theme="bosque"]{
  color-scheme:light;
  --sis-color-fondo:#f3f6f1;
  --sis-color-superficie:#fff;
  --sis-color-superficie-alterna:#e8efe4;
  --sis-color-texto:#1b2a1f;
  --sis-color-texto-suave:#587060;
  --sis-color-borde:#d3dfcc;
  --sis-color-primario:#2f7d4f;
  --sis-color-primario-hover:#236340;
  --sis-color-secundario:#6b8f3c;
  --sis-color-exito:#2f9d57;
  --sis-color-advertencia:#c98a10;
  --sis-color-error:#c0463f;
  --sis-color-info:#2c7a8c;
  --sis-color-menu-fondo:#1a2e22;
  --sis-color-menu-fondo-hover:#25402f;
  --sis-color-menu-texto:#a9c2b1;
  --sis-color-menu-texto-activo:#fff;
  --sis-color-sobre-primario:#fff;
  --sis-radio-sm:6px;
  --sis-radio-md:10px;
  --sis-radio-lg:16px;
  --sis-sombra-suave:0 1px 3px rgba(16,24,40,.08);
  --sis-sombra-media:0 8px 24px rgba(16,24,40,.14);
  --sis-control-radius:11px;
  --sis-panel-radius:12px;
  --sis-control-height:44px;
  --sis-color-hover:#e8efe4;
  --sis-color-encabezado-tabla:#e8efe4;
}
html[data-sis-theme="terracota"]{
  color-scheme:light;
  --sis-color-fondo:#faf5f0;
  --sis-color-superficie:#fff;
  --sis-color-superficie-alterna:#f3e9df;
  --sis-color-texto:#2c2119;
  --sis-color-texto-suave:#7a6555;
  --sis-color-borde:#e6d6c6;
  --sis-color-primario:#b4562e;
  --sis-color-primario-hover:#96431f;
  --sis-color-secundario:#c98b2c;
  --sis-color-exito:#4e8a4a;
  --sis-color-advertencia:#cc8a14;
  --sis-color-error:#b8362e;
  --sis-color-info:#3a6ea5;
  --sis-color-menu-fondo:#3a2519;
  --sis-color-menu-fondo-hover:#50352a;
  --sis-color-menu-texto:#d8c1b0;
  --sis-color-menu-texto-activo:#fff;
  --sis-color-sobre-primario:#fff;
  --sis-radio-sm:6px;
  --sis-radio-md:10px;
  --sis-radio-lg:16px;
  --sis-sombra-suave:0 1px 3px rgba(16,24,40,.08);
  --sis-sombra-media:0 8px 24px rgba(16,24,40,.14);
  --sis-control-radius:11px;
  --sis-panel-radius:12px;
  --sis-control-height:44px;
  --sis-color-hover:#f3e9df;
  --sis-color-encabezado-tabla:#f3e9df;
}
html[data-sis-theme="violeta"]{
  color-scheme:light;
  --sis-color-fondo:#f6f5fb;
  --sis-color-superficie:#fff;
  --sis-color-superficie-alterna:#edeaf8;
  --sis-color-texto:#1f1b33;
  --sis-color-texto-suave:#65608a;
  --sis-color-borde:#dcd8ef;
  --sis-color-primario:#5b4bd1;
  --sis-color-primario-hover:#4538ab;
  --sis-color-secundario:#e0568f;
  --sis-color-exito:#1f9d6b;
  --sis-color-advertencia:#dca01a;
  --sis-color-error:#d2405c;
  --sis-color-info:#5b4bd1;
  --sis-color-menu-fondo:#1d1840;
  --sis-color-menu-fondo-hover:#2a2460;
  --sis-color-menu-texto:#b5b0dd;
  --sis-color-menu-texto-activo:#fff;
  --sis-color-sobre-primario:#fff;
  --sis-radio-sm:6px;
  --sis-radio-md:10px;
  --sis-radio-lg:16px;
  --sis-sombra-suave:0 1px 3px rgba(16,24,40,.08);
  --sis-sombra-media:0 8px 24px rgba(16,24,40,.14);
  --sis-control-radius:11px;
  --sis-panel-radius:12px;
  --sis-control-height:44px;
  --sis-color-hover:#edeaf8;
  --sis-color-encabezado-tabla:#edeaf8;
}
html[data-sis-theme="obra"]{
  color-scheme:light;
  --sis-color-fondo:#f5f4f0;
  --sis-color-superficie:#fff;
  --sis-color-superficie-alterna:#ebe9e2;
  --sis-color-texto:#1f2024;
  --sis-color-texto-suave:#62646b;
  --sis-color-borde:#dcdad2;
  --sis-color-primario:#b86e00;
  --sis-color-primario-hover:#965a00;
  --sis-color-secundario:#f2b01e;
  --sis-color-exito:#2f8a57;
  --sis-color-advertencia:#d68a00;
  --sis-color-error:#c8382e;
  --sis-color-info:#3b6ea5;
  --sis-color-menu-fondo:#24262b;
  --sis-color-menu-fondo-hover:#34373d;
  --sis-color-menu-texto:#b9bcc2;
  --sis-color-menu-texto-activo:#ffc233;
  --sis-color-sobre-primario:#fff;
  --sis-radio-sm:4px;
  --sis-radio-md:8px;
  --sis-radio-lg:12px;
  --sis-sombra-suave:0 1px 3px rgba(31,32,36,.1);
  --sis-sombra-media:0 8px 24px rgba(31,32,36,.16);
  --sis-control-radius:8px;
  --sis-panel-radius:10px;
  --sis-control-height:44px;
  --sis-color-hover:#ebe9e2;
  --sis-color-encabezado-tabla:#ebe9e2;
}
html[data-sis-theme="burdeos"]{
  color-scheme:light;
  --sis-color-fondo:#faf5f5;
  --sis-color-superficie:#fff;
  --sis-color-superficie-alterna:#f3e8e9;
  --sis-color-texto:#2a1a1e;
  --sis-color-texto-suave:#7a5f65;
  --sis-color-borde:#e6d5d8;
  --sis-color-primario:#9b2c3f;
  --sis-color-primario-hover:#7f2233;
  --sis-color-secundario:#c08a5b;
  --sis-color-exito:#2f8a57;
  --sis-color-advertencia:#c98a1b;
  --sis-color-error:#c8382e;
  --sis-color-info:#3d6a8a;
  --sis-color-menu-fondo:#3b1520;
  --sis-color-menu-fondo-hover:#52202f;
  --sis-color-menu-texto:#d9b8bf;
  --sis-color-menu-texto-activo:#fff;
  --sis-color-sobre-primario:#fff;
  --sis-radio-sm:6px;
  --sis-radio-md:10px;
  --sis-radio-lg:16px;
  --sis-sombra-suave:0 1px 3px rgba(42,26,30,.1);
  --sis-sombra-media:0 8px 24px rgba(42,26,30,.16);
  --sis-control-radius:10px;
  --sis-panel-radius:12px;
  --sis-control-height:44px;
  --sis-color-hover:#f3e8e9;
  --sis-color-encabezado-tabla:#f3e8e9;
}
/* >>> DJANGO:TOKENS */
/* ── Estilo Django (id «django»): copia del estilo de miguelgarcia.xyz (conceptos y honorarios) ──
   Inter 400/500, fondo #fafaf9, tinta #242424, rojo #e4002b como marca y verde apagado solo para foco y marcas de selección.
   Los tokens --sis-dj-* son propios del tema (los usa su contrato de componentes más abajo). El texto secundario es un punto más oscuro que el del sitio (#6c6c66 y no #777771) para cumplir AA. */
html[data-sis-theme="django"]{
  color-scheme:light;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-synthesis-weight:none;
  --sis-color-fondo:#fafaf9;
  --sis-color-superficie:#fff;
  --sis-color-superficie-alterna:#f5f5f2;
  --sis-color-texto:#242424;
  --sis-color-texto-suave:#6c6c66;
  --sis-color-borde:#e2e3dc;
  --sis-color-primario:#e4002b;
  --sis-color-primario-hover:#c50025;
  --sis-color-secundario:#53674f;
  --sis-color-exito:#45634d;
  --sis-color-advertencia:#8a6414;
  --sis-color-error:#8f2639;
  --sis-color-info:#3f5f73;
  --sis-color-menu-fondo:#fafaf9;
  --sis-color-menu-fondo-hover:#fff1f4;
  --sis-color-menu-texto:#6c6c66;
  --sis-color-menu-texto-activo:#b30022;
  --sis-color-sobre-primario:#fff;
  --sis-color-sobre-menu:#242424;
  --sis-color-texto-sobre-oscuro:#6c6c66;
  --sis-radio-sm:6px;
  --sis-radio-md:9px;
  --sis-radio-lg:12px;
  --sis-sombra-suave:none;
  --sis-sombra-media:0 8px 24px #24242412;
  --sis-sombra-menu:-12px 0 48px #24242414;
  --sis-control-radius:8px;
  --sis-panel-radius:12px;
  --sis-control-height:38px;
  --sis-control-padding-x:10px;
  --sis-color-hover:#fff8f9;
  --sis-color-encabezado-tabla:#fafaf9;
  --sis-control-placeholder:#6a6d63;
  --sis-control-disabled:#f5f5f2;
  --sis-focus-ring:0 0 0 2px #547347;
  --sis-theme-font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --sis-font-size-body:13px;
  --sis-font-size-label:13px;
  --sis-font-size-table:12px;
  --sis-dj-rojo:#e4002b;
  --sis-dj-rojo-texto:#b30022;
  --sis-dj-tinte:#fff1f4;
  --sis-dj-tinte-suave:#fff8f9;
  --sis-dj-tinte-borde:#ebcdd3;
  --sis-dj-tinte-borde-fuerte:#d7a4ae;
  --sis-dj-linea:#e9eae4;
  --sis-dj-linea-fuerte:#e5e6e0;
  --sis-dj-linea-encabezado:#ead8dd;
  --sis-dj-campo:#dedfd8;
  --sis-dj-boton:#d7d9d0;
  --sis-dj-boton-texto:#62685c;
  --sis-dj-boton-hover:#8d9683;
  --sis-dj-boton-hover-texto:#35432e;
  --sis-dj-foco:#547347;
  --sis-dj-verde:#53674f;
  --sis-dj-verde-fondo:#f0f3ec;
  --sis-dj-verde-texto:#36502e;
  --sis-dj-verde-borde:#83937a;
  --sis-dj-nota:#6a6d63;
  --sis-dj-error-texto:#8f2639;
  --sis-dj-texto-campo:#53564e;
  --vc-navy:#242424;
  --vc-teal:#53674f;
  --vc-gold:#e4002b;
  --vc-gold-text:#b30022;
  --vc-on-gold:#fff;
  --bs-primary-rgb:228,0,43;
  --bs-success-rgb:69,99,77;
  --bs-danger-rgb:143,38,57;
  --bs-warning-rgb:138,100,20;
  --bs-info-rgb:63,95,115;
  --bs-link-color-rgb:179,0,34;
  --bs-link-hover-color-rgb:228,0,43;
  --bs-link-color:#b30022;
  --bs-link-hover-color:#e4002b;
  --bs-secondary-color:#6c6c66;
  --bs-secondary-rgb:108,108,102;
  --bs-border-radius:.5rem;
  --bs-border-radius-sm:.375rem;
  --bs-border-radius-lg:.75rem;
}
/* <<< DJANGO:TOKENS */
html[data-sis-theme="propio-claro"]{
  color-scheme:light;
  --sis-color-fondo:#f4f6fa;
  --sis-color-superficie:#fff;
  --sis-color-superficie-alterna:#eef1f7;
  --sis-color-texto:#1c2333;
  --sis-color-texto-suave:#626b82;
  --sis-color-borde:#dfe5ee;
  --sis-color-primario:#2e6be6;
  --sis-color-primario-hover:#1f55c4;
  --sis-color-secundario:#14b8a6;
  --sis-color-exito:#1db874;
  --sis-color-advertencia:#e6a417;
  --sis-color-error:#e64545;
  --sis-color-info:#2e6be6;
  --sis-color-menu-fondo:#151b2b;
  --sis-color-menu-fondo-hover:#1f2a44;
  --sis-color-menu-texto:#aeb8cc;
  --sis-color-menu-texto-activo:#fff;
  --sis-radio-sm:6px;
  --sis-radio-md:10px;
  --sis-radio-lg:16px;
  --sis-sombra-suave:0 1px 3px rgba(16,24,40,.08);
  --sis-sombra-media:0 8px 24px rgba(16,24,40,.14);
  --sis-control-radius:11px;
  --sis-panel-radius:12px;
  --sis-control-height:44px;
  --sis-color-hover:#eef1f7;
  --sis-color-encabezado-tabla:#eef1f7;
}
html[data-sis-theme="propio-oscuro"]{
  color-scheme:dark;
  --sis-color-fondo:#12161d;
  --sis-color-superficie:#1a2029;
  --sis-color-superficie-alterna:#212936;
  --sis-color-texto:#e6eaf2;
  --sis-color-texto-suave:#9aa6bb;
  --sis-color-borde:#2c3646;
  --sis-color-primario:#6a96ff;
  --sis-color-primario-hover:#8aaeff;
  --sis-color-secundario:#2dd4bf;
  --sis-color-exito:#35c88a;
  --sis-color-advertencia:#f0b429;
  --sis-color-error:#ff6b6b;
  --sis-color-info:#6a96ff;
  --sis-color-menu-fondo:#0c0f14;
  --sis-color-menu-fondo-hover:#161c25;
  --sis-color-menu-texto:#8f9bb0;
  --sis-color-menu-texto-activo:#fff;
  --sis-color-sobre-primario:#0b1226;
  --sis-radio-sm:6px;
  --sis-radio-md:10px;
  --sis-radio-lg:16px;
  --sis-sombra-suave:0 1px 3px rgba(0,0,0,.5);
  --sis-sombra-media:0 8px 24px rgba(0,0,0,.6);
  --sis-control-radius:11px;
  --sis-panel-radius:12px;
  --sis-control-height:44px;
  --sis-color-hover:#212936;
  --sis-color-encabezado-tabla:#212936;
  --bs-body-bg:#12161d;--bs-body-color:#e6eaf2;--bs-emphasis-color:#fff;--bs-secondary-color:#9aa6bb;--bs-secondary-bg:#212936;--bs-tertiary-bg:#1a2029;--bs-border-color:#2c3646;--bs-link-color:#8aaeff;--bs-link-hover-color:#b3c9ff;
}
html[data-sis-theme="arena"]{
  color-scheme:light;
  --sis-color-fondo:#f7f5f0;
  --sis-color-superficie:#fffefb;
  --sis-color-superficie-alterna:#efebe3;
  --sis-color-texto:#25231f;
  --sis-color-texto-suave:#6d6a62;
  --sis-color-borde:#ddd8cc;
  --sis-color-primario:#2f3e46;
  --sis-color-primario-hover:#1e2a30;
  --sis-color-secundario:#84a98c;
  --sis-color-exito:#4f7a52;
  --sis-color-advertencia:#b8860b;
  --sis-color-error:#a8403a;
  --sis-color-info:#3d6a8a;
  --sis-color-menu-fondo:#2b2a26;
  --sis-color-menu-fondo-hover:#3b3a35;
  --sis-color-menu-texto:#cfcbbf;
  --sis-color-menu-texto-activo:#fff;
  --sis-color-sobre-primario:#fff;
  --sis-radio-sm:2px;
  --sis-radio-md:4px;
  --sis-radio-lg:8px;
  --sis-sombra-suave:none;
  --sis-sombra-media:0 2px 8px rgba(37,35,31,.12);
  --sis-control-radius:4px;
  --sis-panel-radius:6px;
  --sis-control-height:42px;
  --sis-color-hover:#efebe3;
  --sis-color-encabezado-tabla:#efebe3;
}
html[data-sis-theme="grafito"]{
  color-scheme:dark;
  --sis-color-fondo:#12161d;
  --sis-color-superficie:#1a2029;
  --sis-color-superficie-alterna:#212936;
  --sis-color-texto:#e6eaf2;
  --sis-color-texto-suave:#9aa6bb;
  --sis-color-borde:#2c3646;
  --sis-color-primario:#6a96ff;
  --sis-color-primario-hover:#8aaeff;
  --sis-color-secundario:#2dd4bf;
  --sis-color-exito:#35c88a;
  --sis-color-advertencia:#f0b429;
  --sis-color-error:#ff6b6b;
  --sis-color-info:#6a96ff;
  --sis-color-menu-fondo:#0c0f14;
  --sis-color-menu-fondo-hover:#161c25;
  --sis-color-menu-texto:#8f9bb0;
  --sis-color-menu-texto-activo:#fff;
  --sis-color-sobre-primario:#0b1226;
  --sis-radio-sm:6px;
  --sis-radio-md:10px;
  --sis-radio-lg:16px;
  --sis-sombra-suave:0 1px 3px rgba(0,0,0,.5);
  --sis-sombra-media:0 8px 24px rgba(0,0,0,.6);
  --sis-control-radius:11px;
  --sis-panel-radius:12px;
  --sis-control-height:44px;
  --sis-color-hover:#212936;
  --sis-color-encabezado-tabla:#212936;
  --bs-body-bg:#12161d;--bs-body-color:#e6eaf2;--bs-emphasis-color:#fff;--bs-secondary-color:#9aa6bb;--bs-secondary-bg:#212936;--bs-tertiary-bg:#1a2029;--bs-border-color:#2c3646;--bs-link-color:#8aaeff;--bs-link-hover-color:#b3c9ff;
}
html[data-sis-theme="contraste"]{
  color-scheme:light;
  --sis-color-fondo:#fff;
  --sis-color-superficie:#fff;
  --sis-color-superficie-alterna:#f0f0f0;
  --sis-color-texto:#000;
  --sis-color-texto-suave:#1a1a1a;
  --sis-color-borde:#000;
  --sis-color-primario:#0033cc;
  --sis-color-primario-hover:#002299;
  --sis-color-secundario:#004d40;
  --sis-color-exito:#006400;
  --sis-color-advertencia:#7a4b00;
  --sis-color-error:#b00020;
  --sis-color-info:#0033cc;
  --sis-color-menu-fondo:#000;
  --sis-color-menu-fondo-hover:#1a1a1a;
  --sis-color-menu-texto:#fff;
  --sis-color-menu-texto-activo:#ffeb3b;
  --sis-color-sobre-primario:#fff;
  --sis-radio-sm:2px;
  --sis-radio-md:3px;
  --sis-radio-lg:4px;
  --sis-sombra-suave:none;
  --sis-sombra-media:none;
  --sis-control-radius:3px;
  --sis-panel-radius:3px;
  --sis-control-height:46px;
  --sis-color-hover:#f0f0f0;
  --sis-color-encabezado-tabla:#f0f0f0;
  --sis-focus-ring:0 0 0 3px #ffbf00;
}

/* Grafito es oscuro: los componentes de Bootstrap y los textos de apoyo siguen sus tokens (best effort con las pantallas que traen colores propios). */
html:is([data-sis-theme="grafito"],[data-sis-theme="propio-oscuro"]) :where(.modal-content,.dropdown-menu,.card,.list-group-item,.offcanvas,.popover,.toast,.accordion-item){background-color:var(--sis-color-superficie);color:var(--sis-color-texto);border-color:var(--sis-color-borde)}
html:is([data-sis-theme="grafito"],[data-sis-theme="propio-oscuro"]) :where(.table){--bs-table-color:var(--sis-color-texto);--bs-table-bg:transparent;--bs-table-striped-bg:rgba(255,255,255,.04);--bs-table-hover-bg:rgba(255,255,255,.07);--bs-table-border-color:var(--sis-color-borde)}
html:is([data-sis-theme="grafito"],[data-sis-theme="propio-oscuro"]) :where(.text-secondary,.text-muted,.text-body-secondary){color:var(--sis-color-texto-suave)!important}
html:is([data-sis-theme="grafito"],[data-sis-theme="propio-oscuro"]) :where(.bg-white,.bg-light,.bg-body){background-color:var(--sis-color-superficie)!important}
html:is([data-sis-theme="grafito"],[data-sis-theme="propio-oscuro"]) :where(.border,.border-top,.border-bottom){border-color:var(--sis-color-borde)!important}
html:is([data-sis-theme="grafito"],[data-sis-theme="propio-oscuro"]) :where(hr){border-color:var(--sis-color-borde);opacity:1}
html:is([data-sis-theme="grafito"],[data-sis-theme="propio-oscuro"]) :where(.btn-close){filter:invert(1) grayscale(100%) brightness(200%)}
html[data-sis-theme="contraste"] :where(a){text-decoration:underline}
html[data-sis-theme="contraste"] :where(button,.btn,.sis-btn-tile,input,select,textarea,.form-control,.form-select){border-width:2px}

html[data-sis-theme] body{
  background:var(--sis-color-fondo);
  color:var(--sis-color-texto);
  font-family:var(--sis-theme-font);
}

/* Campos: misma altura, borde, foco, estados y tipografía en cualquier módulo. */
html[data-sis-theme] :where(
  input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  select,textarea,.form-control,.form-select
){
  border-color:var(--sis-color-borde);
  border-radius:var(--sis-control-radius);
  background-color:var(--sis-control-bg);
  color:var(--sis-color-texto);
  font-family:var(--sis-theme-font);
  font-size:14px;
  line-height:1.3;
  box-shadow:none;
}
html[data-sis-theme] :where(
  input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  select,.form-control,.form-select
){min-height:var(--sis-control-height);padding-inline:var(--sis-control-padding-x)}
html[data-sis-theme] textarea{width:100%;box-sizing:border-box;min-height:110px;padding:10px var(--sis-control-padding-x);field-sizing:content}
html[data-sis-theme] :where(input,textarea)::placeholder{color:var(--sis-control-placeholder);opacity:.86}
html[data-sis-theme] :where(input,select,textarea,.form-control,.form-select):focus{
  border-color:var(--sis-color-primario);
  box-shadow:var(--sis-focus-ring);
  outline:0;
}
html[data-sis-theme] :where(input,select,textarea,.form-control,.form-select):disabled,
html[data-sis-theme] :where(input,select,textarea,.form-control,.form-select)[readonly]{
  background:var(--sis-control-disabled);
  color:var(--sis-color-texto-suave);
  opacity:1;
  cursor:not-allowed;
}
html[data-sis-theme] :where(input,select,textarea,.form-control,.form-select)[aria-invalid="true"],
html[data-sis-theme] :where(input,select,textarea,.form-control,.form-select).is-invalid{
  border-color:var(--sis-color-error);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--sis-color-error) 14%,transparent);
}

/* Gestalt usa la etiqueta interior del Programa Arquitectónico también en los
   formularios Bootstrap y SIS que conservan label + control como hijos directos. */
html[data-sis-theme="gestalt"] :where(
  .col,.col-12,[class*="col-sm-"],[class*="col-md-"],[class*="col-lg-"],
  .mb-2,.mb-3,.sis-formulario__campo-contenedor
):has(>label:is(.form-label,.sis-formulario__etiqueta) + :is(input,select,textarea,.form-control,.form-select)){
  position:relative;
}
html[data-sis-theme="gestalt"] :where(
  .col,.col-12,[class*="col-sm-"],[class*="col-md-"],[class*="col-lg-"],
  .mb-2,.mb-3,.sis-formulario__campo-contenedor
)>label:is(.form-label,.sis-formulario__etiqueta):has(+ :is(input,select,textarea,.form-control,.form-select)){
  position:absolute;
  z-index:2;
  top:5px;
  left:calc(var(--bs-gutter-x,0px)/2 + 10px);
  margin:0;
  padding:0 2px;
  color:var(--sis-color-texto-suave);
  background:var(--sis-color-superficie);
  font-size:11px;
  line-height:1.15;
  pointer-events:none;
}
html[data-sis-theme="gestalt"] :where(
  .col,.col-12,[class*="col-sm-"],[class*="col-md-"],[class*="col-lg-"],
  .mb-2,.mb-3,.sis-formulario__campo-contenedor
)>label:is(.form-label,.sis-formulario__etiqueta) + :is(input,select,textarea,.form-control,.form-select){
  min-height:56px;
  padding-top:20px;
  padding-bottom:6px;
}
html[data-sis-theme="gestalt"] :where(
  .col,.col-12,[class*="col-sm-"],[class*="col-md-"],[class*="col-lg-"],
  .mb-2,.mb-3,.sis-formulario__campo-contenedor
)>label:is(.form-label,.sis-formulario__etiqueta) + textarea{min-height:96px}
html[data-sis-theme="gestalt"] .form-floating>.form-control,
html[data-sis-theme="gestalt"] .form-floating>.form-select{
  min-height:58px;
  height:58px;
  border:1px solid var(--sis-color-borde);
  border-radius:var(--sis-control-radius);
  background:var(--sis-color-superficie);
  padding-top:1.45rem;
  padding-bottom:.35rem;
  box-shadow:none;
}
html[data-sis-theme="gestalt"] .form-floating>label{
  padding:.65rem .75rem;
  color:var(--sis-color-texto-suave);
  font-size:12px;
}

/* Contrato explícito para campos nuevos o migrados. Soporta controles directos
   y autocompletados con un contenedor intermedio sin cambiar su apariencia. */
html[data-sis-theme] .sis-campo{position:relative;min-width:0}
html[data-sis-theme] .sis-campo__etiqueta{display:block;margin:0 0 5px;color:var(--sis-color-texto-suave);font-size:12px;font-weight:600}
html[data-sis-theme] .sis-campo :where(
  .sis-campo__entrada,
  .sis-campo__control>input,
  .sis-campo__control>select,
  .sis-campo__control>textarea
){
  width:100%;
  margin:0;
  min-height:var(--sis-control-height);
  border:1px solid var(--sis-color-borde);
  border-radius:var(--sis-control-radius);
  background:var(--sis-control-bg);
  color:var(--sis-color-texto);
  font-family:var(--sis-theme-font);
  font-size:14px;
  line-height:1.3;
  box-shadow:none;
}
html[data-sis-theme] .sis-campo__control{position:relative;min-width:0}
html[data-sis-theme="gestalt"] .sis-campo__etiqueta{
  position:absolute;
  z-index:3;
  top:5px;
  left:10px;
  margin:0;
  padding:0 2px;
  background:var(--sis-color-superficie);
  font-size:11px;
  line-height:1.15;
  pointer-events:none;
}
html[data-sis-theme="gestalt"] .sis-campo :where(
  .sis-campo__entrada,
  .sis-campo__control>input,
  .sis-campo__control>select,
  .sis-campo__control>textarea
){min-height:56px;padding:20px 10px 6px}
html[data-sis-theme="gestalt"] .sis-campo :where(textarea.sis-campo__entrada,.sis-campo__control>textarea){min-height:96px}
html[data-sis-theme="basic"] .sis-campo__etiqueta,
html[data-sis-theme="retro"] .sis-campo__etiqueta{position:static;background:transparent}

/* Selecciones compactas, iguales a la referencia aprobada por el usuario. */
html[data-sis-theme] :where(input[type="checkbox"],input[type="radio"],.form-check-input){
  width:14px!important;
  height:14px!important;
  min-width:14px!important;
  min-height:14px!important;
  margin:0;
  border:1px solid color-mix(in srgb,var(--sis-color-texto-suave) 72%,transparent);
  background-color:var(--sis-color-superficie);
  box-shadow:none;
  accent-color:var(--sis-color-primario);
  vertical-align:middle;
}
html[data-sis-theme] :where(input[type="checkbox"],.form-check-input[type="checkbox"]){border-radius:2px!important}
html[data-sis-theme] :where(input[type="radio"],.form-check-input[type="radio"]){border-radius:50%!important}
html[data-sis-theme] :where(input[type="checkbox"],input[type="radio"],.form-check-input):focus-visible{
  outline:2px solid var(--sis-color-primario);
  outline-offset:2px;
}
html[data-sis-theme] :where(.form-check,.form-switch){display:flex;align-items:center;gap:7px;min-height:28px;padding-left:0}
html[data-sis-theme] :where(.form-check-label,.sis-pa__opciones-check label){color:var(--sis-color-texto);font-size:13px}

/* Acciones, superficies, tablas y diálogo comparten la misma métrica. */
html[data-sis-theme] :where(
  button,.btn,.sis-btn-tile,.sis-acciones__boton,[role="button"],
  .btn-cnt,.btn-guardar,.btn-cancelar,.btn-nuevo,.btn-aceptar,.btn-rechazar,
  .cot-btn-acepta,.cot-btn-rechaza,.cot-btn-primary,.cot-btn-secondary,.ph-salir
){
  border-radius:var(--sis-control-radius);
  font-family:var(--sis-theme-font);
}
html[data-sis-theme] :where(.btn-primary,.btn-primario,.sis-btn-tile--primario,.btn-guardar,.btn-nuevo,.btn-aceptar,.cot-btn-primary){
  border-color:var(--sis-color-primario);
  background:var(--sis-color-primario);
  color:#fff;
}
html[data-sis-theme] :where(.btn-primary,.btn-primario,.sis-btn-tile--primario,.btn-guardar,.btn-nuevo,.btn-aceptar,.cot-btn-primary):hover:not(:disabled){
  border-color:var(--sis-color-primario-hover);
  background:var(--sis-color-primario-hover);
  color:#fff;
}
html[data-sis-theme] :where(
  .card,.sis-tarjeta,.sis-formulario__seccion,.modal-content,dialog,
  .cot-modal,.cot-package-card,.crn-paquete-card,.cfg-tipo-card,.cnt-kpi,
  .cnt-modal,.bod-modal,.pd-modal,.per-modal,.modal-box,.zona-card,.decision-bar,
  .plan-card,.quick-card,.coord-card,.info-card,.tl-card,.ac-card,.pago-item,
  .portal-card,.resumen-item,.nprog-panel,.vacio
){
  border-color:var(--sis-color-borde);
  border-radius:var(--sis-panel-radius);
  background-color:var(--sis-color-superficie);
  color:var(--sis-color-texto);
}
html[data-sis-theme] :where(.modal-header,.modal-footer){border-color:var(--sis-color-borde)}
html[data-sis-theme] :where(.table,table){color:var(--sis-color-texto);font-variant-numeric:tabular-nums}
html[data-sis-theme] :where(.table,table) :where(th,td){border-color:var(--sis-color-borde)}
html[data-sis-theme] :where(.table,table) thead th{
  background:var(--sis-color-superficie-alterna);
  color:var(--sis-color-texto-suave);
  font-size:var(--sis-font-size-table);
  font-weight:650;
}
html[data-sis-theme] :where(.alert,[role="alert"]){border-radius:var(--sis-panel-radius)}
html[data-sis-theme] :where(.ph,.portal-header){background:var(--sis-color-menu-fondo);color:var(--sis-color-menu-texto-activo)}
html[data-sis-theme] :where(.ph-nav a,.portal-nav a){border-radius:var(--sis-control-radius);font-family:var(--sis-theme-font)}
html[data-sis-theme] :where(
  .page-titulo,.portal-title,.nprog-titulo,.info-titulo,.brief-header-titulo,
  .cat-titulo,.coord-titulo,.ph-logo,.portal-logo,.zona-area-total,.resumen-valor,
  .plan-nombre,.plan-valor,.avance-pct,.ac-precio,.resumen-total,.kpi-valor,
  .cot-ref,.linea-subtotal,.cot-total-val,.modal-titulo,.pago-monto
){font-family:var(--sis-theme-font)}
html[data-sis-theme] :where(.page-titulo,.portal-title,.nprog-titulo,.info-titulo,.brief-header-titulo,.cat-titulo,.coord-titulo,.plan-nombre,.resumen-valor,.ac-precio,.resumen-total,.kpi-valor,.cot-ref,.linea-subtotal,.modal-titulo,.pago-monto){color:var(--sis-color-texto)}
html[data-sis-theme] :where(.ph-logo,.portal-logo){color:var(--sis-color-menu-texto-activo)}
html[data-sis-theme] :where(.zona-area-total,.avance-pct){color:var(--sis-color-secundario)}
html[data-sis-theme] :where(.page,.portal-card) :where(h1,h2,h3)[style*="font-family"]{font-family:var(--sis-theme-font)!important}
html[data-sis-theme] :where(.estado.cargando,.alerta-cargando){color:var(--vc-gold-text)}
html[data-sis-theme] :where(.plan-valor,.cot-total-val,.kpi-valor.gold){color:var(--vc-gold-text)}

/* Los indicadores pueden seguir siendo compactos; su zona de interacción no. */
@media (pointer:coarse){
  html[data-sis-theme] :where(button,.btn,[role="button"],.sis-acciones__boton,.sis-paginacion__boton,.ph-nav a,[role="tab"]){min-height:44px;min-width:44px}
  html[data-sis-theme] :where(.form-check,.form-switch,.form-check-label,.sis-pa__opciones-check label){min-height:44px}
  html[data-sis-theme] :where(.form-check-label,.sis-pa__opciones-check label){display:inline-flex;align-items:center}
}

/* Variantes completas: lo importante es que ninguna conserve restos del tema
   anterior por una regla local de mayor antigüedad. */
html[data-sis-theme="basic"] :where(.card,.sis-tarjeta,.sis-formulario__seccion,.modal-content,dialog),
html[data-sis-theme="basic"] :where(button,.btn,.sis-btn-tile,input,select,textarea,.form-control,.form-select){
  border-radius:var(--sis-control-radius)!important;
  box-shadow:none!important;
}
html[data-sis-theme="retro"] :where(
  .card,.sis-tarjeta,.sis-formulario__seccion,.modal-content,dialog,
  .cot-modal,.cot-package-card,.crn-paquete-card,.cfg-tipo-card,.cnt-kpi,
  .cnt-modal,.bod-modal,.pd-modal,.per-modal,.modal-box,.zona-card,.decision-bar,
  .plan-card,.quick-card,.coord-card,.info-card,.tl-card,.ac-card,.pago-item,
  .portal-card,.resumen-item,.nprog-panel,.vacio
){
  border:2px outset #fff!important;
  border-radius:0!important;
  background:#c0c0c0!important;
  box-shadow:2px 2px 0 #000!important;
}
html[data-sis-theme="retro"] :where(
  input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),select,textarea,.form-control,.form-select
){
  border:2px inset #fff!important;
  border-radius:0!important;
  background:#fff!important;
  color:#000!important;
}
html[data-sis-theme="retro"] :where(
  button,.btn,.sis-btn-tile,.sis-acciones__boton,[role="button"],
  .btn-cnt,.btn-guardar,.btn-cancelar,.btn-nuevo,.btn-aceptar,.btn-rechazar,
  .cot-btn-acepta,.cot-btn-rechaza,.cot-btn-primary,.cot-btn-secondary,.ph-salir
){
  border:2px outset #fff!important;
  border-radius:0!important;
  background:#c0c0c0!important;
  color:#000!important;
  box-shadow:none!important;
  font-weight:700;
}
html[data-sis-theme="retro"] :is(.btn-primary,.btn-primario,.sis-btn-tile--primario,.btn-guardar,.btn-nuevo,.btn-aceptar,.cot-btn-primary){
  border:2px outset #fff!important;
  background:#000080!important;
  color:#fff!important;
}
html[data-sis-theme="retro"] :where(button,.btn,.sis-btn-tile,.sis-acciones__boton,[role="button"]):active{border-style:inset!important}
html[data-sis-theme="retro"] :where(button,.btn,.sis-btn-tile,.sis-acciones__boton):disabled{color:#777!important;text-shadow:1px 1px #fff;opacity:1}
html[data-sis-theme="retro"] :where(.sis-app__contenido,.sis-app__cuerpo,main){background:#c0c0c0;color:#000}
html[data-sis-theme="retro"] :where(.modal-header,.sis-formulario__seccion-titulo){border-color:#808080}
html[data-sis-theme="retro"] :where(.table,table) thead th{background:#000080!important;color:#fff!important;border-color:#fff!important}
html[data-sis-theme="retro"] :where(.table,table) tbody tr:hover td{background:#d4d0c8!important}
html[data-sis-theme="retro"] :where(.sis-menu__panel,dialog){border:2px outset #fff!important;border-radius:0!important;background:#c0c0c0!important}
html[data-sis-theme="retro"] .sis-app__superior{background:#c0c0c0!important;border-bottom:2px outset #fff!important}
html[data-sis-theme="retro"] .sis-menu__panel-titulo{color:#000080!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.05em}
html[data-sis-theme="retro"] .sis-menu__panel-item{color:#000!important;border-radius:0!important}
html[data-sis-theme="retro"] :where(.sis-menu__panel-item--activo,.sis-menu__panel-item:hover,.sis-menu__panel-item:focus-visible){background:#000080!important;color:#fff!important}
html[data-sis-theme="retro"] .sis-menu__riel-separador{border-color:rgba(255,255,255,.25)!important}
html[data-sis-theme="retro"] :where(
  .page-titulo,.portal-title,.nprog-titulo,.info-titulo,.brief-header-titulo,
  .cat-titulo,.coord-titulo,.ph-logo,.portal-logo,.zona-area-total,.resumen-valor,
  .plan-nombre,.plan-valor,.avance-pct,.ac-precio,.resumen-total,.kpi-valor,
  .cot-ref,.linea-subtotal,.cot-total-val,.modal-titulo,.pago-monto
){font-family:"MS Sans Serif",Tahoma,Arial,sans-serif!important}
html[data-sis-theme="retro"] :where(.ph-nav a,.portal-nav a){border-radius:0!important}

/* >>> DJANGO:CONTRATO */
/* ============================================================
   ESTILO DJANGO — contrato de componentes (todo cuelga de html[data-sis-theme="django"])
   Fuente: miguelgarcia.xyz/conceptos y /honorarios. Inter 400/500, tinta #242424, rojo #e4002b, líneas finas, sin sombras.
   Secciones: 1 fundamentos · 2 cabecera y menú · 3 superficies · 4 campos · 5 botones · 6 tablas · 7 pestañas y listas · 8 insignias, avisos y diálogos · 9 módulos · 10 móvil.
   Los botones llevan solo ícono (el texto va en title/aria-label): aquí solo se pinta; los tamaños de .sis-btn-tile no se tocan.
   ============================================================ */

/* ── 1. Fundamentos: tipografía ── */
html[data-sis-theme="django"] body{line-height:1.55;letter-spacing:0}
html[data-sis-theme="django"] :where(h1,.h1){font-weight:500;letter-spacing:-.035em;line-height:1.15}
html[data-sis-theme="django"] :where(h2,.h2){font-weight:500;letter-spacing:-.02em;line-height:1.3}
html[data-sis-theme="django"] :where(h3,.h3,h4,.h4,h5,.h5,h6,.h6){font-weight:500;letter-spacing:-.02em;line-height:1.35}
html[data-sis-theme="django"] :where(.page-titulo,.portal-title,.nprog-titulo,.info-titulo,.brief-header-titulo,.cat-titulo,.coord-titulo,.modal-titulo,.plan-nombre){font-weight:500;letter-spacing:-.5px}
html[data-sis-theme="django"] :where(strong,b,.fw-bold,.fw-semibold,.fw-medium){font-weight:500}
html[data-sis-theme="django"] :where(small,.small,.form-text,.text-muted,.text-secondary,.text-body-secondary){color:var(--sis-dj-nota)}
html[data-sis-theme="django"] :where(.text-muted,.text-secondary,.text-body-secondary){color:var(--sis-dj-nota)!important}
html[data-sis-theme="django"] :where(hr){border-color:var(--sis-dj-linea-fuerte);opacity:1}
html[data-sis-theme="django"] ::selection{background:var(--sis-dj-tinte);color:var(--sis-dj-rojo-texto)}
html[data-sis-theme="django"] :where(a:not([class])){text-underline-offset:2px}
/* Etiqueta superior (eyebrow): 11 px, mayúsculas, tracking 1.2 px, rojo */
html[data-sis-theme="django"] :where(.eyebrow,.sis-eyebrow,.sis-enc__sup,.sis-tarjeta__titulo,.kpi-etiqueta,.sis-pest__grupo-etq){font-size:11px;font-weight:500;letter-spacing:1.2px;text-transform:uppercase}
html[data-sis-theme="django"] :where(.eyebrow,.sis-eyebrow,.sis-enc__sup){color:var(--sis-dj-rojo)}
/* Resultado numérico grande: tabular, tinta, peso 400 */
html[data-sis-theme="django"] :where(.kpi-valor,.resumen-valor,.resumen-total,.cot-total-val,.pago-monto,.plan-valor,.sis-tarjeta__valor,.zona-area-total){font-weight:400;letter-spacing:-1px;font-variant-numeric:tabular-nums;color:var(--sis-color-texto)}
html[data-sis-theme="django"] :where(.avance-pct){font-weight:500;letter-spacing:-.5px;color:var(--sis-dj-verde)}

/* ── 2. Cabecera de la pantalla, barra superior, pie y menú lateral ── */
html[data-sis-theme="django"] .sis-app__superior{background:var(--sis-color-fondo);border-bottom:1px solid var(--sis-dj-linea-fuerte)}
html[data-sis-theme="django"] header.sis-app__superior>[data-sis-contexto] .sis-app__titulo{font-size:13px;font-weight:500;letter-spacing:-.2px;color:var(--sis-color-texto)}
html[data-sis-theme="django"] .sis-app__marca{font-weight:500;letter-spacing:-.04em;color:var(--sis-color-texto)}
html[data-sis-theme="django"] .sis-app__marca-icono{background:var(--sis-dj-rojo);color:#fff;border-radius:var(--sis-control-radius)}
html[data-sis-theme="django"] .sis-marca--accion:hover{background:var(--sis-dj-tinte)}
html[data-sis-theme="django"] .sis-app__usuario-avatar{background:var(--sis-dj-verde-fondo);color:var(--sis-dj-verde-texto);font-weight:500}
html[data-sis-theme="django"] .sis-acc-badge:not(.sis-acc-badge--superadmin){background:var(--sis-dj-tinte);color:var(--sis-dj-rojo-texto);border:1px solid var(--sis-dj-tinte-borde);border-radius:24px;font-size:11px;font-weight:500;letter-spacing:0}
html[data-sis-theme="django"] .sis-acc-badge--superadmin{background:var(--sis-dj-tinte);color:var(--sis-dj-rojo-texto);border:1px solid var(--sis-dj-tinte-borde)}
html[data-sis-theme="django"] .sis-estado-badge{font-weight:500;letter-spacing:0;border-radius:24px}
html[data-sis-theme="django"] #sis-cta-acceso :is(a,button){border-color:var(--sis-dj-boton);border-radius:var(--sis-control-radius);background:transparent;color:var(--sis-dj-boton-texto)}
html[data-sis-theme="django"] #sis-cta-acceso :is(a,button):hover{background:transparent;border-color:var(--sis-dj-boton-hover);color:var(--sis-dj-boton-hover-texto)}
html[data-sis-theme="django"] #sis-cta-acceso #sis-btn-login{background:var(--sis-dj-rojo);border-color:var(--sis-dj-rojo);color:#fff}
html[data-sis-theme="django"] #sis-cta-acceso #sis-btn-login:hover{background:var(--sis-color-primario-hover);border-color:var(--sis-color-primario-hover);opacity:1}
html[data-sis-theme="django"] #sis-pie-global{background:var(--sis-color-fondo);border-top:1px solid var(--sis-dj-linea-fuerte);font-size:11px;color:var(--sis-dj-nota)}
html[data-sis-theme="django"] #sis-atribucion{background:var(--sis-color-superficie);border:1px solid var(--sis-dj-linea-fuerte);box-shadow:none;font-weight:400;letter-spacing:0;color:var(--sis-dj-nota)}
html[data-sis-theme="django"] #sis-atribucion strong{font-weight:500}
html[data-sis-theme="django"] #sis-rol-pills{box-shadow:none;border:1px solid var(--sis-dj-linea-fuerte)}
html[data-sis-theme="django"] .sis-acc-vercomo-menu{box-shadow:var(--sis-sombra-media);border-radius:var(--sis-radio-md)}
/* Encabezado principal de cada pantalla (módulo en mayúsculas rojas, título grande, datos en gris) */
html[data-sis-theme="django"] .sis-enc{margin-inline:24px;padding:16px 0 14px;border-bottom:1px solid var(--sis-dj-linea-encabezado);margin-bottom:16px}
html[data-sis-theme="django"] .sis-enc.sis-enc--subido{padding-top:14px}
html[data-sis-theme="django"] .sis-enc__nombre{font-size:clamp(20px,2vw,26px);font-weight:500;letter-spacing:-1px;line-height:1.25;color:var(--sis-color-texto)}
html[data-sis-theme="django"] .sis-enc__sup{letter-spacing:1.2px;line-height:1.7}
html[data-sis-theme="django"] .sis-enc__meta{font-size:12px;color:var(--sis-color-texto-suave)}
html[data-sis-theme="django"] .sis-enc__meta .bi{color:var(--sis-dj-nota)}
@media(max-width:767px){html[data-sis-theme="django"] .sis-enc{margin-inline:16px}}
/* Menú lateral CLARO (si la persona elige el menú oscuro en Ajustes, vuelve al aspecto base) */
html[data-sis-theme="django"]:not([data-sis-menu="oscuro"]) .sis-menu__riel{border-left:1px solid var(--sis-dj-linea-fuerte)}
html[data-sis-theme="django"]:not([data-sis-menu="oscuro"]) .sis-menu__panel{border-left:1px solid var(--sis-dj-linea-fuerte);border-right:1px solid var(--sis-dj-linea-fuerte)}
html[data-sis-theme="django"]:not([data-sis-menu="oscuro"]) .sis-menu__riel-separador{border-top-color:var(--sis-dj-linea-fuerte)}
html[data-sis-theme="django"]:not([data-sis-menu="oscuro"]) .sis-menu__panel-titulo{color:var(--sis-dj-nota);opacity:1;font-size:11px;font-weight:500;letter-spacing:1.2px}
html[data-sis-theme="django"]:not([data-sis-menu="oscuro"]) .sis-menu__panel-item{font-size:13px;font-weight:400;border-radius:var(--sis-radio-sm);color:var(--sis-color-menu-texto)}
html[data-sis-theme="django"]:not([data-sis-menu="oscuro"]) :is(.sis-menu__panel-item:hover,.sis-menu__panel-item:focus-visible,.sis-menu__riel-boton:hover,.sis-menu__riel-boton:focus-visible){background:var(--sis-dj-tinte);color:var(--sis-dj-rojo-texto)}
html[data-sis-theme="django"]:not([data-sis-menu="oscuro"]) .sis-menu__panel-item--activo{background:var(--sis-dj-tinte);color:var(--sis-dj-rojo-texto)}
html[data-sis-theme="django"]:not([data-sis-menu="oscuro"]) .sis-menu__riel-boton--activo{color:var(--sis-dj-rojo-texto);background:var(--sis-dj-tinte)}
html[data-sis-theme="django"]:not([data-sis-menu="oscuro"]) .sis-menu__riel-boton--toggle{color:var(--sis-color-menu-texto)}
html[data-sis-theme="django"] .sis-menu__riel-boton--activo::before{background:var(--sis-dj-rojo)}
html[data-sis-theme="django"] .sis-menu__fondo{background:#24242440}
html[data-sis-theme="django"] .sis-menu__panel-nota{border-radius:24px;font-size:10px;letter-spacing:.06em}
html[data-sis-theme="django"] :where(.sis-menu__panel,.sis-menu__riel) :where(:focus-visible){outline:2px solid var(--sis-dj-foco);outline-offset:-2px}

/* ── 3. Superficies: paneles, tarjetas, secciones ── */
html[data-sis-theme="django"] :where(.card,.sis-tarjeta,.sis-formulario__seccion,.result-panel,.modal-content,.list-group,.offcanvas,.popover){box-shadow:none}
html[data-sis-theme="django"] :where(.card,.sis-tarjeta,.sis-formulario__seccion,.cot-modal,.cot-package-card,.crn-paquete-card,.cfg-tipo-card,.cnt-kpi,.cnt-modal,.bod-modal,.pd-modal,.per-modal,.modal-box,.zona-card,.decision-bar,.plan-card,.quick-card,.coord-card,.info-card,.tl-card,.ac-card,.pago-item,.portal-card,.resumen-item,.nprog-panel,.vacio){border:1px solid var(--sis-color-borde);border-radius:var(--sis-panel-radius);background:var(--sis-color-superficie);box-shadow:none}
html[data-sis-theme="django"] .card-header,html[data-sis-theme="django"] .card-footer{background:transparent;border-color:var(--sis-dj-linea);font-weight:500}
html[data-sis-theme="django"] .card-body{padding:16px}
html[data-sis-theme="django"] .sis-tarjeta{padding:16px}
html[data-sis-theme="django"] .sis-tarjeta__acento{border-top:2px solid var(--sis-dj-rojo)}
html[data-sis-theme="django"] .sis-app__contenido .sis-formulario__seccion{box-shadow:none;border-radius:var(--sis-panel-radius);padding:16px}
/* Encabezado de sección: 15 px peso 500 y línea roja de 2 px (el contador «01» queda para las partidas y los grupos de las tablas) */
html[data-sis-theme="django"] .sis-formulario__seccion-titulo{flex:1 1 auto;min-width:0;margin:0 0 14px;padding:0 0 8px;border-bottom:2px solid var(--sis-dj-rojo);font-size:15px;font-weight:500;letter-spacing:-.02em;line-height:1.4;text-transform:none;color:var(--sis-color-texto)}
html[data-sis-theme="django"] :where(.cn-sec__titulo,.av-sec-titulo,.cmp-sec-titulo,.ge-panel__titulo,.sec-tit,.cfg-variables-panel__titulo,.cfg-variables-grupo__titulo){margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--sis-dj-rojo);font-size:15px;font-weight:500;letter-spacing:-.02em;line-height:1.4;text-transform:none;color:var(--sis-color-texto)}
html[data-sis-theme="django"] :where(legend){width:100%;margin-bottom:8px;padding:0 0 8px;border-bottom:2px solid var(--sis-dj-rojo);font-size:14px;font-weight:500;letter-spacing:-.02em;float:none}
html[data-sis-theme="django"] .sis-formulario__acciones{border-top-color:var(--sis-dj-linea)}
html[data-sis-theme="django"] .sis-formulario__ayuda,html[data-sis-theme="django"] .sis-campo__ayuda{font-size:12px;line-height:1.5;color:var(--sis-dj-nota)}
html[data-sis-theme="django"] .sis-estado-conexion{border-radius:24px;font-size:12px}
html[data-sis-theme="django"] .sis-formulario__logo-preview{border-radius:var(--sis-radio-md)}


/* ── 4. Campos de formulario: etiqueta ARRIBA (13 px / 500 / 6 px), caja de 38 px, borde #dedfd8, radio 8 px, foco verde apagado ── */
html[data-sis-theme="django"] :where(label,.form-label,.sis-formulario__etiqueta,.sis-campo__etiqueta){font-size:var(--sis-font-size-label);font-weight:500;line-height:1.4;color:var(--sis-color-texto)}
html[data-sis-theme="django"] :where(.form-label,.sis-formulario__etiqueta,.sis-campo__etiqueta){display:block;margin:0 0 6px}
html[data-sis-theme="django"] :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]),select,textarea,.form-control,.form-select){
  border:1px solid var(--sis-dj-campo);border-radius:var(--sis-control-radius);background-color:var(--sis-color-superficie);
  color:var(--sis-dj-texto-campo);font-size:13px;line-height:normal;padding-block:8px;box-shadow:none}
html[data-sis-theme="django"] :where(select,.form-select){text-overflow:ellipsis}
html[data-sis-theme="django"] :where(input,select,textarea,.form-control,.form-select):focus,
html[data-sis-theme="django"] :where(input,select,textarea,.form-control,.form-select):focus-visible{border-color:var(--sis-dj-campo);box-shadow:none;outline:2px solid var(--sis-dj-foco);outline-offset:2px}
html[data-sis-theme="django"] :where(input,textarea)::placeholder{color:var(--sis-control-placeholder);opacity:1}
html[data-sis-theme="django"] :where(input,select,textarea,.form-control,.form-select):disabled,
html[data-sis-theme="django"] :where(input,select,textarea,.form-control,.form-select)[readonly]{background:var(--sis-control-disabled);color:var(--sis-dj-nota);border-color:var(--sis-dj-campo)}
html[data-sis-theme="django"] :where(input,select,textarea,.form-control,.form-select)[aria-invalid="true"],
html[data-sis-theme="django"] :where(input,select,textarea,.form-control,.form-select).is-invalid{border-color:var(--sis-dj-error-texto);box-shadow:none}
html[data-sis-theme="django"] :where(input,select,textarea,.form-control,.form-select).is-invalid:focus{outline-color:var(--sis-dj-error-texto)}
/* El esqueleto maestro fija sus propios foco/borde dentro de .sis-app__contenido (azul): aquí se igualan al tema */
html[data-sis-theme="django"] .sis-app__contenido :is(.form-control,.form-select,.input-group-text){min-height:var(--sis-control-height);border-color:var(--sis-dj-campo);color:var(--sis-dj-texto-campo)}
html[data-sis-theme="django"] .sis-app__contenido :is(.form-control,.form-select,.form-check-input):focus,html[data-sis-theme="django"] .sis-app__contenido .btn:focus-visible{border-color:var(--sis-dj-campo);box-shadow:none;outline:2px solid var(--sis-dj-foco);outline-offset:2px}
html[data-sis-theme="django"] .sis-app__contenido :is(h1,.h1,.h2,.h3,.h4){letter-spacing:-.02em}
html[data-sis-theme="django"] .sis-app__contenido :is(h1,.h1){letter-spacing:-.035em}
html[data-sis-theme="django"] :where(.invalid-feedback,.sis-campo__error,.sis-mdl-msg){color:var(--sis-dj-error-texto);font-size:12px}
html[data-sis-theme="django"] :where(.form-text){font-size:12px;line-height:1.5}
html[data-sis-theme="django"] input[type="file"]{font-size:13px;color:var(--sis-dj-boton-texto)}
html[data-sis-theme="django"] input[type="file"]::file-selector-button{margin-right:10px;padding:6px 12px;border:1px solid var(--sis-dj-boton);border-radius:var(--sis-control-radius);background:transparent;color:var(--sis-dj-boton-texto);font:inherit;font-size:13px;cursor:pointer}
html[data-sis-theme="django"] input[type="file"]::file-selector-button:hover{border-color:var(--sis-dj-boton-hover);color:var(--sis-dj-boton-hover-texto)}
html[data-sis-theme="django"] :where(.input-group-text){background:var(--sis-color-superficie-alterna);border:1px solid var(--sis-dj-campo);border-radius:var(--sis-control-radius);color:var(--sis-dj-nota);font-size:13px}
html[data-sis-theme="django"] :where(.input-group)>:where(.form-control,.form-select){min-height:var(--sis-control-height)}
/* Sufijo de unidad dentro de la caja (m², %, USD): se pinta en #85887e → #6a6d63 por contraste */
html[data-sis-theme="django"] :where(.area-input,.sis-campo__sufijo-wrap){position:relative}
html[data-sis-theme="django"] .area-input span,html[data-sis-theme="django"] .sis-campo__sufijo{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--sis-dj-nota);font-size:13px;pointer-events:none}
/* Casillas y botones de opción: verde apagado */
html[data-sis-theme="django"] :where(input[type="checkbox"],input[type="radio"],.form-check-input){accent-color:var(--sis-dj-verde);border-color:#b8bcae}
html[data-sis-theme="django"] .form-check-input:checked,html[data-sis-theme="django"] .form-check-input:indeterminate{background-color:var(--sis-dj-verde);border-color:var(--sis-dj-verde)}
html[data-sis-theme="django"] :where(.form-check-input):focus{box-shadow:none}
html[data-sis-theme="django"] :where(.form-check-label,.sis-pa__opciones-check label){font-size:13px;font-weight:400;color:var(--sis-color-texto)}
html[data-sis-theme="django"] .form-switch .form-check-input:checked{background-color:var(--sis-dj-verde);border-color:var(--sis-dj-verde)}
/* Opción tipo tarjeta (.project-option) y píldora (.scope-pill): utilidades del tema */
html[data-sis-theme="django"] .sis-opcion-tarjeta{display:flex;align-items:center;gap:10px;min-height:40px;padding:8px;border:1px solid var(--sis-dj-campo);border-radius:var(--sis-radio-md);background:var(--sis-color-superficie);font-size:13px;font-weight:400;line-height:1.5}
html[data-sis-theme="django"] .sis-opcion-tarjeta:has(input:checked){border-color:var(--sis-dj-verde-borde);background:var(--sis-dj-verde-fondo);color:var(--sis-dj-verde-texto)}
html[data-sis-theme="django"] .sis-opcion-tarjeta:has(input:disabled){color:#a2a49c;background:#f5f5f2;cursor:not-allowed}
html[data-sis-theme="django"] .sis-opcion-tarjeta:focus-within{outline:2px solid var(--sis-dj-foco);outline-offset:3px}
html[data-sis-theme="django"] .sis-pildora{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:10px 14px;border:1px solid #e3e4de;border-radius:24px;background:var(--sis-color-fondo);color:var(--sis-dj-nota);font-size:12px;font-weight:400;line-height:1.4;cursor:pointer}
html[data-sis-theme="django"] .sis-pildora:hover{border-color:var(--sis-dj-tinte-borde-fuerte)}
html[data-sis-theme="django"] .sis-pildora:has(input:checked){background:#fff5f7;border-color:var(--sis-dj-tinte-borde);color:#55504f}
html[data-sis-theme="django"] .sis-pildora:has(input:focus-visible){outline:2px solid var(--sis-dj-rojo);outline-offset:3px}
/* Campos con etiqueta interior (…campo56, …dato56, .form-floating, …): en Django la etiqueta va ARRIBA y la caja mide 38 px.
   Cada pantalla trae su CSS propio (muchas veces al final de la página, con !important e identificadores): por eso estas reglas llevan body, :not(#_) (sube la especificidad a la de un id) y !important.
   :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo) = el contenedor del campo; :is(label,span:first-child:not(:only-child),[class*="etiqueta56"],[class*="label56"]) = el rótulo (label, span inicial o clase …etiqueta56 / …label56). */
html[data-sis-theme="django"] :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo){position:relative}
html[data-sis-theme="django"] :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo):not(td):not(th):not([hidden]){display:flex!important;flex-direction:column}
html[data-sis-theme="django"] :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo):not(td):not(th)>:is(label,span:first-child:not(:only-child),[class*="etiqueta56"],[class*="label56"]){order:-1}
html[data-sis-theme="django"]:not(#_) body :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo)>:is(label,span:first-child:not(:only-child),[class*="etiqueta56"],[class*="label56"]):not(:last-child),
html[data-sis-theme="django"]:not(#_) body :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo)>label:last-child,
html[data-sis-theme="django"]:not(#_) body :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo)>:is(label,span:first-child:not(:only-child),[class*="etiqueta56"],[class*="label56"]):last-child:not(:only-child){position:static!important;inset:auto!important;display:block;width:auto!important;height:auto!important;margin:0 0 6px!important;padding:0!important;background:transparent!important;
  color:var(--sis-color-texto)!important;font-size:13px!important;font-weight:500!important;line-height:1.4!important;letter-spacing:0;text-transform:none;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;pointer-events:auto!important;transform:none!important;opacity:1!important}
html[data-sis-theme="django"]:not(#_) body :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo) label>span:first-child:not(:only-child){position:static!important;inset:auto!important;display:block;width:auto!important;height:auto!important;margin:0 0 6px!important;padding:0!important;font-size:13px!important;font-weight:500!important;line-height:1.4!important;color:var(--sis-color-texto)!important;transform:none!important;white-space:normal!important;pointer-events:auto!important}
html[data-sis-theme="django"]:not(#_) body .form-floating>label::after{display:none!important}
html[data-sis-theme="django"]:not(#_) body :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo)>:is(input:not([type="checkbox"]):not([type="radio"]),select,textarea,.form-control,.form-select,.comp-input),
html[data-sis-theme="django"]:not(#_) body :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo)>:is(span,div):not([class*="etiqueta"]):not([class*="label"])>:is(input:not([type="checkbox"]):not([type="radio"]),select){height:auto!important;min-height:var(--sis-control-height)!important;padding:8px 10px!important;
  font-size:13px!important;line-height:1.4!important;border:1px solid var(--sis-dj-campo)!important;border-radius:var(--sis-control-radius)!important;background-color:var(--sis-color-superficie)!important;color:var(--sis-dj-texto-campo)}
html[data-sis-theme="django"]:not(#_) body :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo)>select{padding-right:32px!important}
html[data-sis-theme="django"]:not(#_) body :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo)>textarea{min-height:96px!important}
html[data-sis-theme="django"]:not(#_) body :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo)>:is(input,select,textarea,.comp-input):is(:focus,:focus-visible){outline:2px solid var(--sis-dj-foco)!important;outline-offset:2px!important;border-color:var(--sis-dj-campo)!important;box-shadow:none!important}
html[data-sis-theme="django"]:not(#_) body :is(.form-floating,[class*="campo56"],[class*="dato56"],.obra-spec56,.obra-pres56,.obra-correo56,.obra-masiva56,.obra-crono56,.sis-obra__campo-compuesto56,.pm56-campo,.login-campo)>:is(input,select,textarea):disabled{background-color:var(--sis-control-disabled)!important;color:var(--sis-dj-nota)}
html[data-sis-theme="django"] .sis-campo{position:relative}
html[data-sis-theme="django"] .sis-campo__etiqueta{position:static;display:block;margin:0 0 6px;padding:0;background:transparent;font-size:13px;font-weight:500;color:var(--sis-color-texto);pointer-events:auto}
html[data-sis-theme="django"] .sis-campo :where(.sis-campo__entrada,.sis-campo__control>input,.sis-campo__control>select,.sis-campo__control>textarea){min-height:var(--sis-control-height);padding:8px 10px;font-size:13px;border:1px solid var(--sis-dj-campo);border-radius:var(--sis-control-radius);color:var(--sis-dj-texto-campo)}

/* ── 5. Botones ──
   Primario: relleno #e4002b, letra blanca, radio 9 px, peso 500, hover #c50025, desactivado .45.
   Secundario / contorno: borde #d7d9d0, radio 8 px, transparente, letra #62685c, hover borde #8d9683 y letra #35432e.
   Los .sis-btn-tile conservan su tamaño: aquí solo color, borde y radio. */
html[data-sis-theme="django"] .btn{--bs-btn-font-size:13px;--bs-btn-font-weight:400;--bs-btn-border-radius:var(--sis-control-radius);--bs-btn-padding-x:16px;--bs-btn-padding-y:9px;--bs-btn-focus-shadow-rgb:84,115,71;
  min-height:40px;font-weight:400;line-height:normal;letter-spacing:0;box-shadow:none}
html[data-sis-theme="django"] .btn-primary,html[data-sis-theme="django"] .btn-danger,html[data-sis-theme="django"] .btn-success,html[data-sis-theme="django"] .btn-warning{--bs-btn-font-weight:500;font-weight:500}
html[data-sis-theme="django"] .btn-sm{--bs-btn-font-size:12px;--bs-btn-padding-y:5px;--bs-btn-padding-x:10px;min-height:30px}
html[data-sis-theme="django"] .btn-lg{--bs-btn-font-size:17px;--bs-btn-padding-y:18px;--bs-btn-padding-x:24px;min-height:64px;font-weight:500}
html[data-sis-theme="django"] .btn:focus-visible,html[data-sis-theme="django"] :where(button,a,[tabindex],[role="button"],summary):focus-visible{outline:2px solid var(--sis-dj-foco);outline-offset:2px;box-shadow:none}
html[data-sis-theme="django"] .btn:disabled,html[data-sis-theme="django"] .btn.disabled,html[data-sis-theme="django"] fieldset:disabled .btn{opacity:.45}
html[data-sis-theme="django"] .btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#e4002b;--bs-btn-border-color:#e4002b;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#c50025;--bs-btn-hover-border-color:#c50025;
  --bs-btn-active-color:#fff;--bs-btn-active-bg:#c50025;--bs-btn-active-border-color:#c50025;--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#e4002b;--bs-btn-disabled-border-color:#e4002b;--bs-btn-border-radius:var(--sis-radio-md)}
html[data-sis-theme="django"] :where(.btn-secondary,.btn-light,.btn-outline-secondary,.btn-outline-primary,.btn-outline-dark,.btn-outline-light,.btn-dark,.btn-outline-info,.btn-info){
  --bs-btn-color:#62685c;--bs-btn-bg:transparent;--bs-btn-border-color:#d7d9d0;--bs-btn-hover-color:#35432e;--bs-btn-hover-bg:transparent;--bs-btn-hover-border-color:#8d9683;
  --bs-btn-active-color:#35432e;--bs-btn-active-bg:#f5f5f2;--bs-btn-active-border-color:#8d9683;--bs-btn-disabled-color:#62685c;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#d7d9d0}
html[data-sis-theme="django"] :where(.btn-danger,.btn-outline-danger){--bs-btn-color:#8f2639;--bs-btn-bg:#fff1f4;--bs-btn-border-color:#ebcdd3;--bs-btn-hover-color:#8f2639;--bs-btn-hover-bg:#ffe5ea;--bs-btn-hover-border-color:#d7a4ae;
  --bs-btn-active-color:#8f2639;--bs-btn-active-bg:#ffe5ea;--bs-btn-active-border-color:#d7a4ae;--bs-btn-disabled-color:#8f2639;--bs-btn-disabled-bg:#fff1f4;--bs-btn-disabled-border-color:#ebcdd3}
html[data-sis-theme="django"] :where(.btn-success,.btn-outline-success){--bs-btn-color:#36502e;--bs-btn-bg:#f0f3ec;--bs-btn-border-color:#83937a;--bs-btn-hover-color:#36502e;--bs-btn-hover-bg:#e4eadb;--bs-btn-hover-border-color:#53674f;
  --bs-btn-active-color:#36502e;--bs-btn-active-bg:#e4eadb;--bs-btn-active-border-color:#53674f;--bs-btn-disabled-color:#36502e;--bs-btn-disabled-bg:#f0f3ec;--bs-btn-disabled-border-color:#83937a}
html[data-sis-theme="django"] :where(.btn-warning,.btn-outline-warning){--bs-btn-color:#6f4f0f;--bs-btn-bg:#fbf5e6;--bs-btn-border-color:#e8d9ae;--bs-btn-hover-color:#6f4f0f;--bs-btn-hover-bg:#f5ecd0;--bs-btn-hover-border-color:#d6bf7c;
  --bs-btn-active-color:#6f4f0f;--bs-btn-active-bg:#f5ecd0;--bs-btn-active-border-color:#d6bf7c;--bs-btn-disabled-color:#6f4f0f;--bs-btn-disabled-bg:#fbf5e6;--bs-btn-disabled-border-color:#e8d9ae}
html[data-sis-theme="django"] :where(.btn-link){--bs-btn-color:#b30022;--bs-btn-hover-color:#e4002b;--bs-btn-border-color:transparent;min-height:0;text-decoration:none}
html[data-sis-theme="django"] .btn-close{opacity:.55}
html[data-sis-theme="django"] .btn-close:hover{opacity:1}
/* Botones del sistema (.sis-btn-tile) y de ícono: contorno fino, sin sombra ni salto al pasar el cursor */
html[data-sis-theme="django"] :where(.sis-btn-tile,.sis-btn-solo-icono){font-weight:500}
html[data-sis-theme="django"] .sis-btn-tile{border:1px solid var(--sis-dj-boton);border-radius:var(--sis-control-radius);background:transparent;color:var(--sis-dj-boton-texto);box-shadow:none}
html[data-sis-theme="django"] .sis-btn-tile:hover:not(:disabled){transform:none;box-shadow:none;border-color:var(--sis-dj-boton-hover);color:var(--sis-dj-boton-hover-texto);background:transparent}
html[data-sis-theme="django"] .sis-btn-tile:active:not(:disabled){transform:none;background:var(--sis-color-superficie-alterna)}
html[data-sis-theme="django"] .sis-btn-tile--secundario{background:transparent;border-color:var(--sis-dj-boton);color:var(--sis-dj-boton-texto)}
html[data-sis-theme="django"] .sis-btn-tile--primario{background:var(--sis-dj-rojo);border-color:var(--sis-dj-rojo);color:#fff;border-radius:var(--sis-radio-md)}
html[data-sis-theme="django"] .sis-btn-tile--primario:hover:not(:disabled){background:var(--sis-color-primario-hover);border-color:var(--sis-color-primario-hover);color:#fff}
html[data-sis-theme="django"] .sis-btn-tile--peligro{background:var(--sis-dj-tinte);border-color:var(--sis-dj-tinte-borde);color:var(--sis-dj-error-texto)}
html[data-sis-theme="django"] .sis-btn-tile--peligro:hover:not(:disabled){background:#ffe5ea;border-color:var(--sis-dj-tinte-borde-fuerte);color:var(--sis-dj-error-texto)}
html[data-sis-theme="django"] .sis-btn-tile:disabled{opacity:.45}
html[data-sis-theme="django"] .sis-btn-tile:not([data-sis-texto]) span:not([data-sis-icono]){background:var(--sis-tooltip-fondo);color:var(--sis-tooltip-texto);font-size:11px;font-weight:500;letter-spacing:0;text-transform:none;border-radius:var(--sis-radio-sm);padding:5px 8px}
html[data-sis-theme="django"] [data-tooltip]::after{background:var(--sis-color-texto);font-weight:500;border-radius:var(--sis-radio-sm);box-shadow:none}
html[data-sis-theme="django"] .sis-btn-solo-icono{border-radius:var(--sis-control-radius)}
html[data-sis-theme="django"] .btn.sis-btn-solo-icono{min-width:40px;min-height:40px}
html[data-sis-theme="django"] .btn-sm.sis-btn-solo-icono{min-width:30px;min-height:30px}
html[data-sis-theme="django"] .btn-lg.sis-btn-solo-icono{min-width:48px;min-height:48px}
html[data-sis-theme="django"] .sis-acciones__boton{color:var(--sis-color-texto-suave);border-radius:var(--sis-radio-sm)}
html[data-sis-theme="django"] :is(.sis-acciones__boton:hover,.sis-acciones__boton:focus-visible){background:var(--sis-dj-tinte);color:var(--sis-dj-rojo-texto)}
html[data-sis-theme="django"] .sis-acciones__boton--eliminar:hover{background:var(--sis-dj-tinte);color:var(--sis-dj-error-texto)}
html[data-sis-theme="django"] .sis-acciones__boton--anadir:hover{background:var(--sis-dj-verde-fondo);color:var(--sis-dj-verde-texto)}
html[data-sis-theme="django"] :where(.btn-guardar,.btn-nuevo,.btn-aceptar,.cot-btn-primary,.cot-btn-acepta){border-radius:var(--sis-radio-md)}
html[data-sis-theme="django"] :where(.btn-cancelar,.btn-rechazar,.cot-btn-secondary,.cot-btn-rechaza){border-radius:var(--sis-control-radius)}


/* ── 6. Tablas (.catalog-table del sitio): sin tarjeta, sin bordes verticales, sin rayado ni cabecera pintada ──
   th/td 10×6 px, línea inferior 1 px #e9eae4, texto a la izquierda, alineado arriba, interlínea 1.5; th en gris peso 500; fila con hover #fff8f9. */
html[data-sis-theme="django"] :where(table,.table){border-collapse:collapse;color:var(--sis-color-texto);
  --bs-table-bg:transparent;--bs-table-color:var(--sis-color-texto);--bs-table-border-color:var(--sis-dj-linea);--bs-table-striped-bg:transparent;--bs-table-striped-color:var(--sis-color-texto);
  --bs-table-active-bg:var(--sis-dj-tinte);--bs-table-active-color:var(--sis-color-texto);--bs-table-hover-bg:var(--sis-dj-tinte-suave);--bs-table-hover-color:var(--sis-color-texto)}
html[data-sis-theme="django"] :where(table,.table) :where(th,td){padding:10px 6px;border-style:solid;border-color:var(--sis-dj-linea);border-width:0 0 1px;vertical-align:top;line-height:1.5;box-shadow:none}
html[data-sis-theme="django"] :where(table,.table) thead th,html[data-sis-theme="django"] :where(table,.table) th{background:var(--sis-color-encabezado-tabla);color:var(--sis-color-texto-suave);font-size:var(--sis-font-size-table);font-weight:500;letter-spacing:0;text-transform:none}
html[data-sis-theme="django"] :where(table,.table) tbody tr:hover{background:var(--sis-dj-tinte-suave)}
html[data-sis-theme="django"] :where(.table-sm) :where(th,td){padding:6px}
html[data-sis-theme="django"] .table>:not(:last-child)>:last-child>*{border-bottom-color:var(--sis-dj-linea)}
html[data-sis-theme="django"] .sis-app__contenido .table thead th{background:var(--sis-color-encabezado-tabla);color:var(--sis-color-texto-suave);font-size:var(--sis-font-size-table);font-weight:500;white-space:normal}
html[data-sis-theme="django"] .sis-app__contenido .table{--bs-table-border-color:var(--sis-dj-linea)}
html[data-sis-theme="django"] :where(.table-light,.table-secondary,.table-active,.table-dark,.table-primary,.table-info,.table-success,.table-warning,.table-danger){--bs-table-bg:transparent;--bs-table-color:var(--sis-color-texto)}
html[data-sis-theme="django"] :where(.table-bordered) :where(th,td){border-width:0 0 1px}
html[data-sis-theme="django"] :where(table,.table) :where(td,th)>small,html[data-sis-theme="django"] .categoria-tabla{display:block;margin-top:2px;font-size:11px;color:var(--sis-dj-nota)}
html[data-sis-theme="django"] :where(table,.table) details>summary,html[data-sis-theme="django"] .sis-detalle>summary{color:var(--sis-dj-rojo-texto);font-size:11px;cursor:pointer}
html[data-sis-theme="django"] :where(table,.table) details>:not(summary){margin-top:6px;font-size:11px;line-height:1.55;color:var(--sis-dj-nota)}
/* Subcategorías: la fila de capítulo/grupo lleva contador rojo y línea roja de 2 px; los niveles hijos se sangran fino; los totales cierran con línea de tinta */
html[data-sis-theme="django"] :where(table,.table){counter-reset:dj-fila-grupo}
html[data-sis-theme="django"] :where(tr.ef-grupo,tr.ef-n1,tr.lu-grupo,tr.cot-fila-fase,tr.sis-obra__val-grupo,tr.cat-grupo,tr.table-active,tr.table-secondary,tr.fila-grupo,tr.grupo,tr.capitulo)>:is(td,th){background:transparent;color:var(--sis-color-texto);font-size:13px;font-weight:500;letter-spacing:-.2px;border-bottom:2px solid var(--sis-dj-rojo);padding-top:14px}
html[data-sis-theme="django"] :where(tr.ef-grupo,tr.ef-n1,tr.lu-grupo,tr.cot-fila-fase,tr.sis-obra__val-grupo,tr.cat-grupo,tr.fila-grupo,tr.grupo,tr.capitulo)>:is(td,th):first-child::before{counter-increment:dj-fila-grupo;content:counter(dj-fila-grupo,decimal-leading-zero);margin-right:10px;font-size:11px;font-weight:500;letter-spacing:0;color:var(--sis-dj-rojo)}
html[data-sis-theme="django"] :where(tr.ef-n2,tr.ef-n3,tr.ef-n4,tr.nivel-2,tr.nivel-3,tr.sub)>:first-child{padding-left:20px;font-weight:400;color:var(--sis-color-texto)}
html[data-sis-theme="django"] :where(tr.ef-n3,tr.nivel-3)>:first-child{padding-left:34px}
html[data-sis-theme="django"] :where(tr.ef-n4)>:first-child{padding-left:48px}
html[data-sis-theme="django"] :where(tr.ef-total,tr.cb-total,tr.sis-obra__val-totales,tr.sis-pa__resumen-total,tr.sis-pdf__total,tr.sis-obra__pie-crono,tfoot tr)>:is(td,th){background:transparent;color:var(--sis-color-texto);font-weight:500;border-top:1px solid var(--sis-color-texto);border-bottom:0;font-variant-numeric:tabular-nums}
html[data-sis-theme="django"] .sis-obra__tramo td{background:transparent}
html[data-sis-theme="django"] .sis-tabla__pie{border-top-color:var(--sis-dj-linea);font-size:12px;color:var(--sis-dj-nota)}
html[data-sis-theme="django"] .sis-tabla__paginas button{border-color:var(--sis-dj-boton);border-radius:var(--sis-radio-sm);background:transparent;color:var(--sis-dj-boton-texto)}
html[data-sis-theme="django"] .sis-tabla__paginas button:hover{background:var(--sis-dj-tinte);color:var(--sis-dj-rojo-texto);border-color:var(--sis-dj-tinte-borde)}
html[data-sis-theme="django"] .sis-tabla__filas-visibles select{border-color:var(--sis-dj-campo);border-radius:var(--sis-radio-sm);font-size:12px}
html[data-sis-theme="django"] .sis-tabla__check{accent-color:var(--sis-dj-verde)}
html[data-sis-theme="django"] :where(.table-responsive,[class*="tabla-contenedor"],[class*="table-wrap"]){scrollbar-gutter:stable}

/* ── 7. Pestañas, píldoras, listas, paginación, acordeón ── */
html[data-sis-theme="django"] .nav-tabs{--bs-nav-tabs-border-color:var(--sis-dj-linea-fuerte);--bs-nav-tabs-border-radius:0;--bs-nav-tabs-link-hover-border-color:transparent transparent var(--sis-dj-tinte-borde);--bs-nav-tabs-link-active-color:var(--sis-dj-rojo-texto);--bs-nav-tabs-link-active-bg:transparent;--bs-nav-tabs-link-active-border-color:transparent transparent var(--sis-dj-rojo);border-bottom:1px solid var(--sis-dj-linea-fuerte);gap:4px}
html[data-sis-theme="django"] .nav-tabs .nav-link{padding:10px 14px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--sis-color-texto-suave);font-size:13px;font-weight:500;letter-spacing:0;margin-bottom:-1px}
html[data-sis-theme="django"] .nav-tabs .nav-link:hover{color:var(--sis-dj-rojo-texto);background:var(--sis-dj-tinte);border-color:transparent transparent var(--sis-dj-tinte-borde)}
html[data-sis-theme="django"] .nav-tabs .nav-link.active,html[data-sis-theme="django"] .nav-tabs .nav-item.show .nav-link{color:var(--sis-dj-rojo-texto);background:transparent;border-color:transparent transparent var(--sis-dj-rojo)}
html[data-sis-theme="django"] .nav-pills{--bs-nav-pills-link-active-color:var(--sis-dj-rojo-texto);--bs-nav-pills-link-active-bg:var(--sis-dj-tinte);gap:4px}
html[data-sis-theme="django"] .nav-pills .nav-link{border-radius:var(--sis-radio-sm);color:var(--sis-color-texto-suave);font-size:13px;font-weight:500}
html[data-sis-theme="django"] .nav-pills .nav-link:hover{background:var(--sis-dj-tinte);color:var(--sis-dj-rojo-texto)}
html[data-sis-theme="django"] .nav-pills .nav-link.active{background:var(--sis-dj-tinte);color:var(--sis-dj-rojo-texto)}
html[data-sis-theme="django"] .nav-link{color:var(--sis-color-texto-suave)}
html[data-sis-theme="django"] .nav-link:hover,html[data-sis-theme="django"] .nav-link:focus-visible{color:var(--sis-dj-rojo-texto)}
html[data-sis-theme="django"] .sis-pest__tab{font-size:13px;font-weight:500;letter-spacing:0}
html[data-sis-theme="django"] .sis-pest__tab:hover{background:var(--sis-dj-tinte);color:var(--sis-dj-rojo-texto)}
html[data-sis-theme="django"] .sis-pest__tab[aria-selected="true"]{color:var(--sis-dj-rojo-texto);border-bottom-color:var(--sis-dj-rojo)}
html[data-sis-theme="django"] .sis-pest__grupo-etq{letter-spacing:1.2px;color:var(--sis-dj-nota)}
html[data-sis-theme="django"] .list-group{--bs-list-group-border-color:var(--sis-dj-linea-fuerte);--bs-list-group-border-radius:var(--sis-panel-radius);--bs-list-group-active-bg:var(--sis-dj-tinte);--bs-list-group-active-color:var(--sis-dj-rojo-texto);--bs-list-group-active-border-color:var(--sis-dj-tinte-borde);--bs-list-group-action-hover-bg:var(--sis-dj-tinte-suave);--bs-list-group-action-hover-color:var(--sis-dj-rojo-texto);--bs-list-group-bg:transparent}
html[data-sis-theme="django"] .list-group-item{font-size:13px;padding:10px 12px}
html[data-sis-theme="django"] .pagination{--bs-pagination-border-radius:var(--sis-radio-sm);--bs-pagination-color:var(--sis-dj-boton-texto);--bs-pagination-border-color:var(--sis-dj-boton);--bs-pagination-bg:transparent;--bs-pagination-hover-color:var(--sis-dj-rojo-texto);--bs-pagination-hover-bg:var(--sis-dj-tinte);--bs-pagination-hover-border-color:var(--sis-dj-tinte-borde);--bs-pagination-active-bg:var(--sis-dj-tinte);--bs-pagination-active-color:var(--sis-dj-rojo-texto);--bs-pagination-active-border-color:var(--sis-dj-tinte-borde);--bs-pagination-focus-box-shadow:none;--bs-pagination-font-size:13px}
html[data-sis-theme="django"] .accordion{--bs-accordion-border-color:var(--sis-dj-linea-fuerte);--bs-accordion-border-radius:var(--sis-panel-radius);--bs-accordion-btn-focus-box-shadow:none;--bs-accordion-active-bg:var(--sis-dj-tinte-suave);--bs-accordion-active-color:var(--sis-dj-rojo-texto);--bs-accordion-bg:transparent}
html[data-sis-theme="django"] .accordion-button{font-size:13px;font-weight:500;letter-spacing:-.1px}
html[data-sis-theme="django"] .breadcrumb{--bs-breadcrumb-divider-color:var(--sis-dj-nota);font-size:12px}
html[data-sis-theme="django"] .progress{--bs-progress-height:6px;--bs-progress-bg:#edeee8;--bs-progress-bar-bg:var(--sis-dj-rojo);--bs-progress-border-radius:24px;--bs-progress-font-size:10px}
html[data-sis-theme="django"] .dropdown-menu{--bs-dropdown-border-color:var(--sis-color-borde);--bs-dropdown-border-radius:var(--sis-radio-md);--bs-dropdown-bg:var(--sis-color-fondo);--bs-dropdown-padding-x:6px;--bs-dropdown-padding-y:6px;--bs-dropdown-font-size:13px;--bs-dropdown-link-color:var(--sis-color-texto-suave);--bs-dropdown-link-hover-bg:var(--sis-dj-tinte);--bs-dropdown-link-hover-color:var(--sis-dj-rojo);--bs-dropdown-link-active-bg:var(--sis-dj-tinte);--bs-dropdown-link-active-color:var(--sis-dj-rojo-texto);--bs-dropdown-box-shadow:0 8px 24px #24242412;box-shadow:0 8px 24px #24242412}
html[data-sis-theme="django"] .dropdown-item{border-radius:var(--sis-radio-sm);padding:10px 12px;font-size:13px}
html[data-sis-theme="django"] .dropdown-divider{border-color:var(--sis-dj-linea-fuerte)}

/* ── 8. Insignias, avisos, notificaciones y diálogos ── */
html[data-sis-theme="django"] .badge{padding:.35em .75em;border:1px solid transparent;border-radius:24px;font-size:11px;font-weight:500;letter-spacing:0;line-height:1.3}
html[data-sis-theme="django"] .badge:is(.bg-primary,.text-bg-primary){background:var(--sis-dj-tinte)!important;color:var(--sis-dj-rojo-texto)!important;border-color:var(--sis-dj-tinte-borde)}
html[data-sis-theme="django"] .badge:is(.bg-success,.text-bg-success){background:var(--sis-dj-verde-fondo)!important;color:var(--sis-dj-verde-texto)!important;border-color:#c9d3c0}
html[data-sis-theme="django"] .badge:is(.bg-danger,.text-bg-danger){background:var(--sis-dj-tinte)!important;color:var(--sis-dj-error-texto)!important;border-color:var(--sis-dj-tinte-borde)}
html[data-sis-theme="django"] .badge:is(.bg-warning,.text-bg-warning){background:#fbf5e6!important;color:#6f4f0f!important;border-color:#e8d9ae}
html[data-sis-theme="django"] .badge:is(.bg-info,.text-bg-info){background:#eef3f6!important;color:#2e4a5b!important;border-color:#d3e0e8}
html[data-sis-theme="django"] .badge:is(.bg-secondary,.text-bg-secondary,.bg-light,.text-bg-light,.bg-dark,.text-bg-dark){background:var(--sis-color-superficie-alterna)!important;color:var(--sis-dj-texto-campo)!important;border-color:var(--sis-dj-campo)}
html[data-sis-theme="django"] .alert{--bs-alert-border-radius:var(--sis-radio-md);--bs-alert-padding-y:12px;--bs-alert-padding-x:14px;--bs-alert-color:var(--sis-dj-texto-campo);--bs-alert-bg:var(--sis-color-superficie);--bs-alert-border-color:var(--sis-color-borde);font-size:13px;line-height:1.55;border-left-width:3px}
html[data-sis-theme="django"] .alert-primary,html[data-sis-theme="django"] .alert-danger{--bs-alert-color:#8f2639;--bs-alert-bg:#fff1f4;--bs-alert-border-color:#ebcdd3;border-left-color:var(--sis-dj-error-texto)}
html[data-sis-theme="django"] .alert-success{--bs-alert-color:#36502e;--bs-alert-bg:#f0f3ec;--bs-alert-border-color:#c9d3c0;border-left-color:var(--sis-dj-verde)}
html[data-sis-theme="django"] .alert-warning{--bs-alert-color:#6f4f0f;--bs-alert-bg:#fbf5e6;--bs-alert-border-color:#e8d9ae;border-left-color:#b8892a}
html[data-sis-theme="django"] .alert-info{--bs-alert-color:#2e4a5b;--bs-alert-bg:#eef3f6;--bs-alert-border-color:#d3e0e8;border-left-color:var(--sis-color-info)}
html[data-sis-theme="django"] .alert-secondary,html[data-sis-theme="django"] .alert-light,html[data-sis-theme="django"] .alert-dark{--bs-alert-color:var(--sis-dj-texto-campo);--bs-alert-bg:var(--sis-color-superficie-alterna);--bs-alert-border-color:var(--sis-dj-campo)}
html[data-sis-theme="django"] .alert-link{font-weight:500}
html[data-sis-theme="django"] .toast{--bs-toast-border-radius:var(--sis-radio-md);--bs-toast-border-color:var(--sis-color-borde);--bs-toast-bg:var(--sis-color-superficie);--bs-toast-font-size:13px;--bs-toast-box-shadow:0 8px 24px #24242412;box-shadow:0 8px 24px #24242412}
html[data-sis-theme="django"] .tooltip{--bs-tooltip-bg:var(--sis-color-texto);--bs-tooltip-font-size:11px;--bs-tooltip-border-radius:var(--sis-radio-sm)}
html[data-sis-theme="django"] .popover{--bs-popover-border-color:var(--sis-color-borde);--bs-popover-border-radius:var(--sis-radio-md);--bs-popover-box-shadow:0 8px 24px #24242412;--bs-popover-header-bg:transparent;--bs-popover-font-size:13px}
/* Modal de Bootstrap, sisModal y sisDialogo: panel blanco de 12 px, título con línea roja de 2 px, fondo #24242440 */
html[data-sis-theme="django"] .modal{--bs-modal-border-radius:var(--sis-panel-radius);--bs-modal-border-color:var(--sis-color-borde);--bs-modal-box-shadow:0 8px 24px #24242412;--bs-modal-header-border-color:var(--sis-dj-rojo);--bs-modal-footer-border-color:var(--sis-dj-linea)}
html[data-sis-theme="django"] .modal-backdrop{--bs-backdrop-bg:#242424;--bs-backdrop-opacity:.25}
html[data-sis-theme="django"] .modal-content{box-shadow:0 8px 24px #24242412}
html[data-sis-theme="django"] .modal-header{margin:0 20px;padding:16px 0 8px;border-bottom:2px solid var(--sis-dj-rojo)}
html[data-sis-theme="django"] .modal-header .modal-title,html[data-sis-theme="django"] .modal-title{flex:1;padding:0;border:0;font-size:16px;font-weight:500;letter-spacing:-.02em;line-height:1.4}
html[data-sis-theme="django"] .modal-header .btn-close{margin:0 0 0 12px;padding:6px}
html[data-sis-theme="django"] .modal-body{padding:16px 20px;font-size:13px}
html[data-sis-theme="django"] .modal-footer{padding:12px 20px 16px;border-top:1px solid var(--sis-dj-linea)}
html[data-sis-theme="django"] .offcanvas{--bs-offcanvas-border-color:var(--sis-color-borde);--bs-offcanvas-bg:var(--sis-color-fondo)}
html[data-sis-theme="django"] .sis-mdl-fondo,html[data-sis-theme="django"] .sis-dlg-fondo{background:#24242440}
html[data-sis-theme="django"] .sis-mdl,html[data-sis-theme="django"] .sis-dlg{border:1px solid var(--sis-color-borde);border-radius:var(--sis-panel-radius);box-shadow:0 8px 24px #24242412;background:var(--sis-color-superficie);color:var(--sis-color-texto)}
html[data-sis-theme="django"] .sis-mdl-cab{padding:16px 22px 0}
html[data-sis-theme="django"] .sis-mdl-tit,html[data-sis-theme="django"] .sis-dlg-titulo{font-size:16px;font-weight:500;letter-spacing:-.02em;line-height:1.4}
html[data-sis-theme="django"] .sis-mdl-tit{padding-bottom:8px;border-bottom:2px solid var(--sis-dj-rojo)}
html[data-sis-theme="django"] .sis-mdl-sub{font-size:12px;color:var(--sis-dj-nota)}
html[data-sis-theme="django"] .sis-mdl-campo>label,html[data-sis-theme="django"] .sis-dlg-fila label{font-size:13px;font-weight:500;color:var(--sis-color-texto);margin:0 0 6px}
html[data-sis-theme="django"] :is(.sis-mdl-campo,.sis-dlg-campo,.sis-dlg-fila) :is(input[type="text"],input[type="number"],input[type="search"],select,textarea){border:1px solid var(--sis-dj-campo);border-radius:var(--sis-control-radius);padding:8px 10px;font-size:13px;color:var(--sis-dj-texto-campo);background:var(--sis-color-superficie);min-height:var(--sis-control-height)}
html[data-sis-theme="django"] :is(.sis-mdl-campo,.sis-dlg-campo,.sis-dlg-fila) :is(input,select,textarea):focus{outline:2px solid var(--sis-dj-foco);outline-offset:2px;border-color:var(--sis-dj-campo)}
html[data-sis-theme="django"] .sis-dlg{--dlg-primario:var(--sis-dj-rojo);--dlg-error:var(--sis-dj-error-texto);--dlg-ok:var(--sis-dj-verde);--dlg-borde:var(--sis-color-borde)}
html[data-sis-theme="django"] .sis-dlg-icono{border-radius:var(--sis-radio-md)}
html[data-sis-theme="django"] :is(.sis-mdl-btn,.sis-dlg-btn){border:1px solid var(--sis-dj-boton);border-radius:var(--sis-control-radius);background:transparent;color:var(--sis-dj-boton-texto);font-size:13px;font-weight:500;min-height:var(--sis-control-height)}
html[data-sis-theme="django"] :is(.sis-mdl-btn,.sis-dlg-btn):hover{background:transparent;border-color:var(--sis-dj-boton-hover);color:var(--sis-dj-boton-hover-texto)}
html[data-sis-theme="django"] :is(.sis-mdl-btn--primario,.sis-dlg-btn--primario){background:var(--sis-dj-rojo);border-color:var(--sis-dj-rojo);color:#fff;border-radius:var(--sis-radio-md)}
html[data-sis-theme="django"] :is(.sis-mdl-btn--primario,.sis-dlg-btn--primario):hover{background:var(--sis-color-primario-hover);border-color:var(--sis-color-primario-hover);color:#fff;opacity:1}
html[data-sis-theme="django"] :is(.sis-mdl-btn--peligro,.sis-dlg-btn--peligro){background:var(--sis-dj-tinte);border-color:var(--sis-dj-tinte-borde);color:var(--sis-dj-error-texto)}
html[data-sis-theme="django"] :is(.sis-mdl-btn--peligro,.sis-dlg-btn--peligro):hover{background:#ffe5ea;border-color:var(--sis-dj-tinte-borde-fuerte);color:var(--sis-dj-error-texto);opacity:1}
html[data-sis-theme="django"] :is(.sis-mdl-btn,.sis-dlg-btn):focus-visible{outline:2px solid var(--sis-dj-foco);outline-offset:2px}
html[data-sis-theme="django"] .sis-mdl-error{border-radius:var(--sis-radio-md);background:var(--sis-dj-tinte);color:var(--sis-dj-error-texto);font-weight:500}
html[data-sis-theme="django"] .sis-dlg-grupo{font-size:11px;font-weight:500;letter-spacing:1.2px;color:var(--sis-dj-nota)}


/* ── 9. Módulos con estilo propio ── */
/* Presupuesto de obra: el grupo es una «partida» (número rojo, nombre 16 px peso 500, línea roja de 2 px) y los rubros, filas con línea fina */
html[data-sis-theme="django"] .sis-obra__grupo{border:0;border-radius:0;background:transparent;margin-bottom:28px}
html[data-sis-theme="django"] .sis-obra__grupo-cabecera{align-items:baseline;gap:10px;padding:12px 0;border-bottom:2px solid var(--sis-dj-rojo);border-radius:0;background:transparent}
html[data-sis-theme="django"] .sis-obra__grupo-numero{min-width:0;color:var(--sis-dj-rojo);font-size:11px;font-weight:500;letter-spacing:0}
html[data-sis-theme="django"] .sis-obra__grupo-nombre{font-size:16px;font-weight:500;letter-spacing:normal;color:var(--sis-color-texto)}
html[data-sis-theme="django"] .sis-obra__grupo-nombre:focus{border-color:var(--sis-dj-campo);outline:2px solid var(--sis-dj-foco);outline-offset:2px}
html[data-sis-theme="django"] .sis-obra__grupo-total{font-size:13px;font-weight:500;letter-spacing:0}
html[data-sis-theme="django"] .sis-obra__peso{border-radius:24px;font-size:10.5px;font-weight:500}
html[data-sis-theme="django"] .sis-obra__rubros{padding:0}
html[data-sis-theme="django"] .sis-obra__rubro{border-bottom:1px solid var(--sis-dj-linea)}
html[data-sis-theme="django"] .sis-obra__rubro-fila{padding:8px 0}
html[data-sis-theme="django"] .sis-obra__rubro-fila input,html[data-sis-theme="django"] .sis-obra__rubro-fila select{border:1px solid var(--sis-dj-campo);border-radius:var(--sis-radio-sm);font-size:12px;color:var(--sis-dj-texto-campo)}
html[data-sis-theme="django"] .sis-obra__rubro-total{font-size:12px;font-weight:500}
html[data-sis-theme="django"] .sis-obra__grupo--apagado{background:var(--sis-color-superficie-alterna)}
html[data-sis-theme="django"] .sis-obra__total strong{font-weight:400;letter-spacing:-.5px}
html[data-sis-theme="django"] .sis-obra__c-fecha,html[data-sis-theme="django"] input.sis-obra__c-fecha,html[data-sis-theme="django"] .sis-obra__tabla input.sis-obra__c-fecha{color:var(--sis-color-texto)!important;font-weight:500}
html[data-sis-theme="django"] .sis-obra__c-dinero{color:var(--sis-dj-verde-texto);font-weight:500}
html[data-sis-theme="django"] .sis-obra__c-pct{color:var(--sis-dj-rojo-texto);font-weight:500}
html[data-sis-theme="django"] .sis-obra__pie-crono td{border-top:1px solid var(--sis-color-texto);background:transparent}

/* Portal del cliente: sus colores propios (--pm-*: azul marino y dorado) pasan a tinta y rojo; menú como lista (activo = fondo #fff1f4 y letra #b30022) */
html[data-sis-theme="django"] .portal-cliente-page,html[data-sis-theme="django"] body.portal-cliente-page{--pm-navy:var(--sis-color-texto);--pm-gold:var(--sis-dj-rojo);--pm-teal:var(--sis-dj-verde);--pm-borde:var(--sis-color-borde);--pm-sombra:none;--pm-sombra-alta:none}
html[data-sis-theme="django"] body.portal-cliente-page{background:var(--sis-color-fondo)}
html[data-sis-theme="django"] body.portal-cliente-page .pc-header.ph{--pc-nav-bg:var(--sis-color-fondo);--pc-nav-text:var(--sis-color-texto-suave);--pc-nav-text-active:var(--sis-dj-rojo-texto);--pc-accent:var(--sis-dj-rojo);background:var(--sis-color-fondo);border-bottom:1px solid var(--sis-dj-linea-fuerte);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
html[data-sis-theme="django"] body.portal-cliente-page .pc-menu{border-top:1px solid var(--sis-dj-linea-fuerte)}
html[data-sis-theme="django"] body.portal-cliente-page .pc-brand-mark{background:var(--sis-dj-rojo);border:0;border-radius:var(--sis-control-radius);box-shadow:none;color:#fff;font-weight:500}
html[data-sis-theme="django"] body.portal-cliente-page .pc-brand-name{color:var(--sis-color-texto);font-weight:500;letter-spacing:-.04em}
html[data-sis-theme="django"] body.portal-cliente-page .pc-brand-area,html[data-sis-theme="django"] body.portal-cliente-page .pc-page-context span{color:var(--sis-dj-nota)}
html[data-sis-theme="django"] body.portal-cliente-page .pc-page-context strong{color:var(--sis-color-texto);font-weight:500}
html[data-sis-theme="django"] body.portal-cliente-page .pc-action{border:1px solid var(--sis-dj-boton);border-radius:var(--sis-control-radius);background:transparent;color:var(--sis-dj-boton-texto);box-shadow:none}
html[data-sis-theme="django"] body.portal-cliente-page .pc-action:hover,html[data-sis-theme="django"] body.portal-cliente-page .pc-action:focus-visible{background:transparent;border-color:var(--sis-dj-boton-hover);color:var(--sis-dj-boton-hover-texto);box-shadow:none}
html[data-sis-theme="django"] body.portal-cliente-page .pc-link{border-radius:var(--sis-control-radius);font-weight:500;color:var(--sis-color-texto-suave)}
html[data-sis-theme="django"] body.portal-cliente-page .pc-link:hover{background:var(--sis-dj-tinte);color:var(--sis-dj-rojo-texto)}
html[data-sis-theme="django"] body.portal-cliente-page .pc-link.is-active{background:var(--sis-dj-tinte);color:var(--sis-dj-rojo-texto);box-shadow:none}
html[data-sis-theme="django"] body.portal-cliente-page .pc-link.is-active i{color:var(--sis-dj-rojo)}
html[data-sis-theme="django"] body.portal-cliente-page .pc-badge{background:var(--sis-dj-rojo);color:#fff;font-weight:500}
html[data-sis-theme="django"] body.portal-cliente-page .pc-group+.pc-group::before{border-left-color:var(--sis-dj-linea-fuerte)}
html[data-sis-theme="django"] body.portal-cliente-page .page-titulo{font-size:clamp(26px,3.4vw,38px);font-weight:500;letter-spacing:-.035em;line-height:1.12}
html[data-sis-theme="django"] body.portal-cliente-page .page-sub{font-size:14px;line-height:1.7;color:var(--sis-color-texto-suave)}
html[data-sis-theme="django"] body.portal-cliente-page :is(.plan-card,.tl-card,.ct-card,.avance-hero,.card,.cot-total-card,.zona-card,.quick-card,.plan-cobro-card,.pkg-card,.info-card,.coord-card,.contrato-card,.metodos-card,.ac-card,.cli-info-panel,.pp-panel,.nprog-panel){border-radius:var(--sis-panel-radius);border:1px solid var(--sis-color-borde);box-shadow:none;background:var(--sis-color-superficie)}
html[data-sis-theme="django"] body.portal-cliente-page :is(.quick-card,.pkg-card,.ac-card):hover{box-shadow:none;transform:none;border-color:var(--sis-dj-tinte-borde-fuerte)}
html[data-sis-theme="django"] body.portal-cliente-page .tl-card.activo-card{border-color:var(--sis-dj-tinte-borde);box-shadow:none}
html[data-sis-theme="django"] body.portal-cliente-page .modal-box{border-radius:var(--sis-panel-radius);box-shadow:0 8px 24px #24242412}
html[data-sis-theme="django"] body.portal-cliente-page :is(.btn-ir-pagos,.btn-primario,.btn-pagar,.btn-gold,.btn-nav){border-radius:var(--sis-radio-md)}
html[data-sis-theme="django"] body.portal-cliente-page .btn-ir-pagos{background:var(--sis-dj-rojo);box-shadow:none}
html[data-sis-theme="django"] body.portal-cliente-page .btn-ir-pagos:hover{background:var(--sis-color-primario-hover);filter:none}
html[data-sis-theme="django"] body.portal-cliente-page :is(.prog-track,.nprog-track){background:#edeee8}
html[data-sis-theme="django"] body.portal-cliente-page :is(.prog-fill,.nprog-fill){background:var(--sis-dj-verde)}
html[data-sis-theme="django"] body.portal-cliente-page .badge{font-weight:500;letter-spacing:0}
html[data-sis-theme="django"] body.portal-cliente-page .pc-tile{border:1px solid var(--sis-dj-boton);border-radius:var(--sis-control-radius);background:transparent;color:var(--sis-dj-boton-texto);font-weight:500}
html[data-sis-theme="django"] body.portal-cliente-page .pc-tile:hover{background:transparent;border-color:var(--sis-dj-boton-hover);color:var(--sis-dj-boton-hover-texto)}
html[data-sis-theme="django"] body.portal-cliente-page .pc-tile.activo,html[data-sis-theme="django"] body.portal-cliente-page .pc-tile[aria-pressed="true"]{border:1px solid var(--sis-dj-verde-borde);padding-top:8px;background:var(--sis-dj-verde-fondo);color:var(--sis-dj-verde-texto)}
html[data-sis-theme="django"] body.portal-cliente-page .pc-tile--p{background:var(--sis-dj-rojo);border-color:var(--sis-dj-rojo);color:#fff}
html[data-sis-theme="django"] body.portal-cliente-page .pc-tile--p>i{color:#fff}
html[data-sis-theme="django"] body.portal-cliente-page .pc-tile--p:hover{background:var(--sis-color-primario-hover);border-color:var(--sis-color-primario-hover);color:#fff}
html[data-sis-theme="django"] body.portal-cliente-page .pc-tile .pc-tile-num{background:var(--sis-dj-rojo);color:#fff;font-weight:500}
html[data-sis-theme="django"] body.portal-cliente-page .pc-tile:focus-visible{outline-color:var(--sis-dj-foco)}
html[data-sis-theme="django"] body.portal-cliente-page .pc-actions .pc-action[data-tip]::after{background:var(--sis-color-texto);border-radius:var(--sis-radio-sm);box-shadow:none;font-weight:500}
html[data-sis-theme="django"] .pc-header.ph{font-family:var(--sis-theme-font)}

/* Páginas con paleta propia --vc-* (portal, brief, programa, cotización): la tinta es #242424, el acento el rojo, el verde apagado queda para «hecho» */
html[data-sis-theme="django"] :where(.ph,.portal-header){border-bottom:1px solid var(--sis-dj-linea-fuerte)}
/* Portada: sobre fondo oscuro el rojo de marca (#e4002b, 3.2:1) pasa a un rosa claro SOLO para el texto (AA); los botones siguen en #e4002b con letra blanca */
html[data-sis-theme="django"] :is(.vc-hero,.vc-dark,.vc-footer) :is(.vc-eyebrow,.vc-tag,.vc-link-action){color:#ff7a8e}
html[data-sis-theme="django"] :is(.vc-step-num,.vc-footer-logo span){color:#ff7a8e}
html[data-sis-theme="django"] :where(.ph-logo,.portal-logo){font-weight:500;letter-spacing:-.04em;color:var(--sis-color-texto)}

/* ── 10. Móvil y puntero táctil: zonas de 44 px, campos de 16 px, sin desbordes ── */
@media (pointer:coarse),(max-width:767px){
  html[data-sis-theme="django"] .btn,html[data-sis-theme="django"] .sis-mdl-btn,html[data-sis-theme="django"] .sis-dlg-btn,html[data-sis-theme="django"] .nav-tabs .nav-link,html[data-sis-theme="django"] .dropdown-item{min-height:44px}
  html[data-sis-theme="django"] .btn-link{min-height:44px}
}
@media (max-width:767px){
  html[data-sis-theme="django"] :where(table,.table){font-size:12px}
  html[data-sis-theme="django"] :where(table,.table) :where(th,td){padding:8px 4px}
  html[data-sis-theme="django"] .sis-enc__nombre{font-size:22px;letter-spacing:-.035em}
  html[data-sis-theme="django"] .modal-header,html[data-sis-theme="django"] .modal-body,html[data-sis-theme="django"] .modal-footer{padding-inline:16px}
  html[data-sis-theme="django"] body :is(.form-floating,[class*="campo56"],[class*="dato56"])>:is(input,select,textarea){font-size:16px!important}
  html[data-sis-theme="django"] .sis-opcion-tarjeta,html[data-sis-theme="django"] .sis-pildora{min-height:44px}
}
@media (max-width:450px){
  html[data-sis-theme="django"] :where(.card-body,.sis-tarjeta){padding:14px}
}
/* <<< DJANGO:CONTRATO */
@media (prefers-reduced-motion:reduce){
  html[data-sis-theme]{scroll-behavior:auto}
  html[data-sis-theme] *,html[data-sis-theme] *::before,html[data-sis-theme] *::after{
    scroll-behavior:auto!important;
    transition-duration:0s!important;
    transition-delay:0s!important;
    animation-duration:0s!important;
    animation-delay:0s!important;
    animation-iteration-count:1!important;
  }
  .sis-saltar-contenido{transition:none}
}

.sis-theme-picker{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:12px}.sis-theme-choice{padding:16px;border:2px solid var(--sis-color-borde,#ddd);background:var(--sis-color-superficie,#fff);text-align:left}.sis-theme-choice b,.sis-theme-choice small{display:block}.sis-theme-choice small{margin-top:5px}.sis-theme-choice.is-active{outline:3px solid var(--sis-color-primario,#2563eb)}

/* La navegación lateral cerrada y los controles internos nunca deben ampliar
   el lienzo de la página. Las tablas y carruseles conservan su propio scroll. */
html[data-sis-theme],html[data-sis-theme] body{max-width:100%;overflow-x:hidden;overflow-x:clip}
@media(max-width:650px){
  .sis-theme-picker{grid-template-columns:1fr}
  html[data-sis-theme]{--sis-font-size-body:14px;--sis-font-size-label:13px;--sis-font-size-table:12px;--sis-control-height:42px}
  html[data-sis-theme] dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);margin:8px}
  html[data-sis-theme] :where(.modal-dialog,.cot-modal){max-width:calc(100vw - 16px);margin:8px auto}
}

@media(max-width:767px){
  html[data-sis-theme] :where(
    input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
    select,textarea,.form-control,.form-select
  ){font-size:16px!important}
  html[data-sis-theme] :where(button,.btn,[role="button"],[role="tab"],.sis-acciones__boton,.sis-paginacion__boton){min-height:44px;min-width:44px}
  html[data-sis-theme] :where(.form-check,.form-switch,.form-check-label,.sis-pa__opciones-check label){min-height:44px}
  html[data-sis-theme] :where(table,.table){display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}

@supports(padding:max(0px)){
  html[data-sis-theme] body{
    padding-inline-start:env(safe-area-inset-left);
    padding-inline-end:env(safe-area-inset-right);
  }
  html[data-sis-theme] :where(.sis-app__pie,.vc-footer,.portal-footer){padding-bottom:max(var(--sis-espacio-3,12px),env(safe-area-inset-bottom))}
}

@media(forced-colors:active){
  html[data-sis-theme] :where(button,.btn,a[href],input,select,textarea,[role="button"],[role="tab"]):focus-visible{outline:2px solid CanvasText!important;outline-offset:3px}
  html[data-sis-theme] :where(button,.btn,[role="button"],[role="tab"],input,select,textarea){border:1px solid ButtonText}
  html[data-sis-theme] :where([aria-current="page"],[aria-selected="true"],[aria-pressed="true"]){outline:2px solid Highlight!important;outline-offset:1px}
}

/* ── Barras de desplazamiento del sistema ───────────────────────────────
   Finas, redondeadas y sin flechas, en todas las pantallas (estudio, ERP,
   CRM y portal del cliente). El color es neutro y semitransparente para que
   se vea bien en tema claro y oscuro; al pasar el cursor se afirma. */
:root{--sis-scroll-thumb:rgba(120,130,146,.42);--sis-scroll-thumb-hover:rgba(120,130,146,.78)}
@media (prefers-color-scheme:dark){:root:not([data-sis-theme]){--sis-scroll-thumb:rgba(190,198,210,.32);--sis-scroll-thumb-hover:rgba(190,198,210,.62)}}
:root[data-sis-theme="grafito"]{--sis-scroll-thumb:rgba(190,198,210,.32);--sis-scroll-thumb-hover:rgba(190,198,210,.62)}
*::-webkit-scrollbar{width:11px;height:11px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background-color:var(--sis-scroll-thumb);border-radius:99px;border:3px solid transparent;background-clip:content-box;min-height:36px;min-width:36px}
*::-webkit-scrollbar-thumb:hover{background-color:var(--sis-scroll-thumb-hover)}
*::-webkit-scrollbar-button{display:none;width:0;height:0}
*::-webkit-scrollbar-corner{background:transparent}
@supports (-moz-appearance:none){*{scrollbar-width:thin;scrollbar-color:var(--sis-scroll-thumb) transparent}}


/* ============================================================
   AJUSTES DE APARIENCIA (se eligen encima del tema; «tema» = lo que diga el tema)
   Tipografía · densidad · esquinas · tarjetas · tablas · menú lateral · iconos
   Los controla tema-global.js con atributos en <html> (data-sis-fuente, data-sis-densidad…).
   ============================================================ */

/* Tipografía: once familias; solo se descarga la elegida (tema-global.js la pide a Google Fonts) y cada pila trae su alternativa del sistema. */
html[data-sis-fuente="moderna"]{--sis-theme-font:"Inter","Segoe UI",system-ui,-apple-system,Arial,sans-serif}
html[data-sis-fuente="humanista"]{--sis-theme-font:"Source Sans 3","Segoe UI",Calibri,system-ui,Arial,sans-serif}
html[data-sis-fuente="geometrica"]{--sis-theme-font:"Poppins","Segoe UI",system-ui,Arial,sans-serif}
html[data-sis-fuente="tecnica"]{--sis-theme-font:"IBM Plex Sans","Segoe UI",system-ui,Arial,sans-serif;font-variant-numeric:tabular-nums}
html[data-sis-fuente="editorial"]{--sis-theme-font:"Lora",Georgia,"Times New Roman",serif;--sis-fuente-titulos:"Playfair Display",Georgia,"Times New Roman",serif}
html[data-sis-fuente="clasica"]{--sis-theme-font:"Merriweather",Georgia,"Times New Roman",serif}
html[data-sis-fuente="redondeada"]{--sis-theme-font:"Nunito","Segoe UI",system-ui,Arial,sans-serif}
html[data-sis-fuente="compacta"]{--sis-theme-font:"Barlow Semi Condensed","Arial Narrow",Arial,sans-serif;--sis-font-size-body:15px;--sis-font-size-table:14px;--sis-font-size-label:14px}
html[data-sis-fuente="urbana"]{--sis-theme-font:"Montserrat","Segoe UI",system-ui,Arial,sans-serif}
html[data-sis-fuente="robusta"]{--sis-theme-font:"Roboto Slab",Georgia,"Times New Roman",serif}
html[data-sis-fuente="trazo"]{--sis-theme-font:"Space Grotesk","Segoe UI",system-ui,Arial,sans-serif}
html[data-sis-fuente]:not([data-sis-fuente="tema"]) :where(button,.btn,.sis-btn-tile,table,th,td,.nav-link,.dropdown-item,.sis-menu a,.form-label,small){font-family:var(--sis-theme-font)}
html[data-sis-fuente]:not([data-sis-fuente="tema"]) :where(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){font-family:var(--sis-fuente-titulos,var(--sis-theme-font))}

/* Títulos: letra, tamaño y grosor propios (se eligen aparte del texto). «igual» / «normal» / «tema» = no se toca nada. */
html[data-sis-titulos-fuente="moderna"]{--sis-titulos-pila:"Inter","Segoe UI",system-ui,-apple-system,Arial,sans-serif}
html[data-sis-titulos-fuente="humanista"]{--sis-titulos-pila:"Source Sans 3","Segoe UI",Calibri,system-ui,Arial,sans-serif}
html[data-sis-titulos-fuente="geometrica"]{--sis-titulos-pila:"Poppins","Segoe UI",system-ui,Arial,sans-serif}
html[data-sis-titulos-fuente="tecnica"]{--sis-titulos-pila:"IBM Plex Sans","Segoe UI",system-ui,Arial,sans-serif}
html[data-sis-titulos-fuente="editorial"]{--sis-titulos-pila:"Playfair Display",Georgia,"Times New Roman",serif}
html[data-sis-titulos-fuente="clasica"]{--sis-titulos-pila:"Merriweather",Georgia,"Times New Roman",serif}
html[data-sis-titulos-fuente="redondeada"]{--sis-titulos-pila:"Nunito","Segoe UI",system-ui,Arial,sans-serif}
html[data-sis-titulos-fuente="compacta"]{--sis-titulos-pila:"Barlow Semi Condensed","Arial Narrow",Arial,sans-serif}
html[data-sis-titulos-fuente="urbana"]{--sis-titulos-pila:"Montserrat","Segoe UI",system-ui,Arial,sans-serif}
html[data-sis-titulos-fuente="robusta"]{--sis-titulos-pila:"Roboto Slab",Georgia,"Times New Roman",serif}
html[data-sis-titulos-fuente="trazo"]{--sis-titulos-pila:"Space Grotesk","Segoe UI",system-ui,Arial,sans-serif}
html[data-sis-titulos-fuente]:not([data-sis-titulos-fuente="igual"]) :where(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){font-family:var(--sis-titulos-pila)}
html[data-sis-titulos-fuente]:not([data-sis-titulos-fuente="igual"]) :where(.page,.portal-card) :where(h1,h2,h3)[style*="font-family"]{font-family:var(--sis-titulos-pila)!important}
html[data-sis-titulos-tam="pequeno"]{--sis-titulos-escala:.88}
html[data-sis-titulos-tam="grande"]{--sis-titulos-escala:1.15}
html[data-sis-titulos-tam="muygrande"]{--sis-titulos-escala:1.3}
html[data-sis-titulos-tam] :where(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){zoom:var(--sis-titulos-escala,1)}
html[data-sis-titulos-peso="normal"] :where(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){font-weight:400}
html[data-sis-titulos-peso="semi"] :where(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){font-weight:600}
html[data-sis-titulos-peso="negrita"] :where(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){font-weight:700}

/* Densidad */
html[data-sis-densidad="compacta"]{--sis-font-size-body:13px;--sis-font-size-label:12px;--sis-font-size-table:12px;--sis-control-height:34px;--sis-control-padding-x:10px}
html[data-sis-densidad="comoda"]{--sis-font-size-body:14px;--sis-font-size-label:13px;--sis-font-size-table:13px;--sis-control-height:42px;--sis-control-padding-x:12px}
html[data-sis-densidad="amplia"]{--sis-font-size-body:15px;--sis-font-size-label:14px;--sis-font-size-table:14px;--sis-control-height:50px;--sis-control-padding-x:16px}
html[data-sis-densidad="compacta"] :where(.table>:not(caption)>*>*,table.sis-tabla td,table.sis-tabla th){padding:.25rem .5rem}
html[data-sis-densidad="amplia"] :where(.table>:not(caption)>*>*,table.sis-tabla td,table.sis-tabla th){padding:.8rem 1rem}
html[data-sis-densidad="compacta"] :where(.sis-formulario__seccion,.card-body,.sis-tarjeta){padding-block:10px}
html[data-sis-densidad="amplia"] :where(.sis-formulario__seccion,.card-body,.sis-tarjeta){padding-block:24px}

/* Esquinas */
html[data-sis-forma="recta"]{--sis-radio-sm:0px;--sis-radio-md:0px;--sis-radio-lg:0px;--sis-control-radius:0px;--sis-panel-radius:0px;--bs-border-radius:0;--bs-border-radius-sm:0;--bs-border-radius-lg:0}
html[data-sis-forma="suave"]{--sis-radio-sm:4px;--sis-radio-md:8px;--sis-radio-lg:12px;--sis-control-radius:8px;--sis-panel-radius:10px;--bs-border-radius:.5rem;--bs-border-radius-sm:.25rem;--bs-border-radius-lg:.75rem}
html[data-sis-forma="redonda"]{--sis-radio-sm:10px;--sis-radio-md:16px;--sis-radio-lg:24px;--sis-control-radius:14px;--sis-panel-radius:22px;--bs-border-radius:1rem;--bs-border-radius-sm:.65rem;--bs-border-radius-lg:1.5rem}
html[data-sis-forma]:not([data-sis-forma="tema"]) :where(.sis-btn-tile,.btn,.card,.sis-tarjeta,.sis-formulario__seccion,.modal-content,.dropdown-menu,.alert,.badge){border-radius:var(--sis-panel-radius)}
html[data-sis-forma]:not([data-sis-forma="tema"]) :where(.sis-btn-tile,.btn,.badge){border-radius:var(--sis-control-radius)}

/* Tarjetas y paneles */
html[data-sis-tarjetas="plano"]{--sis-sombra-suave:none;--sis-sombra-media:none}
html[data-sis-tarjetas="elevado"]{--sis-sombra-suave:0 2px 10px rgba(16,24,40,.12);--sis-sombra-media:0 14px 34px rgba(16,24,40,.22)}
html[data-sis-tarjetas="plano"] :where(.card,.sis-tarjeta,.sis-formulario__seccion,.modal-content){box-shadow:none}
html[data-sis-tarjetas="elevado"] :where(.card,.sis-tarjeta,.sis-formulario__seccion){box-shadow:var(--sis-sombra-suave);border-color:transparent}
html[data-sis-tarjetas="contorno"] :where(.card,.sis-tarjeta,.sis-formulario__seccion){box-shadow:none;border:1.5px solid var(--sis-color-borde)}

/* Tablas */
html[data-sis-tablas="rayada"] :where(table.table,table.sis-tabla) tbody tr:nth-child(even)>*{background-color:color-mix(in srgb,var(--sis-color-primario) 6%,transparent)}
html[data-sis-tablas="lineas"] :where(table.table,table.sis-tabla) :where(th,td){border:1px solid var(--sis-color-borde)}
html[data-sis-tablas="limpia"] :where(table.table,table.sis-tabla) :where(td){border-bottom:0}
html[data-sis-tablas="limpia"] :where(table.table,table.sis-tabla) thead :where(th){border-bottom:2px solid var(--sis-color-borde)}

/* Menú lateral */
html[data-sis-menu="oscuro"]{--sis-color-menu-fondo:#151b2b;--sis-color-menu-fondo-hover:#1f2a44;--sis-color-menu-texto:#aeb8cc;--sis-color-menu-texto-activo:#fff}
html[data-sis-menu="claro"]{--sis-color-menu-fondo:#fff;--sis-color-menu-fondo-hover:#eef1f7;--sis-color-menu-texto:#4b5565;--sis-color-menu-texto-activo:var(--sis-color-primario)}
html[data-sis-menu="claro"] .sis-menu{border-right:1px solid var(--sis-color-borde,#dfe5ee)}

/* Iconos: tamaño, trazo y estilo (los iconos son Bootstrap Icons: se ajusta cómo se dibujan, no cuáles son) */
html[data-sis-iconos-tam="pequenos"] .bi::before{font-size:.86em}
html[data-sis-iconos-tam="grandes"] .bi::before{font-size:1.22em}
html[data-sis-iconos-trazo="medio"] .bi::before{-webkit-text-stroke:.35px currentColor}
html[data-sis-iconos-trazo="grueso"] .bi::before{-webkit-text-stroke:.75px currentColor}
html[data-sis-iconos-estilo="acento"] main :where(.bi):not(.sis-btn-tile--primario .bi,.sis-btn-tile--peligro .bi,.btn-primary .bi,.btn-danger .bi,.badge .bi,.alert .bi){color:var(--sis-color-primario)}
html[data-sis-iconos-estilo="suave"] :where(.sis-btn-tile)>i.bi{padding:3px 10px;border-radius:var(--sis-radio-md);background:color-mix(in srgb,var(--sis-color-primario) 13%,transparent);color:var(--sis-color-primario)}
html[data-sis-iconos-estilo="suave"] :where(.sis-btn-tile--primario,.sis-btn-tile--peligro)>i.bi{background:rgba(255,255,255,.2);color:inherit}
html[data-sis-iconos-estilo="suave"] main :where(h1,h2,h3,.sis-formulario__seccion-titulo)>i.bi{padding:4px 7px;border-radius:var(--sis-radio-md);background:color-mix(in srgb,var(--sis-color-primario) 13%,transparent);color:var(--sis-color-primario)}

/* Regla común para tarjetas de cifras/resumen, no para fichas ni formularios.
   El !important evita que estilos de página o alineaciones inline heredadas
   separen la cifra de su etiqueta. No cambia display, dimensiones ni eventos. */
:is(.kpi,.ci-kpi,.cli-kpi,.crm-kpi,.erp-kpi,.pip-kpi,.pd-kpi,.cnt-kpi,.fac-kpi,.fc-kpi,.cob-kpi,.av-kpi,.ro-kpi,.lu-kpi,.th-kpi,.ol-kpi,.cr-kpi,.cron-kpi,.cron-cl-kpi,.amort-kpi,.oc-kpi,.cj-kpi,.cfg-co-kpi,.cat-tarjeta,.sis-tarjeta--kpi),
:is(.kpi,.ci-kpi,.cli-kpi,.crm-kpi,.erp-kpi,.pip-kpi,.pd-kpi,.cnt-kpi,.fac-kpi,.fc-kpi,.cob-kpi,.av-kpi,.ro-kpi,.lu-kpi,.th-kpi,.ol-kpi,.cr-kpi,.cron-kpi,.cron-cl-kpi,.amort-kpi,.oc-kpi,.cj-kpi,.cfg-co-kpi,.cat-tarjeta,.sis-tarjeta--kpi) > * {
  text-align: center !important;
}
.cj-kpi .cj-kpi__tit { justify-content: center; }

/* Resúmenes adaptativos: una sola fila. El grupo, no la página, se desplaza
   cuando no queda ancho legible. Los contenedores hidden siguen ocultos. */
@media screen {
  :is(.kpis,.ci-kpis,.cli-kpis,.crm-kpis,.erp-kpis,.pip-kpis,.pd-kpis,.cnt-kpis,.fac-kpis,.fc-kpis,.cob-kpis,.av-kpis,.ro-kpis,.lu-kpis,.th-kpis,.ol-kpi-bar,.cr-kpis,.cron-kpis,.cron-cl-kpis,.amort-kpis,.oc-kpis,.cj-rejilla--kpi,.cfg-co-kpis,.cat-resumen) {
    grid-template-columns: repeat(auto-fit, minmax(min(128px, 100%), 1fr)) !important;
    grid-template-rows: auto !important;
    grid-auto-flow: row !important;
    grid-auto-columns: auto !important;
    align-items: stretch;
    min-inline-size: 0;
    max-inline-size: 100%;
    inline-size: 100%;
    overflow: visible;
    overscroll-behavior-x: contain;
    scroll-snap-type: none;
    scrollbar-width: thin;
    padding-bottom: 0;
  }
  :is(.kpis,.ci-kpis,.cli-kpis,.crm-kpis,.erp-kpis,.pip-kpis,.pd-kpis,.cnt-kpis,.fac-kpis,.fc-kpis,.cob-kpis,.av-kpis,.ro-kpis,.lu-kpis,.th-kpis,.ol-kpi-bar,.cr-kpis,.cron-kpis,.cron-cl-kpis,.amort-kpis,.oc-kpis,.cj-rejilla--kpi,.cfg-co-kpis,.cat-resumen):not([hidden],.d-none,.hidden,[aria-hidden="true"],[style*="display: none" i],[style*="display:none" i]) { display: grid !important; }
  :is(.kpis,.ci-kpis,.cli-kpis,.crm-kpis,.erp-kpis,.pip-kpis,.pd-kpis,.cnt-kpis,.fac-kpis,.fc-kpis,.cob-kpis,.av-kpis,.ro-kpis,.lu-kpis,.th-kpis,.ol-kpi-bar,.cr-kpis,.cron-kpis,.cron-cl-kpis,.amort-kpis,.oc-kpis,.cj-rejilla--kpi,.cfg-co-kpis,.cat-resumen) > * {
    min-inline-size: 0 !important;
    align-self: stretch;
    scroll-snap-align: start;
  }
  /* Cabeceras: el título y los controles comparten espacio cuando caben.
     Los grupos completos pueden bajar de fila; cada acción sigue accesible. */
  #sisEncabezado:is(.ci-cabecera,.crm-cabecera,.cli-cabecera) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 24px;
  }
  #sisEncabezado:is(.ci-cabecera,.crm-cabecera,.cli-cabecera) > .sis-enc__texto { flex: 1 1 180px; }
  #sisEncabezado :is(.ci-cabecera-resumen,.crm-cabecera-kpis) { flex: 1 1 480px; width: auto; min-width: 0; }
  #sisEncabezado .cli-cabecera-acciones {
    flex: 1 1 600px;
    flex-wrap: wrap;
    justify-content: flex-end;
    width: auto;
    min-width: 0;
    max-width: 100%;
    overflow: visible;
    padding-bottom: 0;
  }
  #sisEncabezado .cli-cabecera-acciones > #cliKpis { flex: 0 1 266px; min-width: 0; width: min(266px, 100%); }
  #sisEncabezado .cli-cabecera-acciones > :not(#cliKpis) { flex: 1 1 280px; min-width: 0; max-width: 100%; flex-wrap: wrap; justify-content: flex-end; }
  #sisEncabezado #crmKpis { block-size: 100%; }
  .sis-enc__acciones, .sis-enc__acciones > [data-sis-enc-accion] { flex-wrap: wrap; min-width: 0; max-width: 100%; }
  header.sis-app__superior { flex-wrap: wrap; }
  header.sis-app__superior > [data-sis-contexto] { flex: 0 1 auto; min-width: 0; }
  header.sis-app__superior > :is(.sis-app__marca,.sis-app__buscador) { max-width: 100%; min-width: 0; }
  @media (max-width: 760px) {
    #sisEncabezado :is(.ci-cabecera-resumen,.crm-cabecera-kpis,.cli-cabecera-acciones) { flex-basis: 100%; width: 100%; }
    #sisEncabezado .cli-cabecera-acciones > #cliKpis { flex: 1 1 266px; width: 100%; }
  }
}

/* Importes, fechas y referencias numéricas conservan su espacio completo. */
html[data-sis-theme] :where(td,th){overflow-wrap:normal;word-break:normal}
html[data-sis-theme] :is([data-sis-numerico],.sis-numero,time,td.text-end,td.text-right,.item-pct,.det-p){white-space:nowrap!important;overflow-wrap:normal!important;word-break:normal!important;font-variant-numeric:tabular-nums}
html[data-sis-theme] .cob-referencia{max-width:32rem;min-width:12rem;white-space:normal;overflow-wrap:break-word}
html[data-sis-theme] .cob-referencia .cat-grupo{font-size:.78rem;line-height:1.4}
html[data-sis-theme] .cob-monto{min-width:9ch}
html[data-sis-theme] .cob-monto .cat-grupo{white-space:normal}
