/* ──────────────────────────────────────────────────────────────────────
   Panel de la Parroquia de Santa Bárbara
   Tema del admin de Django: marfil, burdeos y tipografía serif.
   ────────────────────────────────────────────────────────────────────── */

:root, html[data-theme="light"] {
  --rojo: #a00303;
  --rojo-hondo: #7a0d0d;
  --rojo-suave: #f7ecea;
  --oro: #b08d57;
  --marfil: #faf7f2;
  --papel: #ffffff;
  --tinta: #2a2421;
  --tinta-suave: #6e645c;
  --linea: #ebe4da;
  --sombra: 0 1px 2px rgba(42, 36, 33, .04), 0 6px 24px rgba(42, 36, 33, .06);
  --radio: 14px;
  --serif: "EB Garamond", "Iowan Old Style", Georgia, serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Variables del admin de Django */
  --primary: var(--rojo);
  --secondary: var(--rojo-hondo);
  --accent: var(--oro);
  --primary-fg: #fff;
  --body-fg: var(--tinta);
  --body-bg: var(--marfil);
  --body-quiet-color: var(--tinta-suave);
  --body-medium-color: #4a423d;
  --body-loud-color: #1a1513;
  --header-color: var(--tinta);
  --header-branding-color: var(--rojo);
  --header-bg: var(--papel);
  --header-link-color: var(--tinta);
  --breadcrumbs-fg: var(--tinta-suave);
  --breadcrumbs-link-fg: var(--rojo);
  --breadcrumbs-bg: transparent;
  --link-fg: var(--rojo);
  --link-hover-color: var(--rojo-hondo);
  --link-selected-fg: var(--rojo-hondo);
  --hairline-color: var(--linea);
  --border-color: var(--linea);
  --darkened-bg: #f4efe7;
  --selected-bg: #f3e6e3;
  --selected-row: #fbf3f1;
  --button-fg: #fff;
  --button-bg: var(--rojo);
  --button-hover-bg: var(--rojo-hondo);
  --default-button-bg: var(--rojo-hondo);
  --default-button-hover-bg: #5c0909;
  --close-button-bg: #8a8079;
  --close-button-hover-bg: #6e645c;
  --delete-button-bg: #b3261e;
  --delete-button-hover-bg: #8c1d17;
  --object-tools-fg: var(--rojo);
  --object-tools-bg: var(--papel);
  --object-tools-hover-bg: var(--rojo-suave);
  --message-success-bg: #eef5ea;
  --message-warning-bg: #fbf3e2;
  --message-error-bg: #fbeaea;
  --font-family-primary: var(--sans);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --rojo: #e0786d; --rojo-hondo: #f0a097; --rojo-suave: #3a2120; --oro: #c9a874;
    --marfil: #161211; --papel: #1f1a18; --tinta: #f1ebe4; --tinta-suave: #a89d93; --linea: #342b28;
    --sombra: 0 1px 2px rgba(0,0,0,.3), 0 8px 28px rgba(0,0,0,.35);
    --primary: #a00303; --secondary: #7a0d0d; --primary-fg: #fff;
    --body-fg: var(--tinta); --body-bg: var(--marfil); --body-quiet-color: var(--tinta-suave);
    --body-medium-color: #d4cbc2; --body-loud-color: #fff;
    --header-bg: var(--papel); --header-color: var(--tinta); --header-link-color: var(--tinta);
    --header-branding-color: var(--rojo); --breadcrumbs-fg: var(--tinta-suave); --breadcrumbs-link-fg: var(--rojo);
    --link-fg: var(--rojo); --link-hover-color: var(--rojo-hondo); --link-selected-fg: var(--rojo-hondo);
    --hairline-color: var(--linea); --border-color: var(--linea); --darkened-bg: #1b1615;
    --selected-bg: #3a2120; --selected-row: #2a1c1b; --button-bg: #a00303; --button-hover-bg: #c0271e;
    --default-button-bg: #7a0d0d; --default-button-hover-bg: #a00303;
    --object-tools-fg: var(--rojo); --object-tools-bg: var(--papel); --object-tools-hover-bg: var(--rojo-suave);
    --message-success-bg: #1e2a1c; --message-warning-bg: #2d2617; --message-error-bg: #2f1a19;
  }
}
html[data-theme="dark"] {
  --rojo: #e0786d; --rojo-hondo: #f0a097; --rojo-suave: #3a2120; --oro: #c9a874;
  --marfil: #161211; --papel: #1f1a18; --tinta: #f1ebe4; --tinta-suave: #a89d93; --linea: #342b28;
  --sombra: 0 1px 2px rgba(0,0,0,.3), 0 8px 28px rgba(0,0,0,.35);
  --primary: #a00303; --secondary: #7a0d0d; --primary-fg: #fff;
  --body-fg: var(--tinta); --body-bg: var(--marfil); --body-quiet-color: var(--tinta-suave);
  --body-medium-color: #d4cbc2; --body-loud-color: #fff;
  --header-bg: var(--papel); --header-color: var(--tinta); --header-link-color: var(--tinta);
  --header-branding-color: var(--rojo); --breadcrumbs-fg: var(--tinta-suave); --breadcrumbs-link-fg: var(--rojo);
  --link-fg: var(--rojo); --link-hover-color: var(--rojo-hondo); --link-selected-fg: var(--rojo-hondo);
  --hairline-color: var(--linea); --border-color: var(--linea); --darkened-bg: #1b1615;
  --selected-bg: #3a2120; --selected-row: #2a1c1b; --button-bg: #a00303; --button-hover-bg: #c0271e;
  --default-button-bg: #7a0d0d; --default-button-hover-bg: #a00303;
  --object-tools-fg: var(--rojo); --object-tools-bg: var(--papel); --object-tools-hover-bg: var(--rojo-suave);
  --message-success-bg: #1e2a1c; --message-warning-bg: #2d2617; --message-error-bg: #2f1a19;
}

