/* NutriConsultorio · tema moderno
 * Se carga después de styles.css y de los estilos incrustados en index.html.
 * Solo redefine el tema "Claro" (sin clase theme-*) y la forma de los componentes;
 * los demás temas (oscuro, océano, lavanda…) conservan sus propios colores.
 *
 * Dirección: consultorio sereno y legible durante toda la jornada.
 *  - Fondo gris azulado muy claro, superficies blancas, un solo color de acción (verde azulado).
 *  - Una sola familia tipográfica (Figtree), pesos 500–700 para jerarquía.
 *  - Radios: 8 px controles, 14 px tarjetas. Sombras suaves y casi planas.
 *  - Lo memorable: la línea de tiempo clínica y la agenda del día. El resto, silencioso. */

:root {
  --bg: #f1f4f7; --s: #ffffff; --s2: #f6f8fa; --tx: #111c26; --mu: #566574; --ln: #dfe5eb;
  --pr: #0f766e; --prd: #0a5a54; --on: #ffffff; --ps: #e0f2f0; --gd: #2bb3a3; --rd: #b42318;
  --ok: #17803d; --warn: #b45309; --info: #1d6fa5; --viol: #5b4bc4;
  --sh: 0 1px 2px rgba(16, 28, 38, .05), 0 6px 20px -10px rgba(16, 28, 38, .14);
  --r-ctl: 8px; --r-card: 14px;
  --serif: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

body { font-family: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; background: var(--bg); letter-spacing: -.003em; }
:focus-visible { outline: 3px solid var(--gd); outline-offset: 2px; border-radius: 6px; }

/* ---------- Estructura general ---------- */
h1 { font-size: 28px; font-weight: 700; letter-spacing: -.025em; }
h3 { font-size: 17px; font-weight: 650; letter-spacing: -.01em; }
h4 { margin: 0 0 8px; font-size: 14px; font-weight: 650; }
.muted { font-size: 13px; }
.card { border-radius: var(--r-card); box-shadow: var(--sh); padding: 20px; }
.top { margin-bottom: 22px; }

/* Barra lateral: tinta oscura y plana (solo en el tema claro; los demás temas mantienen la suya) */
body:not([class*="theme-"]) aside { background: #0f1c2b; border-right: 0; box-shadow: none; color: #aebccb; }
body:not([class*="theme-"]) aside .brand i { background: var(--gd); color: #0f1c2b; box-shadow: none; }
body:not([class*="theme-"]) aside .brand small { color: #7f93a8; letter-spacing: .02em; text-transform: none; font-size: 11px; }
nav a { border-radius: 10px; padding: 10px 12px; font-weight: 500; }
body:not([class*="theme-"]) nav a:hover { background: rgba(255, 255, 255, .06); }
body:not([class*="theme-"]) nav a.on { background: rgba(43, 179, 163, .16); color: #fff; box-shadow: none; }
body:not([class*="theme-"]) nav a.on .ic { color: var(--gd); }

/* ---------- Controles ---------- */
.in, .f input, .f select, .f textarea { border-radius: var(--r-ctl); padding: 10px 12px; }
.in:focus, .f input:focus, .f select:focus, .f textarea:focus { border-color: var(--pr); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pr) 22%, transparent); }
.btn { border-radius: var(--r-ctl); font-weight: 600; padding: 9px 14px; }
.btn:hover { transform: none; }
.btn.sm { padding: 5px 10px; font-size: 12.5px; }
.btn.sec { border-color: var(--ln); }
.tag { border-radius: 6px; font-weight: 600; }
th { text-transform: none; letter-spacing: 0; font-size: 12.5px; font-weight: 600; }
.chip { box-shadow: none; }
.empty { border-radius: var(--r-card); background: var(--s2); border-style: solid; color: var(--mu); }

/* ---------- Expediente: cabecera sin adornos ---------- */
.profile-hero { border-radius: var(--r-card); background: var(--pr); box-shadow: var(--sh); }
.profile-hero:after, .profile-hero:before { display: none; }
body.theme-violet .profile-hero, body.theme-forest .profile-hero { background: var(--pr); }

/* ---------- Estados (agenda, panel) ---------- */
.est { --c: var(--mu); display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 99px; font-size: 12px; font-weight: 600; white-space: nowrap;
  color: var(--c); background: color-mix(in srgb, var(--c) 12%, var(--s)); border: 1px solid color-mix(in srgb, var(--c) 28%, var(--ln)); }
.est .ic { width: 12px; height: 12px; }
.est-programada { --c: var(--warn); } .est-confirmada { --c: var(--info); } .est-atendida { --c: var(--ok); } .est-cancelada { --c: var(--rd); } .est-rec { --c: var(--pr); }

/* ---------- Panel principal inteligente ---------- */
.panel-hero { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.panel-hero h2 { margin: 0 0 2px; font-size: 22px; font-weight: 700; letter-spacing: -.02em; }
.panel-hero p { margin: 0; color: var(--mu); max-width: 62ch; }
.panel-hero .btn { text-decoration: none; }
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.kpi { background: var(--s); border: 1px solid var(--ln); border-radius: var(--r-card); padding: 14px 16px; box-shadow: var(--sh); display: grid; gap: 2px; border-left: 4px solid var(--ln); }
.kpi b { font-size: 30px; line-height: 1.1; font-weight: 700; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.kpi-l { font-size: 13px; color: var(--mu); font-weight: 500; }
.kpi-warn { border-left-color: var(--warn); }
.kpi-alert { border-left-color: var(--rd); }
.panel-cols { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; margin-bottom: 18px; align-items: start; }
.sub-h { margin: 18px 0 8px; color: var(--mu); font-weight: 600; font-size: 13px; }
.hoy-list, .alert-list, .ult-list, .prox-list, .rec-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.hoy-item { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: 4px 12px; align-items: center; padding: 10px 12px; border: 1px solid var(--ln); border-radius: 10px; background: var(--s); }
.hoy-item time { font-weight: 700; font-variant-numeric: tabular-nums; font-size: 15px; }
.hoy-main { display: grid; min-width: 0; }
.hoy-main b, .hoy-main span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hoy-item .row-actions { grid-column: 2 / -1; margin-top: 2px; }
.hoy-item.es-siguiente { border-color: var(--pr); background: var(--ps); box-shadow: 0 0 0 1px var(--pr) inset; }
.hoy-item.hecha { opacity: .62; }
.prox-list li { display: flex; gap: 8px; flex-wrap: wrap; align-items: baseline; }
.alerta { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--ln); background: var(--s); border-left: 4px solid var(--info); }
.alerta div { display: grid; min-width: 0; }
.alerta { --c: var(--info); }
.alerta-i { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: color-mix(in srgb, var(--c) 14%, var(--s)); color: var(--c); }
.alerta-alta { --c: var(--rd); border-left-color: var(--rd); }
.alerta-media { --c: var(--warn); border-left-color: var(--warn); }
.ult-list li { display: grid; grid-template-columns: 96px minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 10px; align-items: center; padding: 8px 2px; border-bottom: 1px solid var(--ln); }
.ult-list li:last-child { border-bottom: 0; }

/* ---------- Línea de tiempo clínica ---------- */
#cronoPanel { margin-bottom: 18px; }
.crono-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 14px; }
.crono-bar .in { margin: 0; max-width: 280px; flex: 1 1 200px; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-f { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 99px; border: 1px solid var(--ln); background: var(--s); color: var(--mu); font: inherit; font-size: 13px; font-weight: 500; cursor: pointer; }
.chip-f .ic { width: 14px; height: 14px; }
.chip-f small { font-size: 11px; font-weight: 700; background: var(--s2); border-radius: 99px; padding: 0 6px; color: var(--mu); }
.chip-f[aria-pressed="true"] { background: var(--ps); color: var(--pr); border-color: var(--pr); }
.chip-f[aria-pressed="true"] small { background: var(--s); color: var(--pr); }
.tl-grupo { margin-bottom: 16px; }
.tl-grupo > h4 { color: var(--mu); font-weight: 600; font-size: 13px; margin: 0 0 8px 46px; }
.tl { list-style: none; margin: 0; padding: 0; position: relative; }
.tl:before { content: ""; position: absolute; left: 17px; top: 6px; bottom: 6px; width: 2px; background: var(--ln); }
.tl-item { position: relative; display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; padding-bottom: 12px; --c: var(--pr); }
.tl-nodo { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--s); border: 2px solid var(--c); color: var(--c); z-index: 1; }
.tl-nodo .ic { width: 17px; height: 17px; }
.tl-consulta { --c: var(--pr); } .tl-cita { --c: var(--viol); }
.tl-cuerpo { background: var(--s2); border: 1px solid var(--ln); border-radius: 10px; padding: 10px 14px; min-width: 0; }
.tl-cab { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; align-items: baseline; }
.tl-cab b { overflow-wrap: anywhere; }
.tl-cuerpo p { margin: 4px 0 0; overflow-wrap: anywhere; }
.tl-pie { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.tl-tag { background: transparent; color: var(--c); border: 1px solid var(--c); padding: 1px 8px; font-size: 12px; }
.tl-futuro .tl-nodo { border-style: dashed; }
.tl-futuro .tl-cuerpo { border-style: dashed; background: transparent; }

/* ---------- Agenda avanzada ---------- */
.ag-form-wrap { margin-bottom: 18px; }
.ag-form-wrap > summary { cursor: pointer; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: var(--r-ctl); background: var(--pr); color: var(--on); font-weight: 600; list-style: none; }
.ag-form-wrap > summary::-webkit-details-marker { display: none; }
.ag-form-wrap[open] > summary { background: var(--s); color: var(--tx); border: 1px solid var(--ln); margin-bottom: 12px; }
.ag-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; align-items: start; }
.ag-list { display: grid; gap: 10px; }
.ag-dia h4 { color: var(--mu); font-weight: 600; margin: 10px 0 6px; }
.cita { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 12px; background: var(--s); border: 1px solid var(--ln); border-radius: var(--r-card); padding: 12px 14px; box-shadow: var(--sh); margin-bottom: 8px; }
.cita-hora { font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; padding-top: 2px; }
.cita-t { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.cita p { margin: 4px 0 0; overflow-wrap: anywhere; }
.cita .row-actions, .rec .row-actions, .hoy-item .row-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; justify-content: flex-start; }
.rec .est { justify-self: start; }
#agViewMode, #agFocusDate { flex: 0 0 auto; width: auto; min-width: 150px; }
#agFilter { flex: 0 0 auto; width: auto; min-width: 180px; }
.cita-vencida { border-left: 4px solid var(--rd); }
.cita-cancelada { opacity: .6; }
.ag-side { display: grid; gap: 16px; position: sticky; top: 16px; }
.cal-g { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; margin-top: 10px; }
.cal-h { text-align: center; font-size: 12px; color: var(--mu); font-weight: 600; padding: 2px 0; }
.cal-d { position: relative; aspect-ratio: 1; border: 1px solid transparent; background: transparent; border-radius: 8px; font: inherit; font-size: 13px; color: var(--tx); cursor: pointer; }
.cal-d:hover { background: var(--s2); }
.cal-d.tiene { font-weight: 700; background: var(--ps); }
.cal-d.hoy { border-color: var(--pr); }
.cal-d.sel { background: var(--pr); color: var(--on); }
.cal-d i { position: absolute; right: 3px; bottom: 1px; font-style: normal; font-size: 10px; font-weight: 700; opacity: .8; }
.segs { display: inline-flex; border: 1px solid var(--ln); border-radius: var(--r-ctl); overflow: hidden; }
.seg { border: 0; background: var(--s); color: var(--mu); font: inherit; font-size: 12.5px; font-weight: 600; padding: 5px 10px; cursor: pointer; }
.seg.on { background: var(--pr); color: var(--on); }
.rec { display: grid; gap: 6px; padding: 10px 12px; border: 1px solid var(--ln); border-radius: 10px; background: var(--s); }
.rec-main { display: grid; }
.rec-ok { background: var(--s2); }
.rec .row-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.rec .btn { text-decoration: none; }
.ag-notif { display: flex; gap: 8px; align-items: flex-start; margin-top: 14px; font-size: 13px; color: var(--mu); }
.ag-notif input { margin-top: 3px; }

/* ---------- Adaptación a pantallas pequeñas ---------- */
@media (max-width: 1100px) { .ag-layout { grid-template-columns: 1fr; } .ag-side { position: static; } }
@media (max-width: 900px) { .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .panel-cols { grid-template-columns: 1fr; } }
@media (max-width: 560px) {
  .ult-list li { grid-template-columns: minmax(0, 1fr) auto; row-gap: 2px; } .ult-list li > :nth-child(1) { grid-column: 1 / -1; } .ult-list li > :nth-child(2), .ult-list li > :nth-child(3) { grid-column: 1; } .ult-list li > button { grid-column: 2; grid-row: 2 / span 2; }
  .alerta { grid-template-columns: 34px minmax(0, 1fr); } .alerta .btn { grid-column: 2; justify-self: start; }
  .cita { grid-template-columns: 1fr; gap: 4px; } .kpi b { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
@media print { .ag-side, .crono-bar, .chips { display: none; } }

/* ---------- Temas adicionales ---------- */
.theme-preview-indigo { --preview-side: #1e1b4b; --preview-card: #fbfbff; --preview-accent: #4f46e5; background: #eeeefb; }
.theme-preview-coral { --preview-side: #43201a; --preview-card: #fffdfb; --preview-accent: #c2410c; background: #fbefe8; }
.theme-preview-graphite { --preview-side: #111827; --preview-card: #ffffff; --preview-accent: #374151; background: #eceef0; }
.theme-preview-sky { --preview-side: #0c3a57; --preview-card: #ffffff; --preview-accent: #f5a623; background: #e8f3fb; }
.theme-preview-midnight { --preview-side: #070b17; --preview-card: #1b2543; --preview-accent: #7aa2ff; background: #0d1326; }
.theme-preview-jungle { --preview-side: #07100c; --preview-card: #1a2d22; --preview-accent: #5fd38d; background: #0e1914; }

body.theme-indigo { --bg: #f1f2fb; --s: #fff; --s2: #f6f6fd; --tx: #1b1d3a; --mu: #5b5f80; --ln: #e0e2f3; --pr: #4f46e5; --prd: #3d35c0; --on: #fff; --ps: #e8e7fc; --gd: #8b83f5; --rd: #b42318; color-scheme: light; }
body.theme-coral { --bg: #fbf3ef; --s: #fffdfb; --s2: #fdf6f2; --tx: #3a2118; --mu: #7d5f55; --ln: #f0ddd4; --pr: #c2410c; --prd: #9a3412; --on: #fff; --ps: #fde8de; --gd: #f08a5d; --rd: #b42318; color-scheme: light; }
body.theme-graphite { --bg: #f0f1f3; --s: #fff; --s2: #f6f7f8; --tx: #16191d; --mu: #5b626b; --ln: #dcdfe3; --pr: #374151; --prd: #1f2937; --on: #fff; --ps: #e5e7eb; --gd: #9ca3af; --rd: #b42318; color-scheme: light; }
body.theme-sky { --bg: #eef6fc; --s: #fff; --s2: #f4f9fd; --tx: #0f2a3d; --mu: #4f6b80; --ln: #d8e8f3; --pr: #0369a1; --prd: #075985; --on: #fff; --ps: #dff0fb; --gd: #f5a623; --rd: #b42318; color-scheme: light; }
body.theme-midnight { --bg: #0b1020; --s: #131a30; --s2: #18213b; --tx: #e8ecf8; --mu: #a3aecb; --ln: #26304f; --pr: #7aa2ff; --prd: #a9c3ff; --on: #07132e; --ps: #1a2646; --gd: #f2c14e; --rd: #ff8a8a; --sh: 0 8px 24px rgba(0, 0, 0, .35); color-scheme: dark; }
body.theme-jungle { --bg: #0c1612; --s: #132019; --s2: #172a20; --tx: #e6f2ea; --mu: #a2bcae; --ln: #234034; --pr: #5fd38d; --prd: #8be8b0; --on: #06170e; --ps: #17382a; --gd: #e3c45f; --rd: #ff8a8a; --sh: 0 8px 24px rgba(0, 0, 0, .35); color-scheme: dark; }
body.theme-indigo aside { background: #1e1b4b; } body.theme-coral aside { background: #43201a; } body.theme-graphite aside { background: #111827; }
body.theme-sky aside { background: #0c3a57; } body.theme-midnight aside { background: #070b17; border-right: 1px solid #1c2440; } body.theme-jungle aside { background: #07100c; border-right: 1px solid #16281f; }
body.theme-indigo aside nav a.on, body.theme-coral aside nav a.on, body.theme-graphite aside nav a.on, body.theme-sky aside nav a.on, body.theme-midnight aside nav a.on, body.theme-jungle aside nav a.on { background: rgba(255, 255, 255, .12); color: #fff; }
body.theme-midnight .profile-hero { background: linear-gradient(115deg, #1d2b55, #16213f); }
body.theme-jungle .profile-hero { background: linear-gradient(115deg, #14402e, #0f2a1f); }

/* Temas oscuros nuevos: mismos ajustes que el tema Oscuro existente */
body.theme-dark, body.theme-black, body.theme-midnight, body.theme-jungle { --ok: #5fd38d; --warn: #f2b25c; --info: #7cb8ee; --viol: #b3a6ff; }
body.theme-midnight .muted, body.theme-jungle .muted, body.theme-midnight .help, body.theme-jungle .help { color: var(--mu); }
body.theme-midnight .btn.sec, body.theme-jungle .btn.sec { background: var(--s); color: var(--tx); border-color: var(--ln); }
body.theme-midnight .btn.sec:hover, body.theme-jungle .btn.sec:hover, body.theme-midnight tr:hover td, body.theme-jungle tr:hover td { background: var(--s2); }
body.theme-midnight #toast, body.theme-jungle #toast { background: #e7ecf8; color: #101a33; }

.theme-preview-light { --preview-side: #0f1c2b; --preview-card: #ffffff; --preview-accent: #0f766e; background: #eef2f6; }


/* =====================================================================
   Acceso (inicio de sesión) · diseño "Refugio"
   Cálido, sereno y legible. Escena ilustrada (persona adulta y niña/niño)
   junto a un formulario limpio. Paleta en config.js → LOGIN { paleta }:
   "salvia" (predeterminada) | "marino" | "ciruela" | "arena".
   Vista previa sin tocar archivos: ?paleta=marino
   El acceso es independiente del tema elegido dentro de la aplicación.
   ===================================================================== */
#login, #login[data-palette="salvia"] {
  --lg-s1:#e3eee5; --lg-s2:#f6ead7; --lg-ink:#17302a; --lg-mu:#566a62; --lg-ln:#d9dfd6; --lg-field:#ffffff; --lg-bg:#fbf9f4;
  --lg-pr:#2f6b57; --lg-prd:#1f4d3e; --lg-ac:#c8664a; --lg-on:#ffffff; --lg-focus:#2f6b57;
  --lg-arch:#cfe2d4; --lg-arch2:#e4f0e6; --lg-sun:#f2c879; --lg-ground:#d4dccf; --lg-bench:#8a6a4b; --lg-adult:#2f6b57; --lg-child:#c8664a; --lg-skin1:#e0b08c; --lg-skin2:#efc4a3; --lg-hair1:#3b2a22; --lg-hair2:#6a3b27;
}
#login[data-palette="marino"] { --lg-s1:#e1eaf4; --lg-s2:#f6ebdc; --lg-ink:#16263d; --lg-mu:#566679; --lg-ln:#d8dee7; --lg-bg:#fafaf7; --lg-pr:#24497a; --lg-prd:#173358; --lg-ac:#d98a54; --lg-focus:#24497a; --lg-arch:#cbdcee; --lg-arch2:#e2ecf6; --lg-sun:#f4cf86; --lg-ground:#d3dbe6; --lg-bench:#7d6a58; --lg-adult:#24497a; --lg-child:#d98a54; }
#login[data-palette="ciruela"] { --lg-s1:#efe3f0; --lg-s2:#f8e9dd; --lg-ink:#2a1a31; --lg-mu:#6a5a70; --lg-ln:#e4dbe6; --lg-bg:#fcf9f7; --lg-pr:#5a2a63; --lg-prd:#401c48; --lg-ac:#d9835a; --lg-focus:#5a2a63; --lg-arch:#e6d2e8; --lg-arch2:#f2e6f3; --lg-sun:#f2c68b; --lg-ground:#e2d6e4; --lg-bench:#85674f; --lg-adult:#5a2a63; --lg-child:#d9835a; }
#login[data-palette="arena"] { --lg-s1:#f2e8d6; --lg-s2:#e4eadf; --lg-ink:#33281b; --lg-mu:#6f6252; --lg-ln:#e3dac9; --lg-bg:#fcfaf5; --lg-pr:#8a5a2b; --lg-prd:#63401d; --lg-ac:#3f7a63; --lg-focus:#8a5a2b; --lg-arch:#ead9bd; --lg-arch2:#f4eadb; --lg-sun:#f0c476; --lg-ground:#e0d6c2; --lg-bench:#6f5a45; --lg-adult:#8a5a2b; --lg-child:#3f7a63; }

#login {
  --lg-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --lg-sans: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  position: fixed; inset: 0; z-index: 2147482500; overflow: auto; color-scheme: light;
  display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  background: var(--lg-bg); color: var(--lg-ink); font-family: var(--lg-sans);
}
#login[hidden] { display: none; }

/* ---------- Escena ---------- */
.lg-scene {
  position: relative; isolation: isolate; overflow: hidden; margin: 14px 0 14px 14px; border-radius: 30px;
  display: flex; flex-direction: column; justify-content: space-between; gap: 18px; padding: clamp(26px, 3.6vw, 52px);
  background: radial-gradient(80% 60% at 100% 0%, color-mix(in srgb, var(--lg-sun) 38%, transparent), transparent 70%), linear-gradient(160deg, var(--lg-s1), var(--lg-s2));
}
.lg-scene::before { content: ""; position: absolute; z-index: -1; inset: 0; opacity: .5;
  background-image: radial-gradient(color-mix(in srgb, var(--lg-pr) 22%, transparent) 1px, transparent 1.5px); background-size: 26px 26px;
  -webkit-mask: linear-gradient(200deg, #000, transparent 55%); mask: linear-gradient(200deg, #000, transparent 55%); }
.lg-photo { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lg-scene.has-custom-image::before { opacity: 1; inset: 0; background: linear-gradient(180deg, rgba(10,20,16,.45), rgba(10,20,16,.12) 40%, rgba(10,20,16,.82)); -webkit-mask: none; mask: none; }
.lg-scene.has-custom-image .lg-art { display: none; }
.lg-scene.has-custom-image .lg-kicker, .lg-scene.has-custom-image h1, .lg-scene.has-custom-image .lg-scene-copy p, .lg-scene.has-custom-image .lg-stages li { color: #fff; }
.lg-scene.has-custom-image h1 em { color: #ffd9a8; }

.lg-scene-top { display: flex; align-items: center; gap: 12px; }
.lg-mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; color: var(--lg-on); background: var(--lg-pr); box-shadow: 0 8px 18px -8px color-mix(in srgb, var(--lg-pr) 70%, transparent); }
.lg-mark svg { width: 20px; height: 20px; }
.lg-kicker { font-size: 11.5px; font-weight: 700; letter-spacing: .22em; color: var(--lg-ink); }

.lg-art { width: min(100%, 470px); max-height: 36vh; margin: 0 auto; flex: 0 1 auto; overflow: visible; }
.lg-art .a-ground { fill: var(--lg-ground); } .lg-art .a-arch { fill: var(--lg-arch); } .lg-art .a-arch2 { fill: var(--lg-arch2); }
.lg-art .a-sun { fill: var(--lg-sun); } .lg-art .a-rays { stroke: var(--lg-sun); stroke-width: 5; fill: none; }
.lg-art .a-bench { fill: var(--lg-bench); }
.lg-art .a-adult path:first-child, .lg-art .a-adult rect { fill: var(--lg-adult); }
.lg-art .a-child path:first-child, .lg-art .a-child rect { fill: var(--lg-child); }
.lg-art .a-skin1 { fill: var(--lg-skin1); } .lg-art .a-skin2 { fill: var(--lg-skin2); }
.lg-art .a-hair1 { fill: var(--lg-hair1); } .lg-art .a-hair2 { fill: var(--lg-hair2); }
.lg-art .a-link { stroke: var(--lg-ac); stroke-width: 4; }
.lg-art .a-plant path { fill: color-mix(in srgb, var(--lg-pr) 80%, #fff); stroke: none; }
.lg-art .a-plant path:first-child { fill: none; stroke: color-mix(in srgb, var(--lg-pr) 80%, #fff); stroke-width: 4; stroke-linecap: round; }
.lg-art .a-pot { fill: var(--lg-ac); }
.lg-art .a-books rect { fill: var(--lg-pr); } .lg-art .a-books .b2 { fill: var(--lg-ac); } .lg-art .a-books .b3 { fill: var(--lg-sun); }
.lg-art .a-sun, .lg-art .a-rays { transform-origin: 240px 118px; animation: lg-breathe 6s ease-in-out infinite; }
.lg-art .a-link { stroke-dasharray: 60; stroke-dashoffset: 60; animation: lg-draw 1.4s .5s ease forwards; }
@keyframes lg-breathe { 0%,100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@keyframes lg-draw { to { stroke-dashoffset: 0; } }

.lg-scene-copy { max-width: 540px; }
.lg-scene-copy h1 { margin: 0 0 14px; color: var(--lg-ink); font: 500 clamp(30px, 3.4vw, 50px)/1.08 var(--lg-display); letter-spacing: -.025em; text-wrap: balance; }
.lg-scene-copy h1 em { font-style: italic; color: var(--lg-ac); }
.lg-scene-copy p { max-width: 46ch; margin: 0; color: var(--lg-mu); font-size: clamp(14px, 1.1vw, 16px); line-height: 1.65; }
.lg-stages { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; }
.lg-stages li { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px 7px 11px; border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--lg-ink); background: color-mix(in srgb, #fff 62%, transparent); border: 1px solid color-mix(in srgb, var(--lg-pr) 14%, transparent); backdrop-filter: blur(6px); }
.lg-stages i { width: 9px; height: 9px; border-radius: 50%; }
.lg-stages .s-n { background: var(--lg-ac); } .lg-stages .s-a { background: var(--lg-sun); } .lg-stages .s-d { background: var(--lg-pr); }

/* ---------- Formulario ---------- */
.lg-pane { display: grid; grid-template-rows: minmax(0, 1fr) auto; justify-items: center; min-width: 0; padding: clamp(24px, 4vw, 56px) clamp(20px, 4vw, 60px) 22px; }
.lcard { align-self: center; width: min(400px, 100%); display: grid; gap: 28px; background: none; border: 0; box-shadow: none; padding: 0; animation: lg-in .5s cubic-bezier(.2,.7,.2,1) both; }
.lcard [hidden] { display: none !important; }
.lcard section { display: grid; gap: 18px; animation: lg-in .4s cubic-bezier(.2,.7,.2,1) both; }
#login .lcard .brand { display: flex; align-items: center; padding: 0; gap: 12px; border: 0; color: var(--lg-ink); font: 700 17px/1.2 var(--lg-sans); letter-spacing: -.01em; }
#login .lcard .brand small { display: block; margin-top: 3px; color: var(--lg-mu); font: 600 10px/1 var(--lg-sans); letter-spacing: .16em; text-transform: uppercase; }
#login .lcard .brand .app-brand-fallback { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; font-style: normal; font-size: 20px; color: var(--lg-on); background: linear-gradient(145deg, var(--lg-pr), var(--lg-prd)); box-shadow: 0 8px 18px -8px color-mix(in srgb, var(--lg-pr) 80%, transparent); }
#login .lcard .brand .app-brand-logo { width: 44px; height: 44px; max-width: 44px; max-height: 44px; flex: 0 0 44px; padding: 3px; border-radius: 12px; object-fit: contain; background: #fff; box-shadow: 0 0 0 1px var(--lg-ln); }
#login .lcard .brand .app-brand-fallback[hidden], #login .lcard .brand .app-brand-logo[hidden] { display: none; }

.login-head { display: grid; gap: 8px; }
.login-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--lg-ac); }
.lcard h2 { margin: 0; color: var(--lg-ink); font: 500 clamp(30px, 2.6vw, 38px)/1.1 var(--lg-display); letter-spacing: -.025em; }
.l-help { margin: 0; font-size: 14px; line-height: 1.55; color: var(--lg-mu); }

.lf-field { display: grid; gap: 8px; font-size: 13px; font-weight: 600; color: var(--lg-ink); }
.lf-field label { color: var(--lg-ink); }
.lf-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.inp { position: relative; display: flex; align-items: center; }
.inp .ic { position: absolute; left: 15px; width: 18px; height: 18px; color: var(--lg-mu); pointer-events: none; transition: color .18s; }
.inp:focus-within .ic { color: var(--lg-pr); }
.lcard input:not([type="checkbox"]) { width: 100%; height: 50px; padding: 0 14px; border: 1px solid var(--lg-ln); border-radius: 14px; background: var(--lg-field); color: var(--lg-ink); font: 500 15px var(--lg-sans); transition: border-color .18s, box-shadow .18s; }
.inp input:not(.plain) { padding-left: 44px; padding-right: 46px; }
.lcard input::placeholder { color: color-mix(in srgb, var(--lg-mu) 65%, transparent); font-weight: 400; }
.lcard input:not([type="checkbox"]):hover { border-color: color-mix(in srgb, var(--lg-pr) 40%, var(--lg-ln)); }
.lcard input:not([type="checkbox"]):focus { outline: 0; border-color: var(--lg-focus); box-shadow: 0 0 0 4px color-mix(in srgb, var(--lg-focus) 16%, transparent); }
.lf-check { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 500; color: var(--lg-mu); cursor: pointer; }
.lf-check input { width: 17px; height: 17px; accent-color: var(--lg-pr); }

.pw-toggle { position: absolute; right: 6px; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 10px; background: transparent; color: var(--lg-mu); cursor: pointer; transition: background .15s, color .15s; }
.pw-toggle:hover { background: color-mix(in srgb, var(--lg-pr) 10%, transparent); color: var(--lg-pr); }
.pw-toggle:focus-visible, .l-link:focus-visible, .lcard .btn:focus-visible, .lf-check input:focus-visible { outline: 3px solid color-mix(in srgb, var(--lg-focus) 45%, transparent); outline-offset: 2px; }
.pw-toggle svg { width: 19px; height: 19px; }
.pw-toggle .eye-off, .pw-toggle[aria-pressed="true"] .eye-on { display: none; }
.pw-toggle[aria-pressed="true"] .eye-off { display: block; }

.login-hint { font-size: 12px; font-weight: 600; color: #9a5b0a; }
#lerr, #recoveryRequestMsg, #recoveryVerifyMsg { padding: 11px 13px; border-radius: 12px; font-size: 13px; line-height: 1.45; font-weight: 500; }
#lerr:empty, #recoveryRequestMsg:empty, #recoveryVerifyMsg:empty { display: none; }
#lerr { color: #9f1f14; background: #fdeeec; border: 1px solid #f3c4bf; }
#lerr.shake { animation: lg-shake .4s; }
#recoveryRequestMsg, #recoveryVerifyMsg { color: var(--lg-ink); background: color-mix(in srgb, var(--lg-pr) 7%, #fff); border: 1px solid var(--lg-ln); }

.lcard .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 52px; padding: 0 20px; border: 0; border-radius: 14px; font: 650 15px var(--lg-sans); color: var(--lg-on); cursor: pointer;
  background: linear-gradient(180deg, color-mix(in srgb, var(--lg-pr) 90%, #fff), var(--lg-pr)); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 12px 24px -12px color-mix(in srgb, var(--lg-pr) 85%, transparent); transition: transform .15s, box-shadow .15s, background .15s; }
.lcard .btn:hover { background: linear-gradient(180deg, var(--lg-pr), var(--lg-prd)); transform: translateY(-1px); }
.lcard .btn:active { transform: translateY(0); }
.lcard .btn svg { width: 18px; height: 18px; transition: transform .18s; }
.lcard .btn:hover svg { transform: translateX(3px); }
#lb:disabled, #requestCodeBtn:disabled, #resetPasswordBtn:disabled { opacity: .8; cursor: progress; transform: none; }
#lb:disabled svg { display: none; }
#lb:disabled::after, #requestCodeBtn:disabled::after, #resetPasswordBtn:disabled::after { content: ""; width: 16px; height: 16px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: lg-spin .7s linear infinite; }

.l-link { border: 0; background: none; padding: 4px 2px; font: 600 13px var(--lg-sans); color: var(--lg-pr); cursor: pointer; border-radius: 6px; }
.l-link:hover { color: var(--lg-prd); text-decoration: underline; text-underline-offset: 3px; }
.backLogin { justify-self: center; }

.login-foot { display: flex; align-items: flex-start; justify-content: center; gap: 8px; max-width: 400px; margin: 26px 0 0; font-size: 12px; line-height: 1.5; color: var(--lg-mu); text-align: left; }
.login-foot svg { flex: none; width: 15px; height: 15px; margin-top: 2px; color: var(--lg-pr); }
@keyframes lg-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes lg-spin { to { transform: rotate(360deg); } }
@keyframes lg-shake { 0%,100% { transform: none; } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }

/* ---------- Pantallas medianas y móviles ---------- */
@media (max-height: 760px) and (min-width: 901px) { .lg-art { max-height: 28vh; } .lg-stages { margin-top: 14px; } .lcard { gap: 22px; } }
@media (max-width: 900px) {
  #login { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; align-content: start; }
  .lg-scene { margin: 10px 10px 0; border-radius: 24px; padding: 20px 22px 22px; gap: 14px; }
  .lg-art, .lg-scene-copy p, .lg-stages { display: none; }
  .lg-scene-copy h1 { margin: 0; font-size: clamp(24px, 6.4vw, 32px); }
  .lg-pane { padding: 26px 20px 16px; }
}
@media (max-width: 480px) { .lg-scene { margin: 8px 8px 0; border-radius: 20px; } .lcard { gap: 22px; } .lcard h2 { font-size: 30px; } }
@media (prefers-reduced-motion: reduce) {
  .lcard, .lcard section, .lg-art .a-sun, .lg-art .a-rays { animation: none; }
  .lg-art .a-link { animation: none; stroke-dashoffset: 0; }
  .lcard .btn, .lcard .btn svg, .lcard input { transition: none; }
  #lb:disabled::after, #requestCodeBtn:disabled::after, #resetPasswordBtn:disabled::after { animation-duration: 1.6s; }
}

/* Panel de agenda y calendario: avisos visibles sin generar notificaciones externas */
.agenda-alerts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0 16px}
.agenda-alert{display:flex;flex-direction:column;gap:4px;padding:13px 15px;border:1px solid var(--ln);border-left:4px solid var(--pr);border-radius:13px;background:var(--s);min-width:0}
.agenda-alert b{font-size:.9rem}.agenda-alert span{font-size:.82rem;color:var(--mu);line-height:1.45}
.agenda-alert.danger{border-left-color:#b94b4b;background:color-mix(in srgb,#b94b4b 7%,var(--s))}
.agenda-alert.warning{border-left-color:#b88735;background:color-mix(in srgb,#b88735 8%,var(--s))}
.agenda-alert.info{border-left-color:#397a9b;background:color-mix(in srgb,#397a9b 7%,var(--s))}
.agenda-alert.calm{border-left-color:#47836e}
.upcoming-list{display:grid;gap:0}.upcoming-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;font-weight:700;padding:8px 0;color:var(--tx)}.upcoming-heading span{font-size:.78rem;color:var(--mu);font-weight:500}
.upcoming-row{display:flex;align-items:center;gap:12px;padding:10px 2px;border-top:1px solid var(--ln);min-width:0}.upcoming-date{width:44px;height:48px;flex:0 0 44px;display:grid;place-content:center;text-align:center;border-radius:11px;background:color-mix(in srgb,var(--pr) 9%,var(--s))}.upcoming-date b{font-size:1.15rem;line-height:1.1}.upcoming-date small,.upcoming-info small{font-size:.76rem;color:var(--mu)}.upcoming-info{display:grid;gap:3px;min-width:0;flex:1}.upcoming-info b,.upcoming-info small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-shell{border:1px solid var(--ln);border-radius:16px;padding:12px;background:var(--s);margin-bottom:18px;overflow:hidden}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays{margin-bottom:6px}.calendar-weekdays span{text-align:center;padding:8px 2px;font-size:.76rem;font-weight:700;color:var(--mu)}.calendar-day{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:4px;text-align:left;min-width:0;min-height:112px;padding:7px;border:1px solid var(--ln);border-radius:10px;background:var(--bg);color:var(--tx);cursor:pointer;overflow:hidden}.calendar-day:hover{border-color:var(--pr);background:color-mix(in srgb,var(--pr) 5%,var(--bg))}.calendar-day.outside{opacity:.48}.calendar-day.today .calendar-day-number{background:var(--pr);color:#fff}.calendar-day.selected{outline:2px solid var(--pr);outline-offset:-2px}.calendar-day-number{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;font-size:.82rem;font-weight:700}.calendar-event{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 5px;border-radius:5px;font-size:.68rem;background:color-mix(in srgb,#397a9b 13%,var(--s));border-left:3px solid #397a9b}.calendar-event.confirmada{border-left-color:#47836e;background:color-mix(in srgb,#47836e 13%,var(--s))}.calendar-event.atendida{border-left-color:#9b8a70;background:color-mix(in srgb,#9b8a70 13%,var(--s))}.calendar-event.cancelada{opacity:.55;text-decoration:line-through}.calendar-more{font-size:.68rem;color:var(--mu)}.calendar-count{position:absolute;right:7px;top:8px;font-size:.65rem;color:var(--mu)}.calendar-legend{display:flex;flex-wrap:wrap;gap:16px;padding:12px 4px 2px;color:var(--mu);font-size:.76rem}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend .dot{width:8px;height:8px;border-radius:50%;background:#397a9b}.calendar-legend .dot.confirmed{background:#47836e}.calendar-legend .dot.attended{background:#9b8a70}
.therapy-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:8px 0 16px}.therapy-stat{padding:12px;border:1px solid var(--ln);border-radius:12px;display:grid;gap:3px}.therapy-stat b{font-size:1.35rem;color:var(--pr)}.therapy-stat span,.therapy-last small{font-size:.76rem;color:var(--mu)}.therapy-last{display:grid;gap:4px;padding:12px 0 16px;border-top:1px solid var(--ln)}.therapy-last b{font-size:.95rem}.therapy-last span{font-size:.84rem;color:var(--mu)}
@media(max-width:700px){.calendar-shell{padding:6px;border-radius:12px}.calendar-weekdays,.calendar-grid{gap:3px}.calendar-day{min-height:76px;padding:4px;border-radius:7px}.calendar-day-number{width:22px;height:22px;font-size:.75rem}.calendar-event{font-size:.58rem;padding:2px 3px}.calendar-more{font-size:.58rem}.calendar-count{right:3px;top:4px;font-size:.58rem}.calendar-weekdays span{font-size:.68rem;padding:6px 0}.upcoming-row .tag{font-size:.68rem;padding:4px 6px}}
@media(max-width:420px){.calendar-day{min-height:62px}.calendar-event{font-size:0;height:5px;padding:0;border-radius:4px}.calendar-more{display:none}.agenda-alerts{grid-template-columns:1fr}}

/* ---------- Configuración documental e impresión ---------- */
.doc-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}
.doc-config-section{min-width:0;border:1px solid var(--ln);border-radius:12px;padding:14px;background:var(--s)}
.doc-config-section h4{margin:0 0 8px;color:var(--tx)}
.doc-toggle-list{display:grid;gap:10px;margin-top:10px}
.doc-toggle-list label{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--tx);line-height:1.4}
.doc-toggle-list input{margin-top:2px;accent-color:var(--pr);width:16px;height:16px;flex:0 0 16px}
#documentsConfigDlg{max-height:92vh;overflow:auto}
#documentsConfigDlg .df{position:sticky;bottom:-1px;background:var(--s);padding:12px 0 2px;border-top:1px solid var(--ln);z-index:2}
@media(max-width:680px){.doc-config-grid{grid-template-columns:1fr}#documentsConfigDlg{padding:16px}}

/* ---------- Mejoras FIX5 ---------- */
.lg-mark { font: 600 24px/1 Georgia, "Times New Roman", serif; }
.fg [hidden], .formgrid [hidden] { display: none !important; }
.f .help { font-weight: 500; font-size: 12px; color: var(--mu); }
.stats { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.stat span.muted { line-height: 1.25; }
.tipo-tag { display: inline-block; vertical-align: middle; margin-left: 6px; padding: 2px 8px; border-radius: 99px; font-size: 11px; font-weight: 650; white-space: nowrap; border: 1px solid transparent; }
.tipo-nino { background: #fdeee6; color: #9a4a2a; border-color: #f4cdb9; }
.tipo-adolescente { background: #fff6dc; color: #8a6200; border-color: #f1dea0; }
.tipo-adulto { background: #e5f1ee; color: #1f5f56; border-color: #bcdbd4; }
body[class*="theme-dark"] .tipo-nino, body.theme-black .tipo-nino, body.theme-midnight .tipo-nino, body.theme-jungle .tipo-nino { background: #3b2419; color: #f3b79a; border-color: #5a3826; }
body[class*="theme-dark"] .tipo-adolescente, body.theme-black .tipo-adolescente, body.theme-midnight .tipo-adolescente, body.theme-jungle .tipo-adolescente { background: #3a3014; color: #f0d37a; border-color: #5a4a1c; }
body[class*="theme-dark"] .tipo-adulto, body.theme-black .tipo-adulto, body.theme-midnight .tipo-adulto, body.theme-jungle .tipo-adulto { background: #15342f; color: #8fd3c5; border-color: #24524a; }
.tag.inactivo { opacity: .65; background: var(--s2); color: var(--mu); }
.list-foot { display: flex; align-items: center; gap: 12px; margin: 12px 2px 0; }
.rol-lectura .write-only, .rol-lectura [data-psych-edit], .rol-lectura [data-psych-delete], .rol-lectura [data-ag-edit], .rol-lectura [data-ag-del], .rol-lectura [data-ag-visit] { display: none !important; }

/* ---------- Mi día y nota rápida (FIX6) ---------- */
.day-hero { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 18px; }
.day-hero h2 { margin: 0 0 4px; font: 600 28px/1.15 var(--serif, Georgia, serif); letter-spacing: -.02em; }
.day-hero p { margin: 0; }
.day-grid { align-items: start; grid-template-columns: minmax(0, 1.55fr) minmax(280px, 1fr); }
.day-side { display: grid; gap: 18px; }
.day-list { display: grid; gap: 10px; margin-top: 12px; }
.day-row { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 4px 14px; align-items: center; padding: 12px 14px; border: 1px solid var(--ln); border-radius: 14px; background: var(--s); transition: border-color .15s, box-shadow .15s; }
.day-row:hover { border-color: color-mix(in srgb, var(--pr) 35%, var(--ln)); }
.day-row.is-next { border-color: var(--pr); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pr) 14%, transparent); }
.day-row.is-done { opacity: .78; }
.day-time { display: grid; gap: 2px; text-align: center; }
.day-time b { font: 650 18px/1.1 var(--serif, Georgia, serif); }
.day-time small { font-size: 11px; color: var(--mu); }
.day-main { min-width: 0; }
.day-name { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.day-actions { grid-column: 2; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.tag.now { background: var(--pr); color: #fff; }
.tag.warn { background: #fff1d6; color: #8a5a00; }
.draft-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--ln); }
.draft-row:last-child { border-bottom: 0; }
.draft-row div:first-child { display: grid; gap: 2px; min-width: 0; }
.last-session { margin: 0 22px 4px; }
.last-session details { border: 1px solid var(--ln); border-left: 3px solid var(--pr); border-radius: 12px; background: var(--s2, var(--s)); padding: 10px 14px; }
.last-session summary { cursor: pointer; font-size: 13px; }
.last-session-body { display: grid; gap: 10px; margin-top: 10px; }
.last-session-body small { display: block; font-weight: 650; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--mu); }
.last-session-body p { margin: 2px 0 0; white-space: pre-wrap; font-size: 13.5px; line-height: 1.5; max-height: 7.5em; overflow: auto; }
.draft-status { margin-right: auto; align-self: center; font-size: 12px; }
#draftBanner .row-actions { margin-top: 8px; }
@media (max-width: 900px) { .day-grid { grid-template-columns: 1fr; } .day-row { grid-template-columns: 60px minmax(0, 1fr); } }

/* Logotipo propio en el acceso */
.lg-mark b{font-weight:inherit}.lg-mark b[hidden],.lg-mark img[hidden]{display:none}.lg-mark.has-logo{background:#fff;overflow:hidden}.lg-mark img{width:100%;height:100%;object-fit:contain;padding:3px}

/* Escalas */
.scale-item{border:1px solid var(--ln);border-radius:12px;margin:8px 0;padding:8px 12px;display:flex;flex-wrap:wrap;gap:6px 16px}.scale-item legend{font-weight:600;padding:0 6px;max-width:100%}.scale-item label{display:inline-flex;gap:6px;align-items:center;cursor:pointer}.scale-block{margin:14px 0 22px}.scale-block h4{margin:0 0 2px}.scale-alert{background:rgba(190,40,50,.1);border:1px solid rgba(190,40,50,.35);color:var(--tx);border-radius:10px;padding:8px 12px;margin:8px 0;font-weight:600}
