/* Estilo propio de Avania Setex. Lo común a todos los proyectos (colores, Inter, botones, campos,
   tarjetas, logo y menú .av-*) vive en el maestro /root/avania-brand/avania-ui.css, copiado aquí
   por sync.sh. No se edita aquí: ver /root/avania-brand/LEEME.md. */
@import url("/avania-ui.css");
@import url("/warm-clinic.css");
.tokbox, .int-toggle, #account .fu-step { border-radius: var(--radius-sm); background: var(--bg); border-color: var(--line); }
.menu, #tagsPanel, #account, #docsPanel, #prepPanel, #tplPanel, #tplPick {
  border-radius: var(--radius); border-color: var(--line); box-shadow: 0 12px 32px rgba(16, 24, 40, .14);
}
/* Bloque vacío: relleno suave, texto centrado, como "No hay ausencias registradas". */
.empty, .empty-state { background: var(--bg); border-radius: var(--radius); padding: 28px 16px; text-align: center; color: var(--muted); }
.empty b, .empty-state b { display: block; color: var(--ink); font-weight: 600; margin-bottom: 2px; }

/* ================= Menús: estilo Holded =================
   Referencia de Pascual (oct 2026): filas altas con icono de línea a la izquierda, texto en tinta
   de 14,5 px, activa en gris suave sin color, grupos con rótulo gris en minúsculas y submenús
   planos. Vale para la barra lateral del panel, la del backoffice, Configuración, Ayuda y las
   fichas de cliente. */
:root { --menu-hover: color-mix(in srgb, var(--ink) 5%, transparent); --menu-on: color-mix(in srgb, var(--ink) 8%, transparent); }

/* Barra: un poco más ancha para la letra más grande. */
@media (min-width: 861px) {
  :root { --side-w: 252px; }
  .shell { grid-template-columns: 252px minmax(0, 1fr); }
}
#sidebar, .side { padding: 16px 12px 12px; }
#sidebar .side-brand, .side > .brand { padding: 2px 12px 10px; }

/* Filas: separación entre ellas y entre grupos. */
#sidebar .menu-top, #sidebar .menu-bottom, .side .menu-top, .side .menu-bottom, #acctItems { gap: 1px; }
#acctItems { display: flex; flex-direction: column; }
#acctItems.hidden { display: none; }
.menu-sep { margin: 6px 4px; border-top-color: var(--line); }
#sidebar .menu-bottom, .side .menu-bottom { padding-top: 6px; }

/* Selector de cuenta: caja con borde y esquinas suaves. */
#sidebar .acct-switch, .side .acct-switch { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 9px 12px !important; margin: 0 0 8px; }
#sidebar .acct-switch:hover, .side .acct-switch:hover { filter: none; background: var(--menu-hover); }