/* ── Base ─────────────────────────────────────────────────────────────── */
html, body { background: var(--marfil); }
body { font-family: var(--sans); font-size: 14px; letter-spacing: -.003em; -webkit-font-smoothing: antialiased; }
h1, h2, .module h2, .module caption { font-family: var(--serif); }
#content h1 { font-family: var(--serif); font-weight: 600; font-size: 2.1rem; letter-spacing: -.01em; color: var(--tinta); margin: .2rem 0 1.4rem; }
#content h2 { font-family: var(--serif); font-weight: 600; }
a:link, a:visited { text-decoration: none; }
.suave { color: var(--tinta-suave); }
::selection { background: var(--rojo-suave); }

/* ── Cabecera ─────────────────────────────────────────────────────────── */
#header {
  background: var(--papel); color: var(--tinta);
  border-bottom: 1px solid var(--linea); box-shadow: 0 1px 0 rgba(160, 3, 3, .9) inset, var(--sombra);
  padding: 12px 32px; position: sticky; top: 0; z-index: 50;
}
#header::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px;
  background: linear-gradient(90deg, transparent, var(--oro) 20%, var(--rojo) 50%, var(--oro) 80%, transparent);
  opacity: .55;
}
#branding { display: flex; align-items: center; }
#site-name { margin: 0; }
#site-name a.marca { display: flex; align-items: center; gap: 14px; color: var(--tinta) !important; }
#site-name img { height: 46px; width: auto; }
#site-name .nombre { display: flex; flex-direction: column; line-height: 1.05; }
#site-name .nombre strong { font-family: var(--serif); font-weight: 700; font-size: 1.5rem; color: var(--rojo); letter-spacing: .005em; }
#site-name .nombre small { font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; color: var(--tinta-suave); margin-top: 3px; }
#user-tools { font-size: .78rem; letter-spacing: .04em; text-transform: none; color: var(--tinta-suave); }
#user-tools a { border-bottom: none !important; color: var(--tinta) !important; }
#user-tools a:hover { color: var(--rojo) !important; }

