/* ==========================================================================================================
   PANEL WEB · sistema visual (rediseño 14/11/2026)
   ==========================================================================================================
   Mismo lenguaje que app.gormatia.com: fondo gris azulado muy claro, cajas blancas de 20 px con borde suave,
   acento azul, fuente Plus Jakarta Sans, iconos en cuadrados de color y zonas pulsables grandes.

   Reglas:
   - Una sola btn-primary por pantalla (la acción principal). El resto, btn-outline-secondary.
     Borrar, btn-outline-danger.
   - Cinco colores con significado: verde hecho, ámbar pendiente, rojo problema, azul información, gris neutro.
   - Nada de colores ni tamaños a mano en las vistas: se usan las piezas ui-* y pw-* de aquí.
   ========================================================================================================== */

@font-face {
	font-family: "Plus Jakarta Sans"; font-style: normal; font-display: swap; font-weight: 200 800;
	src: url("../assets/fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Plus Jakarta Sans"; font-style: normal; font-display: swap; font-weight: 200 800;
	src: url("../assets/fonts/plus-jakarta-sans-latin-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--ui-fondo: #f5f7fb;
	--ui-caja: #fff;
	--ui-borde: #e8edf4;
	--ui-borde-fuerte: #d5dce6;
	--ui-borde-suave: #eef2f7;
	--ui-texto: #0f172a;
	--ui-texto-2: #475569;
	--ui-texto-3: #64748b;
	--ui-marca: #2563eb;
	--ui-marca-oscura: #1d4ed8;
	--ui-marca-suave: #eef3fe;
	--ui-radio: 20px;
	--ui-radio-control: 14px;
	--ui-radio-peque: 12px;
	--ui-hover: #f3f6fb;
	--ui-sombra: 0 1px 2px rgba(15, 23, 42, .04), 0 4px 16px rgba(15, 23, 42, .04);
	--ui-sombra-marca: 0 6px 16px rgba(37, 99, 235, .28);
	--ui-fuente: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

	--ui-ok: #1c7a2e;      --ui-ok-suave: #e6f4ea;
	--ui-curso: #8a5a00;   --ui-curso-suave: #fdf1dc;
	--ui-mal: #b3191d;     --ui-mal-suave: #fbeaea;
	--ui-info: #1f5fbf;    --ui-info-suave: #e8f0fc;
	--ui-neutro: #495057;  --ui-neutro-suave: #eef0f3;

	--pw-lateral: 272px;
	--pw-ficha: 50%;

	--bs-body-font-family: var(--ui-fuente);
	--bs-body-color: var(--ui-texto);
}

/* ── Colores de cada apartado (.elem-<tabla>) ─────────────────────────────────────────────────────────── */
.elem-noticias      { --elem: #1d4ed8; --elem-suave: #e6edfc; }
.elem-secciones     { --elem: #6d28d9; --elem-suave: #efe9fc; }
.elem-podcasts      { --elem: #be185d; --elem-suave: #fce7f1; }
.elem-eventos       { --elem: #b45309; --elem-suave: #fdf1dc; }
.elem-instalaciones { --elem: #0f766e; --elem-suave: #e0f5f2; }
.elem-socios        { --elem: #33507f; --elem-suave: #e9eef6; }
.elem-banners       { --elem: #c2410c; --elem-suave: #fdeee4; }
.elem-empleo        { --elem: #15803d; --elem-suave: #e6f4ea; }
.elem-negocios      { --elem: #7c4a1e; --elem-suave: #f5ebe2; }
.elem-animales      { --elem: #4d7c0f; --elem-suave: #eef6dc; }
.elem-menus         { --elem: #0e7490; --elem-suave: #e0f4f8; }
.elem-inicio        { --elem: #a21caf; --elem-suave: #f9e8fb; }
.elem-paginas       { --elem: #0f766e; --elem-suave: #e0f5f2; }
.elem-usuarios      { --elem: #6d28d9; --elem-suave: #efe9fc; }
.elem-config        { --elem: #5b6573; --elem-suave: #eef0f3; }
.elem-rojo          { --elem: #b91c1c; --elem-suave: #fdeaea; }
.elem-azul          { --elem: #1d4ed8; --elem-suave: #e6edfc; }

.elem-icono { flex: none; width: 36px; height: 36px; border-radius: 11px; display: inline-grid; place-items: center; font-size: .95rem; color: var(--elem, var(--ui-neutro)); background: var(--elem-suave, var(--ui-neutro-suave)); text-decoration: none; }
.elem-icono-grande { width: 52px; height: 52px; border-radius: 16px; font-size: 1.35rem; }
a.elem-icono:hover { color: var(--elem, var(--ui-neutro)); filter: brightness(.96); }

/* ── Base ─────────────────────────────────────────────────────────────────────────────────────────────── */
html, body { height: 100%; }
body { margin: 0; background: var(--ui-fondo); color: var(--ui-texto); font-family: var(--ui-fuente); font-size: 15px; -webkit-font-smoothing: antialiased; }
body.pw-body { overflow: hidden; }
a { color: var(--ui-marca-oscura); text-decoration: none; }
a:hover { color: #1e40af; text-decoration: underline; }
:focus-visible { outline: 3px solid #4c8bf5; outline-offset: 2px; }
.pw-tenue { color: var(--ui-texto-3); font-size: .82rem; font-weight: 500; }
.pw-ayuda { margin: 0 0 12px; color: var(--ui-texto-3); font-size: .85rem; font-weight: 500; }
.pw-ayuda i { margin-right: 4px; }
h1, h2, h3, h4, h5 { letter-spacing: -.01em; }

/* ── Carcasa: menú + zona principal ───────────────────────────────────────────────────────────────────── */
.pw-shell { display: flex; height: 100vh; height: 100dvh; }
.pw-principal { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }

.pw-lateral { flex: 0 0 var(--pw-lateral); width: var(--pw-lateral); background: #fff; border-right: 1px solid var(--ui-borde); display: flex; flex-direction: column; gap: 6px; padding: 18px 14px 14px; overflow-y: auto; z-index: 1035; }
.pw-marca { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 6px 8px; color: var(--ui-texto); font-weight: 800; letter-spacing: -.02em; min-width: 0; text-decoration: none; }
.pw-marca:hover { color: var(--ui-texto); text-decoration: none; }
.pw-marca-logo { flex: none; width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: linear-gradient(135deg, #3b82f6, #1d4ed8); color: #fff; font-size: 1.05rem; box-shadow: 0 4px 12px rgba(37, 99, 235, .3); }
.pw-marca-nombre { font-size: 1.1rem; line-height: 1.15; }
.pw-marca-nombre small { display: block; font-size: .68rem; font-weight: 700; color: var(--ui-texto-3); letter-spacing: .06em; text-transform: uppercase; }

/* Web que se está editando */
.pw-sitio { display: flex; align-items: center; gap: 10px; margin: 2px 0 10px; padding: 8px 10px; border: 1px solid var(--ui-borde); border-radius: 14px; background: #f8fafc; color: var(--ui-texto); text-decoration: none; min-width: 0; }
a.pw-sitio:hover { background: var(--ui-hover); color: var(--ui-texto); text-decoration: none; border-color: #c9d5e6; }
.pw-sitio-texto { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.pw-sitio-etiqueta { font-size: .66rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ui-texto-3); line-height: 1.3; }
.pw-sitio-nombre { font-size: .9rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pw-sitio > i { color: var(--ui-texto-3); font-size: .78rem; }

.pw-menu { flex: 1; display: flex; flex-direction: column; gap: 2px; padding: 0; margin: 0; list-style: none; }
.pw-menu-titulo { margin: 10px 0 4px; padding: 0 10px; font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ui-texto-3); }
.pw-menu-op { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 6px 10px; border-radius: 14px; color: var(--ui-texto-2); text-decoration: none; font-size: .94rem; font-weight: 650; }
.pw-menu-op:hover, .pw-menu-op:focus-visible { background: var(--ui-hover); color: var(--ui-texto); text-decoration: none; }
.pw-menu-op .elem-icono { transition: background .15s, color .15s; }
.pw-menu-op.activa { background: var(--ui-marca-suave); color: var(--ui-marca-oscura); }
.pw-menu-op.activa .elem-icono { background: var(--elem, var(--ui-marca)); color: #fff; box-shadow: 0 4px 10px rgba(15, 23, 42, .14); }

.pw-usuario { display: flex; align-items: center; gap: 10px; margin-top: 8px; padding: 10px 6px 0; border-top: 1px solid var(--ui-borde-suave); }
.pw-usuario-iniciales { flex: none; width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, #f59e0b, #ea580c); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: .82rem; }
.pw-usuario-datos { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
.pw-usuario-datos strong { font-size: .9rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pw-usuario-datos span { font-size: .76rem; color: var(--ui-texto-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pw-boton-icono { flex: none; width: 44px; height: 44px; display: inline-grid; place-items: center; border: 0; border-radius: 12px; background: none; color: var(--ui-texto-3); text-decoration: none; cursor: pointer; }
.pw-boton-icono:hover, .pw-boton-icono:focus-visible { background: var(--ui-hover); color: var(--ui-marca); text-decoration: none; }
.pw-copy { padding: 10px 6px 0; font-size: .7rem; color: #94a3b8; text-align: center; }

/* Barra de arriba (solo por debajo de 1200 px) */
.pw-barra { display: none; align-items: center; gap: 10px; min-height: 60px; padding: 8px 14px; background: rgba(255, 255, 255, .92); border-bottom: 1px solid var(--ui-borde); flex-shrink: 0; }
.pw-barra-boton { flex: none; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--ui-borde); border-radius: 12px; background: #fff; color: var(--ui-texto); font-size: 1.05rem; }
.pw-barra-boton:hover { background: var(--ui-hover); }
.pw-barra-titulo { flex: 1; min-width: 0; font-size: 1rem; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pw-velo-menu { display: none; }

/* Aviso de administrador viendo el panel como un usuario */
.pw-suplantacion { flex-shrink: 0; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px 14px; padding: 8px 14px; background: #1e293b; color: #fff; font-size: .86rem; font-weight: 600; }
.pw-suplantacion a { color: #fff; text-decoration: underline; font-weight: 800; }
.pw-entorno { padding: 2px 8px; border-radius: 999px; background: var(--ui-curso-suave); color: var(--ui-curso); font-size: .66rem; font-weight: 800; letter-spacing: .04em; }

@media (max-width: 1199.98px) {
	.pw-barra { display: flex; }
	.pw-lateral { position: fixed; top: 0; bottom: 0; left: 0; width: min(300px, 86vw); transform: translateX(-102%); transition: transform .22s ease; box-shadow: 12px 0 40px rgba(0, 0, 0, .18); }
	body.pw-menu-abierto .pw-lateral { transform: none; }
	body.pw-menu-abierto .pw-velo-menu { display: block; position: fixed; inset: 0; z-index: 1034; background: rgba(20, 24, 30, .35); }
}

/* ── Zona: listado + ficha ────────────────────────────────────────────────────────────────────────────── */
.pw-zona { flex: 1 1 auto; min-height: 0; display: flex; position: relative; overflow: clip; }
.pw-listado { flex: 1 1 auto; min-width: 0; height: 100%; overflow: auto; }
.ui-pantalla { display: flex; flex-direction: column; gap: 20px; padding: 28px 32px 40px; max-width: 1500px; margin: 0 auto; }
.pw-pantalla-estrecha { max-width: 980px; }

.ui-titulo-pagina { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0; }
.ui-titulo-pagina h1 { display: flex; align-items: center; gap: 14px; margin: 0; font-size: 1.75rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.ui-titulo-pagina p { flex-basis: 100%; margin: 0; color: var(--ui-texto-2); font-weight: 500; }
.ui-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ui-titulo-pagina .ui-acciones { margin-left: auto; }

.ui-caja { background: var(--ui-caja); border: 1px solid var(--ui-borde); border-radius: var(--ui-radio); padding: 20px 22px; min-width: 0; box-shadow: var(--ui-sombra); }
.ui-caja-titulo { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: 1.02rem; font-weight: 750; }
.ui-caja-titulo > i:first-child { color: var(--ui-marca); }
.ui-caja-titulo .ui-acciones { margin-left: auto; }
.ui-rejilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 20px; align-items: start; }
.ui-nada { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-radius: var(--ui-radio-peque); background: var(--ui-hover); color: var(--ui-texto-2); font-size: .9rem; font-weight: 500; }
.ui-nada i { color: var(--ui-texto-3); font-size: 1.1rem; }

.ui-aviso { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border-radius: var(--ui-radio-peque); border: 1px solid transparent; font-size: .9rem; font-weight: 500; }
.ui-aviso > i { margin-top: 3px; }
.ui-aviso-ok    { background: var(--ui-ok-suave); color: var(--ui-ok); border-color: #c4e3cd; }
.ui-aviso-curso { background: var(--ui-curso-suave); color: #7a4f00; border-color: #f3d9a4; }
.ui-aviso-mal   { background: var(--ui-mal-suave); color: #9c1a1e; border-color: #f1c4c5; }
.ui-aviso-info  { background: var(--ui-info-suave); color: #1a4f9f; border-color: #c5d8f7; }
.ui-aviso .btn { margin-left: auto; flex: none; }

.ui-estado { display: inline-flex; align-items: center; gap: 6px; padding: 3px 11px 3px 9px; border-radius: 999px; font-size: .76rem; font-weight: 700; line-height: 1.5; white-space: nowrap; vertical-align: middle; }
.ui-estado::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.ui-estado-ok     { background: var(--ui-ok-suave); color: var(--ui-ok); }
.ui-estado-curso  { background: var(--ui-curso-suave); color: var(--ui-curso); }
.ui-estado-mal    { background: var(--ui-mal-suave); color: var(--ui-mal); }
.ui-estado-info   { background: var(--ui-info-suave); color: var(--ui-info); }
.ui-estado-neutro { background: var(--ui-neutro-suave); color: var(--ui-neutro); }
.ui-etiqueta { display: inline-flex; align-items: center; gap: 5px; margin: 1px 2px 1px 0; padding: 2px 9px; border-radius: 999px; font-size: .75rem; font-weight: 600; white-space: nowrap; color: var(--ui-texto-2); background: var(--ui-neutro-suave); }

.ui-asa { flex: none; width: 36px; height: 40px; display: inline-grid; place-items: center; border-radius: 10px; color: #a3afbf; cursor: grab; touch-action: none; }
.ui-asa:hover { background: var(--ui-hover); color: var(--ui-texto-2); }

/* ── Botones ──────────────────────────────────────────────────────────────────────────────────────────── */
.btn { font-weight: 700; padding: 0 18px; border-radius: var(--ui-radio-control); min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-size: .95rem; letter-spacing: -.005em; transition: background .15s, border-color .15s, color .15s, box-shadow .15s; }
.btn-sm { padding: 0 12px; min-height: 38px; border-radius: 11px; font-size: .86rem; }
.btn-icono { min-width: 38px; padding-left: 0; padding-right: 0; }
.btn:not(.btn-sm).btn-icono { min-width: 48px; }
@media (pointer: coarse) { .btn-sm { min-height: 44px; } .btn-sm.btn-icono { min-width: 44px; } }
.btn-primary, .btn-primary:disabled { background: var(--ui-marca); border-color: var(--ui-marca); color: #fff; box-shadow: var(--ui-sombra-marca); }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active { background: var(--ui-marca-oscura) !important; border-color: var(--ui-marca-oscura) !important; color: #fff; }
.btn-primary:disabled { opacity: .45; box-shadow: none; }
.btn-outline-secondary, .btn-secondary, .btn-outline-primary, .btn-outline-dark, .btn-outline-info, .btn-info { background: #fff; border: 1px solid var(--ui-borde-fuerte); color: var(--ui-texto); box-shadow: none; }
.btn-outline-secondary:hover, .btn-secondary:hover, .btn-outline-primary:hover, .btn-outline-dark:hover, .btn-outline-info:hover, .btn-info:hover,
.btn-outline-secondary:focus, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show { background: var(--ui-hover) !important; border-color: #c3ccd9 !important; color: var(--ui-texto) !important; box-shadow: none !important; }
.btn-outline-secondary > i, .btn-secondary > i { color: var(--ui-texto-2); }
.btn-success { background: #16a34a; border-color: #16a34a; color: #fff; box-shadow: 0 6px 16px rgba(22, 163, 74, .25); }
.btn-success:hover, .btn-success:focus, .btn-success:active { background: #15803d !important; border-color: #15803d !important; }
.btn-outline-danger, .btn-danger { background: #fff; border: 1px solid #f3c4c4; color: #b91c1c; box-shadow: none; }
.btn-outline-danger:hover, .btn-danger:hover, .btn-outline-danger:focus, .btn-danger:focus, .btn-outline-danger:active, .btn-danger:active { background: #fef2f2 !important; border-color: #ef9a9a !important; color: #991b1b !important; box-shadow: none !important; }
.btn-check:focus + .btn, .btn:focus { box-shadow: none; }

/* ── Formularios ──────────────────────────────────────────────────────────────────────────────────────── */
label, .form-label { font-size: .85rem; font-weight: 700; color: var(--ui-texto-2); margin-bottom: 6px; }
.form-control, .form-select { font-size: 1rem; min-height: 48px; padding: 10px 14px; border-radius: var(--ui-radio-control); border: 1px solid var(--ui-borde-fuerte); color: var(--ui-texto); }
.form-select { padding-right: 38px; }
textarea.form-control { min-height: 96px; }
.form-control:focus, .form-select:focus { border-color: #93b4f5; box-shadow: 0 0 0 4px rgba(37, 99, 235, .15); }
.form-control::placeholder { color: #94a3b8; }
.form-control-sm, .form-select-sm { min-height: 42px; font-size: .92rem; border-radius: 12px; }
.form-check-input { width: 1.25em; height: 1.25em; }
.form-check-input:checked { background-color: var(--ui-marca); border-color: var(--ui-marca); }
.form-switch .form-check-input { width: 3em !important; height: 1.6em !important; cursor: pointer; }
.input-group > .form-control, .input-group > .form-select { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group > .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.pw-requerido::after { content: " *"; color: #dc2626; }
.ui-pie-form { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; padding-top: 14px; margin-top: 4px; border-top: 1px solid var(--ui-borde-suave); }

/* ── Listado (bootstrap-table) dentro de una caja ─────────────────────────────────────────────────────── */
.pw-caja-tabla { padding: 6px 0 4px; overflow: hidden; }
.bootstrap-table .fixed-table-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px 20px; }
.bootstrap-table .fixed-table-toolbar::after { display: none; }
.bootstrap-table .fixed-table-toolbar .bs-bars, .bootstrap-table .fixed-table-toolbar .search, .bootstrap-table .fixed-table-toolbar .columns { float: none !important; margin: 0 !important; }
.bootstrap-table .fixed-table-toolbar .bs-bars { order: 2; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.bootstrap-table .fixed-table-toolbar .bs-bars:empty { display: none; }
.bootstrap-table .fixed-table-toolbar .search { order: 1; flex: 1 1 240px; max-width: 420px; }
.bootstrap-table .fixed-table-toolbar .columns { order: 3; margin-left: auto !important; }
.bootstrap-table .fixed-table-toolbar .search input { width: 100%; min-height: 46px; padding-left: 42px; border-radius: 12px; background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.4' stroke-linecap='round'%3e%3ccircle cx='11' cy='11' r='7'/%3e%3cpath d='m20 20-3.5-3.5'/%3e%3c/svg%3e") no-repeat 14px center / 17px; }
.bootstrap-table .fixed-table-toolbar .columns .btn { min-height: 46px; min-width: 46px; padding: 0 12px; border-radius: 12px !important; margin-left: 6px; color: var(--ui-texto-2); }
.bootstrap-table .fixed-table-toolbar .form-select { width: auto; max-width: 100%; min-width: 200px; min-height: 46px; border-radius: 12px; }
.bootstrap-table .dropdown-menu { border: 1px solid var(--ui-borde); border-radius: var(--ui-radio-peque); box-shadow: 0 10px 28px rgba(15, 23, 42, .12); padding: 6px; }
.bootstrap-table .dropdown-item { border-radius: 8px; padding: 8px 10px; font-size: .9rem; }
.bootstrap-table .fixed-table-container { border: 0; border-top: 1px solid var(--ui-borde-suave); border-radius: 0; }
.bootstrap-table .fixed-table-container .fixed-table-body { overflow-x: auto !important; overflow-y: visible !important; height: auto; }
.bootstrap-table .table { margin: 0; font-size: .9rem; border-color: var(--ui-borde-suave); }
.bootstrap-table .table > :not(:first-child) { border-top: 0; }
.bootstrap-table .table thead th { border: 0; border-bottom: 1px solid var(--ui-borde); background: #f8fafc; vertical-align: middle; }
.bootstrap-table .table thead th .th-inner { padding: 11px 12px; font-size: .7rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; color: var(--ui-texto-3); white-space: nowrap; }
.bootstrap-table .table tbody td { padding: 12px; vertical-align: middle; border-left: 0; border-right: 0; border-bottom: 1px solid var(--ui-borde-suave); background: transparent; box-shadow: none; }
.bootstrap-table .table thead th:first-child .th-inner, .bootstrap-table .table tbody td:first-child { padding-left: 22px; }
.bootstrap-table .table tbody td:last-child { padding-right: 22px; }
.bootstrap-table .table tbody tr { cursor: pointer; transition: background-color .1s; }
.bootstrap-table .table tbody tr:hover > td { background: var(--ui-hover); }
.bootstrap-table .table tbody tr.highlight > td { background: var(--ui-marca-suave) !important; }
.bootstrap-table .table tbody tr.highlight > td:first-child { box-shadow: inset 3px 0 0 var(--ui-marca); }
.bootstrap-table .table tbody tr.no-records-found { cursor: default; }
.bootstrap-table .table tbody tr.no-records-found td { padding: 44px 20px; color: var(--ui-texto-3); font-weight: 600; background: transparent !important; }
.bootstrap-table .table tbody td .btn { min-height: 38px; min-width: 38px; padding: 0 10px; border-radius: 11px; font-size: .86rem; margin: 0 0 0 4px !important; }
.bootstrap-table .table tbody td b, .bootstrap-table .table tbody td strong { font-weight: 750; }
.bootstrap-table .fixed-table-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 20px; }
.bootstrap-table .fixed-table-pagination::after { display: none; }
.bootstrap-table .fixed-table-pagination > .pagination-detail, .bootstrap-table .fixed-table-pagination > .pagination { float: none !important; margin: 0 !important; }
.bootstrap-table .pagination-detail { color: var(--ui-texto-3); font-size: .82rem; font-weight: 500; }
.bootstrap-table .pagination-detail .btn { min-height: 36px; padding: 0 10px; border-radius: 10px; font-size: .82rem; }
.pagination { gap: 4px; margin: 0; }
.pagination .page-link { border: 0; border-radius: 10px !important; min-width: 38px; min-height: 38px; display: inline-flex; align-items: center; justify-content: center; color: var(--ui-texto-2); font-weight: 700; background: transparent; }
.pagination .page-link:hover { background: var(--ui-hover); color: var(--ui-texto); text-decoration: none; }
.pagination .page-item.active .page-link { background: var(--ui-marca); color: #fff; }
.pagination .page-item.disabled .page-link { background: transparent; color: #b6c0cd; }
.bootstrap-table .fixed-table-loading { background: rgba(255, 255, 255, .8); font-weight: 600; color: var(--ui-texto-3); }
.foto { width: 76px; height: 52px; object-fit: cover; border-radius: 10px; background: var(--ui-hover); }

/* Tabla sencilla (administración) */
.ui-tabla { width: 100%; font-size: .9rem; border-collapse: collapse; }
.ui-tabla th { padding: 11px 12px; border-bottom: 1px solid var(--ui-borde); background: #f8fafc; font-size: .7rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; color: var(--ui-texto-3); text-align: left; white-space: nowrap; }
.ui-tabla td { padding: 12px; vertical-align: middle; border-bottom: 1px solid var(--ui-borde-suave); }
.ui-tabla tbody tr:last-child td { border-bottom: 0; }
.ui-tabla tbody tr:hover td { background: var(--ui-hover); }
.ui-tabla th:first-child, .ui-tabla td:first-child { padding-left: 22px; }
.ui-tabla th:last-child, .ui-tabla td:last-child { padding-right: 22px; }
.ui-tabla .ui-col-acciones { text-align: right; white-space: nowrap; }
.ui-tabla .ui-col-acciones .btn { margin-left: 4px; }
.ui-col-principal { font-weight: 750; }
.ui-col-principal small { display: block; font-weight: 500; color: var(--ui-texto-3); font-size: .8rem; }

/* Calendario lateral de los listados con fechas */
.pw-con-calendario { display: flex; gap: 20px; align-items: flex-start; }
.pw-con-calendario > .pw-calendario { flex: none; width: 262px; padding: 16px; }
.pw-con-calendario > .pw-caja-tabla { flex: 1 1 auto; }
.pw-calendario .xdsoft_datetimepicker { border: 0; box-shadow: none; padding: 0; font-family: var(--ui-fuente); }
.pw-calendario .xdsoft_datetimepicker .xdsoft_calendar td.pw-con-evento { background: #dbeafe; color: var(--ui-marca-oscura); font-weight: 700; }
@media (max-width: 991.98px) { .pw-con-calendario { flex-direction: column; } .pw-con-calendario > .pw-calendario { width: 100%; } .pw-con-calendario > .pw-caja-tabla { width: 100%; } }

/* ── Ficha (panel de edición) ─────────────────────────────────────────────────────────────────────────── */
.pw-divisor { flex: 0 0 1px; position: relative; z-index: 2; background: var(--ui-borde); cursor: col-resize; touch-action: none; display: none; }
.pw-divisor::before { content: ""; position: absolute; top: 0; bottom: 0; left: -4px; right: -6px; }
.pw-divisor::after { content: ""; position: absolute; top: 0; bottom: 0; left: -1px; width: 3px; background: var(--ui-marca); opacity: 0; transition: opacity .12s; }
.pw-divisor:hover::after, body.pw-arrastrando .pw-divisor::after { opacity: 1; }
body.pw-arrastrando, body.pw-arrastrando * { cursor: col-resize !important; user-select: none !important; }

.pw-ficha { display: none; flex-direction: column; background: #fff; min-height: 0; }
body.editing .pw-ficha { display: flex; }
.pw-ficha-cuerpo { flex: 1 1 auto; min-height: 0; overflow: auto; display: flex; flex-direction: column; }
.pw-velo-ficha { display: none; }
#form_editar { display: flex; flex-direction: column; min-height: 100%; }
#form_editar > .pw-ficha-cabecera, #form_editar > .pw-ficha-pestanas, #form_editar > .pw-ficha-pie { flex: none; }
.pw-ficha-cabecera { position: sticky; top: 0; z-index: 6; display: flex; align-items: center; gap: 10px; min-height: 64px; padding: 0 8px 0 18px; background: #fff; border-bottom: 1px solid var(--ui-borde); }
.pw-ficha-titulo { flex: 1; min-width: 0; margin: 0; font-size: 1.1rem; font-weight: 800; letter-spacing: -.01em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pw-ficha-titulo small { display: block; font-size: .74rem; font-weight: 600; color: var(--ui-texto-3); letter-spacing: 0; }
.pw-ficha-pestanas { flex-wrap: nowrap; overflow-x: auto; gap: 4px; padding: 10px 18px 0; border-bottom: 1px solid var(--ui-borde); scrollbar-width: none; }
.pw-ficha-pestanas::-webkit-scrollbar { display: none; }
.nav-tabs .nav-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 0; border-bottom: 3px solid transparent; border-radius: 10px 10px 0 0; color: var(--ui-texto-2); font-size: .9rem; font-weight: 700; white-space: nowrap; background: transparent; }
.nav-tabs .nav-link:hover { color: var(--ui-texto); background: var(--ui-hover); text-decoration: none; }
.nav-tabs .nav-link.active { color: var(--ui-marca-oscura); border-bottom-color: var(--ui-marca); background: transparent; }
.pw-ficha-contenido { flex: 1 1 auto; padding: 20px 20px 28px; }
.pw-ficha-contenido h4, .pw-ficha-contenido h5 { font-size: 1rem; font-weight: 750; margin: 0 0 10px; }
.pw-ficha-pie { position: sticky; bottom: 0; z-index: 5; display: flex; align-items: center; gap: 12px; padding: 12px 18px; background: rgba(255, 255, 255, .94); backdrop-filter: blur(6px); border-top: 1px solid var(--ui-borde); }
.pw-ficha-estado { flex: 1; min-width: 0; font-size: .84rem; font-weight: 600; color: var(--ui-texto-3); }
.pw-ficha-estado.cambios { color: var(--ui-curso); }
.pw-ficha-estado.guardado { color: var(--ui-ok); }
.pw-ficha-pie .btn-primary { min-width: 150px; }
.pw-cargando { height: 3px; overflow: hidden; background: transparent; }
.pw-cargando::after { content: ""; display: block; width: 40%; height: 100%; background: var(--ui-marca); animation: pw-carga 1s infinite ease-in-out; }
.pw-cargando-texto { padding: 28px 20px; color: var(--ui-texto-3); font-weight: 600; }
@keyframes pw-carga { from { transform: translateX(-100%); } to { transform: translateX(250%); } }
@keyframes pw-entra { from { transform: translateX(48px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes pw-sube { from { transform: translateY(100%); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .pw-cargando::after { animation: none; width: 100%; } .pw-ficha { animation: none !important; } }

@media (min-width: 1200px) {
	body.editing .pw-divisor { display: block; }
	.pw-ficha { flex: 0 0 var(--pw-ficha); width: var(--pw-ficha); max-width: calc(100% - 340px); min-width: 420px; animation: pw-entra .2s ease-out; }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
	.pw-ficha { position: absolute; top: 0; right: 0; bottom: 0; z-index: 30; width: min(max(var(--pw-ficha), 620px), calc(100% - 40px)); border-left: 1px solid var(--ui-borde); box-shadow: -12px 0 40px rgba(0, 0, 0, .18); animation: pw-entra .2s ease-out; }
	body.editing .pw-velo-ficha { display: block; position: absolute; inset: 0; z-index: 25; background: rgba(20, 24, 30, .25); }
}
@media (max-width: 767.98px) {
	.pw-ficha { position: fixed; left: 0; right: 0; bottom: 0; top: 0; z-index: 1041; animation: pw-sube .28s cubic-bezier(.2, .8, .2, 1); }
	.ui-pantalla { padding: 16px 14px 24px; gap: 14px; }
	.ui-caja { padding: 16px; border-radius: 18px; }
	.ui-titulo-pagina h1 { font-size: 1.35rem; gap: 12px; }
	.ui-titulo-pagina h1 .elem-icono-grande { width: 44px; height: 44px; border-radius: 14px; font-size: 1.1rem; }
	.ui-titulo-pagina .ui-acciones { width: 100%; margin-left: 0; }
	.ui-titulo-pagina .ui-acciones > .btn { flex: 1 1 auto; }
	.pw-caja-tabla { padding: 4px 0; }
	.bootstrap-table .fixed-table-toolbar { padding: 10px 14px; }
	.bootstrap-table .fixed-table-toolbar .search { max-width: none; flex-basis: 100%; }
	.bootstrap-table .fixed-table-toolbar .columns { display: none; }
	.bootstrap-table .fixed-table-pagination { padding: 10px 14px; justify-content: center; }
	.bootstrap-table .table thead th:first-child .th-inner, .bootstrap-table .table tbody td:first-child { padding-left: 14px; }
	.pw-ficha-contenido { padding: 16px 14px 24px; }
	.pw-ficha-pie .btn-primary { flex: 1; }
	.pw-ficha-estado { display: none; }
	#form_editar .row > [class*="col-"] { flex: 0 0 100%; max-width: 100%; margin-bottom: 12px; }
	#form_editar .row.mb-3 { margin-bottom: 0 !important; }
}

/* ── Modales, avisos y confirmaciones ─────────────────────────────────────────────────────────────────── */
.modal-content { border: 0; border-radius: var(--ui-radio); box-shadow: 0 16px 48px rgba(0, 0, 0, .22); overflow: hidden; }
.modal-header { background: #fff; border-bottom: 1px solid var(--ui-borde); padding: 8px 8px 8px 20px; min-height: 56px; gap: 10px; }
.modal-title { font-size: 1.1rem; font-weight: 800; }
.modal-header .btn-close { width: 44px; height: 44px; padding: 0; margin: 0 0 0 auto; }
.modal-body { padding: 18px 20px; }
.modal-footer { border-top: 1px solid var(--ui-borde); padding: 12px 20px; gap: 8px; }
.modal-footer > * { margin: 0; }
.modal-backdrop.show { opacity: .4; }
@media (max-width: 767.98px) {
	.modal-dialog { position: fixed; left: 0; right: 0; bottom: 0; margin: 0; max-width: none; }
	.modal-content { max-height: 90vh; max-height: 90dvh; border-radius: 16px 16px 0 0; }
	.modal-body { overflow-y: auto; }
}
.swal2-popup { font-family: var(--ui-fuente) !important; border-radius: var(--ui-radio) !important; padding: 24px !important; }
.swal2-title { font-size: 1.3rem !important; font-weight: 800 !important; color: var(--ui-texto) !important; }
.swal2-html-container { font-size: .95rem !important; color: var(--ui-texto-2) !important; }
.swal2-actions { gap: 8px; }
.swal2-styled { min-height: 48px; border-radius: var(--ui-radio-control) !important; font-weight: 700 !important; font-size: .95rem !important; padding: 0 20px !important; margin: 0 !important; box-shadow: none !important; }
.swal2-styled.swal2-confirm { background: var(--ui-marca) !important; }
.swal2-styled.swal2-confirm.pw-peligro { background: #dc2626 !important; }
.swal2-styled.swal2-cancel { background: #fff !important; color: var(--ui-texto) !important; border: 1px solid var(--ui-borde-fuerte) !important; }

#pw-avisos { position: fixed; z-index: 2000; right: 18px; bottom: 18px; display: flex; flex-direction: column; gap: 8px; pointer-events: none; max-width: min(400px, calc(100vw - 28px)); }
.pw-aviso { display: flex; align-items: flex-start; gap: 10px; padding: 12px 16px; border-radius: 14px; background: #0f172a; color: #fff; font-size: .9rem; font-weight: 600; box-shadow: 0 12px 32px rgba(15, 23, 42, .28); animation: pw-aviso-entra .2s ease-out; }
.pw-aviso i { margin-top: 3px; }
.pw-aviso-ok i { color: #4ade80; } .pw-aviso-mal i { color: #f87171; } .pw-aviso-info i { color: #93c5fd; }
.pw-aviso.fuera { opacity: 0; transform: translateY(8px); transition: opacity .25s, transform .25s; }
@keyframes pw-aviso-entra { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (max-width: 767.98px) { #pw-avisos { left: 14px; right: 14px; bottom: 14px; max-width: none; } }

.alert { border-radius: var(--ui-radio-peque); font-size: .9rem; font-weight: 500; }
.alert-danger { background: var(--ui-mal-suave); color: #9c1a1e; border-color: #f1c4c5; }
.badge { border-radius: 999px; font-weight: 600; }
.text-info { color: var(--ui-texto-3) !important; }
hr { border-color: var(--ui-borde); opacity: 1; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #cfd6e0; border-radius: 6px; border: 2px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background-color: #aab4c2; }
