




















.saltar {
position: absolute;
left: 8px; top: -60px;
z-index: 999;
background: var(--accent);
color: #fff;
padding: 10px 16px;
border-radius: 0 0 8px 8px;
font-weight: 600;
text-decoration: none;
transition: top .15s ease;
}
.saltar:focus { top: 0; }

:where(a, button, [tabindex], summary, input, select, textarea):focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
border-radius: 4px;
}

.sidebar :where(a, button):focus-visible { outline-color: #fff; }

.content:focus { outline: none; }

@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: .01ms !important;
animation-iteration-count: 1 !important;
transition-duration: .01ms !important;
scroll-behavior: auto !important;
}
}

:root {
--sidebar-bg: #16265c;
--sidebar-fg: #cbd5e1;
--sidebar-active: #24397f;
--accent: #2563eb;
--accent-dark: #1d4ed8;
--bg: #f1f5f9;
--card: #ffffff;
--text: #0f172a;
--muted: #64748b;
--border: #e2e8f0;
--danger: #dc2626;
--success: #16a34a;
--warning: #d97706;

--marca-azul: #16265c;
--marca-azul-claro: #24397f;
--marca-oro: #e8b52c;
--marca-oro-oscuro: #a97d12;


--google-azul: #4285f4;
--google-rojo: #ea4335;
--google-amarillo: #fbbc05;
--google-verde: #34a853;
--radius: 10px;
--shadow: 0 1px 3px rgba(15, 23, 42, 0.08), 0 1px 2px rgba(15, 23, 42, 0.05);






color-scheme: light;
--superficie: #f8fafc;
--superficie-azul: #eef2fb;
--pista: #e2e8f0;
--borde-suave: #f1f5f9;
--borde-fuerte: #cbd5e1;
--texto-2: #334155;
--texto-3: #94a3b8;
--texto-tenue: #cbd5e1;
--texto-calido: #78716c;
--texto-marca: #16265c;
--texto-accion: #1d4ed8;
--tinte-azul: #eef2ff;
--tinte-azul-fuerte: #dbeafe;
--borde-azul: #bfdbfe;
--texto-azul: #1e40af;
--tinte-ambar: #fffbeb;
--tinte-ambar-fuerte: #fef3c7;
--borde-ambar: #fde68a;
--texto-ambar: #92400e;
--tinte-verde: #f0fdf4;
--tinte-verde-fuerte: #dcfce7;
--borde-verde: #bbf7d0;
--texto-verde: #166534;
--tinte-rojo: #fef2f2;
--tinte-rojo-fuerte: #fee2e2;
--borde-rojo: #fecaca;
--texto-rojo: #b91c1c;
--tinte-violeta: #ede9fe;
--texto-violeta: #5b21b6;
}









@media screen and (prefers-color-scheme: dark) {
:root:not([data-tema="claro"]) {
color-scheme: dark;
--bg: #0b1224;
--card: #141e33;
--text: #e5e9f2;
--muted: #94a3b8;
--border: #26334d;
--accent: #3b82f6;
--danger: #ef4444;
--sidebar-bg: #0f1a40;
--sidebar-active: #1d2f6b;
--superficie: #111a2e;
--superficie-azul: #17233e;
--pista: #2a3854;
--borde-suave: #1d2942;
--borde-fuerte: #3a4a66;
--texto-2: #cbd5e1;
--texto-3: #7c8aa5;
--texto-tenue: #4b5a75;
--texto-calido: #a8a29e;
--texto-marca: #b4c3f0;
--texto-accion: #93c5fd;
--tinte-azul: #15254a;
--tinte-azul-fuerte: #1c3160;
--borde-azul: #2c4b80;
--texto-azul: #93c5fd;
--tinte-ambar: #2a2110;
--tinte-ambar-fuerte: #3a2d12;
--borde-ambar: #6b5317;
--texto-ambar: #fcd34d;
--tinte-verde: #0f2a1c;
--tinte-verde-fuerte: #133726;
--borde-verde: #1f6b45;
--texto-verde: #86efac;
--tinte-rojo: #2c1418;
--tinte-rojo-fuerte: #43191e;
--borde-rojo: #7f2a33;
--texto-rojo: #fca5a5;
--tinte-violeta: #271f45;
--texto-violeta: #c4b5fd;
--shadow: 0 1px 3px rgba(0, 0, 0, 0.45), 0 1px 2px rgba(0, 0, 0, 0.3);
}
}
@media screen {
:root[data-tema="oscuro"] {
color-scheme: dark;
--bg: #0b1224;
--card: #141e33;
--text: #e5e9f2;
--muted: #94a3b8;
--border: #26334d;
--accent: #3b82f6;
--danger: #ef4444;
--sidebar-bg: #0f1a40;
--sidebar-active: #1d2f6b;
--superficie: #111a2e;
--superficie-azul: #17233e;
--pista: #2a3854;
--borde-suave: #1d2942;
--borde-fuerte: #3a4a66;
--texto-2: #cbd5e1;
--texto-3: #7c8aa5;
--texto-tenue: #4b5a75;
--texto-calido: #a8a29e;
--texto-marca: #b4c3f0;
--texto-accion: #93c5fd;
--tinte-azul: #15254a;
--tinte-azul-fuerte: #1c3160;
--borde-azul: #2c4b80;
--texto-azul: #93c5fd;
--tinte-ambar: #2a2110;
--tinte-ambar-fuerte: #3a2d12;
--borde-ambar: #6b5317;
--texto-ambar: #fcd34d;
--tinte-verde: #0f2a1c;
--tinte-verde-fuerte: #133726;
--borde-verde: #1f6b45;
--texto-verde: #86efac;
--tinte-rojo: #2c1418;
--tinte-rojo-fuerte: #43191e;
--borde-rojo: #7f2a33;
--texto-rojo: #fca5a5;
--tinte-violeta: #271f45;
--texto-violeta: #c4b5fd;
--shadow: 0 1px 3px rgba(0, 0, 0, 0.45), 0 1px 2px rgba(0, 0, 0, 0.3);
}
}






.print-sheet, .cred-encuadre {
color-scheme: light;
--bg: #f1f5f9; --card: #ffffff; --text: #0f172a; --muted: #64748b; --border: #e2e8f0; --accent: #2563eb; --danger: #dc2626;
--superficie: #f8fafc;
--superficie-azul: #eef2fb;
--pista: #e2e8f0;
--borde-suave: #f1f5f9;
--borde-fuerte: #cbd5e1;
--texto-2: #334155;
--texto-3: #94a3b8;
--texto-tenue: #cbd5e1;
--texto-calido: #78716c;
--texto-marca: #16265c;
--texto-accion: #1d4ed8;
--tinte-azul: #eef2ff;
--tinte-azul-fuerte: #dbeafe;
--borde-azul: #bfdbfe;
--texto-azul: #1e40af;
--tinte-ambar: #fffbeb;
--tinte-ambar-fuerte: #fef3c7;
--borde-ambar: #fde68a;
--texto-ambar: #92400e;
--tinte-verde: #f0fdf4;
--tinte-verde-fuerte: #dcfce7;
--borde-verde: #bbf7d0;
--texto-verde: #166534;
--tinte-rojo: #fef2f2;
--tinte-rojo-fuerte: #fee2e2;
--borde-rojo: #fecaca;
--texto-rojo: #b91c1c;
--tinte-violeta: #ede9fe;
--texto-violeta: #5b21b6;
color: var(--text);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
font-family: 'Segoe UI', system-ui, -apple-system, Roboto, sans-serif;
background: var(--bg);
color: var(--text);
font-size: 14.5px;
}
a { color: var(--texto-accion); text-decoration: none; }
a:hover { text-decoration: underline; }