.nav-panel { display: flex; gap: 4px; margin-left: 28px; }
.nav-panel a {
  display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px;
  color: var(--tinta) !important; font-weight: 500; font-size: .84rem; transition: background .15s, color .15s;
}
.nav-panel a:hover, .nav-panel a.activo { background: var(--rojo-suave); color: var(--rojo) !important; }
.nav-panel svg { width: 15px; height: 15px; }

/* ── Migas de pan ─────────────────────────────────────────────────────── */
div.breadcrumbs {
  background: transparent; color: var(--tinta-suave); padding: 18px 32px 0; font-size: .8rem;
  letter-spacing: .01em; border: none;
}
div.breadcrumbs a { color: var(--rojo); }

/* ── Contenido ────────────────────────────────────────────────────────── */
#content { padding: 18px 32px 48px; }
#main { background: var(--marfil); }
.main > #nav-sidebar { background: var(--papel); border-right: 1px solid var(--linea); }
#nav-sidebar .module th a, #nav-sidebar .module caption a { font-weight: 500; }
#nav-sidebar .current-model { background: var(--rojo-suave); }
#nav-filter { border-radius: 10px; border: 1px solid var(--linea); background: var(--marfil); padding: 8px 10px; }
.toggle-nav-sidebar { background: var(--papel); border-right: 1px solid var(--linea); color: var(--rojo); }

.module {
  background: var(--papel); border: 1px solid var(--linea); border-radius: var(--radio);
  box-shadow: var(--sombra); overflow: hidden; margin-bottom: 22px;
}
.module h2, .module caption, .inline-group h2 {
  background: transparent; color: var(--tinta); font-family: var(--serif); font-weight: 700;
  font-size: 1.15rem; letter-spacing: .01em; text-transform: none; padding: 14px 18px 10px;
  border-bottom: 1px solid var(--linea);
}
.module caption a.section, .module h2 a { color: var(--rojo); }
.module table { width: 100%; }
.module th, .module td { padding: 10px 18px; border-bottom: 1px solid var(--linea); }
.module tr:last-child th, .module tr:last-child td { border-bottom: none; }
.module th a { color: var(--tinta); font-weight: 500; }
.module th a:hover { color: var(--rojo); }
.addlink, .changelink, .viewlink { font-size: .8rem; }