/* Fila de menú. */
:is(#sidebar, .side) :is(.menu-top, .menu-bottom) button:not(.acct-switch),
:is(#sidebar, .side) .side-list :is(button, a),
#cfgSlot .cfg-nav button, #cfgSlot .rail-sub button,
#admCfg :is(.fn-btn, .fn-fly button) {
  display: flex; align-items: center; gap: 12px; width: 100%; min-height: 32px; padding: 5px 12px;
  border-radius: 8px; font-size: 14px; font-weight: 500; line-height: 1.3; color: var(--ink);
  background: none; border: 0; text-align: left; text-decoration: none; cursor: pointer;
}
:is(#sidebar, .side) :is(.menu-top, .menu-bottom) button:not(.acct-switch):hover,
:is(#sidebar, .side) .side-list :is(button, a):hover,
#cfgSlot .cfg-nav button:hover, #cfgSlot .rail-sub button:hover,
#admCfg :is(.fn-btn, .fn-fly button):hover { background: var(--menu-hover); }
:is(#sidebar, .side) :is(.menu-top, .menu-bottom) button:not(.acct-switch):is(.on, [aria-current="page"]),
:is(#sidebar, .side) .side-list button.on,
#cfgSlot .cfg-nav button.on, #cfgSlot .rail-sub button.on, #cfgSlot .rail-btn.on,
#admCfg :is(.fn-btn, .fn-fly button).on { background: var(--menu-on); color: var(--ink); font-weight: 600; }

/* Iconos de línea: 18 px, trazo fino, un poco más claros que el texto. */
:is(#sidebar, .side) .menu svg:not(.upd):not(.rc), #cfgSlot .rail-btn svg:not(.rc), #admCfg .fn-btn svg:not(.rc) {
  width: 18px; height: 18px; stroke-width: 1.6; color: color-mix(in srgb, var(--ink) 72%, var(--panel));
}
#cfgSlot .rail-btn .rc, #sidebar .chev, .side .chev { color: var(--muted); opacity: .8; }
#cfgSlot .rail-btn .rc { width: 14px; height: 14px; }

/* Submenús: planos, sin línea lateral, con una pequeña sangría. */
#sidebar .side-list, .side .side-list, #cfgSlot, #cfgSlot .rail-sub, #admCfg .fn-fly, #admCfg .fn-fly-in {
  margin: 1px 0 4px; padding-left: 0; border-left: 0; gap: 1px;
}
#sidebar .side-list, .side .side-list, #cfgSlot .rail-sub { margin-left: 10px; }
#cfgSlot .cfg-nav { gap: 1px; }
#admCfg .fn-fly { padding-left: 10px; }
.side-list i { font-size: 12px; font-weight: 500; }

/* Rótulos de grupo: gris, minúsculas, algo más pequeños que las filas. */
.menu-group, #admCfg .cfg-title, .fnav h4 {
  font-size: 12.5px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--muted); padding: 12px 12px 4px;
}
#admCfg .cfg-title:first-child, .fnav h4:first-child { padding-top: 4px; }

/* Ayuda (panel de la izquierda) y menú de las fichas de cliente del backoffice. */
.help-nav { padding: 14px 12px; gap: 12px; }
#helpTopics { display: grid; gap: 1px; }
.help-nav button { padding: 7px 12px; font-size: 14px; font-weight: 500; color: var(--ink); border-radius: 8px; gap: 1px; }
.help-nav button small { font-size: 12.5px; }
.help-nav button:hover { background: var(--menu-hover); }
.help-nav button.on { background: var(--menu-on); color: var(--ink); font-weight: 600; }
.fnav { padding: 12px; }
.fnav .fn-btn, .fnav button { gap: 12px; min-height: 32px; padding: 5px 12px; font-size: 14px; font-weight: 500; border-radius: 8px; }
.fnav .fn-btn svg { width: 18px; height: 18px; stroke-width: 1.6; }
.fnav button:hover { background: var(--menu-hover); }
.fnav button.on { background: var(--menu-on); color: var(--ink); font-weight: 600; }
.fn-fly-in button { font-size: 14px; }

/* Pestañas de la cabecera: un punto más grandes. */
.views button, .acct-tabs button, .tabs button, .side-tabs button { font-size: 14px; }

.side-list [data-adm="resumen"]::before,
.side-list [data-view="resumen"]::before,
.side-list [data-adm="clientes"]::before,
.side-list [data-view="clientes"]::before,
.side-list [data-adm="solicitudes"]::before,
.side-list [data-view="solicitudes"]::before,
.side-list [data-adm="usuarios"]::before,
.side-list [data-view="usuarios"]::before,
.side-list [data-adm="roles"]::before,
.side-list [data-view="roles"]::before,
.side-list [data-adm="cupones"]::before,
.side-list [data-view="cupones"]::before,
.side-list a[href="/"]::before,
.side-list a[href^="/seguridad"]::before,
.rail-sub [data-sec="general"]::before,
#admCfg .fn-fly [data-ftab="setter:general"]::before,
.rail-sub [data-sec="identidad"]::before,
#admCfg .fn-fly [data-ftab="setter:identidad"]::before,
.rail-sub [data-sec="empieza"]::before,
#admCfg .fn-fly [data-ftab="setter:empieza"]::before,
.rail-sub [data-sec="sigue"]::before,
#admCfg .fn-fly [data-ftab="setter:sigue"]::before,
.rail-sub [data-sec="cierra"]::before,
#admCfg .fn-fly [data-ftab="setter:cierra"]::before,
.rail-sub [data-sec="etapas"]::before,
#admCfg .fn-fly [data-ftab="setter:etapas"]::before,
.rail-sub [data-sec="conocimiento"]::before,
#admCfg .fn-fly [data-ftab="setter:conocimiento"]::before,
.rail-sub [data-sec="aprendizaje"]::before,
#admCfg .fn-fly [data-ftab="setter:aprendizaje"]::before,
#admCfg .fn-fly [data-ftab="setter:templates"]::before,
#admCfg .fn-fly [data-ftab="setter:tags"]::before { content: ""; width: 18px; height: 18px; flex: none; background: currentColor; opacity: .72; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; }
.side-list [data-adm="resumen"]::before,
.side-list [data-view="resumen"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%224%22 y=%224%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3Crect x=%2213%22 y=%224%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3Crect x=%224%22 y=%2213%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3Crect x=%2213%22 y=%2213%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%224%22 y=%224%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3Crect x=%2213%22 y=%224%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3Crect x=%224%22 y=%2213%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3Crect x=%2213%22 y=%2213%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3C/svg%3E"); }
.side-list [data-adm="clientes"]::before,
.side-list [data-view="clientes"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 20V5h10v15M14 10h6v10M8 9h2M8 13h2M8 17h2%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 20V5h10v15M14 10h6v10M8 9h2M8 13h2M8 17h2%22/%3E%3C/svg%3E"); }
.side-list [data-adm="solicitudes"]::before,
.side-list [data-view="solicitudes"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 6h16v12H4zM4 7l8 6 8-6%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 6h16v12H4zM4 7l8 6 8-6%22/%3E%3C/svg%3E"); }
.side-list [data-adm="usuarios"]::before,
.side-list [data-view="usuarios"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%229%22 cy=%228%22 r=%223.5%22/%3E%3Cpath d=%22M2.5 20c.6-3.6 3.2-5.5 6.5-5.5s5.9 1.9 6.5 5.5M16 4.8a3.5 3.5 0 0 1 0 6.4%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%229%22 cy=%228%22 r=%223.5%22/%3E%3Cpath d=%22M2.5 20c.6-3.6 3.2-5.5 6.5-5.5s5.9 1.9 6.5 5.5M16 4.8a3.5 3.5 0 0 1 0 6.4%22/%3E%3C/svg%3E"); }
.side-list [data-adm="roles"]::before,
.side-list [data-view="roles"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 3l7 3v6c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6z%22/%3E%3Cpath d=%22M9 12l2 2 4-4%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 3l7 3v6c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6z%22/%3E%3Cpath d=%22M9 12l2 2 4-4%22/%3E%3C/svg%3E"); }
.side-list [data-adm="cupones"]::before,
.side-list [data-view="cupones"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 9V6h18v3a3 3 0 0 0 0 6v3H3v-3a3 3 0 0 0 0-6zM14 6v12%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 9V6h18v3a3 3 0 0 0 0 6v3H3v-3a3 3 0 0 0 0-6zM14 6v12%22/%3E%3C/svg%3E"); }
.side-list a[href="/"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22M3 12h18M12 3c3 3 3 15 0 18M12 3c-3 3-3 15 0 18%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22M3 12h18M12 3c3 3 3 15 0 18M12 3c-3 3-3 15 0 18%22/%3E%3C/svg%3E"); }
.side-list a[href^="/seguridad"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%225%22 y=%2211%22 width=%2214%22 height=%229%22 rx=%222%22/%3E%3Cpath d=%22M8 11V8a4 4 0 0 1 8 0v3%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%225%22 y=%2211%22 width=%2214%22 height=%229%22 rx=%222%22/%3E%3Cpath d=%22M8 11V8a4 4 0 0 1 8 0v3%22/%3E%3C/svg%3E"); }
.rail-sub [data-sec="general"]::before,
#admCfg .fn-fly [data-ftab="setter:general"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 4h14v16H5zM9 9h6M9 13h6M9 17h3%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 4h14v16H5zM9 9h6M9 13h6M9 17h3%22/%3E%3C/svg%3E"); }
.rail-sub [data-sec="identidad"]::before,
#admCfg .fn-fly [data-ftab="setter:identidad"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%228%22 r=%223.5%22/%3E%3Cpath d=%22M5 20c.8-3.6 3.5-5.5 7-5.5s6.2 1.9 7 5.5%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%228%22 r=%223.5%22/%3E%3Cpath d=%22M5 20c.8-3.6 3.5-5.5 7-5.5s6.2 1.9 7 5.5%22/%3E%3C/svg%3E"); }
.rail-sub [data-sec="empieza"]::before,
#admCfg .fn-fly [data-ftab="setter:empieza"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4l13 8-13 8z%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 4l13 8-13 8z%22/%3E%3C/svg%3E"); }
.rail-sub [data-sec="sigue"]::before,
#admCfg .fn-fly [data-ftab="setter:sigue"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E"); }
.rail-sub [data-sec="cierra"]::before,
#admCfg .fn-fly [data-ftab="setter:cierra"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22M8 12.5l3 3 5-6%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%229%22/%3E%3Cpath d=%22M8 12.5l3 3 5-6%22/%3E%3C/svg%3E"); }
.rail-sub [data-sec="etapas"]::before,
#admCfg .fn-fly [data-ftab="setter:etapas"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 6h16M4 12h10M4 18h6%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 6h16M4 12h10M4 18h6%22/%3E%3C/svg%3E"); }
.rail-sub [data-sec="conocimiento"]::before,
#admCfg .fn-fly [data-ftab="setter:conocimiento"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 5a2 2 0 0 1 2-2h13v16H6a2 2 0 0 0-2 2zM4 19V5M8 8h7%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 5a2 2 0 0 1 2-2h13v16H6a2 2 0 0 0-2 2zM4 19V5M8 8h7%22/%3E%3C/svg%3E"); }
.rail-sub [data-sec="aprendizaje"]::before,
#admCfg .fn-fly [data-ftab="setter:aprendizaje"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 3a6 6 0 0 0-3.5 10.9c.6.5 1 1.2 1 2V17h5v-1.1c0-.8.4-1.500 1-2A6 6 0 0 0 12 3zM10 20.5h4%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 3a6 6 0 0 0-3.5 10.9c.6.5 1 1.2 1 2V17h5v-1.1c0-.8.4-1.500 1-2A6 6 0 0 0 12 3zM10 20.5h4%22/%3E%3C/svg%3E"); }
#admCfg .fn-fly [data-ftab="setter:templates"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 5h16v11H9l-5 4z%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 5h16v11H9l-5 4z%22/%3E%3C/svg%3E"); }
#admCfg .fn-fly [data-ftab="setter:tags"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 12V4h8l10 10-8 8z%22/%3E%3Ccircle cx=%227.5%22 cy=%228.5%22 r=%221%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 12V4h8l10 10-8 8z%22/%3E%3Ccircle cx=%227.5%22 cy=%228.5%22 r=%221%22/%3E%3C/svg%3E"); }

/* El menú lateral no es una ventana flotante. */
#sidebar .menu, .side .menu { box-shadow: none; }

/* ================= Aspecto de panel de control (tarjetas) =================
   Referencia de Pascual (23-oct-2026): fondo gris muy claro y tarjetas blancas de esquinas redondeadas,
   con una pequeña separación entre ellas. Las variables (--page, --radius) vienen del maestro. */
.grid { gap: 14px; padding: 14px; background: var(--page); }
.grid > .col { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.grid > .side, .grid > .info { border-left: 1px solid var(--line); border-right: 1px solid var(--line); }
.grid > .side > .resizer { right: 0; } .grid > .info > .resizer { left: 0; }
.grid > .col.chat, .grid > .col:nth-child(2) { background: var(--chat); }
@media (max-width: 860px) { .grid { gap: 0; padding: 0; } .grid > .col { border-radius: 0; border-width: 0; } }
/* Cifras de Informes: tarjetas más grandes y redondeadas, con la cifra grande y la etiqueta en gris. */
.tiles { gap: 14px; }
.tile { border-radius: var(--radius); padding: 16px 18px; gap: 4px; }
.tile .lbl { font-size: 13px; font-weight: 500; }
.tile .val { font-size: 28px; font-weight: 600; letter-spacing: -.02em; }
.tile .det { font-size: 12px; }
.tile.hero .val { font-size: 48px; }
.card .sub, .rp-left, .rp-top { gap: 14px; }
.rp-top, .rp-left { gap: 14px; }
.tokbox, .int-toggle, .conv.on { border-radius: var(--radius-sm); }
.conv { border-bottom-color: color-mix(in srgb, var(--line) 70%, transparent); }

/* ═══════════ Menú lateral con el aspecto del de Avania Space (5-nov-2026) ═══════════
   Mismas medidas que Space: texto de 13 px, filas de 30 px con el icono en una cajita de 22 px, rótulos de grupo en mayúsculas de
   11,5 px con desplegable, submenú con sangría, tarjeta de cuenta clara. Solo toca estilos del menú (#sidebar); el marcado y los
   scripts son los de siempre. Sustituye al bloque «estilo Space (24-oct)» de este archivo; la copia anterior está en /root/backups/setter-ui.css.bak-menu-20261105. */
#sidebar#sidebar { padding: 12px 8px 0; }
#sidebar#sidebar .side-brand { padding: 2px 8px 8px; }

/* Tarjeta de cuenta: clara, con borde (como la de Space) */
#sidebar#sidebar .acct-switch { background: transparent !important; color: var(--ink) !important; border: 1px solid var(--line) !important; border-radius: 10px; padding: 6px 10px !important; margin: 0 0 6px !important; gap: 8px; box-shadow: none; }
#sidebar#sidebar .acct-switch:hover { background: var(--menu-hover, color-mix(in srgb, var(--ink) 5%, transparent)) !important; filter: none; }
#sidebar#sidebar .acct-switch .av { width: 24px; height: 24px; font-size: 12px; background: color-mix(in srgb, var(--accent) 14%, var(--panel)); color: var(--accent); }
#sidebar#sidebar .acct-switch b { font-size: 13px; font-weight: 600; color: var(--ink); }
#sidebar#sidebar .acct-switch .acct-txt > span { font-size: 11px; color: var(--muted); }
#sidebar#sidebar .acct-switch .upd { width: 14px !important; height: 14px !important; color: var(--muted); }

/* Filas: 13 px, 30 px de alto, icono en cajita de 22 px */
#sidebar#sidebar .menu button, #sidebar#sidebar .menu a { font-size: 13px; font-weight: 500; line-height: 1.3; min-height: 30px; padding: 3px 8px; gap: 10px; border-radius: 8px; color: var(--ink); background: none; box-shadow: none; }
#sidebar#sidebar .menu button:hover, #sidebar#sidebar .menu a:hover { background: var(--menu-hover, color-mix(in srgb, var(--ink) 5%, transparent)); }
#sidebar#sidebar .menu > button svg, #sidebar#sidebar .menu-top > button svg, #sidebar#sidebar .menu-bottom button svg {
  flex: none; width: 22px; height: 22px; padding: 4px; box-sizing: border-box; border-radius: 7px; stroke-width: 1.6;
  background: color-mix(in srgb, var(--accent) 10%, transparent); color: var(--accent); }
#sidebar#sidebar .menu button.on, #sidebar#sidebar .menu-top > button.on { background: color-mix(in srgb, var(--accent) 9%, var(--panel)); font-weight: 600; }
#sidebar#sidebar .menu button.on > svg:first-child { background: var(--accent); color: var(--accent-ink, #fff); }
#sidebar#sidebar .acct-switch svg.upd { background: none; padding: 0; }

/* Rótulos de grupo desplegables (Setter, Configuración, Administración): mayúsculas pequeñas, cajita de icono y flecha abajo/arriba */
#sidebar#sidebar #menuSetter, #sidebar#sidebar #menuCfg, #sidebar#sidebar #menuAdminBtn { padding: 6px 8px; gap: 8px; min-height: 34px; margin-top: 2px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); box-shadow: none;
  font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
#sidebar#sidebar #menuSetter:hover, #sidebar#sidebar #menuCfg:hover, #sidebar#sidebar #menuAdminBtn:hover { background: var(--menu-hover, color-mix(in srgb, var(--ink) 5%, transparent)); }
#sidebar#sidebar #menuSetter.exp, #sidebar#sidebar #menuSetter[aria-expanded="true"], #sidebar#sidebar #menuCfg.exp, #sidebar#sidebar #menuAdminBtn[aria-expanded="true"], #sidebar#sidebar #menuAdmin.open > #menuAdminBtn { background: color-mix(in srgb, var(--accent) 8%, var(--panel)); color: var(--ink); }
#sidebar#sidebar #menuSetter.exp > svg:first-child, #sidebar#sidebar #menuSetter[aria-expanded="true"] > svg:first-child, #sidebar#sidebar #menuCfg.exp > svg:first-child, #sidebar#sidebar #menuAdmin.open > #menuAdminBtn > svg:first-child { background: var(--accent); color: var(--accent-ink, #fff); }
#sidebar#sidebar #menuSetter .chev, #sidebar#sidebar #menuCfg .chev, #sidebar#sidebar #menuAdminBtn .chev { margin-left: auto; font-size: 17px; line-height: 1; font-weight: 400; color: var(--muted); transform: rotate(90deg); transition: transform .2s; }
#sidebar#sidebar #menuSetter.exp .chev, #sidebar#sidebar #menuSetter[aria-expanded="true"] .chev, #sidebar#sidebar #menuCfg.exp .chev, #sidebar#sidebar #menuAdmin.open > #menuAdminBtn .chev { transform: rotate(-90deg); }

/* Submenús: sangría de 12 px y letra de 12,5 px */
#sidebar#sidebar .side-sub, #sidebar#sidebar .side-list { margin: 1px 0 4px 12px; padding: 0; border: 0; display: grid; gap: 1px; }
#sidebar#sidebar .side-sub.hidden, #sidebar#sidebar .side-list.hidden { display: none; }
#sidebar#sidebar .rail-sub { display: grid; margin: 0; padding: 0; border: 0; gap: 1px; }
#sidebar#sidebar .side-sub button, #sidebar#sidebar .side-list button, #sidebar#sidebar .side-list a, #sidebar#sidebar .cfg-nav button { font-size: 12.5px; font-weight: 500; min-height: 30px; padding: 3px 8px 3px 10px; border-radius: 8px; width: 100%; display: flex; align-items: center; gap: 10px; }
#sidebar#sidebar .side-sub button.on, #sidebar#sidebar .cfg-nav button.on, #sidebar#sidebar .cfg-nav .rail-btn.on { background: color-mix(in srgb, var(--accent) 9%, var(--panel)); color: var(--ink); font-weight: 600; }
#sidebar#sidebar .cfg-nav .rail-btn svg, #cfgSlot .cfg-nav button svg { width: 22px; height: 22px; padding: 4px; box-sizing: border-box; border-radius: 7px; background: color-mix(in srgb, var(--accent) 10%, transparent); color: var(--accent); }
#sidebar#sidebar .cfg-nav .rail-btn.on svg { background: var(--accent); color: var(--accent-ink, #fff); }
#sidebar#sidebar #cfgSlot .cfg-nav button { font-size: 12.5px; }

/* Parte baja: Perfil, Empresa y Salir */
#sidebar#sidebar .menu-sep { margin: 4px 8px; }
#sidebar#sidebar .menu-bottom { padding-top: 6px; }
#sidebar#sidebar .menu-bottom .cfg-nav { padding: 0; gap: 1px; }
#sidebar#sidebar .menu-bottom .cfg-nav button, #sidebar#sidebar #menuLogout { min-height: 28px; font-size: 13px; padding: 4px 8px; }
#sidebar#sidebar #menuLogout { color: var(--muted); }
#sidebar#sidebar .live { margin: 6px 0 0; padding: 8px 8px 8px; font-size: 11.5px; }

#sidebar#sidebar .cfg-nav { border: 0; background: none; }