.login-wrap {


min-height: 100vh; min-height: 100dvh; display: flex; align-items: center; justify-content: center;
background: linear-gradient(135deg, #101c45 0%, var(--marca-azul) 55%, var(--marca-azul-claro) 100%);
padding: 20px;
}
.login-card {
background: var(--card); border-radius: 16px; padding: 40px 36px; width: 100%;
max-width: 400px; box-shadow: 0 20px 50px rgba(0,0,0,0.35); text-align: center;
}
.login-card .logo { width: 116px; height: 116px; object-fit: contain; }
.login-card h1 { font-size: 18px; margin: 12px 0 2px; letter-spacing: 0.2px; color: var(--texto-marca); }
.login-card p.lema { color: var(--marca-oro-oscuro); font-size: 13.5px; font-weight: 600; margin-bottom: 6px; }
.login-card input {
width: 100%; padding: 11px 14px; margin-bottom: 12px; border: 1px solid var(--border);
border-radius: 8px; font-size: 14.5px;
}
.login-card button { width: 100%; }
.login-error { color: var(--danger); font-size: 13px; margin: 12px 0 10px; min-height: 18px; }

.login-error:empty { min-height: 0; margin: 0 0 18px; }

.login-card > .btn { min-height: 46px; font-size: 15.5px; }



.login-card label { display: block; text-align: left; font-size: 12.5px; font-weight: 600; color: var(--muted); margin: 0 0 4px 2px; }
.login-ayuda { text-align: left; font-size: 12px; color: var(--muted); margin: -6px 0 12px 2px; line-height: 1.4; }

.login-clave { position: relative; }
.login-clave input { padding-right: 48px; }
.login-card .login-ver {
position: absolute; right: 5px; top: 3px; width: 36px; height: 36px; border: none; background: none;
cursor: pointer; font-size: 17px; line-height: 1; border-radius: 8px; color: var(--muted); padding: 0;
}
.login-card .login-ver svg {
display: block; margin: auto; width: 20px; height: 20px;
fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
.login-card .login-ver:hover, .login-card .login-ver[aria-pressed="true"] { background: var(--tinte-azul); color: var(--texto-marca); }
.login-card .login-ver:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.login-mayusculas { text-align: left; font-size: 12px; color: var(--texto-ambar); background: var(--tinte-ambar-fuerte); border-radius: 8px; padding: 6px 10px; margin: -4px 0 12px; }
.login-mayusculas[hidden] { display: none; }

.login-pie { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; margin-top: 10px; }
.login-version { font-size: 11.5px; color: var(--muted); }
.login-version:not(:empty)::after { content: '·'; margin-left: 8px; }


.login-google[hidden] { display: none; }
.login-o { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; margin: 12px 0 10px; }
.login-o::before, .login-o::after { content: ''; flex: 1; border-top: 1px solid var(--border); }
.login-card .btn-google {
display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 10px 14px;
background: var(--card); color: var(--text); border: 1px solid var(--border); border-radius: 8px;
font-size: 14.5px; font-weight: 600; cursor: pointer; font-family: inherit;
}
.login-card .btn-google:hover { background: var(--tinte-azul); }
.login-card .btn-google:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.login-card .btn-google:disabled { opacity: 0.6; cursor: progress; }
.logo-google { flex-shrink: 0; vertical-align: -3px; }
.logo-google .g-azul { fill: var(--google-azul); }
.logo-google .g-rojo { fill: var(--google-rojo); }
.logo-google .g-amarillo { fill: var(--google-amarillo); }
.logo-google .g-verde { fill: var(--google-verde); }
.con-logo-google { display: inline-flex; align-items: center; gap: 8px; }


.login-card .login-privacidad { display: inline-block; padding: 10px 8px; font-size: 12px; color: var(--muted); text-decoration: underline; }
.login-card .login-privacidad:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.google-dato { display: block; margin: 12px 0 4px; font-size: 12.5px; font-weight: 600; color: var(--texto-2); }


.layout { display: flex; min-height: 100vh; }
.sidebar {
width: 236px; background: var(--sidebar-bg); color: var(--sidebar-fg);
flex-shrink: 0; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; overflow-y: auto;
}
.sidebar .brand {
display: flex; align-items: center; gap: 11px; padding: 16px 14px;
color: #fff; border-bottom: 1px solid rgba(255,255,255,0.08);
}
.sidebar .brand .logo {
width: 42px; height: 42px; object-fit: contain; flex: none;
background: #fff; border-radius: 50%; padding: 3px;
}
.sidebar .brand .txt { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.sidebar .brand .txt b { font-size: 13px; font-weight: 700; letter-spacing: .1px; }
.sidebar .brand .txt i { font-size: 11.5px; font-style: normal; color: var(--marca-oro); }
.side-group { margin-top: 14px; }



.side-group.side-aparte {
margin-top: 18px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,0.10);
}





.side-atajos { padding: 12px 12px 4px; }
.side-atajos .rot {
font-size: 10.5px; text-transform: uppercase; letter-spacing: 1.2px;
color: #94a3b8; font-weight: 600; padding: 0 4px 8px;
}
.atajos-rejilla { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.atajo {
display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.09); border-radius: 9px;
padding: 10px 5px 9px; color: #e2e8f0; text-align: center;
font-size: 11.5px; line-height: 1.2; min-height: 60px; cursor: pointer;
}
.atajo:hover { background: rgba(255,255,255,0.13); color: #fff; text-decoration: none; }
.atajo .ic { font-size: 19px; line-height: 1; }



.atajo.active {
background: var(--sidebar-active); border-color: var(--accent); color: #fff; font-weight: 600;
}


.atajo.ancho {
grid-column: 1 / -1; flex-direction: row; gap: 9px; justify-content: flex-start;
padding: 9px 12px; min-height: 0; font-size: 12.5px;
}
.atajo.ancho .ic { font-size: 16px; }
.side-atajos + .side-group {
margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,0.08);
}



.sidebar.buscando .side-atajos { display: none; }





.side-group .group-title {
display: flex; align-items: center; justify-content: space-between; gap: 8px;
width: 100%; background: none; border: 0; text-align: left;
font-size: 10.5px; text-transform: uppercase; letter-spacing: 1.2px; color: #94a3b8;
padding: 6px 16px; font-weight: 600; cursor: pointer;
font-family: inherit;
}
.side-group .group-title:hover { color: #cbd5e1; background: rgba(255,255,255,0.04); }
.side-group .group-title .flecha { font-size: 11px; transition: transform 0.15s; opacity: .7; }
.side-group.cerrado .group-title .flecha { transform: rotate(-90deg); }
.side-group.cerrado .group-items { display: none; }
.side-link {
display: flex; align-items: center; gap: 10px; padding: 8px 16px; color: var(--sidebar-fg);
cursor: pointer; font-size: 13.5px; border-left: 3px solid transparent;
}
.side-link:hover { background: rgba(255,255,255,0.06); text-decoration: none; color: #fff; }
.side-link.active { background: var(--sidebar-active); border-left-color: var(--accent); color: #fff; font-weight: 600; }
.side-link .ic { width: 20px; text-align: center; }
.sidebar .side-footer { margin-top: auto; padding: 14px 16px; font-size: 11.5px; color: #64748b; border-top: 1px solid rgba(255,255,255,0.08); }

.main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.topbar {
background: var(--card); border-bottom: 1px solid var(--border); padding: 9px 22px;
display: flex; align-items: center; justify-content: space-between; gap: 12px; position: sticky; top: 0; z-index: 20;
}
.iglesia-local {
display: flex; align-items: center; gap: 8px; min-width: 0; margin-right: auto;
background: var(--superficie-azul); border: 1px solid var(--borde-fuerte); border-radius: 999px; padding: 6px 14px 6px 10px;
}
.iglesia-local .ic { font-size: 15px; line-height: 1; }
.iglesia-local .nm {
font-size: 13.5px; font-weight: 700; color: var(--texto-marca);
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}





.iglesia-local.elegible {
cursor: pointer; font-family: inherit; color: inherit;


flex: 0 1 auto; min-width: 160px; max-width: 42vw;
}
.iglesia-local.elegible:hover { background: var(--tinte-azul-fuerte); border-color: var(--borde-fuerte); }
.iglesia-local .cambiar { font-size: 11px; color: var(--texto-marca); opacity: 0.75; }


.ig-todas, .ig-una {
display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; font-family: inherit;
border: 1px solid var(--border); background: var(--card); border-radius: 10px; padding: 11px 14px;
cursor: pointer; font-size: 14px; color: inherit; min-height: 44px;
}
.ig-todas { justify-content: space-between; margin-bottom: 10px; }
.ig-todas .mut, .ig-una .mut { font-size: 12.5px; color: var(--muted); }
.ig-todas.on, .ig-una.on { border-color: var(--marca-azul); background: var(--superficie-azul); }
.ig-todas.on b, .ig-una.on .nm { color: var(--texto-marca); }
.ig-lista { display: flex; flex-direction: column; gap: 8px; }
.ig-una .tic { width: 16px; color: var(--texto-marca); font-weight: 700; flex: none; }
.ig-una .nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; }

@media (min-width: 901px) {
.iglesia-local.ya-esta-en-el-menu:not(.elegible) { display: none; }



.iglesia-local:not(.elegible) .ic, .iglesia-local:not(.elegible) .nm { display: none; }
}
.page-head .sub-iglesia {
font-size: 12.5px; color: var(--muted); font-weight: 500; margin-top: 1px;
}

.topbar .tb-espacio { flex: 1; }





.buscador-global { position: relative; flex: 0 1 340px; min-width: 0; }
.buscador-global .lupa {
display: none; border: none; background: transparent; cursor: pointer;
font-size: 17px; line-height: 1; padding: 8px; border-radius: 8px; min-height: 40px;
}
.buscador-global .lupa:hover { background: var(--superficie-azul); }
.bg-caja {
display: flex; align-items: center; gap: 8px;
background: var(--bg); border: 1px solid var(--border); border-radius: 999px; padding: 0 6px 0 12px;
}
.bg-caja:focus-within { background: var(--card); border-color: var(--accent); box-shadow: 0 0 0 3px rgba(37, 99, 235, .12); }
.bg-caja .ic { font-size: 13px; line-height: 1; opacity: .55; flex: none; }
.bg-caja input {
flex: 1; min-width: 0; border: none; background: transparent; outline: none;
font-family: inherit; font-size: 13.5px; color: var(--text); padding: 9px 0; min-height: 38px;
}
.bg-caja input::-webkit-search-cancel-button { display: none; }
.bg-caja .bg-cerrar { display: none; border: none; background: transparent; cursor: pointer; font-size: 13px; color: var(--muted); padding: 6px 8px; }


.bg-panel {
position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 60;
background: var(--card); border: 1px solid var(--border); border-radius: 12px;
box-shadow: 0 10px 30px rgba(15, 23, 42, .16);
max-height: min(70vh, 520px); overflow-y: auto; padding: 6px;
}
.bg-vacio { padding: 16px 14px; font-size: 13px; color: var(--muted); }
.bg-vacio span { display: block; margin-top: 4px; font-size: 12px; }
.bg-grupo + .bg-grupo { border-top: 1px solid var(--borde-suave); margin-top: 4px; padding-top: 4px; }
.bg-cab {
display: flex; align-items: center; gap: 7px; padding: 8px 12px 4px;
font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .6px; color: var(--muted);
}
.bg-cab .ic { font-size: 13px; }
.bg-item { padding: 8px 12px; border-radius: 8px; cursor: pointer; }
.bg-item:hover, .bg-item.marcada { background: var(--superficie-azul); }
.bg-item .t { display: block; font-size: 13.5px; font-weight: 650; color: var(--text); }
.bg-item .p { display: block; font-size: 12px; color: var(--muted); margin-top: 2px; }
.bg-mas {
display: block; padding: 7px 12px 9px; font-size: 12px; font-weight: 700;
color: var(--texto-accion); text-decoration: none;
}
.bg-mas:hover { text-decoration: underline; }

@media (max-width: 820px) {
.buscador-global { flex: none; position: static; }
.buscador-global .lupa { display: block; }
.buscador-global .bg-caja { display: none; }

.buscador-global.abierto .lupa { display: none; }
.buscador-global.abierto .bg-caja {
display: flex; position: absolute; left: 10px; right: 10px; top: 8px; z-index: 61;
}
.buscador-global.abierto .bg-cerrar { display: block; }
.bg-panel { left: 10px; right: 10px; top: 58px; }
}
.topbar .who { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--muted); }
.topbar .who b { color: var(--text); }
.avatar {
width: 34px; height: 34px; border-radius: 50%; background: var(--accent); color: #fff;
display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px;
flex: none;
}

img.avatar { object-fit: cover; border: 1px solid rgba(255, 255, 255, 0.6); }
.content { padding: 24px; max-width: 1280px; width: 100%; margin: 0 auto; }









.btn {




display: inline-flex; align-items: center; justify-content: center; gap: 7px;
background: var(--accent); color: #fff;
border: none; border-radius: 8px; padding: 9px 16px; font-size: 13.5px; font-weight: 600;
cursor: pointer; transition: background 0.15s;
}
.btn:hover { background: var(--accent-dark); }
.btn.secondary { background: var(--card); color: var(--text); border: 1px solid var(--border); }
.btn.secondary:hover { background: var(--bg); }
.btn.danger { background: var(--danger); }
.btn.danger:hover { background: #b91c1c; }
.btn.sm { padding: 5px 10px; font-size: 12.5px; }



table.grid .btn.sm { background: transparent; border: 1px solid transparent; color: var(--muted); padding: 4px 7px; }
table.grid tr:hover .btn.sm { border-color: var(--border); background: var(--card); }
table.grid .btn.sm:hover { color: var(--text); background: var(--card); border-color: var(--border); }
table.grid .btn.danger.sm:hover { background: var(--tinte-rojo-fuerte); border-color: var(--borde-rojo); color: var(--danger); }


@media (hover: none) {
table.grid .btn.sm { border-color: var(--border); background: var(--card); color: var(--text); }
}

.page-head {
display: flex; align-items: center; justify-content: space-between;
gap: 12px 16px; margin-bottom: 16px; flex-wrap: wrap;
}
.page-head h2 { font-size: 20px; display: flex; align-items: center; gap: 9px; letter-spacing: -0.2px; }
.page-head .actions { display: flex; gap: 8px; flex-wrap: wrap; }

.card { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); border: 1px solid var(--border); }
.card .card-body { padding: 18px 20px; }

.toolbar { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 11px 14px; border-bottom: 1px solid var(--border); }

.horarios-culto { list-style: none; margin: 0; padding: 6px 14px 10px; }
.horarios-culto > li { padding: 10px 0; border-bottom: 1px solid var(--border); }
.horarios-culto > li:last-child { border-bottom: 0; }
.horarios-culto > li > b { display: block; margin-bottom: 4px; }
.horarios-culto ul { list-style: none; margin: 0; padding: 0; }
.horarios-culto ul li { display: flex; align-items: center; gap: 12px; padding: 6px 0; cursor: pointer; }
.horarios-culto ul li .btn { margin-left: auto; }
.hc-hora { font-weight: 700; min-width: 3.4em; font-variant-numeric: tabular-nums; }
.hc-tipo { color: var(--muted); }
.hc-nota { margin: 0; padding: 10px 14px 14px; font-size: 13px; color: var(--muted); }


.toolbar input[type="search"], .toolbar input[type="date"],
.toolbar input[type="number"], .toolbar select {
padding: 7px 11px; border: 1px solid var(--border); border-radius: 8px; font-size: 13.5px;
background: var(--card); height: 34px;
}


.toolbar input[type="search"] { flex: 1 1 200px; min-width: 160px; max-width: 320px; }
.toolbar select { flex: 0 1 auto; max-width: 190px; }
.toolbar label.range input[type="number"] { width: 5.5em; }
.toolbar .spacer { flex: 1; }
.toolbar label.range { font-size: 12.5px; color: var(--muted); display: flex; align-items: center; gap: 6px; }








.toolbar .tb-plegable { display: contents; }
.toolbar .tb-desplegar { display: none; }

table.grid { width: 100%; border-collapse: collapse; font-size: 13.5px; }







































table.grid th {
text-align: left; padding: 8px 12px; background: var(--superficie); color: var(--muted); font-size: 11.5px;
text-transform: uppercase; letter-spacing: 0.6px; border-bottom: 1px solid var(--border); cursor: pointer;
white-space: normal; overflow-wrap: break-word;
}
table.grid th .arrow { font-size: 10px; }
table.grid td { padding: 8px 12px; border-bottom: 1px solid var(--border); vertical-align: middle; }


table.grid td.num, table.grid th.num { text-align: right; font-variant-numeric: tabular-nums; }
table.grid td.cifra { font-variant-numeric: tabular-nums; white-space: nowrap; }
table.grid tr:hover td { background: var(--superficie); }
table.grid tr { cursor: pointer; }
.table-scroll { overflow-x: auto; }
.thumb { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; border: 1px solid var(--border); }

table.grid th.col-mini, table.grid td.col-mini { width: 1%; white-space: nowrap; text-align: center; padding-left: 10px; padding-right: 10px; }
table.grid th.col-mini { font-size: 15px; }
.empty-state { padding: 48px 20px; text-align: center; color: var(--muted); }
.empty-state .big { font-size: 40px; margin-bottom: 8px; }

.badge {
display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 600;
background: var(--pista); color: var(--texto-2);







max-width: 100%; overflow-wrap: break-word;
}


a.badge { text-decoration: none; }
a.badge:hover, a.badge:focus-visible { filter: brightness(0.94); text-decoration: underline; }

.badge.green { background: var(--tinte-verde-fuerte); color: var(--texto-verde); }
.badge.red { background: var(--tinte-rojo-fuerte); color: var(--texto-rojo); }
.badge.yellow { background: var(--tinte-ambar-fuerte); color: var(--texto-ambar); }
.badge.blue { background: var(--tinte-azul-fuerte); color: var(--texto-azul); }










.badge.gray { background: var(--pista); color: var(--texto-2); }


.badge.agendado { background: var(--tinte-violeta); color: var(--texto-violeta); font-weight: 500; }

.print-generic .acta-firmas { margin-top: 46px; }

.comprobante-monto { margin: 18px 0; padding: 14px 18px; border: 1px solid var(--borde-fuerte); border-radius: 6px; }
.comprobante-monto .lbl { font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-2); }
.comprobante-monto .num { font-size: 30px; font-weight: 700; font-variant-numeric: tabular-nums; }

table.cartola td.num { font-variant-numeric: tabular-nums; }

















table.grid.informe.cartola td[data-label="Concepto"] { white-space: normal; }

table.grid.informe.cartola td[data-label="Fecha"] { white-space: nowrap; }


table.cartola tr.por-venir td { color: var(--muted); }
table.cartola tr.por-venir td.col-titular { font-style: italic; }

.valor-normal { color: var(--muted); }

.pager { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; font-size: 13px; color: var(--muted); }
.pager .pages { display: flex; gap: 6px; }
.pager button { border: 1px solid var(--border); background: var(--card); border-radius: 6px; padding: 5px 11px; cursor: pointer; font-size: 13px; }
.pager button.cur { background: var(--accent); color: #fff; border-color: var(--accent); }
.pager button:disabled { opacity: 0.4; cursor: default; }





.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(288px, 1fr)); gap: 14px 18px; padding: 18px 20px; }
.form-grid .full { grid-column: 1 / -1; }


.form-grid > * { min-width: 0; }
.fld label { display: block; font-size: 12.5px; font-weight: 600; color: var(--texto-2); margin-bottom: 4px; }
.fld label .req { color: var(--danger); }
.fld input, .fld select, .fld textarea {
width: 100%; padding: 8px 11px; border: 1px solid var(--border); border-radius: 8px;
font-size: 14px; background: var(--card); font-family: inherit;
}
.fld input:focus, .fld select:focus, .fld textarea:focus { outline: 2px solid var(--borde-azul); border-color: var(--accent); }
.fld textarea { min-height: 84px; resize: vertical; }
.fld .help { font-size: 11.5px; color: var(--muted); margin-top: 3px; line-height: 1.4; }

.fld input[type="date"], .fld input[type="time"], .fld input.numero, .fld .conplata { max-width: 210px; }




.fld input.numero { font-variant-numeric: tabular-nums; }
.conplata { position: relative; display: block; }
.conplata .signo {
position: absolute; left: 11px; top: 50%; transform: translateY(-50%);
color: var(--muted); font-weight: 700; pointer-events: none;
}
.fld .conplata input { padding-left: 25px; }



.form-bloques { display: grid; gap: 12px; padding: 16px; }
.form-bloque {
border: 1px solid var(--border); border-radius: 12px;
padding: 2px 14px 10px; margin: 0; min-width: 0;
}

.form-bloque.suelto { border: 0; padding: 0; }
.form-bloque > legend {
padding: 0 8px; margin-left: 2px;
display: flex; align-items: center; gap: 7px;
font-size: 12px; font-weight: 700; letter-spacing: 0.4px; text-transform: uppercase;
color: var(--texto-marca);
}
.form-bloque > legend .nb {
display: inline-flex; align-items: center; justify-content: center;
width: 19px; height: 19px; border-radius: 50%; flex: none;
background: var(--marca-azul); color: #fff; font-size: 11px; letter-spacing: 0;
}
.form-bloque .form-grid { padding: 8px 0 0; }


.rico { border: 1px solid var(--border); border-radius: 8px; overflow: hidden; background: var(--card); }
.rico-barra {
display: flex; flex-wrap: wrap; align-items: center; gap: 3px;
padding: 5px 6px; background: var(--superficie); border-bottom: 1px solid var(--border);
}
.rico-barra button {
border: 1px solid transparent; background: none; border-radius: 6px; cursor: pointer;
padding: 4px 9px; font-size: 12.5px; font-family: inherit; color: var(--texto-2); line-height: 1.4;
}
.rico-barra button:hover { background: var(--card); border-color: var(--border); color: var(--texto-marca); }
.rico-barra .sep { width: 1px; height: 18px; background: var(--border); margin: 0 3px; }
.rico-hoja {
min-height: 150px; padding: 12px 14px; font-size: 14px; line-height: 1.55; outline: none;
}
.rico-hoja:focus { box-shadow: inset 0 0 0 2px var(--borde-azul); }
.rico-hoja p { margin: 0 0 8px; }
.rico-hoja h3 { font-size: 15.5px; color: var(--texto-marca); margin: 12px 0 6px; }
.rico-hoja h4 { font-size: 14px; margin: 10px 0 5px; }
.rico-hoja ul, .rico-hoja ol { margin: 0 0 8px; padding-left: 22px; }
.rico-hoja li { margin-bottom: 3px; }
.rico-hoja blockquote {
margin: 0 0 8px; padding-left: 12px; border-left: 3px solid var(--border); color: var(--muted);
}


.dato-rico { font-size: 14px; line-height: 1.55; }
.dato-rico p { margin: 0 0 8px; }
.dato-rico h3 { font-size: 15px; color: var(--texto-marca); margin: 12px 0 6px; }
.dato-rico h4 { font-size: 13.5px; margin: 10px 0 5px; }
.dato-rico ul, .dato-rico ol { margin: 0 0 8px; padding-left: 22px; }
.dato-rico blockquote { margin: 0 0 8px; padding-left: 12px; border-left: 3px solid var(--border); color: var(--muted); }


.fld.destacado label { color: var(--texto-ambar); }
.fld.destacado textarea, .fld.destacado input { border-color: var(--borde-ambar); background: var(--tinte-ambar); }


.traspaso-pasos {
display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
gap: 12px; padding: 16px 18px 18px;
}
.traspaso-pasos .tp {
display: flex; flex-direction: column; gap: 6px; align-items: flex-start;
border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; background: var(--superficie);
}
.traspaso-pasos .tp b { font-size: 13.5px; color: var(--texto-marca); }
.traspaso-pasos .tp span { font-size: 12.5px; color: var(--muted); line-height: 1.45; flex: 1; }
.traspaso-pasos .tp .btn { margin-top: 4px; }


.consola { margin: 0 18px 18px; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.consola-cab {
display: flex; align-items: center; gap: 10px; padding: 10px 14px;
background: var(--superficie); border-bottom: 1px solid var(--border); font-size: 13.5px;
}
.consola-cab b { flex: 1; }
.consola pre {
margin: 0; padding: 14px 16px; max-height: 460px; overflow: auto;
font-family: ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;
font-size: 12.5px; line-height: 1.6; white-space: pre; color: var(--text); background: var(--card);
}
.consola.bien { border-color: var(--borde-verde); }
.consola.bien .consola-cab { background: var(--tinte-verde); color: var(--texto-verde); }
.consola.mal { border-color: var(--borde-rojo); }
.consola.mal .consola-cab { background: var(--tinte-rojo); color: var(--texto-rojo); }

@media (max-width: 700px) {
.traspaso-pasos { grid-template-columns: 1fr; padding: 14px; }
.consola { margin: 0 14px 14px; }
.consola pre { font-size: 11.5px; }
}






@media (max-width: 700px) {
table.grid-lista, table.grid-lista tbody, table.grid-lista tr, table.grid-lista td { display: block; width: auto; }
table.grid-lista thead { display: none; }
table.grid-lista tr {
position: relative;





--acciones-alto: 34px;
--acciones-ancho: 78px;
border: 1px solid var(--border); border-radius: 12px; margin: 7px 10px; padding: 8px 12px;
background: var(--card); box-shadow: var(--shadow);
}
table.grid-lista tr:hover td { background: transparent; }
table.grid-lista td {
border: 0; padding: 2px 0; display: flex; flex-wrap: wrap; gap: 1px 12px; align-items: baseline;
justify-content: flex-end; text-align: right; font-size: 13.5px; line-height: 1.32;


min-width: 0; overflow-wrap: break-word;
}



table.grid-lista .texto-largo { min-width: 0; overflow-wrap: anywhere; }



















table.grid-lista td::before {
content: attr(data-label); flex: 0 0 auto; max-width: 100%; min-width: 0; margin-right: auto; text-align: left;
color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: 0.3px;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

table.grid-lista td:empty { display: none; }

table.grid-lista td[data-col="tratamiento"] {
justify-content: flex-start; text-align: left; color: var(--muted);
font-size: 12px; text-transform: uppercase; letter-spacing: 0.3px; padding-bottom: 0;
}
table.grid-lista td[data-col="tratamiento"]::before { display: none; }

table.grid-lista td[data-col="nombres"], table.grid-lista td[data-col="nombre"],
table.grid-lista td[data-col="apellidos"] { font-size: 15.5px; font-weight: 700; line-height: 1.22; }
table.grid-lista td[data-col="nombres"]::before, table.grid-lista td[data-col="nombre"]::before,
table.grid-lista td[data-col="apellidos"]::before { display: none; }
table.grid-lista td[data-col="nombres"], table.grid-lista td[data-col="nombre"] { padding-bottom: 0; }
table.grid-lista td[data-col="apellidos"] { padding-top: 0; }
table.grid-lista td[data-col="nombres"], table.grid-lista td[data-col="nombre"],
table.grid-lista td[data-col="apellidos"] { text-align: left; justify-content: flex-start; }

table.grid-lista td.col-mini { width: auto; justify-content: flex-start; padding: 2px 0 6px; }
table.grid-lista td.col-mini::before { display: none; }



table.grid-lista td.acciones {
position: absolute; top: 7px; right: 9px; padding: 0; gap: 4px; justify-content: flex-end;
}
table.grid-lista td.acciones::before { display: none; }






table.grid-lista td.col-primera,
table.grid-lista td[data-col="tratamiento"], table.grid-lista td[data-col="nombres"],
table.grid-lista td[data-col="nombre"], table.grid-lista td[data-col="apellidos"] {
padding-right: var(--acciones-ancho);
}






table.grid-lista td.col-primera { min-height: var(--acciones-alto); }



table.grid-lista td.col-titular {
font-size: 15.5px; font-weight: 700; line-height: 1.25;
justify-content: flex-start; text-align: left; padding-bottom: 4px;
}










table.grid-lista td.col-titular,
table.grid-lista td[data-col="nombres"], table.grid-lista td[data-col="nombre"],
table.grid-lista td[data-col="apellidos"] { display: block; overflow-wrap: break-word; }
table.grid-lista td.col-titular::before { display: none; }

table.grid-lista .btn.sm { border-color: var(--border); background: var(--card); color: var(--text); }
table.grid-lista .thumb { width: 46px; height: 46px; }













table.grid.informe th, table.grid.informe td { white-space: normal; }
table.grid.informe tr { cursor: pointer; }


table.grid.informe td.reparto {
display: block; text-align: left; min-width: 0 !important; padding-top: 4px;
}
table.grid.informe td.reparto::before { display: block; margin-bottom: 3px; }
}









.ficha-cabecera {
display: flex; gap: 18px; align-items: center; padding: 16px 18px; flex-wrap: wrap;
}
.ficha-cabecera .fc-foto {
width: 92px; height: 92px; border-radius: 14px; object-fit: cover; flex: none;
border: 1px solid var(--border); background: var(--superficie);
}
.ficha-cabecera .fc-foto.sin {
display: flex; align-items: center; justify-content: center; font-size: 38px; color: var(--texto-tenue);
}
.ficha-cabecera .fc-datos { flex: 1 1 240px; min-width: 0; }
.ficha-cabecera h3 { font-size: 20px; line-height: 1.25; margin: 0; }
.ficha-cabecera .fc-sub { color: var(--muted); font-size: 13px; margin-top: 3px; }
.ficha-cabecera .fc-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.ficha-cabecera .fc-acciones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ficha-cabecera .fc-acciones .btn { text-decoration: none; }

.toolbar label.ver-blancos {
display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); cursor: pointer;
}
.toolbar label.ver-blancos[hidden] { display: none; }














label.range[hidden],
.inf-no-inscrito[hidden],
.btn[hidden] { display: none; }

.ficha-datos {
display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 2px 18px; padding: 6px 18px 20px;
}
.ficha-seccion {
grid-column: 1 / -1; display: flex; align-items: center; gap: 12px; margin: 18px 0 6px;
font-size: 12.5px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase;
color: var(--texto-marca);
}
.ficha-seccion::after { content: ""; flex: 1; height: 1px; background: var(--border); }
.ficha-dato { display: flex; flex-direction: column; gap: 2px; padding: 8px 0; min-width: 0; }
.ficha-dato .dl { font-size: 11.5px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.3px; }
.ficha-dato .dv { font-size: 14.5px; line-height: 1.45; word-break: break-word; }
.ficha-dato .dv a { color: var(--texto-accion); text-decoration: none; }
.ficha-dato .dv .sin { color: var(--texto-tenue); font-size: 13px; }
.ficha-dato.destacado {
grid-column: 1 / -1; background: var(--tinte-ambar); border: 1px solid var(--borde-ambar); border-radius: 10px;
padding: 10px 14px; margin: 4px 0;
}
.ficha-dato.destacado .dl { color: var(--texto-ambar); }
.ficha-dato .dato-texto { white-space: pre-wrap; }
.ficha-dato .dato-nota { color: var(--muted); font-size: 12.5px; }
.ficha-dato .dato-wa { text-decoration: none; margin-left: 4px; }
.ficha-dato .dato-imagen {
max-width: 160px; max-height: 160px; border-radius: 8px; border: 1px solid var(--border); margin-top: 4px;
}
.ficha-dato .chip {
display: inline-block; background: var(--bg); border: 1px solid var(--border); border-radius: 999px;
padding: 2px 10px; font-size: 12.5px; margin: 2px 2px 0 0;
}


.ficha-dato a.chip {
color: var(--texto-accion); text-decoration: none;
display: inline-flex; align-items: center; min-height: 32px; padding: 4px 12px; margin: 4px 4px 0 0;
}
.ficha-dato a.chip:hover { border-color: var(--accent); }

.ficha-datos .vacio { display: none; }
.ficha-datos.con-vacios .ficha-dato.vacio { display: flex; }
.ficha-datos.con-vacios .ficha-seccion.vacio { display: flex; }

@media (max-width: 700px) {
.ficha-datos { grid-template-columns: 1fr; padding: 4px 14px 16px; gap: 0; }
.ficha-cabecera { padding: 14px; gap: 14px; }
.ficha-cabecera .fc-foto { width: 72px; height: 72px; }
.ficha-cabecera h3 { font-size: 18px; }
.ficha-cabecera .fc-acciones .btn { flex: 1 1 auto; text-align: center; }
.ficha-dato { border-bottom: 1px solid var(--borde-suave); padding: 10px 0; }
}










.pestanas {
display: flex; gap: 2px; margin: 14px 0 0;
overflow-x: auto; scrollbar-width: none;
border-bottom: 1px solid var(--border);
}
.pestanas::-webkit-scrollbar { display: none; }












.pestanas.mas-derecha {
-webkit-mask-image: linear-gradient(to right, #000 calc(100% - 26px), transparent);
mask-image: linear-gradient(to right, #000 calc(100% - 26px), transparent);
}
.pestanas.mas-izquierda {
-webkit-mask-image: linear-gradient(to left, #000 calc(100% - 26px), transparent);
mask-image: linear-gradient(to left, #000 calc(100% - 26px), transparent);
}
.pestanas.mas-izquierda.mas-derecha {
-webkit-mask-image: linear-gradient(to right, transparent, #000 26px, #000 calc(100% - 26px), transparent);
mask-image: linear-gradient(to right, transparent, #000 26px, #000 calc(100% - 26px), transparent);
}
.pestanas button {
display: inline-flex; align-items: center; gap: 7px; flex: none;
border: none; background: transparent; color: var(--muted);
padding: 11px 15px; font-size: 14px; font-weight: 650; font-family: inherit;
cursor: pointer; white-space: nowrap; min-height: 44px;
border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.pestanas button .ic { font-size: 15px; line-height: 1; }
.pestanas button:hover { color: var(--texto-marca); }
.pestanas button.on { color: var(--texto-accion); border-bottom-color: var(--accent); }
.pestanas button:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; border-radius: 6px; }


.panel-pestana > .card:first-child,
.panel-pestana > div:first-child > .card:first-child { margin-top: 14px; }

@media (max-width: 700px) {
.pestanas { margin-top: 12px; }
.pestanas button { padding: 11px 13px; font-size: 13.5px; gap: 6px; }
}





dialog.dlg {
border: none; border-radius: 14px; padding: 0; max-width: min(560px, calc(100vw - 32px));
box-shadow: 0 24px 60px rgba(15, 23, 42, .28); color: var(--text); background: var(--card);



margin: auto;
}
dialog.dlg::backdrop { background: rgba(15, 23, 42, .45); }
dialog.dlg h3 { font-size: 16px; padding: 18px 20px 0; margin: 0; }
dialog.dlg .dlg-cuerpo { padding: 14px 20px 4px; font-size: 13.5px; line-height: 1.55; max-height: 62vh; overflow-y: auto; }
dialog.dlg .dlg-pie {
display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap;
padding: 14px 20px 18px; border-top: 1px solid var(--border); margin-top: 12px;
}
dialog.dlg .btn.peligro { background: var(--danger); }
dialog.dlg .btn.peligro:hover { filter: brightness(1.06); }
@media (max-width: 560px) {
dialog.dlg .dlg-pie .btn { flex: 1 1 auto; text-align: center; }
}


.mini-list .mono { font-family: "Consolas", "DejaVu Sans Mono", "Courier New", monospace; letter-spacing: .01em; }
.mini-list li .nota { display: block; margin-top: 2px; font-size: 11.5px; }


.cfg-imagen-caja { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.cfg-imagen-caja img {
width: 84px; height: 84px; object-fit: contain; flex: none;
border: 1px solid var(--border); border-radius: 12px; background: var(--superficie); padding: 6px;
}
.cfg-imagen-acciones { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

.cfg-imagen-caja img.sin-imagen {
border-style: dashed; border-color: var(--borde-fuerte);
background: repeating-linear-gradient(45deg, var(--superficie), var(--superficie) 6px, var(--superficie) 6px, var(--superficie) 12px);
}
.cfg-imagen-acciones .mut { font-size: 12.5px; }


.avisos-ficha { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.aviso {
display: flex; gap: 12px; flex-wrap: wrap; align-items: baseline;
padding: 12px 16px; border-radius: 10px; font-size: 13.5px; line-height: 1.5;
background: var(--tinte-azul); border: 1px solid var(--borde-azul); color: var(--texto-azul);
}













.aviso b { overflow-wrap: anywhere; }
.aviso span { flex: 1 1 260px; }
.aviso.importante { background: var(--tinte-ambar); border-color: var(--borde-ambar); color: var(--texto-ambar); }
.aviso.salud { background: var(--tinte-verde); border-color: var(--borde-verde); color: var(--texto-verde); }

.aviso.choque { background: var(--tinte-ambar); border-color: var(--borde-ambar); color: var(--texto-ambar); }
.aviso.choque .acciones { flex: 1 1 100%; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.aviso.choque .acciones .btn { margin: 0; }


.aviso.confirmar { background: var(--tinte-ambar); border-color: var(--borde-ambar); color: var(--texto-ambar); }
.aviso.confirmar .acciones { flex: 1 1 100%; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.aviso.confirmar .acciones .btn { margin: 0; }





.disco-barra {
display: flex;
height: 22px;
border-radius: 6px;
overflow: hidden;
background: var(--border);
margin: 4px 0 14px;
}
.disco-barra span { display: block; height: 100%; }
.disco-barra .doc    { background: #2563eb; }
.disco-barra .base   { background: #0f766e; }
.disco-barra .copias { background: #a16207; }
.disco-barra .otros  { background: #94a3b8; }

.disco-leyenda {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
gap: 6px 18px;
font-size: 13.5px;
}
.disco-leyenda > div { display: flex; align-items: center; gap: 8px; }
.disco-leyenda b { margin-left: auto; font-variant-numeric: tabular-nums; }
.disco-leyenda .punto {
width: 10px; height: 10px; border-radius: 3px; flex: none;
}
.disco-leyenda .punto.doc    { background: #2563eb; }
.disco-leyenda .punto.base   { background: #0f766e; }
.disco-leyenda .punto.copias { background: #a16207; }
.disco-leyenda .punto.otros  { background: #94a3b8; }
.disco-leyenda .punto.libre  { background: var(--border); border: 1px solid var(--borde-fuerte); }






.perm-tabla .nom .nota {
display: block;
font-size: 12px;
line-height: 1.4;
margin-top: 3px;
max-width: 42ch;
font-weight: 400;
white-space: normal;
}
.perm-tabla .no-aplica { color: var(--muted); opacity: .55; }







.fld.check { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding-top: 22px; }
.fld.check input { width: auto; }

.fld.check label { margin: 0; flex: 1 1 0; min-width: 0; }
.fld.check > .help, .fld.check > .cfg-fabrica { flex-basis: 100%; }
.form-foot { display: flex; gap: 10px; justify-content: flex-end; padding: 16px 20px; border-top: 1px solid var(--border); background: var(--superficie); border-radius: 0 0 var(--radius) var(--radius); flex-wrap: wrap; }
.form-foot .left { margin-right: auto; }
.form-error { color: var(--danger); font-size: 13px; padding: 0 20px 10px; }


.multiref { border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.multiref .mr-search { border: none; border-bottom: 1px solid var(--border); border-radius: 0; width: 100%; padding: 8px 12px; }
.multiref .mr-list { max-height: 190px; overflow-y: auto; }
.multiref .mr-item { display: flex; align-items: center; gap: 8px; padding: 6px 12px; font-size: 13.5px; cursor: pointer; }
.multiref .mr-item:hover { background: var(--superficie); }
.multiref .mr-item input { width: auto; }
.multiref .mr-count { padding: 6px 12px; font-size: 12px; color: var(--muted); background: var(--superficie); border-top: 1px solid var(--border); }


.multiref.mr-por-iglesia .mr-filtro { display: flex; flex-wrap: wrap; gap: 8px; padding: 8px; border-bottom: 1px solid var(--border); background: var(--superficie); }
.multiref.mr-por-iglesia .mr-iglesia { flex: 1 1 180px; min-width: 0; width: auto; }
.multiref.mr-por-iglesia .mr-search { flex: 2 1 200px; min-width: 0; width: auto; border: 1px solid var(--border); border-radius: 6px; }
.multiref .mr-nota { color: var(--muted); cursor: default; }
.multiref .mr-elegidos { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 12px; border-top: 1px solid var(--border); }
.multiref .mr-elegido {
display: inline-flex; align-items: center; gap: 4px; min-height: 32px; padding: 2px 4px 2px 10px;
background: var(--bg); border: 1px solid var(--border); border-radius: 999px; font-size: 13px; max-width: 100%;
}
.multiref .mr-elegido small { color: var(--muted); }
.multiref .mr-quitar {
min-width: 28px; min-height: 28px; border: none; background: none; color: var(--muted); font-size: 18px; line-height: 1;
border-radius: 999px; cursor: pointer;
}
.multiref .mr-quitar:hover { color: var(--danger); background: var(--superficie); }


.filefld { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.filefld img.preview { width: 54px; height: 54px; object-fit: cover; border-radius: 8px; border: 1px solid var(--border); }
.filefld .fname { font-size: 12.5px; color: var(--muted); word-break: break-all; flex: 1 1 120px; min-width: 0; }
.filefld .sin-archivo { color: var(--texto-3); }

.fld input.oculto-de-verdad, .oculto-de-verdad {
position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.fld input.oculto-de-verdad { width: 1px; }
.filefld .btn, .filefld label.btn { flex: none; white-space: nowrap; }



.dir-actividad { padding: 10px 0; border-top: 1px solid var(--border); }
.dir-actividad:first-of-type { border-top: 0; }
.dir-cab { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-bottom: 4px; }
.dir-cab .mut { font-size: 12.5px; }
.dir-actividad .mini-list li { align-items: flex-start; gap: 10px; }
.dir-actividad .mini-list li > span:last-child {
display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; justify-content: flex-end; text-align: right;
}









.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(146px, 1fr)); gap: 10px; margin-bottom: 14px; }
.stat {
background: var(--card); border: 1px solid var(--border); border-radius: var(--radius);
padding: 11px 14px; box-shadow: var(--shadow); cursor: pointer; transition: border-color .12s, box-shadow .12s;
display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 8px;
}
.stat:hover { border-color: var(--borde-fuerte); box-shadow: 0 2px 8px rgba(22,38,92,.10); }
.stat .ic { font-size: 17px; grid-row: 1 / span 2; grid-column: 2; opacity: .75; }
.stat .num { font-size: 23px; font-weight: 800; line-height: 1.15; font-variant-numeric: tabular-nums; }
.stat .lbl { font-size: 12px; color: var(--muted); grid-column: 1; line-height: 1.3; }



.stat .alerta {
grid-column: 1 / -1; font-size: 11.5px; font-weight: 600; color: var(--danger);
line-height: 1.3; margin-top: 2px;
}
.stat.urge { border-left: 3px solid var(--danger); }



.stat .apunte {
grid-column: 1 / -1; font-size: 11.5px; color: var(--muted);
line-height: 1.3; margin-top: 2px;
}



.fin-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(178px, 1fr)); gap: 10px; margin-bottom: 18px; }
.fin {
border-radius: var(--radius); padding: 11px 14px; background: var(--card);
border: 1px solid var(--border); border-left: 3px solid var(--muted); box-shadow: var(--shadow);
}

.fin[data-ir] { cursor: pointer; transition: border-color .12s, box-shadow .12s; }
.fin[data-ir]:hover { border-color: var(--borde-fuerte); box-shadow: 0 2px 8px rgba(22,38,92,.10); }
.fin.green { border-left-color: var(--success); }
.fin.red { border-left-color: var(--danger); }
.fin.blue { border-left-color: var(--accent); }
.fin.slate { border-left-color: var(--muted); }







.fin.amber { border-left-color: var(--warning); }
.fin .lbl { font-size: 11.5px; color: var(--muted); text-transform: uppercase; letter-spacing: .4px; }



.fin .num {
font-size: 21px; font-weight: 800; margin-top: 2px; font-variant-numeric: tabular-nums;
color: var(--text); white-space: nowrap;
}
.fin.green .num { color: var(--texto-verde); }
.fin.red .num { color: var(--texto-rojo); }
.fin.blue .num { color: var(--texto-accion); }
.fin.amber .num { color: var(--texto-ambar); }


.dash-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; align-items: start; }
.dash-cols > * { min-width: 0; }
.dash-cols h3 { font-size: 14.5px; padding: 13px 16px 0; }
.actividades-panel .sin-lista { margin: 4px 16px 0; font-size: 12.5px; line-height: 1.45; }


.mini-list { list-style: none; padding: 8px 6px; }


.mini-list li {
display: flex; justify-content: space-between; gap: 4px 10px; padding: 8px 12px;
font-size: 13px; border-radius: 8px; flex-wrap: wrap;
}
.mini-list li:hover { background: var(--superficie); }
.mini-list .mut { color: var(--muted); font-size: 12px; }
.mini-list li > .mut { white-space: nowrap; }
.mini-list li > span { min-width: 0; }








.panel-de-control .page-head .sub-iglesia { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }


.panel-estado {
display: inline-block; white-space: nowrap; padding: 2px 10px; border-radius: 999px;
font-size: 12px; font-weight: 600; line-height: 1.5;
background: var(--superficie); color: var(--muted); border: 1px solid var(--border);
}
.panel-estado.ok { background: var(--tinte-verde); color: var(--texto-verde); border-color: var(--borde-verde); }
.panel-estado.aviso { background: var(--tinte-ambar); color: var(--texto-ambar); border-color: var(--borde-ambar); }


.panel-atajos {
display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px;
max-width: 660px; margin: -4px 0 16px;
}
.panel-atajo {
display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
min-height: 68px; padding: 10px 8px; text-align: center; text-decoration: none;
background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow);
color: var(--texto-accion); font-size: 13px; font-weight: 700; line-height: 1.25; overflow-wrap: anywhere;
transition: border-color .12s;
}
.panel-atajo .ic { font-size: 22px; line-height: 1; }
.panel-atajo:hover { border-color: var(--borde-fuerte); }
.panel-atajo:focus-visible { outline: 2px solid var(--borde-azul); outline-offset: 2px; }

.panel-rotulo { font-size: 13px; font-weight: 700; color: var(--muted); margin: 0 0 8px; }




.panel-de-control .stats { grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); }


.panel-de-control .stat { align-content: start; }
.panel-de-control .stat .ic { grid-row: 1; }
.panel-de-control .stat .lbl { grid-column: 1 / -1; }



.panel-de-control .mini-list li { flex-wrap: nowrap; align-items: flex-start; }
.panel-de-control .mini-list li > span:not(.badge) { flex: 1 1 auto; overflow-wrap: anywhere; }
.panel-de-control .mini-list li > .badge { flex: none; margin-top: 1px; white-space: nowrap; }


.panel-de-control ul.cumple-list li { flex-wrap: nowrap; align-items: flex-start; }
.panel-de-control ul.cumple-list .badge { flex: none; margin-top: 2px; white-space: nowrap; }






.treasury-summary, .resumen-cifras { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin-bottom: 16px; }

.resumen-nota { font-size: 12px; color: var(--muted); margin: -8px 0 16px; }


.print-actions { display: flex; gap: 10px; margin-bottom: 18px; }
.print-sheet {
background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow);
margin: 0 auto; padding: 0;
}









.cert-sheet {
--cert-color-titulo: #16265c;
--cert-color-texto: #44403c;
--cert-color-marco: #e8b52c;
--cert-fuente-titulo: Georgia, 'Times New Roman', serif;
--cert-fuente-texto: 'Segoe UI', system-ui, -apple-system, sans-serif;
--cert-tam-titulo: 34px;
--cert-tam-texto: 15px;
--cert-margen: 18mm;
--cert-marco: 3px double;
--cert-fondo-opacidad: 1;



--cert-ancho: 216mm;
--cert-alto: 279mm;




width: var(--cert-ancho); max-width: 100%; min-height: var(--cert-alto);
padding: var(--cert-margen); position: relative; overflow: hidden;
}


@media (max-width: 700px) { .cert-sheet { min-height: 0; } }











.cert-fondo {
position: absolute; inset: 0; width: 100%; height: 100%;
object-fit: cover; opacity: var(--cert-fondo-opacidad);
pointer-events: none; user-select: none; z-index: 0;
-webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.cert-inner {
border: var(--cert-marco) var(--cert-color-marco);
padding: 40px 48px; text-align: center; position: relative; z-index: 1;
}
.cert-logo { width: 92px; height: 92px; object-fit: contain; margin-bottom: 10px; }
.cert-inner .church { font-size: 13.5px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--marca-azul); font-weight: 700; line-height: 1.5; }
.cert-inner .church .lema { font-size: 12px; letter-spacing: 1px; color: var(--marca-oro-oscuro); }
.cert-inner .local { font-size: 12.5px; color: #78716c; margin-top: 4px; }
.cert-inner h1 {
font-family: var(--cert-fuente-titulo); font-size: var(--cert-tam-titulo);
color: var(--cert-color-titulo); margin: calc(18px * var(--cert-apretar, 1)) 0 6px; line-height: 1.2;
}





.cert-sheet h1 .cert-tit-linea { display: block; line-height: 1.05; }
.cert-inner .cert-no { font-size: 12px; color: var(--marca-oro-oscuro); letter-spacing: 1px; }
.cert-inner .otorgado { margin-top: calc(26px * var(--cert-apretar, 1)); font-size: 14px; color: #57534e; }
.cert-inner .titular {
font-family: var(--cert-fuente-titulo); font-size: calc(var(--cert-tam-titulo) * 0.88);
font-style: italic; color: var(--cert-color-titulo); margin: 10px 0 4px;
border-bottom: 1px solid var(--cert-color-marco); display: inline-block; padding: 0 30px 6px;
}
.cert-inner .texto {
max-width: 620px; margin: calc(18px * var(--cert-apretar, 1)) auto 0;
font-family: var(--cert-fuente-texto); font-size: var(--cert-tam-texto);
line-height: calc(1.7 * var(--cert-interlineado, 1) * var(--cert-apretar, 1)); color: var(--cert-color-texto); white-space: pre-wrap;
text-align: var(--cert-alineacion, inherit);
}
.cert-firmas { display: flex; justify-content: space-around; margin-top: 60px; }
.cert-firmas .firma { width: 220px; border-top: 1px solid #78716c; padding-top: 6px; font-size: 13px; color: #57534e; }
.cert-firmas .firma .rotulo { font-size: 11px; color: #a8a29e; }












.cert-anulado {
border: 2px solid #9f1239; border-radius: 3px; padding: 7px 14px; margin: 10px auto 14px;
max-width: 78%; text-align: center; font-size: 12.5px; color: #9f1239; line-height: 1.45;
}
.cert-anulado b { display: block; font-size: 14px; letter-spacing: 3px; margin-bottom: 2px; }
.cert-firmas .firma .pend {
display: block; margin-top: 3px; font-size: 11px; color: #9f1239; letter-spacing: 0.4px;
}






.cert-falta {
border: 2px dashed #b45309; border-radius: 3px; padding: 10px 14px; margin: 18px auto;
max-width: 78%; text-align: center; font-size: 12.5px; color: #b45309; line-height: 1.5;
}
.cert-falta b { display: block; font-size: 13px; letter-spacing: 1.2px; margin-bottom: 3px; }
.cert-fecha { margin-top: 30px; font-size: 13px; color: #78716c; }

.acta-sheet { max-width: 820px; padding: 46px 56px; font-size: 14px; line-height: 1.7; }
.membrete {
display: flex; align-items: center; gap: 14px; padding-bottom: 14px; margin-bottom: 20px;
border-bottom: 2px solid var(--marca-azul);
}
.membrete img { width: 62px; height: 62px; object-fit: contain; flex: none; }
.membrete b { display: block; font-size: 14px; text-transform: uppercase; letter-spacing: 0.8px; color: var(--texto-marca); }
.membrete i { font-style: normal; font-size: 12.5px; color: var(--marca-oro-oscuro); font-weight: 600; }

.membrete .datos { display: block; font-size: 10.5px; color: var(--texto-calido); margin-top: 3px; line-height: 1.4; }

.cert-pie {
margin-top: 14px; padding-top: 10px; border-top: 1px solid #e7e5e4;
font-size: 10px; color: #a8a29e; text-align: center; line-height: 1.5;
}
.acta-sheet h1 { text-align: center; font-size: 19px; text-transform: uppercase; letter-spacing: 1px; }
.acta-sheet .sub { text-align: center; color: var(--muted); margin-bottom: 26px; font-size: 13px; }
.acta-sheet .meta-tbl { width: 100%; border-collapse: collapse; margin-bottom: 20px; font-size: 13px; }
.acta-sheet .meta-tbl td { border: 1px solid var(--border); padding: 6px 10px; }
.acta-sheet .meta-tbl td.k { background: #f8fafc; font-weight: 600; width: 180px; }
.acta-sheet h3 { margin: 20px 0 6px; font-size: 14px; text-transform: uppercase; letter-spacing: 0.5px; color: #334155; }
.acta-sheet .blk { white-space: pre-wrap; }
.acta-firmas { display: flex; justify-content: space-between; margin-top: 70px; gap: 40px; }
.acta-firmas .firma { flex: 1; text-align: center; border-top: 1px solid var(--muted); padding-top: 6px; font-size: 13px; }




.acta-sin-firmar {
border: 2px solid #9f1239; border-radius: 3px; padding: 8px 14px; margin: 0 0 22px;
text-align: center; font-size: 12.5px; color: var(--texto-rojo); line-height: 1.45;
}
.acta-sin-firmar b { display: block; font-size: 13px; letter-spacing: 2.5px; margin-bottom: 2px; }
.acta-firmas .firma .pend {
display: block; margin-top: 3px; font-size: 11px; color: var(--texto-rojo); letter-spacing: 0.4px;
}

.print-generic { max-width: 820px; padding: 40px 48px; }
.print-generic h1 { font-size: 20px; margin-bottom: 4px; }
.print-generic .sub { color: var(--muted); font-size: 13px; margin-bottom: 20px; }
.print-generic table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.print-generic td { border: 1px solid var(--border); padding: 8px 12px; }
.print-generic td.k { background: #f8fafc; font-weight: 600; width: 220px; }




.print-generic h2.print-h2 { font-size: 15px; margin: 26px 0 4px; }
.print-generic table.entregas td.k { width: auto; }





.print-generic img.foto-papel {
display: block; max-width: 150px; max-height: 110px;
border: 1px solid var(--border); border-radius: 3px;
}





.print-generic h3 {
margin: 20px 0 6px; font-size: 14px; text-transform: uppercase;
letter-spacing: 0.5px; color: #334155;
}
.print-generic .blk { white-space: pre-wrap; font-size: 13.5px; }
.print-generic .meta-tbl td.k { background: #f8fafc; font-weight: 600; width: 220px; }
.print-generic .blk.vacio { color: var(--muted); font-size: 12.5px; }



.print-generic .blk.resolucion {
border: 1px solid var(--border); border-left: 3px solid var(--marca-azul);
background: #f8fafc; padding: 10px 14px; border-radius: 4px;
}



.print-generic table.tramite { margin-bottom: 6px; font-size: 12.5px; }
.print-generic table.tramite th {
border: 1px solid var(--border); padding: 6px 10px; text-align: left;
background: #eef2ff; color: var(--marca-azul); font-weight: 700;
font-size: 11px; text-transform: uppercase; letter-spacing: 0.3px;
}
.print-generic table.tramite td { padding: 6px 10px; vertical-align: top; }
.print-generic table.tramite .nowrap { white-space: nowrap; }


@media print {
.print-generic table.tramite tr { break-inside: avoid; }
.print-generic table.tramite thead { display: table-header-group; }









.print-generic h2.print-h2 { break-after: avoid; break-inside: avoid; }
.print-generic h2.print-h2 + .sub { break-before: avoid; break-after: avoid; }
}

.print-generic .blk.sin-anotar { color: #64748b; font-style: italic; }

@media print {
body { background: #fff; }
.sidebar, .topbar, .print-actions, .no-print { display: none !important; }
.content { padding: 0; max-width: none; }
.print-sheet { border: none; box-shadow: none; }
}















.planilla-tit { text-align: center; letter-spacing: 0.5px; }
.planilla-scroll { overflow-x: auto; }
table.planilla-mes {
border-collapse: collapse; width: 100%; font-size: 11px;
font-variant-numeric: tabular-nums;
}
table.planilla-mes th, table.planilla-mes td {
border: 1px solid var(--borde-fuerte); padding: 2px 3px; text-align: center; white-space: nowrap;
}
table.planilla-mes thead th { background: var(--tinte-azul); color: var(--texto-marca); font-weight: 700; }
table.planilla-mes .col-n { width: 26px; color: var(--muted); }
table.planilla-mes .col-nombre { text-align: left; padding-left: 7px; white-space: nowrap; }
table.planilla-mes .col-dia { width: 17px; }
table.planilla-mes .col-tot { width: 30px; font-weight: 600; }


table.planilla-mes .sin-reunion { background: var(--superficie); }





table.planilla-mes .por-llenar { background: var(--card); }
table.planilla-mes tbody tr:nth-child(even) td.por-llenar { background: var(--card); }
table.planilla-mes tfoot .pie td.por-llenar { background: var(--card); }
table.planilla-mes td.marca { font-weight: 700; }
table.planilla-mes .si  { color: var(--texto-verde); }
table.planilla-mes .jus { color: var(--texto-accion); }
table.planilla-mes .no  { color: var(--texto-rojo); }
table.planilla-mes tbody tr:nth-child(even) td { background: var(--superficie); }
table.planilla-mes tbody tr:nth-child(even) td.sin-reunion { background: var(--superficie-azul); }
table.planilla-mes tfoot .pie td { background: var(--superficie); font-weight: 600; font-size: 10.5px; }
table.planilla-mes tfoot .pie td:first-child { text-align: left; padding-left: 7px; letter-spacing: 0.3px; }
table.planilla-mes tfoot .pie.si td  { color: var(--texto-verde); }
table.planilla-mes tfoot .pie.jus td { color: var(--texto-accion); }
table.planilla-mes tfoot .pie.no td  { color: var(--texto-rojo); }





@media print {
.planilla-hoja { padding: 0; }
.planilla-hoja .planilla-scroll { overflow: visible; }
table.planilla-mes { font-size: 7.5pt; }
table.planilla-mes th, table.planilla-mes td { padding: 1px 2px; }







table.planilla-mes thead { display: table-header-group; }
table.planilla-mes tfoot { display: table-row-group; }
table.planilla-mes tr { break-inside: avoid; }
table.planilla-mes .sin-reunion { background: #f0f0f0 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
table.planilla-mes .por-llenar { background: #fff !important; }
}

table.planilla-mes thead tr.letras th { font-weight: 500; font-size: 9.5px; color: var(--muted); background: var(--superficie); }
table.planilla-mes thead tr.letras th.col-nombre { text-align: right; padding-right: 6px; }







table.planilla-mes thead th.falta-lista,
table.planilla-mes thead tr.letras th.falta-lista {
background: var(--tinte-ambar-fuerte); color: var(--texto-ambar); font-weight: 700;
box-shadow: inset 0 3px 0 var(--warning);
}
table.planilla-mes thead tr.letras th.falta-lista { box-shadow: none; }
table.planilla-mes td.falta-lista,
table.planilla-mes tbody tr:nth-child(even) td.falta-lista,
table.planilla-mes tfoot .pie td.falta-lista {
background: repeating-linear-gradient(135deg, var(--tinte-ambar-fuerte) 0 4px, var(--tinte-ambar) 4px 8px);
border-left: 2px solid var(--warning); border-right: 2px solid var(--warning);
}


.faltan-listas {
display: flex; gap: 10px 14px; align-items: flex-start;
margin: 10px 0 12px; padding: 12px 14px; border-radius: 10px;
background: var(--tinte-ambar); border: 1px solid var(--borde-ambar); border-left: 5px solid var(--warning);
color: var(--text);
}
.faltan-listas .fl-ic { font-size: 22px; line-height: 1; }
.faltan-listas .fl-txt { flex: 1 1 auto; min-width: 0; }
.faltan-listas .fl-tit { display: block; color: var(--texto-ambar); font-size: 15px; margin-bottom: 2px; }
.faltan-listas .fl-dias { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.faltan-listas .fl-dia {
display: inline-flex; align-items: center; gap: 8px; padding: 6px 8px 6px 12px;
border: 1px solid var(--borde-ambar); border-radius: 999px; background: var(--card); font-size: 13.5px;
}
.faltan-listas .fl-dia .btn { padding: 6px 12px; font-size: 13px; white-space: nowrap; flex: none; }

.leyenda-falta {
display: inline-block; width: 22px; height: 12px; vertical-align: -1px; border: 1px solid var(--warning);
background: repeating-linear-gradient(135deg, var(--tinte-ambar-fuerte) 0 4px, var(--tinte-ambar) 4px 8px);
}
@media (max-width: 560px) {
.faltan-listas .fl-dia { display: flex; width: 100%; justify-content: space-between; }
}






.planilla-scroll {
background:
linear-gradient(to right, var(--card) 30%, transparent) left center / 22px 100% no-repeat local,
linear-gradient(to left, var(--card) 30%, transparent) right center / 22px 100% no-repeat local,
radial-gradient(farthest-side at 0 50%, color-mix(in srgb, var(--text) 24%, transparent), transparent) left center / 14px 100% no-repeat scroll,
radial-gradient(farthest-side at 100% 50%, color-mix(in srgb, var(--text) 24%, transparent), transparent) right center / 14px 100% no-repeat scroll;
}
@media (max-width: 700px) {
table.planilla-mes thead tr.letras th { font-size: 10.5px; }
}




@media print {
.faltan-listas {
background: var(--card); border: 1.5pt solid var(--warning); border-left-width: 6pt;
padding: 5pt 9pt; margin: 3pt 0 6pt; font-size: 9pt; break-inside: avoid;
-webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.faltan-listas .fl-ic { font-size: 16pt; }
.faltan-listas .fl-tit { font-size: 11pt; }
.faltan-listas .btn { display: none; }
.planilla-hoja .planilla-scroll { background: none; }
.faltan-listas .fl-dias { gap: 2pt 14pt; margin-top: 3pt; }
.faltan-listas .fl-dia { border: 0; padding: 0; background: transparent; font-size: 9.5pt; }
table.planilla-mes thead th.falta-lista,
table.planilla-mes thead tr.letras th.falta-lista {
background: var(--tinte-ambar-fuerte); color: var(--text); border: 1.5pt solid var(--text); box-shadow: none;
-webkit-print-color-adjust: exact; print-color-adjust: exact;
}
table.planilla-mes td.falta-lista,
table.planilla-mes tbody tr:nth-child(even) td.falta-lista,
table.planilla-mes tfoot .pie td.falta-lista,
.leyenda-falta {
background: repeating-linear-gradient(135deg, var(--warning) 0 0.7px, var(--card) 0.7px 4.5px);
-webkit-print-color-adjust: exact; print-color-adjust: exact;
}
table.planilla-mes td.falta-lista,
table.planilla-mes tbody tr:nth-child(even) td.falta-lista,
table.planilla-mes tfoot .pie td.falta-lista {
border-left: 1.5pt solid var(--text); border-right: 1.5pt solid var(--text);
}
.leyenda-falta { border-color: var(--text); }
}


.curva-asistencia svg { width: 100%; height: auto; display: block; }
.curva-asistencia .guia { stroke: var(--border); stroke-width: 1; }
.curva-asistencia .linea { fill: none; stroke: #16a34a; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.curva-asistencia .punto { fill: #fff; stroke: #16a34a; stroke-width: 2.5; }
.curva-asistencia .eje { font-size: 11px; fill: var(--muted); }
.curva-asistencia .valor { font-size: 11px; font-weight: 600; fill: var(--text); }





.cuadro-scroll { overflow-x: auto; max-width: 100%; }
table.cuadro-periodos {
border-collapse: separate; border-spacing: 0; font-size: 12px; font-variant-numeric: tabular-nums; min-width: 100%;
}
table.cuadro-periodos th, table.cuadro-periodos td {
border-bottom: 1px solid var(--border); padding: 5px 7px; text-align: center; white-space: nowrap;
}
table.cuadro-periodos thead th { background: var(--tinte-azul); color: var(--texto-marca); font-weight: 700; font-size: 11.5px; }
table.cuadro-periodos .fija {
position: sticky; left: 0; z-index: 1; text-align: left; background: var(--card); font-weight: 600;
min-width: 150px; max-width: 220px; white-space: normal; box-shadow: 2px 0 0 var(--border);
}
table.cuadro-periodos thead th.fija { background: var(--tinte-azul); }
table.cuadro-periodos td small { display: block; color: var(--muted); font-size: 10.5px; }
table.cuadro-periodos td.vacia { color: var(--muted); }
table.cuadro-periodos .total { background: var(--superficie); font-weight: 700; }
table.cuadro-periodos tr.ya-no-esta td { color: var(--muted); font-style: italic; }
@media print {
.cuadro-scroll { overflow: visible; }
table.cuadro-periodos { font-size: 9pt; }
table.cuadro-periodos .fija { position: static; box-shadow: none; }
}

@page planilla { size: Letter landscape; margin: 8mm; }
.planilla-hoja { page: planilla; }






.campanita { position: relative; }
.cam-boton {
background: none; border: none; cursor: pointer; font-size: 19px; line-height: 1;
padding: 7px 9px; border-radius: 10px; position: relative;
}
.cam-boton:hover { background: var(--tinte-azul); }
.campanita.con-avisos .cam-boton { animation: cam-toque 1.4s ease-in-out 1; }
@keyframes cam-toque {
0%, 100% { transform: rotate(0); }
15% { transform: rotate(-12deg); }
30% { transform: rotate(10deg); }
45% { transform: rotate(-6deg); }
60% { transform: rotate(4deg); }
}
.cam-cuenta {
position: absolute; top: 1px; right: 1px; min-width: 17px; height: 17px;
padding: 0 4px; border-radius: 999px; background: var(--danger, #dc2626); color: #fff;
font-size: 11px; font-weight: 700; line-height: 17px; text-align: center;
font-variant-numeric: tabular-nums;
}
.cam-panel {
position: absolute; right: 0; top: calc(100% + 8px); width: min(380px, 92vw);
background: var(--card); border: 1px solid var(--borde-fuerte); border-radius: 12px;
box-shadow: 0 12px 34px rgba(15, 23, 42, 0.18); z-index: 60; overflow: hidden;
}
.cam-cabecera {
display: flex; align-items: center; justify-content: space-between; gap: 10px;
padding: 11px 14px; border-bottom: 1px solid var(--borde-suave); background: var(--superficie);
}
.cam-lista { list-style: none; margin: 0; padding: 0; max-height: 60vh; overflow-y: auto; }
.cam-lista li { padding: 11px 14px; border-bottom: 1px solid var(--borde-suave); cursor: pointer; }
.cam-lista li:hover { background: var(--superficie); }


.cam-lista li.sin-leer { border-left: 3px solid var(--marca-azul); padding-left: 11px; background: var(--superficie); }
.cam-lista li.leido { opacity: 0.72; }
.cam-t { font-weight: 600; font-size: 13.5px; }

.cam-lista li.cam-corte {
font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted);
background: var(--superficie); padding: 6px 14px; cursor: default;
}
.cam-mas { padding: 8px 14px; border-top: 1px solid var(--borde-suave); text-align: center; }

.cam-de { font-size: 12px; color: var(--texto-marca); margin-top: 2px; font-weight: 600; }




.cam-c { font-size: 12.5px; color: var(--muted); margin-top: 2px;
display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
overflow: hidden; }
.cam-f { font-size: 11.5px; color: var(--muted); margin-top: 3px; }
.cam-vacio { padding: 26px 16px; text-align: center; color: var(--muted); font-size: 13px; }
.cam-pie { padding: 9px 14px; border-top: 1px solid var(--borde-suave); background: var(--superficie); font-size: 12.5px; }
.cam-pie a { color: var(--texto-marca); text-decoration: none; }
.cam-pie a:hover { text-decoration: underline; }
@media (max-width: 560px) {


.cam-panel { position: fixed; right: 8px; left: 8px; width: auto; top: 58px; }
}






















table.grid.prefs-avisos td.canal { text-align: center; }

@media (max-width: 700px) {
table.grid.prefs-avisos, table.grid.prefs-avisos tbody,
table.grid.prefs-avisos tr, table.grid.prefs-avisos td { display: block; width: auto; }
table.grid.prefs-avisos thead { display: none; }




table.grid.prefs-avisos tr {
display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
gap: 7px 10px; align-items: center;
padding: 11px 14px; border-bottom: 1px solid var(--border); cursor: default;
}
table.grid.prefs-avisos tr:last-child { border-bottom: none; }
table.grid.prefs-avisos tr:hover td { background: transparent; }
table.grid.prefs-avisos td { border-bottom: none; padding: 0; }


table.grid.prefs-avisos td.aviso-nombre { grid-column: 1 / -1; padding-bottom: 2px; }
table.grid.prefs-avisos td.canal {
display: flex; align-items: center; gap: 7px; width: auto; min-width: 0;
font-size: 12.5px; color: var(--muted); text-align: left;
}





table.grid.prefs-avisos td.canal::before {
content: attr(data-label); order: 2; line-height: 1.25;
}
table.grid.prefs-avisos td.canal input[type=checkbox] { order: 1; margin: 0; flex: none; }








table.grid.prefs-avisos td.canal.fijo { grid-column: 1 / -1; }
table.grid.prefs-avisos td.canal.fijo::before { order: 0; content: attr(data-label) ':'; }


table.grid.prefs-avisos td.canal.fijo .mut { order: 1; font-weight: 600; color: var(--text); }
}







.menu-toggle { display: none; background: none; border: none; font-size: 22px; cursor: pointer; }
.backdrop {
display: none; position: fixed; inset: 0; background: rgba(15, 23, 42, 0.5); z-index: 40;
}
.backdrop.show { display: block; }
@media (max-width: 900px) {
body { font-size: 15px; }



.form-grid { grid-template-columns: repeat(3, 1fr); padding: 14px; gap: 14px 10px; }
.form-grid > * { grid-column: 1 / -1; }
.form-grid > .tercio { grid-column: span 1; }
.form-bloques { padding: 12px; gap: 10px; }
.form-bloque { padding: 2px 11px 8px; }
.dash-cols { grid-template-columns: 1fr; }
.menu-toggle { display: block; }
.sidebar { position: fixed; z-index: 50; left: -270px; transition: left 0.22s; width: 264px; box-shadow: 4px 0 24px rgba(0,0,0,0.3); }
.sidebar.open { left: 0; }
.side-link { padding: 12px 16px; font-size: 15px; }
.content { padding: 14px; }
.topbar { padding: 10px 12px; gap: 8px; }
.topbar .who span:last-child { display: none; }
.iglesia-local { padding: 5px 10px; }


.iglesia-local .ic { display: none; }








.iglesia-local .nm { max-width: none; font-size: 12.5px; min-width: 0; }









.iglesia-local.elegible { min-width: 80px; max-width: 46vw; }
.page-head h2 { font-size: 18px; }
.stats { grid-template-columns: 1fr 1fr; gap: 8px; }


.panel-de-control .stats { grid-template-columns: 1fr 1fr; }
.panel-de-control .stats > .stat:last-child:nth-child(odd) { grid-column: 1 / -1; }
.stat { padding: 10px 12px; }
.stat .num { font-size: 20px; }
.stat .ic { font-size: 15px; }













.fin-cards, .treasury-summary, .resumen-cifras { grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap: 8px; }
.fin, .treasury-summary > *, .resumen-cifras > * { min-width: 0; }
.fin { padding: 10px 12px; }
.fin .num { font-size: 18px; }
.toolbar { padding: 10px 12px; gap: 8px; }
.toolbar input[type="search"] { min-width: 0; flex: 1 1 100%; }








.toolbar .tb-plegable { display: none; }
.toolbar.filtros-abiertos .tb-plegable {
display: flex; flex-wrap: wrap; gap: 8px; width: 100%; margin-top: 2px;
}
.toolbar .tb-desplegar { display: inline-flex; align-items: center; gap: 6px; }
.toolbar .tb-desplegar::before { content: "▾"; font-size: 11px; }
.toolbar.filtros-abiertos .tb-desplegar::before { content: "▴"; }


.toolbar .tb-desplegar.con-filtros {
border-color: var(--accent); color: var(--texto-accion); font-weight: 700;
}


.toolbar select, .toolbar label.range { flex: 1 1 45%; min-width: 0; max-width: 100%; }
.toolbar label.range input { flex: 1; min-width: 0; }




table.grid:not(.grid-lista):not(.prefs-avisos) td,
table.grid:not(.grid-lista):not(.prefs-avisos) th { padding: 9px 10px; }
.btn { padding: 10px 16px; }
.pager { flex-wrap: wrap; gap: 8px; justify-content: center; }
.form-foot { padding: 12px 14px; }
.form-foot .btn { flex: 1; }
.form-foot .left { flex-basis: 100%; margin-right: 0; }
.fld input, .fld select, .fld textarea { font-size: 16px; }
.cert-inner { padding: 22px 14px; }
.cert-inner h1 { font-size: 24px; }
.cert-inner .titular { font-size: 22px; padding: 0 10px 6px; }
.acta-sheet, .print-generic { padding: 22px 16px; }
.login-wrap { padding: 16px; }
.login-card { padding: 24px 20px; }
}


















.resumen-mas { display: none; }
@media (max-width: 560px) {
.fin-cards, .treasury-summary, .resumen-cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-bottom: 12px; }
.fin { padding: 7px 10px; box-shadow: none; }
.fin .lbl { font-size: 10.5px; letter-spacing: .3px; line-height: 1.25; }
.fin .num { font-size: 17px; margin-top: 1px; }
.resumen-plegado > .fin-de-mas { display: none; }
.resumen-mas {
display: block; grid-column: 1 / -1; min-height: 34px; padding: 6px 12px;
background: var(--card); color: var(--texto-accion); border: 1px solid var(--border);
border-radius: var(--radius); font: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer;
}
}











@media (max-width: 700px) {
.topbar { flex-wrap: wrap; row-gap: 6px; }
}









@media (max-width: 560px) {
.simulacro-tablas th, .simulacro-tablas td { padding: 6px 7px; }
.simulacro-tablas td:first-child { overflow-wrap: anywhere; }
}









.modal-fondo {
position: fixed; inset: 0; background: rgba(15,23,42,0.55); z-index: 60;
display: flex; align-items: center; justify-content: center; padding: 16px;
}
.modal {
background: var(--card); border-radius: 14px; width: 100%; max-width: 820px;
max-height: 90vh; display: flex; flex-direction: column; box-shadow: 0 20px 60px rgba(0,0,0,0.35);
}
.modal-head {
padding: 16px 20px; border-bottom: 1px solid var(--border);
display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.modal-head h3 { font-size: 17px; }
.modal-head .cerrar { background: none; border: none; font-size: 22px; cursor: pointer; color: var(--muted); line-height: 1; }
.modal-body { padding: 18px 20px; overflow-y: auto; }
.modal-foot {
padding: 14px 20px; border-top: 1px solid var(--border); background: var(--superficie);
display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; border-radius: 0 0 14px 14px;
}
.modal-foot .left { margin-right: auto; }
.paso { margin-bottom: 18px; }
.paso h4 { font-size: 13px; text-transform: uppercase; letter-spacing: 0.6px; color: var(--muted); margin-bottom: 8px; }



.mapeo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 14px; }
.mapeo .par { display: flex; align-items: center; gap: 8px; font-size: 13px; min-width: 0; }
.mapeo .par .col { flex: 0 0 45%; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mapeo .par select { flex: 1; padding: 6px 8px; border: 1px solid var(--border); border-radius: 6px; font-size: 12.5px; min-width: 0; }
.previa { overflow-x: auto; border: 1px solid var(--border); border-radius: 8px; }
.previa table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.previa th { background: var(--superficie); padding: 7px 10px; text-align: left; white-space: nowrap; border-bottom: 1px solid var(--border); }
.previa td { padding: 6px 10px; border-bottom: 1px solid var(--border); white-space: nowrap; }
.resultado { border-radius: 10px; padding: 14px 16px; font-size: 14px; }
.resultado.ok { background: var(--tinte-verde-fuerte); color: var(--texto-verde); }
.resultado.warn { background: var(--tinte-ambar-fuerte); color: var(--texto-ambar); }
.resultado.err { background: var(--tinte-rojo-fuerte); color: var(--texto-rojo); }
.lista-errores { max-height: 240px; overflow-y: auto; margin-top: 10px; font-size: 12.5px; }
.lista-errores div { padding: 5px 0; border-bottom: 1px solid rgba(0,0,0,0.06); }
.lista-errores b { color: inherit; }





.mas-problemas { margin-top: 8px; font-size: 12.5px; font-weight: 600; }
@media (max-width: 700px) { .mapeo { grid-template-columns: minmax(0, 1fr); } }


.versiones-lista li { align-items: flex-start; gap: 14px; }
.versiones-lista li > span:first-child { flex: 0 0 auto; }
.versiones-lista li > span:last-child { text-align: right; }
.versiones-lista li.es-la-de-ahora { background: var(--tinte-verde); border-radius: 8px; }


.versiones-lista li > span:last-child { flex: 1 1 320px; }
.version-detalle > summary {
display: inline-flex; align-items: center; min-height: 32px; cursor: pointer;
color: var(--texto-azul); font-size: 12.5px; font-weight: 600;
}
.version-detalle .version-texto {
margin: 4px 0 6px; text-align: left; line-height: 1.55; color: var(--text);
max-width: 75ch; margin-left: auto; overflow-wrap: anywhere;
}


@media (max-width: 620px) {
.versiones-lista li { flex-direction: column; gap: 2px; }
.versiones-lista li > span:last-child { text-align: left; flex: 0 0 auto; }
}






.aviso-panel { border-left: 4px solid #f59e0b; margin-bottom: 18px; }








.aviso-panel h3 { font-size: 14.5px; padding: 13px 16px 0; color: var(--texto-ambar); }
.aviso-panel > p { margin: 0 0 4px; padding: 6px 16px 0; font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
.aviso-panel .mini-list li { cursor: pointer; }


.aviso-mantenimiento {
background: var(--tinte-ambar-fuerte); color: var(--texto-ambar); border: 1px solid var(--borde-ambar); border-radius: 10px;
padding: 12px 14px; font-size: 13.5px; text-align: left; line-height: 1.5;
}
.aviso-mantenimiento span { display: block; margin-top: 4px; font-size: 12.5px; opacity: 0.85; }





.vista-como {
position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap;
padding: 10px 16px; padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
background: #92400e; color: #fff; font-size: 13.5px; line-height: 1.4;
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.18);
}
.vista-como b { color: #fff; }
.vista-como .vc-nota { display: block; font-size: 12.5px; opacity: 0.9; }
.vista-como .btn { background: #fff; color: #92400e; border: 1px solid #fff; font-weight: 600; white-space: nowrap; }
.vista-como .btn:hover { background: #fef3c7; }



.layout.en-vista .content { padding-bottom: calc(var(--alto-franja-vista, 120px) + 20px); }




.permisos-editor { border: 1px solid var(--border); border-radius: 10px; overflow-x: auto; }




.perm-portal {
display: flex;
flex-direction: column;
gap: 8px;
padding: 16px 18px;
border-left: 3px solid var(--accent);
background: var(--bg);
border-radius: 6px;
font-size: 13.5px;
line-height: 1.55;
}
.perm-portal span { color: var(--muted); }

.perm-cabecera {
display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
font-size: 12.5px; color: var(--muted); margin-bottom: 12px; line-height: 1.45;
}
.perm-cabecera span { flex: 1; min-width: 240px; }

.perm-buscar { margin-bottom: 10px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.perm-buscar input {
flex: 1; min-width: 200px; max-width: 320px; padding: 7px 11px; border: 1px solid var(--border);
border-radius: 8px; font-size: 13.5px; background: var(--card);
}










.perm-areas { margin-bottom: 12px; }
.pa-llaves {
display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
padding: 8px 12px; background: var(--superficie); border-top: 1px solid var(--border);
font-size: 12.5px;
}
.pa-llaves b { color: var(--texto-marca); }
.pa-llaves .mut { color: var(--muted); font-size: 12px; }
.pa-llaves .spacer { flex: 1; }

.perm-lleva { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin: 0 2px 14px; font-size: 12px; }
.perm-lleva .mut { color: var(--muted); }
.perm-lleva a { color: var(--texto-accion); text-decoration: none; }
.perm-lleva a:hover { text-decoration: underline; }


.perm-grupo { border: 1px solid var(--border); border-radius: 10px; margin-bottom: 10px; overflow: hidden; }
.pg-cab {
display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
padding: 8px 12px; background: var(--superficie); cursor: pointer; font-size: 13px;
}
.pg-cab:hover { background: var(--bg); }
.pg-cab .flecha { color: var(--muted); width: 12px; }
.pg-cab .mut { color: var(--muted); font-size: 12px; }
.pg-cab .spacer { flex: 1; }


.perm-tabla .chip, .pg-cab .chip, .pa-llaves .chip {
border: 1px solid var(--border); background: var(--card); border-radius: 999px;
padding: 3px 10px; font-size: 11.5px; font-family: inherit; color: var(--texto-2); cursor: pointer;
white-space: nowrap;
}
.perm-tabla .chip:hover, .pg-cab .chip:hover, .pa-llaves .chip:hover { border-color: var(--accent); color: var(--texto-accion); }
.perm-tabla .chip.on {
background: var(--marca-azul); border-color: var(--marca-azul); color: #fff; font-weight: 600;
}
.pg-cab .chip.sm, .pa-llaves .chip.sm { padding: 2px 8px; font-size: 11px; }

.perm-tabla { width: 100%; border-collapse: collapse; font-size: 13px; }
.perm-tabla th {
text-align: left; padding: 7px 12px; background: var(--card); color: var(--muted);
font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.4px;
border-bottom: 1px solid var(--border); white-space: nowrap;
}
.perm-tabla th.c, .perm-tabla td.c { text-align: center; width: 1%; }
.perm-tabla td { padding: 7px 12px; border-bottom: 1px solid var(--borde-suave); vertical-align: middle; }
.perm-tabla tr:last-child td { border-bottom: none; }
.perm-tabla td.nom { white-space: nowrap; }
.perm-tabla td.atajos, .perm-tabla th.atajos { white-space: nowrap; }
.perm-tabla td.atajos { display: flex; flex-wrap: wrap; gap: 4px; }
.perm-tabla tr.personalizado td.nom { font-weight: 700; color: var(--texto-marca); }
.perm-tabla .marca { color: var(--texto-accion); font-size: 18px; line-height: 0; vertical-align: middle; }
.perm-tabla input[type=checkbox] { width: auto; cursor: pointer; }









.perm-tabla .pest-abrir {
border: 1px solid var(--border); background: var(--card); border-radius: 999px; cursor: pointer;
padding: 1px 9px 1px 6px; margin-left: 8px; font-family: inherit; font-size: 11px; color: var(--muted);
display: inline-flex; align-items: center; gap: 4px; vertical-align: middle;
}
.perm-tabla .pest-abrir:hover { border-color: var(--accent); color: var(--texto-accion); }
.perm-tabla .pest-abrir .flecha { width: 9px; }
.perm-tabla tr.pestana { background: var(--superficie); }
.perm-tabla tr.pestana td.nom { padding-left: 30px; font-size: 12.5px; }
.perm-tabla tr.pestana .cuelga { color: var(--muted); margin-right: 6px; }





















@media (max-width: 700px) {
.perm-tabla, .perm-tabla tbody, .perm-tabla tr, .perm-tabla td { display: block; width: auto; }
.perm-tabla thead { display: none; }
.perm-tabla tr { padding: 9px 12px; border-bottom: 1px solid var(--border); }
.perm-tabla tr:last-child { border-bottom: none; }
.perm-tabla td { border-bottom: none; padding: 0; }


.perm-tabla td.nom {
white-space: normal; font-weight: 600; color: var(--text);
font-size: 13.5px; line-height: 1.3; padding-bottom: 7px;
}
.perm-tabla tr.personalizado td.nom { color: var(--texto-marca); }
.perm-tabla td.nom .nota { display: block; margin: 2px 0 0; }
.perm-tabla td.atajos { padding-bottom: 8px; }

.perm-tabla td.c {
display: inline-flex; align-items: center; gap: 5px; width: auto;
margin-right: 14px; font-size: 12px; color: var(--muted); text-align: left;
}
.perm-tabla td.c::before { content: attr(data-label); order: 2; }
.perm-tabla td.c input[type=checkbox] { order: 1; margin: 0; }




.perm-tabla td.c.sin-sentido { display: none; }



.perm-tabla tr.pestana { border-left: 3px solid var(--border); padding-left: 12px; }
.perm-tabla tr.pestana td.nom { padding-left: 0; font-size: 13px; }
}


ul.perfil-elegir { list-style: none; padding: 4px 0; margin: 0; }
ul.perfil-elegir li { border-bottom: 1px solid var(--borde-suave); }
ul.perfil-elegir li:last-child { border-bottom: none; }
ul.perfil-elegir label {
display: flex; align-items: center; gap: 11px; padding: 9px 16px; cursor: pointer; font-size: 14px;
}
ul.perfil-elegir label:hover { background: var(--superficie); }
ul.perfil-elegir input[type=checkbox] { width: auto; flex: none; }
ul.perfil-elegir .mut { color: var(--muted); font-size: 12.5px; }


.perm-resumen {
margin-top: 14px; padding: 12px 14px; border: 1px solid var(--border);
border-radius: 10px; background: var(--superficie); font-size: 13px;
}






.perm-resumen ul {
list-style: none; padding: 0; margin: 8px 0 0;
display: grid; gap: 10px;
}
.perm-resumen li { display: flex; gap: 4px 8px; flex-wrap: wrap; align-items: baseline; }
.perm-resumen li .cuales { display: block; color: var(--texto-2); line-height: 1.55; margin: 4px 0 0 18px; }
.perm-renglon { flex: 1 1 100%; }
.perm-renglon > summary {
display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px;
min-height: 28px; cursor: pointer; list-style: none;
}
.perm-renglon > summary::-webkit-details-marker { display: none; }
.perm-renglon > summary::before { content: '▸'; color: var(--muted); width: 10px; }
.perm-renglon[open] > summary::before { content: '▾'; }
.perm-resumen li b { white-space: nowrap; }
.perm-resumen li .mut { color: var(--muted); font-size: 12.5px; }

.perm-resumen .perm-origen { font-size: 10.5px; padding: 1px 7px; border-radius: 10px; background: var(--pista); color: var(--texto-2); text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.perm-resumen .perm-origen.excepcion { background: var(--tinte-ambar-fuerte); color: var(--texto-ambar); }
.perm-resumen .perm-origen.perfil { background: var(--tinte-azul-fuerte); color: var(--texto-azul); }
.perm-resumen .perm-leyenda { display: block; font-size: 12px; color: var(--muted); margin: 4px 0 8px; }
.perm-resumen p.mut { margin: 10px 0 0; font-size: 12px; }









ul.historial { list-style: none; padding: 6px 0; margin: 0; }
ul.historial li {
display: flex; gap: 14px; padding: 11px 18px; border-bottom: 1px solid var(--border);
border-left: 3px solid transparent;
}
ul.historial li:last-child { border-bottom: none; }
ul.historial li.auto { border-left-color: var(--borde-fuerte); }
ul.historial li.manual { border-left-color: var(--marca-oro); }
ul.historial .hf {
flex: 0 0 92px; font-size: 12.5px; color: var(--muted); font-variant-numeric: tabular-nums; padding-top: 2px;
}
ul.historial .hc { flex: 1; min-width: 0; }
ul.historial .hd { margin-top: 5px; font-size: 13.5px; line-height: 1.5; white-space: pre-wrap; }
ul.historial .hm { margin-top: 3px; font-size: 11.5px; color: var(--muted); }
@media (max-width: 700px) {
ul.historial li { flex-direction: column; gap: 4px; }
ul.historial .hf { flex: none; }
}


ul.cumplimiento { list-style: none; padding: 8px 0; margin: 0; }
ul.cumplimiento li { display: flex; gap: 12px; padding: 9px 18px; align-items: flex-start; }
ul.cumplimiento .mk {
flex: none; width: 22px; height: 22px; border-radius: 50%; display: flex;
align-items: center; justify-content: center; font-size: 13px; font-weight: 700;
}
ul.cumplimiento li.ok .mk { background: var(--tinte-verde-fuerte); color: var(--texto-verde); }
ul.cumplimiento li.falta .mk { background: var(--tinte-rojo-fuerte); color: var(--texto-rojo); }
ul.cumplimiento b { display: block; font-size: 13.5px; }
ul.cumplimiento span { font-size: 12.5px; color: var(--muted); }

ul.directivas { list-style: none; padding: 6px 0; margin: 0; }
ul.directivas li {
padding: 12px 18px; border-bottom: 1px solid var(--border);
border-left: 3px solid transparent; cursor: pointer;
}
ul.directivas li:last-child { border-bottom: none; }
ul.directivas li:hover { background: var(--superficie); }
ul.directivas li.vigente { border-left-color: var(--marca-oro); background: var(--tinte-ambar); }
ul.directivas .dp { display: flex; align-items: center; gap: 10px; }
ul.directivas .dp b { font-size: 14.5px; color: var(--texto-marca); }
ul.directivas .df { font-size: 12.5px; color: var(--muted); margin-top: 2px; }
ul.directivas .dc { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 7px; }
ul.directivas .cargo { font-size: 13px; }
ul.directivas .cargo i { font-style: normal; color: var(--muted); }


.persona-estado { display: inline-block; margin-top: 4px; font-size: 12px; }
.persona-estado.enlazado { color: var(--texto-verde); }
.persona-estado.libre { color: var(--muted); }
.persona-chip {
display: inline-block; padding: 1px 8px; border-radius: 999px;
background: var(--tinte-azul); color: var(--texto-marca); font-size: 12.5px; font-weight: 600;
}

a.persona-chip { text-decoration: none; }
a.persona-chip:hover, a.persona-chip:focus-visible { background: var(--tinte-azul-fuerte); text-decoration: underline; }


.fld.calculado input, .fld.calculado textarea, .fld.calculado select {
background: var(--bg); color: var(--texto-2); font-weight: 700; cursor: not-allowed;
}
.fld.calculado > label::after {
content: ' (automático)'; font-weight: 500; font-size: 11.5px; color: var(--muted);
}


.edad-chip {
display: inline-block; margin-top: 6px; padding: 2px 10px; border-radius: 999px;
background: var(--tinte-azul); color: var(--texto-marca); font-size: 12.5px; font-weight: 600;
}


.filefld .fmeta { display: block; margin-top: 3px; font-size: 12px; color: var(--muted); }


ul.documentos { list-style: none; padding: 6px 0; margin: 0; }
ul.documentos li {
display: flex; align-items: center; gap: 14px;
padding: 12px 18px; border-bottom: 1px solid var(--border); cursor: pointer;
}
ul.documentos li:last-child { border-bottom: none; }
ul.documentos li:hover { background: var(--superficie); }
ul.documentos .dm { flex: 0 0 54px; height: 54px; display: flex; align-items: center; justify-content: center; }
ul.documentos .dm img {
width: 54px; height: 54px; object-fit: cover; border-radius: 8px; border: 1px solid var(--border);
}
ul.documentos .dico { font-size: 26px; }
ul.documentos .dd { flex: 1; min-width: 0; }
ul.documentos .dd b { font-size: 14.5px; color: var(--texto-marca); margin-right: 8px; }
ul.documentos .dfe { font-size: 12.5px; color: var(--muted); margin-top: 3px; }
ul.documentos .da { flex: 0 0 auto; }


ul.historial li .ha { flex: 0 0 auto; display: flex; gap: 4px; opacity: 0.35; transition: opacity 0.15s; }
ul.historial li:hover .ha, ul.historial li:focus-within .ha { opacity: 1; }
ul.historial li .ha .ico {
border: none; background: none; cursor: pointer; font-size: 15px;
padding: 5px 7px; border-radius: 7px; line-height: 1;
}
ul.historial li .ha .ico:hover { background: var(--pista); }
@media (max-width: 720px) { ul.historial li .ha { opacity: 1; } }
@media (max-width: 700px) { ul.historial li .ha { align-self: flex-end; margin-top: -6px; } }

.aviso-auto {
background: var(--tinte-ambar); border: 1px solid var(--borde-ambar); color: var(--texto-ambar);
padding: 10px 12px; border-radius: 9px; font-size: 13px; margin-bottom: 14px;
}



.ef-marco {
width: 320px; max-width: 100%; margin: 0 auto 10px;
border-radius: 12px; overflow: hidden; border: 1px solid var(--border); background: #0f172a;
}
.ef-marco canvas { display: block; width: 100%; height: auto; cursor: grab; touch-action: none; }
.ef-marco canvas:active { cursor: grabbing; }
.ef-ayuda { font-size: 12.5px; color: var(--muted); text-align: center; margin: 0 0 14px; line-height: 1.45; }
.ef-barra { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; font-size: 13px; }
.ef-barra span { flex: 0 0 78px; color: var(--texto-2); font-weight: 600; }
.ef-barra input[type="range"] { flex: 1; min-width: 0; accent-color: var(--accent); }
.ef-botones { display: flex; gap: 8px; justify-content: center; margin-top: 14px; }

.modal-nota { margin-top: 12px; font-size: 12.5px; color: var(--muted); }
.modal-nota a { color: var(--texto-marca); }


.card.cumples { margin-bottom: 0; }
ul.cumple-list { list-style: none; padding: 2px 0; margin: 0; }
ul.cumple-list li {
display: flex; align-items: center; gap: 11px;
padding: 7px 16px; border-bottom: 1px solid var(--borde-suave); cursor: pointer;
}
ul.cumple-list li:last-child { border-bottom: none; }
ul.cumple-list li:hover { background: var(--superficie); }
ul.cumple-list li.hoy { background: var(--tinte-ambar); border-left: 3px solid var(--marca-oro); }
ul.cumple-list .av {
flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%; overflow: hidden;
background: var(--marca-azul); color: #fff; display: flex; align-items: center;
justify-content: center; font-weight: 700; font-size: 13px;
}
ul.cumple-list .av img { width: 100%; height: 100%; object-fit: cover; }
ul.cumple-list .dt { flex: 1; min-width: 0; }
ul.cumple-list .dt b { display: block; font-size: 13.5px; color: var(--texto-marca); line-height: 1.3; }
ul.cumple-list .dt .mut { font-size: 12px; color: var(--muted); }
@media (max-width: 700px) {
ul.cumple-list li { gap: 9px; padding: 7px 12px; flex-wrap: wrap; }
ul.cumple-list .av { flex-basis: 30px; width: 30px; height: 30px; font-size: 12.5px; }
ul.cumple-list .dt b { font-size: 13px; }
ul.cumple-list .badge { font-size: 10.5px; }
}


ul.integrantes { list-style: none; padding: 2px 0; margin: 0; }
ul.integrantes li {
display: flex; align-items: center; gap: 11px; flex-wrap: wrap;
padding: 9px 16px; border-bottom: 1px solid var(--borde-suave);
}
ul.integrantes li:last-child { border-bottom: none; }
ul.integrantes li:hover { background: var(--superficie); }

ul.integrantes li.vencida { background: var(--tinte-ambar); border-left: 3px solid var(--marca-oro); }
ul.integrantes .av {
flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; overflow: hidden;
background: var(--marca-azul); color: #fff; display: flex; align-items: center;
justify-content: center; font-weight: 700; font-size: 13.5px;
}
ul.integrantes .av img { width: 100%; height: 100%; object-fit: cover; }
ul.integrantes .dt { flex: 1 1 200px; min-width: 0; }
ul.integrantes .dt b { display: block; font-size: 14px; color: var(--texto-marca); line-height: 1.3; }
ul.integrantes .dt .mut { font-size: 12px; color: var(--muted); }






ul.integrantes .dt .evaluaciones-de {
display: block; font-size: 12px; color: var(--muted);
text-decoration: none; margin-top: 1px;
}
ul.integrantes .dt .evaluaciones-de:hover { text-decoration: underline; color: var(--texto-marca); }
ul.integrantes .marcas { display: flex; gap: 5px; flex-wrap: wrap; }
ul.integrantes .acciones { display: flex; gap: 5px; }


table.grid.cuotas th.mes, table.grid.cuotas td.mes {
text-align: center; width: 1%; white-space: nowrap; padding-left: 6px; padding-right: 6px;
}
table.grid.cuotas td.quien { white-space: nowrap; }
table.grid.cuotas td.quien .badge { margin-left: 7px; }
table.grid.cuotas tr { cursor: default; }
table.grid.cuotas td.pagado { color: var(--success); font-weight: 700; background: var(--tinte-verde); }
table.grid.cuotas td.debe { background: var(--card); }
table.grid.cuotas td.exento { color: var(--texto-tenue); }





table.grid.cuotas td.en-cero {
color: var(--warning); background: var(--tinte-ambar); font-weight: 700; font-size: 12px;
}

table.grid.cuotas td.debe.se-puede { cursor: pointer; }
table.grid.cuotas td.debe.se-puede:hover { background: var(--tinte-azul-fuerte); }
table.grid.cuotas td.debe.se-puede:hover::after { content: "✓"; color: var(--texto-accion); font-weight: 700; }

table.grid.cuotas td.pagado.se-corrige { cursor: pointer; }
table.grid.cuotas td.pagado.se-corrige:hover { background: var(--tinte-verde-fuerte); }

.cuotas-idos {
margin: 0; padding: 10px 16px 14px; font-size: 12.5px; line-height: 1.5; color: var(--muted);
border-top: 1px solid var(--border);
}
.cuotas-idos b { color: var(--text); }


.saldos-cuentas { grid-column: 1 / -1; background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 12px 16px; }









.saldos-cuentas .sc-tit {
font-size: 13px; font-weight: 700; color: var(--texto-marca); margin-bottom: 6px;
cursor: pointer; list-style: none;
}
.saldos-cuentas .sc-tit::-webkit-details-marker { display: none; }
.saldos-cuentas .sc-tit::before {
content: "▸"; display: inline-block; width: 1em; color: var(--muted); font-weight: 400;
}
.saldos-cuentas[open] .sc-tit::before { content: "▾"; }
.saldos-cuentas .sc-tit:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.saldos-cuentas .sc-tit .mut { font-weight: 500; color: var(--muted); font-size: 12px; }
.saldos-cuentas ul { list-style: none; margin: 0; padding: 0; }
.saldos-cuentas li {
display: flex; align-items: center; justify-content: space-between; gap: 12px;
padding: 7px 0; border-bottom: 1px solid var(--border); cursor: pointer; font-size: 13.5px;
}
.saldos-cuentas li:last-child { border-bottom: none; }
.saldos-cuentas li:hover .sc-n { color: var(--texto-marca); }
.saldos-cuentas .sc-n { display: flex; align-items: center; gap: 8px; min-width: 0; }
.saldos-cuentas b { font-variant-numeric: tabular-nums; }








.saldos-en-cero { margin-top: 8px; border-top: 1px solid var(--border); padding-top: 8px; }
.saldos-en-cero > summary {
font-size: 12.5px; cursor: pointer; list-style: none; padding: 4px 0;

min-height: 28px; display: flex; align-items: center;
}
.saldos-en-cero > summary::-webkit-details-marker { display: none; }
.saldos-en-cero > summary::before {
content: "▸"; display: inline-block; width: 1em; color: var(--muted); font-weight: 400;
}
.saldos-en-cero[open] > summary::before { content: "▾"; }
.saldos-en-cero > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.saldo-negativo { color: var(--danger); }






ul.mov-list { list-style: none; padding: 6px 6px 10px; margin: 0; }
ul.mov-list li {
display: flex; justify-content: space-between; gap: 4px 12px; flex-wrap: wrap;
padding: 9px 12px; font-size: 13px; border-radius: 8px; cursor: pointer;
}
ul.mov-list li:hover { background: var(--superficie); }
ul.mov-list li > span:first-child { min-width: 0; }
ul.mov-list .monto-ingreso { color: var(--texto-verde); font-variant-numeric: tabular-nums; white-space: nowrap; }
ul.mov-list .monto-egreso { color: var(--danger); font-variant-numeric: tabular-nums; white-space: nowrap; }


.saldo-origen { margin-top: 5px; font-size: 12.5px; color: var(--muted); }
.saldo-origen b { color: var(--texto-marca); }
.saldo-origen b.saldo-negativo { color: var(--danger); }


.trato-chip {
display: inline-block; margin-left: 10px; padding: 3px 12px; border-radius: 999px;
background: var(--tinte-azul); color: var(--texto-marca); font-size: 13.5px; font-weight: 600;
vertical-align: middle;
}


.refbuscar { position: relative; }
.refbuscar .rb-txt { width: 100%; padding-right: 34px; }
.refbuscar .rb-x {
position: absolute; top: 7px; right: 8px; border: none; background: none; cursor: pointer;
font-size: 19px; line-height: 1; color: var(--muted); padding: 2px 6px; border-radius: 6px;
}
.refbuscar .rb-x:hover { background: var(--pista); color: var(--danger); }
.refbuscar .rb-lista {
position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 3px);
list-style: none; margin: 0; padding: 4px; max-height: 268px; overflow-y: auto;
background: var(--card); border: 1px solid var(--border); border-radius: 10px;
box-shadow: 0 12px 28px rgba(15, 23, 42, 0.24);
}
.refbuscar .rb-lista li {
padding: 8px 10px; border-radius: 7px; cursor: pointer; font-size: 13.5px;
display: flex; justify-content: space-between; gap: 12px; align-items: baseline;
}
.refbuscar .rb-lista li:hover, .refbuscar .rb-lista li.marcado { background: var(--tinte-azul); }
.refbuscar .rb-lista li.rb-vacio { color: var(--muted); cursor: default; }
.refbuscar .rb-lista li.rb-vacio:hover { background: none; }
.refbuscar .rb-det { color: var(--muted); font-size: 12px; white-space: nowrap; }













.tabs { display: inline-flex; gap: 4px; margin-bottom: 14px; background: var(--superficie-azul); border-radius: 10px; padding: 3px; }
.tabs button {
border: none; background: transparent; color: var(--texto-2);
padding: 7px 18px; border-radius: 8px; font-size: 13.5px; font-weight: 700;
font-family: inherit; cursor: pointer; min-height: 34px;
}
.tabs button:hover { color: var(--texto-marca); }
.tabs button.on { background: var(--card); color: var(--texto-marca); box-shadow: 0 1px 2px rgba(15,23,42,.12); }


.pl-solo-suyos {
display: inline-block; margin-top: 4px; font-size: 12px; color: var(--marca-oro-oscuro);
background: var(--tinte-ambar); border: 1px solid var(--borde-ambar); border-radius: 999px; padding: 2px 10px;
}


.vs-lista { margin-top: 10px; max-height: 320px; overflow-y: auto; }
.vs-lista .mini-list li { cursor: pointer; min-height: 44px; }
.vs-lista .mini-list li:hover, .vs-lista .mini-list li:focus-visible { background: var(--fondo-suave, var(--bg)); }
li.es-visita { background: var(--tinte-ambar); }


.ac-repite {
border-top: 1px dashed var(--border); padding-top: 12px;
}
.ac-repite .modal-fila { gap: 10px; }
.ac-repite select, .ac-repite input[type=date] { min-width: 0; }
.ac-repite .help { margin-top: 6px; }


.pl-tomada {
display: block; margin-top: 5px; font-size: 12px; color: var(--muted);
line-height: 1.45;
}
.pl-tomada[hidden] { display: none; }

.asis-filtros select { flex: 1 1 160px; min-width: 0; }
.vista-toggle { display: flex; border: 1px solid var(--border); border-radius: 9px; overflow: hidden; }
.vista-toggle button {
border: none; background: var(--card); cursor: pointer; padding: 8px 13px; font-size: 15px;
min-height: 40px; font-family: inherit;
}
.vista-toggle button.on { background: var(--marca-azul); color: #fff; }


.cal { padding: 6px 14px 14px; max-width: 560px; }


@media (min-width: 1100px) {
.asis-tablero {
display: grid; grid-template-columns: minmax(0, 520px) minmax(0, 1fr);
gap: 0; align-items: stretch;
}
.asis-tablero .cal { max-width: none; border-right: 1px solid var(--border); }
.asis-tablero #asisDelDia .card {
margin-top: 0 !important; border: 0; box-shadow: none; border-radius: 0; height: 100%;
}
}
.cal-cab { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 8px 0 10px; }
.cal-cab b { font-size: 15px; color: var(--texto-marca); min-width: 150px; text-align: center; }
.cal-cab button {
border: 1px solid var(--border); background: var(--card); cursor: pointer; width: 34px; height: 34px;
border-radius: 9px; font-size: 18px; line-height: 1; color: var(--texto-marca); font-family: inherit;
}
.cal-cab button:hover { background: var(--bg); }


.cal-cab .cal-hoy { width: auto; padding: 0 10px; font-size: 13px; font-weight: 600; }


.cal-pendientes { text-align: center; margin: -2px 0 8px; }
.cal-pendientes button {
border: 1px solid var(--borde-ambar); background: var(--tinte-ambar); color: var(--texto-ambar); cursor: pointer;
border-radius: 999px; padding: 5px 12px; font-size: 12.5px; font-weight: 600;
font-family: inherit; line-height: 1.3; max-width: 100%;
}
.cal-pendientes button:hover { background: var(--tinte-ambar-fuerte); }

.cal.cal-lista { max-width: none; padding-bottom: 4px; }
.cal-grilla { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal-dow { text-align: center; font-size: 11px; font-weight: 700; color: var(--muted); padding: 4px 0 6px; letter-spacing: 0.3px; }
.cal-vacio { height: 38px; }
.cal-dia {
position: relative; height: 38px; border: 1px solid transparent; background: transparent;
border-radius: 9px; cursor: pointer; font-size: 13.5px; color: var(--texto-2); font-family: inherit;
display: flex; align-items: center; justify-content: center;
}
.cal-dia:hover { background: var(--bg); }
.cal-dia.hoy { border-color: var(--marca-azul); font-weight: 700; }
.cal-dia.sel { background: var(--marca-azul); border-color: var(--marca-azul); color: #fff; font-weight: 700; }
.cal-dia .pt { position: absolute; bottom: 6px; width: 6px; height: 6px; border-radius: 50%; background: var(--marca-azul); }
.cal-dia .pt.ok { background: #16a34a; }
.cal-dia .pt.medio { background: #d97706; }
.cal-dia .pt.falta { background: var(--danger); }
.cal-dia.sel .pt { background: var(--card); }


ul.asis-actividades { list-style: none; margin: 0; padding: 0; }
ul.asis-actividades li {
display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
padding: 13px 18px; border-bottom: 1px solid var(--border); cursor: pointer;
border-left: 3px solid transparent;
}
ul.asis-actividades li:last-child { border-bottom: none; }
ul.asis-actividades li:hover { background: var(--superficie); }
ul.asis-actividades li.on { border-left-color: var(--marca-azul); background: var(--tinte-azul); }
.aa-datos { flex: 1 1 220px; min-width: 0; }
.aa-tit { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.aa-tit .mut { font-size: 12.5px; color: var(--muted); }
.aa-cuerpos { margin-top: 4px; font-size: 12.5px; color: var(--muted); }
.aa-avance { display: flex; align-items: center; gap: 10px; }
.aa-avance b { font-size: 14px; color: var(--texto-marca); font-variant-numeric: tabular-nums; }
.aa-acc { display: flex; gap: 4px; }
.aa-acc .ico { border: none; background: transparent; cursor: pointer; font-size: 15px; padding: 8px; border-radius: 8px; }
.aa-acc .ico:hover { background: var(--pista); }


.chips-elegir { display: flex; flex-wrap: wrap; gap: 8px; }
.chips-elegir .chip {
border: 1px solid var(--border); background: var(--card); color: var(--texto-2); cursor: pointer;
padding: 9px 14px; border-radius: 999px; font-size: 13px; font-weight: 600; font-family: inherit;
}
.chips-elegir .chip.on { background: var(--marca-azul); border-color: var(--marca-azul); color: #fff; }
.modal-fila { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }


ul.pl-actividades { list-style: none; margin: 0; padding: 0; }
ul.pl-actividades li {
display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
padding: 14px 18px; border-bottom: 1px solid var(--border); cursor: pointer;
}
ul.pl-actividades li:last-child { border-bottom: none; }
ul.pl-actividades li:hover { background: var(--superficie); }
.pa-dia { min-width: 190px; }
.pa-dia b { display: block; font-size: 14px; color: var(--texto-marca); }
.pa-dia span { font-size: 12px; color: var(--muted); }
.pa-que { flex: 1 1 220px; min-width: 0; }
.pa-que b { display: block; font-size: 14.5px; }
.pa-que span { font-size: 12.5px; color: var(--muted); }
.pa-barra { margin-top: 7px; height: 8px; border-radius: 5px; background: var(--pista); overflow: hidden; }
.pa-barra span { display: block; height: 100%; background: var(--marca-azul); transition: width 0.2s; }
.pa-estado { text-align: right; }
.pa-estado .mut { display: block; margin-top: 4px; font-size: 12px; color: var(--muted); }


.pl-cab {
display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
padding: 14px 18px; border-bottom: 1px solid var(--border);
}
.pl-cab .pl-que { flex: 1 1 240px; }
.pl-cab .pl-que b { font-size: 15px; color: var(--texto-marca); display: block; }
.pl-cab .pl-que b .mut { font-weight: 500; font-size: 13px; color: var(--muted); }
.pl-cab .pl-que span { display: inline-flex; gap: 5px; flex-wrap: wrap; margin-top: 5px; font-size: 12.5px; color: var(--muted); }

.pl-cab #plInforme { margin-left: auto; }
.pl-recuperado {
margin: 0; padding: 10px 18px; background: var(--tinte-ambar); border-bottom: 1px solid var(--borde-ambar);
color: var(--texto-ambar); font-size: 13px;
}






.pl-futura .btn { margin-left: 8px; vertical-align: middle; }
.pl-filtros { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; padding: 12px 18px 10px; }
.pl-filtros input[type="search"] {
flex: 1 1 100%; min-width: 0; padding: 11px 14px; border: 1px solid var(--border);
border-radius: 999px; font-size: 14px; font-family: inherit;
}

#plCuerpo {
flex: 1 1 220px; min-width: 0; padding: 10px 14px; border: 1px solid var(--border);
border-radius: 999px; font-size: 14px; font-family: inherit; background: var(--card); color: inherit;
}
.pl-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.pl-chips .chip {
border: 1px solid var(--border); background: var(--card); color: var(--texto-2); cursor: pointer;
padding: 8px 14px; border-radius: 999px; font-size: 13px; font-weight: 600; font-family: inherit;
}
.pl-chips .chip.verde { background: var(--tinte-verde); border-color: var(--borde-verde); color: var(--texto-verde); }
.pl-chips .chip.roja { background: var(--tinte-rojo); border-color: var(--borde-rojo); color: var(--texto-rojo); }
.pl-chips .chip.ambar { background: var(--tinte-ambar); border-color: var(--borde-ambar); color: var(--texto-ambar); }
.pl-chips .chip.on { background: #0f172a; border-color: #0f172a; color: #fff; }
.pl-chips .chip:disabled { opacity: 0.5; cursor: default; }
.pl-avance { padding: 4px 18px 12px; }
.pl-avance-tit { display: flex; justify-content: space-between; align-items: baseline; font-size: 12.5px; color: var(--muted); margin-bottom: 6px; }
.pl-avance-tit b { color: var(--texto-marca); font-size: 13.5px; font-variant-numeric: tabular-nums; }
.pl-sinresultados { padding: 24px 18px; text-align: center; color: var(--muted); font-size: 13.5px; }


ul.pasar-lista { list-style: none; margin: 0; padding: 0; }
ul.pasar-lista li {
display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
padding: 10px 18px; border-bottom: 1px solid var(--border);
border-left: 3px solid transparent;
}
ul.pasar-lista li[hidden] { display: none; }
ul.pasar-lista li:last-child { border-bottom: none; }
ul.pasar-lista li.marcado { border-left-color: var(--marca-oro); background: var(--tinte-ambar); }
ul.pasar-lista .pl-quien { flex: 1 1 240px; min-width: 0; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
ul.pasar-lista .pl-quien b { font-size: 14.5px; color: var(--texto-marca); }
ul.pasar-lista .pl-quien .mut { font-size: 12px; color: var(--muted); }
.pl-cuerpo-chip {
padding: 2px 9px; border-radius: 999px; background: var(--bg); color: var(--texto-marca);
font-size: 11.5px; font-weight: 600;
}
ul.pasar-lista .pl-botones { display: flex; gap: 6px; }
ul.pasar-lista .pl-b {
border: 1px solid var(--border); background: var(--card); color: var(--texto-2); cursor: pointer;
padding: 7px 14px; border-radius: 8px; font-size: 13px; font-weight: 600; font-family: inherit;
min-height: 40px; touch-action: manipulation; -webkit-tap-highlight-color: transparent;
}
ul.pasar-lista .pl-b.presente { background: var(--tinte-verde); border-color: var(--borde-verde); color: var(--texto-verde); }
ul.pasar-lista .pl-b.ausente { background: var(--tinte-rojo); border-color: var(--borde-rojo); color: var(--texto-rojo); }
ul.pasar-lista .pl-b.justificado { background: var(--tinte-ambar); border-color: var(--borde-ambar); color: var(--texto-ambar); }
ul.pasar-lista .pl-b.presente.on { background: #16a34a; border-color: #16a34a; color: #fff; }
ul.pasar-lista .pl-b.ausente.on { background: var(--danger); border-color: var(--danger); color: #fff; }
ul.pasar-lista .pl-b.justificado.on { background: #d97706; border-color: #d97706; color: #fff; }
ul.pasar-lista .pl-b:disabled { opacity: 0.55; cursor: default; }
ul.pasar-lista .pl-just { display: flex; gap: 8px; flex: 1 1 320px; }
ul.pasar-lista .pl-just[hidden] { display: none; }
ul.pasar-lista .pl-just select, ul.pasar-lista .pl-just input { padding: 9px 10px; font-size: 13px; }
ul.pasar-lista .pl-just input { flex: 1; }


.pl-barra {
position: sticky; bottom: 0; z-index: 4;
display: flex; gap: 10px; flex-wrap: wrap; align-items: center;
padding: 12px 18px; border-top: 1px solid var(--border);
background: var(--card); border-radius: 0 0 var(--radius) var(--radius);
box-shadow: 0 -6px 18px rgba(15, 23, 42, 0.06);
}
.pl-resumen { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.pl-estado { flex: 1; font-size: 12.5px; color: var(--muted); text-align: right; }


.pl-estado:empty { display: none; }
.pl-estado .aviso-texto { color: var(--texto-ambar); font-weight: 600; }
.pl-estado .ok-texto { color: #16a34a; font-weight: 600; }
.pl-barra .btn { min-height: 44px; }











.pl-acciones { display: flex; gap: 10px; align-items: center; }
.pl-acciones .btn { white-space: nowrap; }




:root { --pl-barra-alto: 96px; }

@media (max-width: 700px) {
.tabs button { padding: 12px 8px; font-size: 13.5px; }
.cal { padding: 4px 8px 12px; }
.cal-grilla { gap: 2px; }
.cal-dia, .cal-vacio { height: 42px; }
.cal-cab b { min-width: 130px; font-size: 15px; }
.cal-cab { gap: 10px; }
.cal-cab .cal-hoy { min-height: 40px; }
.cal-pendientes button { min-height: 40px; }
.pl-cab #plInforme { margin-left: 0; width: 100%; }
ul.asis-actividades li { padding: 12px 14px; gap: 10px; }
.aa-datos { flex: 1 1 100%; }
.aa-avance { flex: 1 1 auto; }
ul.pl-actividades li { gap: 10px; padding: 13px 14px; }
.pa-dia { min-width: 0; flex: 1 1 100%; display: flex; align-items: baseline; gap: 8px; }
.pa-estado { flex: 0 0 auto; text-align: right; }
.pl-cab, .pl-filtros, .pl-avance { padding-left: 14px; padding-right: 14px; }










.pl-cab { min-height: var(--pl-barra-alto); box-sizing: border-box; }


.pl-chips { width: 100%; flex-wrap: wrap; }
.pl-chips .chip { flex: 1 1 auto; min-height: 40px; }
.pl-chips::-webkit-scrollbar { display: none; }
.pl-chips .chip { white-space: nowrap; }
ul.pasar-lista li { gap: 8px; padding: 12px 14px; }
ul.pasar-lista .pl-quien { flex: 1 1 100%; }
ul.pasar-lista .pl-botones { width: 100%; gap: 8px; }
ul.pasar-lista .pl-b { flex: 1; padding: 10px 2px; min-height: 46px; font-size: 12.5px; }
ul.pasar-lista .pl-just { flex-basis: 100%; flex-wrap: wrap; }
ul.pasar-lista .pl-just select, ul.pasar-lista .pl-just input { flex: 1 1 100%; min-height: 44px; }
.pl-barra { padding: 10px 14px; gap: 8px; }




.pl-resumen {
flex: 1 1 100%; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px;
scrollbar-width: none; -ms-overflow-style: none;
background:
linear-gradient(to right, var(--card) 30%, rgba(255, 255, 255, 0)) left center / 20px 100% no-repeat local,
linear-gradient(to left, var(--card) 30%, rgba(255, 255, 255, 0)) right center / 20px 100% no-repeat local,
radial-gradient(farthest-side at 0 50%, rgba(15, 23, 42, 0.24), rgba(15, 23, 42, 0)) left center / 12px 100% no-repeat scroll,
radial-gradient(farthest-side at 100% 50%, rgba(15, 23, 42, 0.24), rgba(15, 23, 42, 0)) right center / 12px 100% no-repeat scroll;
}
.pl-resumen::-webkit-scrollbar { display: none; }
.pl-resumen .badge { white-space: nowrap; }
.pl-estado { flex: 1 1 100%; text-align: left; order: 3; }


.pl-acciones { flex: 1 1 100%; order: 4; gap: 8px; }
.pl-acciones .btn { flex: 1 1 0; min-width: 0; padding-left: 6px; padding-right: 6px; }








#plVisita { flex: 0 0 auto; min-width: 46px; padding-left: 10px; padding-right: 10px; }




























.pl-acciones .solo-ancho { display: none; }
.modal-fila { grid-template-columns: 1fr; }
}


.informe-stats { margin-bottom: 18px; }






.toolbar .inf-fila { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; flex: 1 1 100%; min-width: 0; }
.toolbar .inf-fila + .inf-fila { padding-top: 8px; border-top: 1px dashed var(--border); }

.toolbar.inf-fila[hidden], .toolbar .inf-fila[hidden] { display: none; }
.toolbar .inf-rotulo { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); min-width: 60px; }
.informe-indice { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.informe-indice button {
border: 1px solid var(--border); background: var(--card); color: var(--texto-azul); border-radius: 999px;
padding: 6px 12px; font-size: 12.5px; font-weight: 600; cursor: pointer; min-height: 32px;
}
.informe-indice button:hover { background: var(--bg); border-color: var(--borde-fuerte); }
.informe-seccion { scroll-margin-top: 72px; }
.informe-h2 { font-size: 16.5px; font-weight: 800; margin: 20px 0 8px; padding-bottom: 5px; border-bottom: 2px solid var(--border); }



details.informe-seccion > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; min-height: 44px; }
details.informe-seccion > summary::-webkit-details-marker { display: none; }
details.informe-seccion > summary::before { content: '▸'; color: var(--muted); font-size: 15px; flex: 0 0 14px; margin-top: 12px; }
details.informe-seccion[open] > summary::before { content: '▾'; }
details.informe-seccion > summary .informe-h2 { flex: 1 1 auto; min-width: 0; }
details.informe-seccion > summary:hover .informe-h2 { color: var(--texto-azul); }
.informe-cuenta { font-size: 13px; font-weight: 600; color: var(--muted); margin-left: 6px; white-space: nowrap; }
.informe-comparacion { margin: -6px 0 16px; font-size: 13px; color: var(--muted); line-height: 1.45; }
.informe-comparacion .sube { color: var(--texto-verde); font-weight: 700; }
.informe-comparacion .baja { color: var(--texto-rojo); font-weight: 700; }
.informe-comparacion .igual { color: var(--texto-2); font-weight: 700; }
table.grid.informe tr.fila-dia td { background: var(--superficie); font-weight: 700; }
table.grid.informe tr.en-dia td.col-primera { padding-left: 24px; color: var(--muted); }
@media (max-width: 700px) {
.toolbar .inf-rotulo { flex: 1 1 100%; min-width: 0; }
.toolbar .inf-fila + .inf-fila { border-top: 0; padding-top: 4px; }
table.grid.informe tr.en-dia td.col-primera { padding-left: 12px; }
}
.informe-tit { margin: 0 0 14px; font-size: 17px; color: var(--texto-marca); }
.informe-tit .mut { font-weight: 500; font-size: 13px; color: var(--muted); margin-left: 8px; }
.informe-sub {
margin: 22px 0 8px; font-size: 12px; text-transform: uppercase; letter-spacing: .06em;
color: var(--muted); font-weight: 700;
}









.inv-totales { padding: 4px 0 8px; }
.inv-totales .ln {
display: flex; gap: 12px; align-items: baseline; padding: 7px 16px;
border-bottom: 1px dotted var(--border); font-size: 14px;
}
.inv-totales .ln:last-child { border-bottom: 0; }
.inv-totales .ln.total { border-top: 1px solid var(--border); font-weight: 600; }
.inv-totales .q { flex: 0 1 auto; }
.inv-totales .mut { flex: 1 1 auto; font-size: 12.5px; }
.inv-totales .v { flex: none; font-variant-numeric: tabular-nums; font-weight: 600; }
@media (max-width: 700px) {
.inv-totales .ln { flex-wrap: wrap; gap: 2px 10px; }
.inv-totales .q { flex: 1 1 100%; font-weight: 600; }
.inv-totales .mut { flex: 1 1 auto; }
}
table.grid.informe th, table.grid.informe td { font-size: 13px; white-space: nowrap; }
table.grid.informe td:first-child { white-space: normal; }
.barra { display: flex; height: 10px; border-radius: 6px; overflow: hidden; background: var(--pista); }
.barra span { display: block; height: 100%; }
.barra .p { background: #16a34a; }
.barra .j { background: var(--marca-azul); }
.barra .a { background: var(--danger); }
.informe-pie { padding: 4px 2px 18px; font-size: 12px; }
.print-only { display: none; }



.membrete .datos.legal { margin-top: 2px; font-style: italic; }



.doc-pie {
margin-top: 26px; padding-top: 8px; border-top: 1px solid #d7dbe3;
font-size: 10.5px; color: #78716c; text-align: right;
}

@media print {
.sidebar, .topbar, .page-head .actions, #infFiltros, .no-print { display: none !important; }
.print-only { display: block; }
.informe-hoja { padding: 0; }

details.informe-seccion > summary { min-height: 0; }
details.informe-seccion > summary::before { display: none; }
.card { break-inside: avoid; box-shadow: none; border: 1px solid #d7dbe3; }







.stat .ic { display: none !important; }
.stat {
box-shadow: none; border: 1px solid #d7dbe3; border-radius: 0;
background: #fff !important;
}





table thead { display: table-header-group; }
table tr { break-inside: avoid; }


.doc-pie, .informe-pie { break-inside: avoid; break-before: avoid; }
}


.iglesia-local .cuerpos-chip {
margin-left: 8px; padding: 2px 9px; border-radius: 999px; background: var(--tinte-azul);
color: var(--texto-marca); font-size: 12px; font-weight: 600;
}
@media (max-width: 700px) { .iglesia-local .cuerpos-chip { display: none; } }


table.rut-cotejo { margin-top: 10px; border-collapse: collapse; font-size: 13px; }
table.rut-cotejo td { padding: 4px 16px 4px 0; color: var(--muted); }
table.rut-cotejo td b { color: var(--texto-marca); font-variant-numeric: tabular-nums; }


.perfil-fijos {
display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
gap: 14px 18px; padding: 16px 18px;
}
.perfil-fijos .mut { display: block; font-size: 11.5px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.4px; }
.perfil-fijos b { font-size: 14px; color: var(--texto-marca); }


.enlace-suave {
background: none; border: none; color: var(--muted); cursor: pointer;
font-size: 13px; font-family: inherit; padding: 6px; text-decoration: underline;
}
.enlace-suave:hover { color: var(--texto-marca); }
a.who { text-decoration: none; color: inherit; }
a.who:hover { opacity: 0.85; }


.clave-provisoria {
display: flex; gap: 26px; flex-wrap: wrap; margin-top: 10px; padding: 12px 16px;
background: var(--superficie); border: 1px dashed var(--border); border-radius: 10px;
}
.clave-provisoria .mut { display: block; font-size: 12px; color: var(--muted); }
.clave-provisoria b { font-size: 16px; letter-spacing: 0.5px; color: var(--texto-marca); font-variant-numeric: tabular-nums; }


#toast {
position: fixed; bottom: 24px; right: 24px; background: #0f172a; color: #fff;
padding: 12px 18px; border-radius: 10px; font-size: 13.5px; box-shadow: 0 10px 30px rgba(0,0,0,0.3);
opacity: 0; transform: translateY(10px); transition: all 0.25s; pointer-events: none; z-index: 100;
}
#toast.show { opacity: 1; transform: translateY(0); }
#toast.err { background: var(--danger); }


.respaldo { padding: 16px 20px 20px; }






.respaldo p { margin: 0 0 12px; font-size: 13.5px; line-height: 1.55; overflow-wrap: anywhere; }

.cred-enlaces { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }

.ficha-dato .dato-enlace { color: var(--texto-accion); text-decoration: none; border-bottom: 1px dotted currentColor; }
.ficha-dato .dato-enlace:hover { border-bottom-style: solid; }
.respaldo-datos {
display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px;
margin-bottom: 14px;
}
.respaldo-datos > div {
background: var(--superficie); border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; min-width: 0;
}
.respaldo-datos .mut { display: block; font-size: 12px; color: var(--muted); margin-bottom: 2px; }
.respaldo-datos b { font-size: 14px; word-break: break-word; }
.respaldo-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 12px; }


.respaldo-copias { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 4px; }








.respaldo-copias { grid-template-columns: minmax(0, 1fr); }





.respaldo-copias li {
display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding: 7px 12px;
background: var(--superficie); border: 1px solid var(--border); border-radius: 8px; font-size: 13px;
}
.respaldo-copias li > span:first-child { font-variant-numeric: tabular-nums; min-width: 92px; overflow-wrap: anywhere; }
.respaldo-copias li .mut { flex: 1; font-size: 12.5px; }



.respaldo-copias li .respaldo-archivo { flex: 1 1 22em; min-width: 0; overflow-wrap: anywhere; }



.respaldo-copias li .respaldo-error { flex: 1 1 100%; min-width: 0; overflow-wrap: anywhere; color: var(--danger); }





.respaldo-copias li a {
font-size: 12.5px; white-space: nowrap; text-decoration: none;
padding: 7px 11px; line-height: 1.2;
}


.btn.deshabilitado { opacity: .45; pointer-events: none; }


input.fuera-de-rango { border-color: var(--danger); background: var(--tinte-rojo); }
.aviso-numero { display: block; margin-top: 4px; font-size: 12px; color: var(--danger); line-height: 1.4; }


.aviso-filtro {
display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
padding: 9px 16px; font-size: 13px;
background: var(--tinte-ambar); border-bottom: 1px solid var(--border); color: var(--texto-ambar);
}


.pendientes { margin-top: 18px; }
.pendientes h3 { margin: 0; padding: 14px 18px 0; font-size: 15px; }
.pendientes > p { margin: 6px 18px 12px; font-size: 13px; line-height: 1.5; }
.pendientes .mini-list li { align-items: flex-start; cursor: pointer; }
.pendientes .mini-list li .mut { font-size: 12px; line-height: 1.45; }
.pendientes .aviso-fuerte {
margin: 0 18px 12px; padding: 10px 12px; border-radius: 9px; font-size: 13px; line-height: 1.5;
background: var(--tinte-rojo); border: 1px solid var(--borde-rojo); color: var(--texto-rojo);
}
.pendientes .aviso-fuerte a { margin-left: 6px; white-space: nowrap; }



.sin-senal {
position: sticky;
top: 0;
z-index: 1000;
padding: 9px 14px;
background: #7a2e12;
color: #fff;
font-size: .9rem;
line-height: 1.35;
text-align: center;
overflow-wrap: anywhere;
}
.sin-senal b { font-weight: 700; }
@media print { .sin-senal { display: none; } }




.asis-tres {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
gap: 18px;
}
.asis-grupo { min-width: 0; }
.asis-tit {
display: block;
font-size: 12.5px;
letter-spacing: .04em;
text-transform: uppercase;
padding-bottom: 6px;
border-bottom: 2px solid var(--border);
}



.asis-tit.asis-fue    { color: var(--success); border-bottom-color: var(--success); }
.asis-tit.asis-excusa { color: var(--warning); border-bottom-color: var(--warning); }
.asis-tit.asis-falto  { color: var(--danger);  border-bottom-color: var(--danger); }
.asis-grupo .mini-list { padding: 6px 0; }
.asis-grupo .mini-list li { padding: 5px 2px; }




.side-buscar {
position: relative;
display: flex;
align-items: center;
margin: 12px 12px 2px;
}
.side-buscar .lupa {
position: absolute;
left: 9px;
font-size: 12px;
opacity: .7;
pointer-events: none;
}
.side-buscar input {
width: 100%;
padding: 7px 28px 7px 29px;
font-size: 13px;
font-family: inherit;
color: #fff;
background: rgba(255, 255, 255, 0.08);
border: 1px solid rgba(255, 255, 255, 0.16);
border-radius: 8px;


appearance: none;
-webkit-appearance: none;
}
.side-buscar input::-webkit-search-cancel-button { display: none; }
.side-buscar input::placeholder { color: rgba(255, 255, 255, 0.55); }
.side-buscar input:focus {
outline: none;
background: rgba(255, 255, 255, 0.14);
border-color: var(--marca-oro);
}
.side-buscar .limpiar {
position: absolute;
right: 5px;
width: 20px; height: 20px;
display: flex; align-items: center; justify-content: center;
font-size: 11px;
color: rgba(255, 255, 255, 0.75);
background: none;
border: 0;
border-radius: 5px;
cursor: pointer;
}
.side-buscar .limpiar:hover { background: rgba(255, 255, 255, 0.14); color: #fff; }

.side-sin-nada {
margin: 10px 14px;
font-size: 12.5px;
line-height: 1.4;
color: rgba(255, 255, 255, 0.6);
}



.sidebar.buscando .side-group.cerrado .group-items { display: block; }
.sidebar.buscando .group-title .flecha { opacity: .25; }






.sidebar .side-link[hidden],
.sidebar .side-group[hidden] { display: none; }



.sidebar .side-link .donde { font-size: 11.5px; opacity: .7; }
























@media (max-width: 700px) {
.btn.sm { min-height: 34px; padding: 6px 12px; }
.informe-indice button { min-height: 40px; padding: 8px 14px; }




.atajo.ancho { min-height: 44px; }
table.grid-lista .btn.sm { min-width: 38px; min-height: var(--acciones-alto); padding: 5px 9px; }


input[type="checkbox"], input[type="radio"],
.fld.check input[type="checkbox"], .multiref .mr-item input[type="checkbox"],
.perm-tabla input[type="checkbox"], ul.perfil-elegir input[type="checkbox"],
.fld label.con-casilla input[type="checkbox"], .cfg-solo input[type="checkbox"] {
width: 22px; height: 22px; flex: none;
}

ul.historial li .ha .ico, .aa-acc .ico { min-width: 36px; min-height: 34px; padding: 6px 9px; }

.rico-barra button { min-width: 34px; min-height: 32px; }














.table-scroll {
background:
linear-gradient(to right, var(--card) 30%, rgba(255, 255, 255, 0)) left center / 22px 100% no-repeat local,
linear-gradient(to left, var(--card) 30%, rgba(255, 255, 255, 0)) right center / 22px 100% no-repeat local,
radial-gradient(farthest-side at 0 50%, rgba(15, 23, 42, 0.24), rgba(15, 23, 42, 0)) left center / 14px 100% no-repeat scroll,
radial-gradient(farthest-side at 100% 50%, rgba(15, 23, 42, 0.24), rgba(15, 23, 42, 0)) right center / 14px 100% no-repeat scroll;
}















.cuadro-scroll {
background:
linear-gradient(to left, var(--card) 30%, rgba(255, 255, 255, 0)) right center / 22px 100% no-repeat local,
radial-gradient(farthest-side at 100% 50%, rgba(15, 23, 42, 0.24), rgba(15, 23, 42, 0)) right center / 14px 100% no-repeat scroll;
}












.perm-lleva a {
display: inline-flex; align-items: center; min-height: 44px;
padding: 0 2px; white-space: normal;
}
























.perm-resumen ul { grid-template-columns: 1fr; }
.perm-resumen li b { white-space: normal; }
.perm-tabla .chip, .pg-cab .chip, .pa-llaves .chip { min-height: 30px; padding: 5px 11px; }
.pg-cab .chip.sm, .pa-llaves .chip.sm { min-height: 28px; padding: 4px 9px; }

.refbuscar .rb-x { top: 3px; right: 4px; padding: 6px 9px; font-size: 20px; }
.refbuscar .rb-txt { padding-right: 44px; }

.pager button { min-width: 36px; min-height: 34px; padding: 6px 11px; }







.menu-toggle { min-width: 40px; min-height: 40px; padding: 0; }
.iglesia-local { min-height: 36px; }
.campanita .cam-boton, #camAbrir { min-width: 38px; min-height: 38px; }
}













@media (max-width: 360px) {









.topbar { padding: 9px 8px; gap: 5px; flex-wrap: wrap; }
.topbar .btn { padding: 7px 9px; }

.iglesia-local, .iglesia-local.elegible {
padding: 6px 8px 6px 7px; min-width: 0; max-width: 30vw;
}
}




.colorcampo { display: flex; align-items: center; gap: 8px; }
.colorcampo .cc-pico {
width: 46px; height: 40px; padding: 2px; flex: none; cursor: pointer;
border: 1px solid var(--border); border-radius: 8px; background: var(--card);
}
.colorcampo .cc-texto { flex: 1 1 auto; min-width: 0; font-family: ui-monospace, monospace; }
.colorcampo .cc-quitar {
flex: none; min-height: 40px; padding: 0 12px; cursor: pointer;
border: 1px solid var(--border); border-radius: 8px;
background: var(--card); color: var(--muted); font: inherit; font-size: 13px;
}
.colorcampo .cc-quitar:hover { color: var(--text); border-color: var(--marca-azul); }
.colorcampo .cc-quitar[hidden] { display: none; }

.dato-color { display: inline-flex; align-items: center; gap: 7px; font-family: ui-monospace, monospace; font-size: 12px; }
.dato-color i { width: 15px; height: 15px; border-radius: 4px; border: 1px solid var(--border); flex: none; }






.modal.modal-previa { max-width: 1000px; width: 96vw; }
.previa-cuerpo { background: var(--bg); }
.previa-aviso {
background: var(--card); border: 1px solid var(--border); border-left: 3px solid var(--marca-oro);
border-radius: 0 8px 8px 0; padding: 10px 14px; margin-bottom: 14px;
font-size: 13px; color: var(--muted);
}







.papelera-filtros { gap: 8px; flex-wrap: wrap; }
.papelera-filtros select, .papelera-filtros input { padding: 6px 10px; border: 1px solid var(--border); border-radius: 8px; font: inherit; }
.papelera-filtros input { min-width: 240px; flex: 1; }
.papelera-tabla .papelera-acciones { white-space: nowrap; }
.papelera-tabla .papelera-acciones .btn + .btn { margin-left: 6px; }
.depuracion-tabla td .resultado { padding: 8px 10px; }

.simulacro-detalle { margin: 8px 0; font-size: 13px; }
.simulacro-detalle summary { cursor: pointer; color: var(--muted); }
.simulacro-tablas { margin-top: 8px; font-size: 12.5px; }
.simulacro-tablas td:nth-child(2), .simulacro-tablas td:nth-child(3) { text-align: right; font-variant-numeric: tabular-nums; }


.medidor { margin-top: 6px; font-size: 12.5px; color: var(--muted); line-height: 1.4; }
.medidor[hidden], .coinciden[hidden] { display: none; }
.medidor-barra { display: flex; gap: 4px; height: 6px; margin-bottom: 4px; }
.medidor-barra i { flex: 1; border-radius: 3px; background: var(--border); transition: background .15s; }
.medidor[data-nivel="0"] .medidor-barra i:first-child { background: #dc2626; }
.medidor[data-nivel="1"] .medidor-barra i:nth-child(-n+1) { background: #ea580c; }
.medidor[data-nivel="2"] .medidor-barra i:nth-child(-n+2) { background: #d97706; }
.medidor[data-nivel="3"] .medidor-barra i:nth-child(-n+3) { background: #16a34a; }
.medidor[data-nivel="4"] .medidor-barra i { background: #15803d; }
.medidor[data-nivel="0"] .medidor-texto { color: var(--danger); }
.medidor-texto b { color: inherit; }
.coinciden { margin-top: 6px; font-size: 12.5px; color: var(--texto-verde); }
.coinciden[data-igual="0"] { color: var(--muted); }

.login-card .medidor, .login-card .coinciden { text-align: left; margin: -4px 0 10px; }


.sesiones-lista { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.sesiones-lista .ses {
display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center;
padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px; font-size: 13px;
}
.sesiones-lista .ses.esta { background: var(--tinte-azul); border-color: var(--borde-azul); }
.sesiones-lista .ses-que { font-weight: 700; min-width: 150px; }
.sesiones-lista .ses .btn { margin-left: auto; }


.ingresos-lista { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.ingresos-lista .ing {
display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline;
padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px; font-size: 13px;
}
.ingresos-lista .ing.fallo { background: var(--tinte-ambar); border-color: var(--borde-ambar); }
.ingresos-lista .ing-que { font-weight: 700; min-width: 90px; }
.ingresos-lista .ing-cuando { font-variant-numeric: tabular-nums; }

.dos-libros { margin-bottom: 14px; }
.dos-libros p { margin: 0 0 8px; }
.dos-libros p:last-child { margin-bottom: 0; }
.dos-libros b { color: var(--texto-marca); }

.previa-hoja { overflow-x: auto; }
.previa-hoja .print-sheet {
margin: 0 auto; background: #fff; box-shadow: 0 2px 14px rgba(15, 23, 42, 0.12);
}

@media (max-width: 900px) {














.previa-hoja { overflow: hidden; }









.previa-hoja .print-sheet {
transform: scale(var(--previa-escala, 0.62)); transform-origin: top left;
margin: 0;
}
}














.bandeja-cajas {
display: grid; gap: 10px; margin: 14px 0;
grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
}
.bandeja-caja {
display: flex; flex-direction: column; gap: 2px; text-align: left;
background: var(--card); border: 1px solid var(--border); border-radius: 10px;
border-top: 3px solid var(--border); padding: 12px 14px; cursor: pointer;
font: inherit; color: inherit; min-height: 44px;
}
.bandeja-caja:hover { border-color: var(--marca-azul); }
.bandeja-caja:focus-visible { outline: 2px solid var(--marca-azul); outline-offset: 2px; }
.bandeja-caja.puesta { border-top-color: var(--marca-azul); box-shadow: var(--shadow); }
.bandeja-caja.urge { border-top-color: var(--danger); }
.bandeja-caja .bc-n {
font-size: 26px; line-height: 1.1; font-weight: 700; font-variant-numeric: tabular-nums;
}
.bandeja-caja.urge .bc-n { color: var(--danger); }
.bandeja-caja.puesta .bc-n { color: var(--texto-marca); }
.bandeja-caja.puesta.urge .bc-n { color: var(--danger); }
.bandeja-caja .bc-q { font-size: 13.5px; font-weight: 600; }
.bandeja-caja .bc-d { font-size: 12px; color: var(--muted); }




@media (max-width: 700px) {
.bandeja-tabla td[data-col="numero"] {
font-size: 15.5px; font-weight: 700; text-align: left; justify-content: flex-start;
padding-bottom: 4px;
}
.bandeja-tabla td[data-col="numero"]::before { display: none; }
}




.paso-sig { border-left: 3px solid var(--accent); }
.paso-sig.hecho { border-left-color: var(--success); }

ul.hilo-doc { list-style: none; padding: 0; margin: 0 0 6px; }
ul.hilo-doc li { padding: 4px 0; border-bottom: 1px solid var(--border); font-size: 13.5px; }
ul.hilo-doc li:last-child { border-bottom: none; }

.bandeja-tabla .plazo { white-space: nowrap; font-size: 12.5px; color: var(--muted); }

.btn:disabled, .btn[disabled] { opacity: 0.55; cursor: not-allowed; }

.respaldo .plazo-linea { font-weight: 600; }
.respaldo .plazo-linea.vencido { color: var(--danger); }
.respaldo .plazo-linea.justo { color: var(--texto-ambar); }






.puesta-resumen { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.puesta-lista { list-style: none; margin: 0; padding: 0; }
.puesta-item { display: flex; gap: 10px; align-items: flex-start; padding: 10px 2px; border-top: 1px solid var(--border); }
.puesta-item:first-child { border-top: 0; }
.puesta-icono { flex: 0 0 24px; font-size: 18px; line-height: 1.35; text-align: center; }
.puesta-texto { flex: 1 1 auto; min-width: 0; line-height: 1.45; }
.puesta-texto .mut { font-size: 13px; margin: 2px 0; }
.puesta-texto a { display: inline-flex; align-items: center; min-height: 32px; font-weight: 600; color: var(--texto-azul); }
.puesta-donde { display: block; }
.puesta-pie { font-size: 12.5px; margin: 10px 0 0; }
.cfg-tablero { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 18px; align-items: start; }


.cfg-tablero > * { min-width: 0; }
.cfg-buscar { position: relative; margin: 14px 0 0; }
.cfg-buscar input { width: 100%; box-sizing: border-box; }
.cfg-buscar .cfg-buscar-nada { display: block; margin-top: 6px; font-size: 12.5px; color: var(--muted); }
.pestanas button .cfg-cuenta {
margin-left: auto; min-width: 20px; padding: 0 6px; border-radius: 999px; font-size: 11.5px;
background: var(--superficie-azul); color: var(--texto-marca); text-align: center;
}
.pestanas button.cfg-sin-calce { opacity: 0.45; }
.cfg-nota { font-size: 13px; color: var(--muted); font-weight: 400; }
.cfg-fabrica { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 4px; font-size: 12px; color: var(--muted); }
.cfg-fabrica button { border: 1px solid var(--border); background: var(--card); color: var(--texto-marca); border-radius: 999px; padding: 2px 9px; font-size: 12px; cursor: pointer; font-family: inherit; }
.cfg-fabrica button:hover { background: var(--bg); }




.cfg-fabrica[hidden] { display: none; }
.cfg-cambio { color: var(--muted); }
.cfg-cambio::before { content: '·'; margin-right: 8px; }
.cfg-fabrica > .cfg-cambio:first-child::before { content: none; }
.help.cfg-fuera { color: var(--texto-ambar); }
.cfg-solo { display: flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 12.5px; color: var(--muted); cursor: pointer; }


.cfg-solo input { margin: 0; width: auto; flex: 0 0 auto; }
.cfg-solo .cfg-cuenta { min-width: 20px; padding: 0 6px; border-radius: 999px; font-size: 11.5px; background: var(--superficie-azul); color: var(--texto-marca); text-align: center; }
.fld.cfg-oculto { display: none !important; }

.registro-pestanas { margin: 0 0 14px; }

.seccion-pestanas { margin: 0 0 14px; }

.cfg-listas { list-style: none; margin: 0; padding: 14px; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.cfg-lista { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; min-height: 44px; border: 1px solid var(--border); border-radius: 10px; color: var(--text); }
.cfg-lista:hover { border-color: var(--accent); text-decoration: none; }
.cfg-lista .ic { font-size: 20px; line-height: 1.2; }
.cfg-lista b { display: block; }
.cfg-lista small { display: block; margin-top: 2px; font-size: 12.5px; color: var(--muted); }
.registro-nota { margin: -4px 0 12px; font-size: 13px; }
.btn.hay-cambios { box-shadow: 0 0 0 3px var(--borde-ambar); }
.cfg-pie { display: flex; justify-content: flex-end; gap: 10px; align-items: center; margin: 14px 0 0; }
.cfg-pie .mut { font-size: 12.5px; }
.cfg-buscando .cfg-extra { display: none; }
@media (min-width: 1100px) {
.cfg-tablero { grid-template-columns: 250px minmax(0, 1fr); }
.cfg-tablero .cfg-lado { position: sticky; top: 12px; }
.cfg-tablero .pestanas {
flex-direction: column; gap: 2px; overflow: visible; border-bottom: none; border-right: 1px solid var(--border);
padding-right: 8px; margin-top: 12px; -webkit-mask-image: none; mask-image: none;
}
.cfg-tablero .pestanas button {
justify-content: flex-start; width: 100%; padding: 9px 12px; border-bottom: none; margin-bottom: 0;
border-left: 3px solid transparent; border-radius: 0 8px 8px 0; white-space: normal; text-align: left;
}
.cfg-tablero .pestanas button.on { border-left-color: var(--accent); background: var(--tinte-azul); }
.cfg-tablero .panel-pestana .card:first-child { margin-top: 12px; }
}
@media (max-width: 700px) {
.cfg-fabrica button { min-height: 32px; }
}





.qs-filtros { gap: 10px; }
.qs-filtros input[type="search"] { flex: 1 1 240px; min-width: 0; }
.qs-filtros select { min-width: 150px; }
.qs-chips-fila { padding-top: 10px; padding-bottom: 10px; }
.qs-tablero { display: grid; grid-template-columns: 1fr; gap: 14px; align-items: start; }
@media (min-width: 1100px) {
.qs-tablero { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}
.qs-tabla th.qs-col-n, .qs-tabla td.qs-col-n { text-align: center; width: 44px; }
.qs-tabla .qs-cero { color: var(--texto-tenue); }
.qs-tabla tr[data-id] { cursor: pointer; }
.qs-tabla tr.qs-elegido td { background: var(--tinte-azul); }
.qs-tabla tr.qs-elegido td:first-child { box-shadow: inset 3px 0 0 var(--marca-azul); }
.qs-tabla .qs-cuerpos { display: block; font-size: 12px; }
.qs-tabla td:last-child { white-space: nowrap; }
.qs-sueltos-tit { border-top: 1px solid var(--border); }
.qs-hermano .qs-cabecera { margin: 0 0 14px; }
.qs-hermano .qs-bloque { margin-top: 14px; }
.qs-hermano .qs-bloque:first-of-type { margin-top: 0; }
.qs-bloque .toolbar b { font-size: 15px; }
.qs-bloque .toolbar .mut { font-size: 13px; }
.qs-bloque .qs-nada { font-size: 13px; }
.qs-dia { font-size: 12px; }
.qs-volver { display: none; margin-bottom: 10px; }
.qs-vacio .empty-state { padding: 60px 20px; font-size: 14px; }
@media (max-width: 700px) {

a.persona-chip { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; }
.qs-tablero.qs-eligiendo .qs-lista { display: none; }
.qs-tablero.qs-eligiendo .qs-volver { display: inline-block; }
.qs-filtros select { flex: 1 1 45%; min-width: 0; }
.qs-tabla td.qs-col-n { width: auto; }
.qs-vacio { display: none; }
}
@media print {
.qs-tablero { display: block; }
.qs-lista { margin-bottom: 14px; }
body.qs-solo-hermano .qs-lista { display: none !important; }
.qs-membrete h2 { margin: 10px 0 2px; font-size: 18px; }
.qs-membrete p { margin: 0 0 12px; color: #475569; font-size: 12.5px; }
}
.bandeja-tabla .plazo.vencido { color: var(--danger); font-weight: 600; }
.bandeja-tabla .plazo.justo { color: var(--warning); font-weight: 600; }
.bandeja-tabla tbody tr { cursor: pointer; }







.libro-tit { text-align: center; letter-spacing: 0.5px; margin: 0 0 4px; font-size: 17px; color: var(--texto-marca); }
.libro-sub {
display: flex; gap: 18px; justify-content: center; flex-wrap: wrap;
font-size: 12.5px; color: var(--muted); margin-bottom: 14px;
}
.libro-scroll { overflow-x: auto; }

table.libro {
border-collapse: collapse; width: 100%; font-size: 12px;
font-variant-numeric: tabular-nums;
}
table.libro th, table.libro td {
border: 1px solid var(--borde-fuerte); padding: 4px 6px; text-align: left; vertical-align: top;
}
table.libro thead th {
background: var(--tinte-azul); color: var(--texto-marca); font-weight: 700;
font-size: 11px; text-transform: uppercase; letter-spacing: 0.3px; white-space: nowrap;
}
table.libro .col-n { white-space: nowrap; }
table.libro .col-f { white-space: nowrap; width: 78px; }
table.libro .col-t { width: 96px; }
table.libro .col-q { width: 170px; }
table.libro .col-r { width: 96px; }
table.libro .col-fo { width: 34px; text-align: right; }
table.libro .col-e { width: 84px; }
table.libro .num { text-align: right; }
table.libro .rot { color: var(--muted); font-size: 11px; }



table.libro tbody tr.entra td:first-child { border-left: 3px solid var(--marca-azul); }
table.libro tbody tr.sale td:first-child { border-left: 3px solid var(--marca-oro-oscuro); }
table.libro tbody tr.archivo td:first-child { border-left: 3px solid var(--borde-fuerte); }
table.libro tbody tr:nth-child(even) td { background: var(--superficie); }

.libro-cierre { margin-top: 16px; }
.libro-cuenta { font-size: 13px; color: var(--text); }








.libro-falta {
margin-top: 12px; padding: 9px 12px;
border: 1.5px solid #9a3412; border-radius: 3px;
color: var(--texto-ambar); font-size: 12.5px; line-height: 1.5;
}
.libro-falta b { color: var(--texto-ambar); }
.libro-falta ul { margin: 5px 0 4px; padding-left: 18px; }
.libro-falta li { margin-bottom: 2px; }
.libro-falta span { display: block; font-size: 11px; opacity: .85; }

.libro-firmas { display: flex; justify-content: space-around; margin-top: 46px; }
.libro-firmas .firma {
width: 240px; border-top: 1px solid var(--texto-calido); padding-top: 6px;
text-align: center; font-size: 12px; color: var(--texto-2);
}
.libro-firmas .firma .rotulo { font-size: 10.5px; color: var(--texto-3); }
.libro-pie { margin-top: 22px; text-align: center; font-size: 10.5px; color: var(--muted); }

@media print {
.libro-hoja { padding: 0; border: none; box-shadow: none; }
.libro-hoja .libro-scroll { overflow: visible; }
table.libro { font-size: 8pt; }
table.libro th, table.libro td { padding: 2px 4px; }



table.libro thead { display: table-header-group; }
table.libro tr { break-inside: avoid; }
table.libro tbody tr:nth-child(even) td { background: #f6f7fb !important; }

.libro-cierre { break-inside: avoid; }
table.libro tbody tr.entra td:first-child,
table.libro tbody tr.sale td:first-child,
table.libro tbody tr.archivo td:first-child,
table.libro tbody tr:nth-child(even) td {
-webkit-print-color-adjust: exact; print-color-adjust: exact;
}
}
@page libro { size: Letter landscape; margin: 10mm; }
.libro-hoja { page: libro; }

@media (max-width: 700px) {



.libro-sub { gap: 10px; font-size: 12px; }
table.libro { font-size: 11.5px; min-width: 720px; }
}






.inf-no-inscrito {
display: inline-flex;
align-items: center;
gap: 2px;
max-width: 100%;


min-height: 44px;
padding: 0 2px 0 12px;
}
.inf-no-inscrito button {
background: none;
border: 0;
color: inherit;
font-size: 18px;
line-height: 1;
cursor: pointer;

min-width: 44px;
min-height: 44px;
}
.inf-no-inscrito button:hover { opacity: .7; }
























.cert-dato {
color: var(--cert-color-titulo);
font-weight: 700;
letter-spacing: 1.5px;
text-decoration: none;
border-bottom: 1px solid #78716c;
padding: 0 10px 1px;
white-space: nowrap;
}
.cert-dato.vacio { padding: 0 40px 1px; }


.cert-epigrafe {
font-style: italic; text-align: center; line-height: 1.5;
font-size: calc(var(--cert-tam-texto) * 0.98);
color: var(--cert-color-texto); margin: 8px auto 0; max-width: 46em;
white-space: pre-line;
}
.cert-epigrafe b { display: block; font-style: italic; margin-top: 2px; }


.cert-firmas.en-blanco .firma { padding-top: 8px; }
.cert-firmas.en-blanco .firma .rotulo { font-size: 13px; color: #44403c; font-weight: 600; }











.cert-ninos .cert-inner { padding: calc(26px * var(--cert-apretar, 1)) 40px calc(20px * var(--cert-apretar, 1)); text-align: center; }
.cert-ninos .cn-cab {
display: flex; align-items: center; gap: 22px; text-align: left;
}
.cert-ninos .cn-cab .cert-logo { width: 108px; height: 108px; margin: 0; flex: none; }
.cert-ninos .cn-tit { flex: 1; min-width: 0; }
.cert-ninos .cn-tit h1 {
margin: 0; text-align: center; line-height: 1.1;
font-family: var(--cert-fuente-titulo); font-size: var(--cert-tam-titulo);
color: var(--cert-color-titulo); text-transform: uppercase; font-weight: 800;
letter-spacing: 0.5px;
}
.cert-ninos .cn-rotulo {
font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px;
font-size: calc(var(--cert-tam-texto) * 1.02);
color: var(--cert-color-texto); margin-top: calc(14px * var(--cert-apretar, 1));
}
.cert-ninos .cn-nombre {
margin: calc(10px * var(--cert-apretar, 1)) auto 2px;



font-weight: 800; letter-spacing: calc(5px * var(--cn-escala, 1));
font-size: calc(var(--cert-tam-titulo) * 0.62 * var(--cn-escala, 1));
color: var(--cert-color-titulo); line-height: 1.25;
border-bottom: 1px solid #78716c; padding: 0 20px 6px; max-width: 92%;
}
.cert-ninos .cn-parrafo {
margin: calc(14px * var(--cert-apretar, 1)) auto 0; max-width: 54em;
line-height: calc(2.1 * var(--cert-interlineado, 1) * var(--cert-apretar, 1));
font-family: var(--cert-fuente-texto); font-size: var(--cert-tam-texto);
color: var(--cert-color-texto); text-align: var(--cert-alineacion, center);
}

.cert-ninos .cn-par {
display: flex; align-items: flex-end; justify-content: center; gap: 12px;








margin: calc(6px * var(--cert-apretar, 1)) auto 0; width: 94%; max-width: 94%;
}
.cert-ninos .cn-par span {
flex: 1 1 0; min-width: 0; border-bottom: 1px solid #78716c;





padding: 0 4px 4px; font-weight: 700; letter-spacing: 0.2px;
font-size: calc(var(--cert-tam-texto) * 1.15 * var(--cn-escala, 1));
color: var(--cert-color-titulo);
overflow-wrap: anywhere;
}
.cert-ninos .cn-par i { font-style: normal; color: var(--cert-color-texto); flex: none; padding-bottom: 4px; }
.cert-ninos .cert-firmas { margin-top: 42px; }
.cert-ninos .cn-emision {
margin-top: calc(22px * var(--cert-apretar, 1)); font-size: calc(var(--cert-tam-texto) * 0.95);
color: var(--cert-color-texto); font-weight: 600;
}

.cert-ninos .cn-numero + .cn-emision { margin-top: 4px; }








.cert-ninos .cn-y {
font-weight: 700; font-size: calc(var(--cert-tam-texto) * 1.1); line-height: 1;
color: var(--cert-color-texto); margin-top: calc(6px * var(--cert-apretar, 1));
}
.cert-ninos .cn-y + .cn-nombre { margin-top: calc(4px * var(--cert-apretar, 1)); }
















.cert-ninos .cn-numero {
text-align: right; margin-top: calc(20px * var(--cert-apretar, 1)); line-height: 1.2;
}











@media print {






























html.hoja-de-una-pagina,
html.hoja-de-una-pagina body,
html.hoja-de-una-pagina .content { margin: 0; padding: 0; height: 100%; overflow: hidden; }
.cert-sheet {
width: 100%; height: 100%;
max-width: none; min-height: 0; margin: 0;
break-after: avoid; break-inside: avoid;
}







.cert-sheet .cert-inner { min-height: 100%; display: flex; flex-direction: column; }
.cert-sheet .cert-firmas,
.cert-ninos .cert-firmas { margin-top: auto; }
.cert-sheet .cert-fecha,
.cert-ninos .cn-emision,
.cert-sheet .cert-pie { flex: none; }
}



ul.mini-list li.salido > span:first-child { opacity: .72; }







.msg-pie { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }

.msg-acciones { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 7px; }

.mis-msg { display: flex; flex-direction: column; gap: 12px; }
.msg-recibido h3 { margin: 0 0 4px; font-size: 1.02rem; }
.msg-recibido.sin-leer { border-left: 4px solid var(--marca-azul); }
.msg-quien { font-size: 12.5px; }
.msg-texto { margin: 9px 0 0; white-space: pre-wrap; }

.msg-abierto { margin-top: 10px; padding: 12px 14px; background: var(--superficie);
border: 1px solid var(--borde-suave); border-radius: 8px; }
.msg-abierto .msg-texto { margin: 0 0 8px; white-space: pre-wrap; }
.msg-aquienes { margin-top: 8px; font-size: 13px; }
.msg-aquienes ul { margin: 5px 0 0; padding-left: 1.2em; columns: 2; }
@media (max-width: 620px) { .msg-aquienes ul { columns: 1; } }

ul.mini-list li.retirado > span:first-child { opacity: .72; }
ul.mini-list li.retirado .msg-t { text-decoration: line-through; }

.fld label.con-casilla {
display: flex; align-items: center; gap: 9px; font-weight: 500; cursor: pointer;
min-height: 44px; margin: 0;
}
.fld label.con-casilla input[type="checkbox"] { flex: 0 0 auto; margin: 0; }




@media (min-width: 701px) {
.fld label.con-casilla input[type="checkbox"] { width: 18px; height: 18px; }
}



.wa-nota { color: var(--muted); font-size: 12.5px; }



.wa-texto {
white-space: pre-wrap; font-size: 13px; line-height: 1.45;
background: var(--superficie); border: 1px solid var(--borde-suave); border-radius: 8px;
padding: 9px 11px; max-width: 46em;
}
.wa-pie { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }


tr.wa-sin-numero > td { opacity: .74; }


tr.wa-abierto > td { background: var(--tinte-verde); }
tr.wa-abierto td:first-child { box-shadow: inset 3px 0 0 #16a34a; }





@media (max-width: 700px) {
table.grid-lista td.wa-celda-mensaje { display: block; text-align: left; }
table.grid-lista td.wa-celda-mensaje::before { display: block; margin-bottom: 3px; }
table.grid-lista td.wa-celda-mensaje .wa-texto { max-width: none; }
}



.historial .hadj { margin-top: 5px; }
.historial .hadj a {
display: inline-flex; align-items: center; gap: 5px;
font-size: 12.5px; min-height: 30px;
color: var(--texto-accion); text-decoration: none; word-break: break-all;
}
.historial .hadj a:hover { text-decoration: underline; }



.historial .corregida { margin-top: 4px; }
.historial .corregida > summary {
cursor: pointer; font-size: 12px; color: var(--muted);
list-style: none; display: inline-flex; align-items: center; gap: 5px;
padding: 3px 0; min-height: 24px;
}
.historial .corregida > summary::-webkit-details-marker { display: none; }
.historial .corregida > summary::before { content: '▸'; font-size: 10px; }
.historial .corregida[open] > summary::before { content: '▾'; }
.historial .corregida > summary:hover { color: var(--text); }
.historial .antes,
.aviso-auto .antes {
font-size: 13px; line-height: 1.5;
border-left: 3px solid var(--border);
padding: 6px 0 6px 10px; margin-top: 4px;
color: var(--muted);
}



.hist-mas {
display: flex; align-items: center; justify-content: center; gap: 12px;
padding: 12px 14px; border-top: 1px solid var(--border);
font-size: 13px; color: var(--muted); flex-wrap: wrap;
}


.avance { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.avance .barra { display: inline-block; width: 80px; height: 8px; border-radius: 4px; background: var(--border, var(--superficie-azul)); overflow: hidden; vertical-align: middle; }
.avance .barra i { display: block; height: 100%; background: var(--success, #2e7d32); }
.avance.ojo .barra i { background: var(--warning, #c77700); }
.avance.pasado .barra i { background: var(--danger, #b00020); }
.avance b { font-weight: 600; font-variant-numeric: tabular-nums; }
tr.sin-presupuesto td { color: var(--muted, var(--muted)); }
.card h4.sub { margin: 14px 18px 6px; font-size: 1rem; }


.portal { max-width: 900px; margin: 0 auto; padding: 0 12px 40px; }
.portal-cab { display: flex; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--border); }
.portal-cab .logo { height: 40px; width: auto; }
.portal-quien { display: flex; flex-direction: column; line-height: 1.2; }
.portal-nombre { font-weight: 600; }
.portal-tabs { display: flex; gap: 6px; overflow-x: auto; padding: 10px 0; scrollbar-width: none; }
.portal-tabs button { font: inherit; color: var(--text); border: 1px solid var(--border); background: var(--card); border-radius: 999px; padding: 8px 14px; cursor: pointer; white-space: nowrap; min-height: 40px; }
.portal-tabs button.on { background: var(--accent); color: #fff; border-color: var(--accent); }
.portal-cuerpo .card { margin-bottom: 16px; }
.portal-saludo { font-size: 1.4rem; font-weight: 700; margin: 12px 0 4px; }
@media (max-width: 560px) { .portal-nombre { display: none; } }



.cuotas-este-mes { margin: 0 14px 10px; font-size: 13px; color: var(--muted); }
.cuotas-este-mes b { color: var(--text); }
.grid.cuotas th.mes.hoy, .grid.cuotas td.mes.hoy { background: var(--tinte-azul); }
.grid.cuotas tfoot td { font-weight: 700; font-size: 12px; border-top: 2px solid var(--border); color: var(--muted); }
.grid.cuotas tfoot td.mes { text-align: center; font-variant-numeric: tabular-nums; }
.grid.cuotas tfoot td.cifra { color: var(--text); }


.resultado details.wa-nota { margin-top: 0; }



.resultado details.wa-nota summary { cursor: pointer; font-weight: 600; color: var(--text); padding: 7px 0; }














[data-ir]:focus-visible, tr[tabindex="0"]:focus-visible, li[tabindex="0"]:focus-visible {
outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 8px;
}
tr[tabindex="0"]:focus-visible td { background: var(--tinte-azul); }


.tb-ayuda {
display: inline-flex; align-items: center; gap: 6px; margin-right: 8px;
border: 1px solid var(--border); background: var(--card); color: var(--texto-marca);
border-radius: 999px; padding: 6px 12px; font-size: 13px; font-weight: 600; cursor: pointer;
}
.tb-ayuda:hover { background: var(--superficie-azul); }
@media (max-width: 900px) { .tb-ayuda-txt { display: none; } .tb-ayuda { padding: 6px 9px; } }


.ayuda-pagina { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 18px; align-items: start; }
.ayuda-secciones { position: sticky; top: 12px; padding: 14px; display: grid; gap: 4px; }
.ayuda-secciones b { font-size: 12px; text-transform: uppercase; letter-spacing: 0.6px; color: var(--muted); margin-bottom: 4px; }
.ayuda-a-seccion {
text-align: left; border: 0; background: none; color: var(--texto-accion); font: inherit; font-size: 13.5px;
padding: 5px 6px; border-radius: 6px; cursor: pointer; line-height: 1.3;
}
.ayuda-a-seccion:hover { background: var(--superficie-azul); }
.ayuda-texto { padding: 22px 28px; max-width: 72ch; line-height: 1.6; }
.ayuda-texto h3 { font-size: 17px; margin: 24px 0 8px; color: var(--texto-marca); scroll-margin-top: 14px; }
.ayuda-texto h3:first-child { margin-top: 0; }
.ayuda-texto h3.ayuda-destacada { background: var(--tinte-ambar); border-radius: 6px; padding: 2px 6px; margin-left: -6px; }
.ayuda-texto p, .ayuda-texto ul, .ayuda-texto ol { margin: 0 0 12px; }
.ayuda-texto ul, .ayuda-texto ol { padding-left: 22px; }
.ayuda-texto li { margin-bottom: 4px; }
.ayuda-texto ol li::marker { font-weight: 700; color: var(--texto-marca); }
.ayuda-boton {
display: inline-block; border: 1px solid var(--borde-fuerte); background: var(--superficie); border-radius: 6px;
padding: 0 6px; font-weight: 600; font-size: 0.92em; color: var(--texto-marca); white-space: nowrap;
}
.ayuda-recuadro { border-radius: 10px; padding: 10px 14px; margin: 0 0 14px; border: 1px solid; }
.ayuda-recuadro.consejo { background: var(--tinte-verde); border-color: var(--borde-verde); }
.ayuda-recuadro.ojo { background: var(--tinte-ambar); border-color: var(--borde-ambar); }
.ayuda-tabla { overflow-x: auto; margin: 0 0 14px; }
.ayuda-tabla table { border-collapse: collapse; width: 100%; font-size: 13.5px; }
.ayuda-tabla th, .ayuda-tabla td { border: 1px solid var(--border); padding: 7px 10px; text-align: left; vertical-align: top; }
.ayuda-tabla th { background: var(--superficie); }
.ayuda-tal-cual { background: var(--superficie); border: 1px solid var(--border); border-radius: 8px; padding: 10px 14px; margin: 0 0 14px; white-space: pre-wrap; }
.ayuda-pie { display: flex; justify-content: space-between; gap: 12px; margin: 16px 0 8px; flex-wrap: wrap; }
.ayuda-indice { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; }
.ayuda-capitulos { list-style: none; padding: 8px 16px 16px; display: grid; gap: 2px; }
.ayuda-capitulos a { display: block; padding: 6px 8px; border-radius: 6px; }
.ayuda-capitulos a:hover { background: var(--superficie-azul); text-decoration: none; }
.ayuda-capitulos .num { display: inline-block; min-width: 1.8em; font-variant-numeric: tabular-nums; color: var(--muted); }
@media (max-width: 900px) {
.ayuda-pagina { grid-template-columns: 1fr; }
.ayuda-secciones { position: static; }
.ayuda-texto { padding: 16px; }
}


kbd {
display: inline-block; min-width: 1.6em; text-align: center; font: 600 12.5px/1.5 ui-monospace, 'Cascadia Mono', Consolas, monospace;
border: 1px solid var(--borde-fuerte); border-bottom-width: 2px; border-radius: 5px; padding: 0 5px;
background: var(--superficie); color: var(--text);
}
.atajos-tabla { border-collapse: collapse; width: 100%; font-size: 14px; }
.atajos-tabla td { padding: 6px 8px; border-bottom: 1px solid var(--borde-suave); vertical-align: middle; }
.atajos-teclas { white-space: nowrap; width: 1%; color: var(--muted); font-size: 12.5px; }
.atajos-nota { margin-top: 10px; font-size: 12.5px; }


.apariencia { padding: 14px 16px 16px; }
.apariencia > p { margin: 0 0 12px; }
.apariencia-opciones { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; }
.apariencia-opcion {
display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--border); border-radius: 10px;
padding: 12px; cursor: pointer; background: var(--card);
}
.apariencia-opcion.on { border-color: var(--accent); background: var(--tinte-azul); }
.apariencia-opcion input { margin-top: 3px; }
.apariencia-opcion .ic { font-size: 20px; line-height: 1; }
.apariencia-opcion b { display: block; }
.apariencia-opcion .mut { display: block; font-size: 12.5px; margin-top: 2px; }


th.col-marca, td.col-marca { width: 34px; text-align: center; padding-left: 10px; padding-right: 2px; }
.col-marca input { width: 17px; height: 17px; cursor: pointer; vertical-align: middle; }
.barra-marcadas {
display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 9px 14px;
background: var(--tinte-azul); border-top: 1px solid var(--borde-azul); border-bottom: 1px solid var(--borde-azul);
position: sticky; top: 0; z-index: 2;
}
.barra-marcadas[hidden] { display: none; }
.barra-marcadas .marcadas-cuenta { color: var(--texto-marca); margin-right: 4px; }
.cambio-en-grupo { display: grid; gap: 10px; margin-top: 12px; }
.cambio-en-grupo label { display: grid; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--muted); }
.cambio-en-grupo select { font: inherit; font-size: 14px; padding: 7px 9px; border: 1px solid var(--border); border-radius: 8px; background: var(--card); color: var(--text); }
@media (max-width: 700px) {
table.grid-lista td.col-marca { position: absolute; left: auto; right: 12px; bottom: 8px; width: auto; padding: 0; }
table.grid-lista td.col-marca::before { content: none; }

table.grid-lista td.col-marca input { width: 22px; height: 22px; }











table.grid-lista td.col-ultima { padding-right: 32px; }
}





@media screen and (prefers-color-scheme: dark) {
:root:not([data-tema="claro"]) #toast { border: 1px solid var(--borde-fuerte); }
:root:not([data-tema="claro"]) .pl-chips .chip.on { background: var(--sidebar-active); border-color: var(--sidebar-active); }
}
@media screen {
:root[data-tema="oscuro"] #toast { border: 1px solid var(--borde-fuerte); }
:root[data-tema="oscuro"] .pl-chips .chip.on { background: var(--sidebar-active); border-color: var(--sidebar-active); }
}




:where(input, select, textarea) { background-color: var(--card); color: var(--text); }



@media screen and (prefers-color-scheme: dark) {
:root:not([data-tema="claro"]) .login-card .logo { background: #ffffff; border-radius: 50%; padding: 4px; }
}
@media screen {
:root[data-tema="oscuro"] .login-card .logo { background: #ffffff; border-radius: 50%; padding: 4px; }
}





.pl-acciones { margin-left: auto; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.pl-cab .pl-acciones #plInforme { margin-left: 0; }
.pl-solo[hidden] { display: none; }

dialog.dlg-codigo { max-width: min(520px, calc(100vw - 24px)); }
dialog.dlg-codigo form { padding: 20px 22px; text-align: center; }
dialog.dlg-codigo h3 { margin: 0 0 12px; }
.codigo-qr { width: min(340px, 72vw); margin: 0 auto; border-radius: 8px; overflow: hidden; }
.codigo-qr svg { display: block; width: 100%; height: auto; }
.codigo-texto { margin: 12px 0 4px; font-size: 30px; letter-spacing: 3px; font-variant-numeric: tabular-nums; color: var(--texto-marca); }
.codigo-como { margin: 0 0 10px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.codigo-cuantos { margin: 8px 0 0; font-size: 14.5px; }
.codigo-cerrado { margin: 18px 0; font-size: 15px; color: var(--texto-2); }
dialog.dlg-codigo .dlg-pie { justify-content: center; }

.asistir { margin-bottom: 18px; border: 2px solid var(--borde-azul); }
.asistir .card-body { padding: 16px 18px; }
.asistir-que b { display: block; font-size: 18px; color: var(--texto-marca); }
.asistir-que span { color: var(--muted); font-size: 14px; }
ul.asistir-cuerpos { list-style: none; margin: 12px 0; padding: 0; display: grid; gap: 6px; }
ul.asistir-cuerpos li { display: flex; gap: 8px; align-items: center; font-size: 14.5px; }
.asistir-boton { width: 100%; min-height: 52px; font-size: 18px; }
.asistir-listo { margin: 10px 0 0; font-size: 15px; color: var(--texto-verde); font-weight: 600; }
.asistir-escribir { display: flex; gap: 8px; }
.asistir-escribir input { flex: 1 1 auto; min-width: 0; font-size: 20px; letter-spacing: 2px; text-transform: uppercase; padding: 10px 12px; }

.portal-actividades { margin-top: 18px; }
ul.portal-agenda { list-style: none; margin: 0; padding: 0; }
ul.portal-agenda li { display: flex; gap: 12px; align-items: center; padding: 12px 16px; border-top: 1px solid var(--borde-suave); flex-wrap: wrap; }
ul.portal-agenda li:first-child { border-top: none; }
ul.portal-agenda li.es-hoy { background: var(--tinte-azul); }
.agenda-cuando { flex: 0 0 96px; font-weight: 700; color: var(--texto-marca); font-size: 14px; }
.agenda-cuando span { display: block; font-weight: 500; color: var(--muted); font-size: 13px; }
.agenda-que { flex: 1 1 180px; min-width: 0; }
.agenda-que b { display: block; font-size: 14.5px; }
.agenda-que span { font-size: 12.5px; }

.calendario-card { margin-top: 18px; }
.calendario-card .card-body { padding: 16px 18px; }
.calendario-card p { margin: 0 0 10px; line-height: 1.5; }
.calendario-enlace { border: 1px solid var(--borde-azul); background: var(--tinte-azul); border-radius: 8px; padding: 12px 14px; margin: 0 0 12px; }
.calendario-enlace input { width: 100%; font-size: 13px; margin: 0 0 10px; }
.calendario-botones { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 10px; }


.aviso-pase { border: 1px solid var(--borde-ambar); background: var(--tinte-ambar); border-radius: 8px; padding: 12px 14px; margin: 0 0 12px; }
.aviso-pase p { margin: 0 0 8px; }
.aviso-pase .calendario-enlace { margin: 0; }
.pase-opciones { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.pase-opcion { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; }

@media (max-width: 700px) {
.pl-acciones { margin-left: 0; width: 100%; }
.pl-acciones .btn { flex: 1 1 auto; min-height: 40px; }
.agenda-cuando { flex: 1 1 100%; display: flex; gap: 8px; align-items: baseline; }
.agenda-cuando span { display: inline; }
}


.tabla-ancha { overflow-x: auto; }
.aportes-tabla tr[data-persona] { cursor: pointer; }
.aportes-persona .toolbar { flex-wrap: wrap; gap: 8px; }
.portal-aportes { margin-top: 18px; }
ul.portal-aportes-lista { list-style: none; margin: 0; padding: 8px 18px 12px; display: grid; gap: 6px; }
ul.portal-aportes-lista li { display: flex; justify-content: space-between; gap: 12px; font-size: 14.5px; border-bottom: 1px solid var(--borde-suave); padding: 6px 0; }
ul.portal-aportes-lista li b { font-variant-numeric: tabular-nums; }


.conciliar-cabeza { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 14px 18px 6px; }
.conciliar-cabeza h3 { margin: 0; font-size: 15px; }
.conciliar-cabeza .mut { font-size: 13px; }
.conciliar-entrada { padding: 0 18px 16px; display: grid; gap: 10px; }
.conciliar-entrada p { margin: 0; }
.conciliar-entrada textarea { width: 100%; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; tab-size: 18; white-space: pre; overflow-x: auto; }





.conciliar-entrada textarea {
background:
linear-gradient(to right, var(--card) 30%, transparent) left center / 20px 100% no-repeat local,
linear-gradient(to left, var(--card) 30%, transparent) right center / 20px 100% no-repeat local,
radial-gradient(farthest-side at 0 50%, color-mix(in srgb, var(--text) 24%, transparent), transparent) left center / 12px 100% no-repeat scroll,
radial-gradient(farthest-side at 100% 50%, color-mix(in srgb, var(--text) 24%, transparent), transparent) right center / 12px 100% no-repeat scroll,
var(--card);
}
.conciliar-entrada .toolbar { flex-wrap: wrap; gap: 10px; align-items: center; padding: 0; }
.conciliar-cifras { margin: 18px 0; }
.conciliar-saldos { display: flex; flex-wrap: wrap; gap: 14px 32px; align-items: flex-end; padding: 4px 18px 8px; }
.conciliar-saldos b { font-size: 17px; font-variant-numeric: tabular-nums; }
.conciliar-saldos .fld { margin: 0; min-width: 180px; }
.conciliar-explica { padding: 0 18px 12px; margin: 0; }
.conciliar-tabla td.num, .conciliar-tabla th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
details.conciliar-calzan > summary { padding: 14px 18px; cursor: pointer; }
.conciliar-guardar { display: flex; flex-wrap: wrap; gap: 10px; padding: 14px 18px 4px; }
.conciliar-guardar { align-items: flex-end; }
.conciliar-guardar .fld { flex: 1 1 260px; margin: 0; }
#conGuardarCaja > p { padding: 0 18px 12px; margin: 0; }


.cert-verifica { position: absolute; right: 4mm; bottom: 3mm; display: flex; align-items: flex-end; gap: 2mm; max-width: 70%; }
.cert-verifica div { font: 6.5pt/1.25 system-ui, sans-serif; color: var(--cert-color-texto); text-align: right; overflow-wrap: anywhere; }
.cert-verifica b { display: block; }
.cert-verifica svg { width: 14mm; height: 14mm; flex: none; fill: var(--cert-color-titulo); }


.cert-ninos .cert-verifica { left: 4mm; right: auto; flex-direction: row-reverse; }
.cert-ninos .cert-verifica div { text-align: left; }


.doc-transcribir { margin-top: 6px; }





.anotar { display: grid; gap: 16px; padding: 16px; max-width: 620px; }
.anotar .mut { color: var(--muted); font-size: 12.5px; font-weight: 400; }
.anotar input, .anotar select, .anotar textarea {
width: 100%; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px;
font-size: 16px; background: var(--card); color: var(--text); font-family: inherit; min-height: 44px;
}
.anotar input:focus, .anotar select:focus, .anotar textarea:focus { outline: 2px solid var(--borde-azul); border-color: var(--accent); }
.anotar-campo { display: grid; gap: 6px; }


.anotar [hidden], .anotar-pagina [hidden] { display: none; }
.anotar-campo > span, .anotar-monto > span:first-child, .anotar-grupo legend {
font-size: 13px; font-weight: 700; color: var(--texto-2);
}
.anotar-grupo { border: none; margin: 0; padding: 0; min-width: 0; display: grid; gap: 8px; }
.anotar-grupo legend { padding: 0; margin-bottom: 8px; }


.anotar-tipo { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.anotar-tipo button {
display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 64px;
border: 2px solid var(--border); background: var(--card); color: var(--texto-2);
border-radius: 12px; font-family: inherit; font-size: 17px; font-weight: 700; line-height: 1.2; cursor: pointer;
}
.anotar-tipo button small { font-size: 12px; font-weight: 600; color: var(--muted); }
.anotar-tipo button[data-tipo="Ingreso"].on { background: var(--tinte-verde-fuerte); border-color: var(--success); color: var(--texto-verde); }
.anotar-tipo button[data-tipo="Egreso"].on { background: var(--tinte-rojo-fuerte); border-color: var(--danger); color: var(--texto-rojo); }
.anotar-tipo button.on small { color: inherit; }


.anotar-monto { display: grid; gap: 6px; }
.anotar-monto-caja { position: relative; display: block; }
.anotar-monto-caja > span {
position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
font-size: 24px; font-weight: 700; color: var(--muted); pointer-events: none;
}
.anotar .anotar-monto input {
font-size: 28px; font-weight: 700; padding: 10px 14px 10px 38px; min-height: 58px;
font-variant-numeric: tabular-nums; border-width: 2px;
}
.anotar-pagina.es-egreso .anotar-monto input:focus { border-color: var(--danger); outline-color: var(--borde-rojo); }


.anotar-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.anotar-chips button {
min-height: 44px; padding: 8px 14px; border-radius: 999px; cursor: pointer;
border: 1px solid var(--borde-fuerte); background: var(--card); color: var(--texto-2);
font-family: inherit; font-size: 14.5px; font-weight: 600; line-height: 1.2;
}
.anotar-chips button.on { background: var(--accent); border-color: var(--accent); color: #fff; }
.anotar-chips button.anotar-mas { border-style: dashed; color: var(--texto-accion); }
.anotar-chips input[type="date"] { width: auto; flex: 1 1 160px; }

.anotar-comprobante { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }
.anotar-comprobante .btn { min-height: 44px; font-size: 14.5px; cursor: pointer; }
.anotar-notas > summary { cursor: pointer; color: var(--texto-accion); font-weight: 600; font-size: 14px; min-height: 44px; display: flex; align-items: center; }
.anotar-notas > summary::before { content: '▸'; margin-right: 6px; }
.anotar-notas[open] > summary::before { content: '▾'; }
.anotar-notas textarea { margin-top: 8px; min-height: 64px; }
.anotar .form-error { padding: 0; }
.anotar .form-error:empty { display: none; }



.anotar-guardar {
position: sticky; bottom: 0; z-index: 3; max-width: 620px; margin-top: 12px; padding: 8px 0;
background: var(--bg);
}


.anotar-guardar .btn { width: 100%; min-height: 48px; font-size: 17px; background: var(--success); }
.anotar-pagina.es-egreso .anotar-guardar .btn { background: var(--danger); }
.anotar-guardar .btn:disabled { opacity: 0.6; cursor: wait; }


.anotar-hechos { max-width: 620px; margin-top: 14px; }
.anotar-hechos .toolbar { gap: 6px 8px; }
ul.anotar-lista { list-style: none; margin: 0; padding: 0; }
ul.anotar-lista li { border-bottom: 1px solid var(--border); }
ul.anotar-lista li:last-child { border-bottom: none; }
ul.anotar-lista a {
display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px;
color: var(--text); text-decoration: none; min-height: 44px; align-items: center;
}
ul.anotar-lista a span { min-width: 0; overflow-wrap: anywhere; }
ul.anotar-lista b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.anotar-completo {
max-width: 620px; margin: 14px 0 0; font-size: 14px;
display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px;
}
.anotar-completo a { color: var(--texto-accion); padding: 6px 0; }
@media (max-width: 560px) {
.anotar { padding: 14px 12px; gap: 14px; }
}




.rapido-valor > span { font-size: 18px; }
.anotar .rapido-valor input { padding-left: 30px; font-variant-numeric: tabular-nums; }
.rapido-mas { display: grid; gap: 12px; margin-top: 8px; }
.rapido-persona { display: grid; gap: 8px; }
.rapido-persona-elegida {
display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; min-height: 48px;
padding: 8px 8px 8px 14px; border: 2px solid var(--accent); border-radius: 12px; background: var(--card);
}
.rapido-persona-elegida b { flex: 1 1 12em; min-width: 0; overflow-wrap: anywhere; font-size: 16px; }
.rapido-persona-elegida .btn { min-height: 40px; }
ul.rp-lista {
list-style: none; margin: 0; padding: 0; overflow: hidden;
border: 1px solid var(--border); border-radius: 12px; background: var(--card);
}
ul.rp-lista li + li { border-top: 1px solid var(--border); }
ul.rp-lista button {
display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 2px 10px; width: 100%;
min-height: 48px; padding: 10px 14px; border: none; background: none; color: var(--text);
font-family: inherit; font-size: 15px; text-align: left; cursor: pointer;
}
ul.rp-lista button span { min-width: 0; overflow-wrap: anywhere; font-weight: 600; }
ul.rp-lista button small { color: var(--muted); font-size: 12.5px; }
ul.rp-lista button:hover, ul.rp-lista button:focus-visible { background: var(--tinte-azul); }
ul.rp-lista button:focus-visible { outline: 2px solid var(--borde-azul); outline-offset: -2px; }
ul.rp-lista .rp-nuevo { color: var(--texto-accion); font-weight: 600; }
ul.rp-lista li.rp-vacio { padding: 12px 14px; color: var(--muted); font-size: 13.5px; }




.cfg-sec-lista {
list-style: none; margin: 6px 0 8px; padding: 0;
border: 1px solid var(--border); border-radius: 10px; background: var(--card);
}
.cfg-sec-lista li { display: flex; align-items: center; justify-content: space-between; gap: 6px 10px; min-height: 48px; padding: 4px 6px 4px 12px; }
.cfg-sec-lista li + li { border-top: 1px solid var(--border); }
.cfg-sec-nombre { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; font-weight: 600; }
.cfg-sec-botones { display: flex; gap: 4px; flex: none; }
.cfg-sec-botones .btn { min-width: 40px; min-height: 40px; padding: 4px 8px; }
li.cfg-sec-vacio { padding: 12px; font-size: 13px; }
.cfg-sec-agregar { max-width: 420px; }






.anotar-fijo {
display: block; min-height: 44px; padding: 10px 12px; border: 1px dashed var(--border); border-radius: 10px;
background: var(--superficie); color: var(--text); font-weight: 600; overflow-wrap: anywhere;
}


.anotar-tipo.tres { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.anotar-tipo.tres button { min-height: 60px; font-size: 15px; padding: 6px 4px; overflow-wrap: anywhere; }
.anotar-tipo.tres button > span { font-size: 20px; line-height: 1; }
.anotar-tipo button[data-estado].on { background: var(--tinte-azul); border-color: var(--accent); color: var(--texto-accion); }





.datos-para-poner {
margin-top: 8px; padding: 10px; border: 1px dashed var(--border); border-radius: 10px;
background: var(--bg); display: grid; gap: 8px;
}
.datos-para-poner:not([open]) { gap: 0; padding: 4px 10px; }




.datos-para-poner:not([open]) .dpp-grupo { display: none; }
.datos-para-poner .dpp-titulo {
min-height: 36px; display: flex; align-items: center; cursor: pointer; list-style: none;
font-size: 13px; font-weight: 700; color: var(--texto-accion);
}
.datos-para-poner .dpp-titulo::-webkit-details-marker { display: none; }
.datos-para-poner[open] .dpp-titulo { min-height: 30px; font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.6px; }



.datos-para-poner .dpp-grupo { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.datos-para-poner .dpp-nombre { flex: none; font-size: 12px; font-weight: 600; color: var(--muted); margin-right: 2px; }
.datos-para-poner .dpp-fichas { display: contents; }
.datos-para-poner .dpp-ficha {
min-height: 36px; padding: 6px 12px; border-radius: 999px; font-size: 14px;
border: 1px solid var(--border); background: var(--card); color: var(--texto-accion); cursor: pointer;
}
.datos-para-poner .dpp-ficha:hover, .datos-para-poner .dpp-ficha:focus-visible { border-color: var(--accent); background: var(--tinte-azul); }
.datos-para-poner .dpp-ficha:active { transform: scale(0.97); }

.wa-formato { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0 8px; }
.wa-formato button {
min-width: 40px; min-height: 40px; padding: 4px 8px; border-radius: 8px; font-size: 17px;
border: 1px solid var(--border); background: var(--card); color: var(--text); cursor: pointer;
}
.wa-formato button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.wa-formato .waf-separa { width: 1px; align-self: stretch; background: var(--border); margin: 0 2px; }

.hoja-en-vivo {
position: sticky; top: 0; z-index: 15; margin: 0 0 14px; padding: 8px 10px 10px;
background: var(--card); border: 1px solid var(--border); border-radius: 12px;
box-shadow: 0 6px 14px -10px var(--border);
}
.hoja-en-vivo .hev-cab { display: flex; align-items: center; gap: 8px; }
.hoja-en-vivo .hev-nota { flex: 1; font-size: 12px; color: var(--muted); }
.hoja-en-vivo .hev-marco { margin-top: 8px; display: flex; justify-content: center; overflow: hidden; }
.hoja-en-vivo.plegada .hev-marco { display: none; }
.hoja-en-vivo .hev-hoja { overflow: hidden; flex: none; }



.hoja-en-vivo .hev-hoja .cert-sheet { width: var(--cert-ancho); max-width: none; height: var(--cert-alto); min-height: 0; }




.hoja-en-vivo .hev-hoja .cert-sheet .cert-inner { min-height: 100%; display: flex; flex-direction: column; }
.hoja-en-vivo .hev-hoja .cert-firmas { margin-top: auto; }
.hoja-en-vivo .hev-hoja .cert-fecha,
.hoja-en-vivo .hev-hoja .cn-emision,
.hoja-en-vivo .hev-hoja .cert-epigrafe,
.hoja-en-vivo .hev-hoja .cert-pie { flex: none; }




.hoja-en-vivo .hev-hoja .print-sheet { zoom: var(--hev-escala, 1); margin: 0; }


.hoja-en-vivo.hoja-a-medida {
position: fixed; left: -100000px; top: 0; margin: 0; padding: 0; border: 0;
box-shadow: none; visibility: hidden; pointer-events: none;
}





.form-pestanas { padding: 0 16px; }
.form-pestanas .pestanas { margin-top: 4px; }
.form-bloques.en-pestanas .form-bloque > legend { display: none; }
.form-bloques.en-pestanas .form-bloque { padding-top: 6px; }
@media (max-width: 900px) {
.form-pestanas { padding: 0 12px; }
}





@media (max-width: 700px) {
.perm-grupo.cerrado .pg-cab .chip { display: none; }
}


.panel-pestana > .sigue-pestana { display: block; margin: 12px 0 0 auto; min-height: 36px; }




























@media (max-width: 900px) {
:is(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=color], [type=hidden]), select, textarea):not(.anotar-monto-caja *, .asistir-escribir *) {
font-size: 16px;
}

#plCuerpo { font-size: 16px; }
}





.side-salir { display: none; }
@media (max-width: 700px) {
#logoutBtn { display: none; }
.side-salir {
display: flex; align-items: center; gap: 10px; width: 100%;
padding: 12px 16px; font: inherit; font-size: 15px; text-align: left;
color: var(--sidebar-fg); background: none; border: 0; border-left: 3px solid transparent; cursor: pointer;
}
.side-salir .ic { width: 20px; text-align: center; }
.topbar .tb-espacio { display: none; }
.iglesia-local, .iglesia-local.elegible { flex: 1 1 0; min-width: 56px; max-width: fit-content; }
}


.marca-toque { display: inline-flex; position: relative; vertical-align: middle; cursor: pointer; }


table.grid.prefs-avisos td.canal { position: relative; }
.canal-toque::after { content: ''; position: absolute; inset: 0; cursor: pointer; }
.cfg-buscar input {
padding: 9px 12px; border: 1px solid var(--border); border-radius: 8px; min-height: 40px;
background: var(--card); color: var(--text); font: inherit; font-size: 14px;
}
.cfg-buscar input:focus { outline: 2px solid var(--borde-azul); border-color: var(--accent); }
@media (max-width: 700px) {






table.grid-lista .marca-toque { padding: 9px 10px 9px 9px; margin: -9px -10px -9px -9px; }
.fld.check label { padding: 10px 0; }
.toolbar label.ver-blancos, .cfg-solo { min-height: 40px; }
table.grid.prefs-avisos td.canal:not(.fijo) { min-height: 40px; }
.refbuscar .rb-x {
top: 0; bottom: 0; right: 0; min-width: 44px; padding: 0;
display: inline-flex; align-items: center; justify-content: center;
}
.anotar-completo a { display: inline-flex; align-items: center; min-height: 40px; padding: 0; }
.ayuda-capitulos a { padding: 10px 8px; }
}


@media (min-width: 1600px) {
.content { max-width: 1560px; }
}




#content > .resumen-cifras[id]:empty, #content > .treasury-summary[id]:empty { min-height: 64px; }
@media (max-width: 560px) {
#content > .resumen-cifras[id]:empty, #content > .treasury-summary[id]:empty { min-height: 50px; }
}





.cm-cuerpo { display: grid; grid-template-columns: minmax(250px, 320px) minmax(0, 1fr); gap: 16px; align-items: start; }
.cm-lista .toolbar input[type="search"] { flex: 1; min-width: 0; }
.cm-lista .cm-filtros { border-top: 0; padding-top: 0; }
.cm-lista .cm-filtros select { flex: 1 1 120px; min-width: 0; }
.cm-lista ul.rp-lista { border: 0; border-radius: 0; max-height: 60vh; overflow-y: auto; }
.cm-lista ul.rp-lista li.cm-elegido button { background: var(--tinte-azul); }
.cm-lista ul.rp-lista button small { flex-basis: 100%; }
.cm-pie { padding: 8px 14px 12px; font-size: 12.5px; color: var(--muted); }
.cm-pie:empty { display: none; }
.cm-ultimo { padding: 8px 14px 12px; font-size: 12.5px; color: var(--texto-verde); border-top: 1px solid var(--border); }
.cm-persona .cm-vacio { padding: 40px 18px; color: var(--muted); text-align: center; font-size: 14px; }
.cm-persona .cm-cab { padding: 14px 18px 4px; }
.cm-persona .cm-cab h3 { margin: 0; font-size: 20px; }
.cm-persona .cm-cab .fc-sub { color: var(--muted); font-size: 13px; margin-top: 3px; }
.cm-persona .cm-cab .fc-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.cm-persona .cm-cab .fc-badges .badge { white-space: normal; text-align: left; }
.cm-ayuda { margin: 0; padding: 4px 18px 0; font-size: 13px; color: var(--muted); }

.cm-cierre { margin: -6px 0 14px; font-size: 13px; color: var(--muted); }
.cm-cierre-iglesias { margin: 0 0 10px; padding-left: 20px; }
.cm-cierre-nombres { font-size: 13px; color: var(--muted); }
.cm-form .form-bloques { padding: 12px 18px; }

.cm-form .fld.cm-cambiado input, .cm-form .fld.cm-cambiado select, .cm-form .fld.cm-cambiado textarea {
border-color: var(--accent); background: var(--tinte-azul);
}
.cm-form .fld.cm-cambiado > label::after { content: " · cambiado"; color: var(--texto-accion); }
.cm-iglesia, .cm-menores {
margin: 0 18px 12px; padding: 10px 14px; border-radius: 10px; background: var(--superficie);
font-size: 13px; line-height: 1.5; overflow-wrap: anywhere;
}
.cm-iglesia a { color: var(--texto-accion); white-space: nowrap; }
.cm-menores label, .cm-menores .cm-menor { display: inline-flex; align-items: center; gap: 6px; margin: 2px 12px 2px 0; min-height: 28px; }
.cm-menores input[type="checkbox"] { width: 18px; height: 18px; margin: 0; }
.cm-persona .form-error { margin: 0 18px; }
.cm-persona .form-error:empty { display: none; }

.cm-acciones {
position: sticky; bottom: 0; z-index: 4;
display: flex; gap: 10px; flex-wrap: wrap; align-items: center;
padding: 12px 18px; border-top: 1px solid var(--border);
background: var(--card); border-radius: 0 0 var(--radius) var(--radius); box-shadow: var(--shadow);
}
.cm-acciones .btn { min-height: 42px; }
.cm-acciones .cm-como { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); }
.cm-acciones .cm-como select { min-height: 42px; padding: 6px 10px; border: 1px solid var(--border); border-radius: 8px; font-size: 13.5px; }
.cm-volver { display: none; margin-bottom: 8px; }
.cm-membresia { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 16px; padding: 6px 18px 10px; }




:root { --cm-barra-alto: 134px; }
@media (max-width: 700px) {
.cm-cuerpo { grid-template-columns: 1fr; }
.cm-cuerpo.con-persona .cm-lista { display: none; }
.cm-volver { display: inline-flex; }
.cm-lista ul.rp-lista { max-height: none; }






.cm-persona .cm-cab { min-height: var(--cm-barra-alto); box-sizing: border-box; }


.cm-acciones { gap: 8px 10px; }
.cm-acciones .cm-como { flex: 1 1 40%; min-width: 0; }
.cm-acciones .cm-como-rotulo { display: none; }
.cm-acciones .cm-como select { flex: 1; min-width: 0; font-size: 16px; }
.cm-acciones .spacer { display: none; }


.cm-acciones .cm-ficha { display: none; }
.cm-acciones > .btn, .cm-acciones > a.btn { flex: 1 1 40%; text-align: center; white-space: nowrap; }


.cm-acciones > .btn.cm-principal { flex: 1 1 50%; white-space: normal; }
}


.in-tarjeta { margin-top: 18px; }
.in-form .form-bloques { padding: 12px 18px; }
.in-acciones { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; padding: 12px 18px 18px; }
.in-acciones .btn { min-height: 42px; }
.in-persona-dice { margin-top: 10px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.in-persona-dice:empty { display: none; }
.in-rut-dice { margin-top: 6px; font-size: 13px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.in-rut-dice:empty { display: none; }
@media (max-width: 700px) {
.in-acciones .btn { flex: 1 1 45%; min-height: 44px; }
}












.fam-card + .fam-card { margin-top: 14px; }
.fam-rol {
display: inline-block; min-width: 54px; font-size: 11.5px; color: var(--muted);
text-transform: uppercase; letter-spacing: .3px;
}
.fam-guardados li.fam-sin { color: var(--muted); }
.fam-guardados a, .fam-sug-que a { color: var(--texto-accion); text-decoration: none; font-weight: 600; }
.fam-deducidos li.fam-abre { cursor: pointer; }
.fam-deducidos li.fam-fuera b { font-weight: 500; }
.fam-nota { margin: 0; padding: 8px 14px 12px; font-size: 12.5px; color: var(--muted); line-height: 1.5; }
.fam-como { padding: 12px 2px 0; }
.fam-vacio { padding: 12px 14px 14px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.fam-dlg .fld + .fld { margin-top: 10px; }
.fam-dlg .refbuscar .rb-lista { max-height: 190px; overflow-y: auto; }
.fam-que-queda { margin: 10px 0 0; font-size: 12.5px; color: var(--muted); line-height: 1.5; }
.fam-sugerencias { list-style: none; margin: 0; padding: 0; }
.fam-sug {
display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center;
padding: 10px 14px; border-bottom: 1px solid var(--border);
}
.fam-sug:last-child { border-bottom: 0; }
.fam-sug-que { flex: 1 1 260px; font-size: 14px; line-height: 1.5; }
.fam-sug-por { flex: 1 1 100%; font-size: 12.5px; color: var(--muted); }
.fam-sug-botones { display: flex; gap: 6px; flex-wrap: wrap; }
.fam-sug-botones .btn { margin: 0; }
.fam-pie { padding: 8px 14px 12px; font-size: 12.5px; color: var(--muted); }


.fam-varias {
display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; justify-content: space-between;
padding: 8px 14px; border-bottom: 1px solid var(--border); font-size: 13px;
}
.fam-varias[hidden] { display: none; }
.fam-varias label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.fam-varias .btn { margin: 0; }
.fam-sug-marca { margin: 0 6px 0 0; vertical-align: -2px; cursor: pointer; }
.fam-sug-motivo, .fam-no-enlazadas {
font-size: 12.5px; line-height: 1.45; padding: 6px 10px; border-radius: 6px;
color: var(--texto-ambar); background: var(--tinte-ambar); border: 1px solid var(--borde-ambar);
}
.fam-sug-motivo { flex: 1 1 100%; }
.fam-no-enlazadas { margin: 10px 14px; padding: 10px 12px; }
.fam-no-enlazadas[hidden] { display: none; }
.fam-no-enlazadas ul { margin: 6px 0 8px; padding-left: 18px; }
.fam-no-enlazadas li + li { margin-top: 4px; }
.fam-no-enlazadas .btn { margin: 0; }
@media (max-width: 480px) {
.fam-sug-botones { flex: 1 1 100%; }
.fam-sug-botones .btn { flex: 1; }
.fam-varias .btn { flex: 1 1 100%; }
}




.arbol-card { overflow-x: auto; }
.arbol { position: relative; padding: 18px 14px 6px; min-width: 0; }
.arbol-lineas { position: absolute; left: 0; top: 0; pointer-events: none; }
.arbol-lineas path { fill: none; stroke: var(--borde-fuerte); stroke-width: 1.5; }
.arbol-lineas path.pareja { stroke: var(--accent); }
.arbol-nivel { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 0 26px; }
.arbol-nivel:last-child { padding-bottom: 10px; }
.arbol-titulo { font-size: 11.5px; color: var(--muted); text-transform: uppercase; letter-spacing: .4px; }
.arbol-cajas { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 18px; }
.arbol-caja {
position: relative; min-width: 150px; max-width: 210px; padding: 8px 12px; border-radius: 10px;
border: 1.5px solid var(--border); background: var(--card); text-align: center; font-size: 13px;
}
.arbol-caja.abre { cursor: pointer; }
.arbol-caja.abre:hover, .arbol-caja.abre:focus-visible { border-color: var(--accent); box-shadow: var(--shadow); outline: none; }
.arbol-caja.yo { border-color: var(--accent); background: var(--tinte-azul); }
.arbol-caja.fuera { border-style: dashed; color: var(--texto-2); }
.arbol-nombre { font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.arbol-dato { font-size: 12px; color: var(--muted); margin-top: 2px; }
.arbol-dato .badge { font-size: 11px; }
@media (max-width: 700px) {
.arbol-lineas { display: none; }
.arbol-cajas { justify-content: flex-start; }
.arbol-nivel { align-items: flex-start; padding-bottom: 14px; }
.arbol-caja { min-width: 0; flex: 1 1 140px; }
}
@media print {
.arbol-card { box-shadow: none; border: 0; }
.arbol-caja.abre:hover { box-shadow: none; }
}





.fm-filtros { gap: 10px; }
.fm-filtros input[type="search"] { flex: 1 1 220px; min-width: 0; }
.fm-filtros select { min-width: 150px; }
.fm-chips-fila { padding-top: 10px; padding-bottom: 10px; }
.fm-tabla td.col-primera a { color: var(--texto-accion); text-decoration: none; }
.fm-tabla .fm-quienes { font-size: 12.5px; color: var(--muted); margin-top: 2px; line-height: 1.45; }
.fm-tabla tbody tr { cursor: pointer; }
.fm-tabla td.num { white-space: nowrap; }
.fm-tabla td .badge { margin: 1px 2px 1px 0; }
.stats a.stat { text-decoration: none; color: inherit; }
.fm-gente li { padding: 6px 14px; line-height: 1.55; }
.fm-gente li .badge { font-size: 11px; vertical-align: middle; }
.fm-gente li .fam-rol { min-width: 88px; }
.ra-hogar { margin-top: 8px; font-size: 13px; line-height: 1.5; }
.ra-hogar a { color: var(--texto-accion); }
.wa-casa-casilla { display: flex; align-items: center; gap: 8px; font-weight: 600; cursor: pointer; }
.wa-casa-casilla input { width: 20px; height: 20px; margin: 0; }
.cm-familia label { display: inline-flex; align-items: center; gap: 6px; }
@media (max-width: 700px) {
.fm-filtros select { flex: 1 1 45%; min-width: 0; }
.fm-tabla td.num { white-space: normal; }
.fm-gente li .fam-rol { min-width: 0; margin-right: 6px; }
}
@media print {
.fm-membrete h2 { margin: 10px 0 2px; font-size: 18px; }
.fm-membrete p { margin: 0 0 12px; font-size: 12.5px; }
.fm-tabla tbody tr { cursor: auto; }
}





.informe-mensual .aviso { margin-bottom: 12px; }
.im-gastos { margin-bottom: 4px; }
.im-gastos td.col-primera a { color: var(--texto-accion); text-decoration: none; font-weight: 600; }
.im-gastos td.col-primera .mut { display: block; font-size: 12.5px; font-weight: 400; margin-top: 2px; }
.im-gastos tr.im-falta td { background: var(--tinte-rojo); }
.im-gastos tr.im-no-toca td { color: var(--muted); }
.im-gastos td a { color: var(--texto-accion); }
.im-gastos td .badge { white-space: nowrap; }
.im-acciones { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.im-acciones .btn { margin: 0; white-space: normal; text-align: left; }
.im-firmas { margin-top: 56px; }
@media (max-width: 700px) {
.im-acciones .btn { flex: 1 1 100%; justify-content: center; text-align: center; }
.im-firmas { gap: 18px; }
}
@media print {
.im-gastos tr.im-falta td { background: none; font-weight: 600; }
.im-firmas { margin-top: 64px; break-inside: avoid; }
.informe-mensual .aviso { break-inside: avoid; }
}