/* ── Listados ─────────────────────────────────────────────────────────── */
#changelist { background: var(--papel); border: 1px solid var(--linea); border-radius: var(--radio); box-shadow: var(--sombra); overflow: hidden; }
#changelist .changelist-form-container { padding: 0; }
#changelist #toolbar { background: transparent; border-bottom: 1px solid var(--linea); padding: 14px 18px; margin: 0; }
#changelist #toolbar form input[type="text"] { border-radius: 10px; padding: 8px 12px; min-width: 280px; border: 1px solid var(--linea); background: var(--marfil); }
#changelist #toolbar form input[type="submit"] { border-radius: 10px; }
#changelist .actions { background: var(--marfil); border-bottom: 1px solid var(--linea); padding: 10px 18px; color: var(--tinta-suave); }
#changelist .actions select { border-radius: 8px; }
#changelist table thead th { background: var(--marfil); color: var(--tinta-suave); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; border-bottom: 1px solid var(--linea); }
#changelist table thead th a { color: var(--tinta-suave); }
#result_list tbody tr { transition: background .12s; }
#result_list tbody tr:hover { background: var(--selected-row); }
#result_list td, #result_list th { padding: 11px 14px; border-bottom: 1px solid var(--linea); vertical-align: middle; }
#result_list th a { font-weight: 600; }
#changelist .paginator { background: var(--marfil); border-top: 1px solid var(--linea); padding: 12px 18px; color: var(--tinta-suave); }
#changelist-filter { background: var(--papel); border: 1px solid var(--linea); border-radius: var(--radio); box-shadow: var(--sombra); overflow: hidden; }
#changelist-filter h2 { font-family: var(--serif); font-size: 1.1rem; font-weight: 700; text-transform: none; letter-spacing: 0; background: transparent; color: var(--tinta); border-bottom: 1px solid var(--linea); padding: 12px 16px; }
#changelist-filter h3 { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-suave); margin: 16px 16px 6px; }
#changelist-filter li { padding: 3px 16px; }
#changelist-filter li.selected a { color: var(--rojo) !important; font-weight: 600; }
.changelist-filter-clear a { padding: 10px 16px; display: block; }
.xfull { width: auto; }
ul.object-tools { margin-top: -62px; }
ul.object-tools li a, .object-tools a:link, .object-tools a:visited {
  background: var(--rojo); color: #fff !important; border-radius: 999px; padding: 8px 16px; font-weight: 600;
  letter-spacing: .02em; font-size: .78rem; text-transform: none; box-shadow: 0 4px 14px rgba(160, 3, 3, .22);
}
ul.object-tools li a:hover { background: var(--rojo-hondo); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) ul.object-tools li a { background: #a00303; }
  :root:not([data-theme="light"]) ul.object-tools li a:hover { background: #c0271e; }
}
html[data-theme="dark"] ul.object-tools li a { background: #a00303; }
.date-hierarchy, .xfull ul.toplinks { padding: 12px 18px; border-bottom: 1px solid var(--linea); }

/* ── Formularios ──────────────────────────────────────────────────────── */
fieldset.module { padding: 0; }
.form-row { padding: 14px 18px; border-bottom: 1px solid var(--linea); }
.aligned label { color: var(--tinta-suave); font-weight: 500; }
.aligned .help, .help, p.help, form .aligned div.help { color: var(--tinta-suave); font-size: .78rem; }
input[type=text], input[type=password], input[type=email], input[type=url], input[type=number], input[type=tel],
input[type=date], input[type=time], textarea, select, .vTextField {
  border: 1px solid var(--linea); border-radius: 9px; padding: 8px 10px; background: var(--papel); color: var(--tinta);
  transition: border-color .15s, box-shadow .15s;
}
input:focus, textarea:focus, select:focus {
  outline: none; border-color: var(--rojo); box-shadow: 0 0 0 3px rgba(160, 3, 3, .12);
}
.submit-row {
  background: var(--papel); border: 1px solid var(--linea); border-radius: var(--radio); box-shadow: var(--sombra);
  padding: 14px 18px;
}
@media (min-width: 1025px) { .submit-row { position: sticky; bottom: 12px; z-index: 5; } }
fieldset.module h2.fieldset-heading, fieldset .fieldset-heading, .inline-group .inline-heading {
  font-family: var(--serif); font-weight: 700; font-size: 1.15rem; color: var(--tinta); text-transform: none;
  letter-spacing: .01em; background: transparent; padding: 14px 18px 10px; margin: 0; border-bottom: 1px solid var(--linea);
}
.button, input[type=submit], input[type=button], .submit-row input, a.button {
  border-radius: 10px; padding: 10px 18px; font-weight: 600; letter-spacing: .01em;
}
.submit-row a.deletelink { border-radius: 10px; }
.inline-group { border-radius: var(--radio); overflow: hidden; border: 1px solid var(--linea); box-shadow: var(--sombra); background: var(--papel); }
.inline-group .tabular td, .inline-group .tabular th { padding: 9px 12px; }
.inline-group .tabular tr.add-row td { background: var(--marfil); }
.errornote { border-radius: 12px; border: 1px solid #e3b6b2; }
ul.messagelist li { border-radius: 12px; margin-bottom: 8px; padding: 12px 16px 12px 44px; background-position: 16px 50%; }
.selector-chosen h2, .selector-available h2 { border-radius: 10px 10px 0 0; }

.boton-accion {
  display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px;
  border: 1px solid var(--rojo); color: var(--rojo) !important; font-weight: 600; font-size: .82rem;
  transition: background .15s, color .15s;
}
.boton-accion:hover { background: var(--rojo); color: #fff !important; }
.lista-docs { margin: 10px 0 0; padding: 0; list-style: none; }
.lista-docs li { padding: 3px 0; list-style: none; }
.miniatura { width: 44px; height: 44px; object-fit: cover; border-radius: 8px; border: 1px solid var(--linea); }
.foto-bien { max-width: 360px; border-radius: 12px; border: 1px solid var(--linea); }
.ficha-enlace { padding: 6px 0; }
.dato-web { padding: 3px 0; }
.dato-web .suave { display: inline-block; min-width: 130px; }
textarea.editor-plantilla { width: 100%; font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 12.5px; line-height: 1.55; }
.tabla-huecos th { text-align: left; padding: 12px 0 4px; font-family: var(--serif); font-size: 1.05rem; color: var(--rojo); }
.tabla-huecos td { padding: 3px 12px 3px 0; border: none; }
.tabla-huecos code { background: var(--marfil); border: 1px solid var(--linea); border-radius: 6px; padding: 2px 6px; }
.tabla-cambios { border-collapse: collapse; min-width: 520px; }
.tabla-cambios th, .tabla-cambios td { padding: 6px 12px; border-bottom: 1px solid var(--linea); text-align: left; }
.tabla-cambios .antes { color: #a33; text-decoration: line-through; text-decoration-color: rgba(170, 50, 50, .35); }
.tabla-cambios .despues { color: #2f6b3a; }

/* Línea de tiempo (histórico de la persona) */
.linea-tiempo { list-style: none; margin: 0; padding: 0 0 0 18px; border-left: 2px solid var(--linea); }
.linea-tiempo li { position: relative; padding: 4px 0 12px 14px; list-style: none; display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; }
.linea-tiempo li::before { content: ""; position: absolute; left: -25px; top: 9px; width: 10px; height: 10px; border-radius: 50%; background: var(--papel); border: 2px solid var(--rojo); }
.linea-tiempo .fecha { font-variant-numeric: tabular-nums; color: var(--tinta-suave); font-size: .8rem; min-width: 84px; }
.linea-tiempo a { font-weight: 600; }

/* ── Portada del panel ───────────────────────────────────────────────── */
.portada { display: grid; gap: 22px; }
.saludo {
  position: relative; overflow: hidden; border-radius: 20px; padding: 30px 34px;
  background: radial-gradient(1200px 300px at 100% 0%, rgba(176, 141, 87, .16), transparent 60%), var(--papel);
  border: 1px solid var(--linea); box-shadow: var(--sombra);
  display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center;
}
.saludo::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--color-liturgico, var(--rojo)); }
.saludo .fecha { font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--tinta-suave); }
.saludo h1 { font-family: var(--serif) !important; font-size: 2.4rem !important; margin: 6px 0 4px !important; line-height: 1.05; }
.saludo .liturgia { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; color: var(--tinta-suave); font-size: .9rem; }
.saludo .liturgia strong { color: var(--tinta); font-family: var(--serif); font-size: 1.2rem; font-weight: 600; }
.saludo img { height: 92px; opacity: .92; }
.chip {
  display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px;
  background: var(--marfil); border: 1px solid var(--linea); font-size: .74rem; color: var(--tinta-suave); font-weight: 500;
}
.punto { width: 9px; height: 9px; border-radius: 50%; display: inline-block; box-shadow: 0 0 0 1px rgba(0,0,0,.12) inset; }

.tarjetas { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; }
.tarjeta {
  display: block; background: var(--papel); border: 1px solid var(--linea); border-radius: 16px; padding: 18px 20px;
  box-shadow: var(--sombra); transition: transform .15s, box-shadow .15s, border-color .15s; color: var(--tinta) !important;
}
.tarjeta:hover { transform: translateY(-2px); border-color: rgba(160, 3, 3, .35); box-shadow: 0 10px 30px rgba(42, 36, 33, .1); }
.tarjeta .etiqueta { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--tinta-suave); }
.tarjeta .valor { font-family: var(--serif); font-size: 2.6rem; font-weight: 600; line-height: 1.1; margin: 6px 0 2px; color: var(--tinta); }
.tarjeta.aviso .valor { color: var(--rojo); }
.tarjeta.aviso { border-color: rgba(160, 3, 3, .3); background: linear-gradient(180deg, var(--rojo-suave), var(--papel) 70%); }
.tarjeta .detalle { font-size: .8rem; color: var(--tinta-suave); }

.columnas { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 22px; }
.panel-caja { background: var(--papel); border: 1px solid var(--linea); border-radius: 16px; box-shadow: var(--sombra); padding: 6px 0; }
.panel-caja > h2 { font-family: var(--serif) !important; font-size: 1.25rem !important; font-weight: 700; margin: 0 !important; padding: 14px 20px 10px; }
.agenda { list-style: none; margin: 0; padding: 0; }
.agenda li { list-style: none; display: grid; grid-template-columns: 84px 1fr; gap: 14px; padding: 12px 20px; border-top: 1px solid var(--linea); }
.agenda .hora { font-variant-numeric: tabular-nums; color: var(--tinta-suave); font-size: .82rem; }
.agenda .hora strong { display: block; color: var(--tinta); font-size: .92rem; }
.agenda a { font-weight: 600; color: var(--tinta) !important; }
.agenda a:hover { color: var(--rojo) !important; }
.agenda .vacio { color: var(--tinta-suave); padding: 16px 20px; border-top: 1px solid var(--linea); display: block; }
.accesos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 8px 20px 18px; }
.accesos a {
  display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--linea);
  background: var(--marfil); color: var(--tinta) !important; font-weight: 500; transition: border-color .15s, background .15s;
}
.accesos a::before { content: "+"; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--rojo); color: #fff; font-weight: 700; font-size: .9rem; }
.accesos a:hover { border-color: var(--rojo); background: var(--rojo-suave); }

.modulos { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.modulos .module { margin: 0; }
.dashboard #content { max-width: 1440px; }
.dashboard .module table th { width: 100%; }

/* ── Calendario interno ──────────────────────────────────────────────── */
.cal-cabecera { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
.cal-cabecera h1 { margin: 0 !important; }
.cal-nav { display: flex; gap: 8px; }
.cal-nav a { padding: 8px 14px; border-radius: 999px; border: 1px solid var(--linea); background: var(--papel); color: var(--tinta) !important; font-weight: 500; }
.cal-nav a:hover { border-color: var(--rojo); color: var(--rojo) !important; }
.leyenda { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.calendario { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--papel); border: 1px solid var(--linea); border-radius: 16px; overflow: hidden; box-shadow: var(--sombra); table-layout: fixed; }
.calendario th { background: var(--marfil); color: var(--tinta-suave); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; padding: 10px; border-bottom: 1px solid var(--linea); font-weight: 600; }
.calendario td { vertical-align: top; height: 118px; padding: 8px; border-right: 1px solid var(--linea); border-bottom: 1px solid var(--linea); position: relative; }
.calendario td:last-child { border-right: none; }
.calendario tr:last-child td { border-bottom: none; }
.calendario td.fuera { background: var(--marfil); opacity: .55; }
.calendario td.hoy { background: var(--rojo-suave); }
.calendario .num { display: flex; justify-content: space-between; align-items: center; font-variant-numeric: tabular-nums; font-weight: 600; font-size: .85rem; }
.calendario td.hoy .num span:first-child { background: var(--rojo); color: #fff; border-radius: 999px; padding: 1px 8px; }
.calendario .lit { font-size: .66rem; color: var(--tinta-suave); line-height: 1.25; margin: 3px 0 5px; min-height: 1em; font-style: italic; }
.calendario .item { display: block; font-size: .72rem; line-height: 1.3; padding: 3px 7px; margin-bottom: 3px; border-radius: 6px; background: var(--marfil); border-left: 3px solid var(--tinta-suave); color: var(--tinta) !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendario .item:hover { background: var(--rojo-suave); }
.item.misa, .item.fiesta, .item.sacramento { border-color: #a00303; }
.item.catequesis { border-color: #b08d57; }
.item.cita { border-color: #2f6f8f; }
.item.intencion { border-color: #6b3fa0; }
.item.turno { border-color: #3e7d4a; }
.item.consejo { border-color: #1f2a44; }
.item.retiro, .item.reunion, .item.cultura, .item.otro { border-color: #8a8079; }

/* ── Estadísticas / contingencia / emitir ────────────────────────────── */
.barra-herramientas { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 18px; }
.barra-herramientas select { min-width: 120px; }
.estadisticas { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 18px; }
.estadisticas td.valor { text-align: right; font-family: var(--serif); font-size: 1.25rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.estadisticas tr.sub td { color: var(--tinta-suave); padding-left: 34px; font-size: .86rem; }
.estadisticas tr.sub td.valor { font-size: 1rem; }
.aviso-caja { background: var(--papel); border: 1px solid var(--linea); border-left: 4px solid var(--oro); border-radius: 12px; padding: 14px 18px; margin-bottom: 18px; color: var(--tinta-suave); }
.plantillas { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin-bottom: 26px; }
.plantilla { background: var(--papel); border: 1px solid var(--linea); border-radius: 14px; padding: 16px 18px; box-shadow: var(--sombra); display: flex; flex-direction: column; gap: 10px; }
.plantilla h3 { font-family: var(--serif); font-size: 1.2rem; margin: 0; }
.plantilla .acciones { display: flex; gap: 8px; margin-top: auto; align-items: center; }

@media (max-width: 1024px) {
  .columnas { grid-template-columns: 1fr; }
  .nav-panel { display: none; }
  #header { padding: 10px 16px; }
  #content { padding: 14px 16px 40px; }
  div.breadcrumbs { padding: 14px 16px 0; }
  .saludo { grid-template-columns: 1fr; padding: 22px; }
  .saludo img { display: none; }
  .calendario td { height: 84px; padding: 4px; }
  .calendario .lit { display: none; }
  ul.object-tools { margin-top: 0; }
}

/* En modo oscuro el escudo rojo va sobre marfil para que no se pierda */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) #site-name img,
  :root:not([data-theme="light"]) .saludo img { background: #f6f0e6; border-radius: 50%; padding: 6px; }
}
html[data-theme="dark"] #site-name img,
html[data-theme="dark"] .saludo img { background: #f6f0e6; border-radius: 50%; padding: 6px; }

/* El admin subraya los enlaces del contenido; en los componentes propios no hace falta */
.tarjeta, .tarjeta *, .agenda a, .accesos a, .calendario .item, .cal-nav a, .boton-accion, .nav-panel a,
#site-name a, .linea-tiempo a, .plantilla a, ul.object-tools a, .module caption a, .module th a, .module td a.addlink,
.module td a.changelink, .module td a.viewlink, #nav-sidebar a {
  text-decoration: none !important;
}

/* Django repite el nombre de cada fila encima de las tablas en línea; la propia fila ya lo muestra */
.inline-group .tabular td.original p { display: none; }
.inline-group .tabular tr.has_original td { padding-top: 9px; }
