@font-face {
  font-family: 'Onest';
  src: url('/estaticos/fuentes/Onest-latin.woff2') format('woff2');
  font-weight: 100 900; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
                 U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
                 U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Onest';
  src: url('/estaticos/fuentes/Onest-latin-ext.woff2') format('woff2');
  font-weight: 100 900; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
                 U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
                 U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
:root {
  --fuente: 'Onest', 'Segoe UI', system-ui, sans-serif;
  --vino: #8A1040;
  --ambar: #FFB400; --ambar-hondo: #E09A00; --sobre-ambar: #211F1D;
  --tinta-accion: var(--rojo-marca); --ambar-barra: #FFD980;
  --tinta-aviso: var(--rojo-marca);
  --lienzo: #F3F3F1;
  --tinta: #211F1D; --tinta-2: #3A3835; --tinta-suave: #75736D;
  --tinta-4: #97958D; --tinta-5: #ADABA3;
  --fondo: #F3F3F1; --tarjeta: #FFFFFF; --hover: #F7F7F5;
  --pagina: #F8F8F6;
  --borde: #E2E2DE; --linea-suave: #EAEAE6;
  --verde: #00873F; --verde-vivo: #00A94F; --verde-corto: #4FC77E;
  --verde-fuera: #046B33; --verde-filo: #007A3A;
  --verde-palido: #BFE6CB;
  --vivo-relleno: #DDF2E4; --vivo-orilla: #8FCFA6;
  --rojo: #D42217; --rojo-vivo: #F5342B; --coral: #FF7A5C;
  --sup-2: #F5F5F3; --control: #DBDBD6;
  --ambar-palido: #FFF6E0; --rojo-palido: #FEF2F2;
  --sombra-1: 0 1px 2px rgba(40, 38, 34, .10);
  --sombra-2: 0 4px 12px rgba(40, 38, 34, .14);
  --sombra-3: 0 10px 30px rgba(40, 38, 34, .15);
  --radio: 7px; --radio-dentro: 6px;
  --radio-control: 10px; --radio-tarjeta: 16px;
  --fondo-tarjetas: #F4F2F0;
  --pie-claro: color-mix(in srgb, var(--barra-activa) 35%, var(--tarjeta));
  --pie: 52px; --aki-dibujo: 29px;
  --vidrio: rgba(255, 255, 255, .95);
  --brillo: rgba(255, 255, 255, .72); --brillo-0: rgba(255, 255, 255, 0);
  --sh-panel: -16px 0 40px rgba(40, 38, 34, .14);
  --velo: rgba(40, 38, 34, .26);
}
:root {
  --letra-etiqueta: 11.5px;
  --letra-nota: 12.5px;
  --letra-cuerpo: 14px;
  --letra-subtitulo: 15px;
  --letra-titulo: 17px;
  --letra-grande: 22px;
  --letra-mayor: 26px;
  --letra-maxima: 29px;
}
::selection { background: var(--ambar); color: var(--sobre-ambar); }
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: var(--fuente);
       font-size: var(--letra-cuerpo); line-height: 1.5;
       -webkit-font-smoothing: antialiased;
       background: var(--pagina); color: var(--tinta); }
button, input, select, textarea { font-family: inherit; }
::placeholder { color: var(--tinta-4); opacity: 1; }
a, nav a, .forma button, .forma input, .portada li a {
  transition: background .18s ease, color .18s ease, border-color .18s ease,
              transform .12s ease; }
@view-transition { navigation: auto; }
::view-transition-old(root) { animation-duration: .14s; }
::view-transition-new(root) { animation-duration: .14s; }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*), ::view-transition-old(*),
  ::view-transition-new(*) { animation: none !important; }
}
:root {
  --rojo-marca: #C8102E;
  --mano-sombra: #8A1040;
  --barra-tinta: #2A1018;
  --barra-suave: var(--tinta-4);
  --barra-linea: var(--linea-suave);
  --barra-hover: var(--hover);
  --barra-activa: #F4EFEC;
}
aside { position: fixed; top: 0; bottom: 0; left: 0; width: 198px;
        background: var(--tarjeta); border-right: 1px solid var(--barra-linea);
        padding: var(--respiro) 0 16px; }
.marca-fila { flex: none; overflow: hidden; padding: 0 20px 18px 10px; }
:root { --cabeza-tabla: calc(1.5 * var(--letra-etiqueta) + 27px); }
@media (min-width: 761px) {
  .marca-fila { padding-bottom: calc(var(--respiro) + var(--cabeza-tabla) - 20px
                                     - 1.45 * var(--letra-nota)); }
}
aside .org { margin-top: 8px; height: 1.45em; color: var(--barra-tinta);
             font-size: var(--letra-nota); font-weight: 500;
             line-height: 1.45; overflow: hidden; text-overflow: ellipsis;
             white-space: nowrap; }
:root { --lg: 0.920904; }
.lg { display: block; overflow: visible; pointer-events: none;
      width: calc(177px * var(--lg)); height: calc(29.52px * var(--lg));
      margin-top: calc(var(--toque) - 29.52px * var(--lg)); }
.lg g, .lg path { transform-box: view-box; transform-origin: 0 0; }
.lg-tinta { fill: var(--ambar); }
.lg-sombra { fill: var(--rojo-marca); }
.lg-mano .lg-tinta { fill: var(--rojo-marca); }
.lg-mano .lg-sombra { fill: var(--mano-sombra); }
.lg-carita circle { fill: var(--tarjeta); }
.lg-carita path { fill: none; stroke: var(--tarjeta); stroke-width: 2.2; stroke-linecap: round; }
.lg-aki { transform: translate(calc(-1.35px * var(--lg)), calc(27.727px * var(--lg)))
                     scale(calc(0.07909 * var(--lg))); }
.lg-mano { transform: translate(calc(50.504px * var(--lg)), calc(2.733px * var(--lg)))
                      scale(calc(0.3517 * var(--lg))) translate(-18px, -20.5px); }
.lg-teams { transform: translate(calc(72.03px * var(--lg)), calc(27.727px * var(--lg)))
                       scale(calc(0.07909 * var(--lg))); }
.lg-aki .lg-sombra, .lg-teams .lg-sombra { transform: translate(17.48px, 17.48px); }
.lg-mano .lg-sombra { transform: translate(1.8px, 2.6px); }
.marca img { display: block; height: auto; }
nav a { display: flex; align-items: center; gap: 13px; min-height: 44px;
        padding: 11px 14px 11px 10.5px; margin: 1px 12px; border-radius: var(--radio);
        color: var(--barra-tinta); text-decoration: none;
        font-size: var(--letra-subtitulo); font-weight: 500; }
@media (min-width: 761px) {
  nav a { height: 44px; padding: 0 14px 0 12.5px; margin: 1px 10px 1px 10px; }
}
nav a:hover { background: var(--barra-hover); color: var(--barra-tinta); }
nav a.activo { background: var(--barra-activa); color: var(--barra-tinta);
               font-weight: 700; }
nav a.activo:hover { background: var(--barra-activa); }
nav svg { width: 19px; height: 19px; flex: none; }
aside nav svg { color: var(--barra-tinta); }
aside nav a.activo[data-hab='asistencia'] svg { color: var(--hab-asistencia); }
aside nav a.activo[data-hab='alerta'] svg { color: var(--hab-alerta); }
aside nav a.activo[data-hab='solicitudes'] svg { color: var(--hab-solicitudes); }
:root { --aire: 24px; --respiro: 10px; --toque: 34px;
        --franja: calc(var(--toque) + 2 * var(--respiro) + 1px); }
@media (max-width: 760px) {
  :root { --aire: 16px; --respiro: 10px; --toque: 38px; }
}
.lienzo { margin-left: 198px; padding: var(--aire); }
.barra-abre { display: none; }
.pulso-lado { flex: none; margin-top: 10px; padding: 12px 10px 0;
              border-top: 1px solid rgba(255, 255, 255, .14);
              transition: opacity .2s ease; }
.pulso-lado.dormido { opacity: .5; }
.pulso-lado:not(:has(.pulso-cara)) { display: none; }
.pulso-cara { position: relative; display: block; border-radius: var(--radio);
              overflow: hidden; background: var(--tarjeta); color: var(--tinta);
              text-decoration: none; cursor: pointer;
              box-shadow: 0 2px 10px rgba(0, 0, 0, .22);
              transition: box-shadow .15s ease, transform .15s ease; }
.pulso-cara:hover { color: var(--tinta); transform: translateY(-1px);
                    box-shadow: 0 6px 18px rgba(0, 0, 0, .3); }
.pulso-cara.oculta { display: none; }
.pulso-lado .pulso-cuerpo { display: block; padding: 12px; flex: none;
                            min-height: auto; overflow: visible; }
.pulso-quien { display: flex; align-items: center; gap: 6px;
               font-size: var(--letra-etiqueta); font-weight: 500; letter-spacing: .08em;
               text-transform: uppercase; color: var(--hab-texto); }
.pulso-quien > span { flex: 1; min-width: 0; white-space: nowrap;
                      overflow: hidden; text-overflow: ellipsis; }
.pulso-quien .hab-icono { width: 14px; height: 14px; flex: none; }
.pulso-urge { width: 7px; height: 7px; flex: none; border-radius: 50%;
              background: var(--rojo);
              animation: pulso-late 1.6s ease-in-out infinite; }
@keyframes pulso-late { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }
.pulso-cifra2 { display: flex; align-items: baseline; gap: 6px; margin-top: 1px; }
.pulso-cifra2 b { font-size: var(--letra-mayor); font-weight: 900; letter-spacing: -1px;
                  line-height: 1.2; color: var(--tinta); }
.pulso-cifra2 > span { min-width: 0; font-size: var(--letra-nota); color: var(--tinta-suave);
                       white-space: nowrap; overflow: hidden;
                       text-overflow: ellipsis; }
.hab-alerta .pulso-cifra2 b { color: var(--rojo); }
.pulso-cara.calma .pulso-cifra2 b { color: var(--verde); }
.pulso-tramos { display: flex; height: 5px; margin-top: 8px;
                border-radius: 3px; overflow: hidden;
                background: var(--linea-suave); }
.pulso-tramos .bien { background: var(--verde-corto); }
.pulso-tramos .falta { background: var(--hab); }
.pulso-tramos .nada { background: var(--linea-suave); }
.hab-asistencia .pulso-tramos .falta { background: var(--coral); }
.pulso-pie { display: block; margin-top: 6px; font-size: var(--letra-etiqueta);
             color: var(--tinta-suave); white-space: nowrap;
             overflow: hidden; text-overflow: ellipsis; }
.pulso-pie b { font-weight: 500; color: var(--tinta); }
.pulso-pie b.alarma { color: var(--rojo); }
.pulso-puntos { display: flex; justify-content: center; align-items: center;
                gap: 2px; margin-top: 4px; }
.pulso-punto2 { display: grid; place-items: center; width: 18px; height: 18px;
                padding: 0; border: 0; background: none; cursor: pointer; }
.pulso-punto2 i { width: 6px; height: 6px; border-radius: 50%;
                  background: rgba(255, 255, 255, .42);
                  transition: width .15s ease, height .15s ease,
                              background .15s ease; }
.pulso-punto2.on i { background: rgba(255, 255, 255, .9); }
.pulso-lado:hover .pulso-punto2 i { width: 9px; height: 9px; }
.pulso-lado:hover .pulso-punto2:hover i { background: rgba(255, 255, 255, .95); }
html.barra-cerrada .pulso-lado { padding: 12px 8px 0; }
html.barra-cerrada .pulso-lado .pulso-cuerpo { padding: 8px 0; text-align: center; }
html.barra-cerrada .pulso-lado .pulso-quien { justify-content: center; }
html.barra-cerrada .pulso-lado .pulso-quien > span { display: none; }
html.barra-cerrada .pulso-lado .pulso-urge { position: absolute; top: 7px; right: 7px; }
html.barra-cerrada .pulso-lado .pulso-cifra2 { justify-content: center; }
html.barra-cerrada .pulso-lado .pulso-cifra2 b { font-size: var(--letra-titulo); letter-spacing: -.5px; }
html.barra-cerrada .pulso-lado .pulso-cifra2 > span { display: none; }
html.barra-cerrada .pulso-lado .pulso-tramos,
html.barra-cerrada .pulso-lado .pulso-pie { display: none; }
.barra-pie { flex: none; margin-top: 2px; padding: 0 12px; }
.barra-boton { display: flex; align-items: center; justify-content: center;
               width: 40px; height: 40px; border: 0; border-radius: var(--radio);
               background: transparent; color: var(--barra-suave);
               cursor: pointer;
               transition: background .15s ease, color .15s ease; }
.barra-boton:hover { background: var(--barra-hover); color: var(--barra-tinta); }
.barra-boton svg { width: 19px; height: 19px; flex: none; }
html.barra-cerrada aside { width: 64px; }
html.barra-cerrada .lienzo { margin-left: 64px; }
html.barra-cerrada .barra-cierra { display: none; }
html.barra-cerrada .nav-nombre { width: 0; overflow: hidden; }
html.barra-cerrada .barra-abre { display: inline; }
html.barra-cerrada .marca-fila .org { visibility: hidden; height: 0; margin-top: 0; }
html.barra-cerrada .lg { height: 32.39px; margin-top: calc(var(--toque) - 32.39px); }
html.barra-cerrada .lg-aki { transform: translate(-.152px, 17.505px) scale(.049139); }
html.barra-cerrada .lg-mano { transform: translate(31.891px, 2.187px) scale(.222)
                                         translate(-18px, -20.5px); }
html.barra-cerrada .lg-teams { transform: translate(-.152px, 31.679px) scale(.0333); }
html.barra-cerrada .lg-aki .lg-sombra { transform: translate(15.58px, 15.58px); }
html.barra-cerrada .lg-teams .lg-sombra { transform: translate(16.09px, 16.09px); }
html.barra-cerrada .nav-seccion { padding: 0 15px 11px 16px; }
html.barra-cerrada nav + .nav-seccion { padding-top: 11px; }
html.barra-cerrada .marca-fila { padding-bottom: 12px; }
html.barra-cerrada nav a { justify-content: center; position: relative;
                           gap: 0; padding: 11px 0; margin: 1px 8px; }
html.barra-cerrada .nav-grito,
html.barra-cerrada .nav-quieto { position: absolute; top: 5px;
                                 left: calc(50% + 5px); margin: 0;
                                 min-width: 16px; height: 16px;
                                 padding: 0 4px; font-size: var(--letra-etiqueta);
                                 border: 2px solid var(--tarjeta); }
html.barra-cerrada .activo .nav-grito,
html.barra-cerrada .activo .nav-quieto { border-color: var(--barra-activa); }
:root { --vuelo-barra: .28s; --curva-barra: cubic-bezier(.2, .7, .2, 1); }
@media (min-width: 761px) {
  aside .pestanas, aside .rincon { overflow-x: hidden; }
  aside .nav-nombre { white-space: nowrap; }
  html.barra-cerrada nav a { justify-content: flex-start; gap: 13px;
                             padding: 0 0 0 12.5px; margin: 1px 9px 1px 10px; }
  html.barra-cerrada .nav-nombre { width: auto; overflow: visible; opacity: 0; }
  html.barra-cerrada .marca-fila .org { opacity: 0; }
  html.barra-anima aside { transition: width var(--vuelo-barra) var(--curva-barra); }
  html.barra-anima .lienzo { transition: margin-left var(--vuelo-barra) var(--curva-barra); }
  html.barra-anima .lg g,
  html.barra-anima .lg-sombra { transition: transform var(--vuelo-barra) var(--curva-barra); }
  html.barra-anima .lg { transition: height var(--vuelo-barra) var(--curva-barra),
                                     margin-top var(--vuelo-barra) var(--curva-barra); }
  html.barra-anima .marca-fila { transition: padding var(--vuelo-barra) var(--curva-barra); }
  html.barra-anima .nav-seccion { transition: padding var(--vuelo-barra) var(--curva-barra); }
  html.barra-anima.barra-cerrada .nav-nombre {
    transition: opacity .1s linear, visibility .1s linear; }
  html.barra-anima.barra-cerrada .marca-fila .org {
    transition: height var(--vuelo-barra) var(--curva-barra),
                margin var(--vuelo-barra) var(--curva-barra),
                opacity .1s linear, visibility .1s linear; }
  html.barra-anima:not(.barra-cerrada) .nav-nombre {
    transition: opacity .16s linear .12s, visibility .16s linear .12s; }
  html.barra-anima:not(.barra-cerrada) .marca-fila .org {
    transition: height var(--vuelo-barra) var(--curva-barra),
                margin var(--vuelo-barra) var(--curva-barra),
                opacity .16s linear .12s, visibility .16s linear .12s; }
  html.barra-anima .nav-grito,
  html.barra-anima .nav-quieto { animation: barra-asoma var(--vuelo-barra) linear; }
}
@keyframes barra-asoma { 0%, 75% { opacity: 0; } 100% { opacity: 1; } }
#contenido { max-width: none; margin: 0 auto;
             transition: opacity .12s ease; }
#contenido.cambiando { opacity: 0; }
#contenido.ancho-total { max-width: none; }
#contenido.sin-marco { max-width: none; }
@media (min-width: 761px) {
  .lienzo:has(> .sin-marco) { padding: 0; }
}
.sub { color: var(--tinta-suave); font-size: var(--letra-cuerpo); margin: 2px 0 24px; }
.suave { color: var(--tinta-suave); font-size: var(--letra-cuerpo); }
a { color: var(--tinta-accion); text-decoration: none; }
.chip-sitio { border: 1px solid var(--borde); border-radius: 7px;
              background: var(--tarjeta); color: var(--tinta);
              font-size: var(--letra-cuerpo); font-weight: 500; padding: 7px 15px;
              transition: background .15s ease, border-color .15s ease; }
.chip-sitio:hover { border-color: var(--tinta-5); }
.chip-sitio.on { background: var(--ambar); border-color: var(--ambar);
                 color: var(--sobre-ambar); font-weight: 500; }
.pagina-dia > .cuentas, .pagina-alta > .cuentas { margin-bottom: 16px; }
.titulo-v2 { font-size: var(--letra-mayor); font-weight: 700; letter-spacing: 0;
             line-height: 1.15; }
.titulo-dato { font-size: var(--letra-subtitulo); color: var(--tinta-suave);
               white-space: nowrap; }
.acciones-fila .titulo-v2 { font-size: var(--letra-grande); }
.tira { position: relative; display: inline-flex; align-items: stretch; height: 34px;
        flex: none; border: 1px solid var(--borde); border-radius: var(--radio);
        background: var(--tarjeta); }
.tira-paso { width: 30px; display: grid; place-items: center; flex: none;
             color: var(--tinta-suave); text-decoration: none; cursor: pointer; }
.tira-paso:first-child { border-radius: var(--radio-dentro) 0 0 var(--radio-dentro); }
.tira-paso:last-child { border-radius: 0 var(--radio-dentro) var(--radio-dentro) 0; }
.tira-paso:hover { background: var(--fondo); color: var(--tinta); }
.tira-paso.apagado { opacity: .35; pointer-events: none; }
.tira-paso svg { width: 15px; height: 15px; }
.tira-fecha, .tira-centro { display: inline-flex; align-items: center; justify-content: center;
              gap: 7px; width: 176px; flex: none; padding: 0 10px; border: 0;
              border-left: 1px solid var(--borde); border-right: 1px solid var(--borde);
              background: none; color: var(--tinta); font-family: inherit;
              font-size: var(--letra-cuerpo); font-weight: 500; overflow: hidden; }
.tira-fecha { cursor: pointer; }
.tira-fecha:hover { background: var(--fondo); }
.tira-fecha > svg, .tira-centro > svg { width: 14px; height: 14px; color: var(--tinta-suave);
                                        flex: none; }
.tira-txt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tira-chev { display: none; }
:is(.asistencias, .stb-alta) .tira { border: 0; background: none; }
:is(.asistencias, .stb-alta) .tira .tira-paso { display: none; }
:is(.asistencias, .stb-alta) :is(.tira-fecha, .tira-centro) { width: auto; border: 0; border-radius: var(--radio);
  padding: 0 8px; cursor: pointer; }
:is(.asistencias, .stb-alta) :is(.tira-fecha, .tira-centro):hover,
:is(.asistencias, .stb-alta) :is(.tira-fecha, .tira-centro)[aria-expanded='true'] { background: var(--fondo); }
:is(.asistencias, .stb-alta) .tira-chev { display: block; width: 13px; height: 13px; color: var(--tinta-4); flex: none; }
.tira-menu { top: calc(100% + 6px); left: auto; right: 0; width: 230px; }
.tira-menu .accion { text-decoration: none; }
.tira-menu .accion.on { background: var(--ambar-palido); font-weight: 500; }
.tira-menu .accion .de { margin-left: auto; color: var(--tinta-suave); }
.tira-menu hr { border: 0; border-top: 1px solid var(--linea-suave); margin: 6px 0; }
button.tira-paso { border: 0; background: none; padding: 0; font: inherit; }
.tira-centro { cursor: default; }
.titulo-per { font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta-4); white-space: nowrap; }
.en-vivo { display: inline-flex; align-items: center; gap: 5px; font-size: var(--letra-etiqueta);
           font-weight: 500; color: var(--rojo); white-space: nowrap; }
.en-vivo::before { content: ''; width: 7px; height: 7px; border-radius: 50%; flex: none;
                   background: var(--rojo-vivo); animation: latido-camara 1.3s ease-in-out infinite; }
@keyframes latido-camara { 0%, 100% { opacity: 1; transform: scale(1); }
                           50% { opacity: .3; transform: scale(.72); } }
.tira-vivo { position: relative; width: 8px; height: 8px; margin: 0 5px 0 3px; flex: none;
             border-radius: 50%; background: var(--rojo-marca); }
.tira-vivo::after { content: ''; position: absolute; inset: -5px; border-radius: 50%;
                    background: color-mix(in srgb, var(--rojo-marca) 12%, transparent);
                    animation: latido-camara 1.3s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .tira-vivo::after { animation: none; } }
.tira-ahora { display: inline-flex; align-items: center; gap: 7px; padding: 0 8px;
              color: var(--tinta); font-size: var(--letra-cuerpo); font-weight: 500; white-space: nowrap; }
.tira-ahora > svg { width: 14px; height: 14px; flex: none; color: var(--tinta-suave); }
.vivo-insignia { display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 8px;
                 border-radius: var(--radio); background: var(--tinta-aviso); color: var(--tarjeta);
                 font-size: var(--letra-nota); font-weight: 500; white-space: nowrap; flex: none; }
.vivo-insignia i { position: relative; width: 7px; height: 7px; border-radius: 50%; flex: none;
                   background: currentColor; animation: vivo-parpadea 1.6s ease-in-out infinite; }
.vivo-insignia i::after { content: ''; position: absolute; inset: 0; border-radius: 50%;
                          background: currentColor; animation: vivo-late 1.6s ease-out infinite; }
@keyframes vivo-late { 0% { transform: scale(1); opacity: .55; } 100% { transform: scale(2.6); opacity: 0; } }
@keyframes vivo-parpadea { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .vivo-insignia i, .vivo-insignia i::after { animation: none; } }
.tira-cal { right: 0; left: auto; top: 42px; }
.ts-cabeza:has(.tira-cal, .tira-menu) { z-index: 40; }
.calendario .cal-dia.en-semana { background: var(--ambar); color: var(--sobre-ambar); font-weight: 500; }
.rep-cal .cal-dia.en-semana small { color: var(--sobre-ambar); }
.tira-cal .cal-dia.sobre:not(.en-semana) { background: var(--lienzo); }
.tira-cal .cal-dia.futuro { opacity: .35; cursor: default; }
.tira-cal .cal-pie { display: flex; justify-content: flex-end; margin-top: 6px; }
.tira-cal .cal-hoy { font-size: var(--letra-nota); font-weight: 500; color: var(--tinta-accion);
                     text-decoration: none; }
.segmento { display: flex; background: var(--tarjeta);
            border: 1px solid var(--borde); border-radius: var(--radio);
            padding: 3px; gap: 2px; }
.seg-btn { height: 30px; padding: 0 13px; display: flex;
           align-items: center; gap: 6px; border: 0; border-radius: 7px;
           background: transparent; color: var(--tinta-suave);
           font-family: inherit; font-size: var(--letra-cuerpo); font-weight: 500;
           cursor: pointer; white-space: nowrap; }
.seg-btn.on { background: var(--tarjeta); color: var(--tinta);
              font-weight: 500; box-shadow: var(--sombra-1); }
.seg-btn.apagado { opacity: .45; cursor: default; }
.btn-dia { height: 36px; padding: 0 15px; display: flex;
           align-items: center; gap: 8px; border: 1px solid var(--borde);
           background: var(--tarjeta); border-radius: var(--radio);
           font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta);
           text-decoration: none; white-space: nowrap; }
.btn-dia:hover { border-color: var(--tinta); }
.btn-dia svg { width: 16px; height: 16px; }
.cuentas { display: flex; align-items: center; gap: 24px;
           margin-top: 14px; flex-wrap: wrap; row-gap: 6px; }
.cuenta { display: flex; align-items: center; gap: 8px; border: 0;
          background: transparent; padding: 3px 0;
          border-bottom: 2px solid transparent; color: var(--tinta-suave);
          font-family: inherit; font-size: var(--letra-cuerpo); font-weight: 500;
          cursor: pointer; white-space: nowrap;
          font-variant-numeric: tabular-nums; }
.cuenta b { font-weight: 700; }
.cuenta .punto { width: 8px; height: 8px; flex: none; border-radius: 50%; }
.cuenta.on { border-bottom-color: var(--ambar); color: var(--tinta); }
.tarjeta-evidencia { position: absolute; top: 32px; z-index: 25;
                     min-width: 210px; max-width: 280px;
                     background: var(--tarjeta); border: 1px solid var(--borde);
                     border-radius: var(--radio); padding: 10px 14px;
                     display: flex; gap: 16px; animation: caeEv .18s ease;
                     box-shadow: var(--sombra-3); }
@keyframes caeEv { from { opacity: 0; transform: translateY(-4px); }
                   to { opacity: 1; transform: none; } }
.evento-ev { display: flex; flex-direction: column; gap: 3px;
             font-size: var(--letra-nota); }
.evento-ev .titulo-ev { font-size: var(--letra-etiqueta); color: var(--tinta-suave); }
.evento-ev .hora-ev { font-size: var(--letra-subtitulo); font-weight: 500;
                      font-variant-numeric: tabular-nums; }
.evento-ev img { width: 44px; height: 44px; border-radius: var(--radio);
                 object-fit: cover; }
.vacio { background: var(--tarjeta); border: 1px solid var(--borde);
         border-radius: var(--radio); padding: 48px 24px; text-align: center;
         color: var(--tinta-suave); }
.forma { display: flex; gap: 12px; flex-wrap: wrap; align-items: center;
         background: var(--lienzo); border: 1px solid var(--ambar);
         border-radius: var(--radio); padding: 9px 14px; margin-bottom: 14px;
         animation: caeEv .18s ease; }
.forma[hidden] { display: none; }
.campo { position: relative; flex: 1; min-width: 200px; }
.campo.crece { flex: 1.4; }
.campo.campo-numero { flex: 0 1 160px; min-width: 130px; }
.campo svg { position: absolute; left: 13px; top: 50%; margin-top: -8px;
             width: 16px; height: 16px; color: var(--tinta-4); pointer-events: none;
             transition: color .18s ease; }
.campo input { width: 100%; padding: 10px 12px 10px 39px; }
.campo input:focus ~ svg,
.campo input:not(:placeholder-shown) ~ svg { color: var(--tinta); }
.forma input { min-height: 38px; font-size: var(--letra-cuerpo); border: 1px solid var(--borde);
               border-radius: 7px; font-family: inherit; font-weight: 400;
               background: var(--tarjeta); }
.forma ::placeholder { color: var(--tinta-4); }
.abre-barra { border: 1px solid var(--borde); border-radius: 7px;
                 background: var(--tarjeta);
                 color: var(--tinta); cursor: pointer;
                 display: inline-flex; align-items: center;
                 justify-content: center; flex: none; position: relative;
                 box-shadow: var(--sombra-1);
                 transition: background .18s ease, color .18s ease,
                             border-color .18s ease,
                             transform .16s ease, box-shadow .18s ease; }
.abre-barra:hover, .abre-barra.prendido {
  background: var(--ambar); border-color: var(--ambar);
  color: var(--sobre-ambar); }
.abre-barra:hover { transform: translateY(-2px); box-shadow: var(--sombra-2); }
.abre-barra:active { transform: translateY(0) scale(.95);
                     box-shadow: var(--sombra-1); }
.abre-barra { height: 40px; padding: 0 14px; gap: 8px; font-family: inherit;
              font-size: var(--letra-cuerpo); font-weight: 500;
              color: var(--tinta-suave); }
.abre-barra:hover { color: var(--sobre-ambar); }
.abre-barra > svg { width: 14px; height: 14px; transition: transform .22s ease; }
.abre-barra.principal:hover > svg { transform: rotate(90deg); }
.abre-barra.solo-icono { aspect-ratio: 1; padding: 0; gap: 0; }
.abre-barra.solo-icono > svg { width: 18px; height: 18px; }
.abre-barra.solo-icono.con-icono { aspect-ratio: auto; width: 56px; gap: 3px; }
.abre-barra.con-icono > svg.ico { width: 17px; height: 17px; }
.abre-barra.con-icono > svg.mas { width: 12px; height: 12px; }
.abre-barra.con-icono:hover > svg.ico { transform: none; }
@keyframes campaneo { 0% { transform: rotate(0); }
                      25% { transform: rotate(13deg); }
                      50% { transform: rotate(-10deg); }
                      75% { transform: rotate(6deg); }
                      100% { transform: rotate(0); } }
.esperando { cursor: default; animation: boton-espera 1.1s ease-in-out infinite; }
.esperando:hover { transform: none; filter: none; }
@keyframes boton-espera { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
#buscar { width: 100%; }
#buscar::-webkit-search-cancel-button { -webkit-appearance: none;
                                        appearance: none; }
.campo-buscar .limpia { position: absolute; right: 7px; top: 50%;
                        margin-top: -13px; width: 26px; height: 26px;
                        border: 0; border-radius: 7px; background: transparent;
                        color: var(--tinta-4); cursor: pointer;
                        display: inline-flex; align-items: center;
                        justify-content: center;
                        transition: background .15s ease, color .15s ease; }
.campo-buscar .limpia:hover { background: var(--lienzo); color: var(--tinta); }
.campo-buscar .limpia[hidden] { display: none; }
.campo-buscar .limpia svg { position: static; margin: 0;
                            width: 13px; height: 13px; }
.lista { display: grid; gap: 10px; grid-template-columns: 1fr; }
.sitio { background: var(--tarjeta); border: 1px solid var(--borde);
         border-radius: var(--radio); }
.miembro { display: flex; align-items: center; gap: 12px; padding: 12px 16px;
           background: none; border: 0; min-width: 0;
           border-bottom: 1px solid var(--linea-suave);
           transition: background .15s ease, opacity .18s ease,
                       transform .18s ease; }
.sitio .miembro:last-child { border-bottom: 0; }
.miembro:hover { background: var(--lienzo); }
.retrato { position: relative; flex: none; display: inline-flex; }
.punto-estado.ancla { position: absolute; right: -2px; bottom: -2px;
                      width: 11px; height: 11px;
                      border: 2px solid var(--tarjeta); }
.avatar { width: 38px; height: 38px; border-radius: 50%; color: #fff;
          font-size: var(--letra-cuerpo); font-weight: 500; display: inline-flex; flex: none;
          align-items: center; justify-content: center;
          position: relative; overflow: hidden; }
.avatar img { position: absolute; inset: 0; width: 100%; height: 100%;
              object-fit: cover; }
.avatar .sube { position: absolute; inset: 0; display: flex; align-items: center;
                justify-content: center; background: rgba(40, 38, 34, .45);
                color: #fff; opacity: 0; cursor: pointer;
                transition: opacity .15s ease; }
.avatar:hover .sube, .avatar .sube:focus-within { opacity: 1; }
.avatar .sube svg { width: 14px; height: 14px; }
.quien { display: flex; flex-direction: column; line-height: 1.35; min-width: 0; }
.miembro .quien { flex: 1; }
.quien .nombre { font-weight: 500; font-size: var(--letra-cuerpo); white-space: nowrap;
                 overflow: hidden; text-overflow: ellipsis; }
.registra { display: inline-flex; align-items: center; gap: 9px; flex: none;
            font-size: var(--letra-cuerpo); color: var(--tinta-suave); white-space: nowrap;
            margin-right: 10px; }
.registra .carita { width: 28px; height: 28px; font-size: var(--letra-etiqueta);
                    margin-right: -8px; }
.registra .carita:last-child { margin-right: 0; }
.registra.nadie { color: var(--tinta-4); }
.pila { display: inline-flex; }
.carita { width: 24px; height: 24px; border-radius: 50%; color: #fff;
          font-size: var(--letra-etiqueta); font-weight: 500; display: inline-flex;
          align-items: center; justify-content: center; flex: none;
          border: 2px solid var(--tarjeta); margin-right: -8px; }
.carita:last-child { margin-right: 0; }
.tel { display: inline-flex; align-items: center; gap: 5px; }
.tel-linea { display: flex; align-items: center; flex-wrap: wrap;
             margin-top: 2px; font-size: var(--letra-cuerpo); color: var(--tinta-suave); }
.tel-linea > * + *::before { content: '•'; margin: 0 8px; font-size: var(--letra-etiqueta);
                             color: var(--tinta-5); }
.tel svg { width: 12.5px; height: 12.5px; flex: none; opacity: .8; }
.punto-estado { width: 9px; height: 9px; border-radius: 50%; flex: none;
                animation: late 2.2s ease-out infinite; }
.punto-estado.conectado { background: var(--verde-vivo); color: rgba(0, 169, 79, .42); }
.punto-estado.espera { background: var(--ambar-hondo);
                       color: rgba(224, 168, 0, .45); }
.punto-estado.perdido { background: var(--rojo-vivo); color: rgba(245, 52, 43, .4); }
@keyframes late { 0% { box-shadow: 0 0 0 0 currentColor; }
                  70%, 100% { box-shadow: 0 0 0 7px transparent; } }
.titulo { font-size: var(--letra-nota); font-weight: 700; letter-spacing: .14em;
          text-transform: uppercase; line-height: 1.3;
          color: var(--tinta-suave); }
.titulo .total { color: var(--tinta-suave); font-weight: 700;
                 font-size: var(--letra-nota); }
.acciones-fila { display: flex; align-items: center; gap: 8px;
                 margin-bottom: 14px; }
.acciones-alta { display: inline-flex; align-items: center; gap: 8px;
                 margin-left: auto; margin-right: 10px;
                 position: relative; }
.acciones-fila.sin-lupa .acciones-alta { margin-right: 0; }
.acciones-fila > .titulo { flex: none; margin-right: 2px; }
.manda { min-height: 38px; padding: 0 16px; border: 0;
         border-radius: 7px; background: var(--ambar);
         color: var(--sobre-ambar); font-family: inherit;
         font-size: var(--letra-cuerpo); font-weight: 700; cursor: pointer;
         position: relative; overflow: hidden; white-space: nowrap;
         transition: background .18s ease, transform .15s ease; }
.manda:hover { background: var(--ambar); filter: brightness(.95);
               transform: translateY(-1px); }
.salir-sitio { width: 32px; height: 32px; border: 0; border-radius: var(--radio);
               background: transparent; color: var(--tinta-suave);
               cursor: pointer; display: inline-flex; align-items: center;
               justify-content: center; transition: background .15s ease; }
.salir-sitio:hover { background: rgba(40, 38, 34, .06); }
.salir-sitio svg { width: 15px; height: 15px; }
.sitio-titulo { display: flex; align-items: center; gap: 8px;
                padding: 11px 16px; margin: 0;
                border-bottom: 1px solid var(--linea-suave);
                border-radius: var(--radio-dentro) var(--radio-dentro) 0 0;
                font-size: var(--letra-cuerpo); font-weight: 700; color: var(--tinta); }
.sitio-titulo svg { width: 15px; height: 15px; flex: none;
                    color: var(--tinta-suave); }
.sitio-titulo .suave { font-weight: 400; font-size: var(--letra-cuerpo); }
.campo-buscar { flex: 1; position: relative; }
.campo-buscar svg { position: absolute; left: 12px; top: 50%;
                    margin-top: -7px; width: 14px; height: 14px;
                    color: var(--tinta-4); pointer-events: none;
                    transition: color .18s ease; }
.campo-buscar input:focus ~ svg,
.campo-buscar input:not(:placeholder-shown) ~ svg { color: var(--tinta); }
aside { display: flex; flex-direction: column; }
aside .pestanas { flex: 1; min-height: 0; overflow-y: auto; }
aside .pestanas nav { flex: none; }
.nav-seccion { display: flex; align-items: center; padding: 12px 10px 11px; }
.nav-seccion i { flex: 1; height: 1px; background: var(--barra-linea); }
nav + .nav-seccion { padding-top: 11px; }
.rincon { flex: none; padding: 8px 0 0; }
.rincon nav { flex: none; overflow: visible; }
.rincon nav a:hover svg { animation: campaneo .5s ease; }
.miembro .modo { display: inline-flex; margin-left: auto; flex: none;
                 background: var(--fondo); border: 1px solid var(--borde);
                 border-radius: 7px; padding: 3px; gap: 2px; }
.palanca { width: 34px; height: 20px; border-radius: 10px; border: 0;
           position: relative; cursor: pointer; background: var(--ambar);
           flex: none; transition: background .18s ease; }
.palanca::after { content: ''; position: absolute; top: 2px; left: 16px;
                  width: 16px; height: 16px; border-radius: 50%;
                  background: #fff; transition: left .18s ease; }
.palanca.ind { background: var(--control); }
.palanca.ind::after { left: 2px; }
.palanca:hover { filter: brightness(.95); }
.acciones { position: relative; flex: none; margin-left: 2px; }
.kebab { width: 30px; height: 30px; border: 0; border-radius: var(--radio);
         background: transparent; color: var(--tinta-4); cursor: pointer;
         display: inline-flex; align-items: center; justify-content: center;
         transition: background .15s ease, color .15s ease, transform .15s ease; }
.kebab:hover { background: var(--lienzo); color: var(--tinta);
               transform: translateY(-1px); }
.kebab svg { width: 17px; height: 17px; }
.menucito { position: absolute; top: 36px; right: 0; z-index: 40;
            min-width: 185px; background: var(--tarjeta);
            border: 1px solid var(--borde); border-radius: var(--radio);
            overflow: hidden; animation: caeEv .18s ease;
            box-shadow: var(--sombra-3); }
.accion { display: flex; width: 100%; align-items: center; gap: 9px;
          height: 40px; padding: 0 14px; border: 0; background: none;
          font-family: inherit; font-size: var(--letra-cuerpo); line-height: 1;
          color: var(--tinta); cursor: pointer; text-align: left;
          transition: background .12s ease; }
.menucito > form { margin: 0; padding: 0; }
.menucito > :has(> .accion.peligro), .menucito > .accion.peligro {
  border-top: 1px solid var(--linea-suave); }
.accion:hover { background: var(--fondo); }
.accion svg { width: 15px; height: 15px; flex: none; }
.accion.peligro { color: var(--rojo); }
.busca-menu { position: sticky; top: 0; z-index: 1; display: flex;
              align-items: center; gap: 7px; padding: 8px 12px 8px 16px;
              background: var(--fondo);
              border-bottom: 1px solid var(--lienzo); }
.busca-menu svg { width: 13px; height: 13px; flex: none; color: var(--tinta-4); }
.busca-menu input { border: 0; background: transparent; width: 100%;
                    font-family: inherit; font-size: var(--letra-cuerpo); padding: 0;
                    color: var(--tinta); outline: none; }
.busca-menu input::-webkit-search-cancel-button { -webkit-appearance: none;
                                                  appearance: none; }
.su-gente { display: inline-flex; align-items: center; gap: 4px;
            margin-left: 9px; color: var(--tinta-aviso); font-weight: 500; }
.su-gente svg { width: 12px; height: 12px; }
.miembro.se-va, .gafete.se-va { opacity: 0; transform: scale(.94); }
.gafetes { display: grid; gap: 10px;
           grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gafete { display: flex; align-items: center; gap: 12px; padding: 11px 14px;
          background: var(--tarjeta); border: 1px solid var(--borde);
          border-radius: var(--radio); min-width: 0;
          transition: border-color .15s ease, opacity .18s ease,
                      transform .18s ease; }
.gafete:hover { border-color: var(--tinta-5); }
.gafete .acciones { margin-left: auto; }
.taller { display: grid; grid-template-columns: auto minmax(0, 1fr);
          gap: var(--aire); align-items: start; }
.espejo { display: flex; flex-direction: column; align-items: center;
          gap: 12px; }
.relevo { min-width: 0; width: 100%; }
.bot-tarjeta.on:has(#creador:not([hidden])) .cara-ed { display: none; }
.bot-tarjeta.on > .creador { border-top: 1px solid var(--linea-suave);
                             padding: 11px 14px 14px; }
.punto-cambios { width: 6px; height: 6px; border-radius: 50%;
                 flex: none; background: var(--ambar); }
.acciones-fila.sin-lupa { padding-right: 0; }
.tel-marco { position: relative; }
.tel-reinicia { position: absolute; top: -9px; right: -9px; z-index: 2;
                width: 30px; height: 30px; border: 1px solid var(--borde);
                border-radius: 50%; background: var(--tarjeta);
                color: var(--tinta-4); cursor: pointer; display: inline-flex;
                align-items: center; justify-content: center;
                transition: background .15s ease, color .15s ease; }
.tel-reinicia:hover { background: var(--lienzo); color: var(--tinta); }
.tel-reinicia svg { width: 14px; height: 14px; }
.telefono { border: 1px solid var(--borde); border-radius: 28px;
            background: var(--tarjeta); overflow: hidden; width: 342px;
            height: clamp(520px, 100vh - var(--franja) - 2 * var(--aire), 780px);
            display: flex; flex-direction: column;
            box-shadow: var(--sombra-3); }
.telefono.editando { outline: 2px dashed #E0BE5C; outline-offset: 4px; }
.tel-edicion { display: flex; align-items: center; justify-content: center;
               gap: 7px; background: var(--lienzo); color: var(--tinta-aviso);
               font-size: var(--letra-nota); font-weight: 500; padding: 7px;
               border-bottom: 1px solid var(--borde); flex: none; }
.tel-edicion[hidden] { display: none; }
.tel-edicion svg { width: 13px; height: 13px; }
.tel-de { position: relative; display: flex; align-items: center;
          justify-content: center; gap: 6px; flex: none; padding: 5px 12px;
          background: var(--lienzo); border-bottom: 1px solid var(--borde);
          font-size: var(--letra-nota); color: var(--tinta-suave); }
.tel-de-boton { display: inline-flex; align-items: center; gap: 6px;
                max-width: 100%; min-width: 0; border: 0; background: none;
                padding: 4px 6px; border-radius: 7px; font-family: inherit;
                font-size: var(--letra-nota); color: var(--tinta-suave); cursor: pointer;
                transition: background .15s ease, color .15s ease; }
.tel-de-boton > span { min-width: 0; white-space: nowrap; overflow: hidden;
                       text-overflow: ellipsis; }
.tel-de-boton b { font-weight: 500; color: var(--tinta); }
.tel-de-boton:not(:disabled):hover { background: var(--tarjeta); color: var(--tinta); }
.tel-de-boton:disabled { cursor: default; }
.tel-de-boton svg { width: 13px; height: 13px; flex: none; }
.tel-de .menucito { top: 34px; right: 12px; left: 12px; }
.tel-de .menucito .accion { text-decoration: none; }
.tel-de .menucito .accion.on { color: var(--tinta-accion); }
.tel-de-nombre .suave { font-weight: 400; color: var(--tinta-4); }
.tel-de.vacio { color: var(--tinta-aviso); font-weight: 500; flex-wrap: wrap;
                padding: 8px 12px; }
.tel-de.vacio svg { width: 13px; height: 13px; flex: none; }
.tel-de-liga { font-weight: 500; color: var(--tinta-accion); text-decoration: none;
               border-bottom: 1px solid currentColor; }
.vivo-marco { position: relative; height: 0; overflow: visible;
              flex: none; z-index: 4; }
.tel-vivo { position: absolute; top: 7px; left: 0; right: 0;
            margin: 0 auto; width: min(84%, 300px);
            display: flex; align-items: center;
            gap: 7px; padding: 3px 9px; background: var(--tarjeta);
            border-radius: 999px;
            box-shadow: var(--sombra-2); }
.tel-vivo[hidden] { display: none; }
.vivo-marco:has(.tel-vivo:not([hidden])) ~ .tel-chat {
  padding-top: 42px; }
.vivo-faro { width: 15px; height: 15px; flex: none; color: var(--tinta); }
.vivo-letras { flex: 1; min-width: 0; line-height: 1.25;
               text-align: center; }
.vivo-letras b { display: block; font-size: 12.5px; font-weight: 500;
                 color: var(--tinta); }
.vivo-apaga { width: 20px; height: 20px; flex: none; border: 0;
              border-radius: 50%; background: none;
              color: var(--tinta-2); cursor: pointer;
              display: inline-flex; align-items: center;
              justify-content: center;
              transition: background .15s ease, color .15s ease; }
.vivo-apaga:hover { background: #E4E0D5; color: var(--tinta); }
.vivo-apaga svg { width: 12px; height: 12px; }
.tel-atras.viva { cursor: pointer; }
.tel-barra { display: flex; justify-content: space-between;
             align-items: center; padding: 14px 26px 3px; flex: none; }
.tel-hora { font-size: 14px; font-weight: 700;
            font-variant-numeric: tabular-nums; }
.tel-senales { display: inline-flex; align-items: center; gap: 5px;
               color: var(--tinta); }
.tel-senales svg { height: 12px; width: auto; }
.tel-cabeza { display: flex; align-items: center; gap: 8px;
              font-weight: 700; font-size: 17px; flex: none;
              padding: 8px 14px 11px;
              border-bottom: 1px solid var(--borde); }
.tel-cabeza .suave { font-weight: 400; font-size: 15px; }
.tel-atras { display: inline-flex; color: var(--tinta); }
.tel-atras svg { width: 20px; height: 20px; }
.tel-nombre { flex: 1; text-align: center; }
.tel-avatar { width: 33px; height: 33px; border-radius: 50%; flex: none;
              background: var(--ambar); color: var(--sobre-ambar);
              font-size: 14px; font-weight: 700; display: inline-flex;
              align-items: center; justify-content: center; }
.tel-chat { background: var(--tarjeta); padding: 16px 14px; flex: 1;
            min-height: 0; overflow-y: auto; scroll-behavior: smooth;
            display: flex; flex-direction: column; gap: 9px; }
.burbuja { max-width: 84%; padding: 9px 12px; border-radius: 12px;
           font-size: 13.5px; line-height: 1.45; flex: none; }
.burbuja.bot { background: var(--lienzo);
               border-bottom-left-radius: 5px; align-self: flex-start; }
.burbuja.yo { background: var(--ambar); color: var(--sobre-ambar);
              border-bottom-right-radius: 5px; align-self: flex-end;
              font-weight: 700; }
.burbuja.yo.con-hab {
  background: var(--tarjeta);
  color: var(--tinta);
  border: 1.5px solid var(--hab); }
.burbuja.yo.mapa, .burbuja.yo.fotito { padding: 0; overflow: hidden;
                                       line-height: 0; }
.burbuja-mapa { display: block; width: 200px; height: 108px;
                position: relative; background:
                  repeating-linear-gradient(0deg, transparent 0 23px,
                    rgba(40, 38, 34, .06) 23px 24px),
                  repeating-linear-gradient(90deg, transparent 0 23px,
                    rgba(40, 38, 34, .06) 23px 24px),
                  linear-gradient(135deg, #E7EBE2, #DFE5DB); }
.burbuja-mapa svg { position: absolute; left: 50%; top: 50%;
                    width: 26px; height: 26px; margin: -22px 0 0 -13px;
                    color: #D92D20; }
.burbuja-foto { display: grid; place-items: center; width: 148px;
                height: 108px; background:
                  linear-gradient(135deg, #E9E6DF, #DEDAD1); }
.burbuja-foto svg { width: 24px; height: 24px; color: #A39B8A; }
.tel-teclado { background: #EFECE3; padding: 8px; display: flex;
               flex-direction: column; gap: 5px; flex: none;
               max-height: 236px; overflow-y: auto; }
.tel-teclado:has(.tec-rueda) { overflow: hidden; }
.tec-rueda { display: flex; flex-direction: column; gap: 5px;
             min-height: 0; overflow-y: auto;
             overscroll-behavior: contain; }
.tel-escribe { display: flex; align-items: center; gap: 8px;
               background: #EFECE3; padding: 8px 10px 10px;
               position: relative; }
.tel-escribe[hidden] { display: none; }
.tel-clip { width: 28px; height: 28px; flex: none; color: #9B9284;
            border: 0; background: none; cursor: pointer; padding: 4px;
            border-radius: 50%; display: inline-flex;
            transition: background .15s ease, color .15s ease; }
.tel-clip:hover { background: #E4E0D5; color: var(--tinta); }
.tel-clip svg { width: 20px; height: 20px; }
.tel-clip.pide-clip { color: var(--tinta-accion);
                      animation: late-hab 2.2s ease-in-out infinite; }
.clip-menu { position: absolute; left: 10px; bottom: 52px; z-index: 4;
             background: var(--tarjeta); border: 1px solid var(--borde);
             border-radius: 10px; box-shadow: var(--sombra-3);
             padding: 4px; min-width: 150px; }
.clip-menu[hidden] { display: none; }
.clip-menu button { display: flex; align-items: center; gap: 9px;
                    width: 100%; border: 0; background: none;
                    padding: 8px 11px; border-radius: 7px;
                    font-size: 13.5px; font-weight: 500;
                    color: var(--tinta); cursor: pointer; }
.clip-menu button:hover { background: var(--hover); }
.clip-menu svg { width: 15px; height: 15px; color: var(--tinta-suave); }
#tel-texto { flex: 1; min-width: 0; height: 34px; padding: 0 14px;
             border: 1px solid #E0DBCF; border-radius: 17px;
             background: var(--tarjeta); font-family: inherit;
             font-size: 13.5px; color: var(--tinta); }
#tel-texto::placeholder { color: #A39B8A; }
#tel-envia { width: 34px; height: 34px; flex: none; border: 0;
             border-radius: 50%; background: var(--ambar);
             color: var(--sobre-ambar); cursor: pointer;
             display: inline-flex; align-items: center;
             justify-content: center; }
#tel-envia svg { width: 16px; height: 16px; }
#tel-envia:disabled { background: var(--sup-2); color: var(--tinta-5); cursor: default; }
.tel-clip:disabled { color: var(--tinta-5); cursor: default; background: none; }
.tec-fila { display: flex; gap: 5px; flex: none; }
.tecla { flex: 1; min-width: 0; background: var(--tarjeta);
         border: 1px solid var(--borde);
         border-radius: 9px; text-align: center; height: 32px;
         line-height: 30px; padding: 0 9px;
         font-size: 13px; font-weight: 400; color: var(--tinta);
         white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
         cursor: pointer; user-select: none;
         transition: background .15s ease, border-color .15s ease,
                     transform .12s ease; }
.tecla:hover { background: var(--lienzo); border-color: var(--ambar);
               transform: translateY(-1px); }
.tecla:active { transform: scale(.97); }
.chips { position: absolute; top: -12px; right: -7px; z-index: 3;
         display: none; gap: 4px; }
.chip { width: 22px; height: 22px; border-radius: 50%;
        background: var(--tarjeta); border: 1px solid var(--borde);
        color: var(--tinta-suave); cursor: pointer; display: inline-flex;
        align-items: center; justify-content: center;
        box-shadow: var(--sombra-1);
        transition: background .15s ease, color .15s ease,
                    border-color .15s ease; }
.chip svg { width: 11px; height: 11px; }
.chip:hover { color: var(--tinta); border-color: var(--tinta-5); }
.chip-quita:hover { background: var(--rojo-palido); border-color: var(--rojo);
                    color: var(--rojo); }
.lado { min-width: 0; }
.seccion-titulo { display: flex; align-items: center;
                  font-size: var(--letra-nota); font-weight: 500;
                  letter-spacing: 0; text-transform: none;
                  color: var(--tinta-suave); margin: 4px 0 10px; }
.lado-presets { min-width: 0; width: 100%; display: flex;
                flex-direction: column;
                height: clamp(520px, 100vh - var(--franja) - 2 * var(--aire), 780px); }
.bots-carril { overflow-y: auto; flex: 1; min-height: 0;
               padding-right: 6px; margin-right: -6px; scrollbar-width: thin;
               scrollbar-color: var(--control) transparent; }
.bots-carril::-webkit-scrollbar { width: 8px; }
.bots-carril::-webkit-scrollbar-thumb { background: var(--control);
                                        border-radius: 999px; }
.bots-carril::-webkit-scrollbar-track { background: transparent; }
.lado-presets .seccion-titulo { flex: none; }
.bots-tabla th.bt-c-bot { width: 180px; }
.bots-tabla th.bt-c-botones { width: auto; }
.bots-tabla th.bt-c-tels { width: 230px; }
.bots-tabla th.bt-c-estado { width: 160px; }
.bots-tabla th > button { cursor: default; }
.bots-tabla .bot-reng[data-liga] { cursor: pointer; }
.bots-tabla .bot-reng.abierto > td { background: var(--hover); overflow: visible; }
.bots-tabla { --marco: 1.5px; }
.bots-tabla .bot-reng.abierto > td { border-top-color: transparent;
                                     box-shadow: inset 0 var(--marco) 0 var(--ambar); }
.bots-tabla .bot-reng.abierto > td:first-child {
  box-shadow: inset var(--marco) var(--marco) 0 var(--ambar);
  border-top-left-radius: var(--radio-dentro); }
.bots-tabla .bot-reng.abierto > td:last-child {
  box-shadow: inset calc(-1 * var(--marco)) var(--marco) 0 var(--ambar);
  border-top-right-radius: var(--radio-dentro); }
.bots-tabla tr.bot-abierto > td {
  box-shadow: inset var(--marco) calc(-1 * var(--marco)) 0 var(--ambar),
              inset calc(-1 * var(--marco)) 0 0 var(--ambar);
  border-bottom-left-radius: var(--radio-dentro);
  border-bottom-right-radius: var(--radio-dentro); }
.bots-tabla:has(.bot-reng.abierto) .bot-reng:not(.abierto):not(:hover)
  :is(.per-nombre, .bot-cuantos, .bot-al-dia, .bot-sin-subir, .bot-tel-nombre, .bot-mas) {
  color: var(--tinta-suave); }
.bots-tabla:has(.bot-reng.abierto) .bot-reng:not(.abierto):not(:hover) :is(.bot-robot, .per-sitio svg) {
  color: var(--tinta-5); }
.bots-tabla:has(.bot-reng.abierto) .bot-reng:not(.abierto):not(:hover) .bot-sin-subir i {
  background: var(--tinta-5); }
.bots-tabla:has(.bot-reng.abierto) .bot-reng:not(.abierto):not(:hover) .carita.bot-circ {
  color: var(--tinta-5); }
.bot-circulo .bot-robot { width: 17px; height: 17px; color: var(--rojo-marca); }
.bots-tabla .bot-liga { color: var(--tinta); text-decoration: none; }
.bots-tabla .tel-quien[hidden] { display: none; }
.bots-tabla .renombra-forma .bot-nace { height: 34px; }
.bot-pila { display: inline-flex; align-items: center; gap: 10px; }
.bots-tabla .bot-reng { --anillo: var(--tarjeta); }
.bots-tabla .bot-reng.abierto, .bots-tabla .bot-reng:hover { --anillo: var(--hover); }
.carita.bot-circ { background: var(--tarjeta); color: var(--hab); border: 1px solid var(--borde);
                   box-shadow: 0 0 0 2px var(--anillo, var(--tarjeta)); }
.carita.bot-circ .hab-icono { width: 13px; height: 13px; color: inherit; animation: none; }
.bot-cuantos { color: var(--tinta-suave); }
.bot-nada { color: var(--tinta-4); }
.per-tabla.bots-tabla td.bt-c-botones { overflow: visible; }
.bots-tabla .bot-pila { position: relative; margin-right: 0; }
.bot-pila-menu { top: 34px; left: -10px; right: auto; width: 270px;
                 max-height: 290px; overflow: auto; cursor: default; }
.bot-pila-menu .accion { gap: 10px; cursor: default; }
.bot-pila-menu .accion:hover { background: none; }
.bot-pila-nombre { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis;
                   white-space: nowrap; }
.bot-pila-hab { flex: none; font-size: var(--letra-nota); color: var(--tinta-4); }
.bot-botones-fila { display: flex; align-items: center; gap: 8px; }
.bot-agrega { position: relative; display: inline-flex; flex: none; }
.bot-agrega-boton { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%;
                    background: var(--ambar); color: var(--sobre-ambar); cursor: pointer;
                    display: inline-flex; align-items: center; justify-content: center;
                    transition: background .15s ease; }
.bot-agrega-boton:hover, .bot-agrega-boton[aria-expanded='true'] { background: var(--ambar-hondo); }
.bot-agrega-boton svg { width: 16px; height: 16px; }
.bot-agrega-menu { top: 36px; left: -6px; right: auto; width: 230px; }
.bot-traer-dice { flex: 1; }
.bot-traer-n { color: var(--tinta-suave); font-variant-numeric: tabular-nums; }
.accion .bot-traer-flecha { width: 14px; height: 14px; color: var(--tinta-4); }
.bot-traer.on { background: var(--fondo); }
.bot-traer:disabled { color: var(--tinta-4); cursor: default; }
.bot-traer:disabled:hover { background: none; }
.bot-trae-menu { top: 71px; left: 230px; right: auto; width: 250px;
                 max-height: 290px; overflow: auto; }
.bot-trae-menu.debajo { top: 124px; left: -6px; }
.bot-trae { gap: 10px; }
.bot-trae-nombre { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis;
                   white-space: nowrap; }
.bot-trae-de { flex: none; max-width: 90px; overflow: hidden; text-overflow: ellipsis;
               white-space: nowrap; font-size: var(--letra-nota); color: var(--tinta-4); }
.pieza-circ.chica { width: 22px; height: 22px; }
.pieza-circ.chica .hab-icono { width: 11px; height: 11px; }
.bot-mas { flex: none; margin-left: 8px; color: var(--tinta-suave);
           font-variant-numeric: tabular-nums; }
.bot-tels-fila { display: flex; align-items: center; min-width: 0; }
.bot-tels-fila .per-sitio { min-width: 0; }
.bot-tel-nombre { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.bot-tel-sel { position: relative; display: inline-flex; min-width: 0; }
.tel-de-boton.bot-tel-boton { height: 30px; padding: 0 8px 0 9px; gap: 6px;
                              border: 1px solid var(--borde); border-radius: var(--radio);
                              background: var(--tarjeta); font-size: var(--letra-cuerpo);
                              color: var(--tinta); }
.tel-de-boton.bot-tel-boton svg { width: 14px; height: 14px; }
.tel-de-boton.bot-tel-boton svg:first-child { color: var(--rojo-marca); }
.tel-de-boton.bot-tel-boton svg:last-child:not(:first-child) { color: var(--tinta-4); }
.tel-de-boton.bot-tel-boton:not(:disabled):hover { border-color: var(--tinta-5);
                                                    background: var(--tarjeta); }
.bot-tel-menu { top: 36px; right: auto; left: 0; width: 270px; }
.bot-tel-busca { padding: 6px 6px 4px; }
.bot-tel-busca input { width: 100%; height: 34px; padding: 0 10px; border: 1px solid var(--borde);
                       border-radius: var(--radio); font-family: inherit;
                       font-size: var(--letra-cuerpo); color: var(--tinta); }
.bot-tel-busca input:focus { outline: none; border-color: var(--ambar); }
.bot-tel-lista { max-height: 290px; overflow: auto; }
.bot-tel-menu .accion.on { color: var(--tinta-accion); }
.bot-tel-paloma { margin-left: auto; width: 15px; height: 15px; flex: none; }
.bot-sin-subir { display: inline-flex; align-items: center; gap: 7px;
                 color: var(--tinta-aviso); }
.bot-sin-subir i { width: 6px; height: 6px; border-radius: 50%; background: var(--ambar); }
.bot-al-dia { color: var(--tinta-suave); }
.bot-sube { display: inline-flex; align-items: center; gap: 8px; }
.bot-sube form { margin: 0; }
.bot-deshacer-ico { width: 30px; height: 30px; padding: 0; border: 0;
                    border-radius: var(--radio); background: none;
                    color: var(--tinta-accion); cursor: pointer;
                    display: inline-flex; align-items: center; justify-content: center; }
.bot-deshacer-ico svg { width: 17px; height: 17px; }
.bot-deshacer-ico:hover { background: var(--sup-2); }
.bots-tabla tr.bot-abierto { height: auto; }
.bots-tabla tr.bot-abierto > td { padding: 2px 18px 8px 72px; white-space: normal;
                                  border-top: 0; }
.bots-tabla .bot-tarjeta, .bots-tabla .bot-tarjeta.on { border: 0; border-radius: 0;
                                                        margin: 0; background: none; }
.bots-tabla .bot-tarjeta:hover { border-color: transparent; }
.bots-tabla .bot-tarjeta.on .cara-ed { border-top: 0; padding: 0; }
.bots-tabla .bot-desnudo { padding-top: 10px; }
.bots-caja { container: bots / inline-size; }
.bots-tabla { min-width: 480px; }
@container bots (max-width: 779px) {
  .bots-tabla th.bt-c-bot { width: 22%; }
  .bots-tabla th.bt-c-botones { width: 116px; }
  .bots-tabla th.bt-c-tels { width: auto; }
  .bots-tabla th.bt-c-estado { width: 160px; }
  .bot-cuantos, .bot-botones-fila > .bot-pila { display: none; }
}
@container bots (max-width: 639px) {
  .bots-tabla th.bt-c-bot { width: 27%; }
  .bots-tabla th.bt-c-botones { width: 44px; }
  .bots-tabla .bt-c-botones { padding-left: 8px; padding-right: 8px; }
  .bots-tabla th.bt-c-botones > *, .bots-tabla td.bt-c-botones > .bot-pila,
  .bots-tabla td.bt-c-botones > .bot-nada,
  .bots-tabla .bot-reng.abierto .bot-mas { display: none; }
  .bots-tabla tr.bot-abierto > td { padding-left: 12px; }
  .bots-tabla .pieza-lista .pieza-nombre { width: 110px; }
}
.bot-tarjeta.on { border: 1px solid var(--borde); }
.bot-tarjeta.on:hover { border-color: var(--borde); }
.bot-tarjeta.on .cara-ed { border-top: 1px solid var(--linea-suave);
                           padding: 11px 14px 12px; }
.bot-tarjeta.on .bot-adentro { border-top: 0; margin: 0; }
.bot-tarjeta { position: relative; background: var(--tarjeta);
               border: 1px solid var(--borde); border-radius: var(--radio);
               margin-bottom: var(--aire);
               transition: border-color .15s ease, background .15s ease,
                           box-shadow .15s ease; }
.bot-tarjeta:hover { border-color: var(--tinta-5); }
.bot-robot { width: 18px; height: 18px; flex: none; color: var(--tinta-suave); }
.bot-liga { display: block; text-decoration: none; color: inherit; }
.bot-adentro { border-top: 1px solid var(--borde); margin: 12px 16px 0;
               padding: 0; }
.renombra-forma[hidden] { display: none; }
.bot-liga[hidden], .bot-adentro[hidden] { display: none; }
.bot-crea { margin-left: auto; width: 26px; height: 26px; flex: none;
            border: 1px solid var(--borde); border-radius: var(--radio);
            background: var(--tarjeta); color: var(--tinta-suave);
            cursor: pointer; display: inline-flex;
            align-items: center; justify-content: center;
            transition: background .15s ease, border-color .15s ease,
                        color .15s ease; }
.bot-crea:hover { background: var(--ambar); border-color: var(--ambar);
                  color: var(--sobre-ambar); transform: translateY(-1px); }
.bot-crea svg { width: 14px; height: 14px;
                transition: transform .22s ease; }
.bot-crea:hover svg { transform: rotate(90deg); }
.bot-crea[hidden] { display: none; }
.bot-nace { width: 100%; border: 1.5px solid var(--ambar);
            border-radius: var(--radio); background: var(--tarjeta);
            padding: 11px 12px; font-family: inherit; font-size: var(--letra-cuerpo);
            font-weight: 500; color: var(--tinta); outline: none;
            text-align: center; }
.bot-nace::placeholder { color: var(--tinta-suave); font-weight: 500; }
.bots-tabla .bot-nace-reng { cursor: default; }
.bots-tabla .bot-nace-reng > td,
.bots-tabla .bot-nace-reng:hover > td { background: var(--ambar-palido); }
.bot-nace-forma { display: flex; align-items: center; gap: 12px; }
.bot-nace-forma .bot-nace { flex: 1; min-width: 0; height: 34px; padding: 0 10px;
                            text-align: left; }
.bot-nace-forma .manda { flex: none; min-height: 34px; }
.bots-vacio { background: var(--tarjeta); border: 1px solid var(--borde);
              border-radius: var(--radio); padding: 22px 20px; text-align: center;
              color: var(--tinta-suave); font-size: var(--letra-cuerpo); line-height: 1.5; }
.bots-vacio p { margin: 0; }
.bots-vacio-titulo { font-size: var(--letra-subtitulo); font-weight: 700; color: var(--tinta);
                     margin-bottom: 4px !important; }
.arbol-editor { width: 100%; display: flex; flex-direction: column;
                height: clamp(520px, 100vh - var(--franja) - 2 * var(--aire), 780px); }
.arbol-editor[hidden] { display: none; }
.relevo:has(#arbol-editor:not([hidden])) .lado-presets { display: none; }
.arbol-cabeza { gap: 12px; flex: none; }
.arbol-zoom { display: inline-flex; align-items: center; gap: 6px;
              margin-left: auto; color: var(--tinta-4); }
.arbol-zoom svg { width: 14px; height: 14px; }
.arbol-zoom input { width: 90px; accent-color: var(--ambar); }
.arbol-cabeza .creador-cierra { margin-left: 0; }
.arbol-vuelve { flex: none; }
.arbol-vuelve svg { width: 16px; height: 16px; }
.arbol-vista { position: relative; overflow: auto; cursor: grab;
               border: 1px solid var(--borde); border-radius: var(--radio);
               background: var(--tarjeta);
               flex: 1; min-height: 0;
               scrollbar-width: thin;
               scrollbar-color: var(--control) transparent; }
.arbol-vista.arrastrando { cursor: grabbing; }
.arbol-vista.arrastrando .caja { pointer-events: none; }
.arbol-llega { margin-top: 12px; flex: none; }
.arbol-llega[hidden] { display: none; }
.arbol-llega .seccion-titulo { margin: 0 2px 6px; }
.arbol-llega .sitio { pointer-events: none; }
.arbol-lienzo { position: relative; margin: 0 auto; }
.arbol-lienzo #arbol-lineas { position: absolute; left: 0; top: 0;
                              pointer-events: none; }
.arbol-lienzo .rama { fill: none; stroke: var(--tinta-5); stroke-width: 1.5; }
.arbol-lienzo .rama-on { fill: none; stroke: var(--hab); stroke-width: 2; }
.caja { position: absolute; box-sizing: border-box; width: 140px;
        height: 34px; display: flex; align-items: center; gap: 6px;
        padding: 0 9px; border-radius: var(--radio); border: 1px solid var(--borde);
        background: var(--tarjeta); color: var(--tinta);
        font-size: var(--letra-cuerpo); font-weight: 500; white-space: nowrap;
        overflow: hidden; cursor: pointer;
        transition: border-color .15s ease, background .15s ease; }
.caja .hab-icono { width: 13px; height: 13px; }
.caja-titulo { flex: 1; min-width: 0; overflow: hidden;
               text-overflow: ellipsis; }
.caja-n { font-size: var(--letra-etiqueta); color: var(--tinta-4); }
.caja-op { border-color: color-mix(in srgb, var(--hab) 45%, var(--borde)); }
.caja-op:hover { background: var(--sup-2); }
.caja.en-camino { border-color: var(--hab); }
.caja.on { border: 2px solid var(--hab); padding: 0 8px; }
.caja-q { background: var(--sup-2); color: var(--tinta-suave);
          font-weight: 400; font-size: var(--letra-nota); }
.caja-q .robot { width: 13px; height: 13px; flex: none; }
.caja-q.vacia { border-style: dashed; background: transparent;
                color: var(--tinta-4); }
.caja-mas { border: 1px dashed var(--tinta-5); background: transparent;
            color: var(--tinta-suave); justify-content: center; }
.caja-mas:hover { border-color: var(--tinta-accion); color: var(--tinta-accion); }
.caja-gente { background: var(--sup-2);
              border-color: color-mix(in srgb, var(--hab) 45%, var(--borde)); }
.caja-gente:hover { background: var(--tarjeta); }
.caja-gente .candado { width: 11px; height: 11px; flex: none;
                       color: var(--tinta-4); }
.caja-gente > svg:first-child,
.caja-turno-var > svg:first-child { width: 15px; height: 15px; flex: none;
                                    color: var(--tinta-suave); }
.caja-turno-var.vacia { border-style: dashed; }
.caja-op .candado, .caja-q .candado,
.caja-paso .candado { width: 11px; height: 11px;
                                      flex: none; color: var(--tinta-4);
                                      margin-left: auto; }
.caja-paso { padding-right: 5px; }
.caja-paso > svg:first-child { width: 14px; height: 14px; flex: none;
                               color: var(--tinta-suave); }
.ajuste-mini { margin-left: auto; display: inline-flex; gap: 2px; flex: none; }
.ajuste-mini button { width: 22px; height: 22px; border: 0; border-radius: 6px;
                      padding: 0; background: transparent; color: var(--tinta-4);
                      cursor: pointer; display: inline-flex; align-items: center;
                      justify-content: center;
                      transition: background .15s ease, color .15s ease; }
.ajuste-mini button svg { width: 13px; height: 13px; }
.ajuste-mini button:hover { color: var(--tinta); background: var(--sup-2); }
.ajuste-mini button.on { color: var(--hab-texto); background: var(--sup-2); }
.caja.apagada { border-style: dashed; border-color: var(--tinta-5);
                background: transparent; color: var(--tinta-suave); }
.caja.apagada > svg:first-child { color: var(--tinta-4); }
.caja-acuse { color: var(--tinta-suave); font-weight: 400; cursor: default; }
.caja-acuse svg { width: 13px; height: 13px; flex: none; color: var(--verde); }
.caja-fija { cursor: default; }
.caja-gente.caja-fija:hover { background: var(--sup-2); }
.caja-despues { border-style: dashed; }
.arbol-lienzo .rama-despues { stroke-dasharray: 3 3; }
.arbol-llega .llega-dia { pointer-events: none; padding: 8px 13px; gap: 8px;
                          background: var(--tarjeta);
                          border: 1px solid var(--hab);
                          box-shadow: 0 0 0 1px var(--hab);
                          border-radius: var(--radio); }
.arbol-llega .llega-dia .avatar.chico { width: 30px; height: 30px;
                                        flex: 0 0 30px; }
.arbol-llega .llega-dia .quien-dia { width: auto; flex: 0 1 auto;
                                     margin-right: 4px; }
.arbol-llega .llega-dia .horas { justify-content: flex-end; }
.llega-turno { color: var(--tinta-suave); font-weight: 400; font-size: var(--letra-nota); }
.panel-fijo { font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta); }
.panel-fijo-dice { display: inline-flex; align-items: flex-start; gap: 5px;
                   flex: 1 1 0; min-width: 0; white-space: normal;
                   line-height: 1.4; }
.panel-fijo-dice .candado { width: 11px; height: 11px; flex: none;
                            margin-top: 3px; color: var(--tinta-4); }
.arbol-panel { margin-top: 10px; flex: none; display: flex; flex-wrap: wrap;
               align-items: center; gap: 8px 14px; padding: 10px 14px;
               border: 1px solid var(--borde); border-radius: var(--radio);
               background: var(--tarjeta); font-size: var(--letra-cuerpo); }
.arbol-panel:empty { display: none; }
.panel-nodo { display: inline-flex; align-items: center; gap: 7px;
              color: var(--hab-texto); }
.panel-nombre { width: 170px; height: 30px; border: 1px solid var(--borde);
                border-radius: var(--radio); padding: 0 9px; font-family: inherit;
                font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta);
                background: var(--tarjeta); }
.panel-nombre:focus { outline: none; border-color: var(--ambar); }
.panel-dice { font-size: var(--letra-nota); color: var(--tinta-suave); }
.panel-para { display: inline-flex; align-items: center; gap: 8px;
              margin-left: auto; }
.arbol-panel .segmento { padding: 3px; }
.arbol-panel .seg-btn { height: 27px; padding: 0 11px; font-size: var(--letra-nota); }
.panel-reglas { flex-basis: 100%; display: flex; flex-wrap: wrap; align-items: center;
                gap: 8px 24px; padding-top: 10px;
                border-top: 1px solid var(--linea-suave); }
.panel-regla { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.panel-regla > .panel-dice { white-space: nowrap; }
.caja-mas.escribiendo { border-style: solid; border-color: var(--ambar);
                        background: var(--tarjeta); padding: 0 6px;
                        cursor: text; }
.caja-nueva { width: 100%; height: 100%; border: 0; background: transparent;
              font-family: inherit; font-size: var(--letra-cuerpo); font-weight: 500;
              color: var(--tinta); outline: none; }
.caja-nueva::placeholder { color: var(--tinta-4); font-weight: 400; }
.creador-nota { margin: 8px 0 0; font-size: var(--letra-nota); line-height: 1.45;
                color: var(--tinta-suave); }
.para-segmento { display: inline-flex; }
.panel-boton { height: 30px; padding: 0 11px; border: 1px solid var(--borde);
               border-radius: var(--radio); background: var(--tarjeta);
               font-family: inherit; font-size: var(--letra-nota); font-weight: 500;
               color: var(--tinta); cursor: pointer;
               transition: border-color .15s ease, background .15s ease; }
.panel-boton:hover { background: var(--lienzo); border-color: var(--ambar); }
.panel-boton[hidden] { display: none; }
.panel-aviso { font-size: var(--letra-nota); color: var(--rojo); }
.panel-aviso:empty { display: none; }
.panel-quita { display: inline-flex; align-items: center; gap: 5px;
               margin-left: auto;
               height: 30px; padding: 0 10px; border: 1px solid var(--borde);
               border-radius: var(--radio); background: var(--tarjeta);
               font-family: inherit; font-size: var(--letra-nota); font-weight: 500;
               color: var(--tinta-suave); cursor: pointer;
               transition: color .15s ease, border-color .15s ease,
                           background .15s ease; }
.panel-quita svg { width: 11px; height: 11px; }
.panel-quita:hover { color: var(--rojo); border-color: var(--rojo);
                     background: var(--rojo-palido); }
.creador { width: 100%; }
.creador[hidden] { display: none; }
.creador-cabeza { display: flex; align-items: center;
                  justify-content: space-between; margin-bottom: 6px;
                  min-height: 30px; }
.creador-titulo { font-size: var(--letra-cuerpo); font-weight: 700;
                  color: var(--tinta); margin: 0; }
.creador-cierra { margin-left: auto; width: 30px; height: 30px; border: 0;
                  border-radius: var(--radio); background: transparent;
                  color: var(--tinta-4); cursor: pointer; display: inline-flex;
                  align-items: center; justify-content: center;
                  transition: background .15s ease, color .15s ease; }
.creador-cierra:hover { background: var(--lienzo); color: var(--tinta); }
.creador-cierra svg { width: 14px; height: 14px; }
.paso[hidden] { display: none; }
.paso-pregunta { font-size: var(--letra-subtitulo); font-weight: 700; color: var(--tinta);
                 margin: 0 0 10px; }
.eleccion { display: grid; grid-template-columns: repeat(3, 1fr);
            gap: 6px; border-radius: var(--radio);
            transition: box-shadow .18s ease; }
.eleccion.te-toca { outline: 2px dashed #E0BE5C;
                    outline-offset: 4px; }
.eligible:focus-visible { outline: 2px solid var(--ambar);
                          outline-offset: -2px; }
.eligible { display: flex; flex-direction: column; align-items: center;
            gap: 3px; border: 1px solid var(--borde); border-radius: var(--radio);
            background: var(--tarjeta); text-align: center;
            font-family: inherit; padding: 9px 4px; cursor: pointer;
            transition: background .15s ease, border-color .15s ease; }
.eligible:hover { border-color: var(--tinta-5); }
.eligible > svg { width: 17px; height: 17px; color: var(--tinta-suave); }
.eligible-nombre { font-size: var(--letra-nota); font-weight: 500;
                   color: var(--tinta); }
.eligible.elegida { background: var(--lienzo); border-color: var(--ambar); }
.eligible.elegida > svg { color: var(--tinta-accion); }
.creador.jalon .paso { border-top: 1px solid var(--linea-suave); padding-top: 11px;
                       margin-top: 11px; }
.creador.jalon .paso:first-of-type { border-top: 0; padding-top: 0;
                                     margin-top: 0; }
.creador.jalon .paso-pregunta { font-size: var(--letra-cuerpo); margin-bottom: 8px; }
.creador-nombre { width: 100%; border: 1px solid var(--borde);
                  border-radius: var(--radio); padding: 9px 12px;
                  font-family: inherit; font-size: var(--letra-cuerpo); font-weight: 500;
                  color: var(--tinta); background: var(--tarjeta);
                  outline: none; transition: border-color .15s ease; }
.creador-nombre:focus { border-color: var(--ambar); }
.creador-crear:disabled { background: var(--lienzo); color: var(--tinta-4);
                          cursor: default; transform: none; filter: none; }
.creador-aviso { font-size: var(--letra-nota); font-weight: 500; color: var(--tinta-aviso);
                 margin: 8px 2px 0; }
.detalle { display: flex; align-items: center; gap: 10px;
           padding: 8px 2px; cursor: pointer;
           border-bottom: 1px solid var(--linea-suave); }
.detalle > svg { width: 17px; height: 17px; color: var(--tinta-suave);
                 flex: none; }
.parcito { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.parcito label { position: relative; }
.parcito input { position: absolute; opacity: 0; pointer-events: none; }
.parcito span { display: block; text-align: center;
                border: 1px solid var(--borde); border-radius: var(--radio);
                padding: 7px 4px; font-size: var(--letra-nota); font-weight: 500;
                color: var(--tinta-suave); cursor: pointer;
                transition: background .15s ease, border-color .15s ease,
                            color .15s ease; }
.parcito input:checked + span { background: var(--lienzo);
    border-color: var(--ambar); color: var(--tinta); }
.cuanto { display: flex; align-items: center; gap: 8px; }
.cuanto span { font-size: var(--letra-nota); font-weight: 500;
               color: var(--tinta-suave); }
.cuanto input { flex: 1; min-width: 0; border: 1px solid var(--borde);
                border-radius: var(--radio); padding: 7px 10px;
                font-family: inherit; font-size: var(--letra-cuerpo); font-weight: 500;
                color: var(--tinta); outline: none;
                transition: border-color .15s ease; }
.cuanto input:focus { border-color: var(--ambar); }
.frase { background: var(--lienzo); border: 1px solid var(--borde);
         border-radius: var(--radio); padding: 10px 13px; font-size: var(--letra-cuerpo);
         line-height: 1.5; color: var(--tinta); margin: 0 0 5px; }
.frase b { font-weight: 500; }
.creador-crear { position: relative; overflow: hidden; width: 100%;
                 border: 0; border-radius: var(--radio); background: var(--ambar);
                 color: var(--sobre-ambar); font-family: inherit;
                 font-size: var(--letra-cuerpo); font-weight: 700; padding: 10px;
                 white-space: nowrap;
                 cursor: pointer;
                 transition: transform .12s ease, filter .15s ease; }
.creador-crear:hover { transform: translateY(-1px);
                       filter: brightness(1.03); }
@media (max-width: 1120px) {
  .taller { grid-template-columns: 1fr; }
  .espejo { width: 342px; margin: 0 auto; }
  .relevo { margin: 0 auto; }
}
.mapa-lleno { position: relative;
              height: calc(100dvh - 2 * var(--aire)); min-height: 380px;
              border-radius: var(--radio); border: 1px solid var(--borde);
              overflow: hidden; background: var(--tarjeta); }
@media (min-width: 761px) {
  .sin-marco .mapa-lleno { height: 100dvh; border: 0; border-radius: 0; }
}
.mapa-lienzo { position: absolute; inset: 0; }
.mapa-lleno #mapa { position: absolute; inset: 0; background: var(--lienzo); }
.mapa-lleno .leaflet-tile-pane { filter: saturate(.55) brightness(1.03)
                                         contrast(.98); }
.mapa-lleno.cerca .leaflet-tile-pane { filter: grayscale(.95)
                                       brightness(1.09) contrast(.9); }
.mapa-panel { position: absolute; left: 16px; top: 18px; width: 296px;
              max-height: min(470px, calc(100% - 138px));
              display: flex; flex-direction: column; min-height: 0;
              z-index: 550; border-radius: var(--radio); background: var(--vidrio);
              box-shadow: var(--sombra-3); overflow: hidden; }
.mapa-panel:not(.plegado)::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0;
  height: 34px; pointer-events: none;
  background: linear-gradient(transparent, var(--tarjeta)); }
.mapa-panel.plegado .mp-busca,
.mapa-panel.plegado .mp-cortes,
.mapa-panel.plegado .mp-segmento,
.mapa-panel.plegado .mp-lista { display: none; }
.mapa-panel.plegado .mp-cabeza { padding-bottom: 14px; }
.mp-cabeza { padding: 16px 16px 0; flex: none; }
.mp-arriba { display: flex; align-items: center; gap: 8px; }
.mp-titulo { margin: 0; flex: 1; min-width: 0; font-size: var(--letra-mayor);
             font-weight: 700; letter-spacing: 0; line-height: 1.15;
             color: var(--tinta); }
.mp-titulo span { font-size: var(--letra-subtitulo); font-weight: 400;
                  color: var(--tinta-suave);
                  font-variant-numeric: tabular-nums; }
.mp-plegar { width: 32px; height: 32px; flex: none; margin: -3px -6px 0 0;
             display: grid; place-items: center; border: 0; border-radius: var(--radio);
             background: none; color: var(--tinta-4); cursor: pointer;
             transition: background .15s ease, color .15s ease; }
.mp-plegar:hover { background: var(--hundido); color: var(--tinta); }
.mp-plegar svg { width: 17px; height: 17px;
                 transition: transform .18s ease; }
.mapa-panel.plegado .mp-plegar svg { transform: rotate(180deg); }
.mp-lista { flex: 1; min-height: 0; overflow-y: auto;
            padding: 8px 8px 24px; }
.mp-hab { display: flex; gap: 2px; margin: 11px 16px 0; padding: 3px;
          background: var(--linea-suave); border-radius: var(--radio); }
.mph-btn { flex: 1; display: flex; align-items: center; justify-content: center;
           gap: 5px; height: 28px; padding: 0 6px; border: 0; border-radius: 7px;
           background: none; font-family: inherit; font-size: var(--letra-nota);
           font-weight: 500; color: var(--tinta-suave); cursor: pointer;
           transition: background .15s ease, color .15s ease; }
.mph-btn:hover { color: var(--tinta); }
.mph-btn.on { background: var(--tarjeta); font-weight: 500;
              box-shadow: var(--sombra-1); }
.mph-btn[data-hab='asistencia'].on { color: var(--hab-asistencia-texto); }
.mph-btn[data-hab='alerta'].on { color: var(--hab-alerta-texto); }
.mph-btn[data-hab='solicitudes'].on { color: var(--hab-solicitudes-texto); }
.mph-btn[data-hab='solicitudes'] .mph-cuenta {
  background: var(--hab-solicitudes); }
.mph-cuenta { min-width: 16px; height: 16px; padding: 0 4px; display: grid;
              place-items: center; border-radius: var(--radio);
              background: var(--rojo-vivo); color: #FFFFFF;
              font-size: var(--letra-etiqueta); font-weight: 700; }
.mph-cuenta[hidden] { display: none; }
.mapa-lleno.mira-alerta .pin-tel,
.mapa-lleno.mira-alerta .sitio-dot,
.mapa-lleno.mira-alerta .sitio-ficha,
.mapa-lleno.mira-solicitudes .pin-tel,
.mapa-lleno.mira-solicitudes .sitio-dot,
.mapa-lleno.mira-solicitudes .sitio-ficha { opacity: .38; }
.mapa-lleno.mira-alerta .fuera-metros,
.mapa-lleno.mira-solicitudes .fuera-metros { display: none; }
.mapa-lleno.mira-alerta .mp-segmento,
.mapa-lleno.mira-solicitudes .mp-segmento { display: none; }
.mapa-lleno.mira-alerta #cerca,
.mapa-lleno.mira-alerta #rastros,
.mapa-lleno.mira-solicitudes #cerca,
.mapa-lleno.mira-solicitudes #rastros { display: none; }
.ev-alerta { --tinta-ev: var(--hab-alerta); --texto-ev: var(--hab-alerta-texto);
             --late-ev: rgba(245, 52, 43, .5);
             --velo-ev: rgba(245, 52, 43, .06);
             --velo2-ev: rgba(245, 52, 43, .11); }
.ev-solicitud { --tinta-ev: var(--hab-solicitudes);
                --texto-ev: var(--hab-solicitudes-texto);
                --late-ev: rgba(30, 107, 230, .45);
                --velo-ev: rgba(30, 107, 230, .06);
                --velo2-ev: rgba(30, 107, 230, .11); }
.ev-punto { width: 36px; height: 36px; display: grid; place-items: center;
            border-radius: 50%; box-sizing: border-box;
            box-shadow: var(--sombra-2); }
.ev-punto svg { width: 18px; height: 18px; }
.ev-punto.vivo { background: var(--tinta-ev); color: #FFFFFF;
                 border: 3px solid var(--tarjeta);
                 animation: evLate 2.4s ease-out infinite; }
.ev-punto.hecho { background: var(--tarjeta); color: var(--texto-ev);
                  border: 2px solid var(--tinta-ev); opacity: .85; }
.ev-punto.res { outline: 3px solid var(--ambar); outline-offset: 2px; }
@keyframes evLate {
  0% { box-shadow: 0 0 0 0 var(--late-ev); }
  70% { box-shadow: 0 0 0 16px transparent; }
  100% { box-shadow: 0 0 0 0 transparent; }
}
.ev-fila { display: flex; align-items: center; gap: 10px; width: 100%;
           padding: 7px 8px; border: 0; border-radius: var(--radio);
           background: var(--velo-ev); text-align: left;
           font-family: inherit; cursor: pointer; margin-bottom: 2px;
           transition: background .15s ease; }
.ev-fila:hover { background: var(--velo2-ev); }
.ev-fila.hecho { background: none; }
.ev-fila.hecho:hover { background: var(--hundido); }
.ev-fila.res { outline: 2px solid var(--ambar); outline-offset: -2px; }
.ev-que { display: block; font-size: var(--letra-etiqueta); color: var(--texto-ev);
          white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ev-fila.hecho .ev-que { color: var(--tinta-4); }
.ev-nopunto { display: block; font-size: var(--letra-etiqueta); color: var(--tinta-4); }
.ev-cuando { flex: none; font-size: var(--letra-etiqueta); color: var(--tinta-suave); }
.ev-fila:not(.hecho) .ev-cuando { color: var(--texto-ev); font-weight: 500; }
.mp-corte i.ev-alerta, .mp-corte i.ev-solicitud { background: var(--tinta-ev); }
.mp-corte i.ev-alerta.hecho, .mp-corte i.ev-solicitud.hecho {
  background: var(--tarjeta); box-shadow: 0 0 0 2px var(--tinta-ev) inset; }
.tarjeta-ev .tev-cabeza { display: flex; align-items: flex-start; gap: 11px; }
.tev-quien { flex: 1; min-width: 0; }
.tev-nombre { display: block; font-size: var(--letra-subtitulo); font-weight: 700;
              color: var(--tinta); }
.tev-linea { display: flex; align-items: center; gap: 5px;
             font-size: var(--letra-nota); color: var(--texto-ev); }
.tev-linea svg { width: 13px; height: 13px; flex: none; }
.tev-linea small { color: var(--tinta-suave); }
.tev-nota { margin-top: 11px; padding: 9px 11px; border-radius: var(--radio);
            background: var(--velo-ev); font-size: var(--letra-cuerpo);
            font-weight: 500; color: var(--tinta); }
.tev-llego { display: block; margin-top: 10px; font-size: var(--letra-nota);
             color: var(--tinta-suave); }
.tev-rastro { display: flex; align-items: center; gap: 6px; margin-top: 12px;
              font-size: var(--letra-nota); color: var(--verde); font-weight: 500; }
.tev-rastro svg { width: 14px; height: 14px; flex: none; }
.tev-hacer { display: flex; gap: 7px; margin-top: 13px; }
.tev-btn { flex: 1; display: flex; align-items: center; justify-content: center;
           gap: 7px; height: 34px; border: 0; border-radius: var(--radio);
           font-family: inherit; font-size: var(--letra-nota); font-weight: 500;
           cursor: pointer; transition: filter .15s ease; }
.tev-btn svg { width: 15px; height: 15px; }
.tev-btn:hover { filter: brightness(1.08); }
.tev-btn:disabled { opacity: .55; cursor: default; }
.tev-si { background: var(--tinta-accion); color: #FFFFFF; }
.tev-no { background: var(--tarjeta); color: var(--tinta);
          box-shadow: 0 0 0 1px var(--control) inset; font-weight: 500; }
.tev-no:hover { box-shadow: 0 0 0 1px var(--tinta) inset; }
.tev-permiso { display: flex; flex-wrap: wrap; align-items: center;
               gap: 3px 12px; margin-top: 10px; font-size: var(--letra-cuerpo);
               color: var(--tinta-suave); }
.tev-sin { background: var(--tarjeta); color: var(--tinta);
           box-shadow: 0 0 0 1px var(--control) inset; font-weight: 500; }
.tev-sin:hover { box-shadow: 0 0 0 1px var(--tinta-suave) inset; }
.tev-cerca { background: var(--hundido); color: var(--tinta);
             font-weight: 500; }
.tev-cerca:hover { background: var(--linea-suave); }
.mapa-leyenda.ley-alerta, .mapa-leyenda.ley-solicitudes { display: none; }
.mapa-lleno.mira-alerta .mapa-leyenda.ley-asistencia,
.mapa-lleno.mira-solicitudes .mapa-leyenda.ley-asistencia { display: none; }
.mapa-lleno.mira-alerta .mapa-leyenda.ley-alerta,
.mapa-lleno.mira-solicitudes .mapa-leyenda.ley-solicitudes { display: flex; }
.ly-grito { background: var(--hab-alerta); }
.ly-hecha { background: var(--tarjeta);
            box-shadow: 0 0 0 2px var(--hab-alerta) inset; }
.ly-pide { background: var(--hab-solicitudes); }
.ly-resuelta { background: var(--tarjeta);
               box-shadow: 0 0 0 2px var(--hab-solicitudes) inset; }
.mapa-leyenda { position: absolute; left: 16px; bottom: 16px; width: 296px;
                box-sizing: border-box; z-index: 540;
                padding: 9px 13px; border-radius: var(--radio);
                background: var(--vidrio); box-shadow: var(--sombra-2);
                display: flex; flex-wrap: wrap; gap: 5px 14px;
                font-size: var(--letra-etiqueta); color: var(--tinta-suave); }
.mapa-leyenda span { display: flex; align-items: center; gap: 6px; }
.mapa-leyenda i { width: 10px; height: 10px; flex: none; border-radius: 50%; }
.ly-sitio { border-radius: 2px !important;
            border: 1px dashed var(--tinta-4); }
.ly-bien { background: var(--verde-vivo); }
.ly-medio { background: var(--ambar); }
.ly-mal { background: var(--rojo-vivo); }
.ly-fuera { background: var(--tarjeta);
            box-shadow: 0 0 0 2px var(--rojo-vivo) inset; }
.mapa-nadie { font-size: var(--letra-nota); color: var(--tinta-4);
              margin: 2px 8px 8px; }
.gente-fila { display: flex; align-items: center; gap: 10px; width: 100%;
              border: 0; background: none; border-radius: var(--radio);
              padding: 7px 8px; cursor: pointer; text-align: left;
              font-family: inherit;
              transition: background .15s ease, box-shadow .15s ease; }
.gente-fila:hover { background: var(--lienzo); }
.gente-fila.res { background: var(--lienzo);
                  box-shadow: inset 3px 0 0 var(--ambar); }
.gente-avatar { width: 30px; height: 30px; border-radius: 50%;
                color: #fff; font-size: var(--letra-etiqueta); font-weight: 500;
                flex: none; display: flex; align-items: center;
                justify-content: center; overflow: hidden; }
.gente-avatar img { width: 100%; height: 100%; object-fit: cover; }
.gente-avatar svg { width: 14px; height: 14px; }
.gente-letras { min-width: 0; }
.gente-nombre { display: block; font-size: var(--letra-cuerpo); font-weight: 500;
                color: var(--tinta); line-height: 1.25;
                white-space: nowrap; overflow: hidden;
                text-overflow: ellipsis; }
.gente-hace { display: block; font-size: var(--letra-etiqueta);
              color: var(--tinta-suave); white-space: nowrap;
              overflow: hidden; text-overflow: ellipsis; }
.burbuja-latido { position: absolute; right: -3px; bottom: -3px;
                  width: 11px; height: 11px; border-radius: 50%;
                  background: var(--verde-vivo); border: 2px solid #fff;
                  color: rgba(0, 169, 79, .42);
                  animation: late 2.2s ease-out infinite; }
.mapa-boton[hidden] { display: none; }
.mapa-botones { position: absolute; right: 16px; top: 12px;
                z-index: 500; display: flex; flex-direction: column;
                gap: 10px; }
.mapa-boton { width: 44px; height: 44px; flex: none;
              border-radius: 50%; border: 1px solid var(--borde);
                background: var(--tarjeta); color: var(--tinta);
                cursor: pointer; display: flex; align-items: center;
                justify-content: center;
                box-shadow: var(--sombra-2);
                transition: background .18s ease, color .18s ease,
                            border-color .18s ease, transform .16s ease; }
.mapa-boton:hover { background: var(--ambar); border-color: var(--ambar);
                      color: var(--sobre-ambar);
                      transform: translateY(-2px); }
.mapa-boton svg { width: 19px; height: 19px; }
.mapa-plantar.prendido { background: var(--ambar); border-color: var(--ambar);
                         color: var(--sobre-ambar); }
.plantar-pista { position: absolute; top: 18px; left: 50%;
                 transform: translateX(-50%); z-index: 500;
                 background: var(--tarjeta); border: 1px solid var(--ambar);
                 border-radius: 7px; padding: 8px 16px;
                 font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta);
                 box-shadow: var(--sombra-3);
                 white-space: nowrap; }
.plantar-pista[hidden] { display: none; }
.plantar-menu { position: absolute; right: 66px; top: 14px;
                z-index: 500; min-width: 200px; background: var(--tarjeta);
                border: 1px solid var(--borde); border-radius: var(--radio);
                overflow: hidden; animation: caeEv .18s ease;
                box-shadow: var(--sombra-3); }
.plantar-menu[hidden] { display: none; }
.plantar-opcion { display: flex; width: 100%; align-items: center;
                  gap: 9px; padding: 10px 14px; border: 0;
                  background: none; font-family: inherit;
                  font-size: var(--letra-cuerpo); color: var(--tinta); cursor: pointer;
                  border-bottom: 1px solid var(--linea-suave); text-align: left;
                  transition: background .12s ease; }
.plantar-opcion:last-child { border-bottom: 0; }
.plantar-opcion:hover { background: var(--fondo); }
.plantar-opcion svg { width: 14px; height: 14px; flex: none;
                      color: var(--tinta-accion); }
.pin-kebab { display: inline-flex; align-items: center;
             margin-left: 2px; padding: 2px; border-radius: 6px;
             color: var(--tinta-4); transition: background .15s ease,
             color .15s ease; }
.pin-kebab:hover { background: var(--lienzo); color: var(--tinta); }
.pin-kebab svg { width: 13px; height: 13px; }
.pin-menu { position: absolute; z-index: 600; min-width: 185px;
            transform: translate(-50%, 0); background: var(--tarjeta);
            border: 1px solid var(--borde); border-radius: var(--radio);
            overflow: hidden; animation: caeEv .18s ease;
            box-shadow: var(--sombra-3); }
.pin-menu[hidden] { display: none; }
.lejos-ev { display: inline-flex; align-items: center; gap: 4px;
            font-size: var(--letra-nota); font-weight: 500; color: var(--rojo); }
.lejos-ev svg { width: 12px; height: 12px; flex: none; }
.hito-hora { position: absolute; transform: translate(9px, -24px);
             white-space: nowrap; background: var(--tarjeta);
             border: 1px solid var(--borde); border-radius: 7px;
             padding: 2px 9px; font-family: var(--fuente); font-size: var(--letra-etiqueta); font-weight: 700;
             color: var(--tinta);
             box-shadow: var(--sombra-2); }
.leaflet-popup-content-wrapper { border-radius: var(--radio);
  box-shadow: var(--sombra-3);
  font-family: var(--fuente);
  color: var(--tinta); }
.leaflet-container { font-family: var(--fuente); }
.leaflet-bar a { color: var(--tinta); }
.leaflet-control-attribution { background: rgba(255, 255, 255, .65);
                               font-size: var(--letra-etiqueta); color: var(--tinta-suave);
                               border-radius: var(--radio) 0 0 0; padding: 1px 7px; }
.leaflet-control-attribution a { color: var(--tinta-suave); }
@media (max-width: 760px) {
  .mapa-lleno { height: 72vh; min-height: 420px; }
  .mapa-panel { left: 12px; top: 10px;
                width: min(296px, calc(100% - 78px));
                max-height: calc(100% - 118px); }
  .mapa-leyenda { display: none; }
  .linea-tiempo { left: 12px; right: 12px; bottom: 12px; }
  .mapa-botones { right: 8px; top: 10px; }
}
.portada { max-width: 420px; margin: 12vh auto 0; padding: 0 16px; }
.portada .marca { padding: 0; color: var(--tinta); }
.portada .marca img { width: 200px; }
.portada ul { list-style: none; margin-top: 20px; }
.portada li a { display: block; background: var(--tarjeta); font-weight: 500;
                border: 1px solid var(--borde); border-radius: var(--radio);
                padding: 14px 18px; margin: 10px 0; color: var(--tinta); }
.portada li a:hover { border-color: var(--tinta-accion); color: var(--tinta-accion); }
@media (max-width: 760px) {
  aside { position: static; width: auto; border-right: 0; padding: 16px;
          border-bottom: 1px solid var(--barra-linea); }
  nav { display: flex; gap: 6px; }
  nav a { flex: 1; justify-content: center; }
  .nav-seccion { display: none; }
  .pestanas { display: flex; flex-wrap: wrap; gap: 6px; }
  .pestanas nav { display: contents; }
  .lienzo { margin-left: 0; }
  .lista { grid-template-columns: 1fr; }
  .lg, html.barra-cerrada .lg { margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}
.registra[hidden] { display: none; }
.forma.candado { max-width: 420px; margin: 18px auto 0; }
.mal-clave { max-width: 420px; margin: 10px auto 0; text-align: center;
             font-size: var(--letra-cuerpo); font-weight: 500; color: var(--rojo); }
.crece-hueco { flex: 1; }
.turnos { display: grid; gap: 10px; grid-template-columns: 1fr; }
.turno { background: var(--tarjeta); border: 1px solid var(--borde);
         border-radius: var(--radio); padding: 14px 16px 12px; }
.turno .acciones { align-self: center; }
.cumplio, .no-cumplio { display: inline-flex; margin-left: 7px;
                        vertical-align: -2px; }
.cumplio svg, .no-cumplio svg { width: 13px; height: 13px; }
.cumplio { color: var(--verde); }
.no-cumplio { color: var(--rojo); }
.pagina-dia, .pagina-alta { display: flex; flex-direction: column;
                            height: calc(100dvh - 2 * var(--aire)); min-height: 0; }
.pagina-dia > .acciones-fila,
.pagina-dia > .cuentas,
.pagina-dia > .dia-seg,
.pagina-alta > .acciones-fila,
.pagina-alta > #alta,
.pagina-alta > #nuevo-turno,
.pagina-alta > .seg-lista { flex: none; }
.pagina-alta > .padron { flex: 1; min-height: 0; overflow-y: auto;
                         overscroll-behavior: contain;
                         padding: 0 2px 2px 0; }
.zona-dia { flex: 1; min-height: 0; overflow-y: auto;
            overscroll-behavior: contain;
            border-radius: var(--radio); }
.tarjeta-dia { background: var(--tarjeta); border: 1px solid var(--borde);
               border-radius: var(--radio); }
.dia-seg { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.dia-cuantos { font-size: var(--letra-cuerpo); color: var(--tinta-suave); }
.dia-marcar-alguien { margin-left: auto; height: 32px; padding: 0 12px;
                      font-size: var(--letra-cuerpo); font-weight: 500; }
.cuenta.quieta { cursor: default; }
.esp-avatar { width: 32px; flex: 0 0 32px; }
.esp-nombre { width: 250px; flex: 0 0 250px; min-width: 0; }
.esp-acciones { width: 30px; flex: 0 0 30px; }
.grupo-cab { display: flex; align-items: center; gap: 12px; padding: 9px 16px;
             border-top: 1px solid var(--linea-suave); background: var(--hover); }
.grupo-dia:first-child .grupo-cab { border-top: 0; }
.grupo-cab .esp-avatar { display: flex; align-items: center;
                         color: var(--tinta-suave); }
.grupo-cab .esp-avatar { margin-right: -21px; }
.grupo-cab .esp-avatar svg { width: 16px; height: 16px; }
.grupo-cab .esp-nombre { width: 367px; flex: 0 0 367px; display: flex;
                         align-items: center; gap: 8px; font-size: var(--letra-cuerpo); }
.grupo-cab b { font-weight: 700; white-space: nowrap; }
.cab-n { color: var(--tinta-suave); white-space: nowrap; }
.cab-datos { margin-left: auto; display: flex; gap: 12px; font-size: var(--letra-cuerpo);
             color: var(--tinta-suave); white-space: nowrap; }
.cab-dato { display: inline-flex; align-items: center; gap: 5px; }
.cab-punto { width: 7px; height: 7px; border-radius: 50%; flex: none;
             background: var(--tinta-5); }
.cab-punto.verde { background: var(--verde-vivo); }
.cab-punto.rojo { background: var(--rojo-vivo); }
.cab-cupo { font-size: var(--letra-cuerpo); color: var(--tinta-suave); white-space: nowrap; }
.cab-cupo.alarma { color: var(--rojo); font-weight: 500; }
.cab-dato.alarma { color: var(--rojo); font-weight: 500; }
.cab-pista { height: 24px; }
.cab-banda { position: absolute; top: 2px; height: 20px; border-radius: 6px; box-sizing: border-box;
             background: var(--lienzo); border: 1px solid var(--linea-suave);
             display: flex; align-items: center; justify-content: center;
             font-size: var(--letra-nota); color: var(--tinta-suave); white-space: nowrap;
             font-variant-numeric: tabular-nums; container-type: inline-size; }
.cab-banda[data-corta='izq'] { border-left: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.cab-banda[data-corta='der'] { border-right: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; }
@container (max-width: 100px) {
  .cab-banda-txt { position: absolute; left: calc(100% + 6px); }
  .cab-banda[data-corta='der'] .cab-banda-txt { left: auto; right: calc(100% + 6px); }
}
@container (max-width: 160px) {
  .cab-banda[data-dias] .cab-banda-txt { position: absolute; left: calc(100% + 6px); }
  .cab-banda[data-dias][data-corta='der'] .cab-banda-txt { left: auto; right: calc(100% + 6px); }
}
.fila-dia { position: relative; z-index: 1; display: flex; align-items: center;
            gap: 12px; padding: 9px 16px; border-top: 1px solid var(--linea-suave);
            cursor: pointer; }
.fila-dia:hover { background: var(--hover); }
#dia-filas > :last-child,
#dia-filas > :last-child > .fila-dia:last-child { border-radius: 0 0 var(--radio-dentro) var(--radio-dentro); }
.fila-dia.mirando { z-index: 40; }
.fila-dia .avatar.chico { width: 32px; height: 32px; flex: 0 0 32px;
                          font-size: var(--letra-etiqueta); }
.avatar.eventual { background: var(--tinta-4); }
.avatar.eventual svg { width: 14px; height: 14px; }
.quien-dia { width: 250px; flex: 0 0 250px; min-width: 0; display: flex;
             flex-direction: column; line-height: 1.35; }
.dia-nombre { font-size: var(--letra-cuerpo); font-weight: 500; display: flex;
              align-items: center; gap: 6px; min-width: 0; }
.dia-nombre > span:first-child { overflow: hidden; text-overflow: ellipsis;
                                 white-space: nowrap; }
.dia-chip { height: 20px; padding: 0 7px; border-radius: 7px;
            background: var(--sup-2); font-size: var(--letra-etiqueta); font-weight: 500;
            color: var(--tinta-suave); display: inline-flex; align-items: center;
            flex: none; }
.dia-chip svg { width: 11px; height: 11px; flex: none; }
.dia-chip.chip-aviso, .dia-chip.chip-alerta { gap: 4px; cursor: default;
                                               margin-block: -1px; }
.dia-chip.chip-aviso { color: var(--tinta-aviso); }
.dia-chip.chip-alerta { color: var(--hab-alerta-texto); }
.dia-chip.chip-aviso .hab-icono, .dia-chip.chip-alerta .hab-icono { color: inherit; }
.dia-chip.dos-x { position: relative; overflow: hidden; gap: 3px;
                  padding: 0 7px 0 6px; font-weight: 500; color: var(--sobre-ambar);
                  background: linear-gradient(180deg, var(--ambar-barra), var(--ambar));
                  box-shadow: inset 0 0 0 1px var(--ambar-hondo); }
.dia-chip.dos-x::after { content: ''; position: absolute; top: -2px; bottom: -2px;
                         left: 0; width: 42%; pointer-events: none;
                         background: linear-gradient(90deg, var(--brillo-0),
                                                     var(--brillo), var(--brillo-0));
                         transform: translateX(-160%) skewX(-20deg);
                         animation: brillo 4.6s ease-in-out infinite; }
@keyframes brillo { 0%, 55% { transform: translateX(-160%) skewX(-20deg); }
                    85%, 100% { transform: translateX(360%) skewX(-20deg); } }
@media (prefers-reduced-motion: reduce) {
  .dia-chip.dos-x::after { animation: none; }
}
.dia-chip.chip-extra { gap: 4px; padding: 0 7px 0 6px; font-weight: 500;
                       background: var(--tarjeta); color: var(--tinta-aviso);
                       box-shadow: inset 0 0 0 1px var(--borde); }
.dia-chip.chip-extra svg { width: 9px; height: 9px; }
.dia-segundo { color: var(--tinta-4); }
.dia-linea { display: flex; align-items: center; flex-wrap: wrap;
             font-size: var(--letra-cuerpo); color: var(--tinta-suave); }
.dia-linea > * + *::before { content: '•'; margin: 0 6px; font-size: var(--letra-etiqueta);
                             color: var(--tinta-5); }
.dia-rojo { color: var(--rojo); }
.dia-tarde { color: var(--tinta-aviso); font-weight: 500; }
.dia-aviso { color: var(--tinta-aviso); }
.dia-mano { color: var(--tinta-aviso); font-weight: 500; }
.dia-cubre { color: var(--tinta-aviso); font-weight: 500; }
.dia-por-turno .dia-turno { display: none; }
.fila-dia .horas { width: 84px; flex: 0 0 84px; text-align: right; }
.fila-dia .dato { font-size: var(--letra-cuerpo); font-weight: 700; color: var(--tinta);
                  font-variant-numeric: tabular-nums; white-space: nowrap; }
.fila-dia .dato.vivo { color: var(--verde); }
.fila-dia .dato.rojo { color: var(--rojo); }
.fila-dia .dato.ambar { color: var(--tinta-aviso); }
.fila-dia .dato.suave { color: var(--tinta-4); font-weight: 500; }
.fila-dia .dato.horas-extra { color: var(--tinta-aviso); }
.fila-dia .dato.no-viene { color: var(--tinta-suave); }
.pista.pista-permiso { display: flex; align-items: center; padding-left: 12px; }
.chip-permiso { display: inline-flex; align-items: center; gap: 6px; min-width: 0;
                white-space: nowrap; font-size: var(--letra-cuerpo); font-weight: 500;
                color: var(--hab-solicitudes-texto); }
.chip-permiso i { width: 8px; height: 8px; border-radius: 50%; flex: none;
                  box-sizing: border-box; background: var(--hab-solicitudes-texto); }
.chip-permiso.pedido i { background: none;
                         border: 1.5px solid var(--hab-solicitudes-texto); }
.chip-permiso span { overflow: hidden; text-overflow: ellipsis;
                     color: var(--tinta-suave); font-weight: 400; }
.grupo-cab .esp-avatar.cab-permiso { color: var(--hab-solicitudes-texto); }
.pista { position: relative; flex: 1; height: 28px; min-width: 0; }
.plan { position: absolute; top: 6px; height: 16px; border-radius: 5px; box-sizing: border-box;
        background: var(--hover); border: 1px solid var(--linea-suave); }
.plan.rojo { background: var(--rojo-palido); border-color: transparent; }
.retardo { position: absolute; top: 6px; height: 16px; min-width: 4px;
           border-radius: 5px 0 0 5px; background: var(--ambar-barra); }
.tramo { position: absolute; top: 6px; height: 16px; border: 0; padding: 0;
         border-radius: 5px; cursor: pointer; background: var(--verde-palido); }
.tramo.vivo { background: var(--vivo-relleno); box-shadow: inset 0 0 0 1px var(--vivo-orilla); }
.tramo.doble { box-shadow: 0 0 0 2px var(--ambar); }
.tramo.vivo.doble { box-shadow: inset 0 0 0 1px var(--vivo-orilla), 0 0 0 2px var(--ambar); }
.tramo.bajo { opacity: .45; }
.tramo.sin-salida {
  background: repeating-linear-gradient(135deg, var(--verde-palido) 0 6px, transparent 6px 10px);
  box-shadow: inset 0 0 0 1px var(--verde-palido); }
.tramo.sin-salida.doble { box-shadow: inset 0 0 0 1px var(--verde-palido), 0 0 0 2px var(--ambar); }
@keyframes lat { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.ahora-marca { position: absolute; top: -4px; bottom: -4px; width: 2px; margin-left: -1px;
               border-radius: 1px; background: var(--ambar); pointer-events: none; }
.cab-pista > .ahora-marca { top: -2px; bottom: auto; height: 28px; }
.fila-dia .acciones { flex: 0 0 30px; margin: 0; }
.fila-dia:has(> .acciones > .menucito:not([hidden])) { z-index: 5; }
.dia-nadie { padding: 16px; margin: 0; }
.tabla-sitios-marco { background: var(--tarjeta); border: 1px solid var(--borde);
                      border-radius: var(--radio); padding: 12px 16px 4px;
                      margin-bottom: 14px; overflow-x: auto; }
.ts-cabeza { display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
             row-gap: 6px; margin-bottom: 6px; font-size: var(--letra-subtitulo); }
.ts-cabeza .seg-btn { height: 28px; padding: 0 11px; }
.ts-titulo { font-weight: 700; white-space: nowrap; }
.ts-cabeza-resumen { margin-bottom: 8px; }
.tabla-sitios { width: 100%; border-collapse: collapse; table-layout: fixed;
                font-variant-numeric: tabular-nums; }
.tabla-sitios .col-cifra { width: 84px; }
.ts-quien { display: flex; align-items: center; gap: 6px; min-width: 0; }
.ts-nombre { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tabla-sitios th { padding: 4px 10px 6px; text-align: right;
                   font-size: var(--letra-etiqueta); font-weight: 500; letter-spacing: .04em;
                   text-transform: uppercase; color: var(--tinta-suave);
                   white-space: nowrap; }
.tabla-sitios th button { all: unset; cursor: pointer; display: inline-flex;
                          align-items: center; gap: 2px; padding: 2px 0;
                          border-bottom: 2px solid transparent; }
.tabla-sitios th button:hover { color: var(--tinta); }
.tabla-sitios th.on button { color: var(--tinta); border-bottom-color: var(--ambar); }
.ts-flecha { width: 12px; height: 12px; opacity: 0; transition: transform .15s; }
.tabla-sitios th.on .ts-flecha { opacity: 1; }
.tabla-sitios th.on.asc .ts-flecha { transform: rotate(180deg); }
.tabla-sitios td { padding: 9px 10px; text-align: right; font-size: var(--letra-cuerpo);
                   border-top: 1px solid var(--linea-suave);
                   white-space: nowrap; vertical-align: middle; }
.tabla-sitios th.ts-sitio, .tabla-sitios td.ts-sitio { text-align: left;
                                                       padding-left: 6px; }
.ts-quien > svg { width: 14px; height: 14px; flex: none; color: var(--rojo-marca); }
.ts-sitio b { font-weight: 500; }
.ts-n { color: var(--tinta-suave); flex: none; }
.ts-sobre { margin-left: 5px; font-size: var(--letra-nota); font-weight: 500;
            color: var(--tinta-suave); font-variant-numeric: tabular-nums; }
.ts-fila { cursor: pointer; }
.ts-fila:hover td { background: var(--hover); }
.ts-fila:focus-visible { outline: none; }
.ts-fila:focus-visible td { background: var(--hover); }
.ts-fila.elegida .ts-quien > svg { color: var(--tinta-accion); }
.ts-fila.elegida .ts-nombre { font-weight: 500; }
.ts-cifra { font-weight: 700; }
.ts-vacio { color: var(--tinta-4); }
.ts-sub { margin-left: 4px; font-size: var(--letra-nota); color: var(--tinta-suave); }
.ts-delta { display: inline-flex; align-items: center; justify-content: flex-end;
            gap: 2px; min-width: 42px; margin-left: 8px;
            font-size: var(--letra-nota); font-weight: 500; color: var(--tinta-4); }
.ts-delta.bien { color: var(--verde); }
.ts-delta.mal { color: var(--rojo); }
.ts-delta svg { width: 9px; height: 9px; fill: currentColor; }
.ts-total td { border-top: 2px solid var(--borde); }
.ts-total .ts-sitio b { font-weight: 500; }
.grafica-marco { background: var(--tarjeta); border: 1px solid var(--borde);
                 border-radius: var(--radio); padding: 12px 16px 10px;
                 margin-bottom: 14px; }
.gr-cabeza { display: flex; align-items: center; gap: 6px; font-size: var(--letra-subtitulo); }
.gr-titulo { font-weight: 700; }
.gr-dato { font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta-4); }
.gr-corte .seg-btn { height: 28px; padding: 0 11px; }
.gr-corte[hidden] { display: none; }
.gr-punto { width: 8px; height: 8px; border-radius: 50%; flex: none;
            background: var(--tinta-5); }
.gr-punto.cubiertos, .gr-seg.cubiertos { --c: var(--verde); }
.gr-punto.sin_cubrir, .gr-seg.sin_cubrir { --c: var(--coral); }
.gr-punto.sobrecupo, .gr-seg.sobrecupo { --c: var(--rojo); }
.gr-punto.retardos, .gr-seg.retardos { --c: var(--ambar); }
.gr-punto:is(.cubiertos, .sin_cubrir, .sobrecupo, .retardos) { background: var(--c); }
.gr-seg { background: color-mix(in srgb, var(--c, var(--tinta-5)) 14%, var(--tarjeta)); }
.gr-lienzo { display: flex; align-items: flex-end; gap: 10px;
             padding: 0 4px; min-height: 60px; }
.gr-barra { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column;
            align-items: center; justify-content: flex-end; }
.gr-total { height: 16px; font-size: var(--letra-etiqueta); color: var(--tinta-suave);
            font-variant-numeric: tabular-nums; }
.gr-pila { width: 100%; max-width: 56px; display: flex;
           flex-direction: column-reverse; gap: 1px;
           border-radius: 4px 4px 0 0; overflow: hidden; }
.gr-seg { display: block; width: 100%; min-height: 2px; }
.gr-eje { height: 18px; margin-top: 6px; font-size: var(--letra-etiqueta);
          color: var(--tinta-suave); white-space: nowrap; }
.gr-barra.futuro .gr-eje { color: var(--tinta-5); }
.gr-nada { margin: 18px 0 8px; font-size: var(--letra-cuerpo); color: var(--tinta-4); }
.gr-lienzo.apretado { gap: 4px; }
.gr-lienzo.apretado .gr-total { font-size: var(--letra-etiqueta); }
.zona-dia.tablero { display: grid; gap: var(--aire); overflow: visible;
                    border-radius: 0;
                    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.tablero > .pulso { grid-column: 1; grid-row: 1; }
.lado-der { grid-column: 2; grid-row: 1; display: flex; flex-direction: column;
            gap: var(--aire); min-height: 0; min-width: 0; }
.resumen-marco { flex: none; background: var(--tarjeta); border: 1px solid var(--borde);
                 border-radius: var(--radio); padding: 12px 16px 14px; }
.res-tarjetas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
                gap: 12px; margin-top: 4px; }
.res-tarjeta { display: flex; flex-direction: column; gap: 3px; min-width: 0;
               text-align: left; padding: 12px 14px; background: var(--tarjeta);
               border: 1px solid var(--borde); border-radius: var(--radio);
               font-family: inherit; color: var(--tinta); cursor: pointer; }
.res-tarjeta:hover { border-color: var(--tinta-5); }
.res-tarjeta:focus-visible { outline: none; border-color: var(--ambar); }
.res-nombre { font-size: var(--letra-etiqueta); font-weight: 500; letter-spacing: .04em;
              text-transform: uppercase; color: var(--tinta-suave); }
.res-dato { display: flex; align-items: center; gap: 8px;
            font-size: var(--letra-mayor); font-weight: 900; letter-spacing: -.5px; line-height: 1.15;
            font-variant-numeric: tabular-nums; }
.res-dato.bien { color: var(--verde); }
.res-dato.mal { color: var(--rojo); }
.res-flecha { width: 14px; height: 14px; flex: none; fill: currentColor; }
.res-sin { margin-left: 2px; font-size: var(--letra-nota); font-weight: 500; letter-spacing: 0;
           color: var(--tinta-aviso); white-space: nowrap; }
.res-comp { font-size: var(--letra-nota); font-weight: 500; color: var(--tinta-suave); }
@media (max-width: 1600px) {
  .res-tarjetas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.tablero.abierto > .pulso, .tablero.abierto > .lado-der { display: none; }
.expandido { grid-column: 1 / -1; grid-row: 1; display: flex; flex-direction: column;
             min-height: 0; }
.expandido[hidden] { display: none; }
.expandido .tabla-sitios-marco { flex: 1 1 0; min-height: 0; max-height: none;
                                 overflow: auto; margin: 0; }
.expandido .tabla-sitios { table-layout: fixed; }
.expandido .tabla-sitios .col-cifra { width: 200px; }
.expandido .tabla-sitios th { padding: 6px 14px 8px; font-size: var(--letra-etiqueta); }
.expandido .tabla-sitios td { padding: 12px 14px; }
.expandido .ts-delta { min-width: 42px; margin-left: 8px; }
.tabla-sitios td.col-resaltada { background: var(--ambar-palido); }
.exp-volver { display: inline-flex; align-items: center; gap: 4px; height: 28px;
              padding: 0 10px 0 6px; border: 1px solid var(--borde); border-radius: var(--radio);
              background: var(--tarjeta); font-family: inherit; font-size: var(--letra-cuerpo);
              font-weight: 500; color: var(--tinta); cursor: pointer; }
.exp-volver:hover { border-color: var(--tinta-5); }
.exp-volver svg { width: 16px; height: 16px; }
.expandido .exp-fila { flex: none; display: flex; align-items: center; gap: 8px;
                       flex-wrap: wrap; row-gap: 8px; margin-bottom: 12px;
                       font-size: var(--letra-subtitulo); }
.exp-titulo { font-weight: 700; white-space: nowrap; }
.exp-fila .seg-btn { height: 28px; padding: 0 11px; }
.exp-fila .campo-buscar { flex: 0 0 150px; }
.exp-fila .abre-barra { height: 30px; padding: 0 10px; }
.giro { height: 30px; padding: 0 10px; display: inline-flex; align-items: center;
        gap: 7px; border: 1px solid var(--borde); border-radius: 7px;
        background: var(--tarjeta); box-shadow: var(--sombra-1);
        font-family: inherit; font-size: var(--letra-cuerpo); font-weight: 500;
        color: var(--tinta); cursor: pointer; white-space: nowrap;
        user-select: none; }
.giro:hover { border-color: var(--tinta-5); }
.giro:active { transform: scale(.97); }
.giro > svg { width: 15px; height: 15px; color: var(--tinta-suave); }
.giro b { font-weight: 700; font-variant-numeric: tabular-nums; }
.giro-caja { position: relative; display: inline-flex; }
.giro.sin-caja { height: var(--toque); padding: 0 8px; border: 0; background: none; box-shadow: none; }
.giro.sin-caja:hover, .giro.sin-caja[aria-expanded='true'] { background: var(--fondo); }
.giro.sin-caja .giro-ico { width: 14px; height: 14px; color: var(--tinta-suave); flex: none; }
.giro.sin-caja .giro-n, .giro.sin-caja .giro-n b { color: var(--tinta-suave); font-weight: 400; }
.giro.sin-caja .pts { display: none; }
.giro-menu { top: calc(100% + 6px); left: 0; right: auto; width: 220px; }
.giro-menu .accion.on { background: var(--ambar-palido); font-weight: 500; }
.giro-menu .accion .de { margin-left: auto; color: var(--tinta-suave); font-variant-numeric: tabular-nums; }
.giro .punto { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.pts { display: flex; align-items: center; gap: 5px; margin-left: 3px; }
.pts i { width: 6px; height: 6px; border-radius: 50%; display: block; flex: none;
         background: var(--control); }
.pts i.on { width: 9px; height: 9px; box-shadow: 0 0 0 1.5px var(--tinta); }
.exp-dia .tarjeta-dia { flex: 1 1 0; min-height: 0; overflow-y: auto;
                        overscroll-behavior: contain; }
.exp-dia { background: var(--tarjeta); border: 1px solid var(--borde);
           border-radius: var(--radio); overflow: hidden; }
.exp-dia .exp-fila { margin-bottom: 0; padding: 12px 16px 8px;
                     border-bottom: 1px solid var(--linea-suave); }
.exp-dia .tarjeta-dia { border: 0; border-radius: 0; }
.exp-dia .exp-titulo { font-weight: 500; }
#expandido .ts-cabeza .exp-volver, #grafica-detalle .gr-cabeza .exp-volver,
.exp-dia :is(.exp-volver, .giro, .abre-barra),
.exp-dia .exp-buscar, .exp-dia .exp-buscar input { height: var(--toque); }
#expandido .ts-cabeza .exp-volver, #grafica-detalle .gr-cabeza .exp-volver,
.exp-dia .exp-fila :is(.exp-volver, .dia-marcar) { border: 0; background: none; box-shadow: none;
  padding: 0 8px; gap: 7px; font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta); }
#expandido .ts-cabeza .exp-volver:hover, #grafica-detalle .gr-cabeza .exp-volver:hover,
.exp-dia .exp-fila :is(.exp-volver, .dia-marcar):hover { background: var(--fondo); color: var(--tinta); transform: none;
                                               box-shadow: none; }
#expandido .ts-cabeza .exp-volver svg, #grafica-detalle .gr-cabeza .exp-volver svg,
.exp-dia .exp-fila :is(.exp-volver, .dia-marcar) svg { width: 14px; height: 14px; color: var(--tinta-suave); }
.exp-dia .exp-fila .ts-n { font-size: var(--letra-cuerpo); }
.asistencias .grupo-cab b { font-weight: 500; }
.asistencias :is(.cab-dato, .cab-cupo).alarma { font-weight: 400; }
.asistencias .dia-nombre { font-weight: 400; }
.asistencias .dia-tarde { font-weight: 400; }
.asistencias .fila-dia .dato { font-weight: 400; }
.grafica-marco[data-modo='global'] .gr-lienzo { cursor: pointer; }
#grafica-detalle .gr-lienzo { margin-top: 12px; }
.exp-grafica .grafica-marco { flex: 1 1 0; min-height: 0; }
.tablero .tabla-sitios-marco { flex: 0 1 auto; min-height: 0; max-height: 52%;
                               overflow: auto; margin: 0; }
.tablero .tabla-sitios th { padding: 4px 5px 6px; letter-spacing: 0;
                            font-size: var(--letra-etiqueta); position: sticky; top: 0;
                            z-index: 1; background: var(--tarjeta); }
.tablero .tabla-sitios td { padding: 8px 5px; }
.pulso .tabla-sitios th { padding-top: 9.5px; }
.tablero .ts-delta { min-width: 30px; margin-left: 3px; }
.tablero .ts-total td { position: sticky; bottom: 0; background: var(--tarjeta); }
.tablero .ts-cabeza { position: sticky; left: 0; }
.tablero .grafica-marco { flex: 1 1 0; min-height: 210px; margin: 0;
                          display: flex; flex-direction: column; }
.tablero .gr-lienzo { flex: 1 1 0; min-height: 0; overflow: hidden; }
.pulso { display: flex; flex-direction: column; min-height: 0; min-width: 0;
         background: var(--tarjeta); border: 1px solid var(--borde);
         border-radius: var(--radio); overflow: hidden; }
.pulso-cabeza { flex: none; padding: 12px 16px 8px;
                border-bottom: 1px solid var(--linea-suave); }
.pulso-cabeza { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pulso-titulo { font-size: var(--letra-subtitulo); font-weight: 700; }
.pulso-cuerpo { flex: 1 1 0; min-height: 0; overflow-y: auto;
                overscroll-behavior: contain; padding: 0 12px 8px; }
.tabla-vivo .col-cifra { width: 80px; }
.tabla-vivo th { padding: 8px 4px 6px; }
.tabla-vivo td { padding: 8px 4px; }
.pulso-cuerpo .tabla-sitios th { position: sticky; top: 0; z-index: 1;
                                 background: var(--tarjeta); }
.ts-cifra.mal { color: var(--rojo); }
.ts-cifra.bien { color: var(--verde); }
.asistencias .titulo-per, .asistencias .gr-dato { font-weight: 400; color: var(--tinta-suave); }
.asistencias .ts-nombre { font-weight: 400; }
.asistencias .ts-fila.elegida .ts-nombre { font-weight: 400; }
.asistencias .ts-cifra { font-weight: 400; }
.asistencias .ts-total .ts-cifra { font-weight: 500; }
.asistencias .res-comp { font-weight: 400; }
.asistencias .gr-nada { color: var(--tinta-suave); }
:is(.asistencias, .stb-alta) .camp-num { font-weight: 500; }
.asistencias :is(.pulso-titulo, .ts-titulo, .gr-titulo) { font-weight: 500; }
.vivo-fila { cursor: pointer; }
@media (max-width: 1100px) {
  .zona-dia.tablero { display: block; overflow-y: auto; }
  .exp-dia .tarjeta-dia { flex: none; overflow: visible; }
  .lado-der { display: block; }
  .tablero > .lado-der { margin-top: var(--aire); }
  .res-tarjetas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tablero .tabla-sitios-marco { max-height: none; overflow: visible;
                                 margin-bottom: 14px; }
  .tablero .grafica-marco { display: block; min-height: 0;
                            margin-top: var(--aire); margin-bottom: 14px; }
  .tablero .gr-lienzo { min-height: 190px; }
  .pulso { display: block; }
  .pulso-cuerpo { overflow: visible; }
  .tabla-sitios-marco, .pulso-cuerpo { overflow-x: auto; }
  .tabla-sitios, .expandido .tabla-sitios { table-layout: auto; min-width: 560px; }
  .tabla-sitios .col-cifra, .expandido .tabla-sitios .col-cifra { width: auto; }
}
.dia-cuadricula { width: 40px; height: 40px; flex: none; display: inline-flex;
                  align-items: center; justify-content: center;
                  border: 1px solid var(--borde); border-radius: var(--radio);
                  background: var(--tarjeta); color: var(--tinta-suave); }
.dia-cuadricula:hover { border-color: var(--tinta); color: var(--tinta); }
.dia-cuadricula svg { width: 18px; height: 18px; }
.confirma-velo { position: fixed; inset: 0; z-index: 1300; display: flex;
                 align-items: center; justify-content: center;
                 padding: 16px; background: var(--velo);
                 animation: confirma-velo .14s ease; }
.confirma { width: min(420px, 100%); background: var(--tarjeta);
            border-radius: var(--radio); box-shadow: var(--sombra-3);
            padding: 18px 20px 16px;
            display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 10px;
            animation: confirma-entra .16s ease; }
.confirma > * { grid-column: 1 / -1; }
.confirma > .confirma-ico { grid-column: 1; align-self: center;
                            display: inline-flex; align-items: center; justify-content: center;
                            color: var(--rojo); }
.confirma > :is(.confirma-titulo, .confirma-detalle) { grid-column: 2; }
.confirma-ico svg { width: 18px; height: 18px; }
.confirma-titulo { font-size: var(--letra-subtitulo); font-weight: 700; line-height: 1.35;
                   color: var(--tinta); }
.confirma-detalle { margin-top: 4px; font-size: var(--letra-cuerpo); line-height: 1.45;
                    color: var(--tinta-suave); }
.confirma-acciones { display: flex; justify-content: flex-end; gap: 8px;
                     margin-top: 16px; }
.confirma-acciones button { height: 32px; padding: 0 13px;
                            border-radius: var(--radio); font-family: inherit;
                            font-size: var(--letra-cuerpo); font-weight: 500;
                            cursor: pointer;
                            transition: background .15s ease,
                                        border-color .15s ease; }
.confirma-no { border: 1px solid var(--borde); background: var(--tarjeta);
               color: var(--tinta); }
.confirma-no:hover { background: var(--lienzo); border-color: var(--tinta-5); }
.confirma-si { border: 1px solid var(--rojo); background: var(--rojo);
               color: var(--tarjeta); font-weight: 700; }
.confirma-si:hover { background: var(--rojo-vivo);
                     border-color: var(--rojo-vivo); }
.confirma-acciones button:focus-visible { outline: 2px solid var(--ambar);
                                          outline-offset: 2px; }
.confirma > .confirma-ico.mano { color: var(--tinta-aviso); }
.confirma-campo { display: flex; flex-direction: column; gap: 4px; margin-top: 12px;
                  font-size: var(--letra-nota); color: var(--tinta-suave); }
.confirma-campo input, .confirma-campo select { height: 38px; padding: 0 11px;
                  border: 1px solid var(--borde); border-radius: 7px;
                  background: var(--tarjeta); font-family: inherit; font-size: var(--letra-cuerpo);
                  color: var(--tinta); outline: none; }
.confirma-campo input:focus, .confirma-campo select:focus {
  border-color: var(--ambar); box-shadow: 0 0 0 3px var(--ambar-palido); }
.confirma-error { margin: 10px 0 0; font-size: var(--letra-nota); color: var(--rojo); }
.confirma-error[hidden] { display: none; }
.confirma-ok { border: 1px solid var(--ambar); background: var(--ambar);
               color: var(--sobre-ambar); font-weight: 700; }
.confirma-ok:hover { background: var(--ambar-hondo); border-color: var(--ambar-hondo); }
.mano-ev { display: block; font-size: var(--letra-nota); color: var(--tinta-aviso); margin-top: 2px; }
.codigo-ev { display: block; font-size: var(--letra-nota); font-weight: 500; letter-spacing: .08em;
             color: var(--tinta-aviso); margin-top: 2px; }
@keyframes confirma-velo { from { opacity: 0; } }
@keyframes confirma-entra { from { opacity: 0; transform: translateY(6px); } }
@media (prefers-reduced-motion: reduce) {
  .confirma-velo, .confirma { animation: none; }
}
#ficha[hidden] { display: none; }
#ficha .velo { position: fixed; inset: 0; background: var(--velo);
               z-index: 40; }
.panel-ficha { position: fixed; top: 0; right: 0; bottom: 0; width: 452px;
               max-width: 92vw; background: var(--tarjeta);
               border-left: 1px solid var(--borde); z-index: 41;
               overflow-y: auto; box-shadow: var(--sh-panel); }
.fila-dia { cursor: pointer; }
.ficha-cabeza { padding: 22px 24px 20px; border-bottom: 1px solid var(--linea-suave);
                display: flex; align-items: flex-start; gap: 14px; }
.ficha-avatar { width: 52px; height: 52px; flex: 0 0 52px; font-size: var(--letra-titulo); }
.ficha-quien { flex: 1; min-width: 0; padding-top: 2px; }
.ficha-nombre { display: block; font-size: var(--letra-titulo); font-weight: 700;
                letter-spacing: -.2px; }
.ficha-sub { display: flex; align-items: center; gap: 7px; font-size: var(--letra-cuerpo);
             color: var(--tinta-suave); margin-top: 4px; flex-wrap: wrap; }
.ficha-sub svg { width: 13px; height: 13px; color: var(--tinta-5); flex: none; }
.ficha-punto { color: var(--tinta-5); }
.cierra-ficha { width: 32px; height: 32px; flex: 0 0 32px; display: grid;
                place-items: center; border: 1px solid var(--borde);
                background: var(--tarjeta); border-radius: var(--radio);
                cursor: pointer; color: var(--tinta-suave); }
.cierra-ficha:hover { border-color: var(--tinta); color: var(--tinta); }
.cierra-ficha svg { width: 16px; height: 16px; }
.ficha-etiqueta { font-size: var(--letra-etiqueta); font-weight: 500; letter-spacing: .8px;
                  text-transform: uppercase; color: var(--tinta-suave);
                  margin-bottom: 8px; }
.ficha-etiqueta.con-aire { margin-top: 11px; }
.ficha-14 { display: grid; grid-template-columns: repeat(14, minmax(0, 1fr));
            gap: 3px; }
.cuadro-dia { width: 100%; height: 22px; border-radius: 5px; }
.cuadro-dia.ok { background: var(--verde-vivo); }
.cuadro-dia.tarde { background: var(--ambar); }
.cuadro-dia.falta { background: var(--coral); }
.cuadro-dia.libre { background: var(--fondo); border: 1px solid var(--borde); }
.ficha-leyenda { display: flex; gap: 14px; margin-top: 10px;
                 font-size: var(--letra-etiqueta); color: var(--tinta-4); }
.ficha-leyenda > span { display: inline-flex; align-items: center; gap: 5px; }
.cuadro-mini { width: 9px; height: 9px; border-radius: 3px; display: inline-block; }
.cuadro-mini.ok { background: var(--verde-vivo); }
.cuadro-mini.tarde { background: var(--ambar); }
.cuadro-mini.falta { background: var(--coral); }
.cuadro-mini.libre { background: var(--fondo); border: 1px solid var(--borde); }
.ficha-dato { display: flex; align-items: center; gap: 11px; padding: 5px 0; }
.ficha-dato-cuerpo { flex: 1; min-width: 0; }
.ficha-dato-titulo { display: block; font-size: var(--letra-cuerpo); font-weight: 700;
                     font-variant-numeric: tabular-nums; }
.ficha-dato-titulo.suave-ficha { color: var(--tinta-4); font-weight: 500; }
.ficha-dato-sub { display: block; font-size: var(--letra-nota); color: var(--tinta-4);
                  margin-top: 2px; }
.ficha-sub .sub-dato { display: inline-flex; align-items: center; gap: 5px;
                       white-space: nowrap; }
.ficha-sub .ficha-punto { font-weight: 400; }
.accion.con-nota { height: auto; padding: 9px 14px; align-items: flex-start;
                   line-height: 1.25; }
.accion.con-nota svg { margin-top: 1px; }
.accion-nota { display: block; font-size: var(--letra-etiqueta); color: var(--tinta-4);
               margin-top: 3px; }
.ficha-acciones { display: flex; align-items: center; gap: 2px; flex: none; }
.ficha-uno { display: flex; flex-direction: column; min-height: 100%; }
.ficha-pie { margin-top: auto; position: sticky; bottom: 0; z-index: 3;
             display: flex; align-items: center; justify-content: flex-end;
             gap: 2px; padding: 11px 20px;
             background: var(--tarjeta);
             border-top: 1px solid var(--linea-suave); }
.ficha-liga { display: inline-flex; align-items: center; gap: 6px; border: 0;
              background: transparent; font-family: inherit;
              font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta-accion);
              cursor: pointer; padding: 6px 8px; border-radius: 7px; }
.ficha-liga svg { width: 13px; height: 13px; flex: none; }
.ficha-liga:hover { color: var(--tinta); background: var(--hover); }
.ficha-cuerpo { padding: 14px 20px 5px; }
.ficha-edicion { display: none; padding: 18px 24px 26px; }
.ficha-edicion .fp-dato + .fp-dato { margin-top: 10px; }
.ficha-edicion .fp-guarda { margin-top: 16px; }
.ficha-uno.editando .ficha-pie,
.ficha-uno.editando .ficha-cuerpo { display: none; }
.ficha-uno.editando .ficha-edicion { display: block; }
.fp-cancela { min-height: 38px; padding: 0 14px; border: 1px solid var(--control);
              border-radius: 7px; background: var(--tarjeta); font-family: inherit;
              font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta-suave);
              cursor: pointer; }
.fp-cancela:hover { background: var(--hover); color: var(--tinta); }
.ficha-uno.apagada .ficha-avatar { filter: grayscale(1); opacity: .6; }
.ficha-uno.apagada .ficha-cuerpo { opacity: .45; }
.pie-desde { margin-right: auto; font-size: var(--letra-nota); color: var(--tinta-suave);
             white-space: nowrap; }
.pie-desde b { font-weight: 500; color: var(--tinta); }
.banda { background: var(--sup-2); border-radius: var(--radio); padding: 13px 15px 15px; }
.banda-cabeza { display: flex; align-items: center; gap: 8px; margin-bottom: 13px; }
.banda-turno { font-size: var(--letra-cuerpo); font-weight: 700;
               font-variant-numeric: tabular-nums; }
.banda-turno.suave-ficha { font-weight: 500; color: var(--tinta-4); }
.banda-chip { margin-left: auto; font-size: var(--letra-etiqueta); font-weight: 500;
              padding: 3px 8px; border-radius: 7px; white-space: nowrap;
              background: var(--linea-suave); color: var(--tinta-suave); }
.banda-chip.vivo { background: var(--verde-palido); color: var(--verde-fuera); }
.banda-riel { position: relative; height: 10px; border-radius: 5px;
              background: var(--control); }
.banda-barra { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 5px;
               background: var(--verde-vivo); }
.banda-ahora { position: absolute; top: -4px; bottom: -4px; width: 2px;
               border-radius: 2px; background: var(--tinta-aviso); }
.banda-marcas { display: flex; justify-content: space-between; gap: 10px;
                margin-top: 8px; font-size: var(--letra-nota); color: var(--tinta-4); }
.banda-marcas b { font-size: var(--letra-cuerpo); font-weight: 700; color: var(--tinta);
                  font-variant-numeric: tabular-nums; }
.banda-tarde { font-style: normal; font-weight: 500; color: var(--tinta-aviso); }
.banda-dicho { font-size: var(--letra-cuerpo); color: var(--tinta-suave); }
.banda-partes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 10px; }
.banda-parte { min-width: 0; }
.banda-barra.doble { box-shadow: 0 0 0 2px var(--ambar); }
.banda-linea { margin-top: 8px; font-size: var(--letra-nota); color: var(--tinta-4);
               white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.banda-linea b { font-size: var(--letra-cuerpo); font-weight: 700; color: var(--tinta);
                 font-variant-numeric: tabular-nums; }
.banda-insignia { margin-left: auto; }
.ficha-numeros { display: grid; grid-template-columns: repeat(4, 1fr);
                 gap: 8px; }
.ficha-num { background: var(--tarjeta); border: 1px solid var(--borde);
             border-radius: var(--radio); padding: 9px 9px 10px; min-width: 0;
             text-align: center; }
.num-et { font-size: var(--letra-etiqueta); font-weight: 500; color: var(--tinta-suave);
          white-space: nowrap; }
.num-valor { font-size: var(--letra-maxima); font-weight: 900; letter-spacing: -1px;
             margin-top: 5px; font-variant-numeric: tabular-nums;
             white-space: nowrap; }
.num-valor.v-med { font-size: var(--letra-mayor); letter-spacing: -.8px; }
.num-valor.v-chi { font-size: var(--letra-grande); letter-spacing: -.6px; }
.ficha-como-va { display: flex; align-items: center; }
.ficha-registro { margin: -2px 0 -2px auto; display: inline-flex; gap: 6px;
                  letter-spacing: 0; text-transform: none; }
.dia-col { display: flex; flex-direction: column; align-items: stretch; gap: 5px;
           min-width: 0; }
.dia-col .dia-letra { text-align: center; }
.dia-letra { font-size: var(--letra-etiqueta); color: var(--tinta-5); }
.cuadro-dia.es-hoy { box-shadow: 0 0 0 2px var(--tarjeta), 0 0 0 4px var(--tinta-aviso); }
.ficha-14 .cuadro-dia { display: grid; place-items: center; }
.cuadro-marca { display: inline-flex; align-items: center; height: 14px;
                padding: 0 3px; border-radius: 4px; font-size: var(--letra-etiqueta);
                font-weight: 500; line-height: 1; }
.cuadro-marca.dos-x { color: var(--sobre-ambar);
                      background: linear-gradient(180deg, var(--ambar-barra), var(--ambar));
                      box-shadow: inset 0 0 0 1px var(--ambar-hondo); }
.cuadro-marca.chip-extra { color: var(--tinta-aviso); background: var(--tarjeta);
                           box-shadow: inset 0 0 0 1px var(--borde); }
.ficha-cuerpo form.ficha-dato { margin: 0; }
.ficha-nota { font-size: var(--letra-nota); color: var(--tinta-4); margin: 7px 0 0; }
.kpis-semana { display: grid; gap: 12px; margin-bottom: 12px;
               grid-template-columns: repeat(auto-fit, minmax(148px, 1fr)); }
.kpi-grande { background: var(--tarjeta); border: 1px solid var(--borde);
              border-radius: var(--radio); padding: 15px 18px; min-width: 0; }
.kpi-grande-label { font-size: var(--letra-nota); color: var(--tinta-suave);
                    font-weight: 500; white-space: nowrap; }
.kpi-grande-fila { display: flex; align-items: baseline; gap: 8px;
                   margin-top: 7px; }
.kpi-grande-valor { font-size: var(--letra-maxima); font-weight: 900;
                    letter-spacing: -1px; line-height: 1;
                    font-variant-numeric: tabular-nums; }
.kpi-delta { font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta-4);
             font-variant-numeric: tabular-nums; }
.kpi-delta.sube { font-weight: 700; color: var(--verde); }
.kpi-delta.baja { font-weight: 700; color: var(--rojo); }
.semana-cuerpo { display: flex; flex-wrap: wrap; gap: 12px;
                 align-items: flex-start; }
.tarjeta-semana { background: var(--tarjeta); border: 1px solid var(--borde);
                  border-radius: var(--radio); padding: 16px 20px 18px;
                  flex: 1 1 460px; min-width: 0; }
.semana-cabeza { display: flex; align-items: center;
                 justify-content: space-between; gap: 12px;
                 margin-bottom: 12px; flex-wrap: wrap; }
.semana-titulo { font-size: var(--letra-subtitulo); font-weight: 700; }
.fila-sem { display: flex; align-items: center; gap: 12px; padding: 7px 6px;
            border-radius: var(--radio); cursor: pointer;
            border-top: 1px solid var(--fondo); }
.fila-sem:hover { background: var(--hover); }
.sem-avatar { width: 24px; height: 24px; flex: 0 0 24px; font-size: var(--letra-etiqueta); }
.sem-nombre { flex: 1 1 90px; min-width: 0; font-size: var(--letra-cuerpo);
              font-weight: 500; white-space: nowrap; overflow: hidden;
              text-overflow: ellipsis; }
.sem-dias { display: flex; gap: 4px; flex: 0 0 auto; }
.cuadro-sem { width: 13px; height: 13px; flex: 0 0 13px;
              border-radius: 4px; }
.cuadro-sem.ok { background: var(--verde-vivo); }
.cuadro-sem.tarde { background: var(--ambar); }
.cuadro-sem.falta { background: var(--coral); }
.cuadro-sem.libre { background: var(--fondo); border: 1px solid var(--borde); }
.sem-horas { width: 60px; flex: 0 0 60px; text-align: right;
             font-size: var(--letra-cuerpo); font-weight: 700;
             font-variant-numeric: tabular-nums; }
.sem-pct { width: 100px; flex: 0 0 100px; display: flex;
           align-items: center; gap: 8px; }
.pct-riel { flex: 1; height: 5px; border-radius: 3px;
            background: var(--linea-suave); overflow: hidden; }
.pct-barra { display: block; height: 100%; border-radius: 3px; }
.pct-barra.verde { background: var(--verde-vivo); }
.pct-barra.ambar { background: var(--ambar); }
.pct-barra.rojo { background: var(--rojo-vivo); }
.pct-num { width: 36px; flex: 0 0 36px; text-align: right; font-size: var(--letra-nota);
           color: var(--tinta-suave); font-variant-numeric: tabular-nums; }
.pct-num.suave { color: var(--tinta-4); }
.semana-lado { display: flex; flex-direction: column; gap: 12px;
               flex: 1 1 300px; min-width: 0; }
.tarjeta-lado { background: var(--tarjeta); border: 1px solid var(--borde);
                border-radius: var(--radio); padding: 16px 20px 18px; }
.sitio-pct { display: flex; align-items: center; gap: 10px; padding: 6px 0; }
.sitio-pct-nombre { flex: 1; min-width: 0; font-size: var(--letra-cuerpo);
                    white-space: nowrap; overflow: hidden;
                    text-overflow: ellipsis; }
.sitio-pct .pct-riel { flex: 0 0 90px; height: 6px; }
.sitio-pct .pct-num { font-size: var(--letra-cuerpo); font-weight: 700;
                      color: var(--tinta); }
.patron { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0;
          border-top: 1px solid var(--fondo); }
.patron-punto { width: 8px; height: 8px; border-radius: 50%;
                flex: 0 0 8px; margin-top: 6px; }
.patron-punto.rojo { background: var(--rojo-vivo); }
.patron-punto.ambar { background: var(--ambar); }
.patron-txt { flex: 1; font-size: var(--letra-cuerpo); line-height: 1.4; }
.patron-nada { font-size: var(--letra-cuerpo); color: var(--tinta-4); margin: 0; }
.tel-c-num { width: 150px; }
.tel-c-sitio { width: 190px; }
.tel-c-bot { width: 150px; }
.tel-c-dia { width: 160px; }
.tel-c-gente { width: 120px; }
.tel-reng { cursor: default; }
.per-tabla-caja.abraza { flex: 0 1 auto; }
.tel-quien { display: flex; align-items: center; gap: 11px; min-width: 0; }
.tel-circulo { width: 34px; height: 34px; flex: none; border-radius: 50%;
               background: var(--sup-2); border: 1px solid var(--borde);
               display: grid; place-items: center; color: var(--tinta-suave);
               position: relative; }
.tel-circulo svg { width: 16px; height: 16px; }
.tel-circulo .punto-estado { position: absolute; right: -1px; bottom: -1px;
                             box-shadow: 0 0 0 2px var(--tarjeta); }
.tel-digitos { font-variant-numeric: tabular-nums; color: var(--tinta-suave); }
.tel-bot { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.tel-bot svg { width: 14px; height: 14px; flex: none; color: var(--rojo-marca); }
.tel-bot.falta, .tel-bot.falta svg { color: var(--tinta-aviso); }
.tel-jornada { display: flex; align-items: center; gap: 6px;
               font-variant-numeric: tabular-nums; }
.tel-jornada.sin { color: var(--tinta-4); }
.tel-cuando { width: 13px; height: 13px; flex: none; color: var(--tinta-suave); }
.carita.mas { background: var(--sup-2); color: var(--tinta-suave); }
.hueco-dato { display: inline-flex; align-items: center; gap: 5px;
              font-size: var(--letra-nota); font-weight: 500;
              color: var(--tinta-aviso); white-space: nowrap;
              margin-right: 2px; }
.hueco-dato.suave { color: var(--tinta-suave); font-weight: 500; }
.hueco-dato svg { width: 13px; height: 13px; flex: none; }
.seg-lista { margin: 0 0 12px; width: fit-content; }
.per-tabla-caja { background: var(--tarjeta); border: 1px solid var(--borde);
                  border-radius: var(--radio); overflow: auto;
                  flex: 1; min-height: 0; }
.tabla-tarjeta { display: flex; flex-direction: column; flex: 0 1 auto; min-height: 0;
                 background: var(--tarjeta); border: 1px solid var(--borde);
                 border-radius: var(--radio-tarjeta); box-shadow: var(--sombra-1);
                 overflow: hidden; }
.tabla-tarjeta:not(.con-paginas) { margin-bottom: var(--pie); }
.tel-config:not([hidden]) ~ .tabla-tarjeta { display: none; }
.per-tabla-caja.en-tarjeta { flex: 0 1 auto; min-height: 0; border: 0; border-radius: 0;
                             background: none; }
.per-tabla-caja.en-tarjeta .per-tabla :is(th, td):first-child { padding-left: var(--aire); }
.per-tabla-caja.en-tarjeta .per-tabla :is(th, td):last-child { padding-right: var(--aire); }
.per-tabla-caja.en-tarjeta :is(#tabla-personal, #tabla-telefonos) .per-c-acc { width: calc(50px + var(--aire) - 12px); }
.per-tabla tbody tr.fuera-de-pagina { display: none; }
.tabla-pie { flex: none; position: relative; display: flex; align-items: center;
             height: var(--pie); box-sizing: border-box; padding: 0 var(--aire);
             border-top: 1px solid var(--linea-suave);
             font-size: var(--letra-nota); color: var(--tinta-suave);
             font-variant-numeric: tabular-nums; }
.tabla-pie[hidden] { display: none; }
.tabla-paginas { position: absolute; left: 50%; transform: translateX(-50%);
                 display: flex; align-items: center; gap: 4px; }
.tabla-pag { min-width: var(--toque); height: var(--toque); padding: 0 6px; border: 0;
             border-radius: var(--radio-control); background: none; color: var(--tinta-suave);
             font-family: inherit; font-size: var(--letra-cuerpo); cursor: pointer;
             font-variant-numeric: tabular-nums; }
.tabla-pag:hover { background: var(--hover); color: var(--tinta); }
.tabla-pag.on, .tabla-pag.on:hover { background: var(--ambar); color: var(--sobre-ambar); font-weight: 700; }
.tabla-pag:disabled, .tabla-pag:disabled:hover { background: none; color: var(--tinta-5); cursor: default; }
.tabla-pag-hueco { min-width: 20px; text-align: center; color: var(--tinta-4); }
.per-tabla { width: 100%; border-collapse: separate; border-spacing: 0;
             table-layout: fixed; }
.per-c-num { width: 150px; }
.per-c-sitio { width: 190px; }
.per-c-estatus { width: 120px; }
.per-c-nac { width: 150px; }
.per-c-ing { width: 150px; }
.per-c-acc { width: 54px; }
#tabla-personal .per-c-acc,
#tabla-telefonos .per-c-acc,
.bots-tabla th.per-c-acc { width: 50px; }
.per-tabla th { position: sticky; top: 0; z-index: 2;
                background: var(--tarjeta); text-align: left; padding: 11px 12px 9px;
                font-size: var(--letra-etiqueta); font-weight: 500; letter-spacing: .04em;
                text-transform: uppercase; color: var(--tinta-suave);
                white-space: nowrap; border-bottom: 1px solid var(--borde); }
.per-tabla th > button { all: unset; cursor: pointer; display: inline-flex;
                         align-items: center; gap: 3px; padding: 2px 0;
                         border-bottom: 2px solid transparent; vertical-align: middle; }
.per-tabla th > button:hover { color: var(--tinta); }
.per-tabla th.on > button[data-orden] { color: var(--tinta);
                                        border-bottom-color: var(--ambar); }
.per-embudo { margin-left: 7px; }
.per-embudo svg { width: 13px; height: 13px; }
.per-tabla th.on .ts-flecha { opacity: 1; }
.per-tabla th.on.primero .ts-flecha { transform: rotate(180deg); }
.per-tabla th.filtrando .per-jefe { color: var(--tinta-accion); border-bottom-color: var(--tinta-accion); }
.per-cuantos { font-variant-numeric: tabular-nums; }
:root { --renglon: 47px; }
.per-tabla tbody tr { height: var(--renglon-vivo, var(--renglon)); }
.per-tabla td { padding: 4px 12px; font-size: var(--letra-cuerpo); vertical-align: middle;
                border-top: 1px solid var(--linea-suave); white-space: nowrap; }
.per-tabla tbody tr.primera td { border-top: 0; }
.bots-tabla tbody tr:first-child > td { border-top: 0; }
.per-tabla td:not(.per-c-acc) { overflow: hidden; text-overflow: ellipsis; }
.menucito.arriba { top: auto; bottom: 36px; }
.per-tabla-caja.deja-salir { overflow: visible; }
.per-tabla tbody tr:last-child td:first-child { border-bottom-left-radius: var(--radio-dentro); }
.per-tabla tbody tr:last-child td:last-child { border-bottom-right-radius: var(--radio-dentro); }
.per-fila { cursor: pointer; }
.per-fila:hover td { background: var(--hover); }
.per-fila.nueva td { background: var(--ambar-palido); }
.per-quien { display: flex; align-items: center; gap: 10px; min-width: 0; }
.per-quien .avatar { width: 30px; height: 30px; font-size: var(--letra-etiqueta); flex: none; }
.per-nombre { min-width: 0; overflow: hidden; text-overflow: ellipsis;
              white-space: nowrap; font-weight: 400; }
.per-num { color: var(--tinta-suave); font-variant-numeric: tabular-nums; }
.per-nac { display: inline-flex; align-items: center; gap: 5px;
           font-variant-numeric: tabular-nums; }
.per-nac.cumple { color: var(--tinta-aviso); }
.per-nac.es-hoy, .per-nac.es-hoy svg { color: var(--tinta-aviso); }
.per-avisos { display: inline-flex; align-items: center; gap: 10px; margin-left: auto; }
.per-avisos + .acciones-alta { margin-left: 2px; }
.per-avisos .per-aviso { display: inline-flex; align-items: center; justify-content: center;
                         gap: 6px; height: var(--toque);
                         box-sizing: border-box; padding: 0 8px; border: 0;
                         border-radius: var(--radio); background: none; font-family: inherit;
                         font-size: var(--letra-cuerpo); color: var(--tinta-suave); white-space: nowrap;
                         cursor: pointer; }
.per-avisos .per-aviso:hover { background: var(--fondo); color: var(--tinta); }
.per-aviso svg { width: 16px; height: 16px; flex: none; }
.per-aviso b { color: var(--tinta); font-weight: 500; font-variant-numeric: tabular-nums; }
.per-aviso.prendido { color: var(--tinta-accion);
  border-radius: var(--radio) var(--radio) 0 0; box-shadow: inset 0 -2px var(--tinta-accion); }
.per-aviso.prendido b { color: var(--tinta-accion); }
.per-nac svg { width: 13px; height: 13px; flex: none; }
.per-nada { color: var(--tinta-5); }
.per-estado { display: inline-block; padding: 2px 9px; border-radius: 7px;
              font-size: var(--letra-nota); font-weight: 500; }
.per-estado.si { background: var(--verde-palido); color: var(--verde-fuera); }
.per-estado.no { background: var(--control); color: var(--tinta); }
.per-fila.apagada .per-nombre, .per-fila.apagada .per-num { color: var(--tinta-4); }
.per-c-acc { text-align: right; }
.per-tabla td.per-c-acc { padding-left: 0; }
.per-tabla .acciones { display: inline-flex; }
.per-sin-nadie { margin: 0; padding: 26px 16px; text-align: center;
                 font-size: var(--letra-cuerpo); color: var(--tinta-suave); }
.per-sin-nadie[hidden] { display: none; }
.per-limpia-todo, .per-limpia { all: unset; cursor: pointer; margin-left: 6px;
                                color: var(--tinta-accion); font-weight: 500;
                                font-size: var(--letra-cuerpo); }
.per-limpia-todo:hover, .per-limpia:hover { text-decoration: underline; }
.per-menu { position: absolute; top: 100%; left: 6px; z-index: 40; width: 250px;
            padding: 8px; background: var(--tarjeta); border: 1px solid var(--borde);
            border-radius: var(--radio); box-shadow: var(--sombra-2);
            text-transform: none; letter-spacing: 0; }
.per-menu[hidden] { display: none; }
.per-c-sitio .per-menu, .per-c-estatus .per-menu { left: auto; right: 6px; }
.per-buscar-op { width: 100%; box-sizing: border-box; margin-bottom: 6px;
                 padding: 7px 9px; border: 1px solid var(--borde);
                 border-radius: var(--radio); background: var(--tarjeta);
                 font-family: inherit; font-size: var(--letra-nota); color: var(--tinta); }
.per-ops { max-height: 200px; overflow: auto; }
.per-op { all: unset; cursor: pointer; display: flex; align-items: center; gap: 8px;
          padding: 6px 7px; border-radius: 7px; font-size: var(--letra-cuerpo);
          color: var(--tinta); }
.per-op:hover { background: var(--hover); }
.per-op[hidden] { display: none; }
.per-caja { width: 15px; height: 15px; flex: none; border: 1.5px solid var(--tinta-5);
            border-radius: 4px; background: var(--tarjeta); }
.per-op[aria-pressed='true'] .per-caja { background: var(--tinta-accion); border-color: var(--tinta-accion); }
.per-cuenta { margin-left: auto; color: var(--tinta-4); font-size: var(--letra-etiqueta);
              font-variant-numeric: tabular-nums; }
.per-menu-pie { display: flex; margin-top: 6px; padding: 7px 0 0;
                border-top: 1px solid var(--linea-suave); }
.per-menu-pie .per-limpia { display: block; width: 100%; margin-left: 0;
                            text-align: left; padding: 6px 7px;
                            border-radius: 7px; }
.per-menu-pie .per-limpia:hover { background: var(--hover);
                                  text-decoration: none; }
.miembro.reng { cursor: pointer; }
.per-sitio { display: inline-flex; align-items: center; gap: 5px; }
.per-sitio svg { width: 13px; height: 13px; flex: none; }
.per-sitio svg { color: var(--rojo-marca); }
.per-sitio.suave { color: var(--tinta-4); }
.per-sitio.suave svg { color: var(--tinta-5); }
.per-sitio.espera, .per-sitio.espera svg { color: var(--tinta-aviso); }
.per-nomina { color: var(--tinta-suave); white-space: nowrap; }
#tabla-personal .per-num { color: var(--tinta); }
#tabla-personal .per-fila.apagada .per-nombre,
#tabla-personal .per-fila.apagada .per-num,
#tabla-personal .per-fila.apagada .per-nac,
#tabla-personal .per-nada,
#tabla-personal .per-sitio.suave,
#tabla-personal .per-sitio.suave svg,
#tabla-personal .kebab:not(:hover) { color: var(--tinta-suave); }
#tabla-telefonos tr[data-bot='si'] .tel-digitos { color: var(--tinta); }
#tabla-telefonos .per-sitio.suave,
#tabla-telefonos .per-sitio.suave svg,
#tabla-telefonos .tel-jornada.sin,
#tabla-telefonos .registra.nadie,
#tabla-telefonos .per-nada,
#tabla-telefonos .kebab:not(:hover) { color: var(--tinta-suave); }
.bots-tabla .bot-nada,
.bots-tabla .per-sitio.suave,
.bots-tabla .per-sitio.suave svg,
.bots-tabla .kebab:not(:hover) { color: var(--tinta-suave); }
.sitio > .grupo-vacio { padding: 12px 16px; margin: 0; }
.per-tel { cursor: pointer; }
.per-tel:has(> input:checked) { border: 2px solid var(--ambar); padding: 10px 11px;
                                background: var(--ambar-palido); }
.per-pie .tel-atras { order: 2; }
.per-pie .manda { order: 3; }
.grupo-vacio { margin: 0 0 4px 2px; font-size: var(--letra-nota);
               color: var(--tinta-4); }
.fp-elige { flex: 1; min-width: 0; border: 1px solid var(--borde);
            border-radius: 7px; padding: 8px 10px; background: var(--tarjeta);
            font-family: inherit; font-size: var(--letra-cuerpo); font-weight: 500;
            color: var(--tinta); cursor: pointer; }
.fp-dato { display: block; }
.fp-dato-et { display: block; font-size: var(--letra-nota); color: var(--tinta-suave);
              margin-bottom: 4px; }
.fp-dato input { width: 100%; border: 1px solid var(--borde);
                 border-radius: 7px; padding: 9px 11px;
                 font-family: inherit; font-size: var(--letra-cuerpo); color: var(--tinta);
                 background: var(--tarjeta); }
.fp-guarda { display: flex; align-items: center; gap: 12px; margin-top: 4px; }
.abre-barra.principal { background: var(--ambar); border-color: var(--ambar);
                        color: var(--sobre-ambar); font-weight: 700; }
.abre-barra.principal:hover { background: var(--ambar-hondo);
                              border-color: var(--ambar-hondo); }
.abre-barra.principal.prendido { background: var(--ambar-hondo);
                                 border-color: var(--ambar-hondo);
                                 color: var(--sobre-ambar); }
.campo input, .fp-dato input, .aki-caja input,
.fp-elige, .campo-buscar input, #buscar {
  height: 40px; border: 1px solid var(--borde); border-radius: 7px;
  background: var(--tarjeta); font-family: inherit; font-size: var(--letra-cuerpo);
  color: var(--tinta); outline: none;
  transition: border-color .16s ease, box-shadow .16s ease; }
.campo input, .campo-buscar input, #buscar { padding: 0 13px 0 39px; }
.fp-dato input, .aki-caja input { padding: 0 13px; }
.fp-elige { padding: 0 10px; font-weight: 500; font-size: var(--letra-cuerpo);
            cursor: pointer; }
.campo input:focus, .mando input:focus, .aki-caja input:focus,
.fp-dato input:focus, .campo-buscar input:focus,
#buscar:focus, .fp-elige:focus {
  border-color: var(--ambar); box-shadow: 0 0 0 3px var(--ambar-palido); }
:where(button, a, [tabindex]):focus-visible {
  outline: 2px solid var(--ambar); outline-offset: 1px; }
.manda:disabled { background: var(--linea-suave); color: var(--tinta-4);
                  cursor: default; }
.manda:disabled:hover { background: var(--linea-suave); }
.sitio-dot { width: 42px; height: 42px; border-radius: 50%;
             background: var(--tarjeta); border: 2.5px solid var(--tinta-4);
             display: flex; align-items: center; justify-content: center;
             box-shadow: var(--sombra-2);
             cursor: pointer; position: relative;
             transition: transform .15s ease; }
.sitio-dot:hover { transform: scale(1.06); }
.sitio-dot.res { box-shadow: 0 0 0 3px var(--ambar), var(--sombra-2); }
.sitio-dot b { font-size: var(--letra-nota); font-weight: 700; color: var(--tinta);
               font-variant-numeric: tabular-nums; }
.sitio-dot-nombre { position: absolute; top: 44px; left: 50%;
                    transform: translateX(-50%); white-space: nowrap;
                    font-size: var(--letra-etiqueta); font-weight: 500; color: var(--tinta);
                    text-shadow: 0 1px 0 var(--lienzo), 0 -1px 0 var(--lienzo),
                                 1px 0 0 var(--lienzo), -1px 0 0 var(--lienzo),
                                 0 0 4px var(--lienzo); }
.sitio-ficha { display: inline-flex; align-items: center; gap: 8px;
               white-space: nowrap; background: var(--tarjeta);
               border: 1px solid var(--borde); border-radius: var(--radio);
               padding: 7px 11px 8px; cursor: pointer;
               box-shadow: var(--sombra-2);
               transition: border-color .15s ease; }
.sitio-ficha:hover { border-color: var(--tinta); }
.sitio-ficha.res { border-color: var(--ambar); background: var(--ambar-palido); }
.sf-nombre { font-size: var(--letra-nota); font-weight: 700; color: var(--tinta); }
.sf-cuenta { display: inline-flex; align-items: center; gap: 5px;
             font-size: var(--letra-nota); font-weight: 700; color: var(--tinta);
             font-variant-numeric: tabular-nums; }
.sf-cuenta i { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.sf-desglose { display: block; font-size: var(--letra-etiqueta); color: var(--tinta-suave); }
.sf-tel { font-size: var(--letra-etiqueta); color: var(--tinta-4); }
.pin-tel { position: relative; border-radius: 50%; color: #fff;
           font-size: var(--letra-nota); font-weight: 700; display: flex;
           align-items: center; justify-content: center; overflow: visible;
           box-shadow: 0 0 0 2.5px var(--tarjeta), var(--sombra-2);
           cursor: pointer;
           transition: box-shadow .16s ease, transform .16s ease; }
.pin-tel img { width: 100%; height: 100%; border-radius: 50%;
               object-fit: cover; }
.pin-tel:not(.punto) { box-sizing: border-box; background: var(--sup-2);
                       border: 1px solid var(--borde);
                       color: var(--tinta-suave); }
.pin-tel svg { width: 50%; height: 50%; }
.pin-tel:hover { transform: scale(1.06); }
.pin-tel.punto { box-shadow: 0 0 0 2px var(--tarjeta), var(--sombra-1); }
.pin-tel.res { box-shadow: 0 0 0 3px var(--tarjeta), 0 0 0 6px var(--ambar), var(--sombra-2); }
.pin-cuadrilla { position: absolute; top: -6px; right: -6px;
                 min-width: 18px; height: 18px; padding: 0 4px;
                 border-radius: var(--radio); background: var(--tinta);
                 color: var(--lienzo); font-size: var(--letra-etiqueta); font-weight: 700;
                 line-height: 18px; text-align: center;
                 font-variant-numeric: tabular-nums;
                 box-shadow: 0 0 0 2px var(--tarjeta); }
.sitio-llego { position: absolute; bottom: -4px; right: -6px;
               width: 19px; height: 19px; border-radius: 50%;
               background: var(--tarjeta); border: 1.5px solid var(--borde);
               display: flex; align-items: center; justify-content: center;
               color: var(--tinta); }
.sitio-llego svg { width: 11px; height: 11px; }
.mapa-rastros.prendido { border-color: var(--ambar); background: var(--ambar-palido);
                         color: var(--tinta-accion); }
.pin-tel.fuera { box-shadow: 0 0 0 2.5px var(--tarjeta),
                             0 0 0 5px var(--rojo-vivo), var(--sombra-2); }
.pin-tel.punto.fuera { box-shadow: 0 0 0 2px var(--tarjeta),
                                   0 0 0 4px var(--rojo-vivo); }
.pin-tel.fuera.res { box-shadow: 0 0 0 3px var(--tarjeta),
                                 0 0 0 6px var(--ambar), var(--sombra-2); }
.fuera-metros { display: inline-block; transform: translate(-50%, -50%);
                white-space: nowrap; background: var(--tarjeta);
                border: 1px solid var(--rojo-vivo); border-radius: 7px;
                padding: 2px 7px; font-size: var(--letra-etiqueta); font-weight: 700;
                color: var(--rojo); font-variant-numeric: tabular-nums;
                box-shadow: var(--sombra-2); }
.sf-fuera { font-size: var(--letra-etiqueta); font-weight: 700; color: var(--rojo);
            font-variant-numeric: tabular-nums; }
.sitio-alerta { position: absolute; top: -3px; right: -3px;
                width: 12px; height: 12px; border-radius: 50%;
                background: var(--rojo-vivo); border: 2px solid var(--tarjeta); }
.mp-busca { position: relative; display: block; margin-top: 12px; }
.mp-busca input { width: 100%; height: 36px; padding: 0 12px 0 34px;
                  border: 1px solid var(--borde); border-radius: var(--radio);
                  background: var(--tarjeta); font-family: inherit;
                  font-size: var(--letra-cuerpo); color: var(--tinta); outline: none;
                  transition: border-color .16s ease, box-shadow .16s ease; }
.mp-busca input:focus { border-color: var(--ambar);
                        box-shadow: 0 0 0 3px var(--ambar-palido); }
.mp-busca svg { position: absolute; left: 11px; top: 50%; width: 16px;
                height: 16px; margin-top: -8px; color: var(--tinta-4);
                pointer-events: none; }
.mp-busca input::-webkit-search-cancel-button { cursor: pointer; }
.mp-cortes { display: grid; grid-template-columns: 1fr 1fr;
             gap: 3px 10px; justify-items: start;
             padding: 12px 16px 0; }
.mp-corte { display: inline-flex; align-items: center; gap: 7px;
            padding: 3px 0; border: 0; border-bottom: 2px solid transparent;
            background: none; font-family: inherit; font-size: var(--letra-cuerpo);
            font-weight: 400; color: var(--tinta-suave); cursor: pointer;
            transition: color .15s ease, border-color .15s ease; }
.mp-corte i { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.mp-corte b { font-weight: 700; font-variant-numeric: tabular-nums; }
.mp-corte:hover { color: var(--tinta); }
.mp-corte.on { color: var(--tinta); border-bottom-color: var(--ambar); }
.mp-segmento { display: flex; gap: 2px; margin: 14px 20px 0;
               padding: 3px; background: var(--linea-suave);
               border-radius: var(--radio); }
.mps-btn { flex: 1; height: 30px; border: 0; border-radius: 7px;
           background: none; font-family: inherit; font-size: var(--letra-nota);
           font-weight: 500; color: var(--tinta-suave); cursor: pointer;
           transition: background .15s ease, color .15s ease; }
.mps-btn.on { background: var(--tarjeta); font-weight: 500;
              color: var(--tinta); box-shadow: var(--sombra-1); }
.mp-grupo { display: flex; align-items: center; gap: 9px;
            padding: 10px 8px 2px; }
.mp-grupo svg { width: 13px; height: 13px; flex: none; color: var(--tinta-5); }
.mpg-nombre { font-size: var(--letra-etiqueta); font-weight: 500; text-transform: uppercase;
              letter-spacing: .6px; color: var(--tinta-4);
              white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mpg-cuenta { font-size: var(--letra-etiqueta); font-weight: 700; color: var(--tinta-4);
              font-variant-numeric: tabular-nums; flex: none; }
.mpg-filo { flex: 1; height: 1px; background: var(--lienzo); }
.mpg-ver { flex: none; border: 0; background: none; padding: 0 0 0 8px;
           font-family: inherit; font-size: var(--letra-etiqueta); font-weight: 500;
           color: var(--tinta-accion); cursor: pointer;
           transition: color .15s ease; }
.mpg-ver:hover { color: var(--tinta); }
.mp-grupo.hueco svg, .mp-grupo.hueco .mpg-nombre { color: var(--rojo); }
.gente-fila { gap: 10px; }
.gente-letras { flex: 1; }
.gente-dato { flex: none; font-size: var(--letra-nota); font-weight: 700;
              font-variant-numeric: tabular-nums; }
.gente-dato.verde { color: var(--verde); }
.gente-dato.rojo { color: var(--rojo); }
.gente-dato.gris { color: var(--tinta-4); }
.gente-fila.res { background: var(--ambar-palido); box-shadow: none; }
.gente-fila:hover { background: var(--hover); }
.gente-fila.res:hover { background: var(--ambar-palido); }
.linea-tiempo { position: absolute; left: 336px; right: 16px; bottom: 16px;
                z-index: 500; background: var(--tarjeta);
                border: 1px solid var(--borde); border-radius: var(--radio);
                padding: 12px 18px 14px;
                box-shadow: var(--sombra-3); }
.lt-arriba { display: flex; align-items: center; gap: 12px; }
.lt-hora { font-size: var(--letra-grande); font-weight: 900; letter-spacing: -.7px;
           color: var(--tinta); font-variant-numeric: tabular-nums;
           flex: none; }
.lt-nota { flex: 1; min-width: 0; font-size: var(--letra-nota); color: var(--tinta-suave);
           white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lt-nota b { color: var(--tinta); font-weight: 700;
             font-variant-numeric: tabular-nums; }
.lt-nota b.falta { color: var(--rojo); }
.lt-ahora { flex: none; height: 32px; padding: 0 14px; border-radius: var(--radio);
            border: 1px solid var(--borde); background: var(--tarjeta);
            font-family: inherit; font-size: var(--letra-nota); font-weight: 500;
            color: var(--tinta); cursor: pointer;
            transition: background .15s ease, border-color .15s ease,
                        color .15s ease; }
.lt-ahora:hover { border-color: var(--tinta); }
.lt-ahora.prendido { border-color: var(--ambar); background: var(--ambar-palido);
                     color: var(--tinta-accion); }
.lt-pista { position: relative; height: 26px; margin-top: 6px;
            cursor: pointer; touch-action: none; }
.lt-pista:focus-visible { outline: 2px solid var(--ambar); outline-offset: 3px;
                          border-radius: 4px; }
.lt-riel, .lt-andado { position: absolute; top: 11px; height: 4px;
                       border-radius: 2px; }
.lt-riel { left: 0; right: 0; background: var(--linea-suave); }
.lt-andado { left: 0; background: var(--control); }
.lt-marcas { position: absolute; inset: 0; pointer-events: none; }
.lt-tick { position: absolute; top: 8px; width: 1px; height: 10px;
           background: var(--borde); }
.lt-marca { position: absolute; top: 0; transform: translateX(-50%);
            font-size: var(--letra-etiqueta); color: var(--tinta-5);
            font-variant-numeric: tabular-nums; }
.lt-real { position: absolute; top: 6px; width: 2px; height: 14px;
           background: rgba(255, 179, 0, .85); pointer-events: none; }
.lt-cabeza { position: absolute; top: 4px; width: 18px; height: 18px;
             margin-left: -9px; border-radius: 50%; background: var(--tarjeta);
             border: 3px solid var(--ambar);
             box-shadow: var(--sombra-1); }
@media (max-width: 900px) {
  .linea-tiempo { padding: 10px 14px 12px; }
  .lt-nota { display: none; }
}
.mapa-lienzo.apuntando, .mapa-lienzo.apuntando .leaflet-container {
  cursor: crosshair; }
.mapa-cerca.prendido, .mapa-fondo.prendido {
  background: var(--ambar); border-color: var(--ambar);
  color: var(--sobre-ambar); }
.fondo-menu { min-width: 190px; }
.fondo-op { flex-direction: column; align-items: flex-start; gap: 1px; }
.fondo-op b { font-size: var(--letra-cuerpo); font-weight: 500; }
.fondo-op small { font-size: var(--letra-etiqueta); color: var(--tinta-4); }
.fondo-op.on { background: var(--ambar-palido); }
.fondo-op.on b { color: var(--tinta-accion); font-weight: 500; }
.mapa-lleno.con-color .leaflet-tile-pane { filter: saturate(.85); }
.mapa-lleno.satelite .leaflet-tile-pane { filter: saturate(.72)
                                                  brightness(1.02); }
.tarjeta-quien { position: absolute; right: 14px; bottom: 128px;
                 width: 296px; max-height: calc(100% - 220px);
                 overflow: auto; z-index: 600; background: var(--tarjeta);
                 border: 1px solid var(--borde); border-radius: var(--radio);
                 padding: 15px 16px 14px;
                 box-shadow: var(--sombra-3);
                 animation: caeEv .18s ease; }
.tarjeta-quien[hidden] { display: none; }
.tq-cabeza { display: flex; align-items: flex-start; gap: 11px; }
.tq-avatar { width: 40px; height: 40px; border-radius: 50%; flex: none;
             color: #fff; font-size: var(--letra-cuerpo); font-weight: 500;
             display: flex; align-items: center; justify-content: center;
             overflow: hidden; }
.tq-avatar img { width: 100%; height: 100%; object-fit: cover; }
.tq-avatar svg { width: 18px; height: 18px; }
.tq-quien { flex: 1; min-width: 0; }
.tq-nombre { display: block; font-size: var(--letra-titulo); font-weight: 700;
             letter-spacing: -.3px; color: var(--tinta); line-height: 1.2; }
.tq-turno { display: block; font-size: var(--letra-nota); color: var(--tinta-suave);
            margin-top: 2px; }
.tq-cerrar { flex: none; width: 28px; height: 28px; border-radius: var(--radio);
             border: 1px solid var(--borde); background: var(--tarjeta);
             color: var(--tinta-suave); cursor: pointer; display: flex;
             align-items: center; justify-content: center;
             transition: border-color .15s ease, color .15s ease; }
.tq-cerrar:hover { border-color: var(--tinta); color: var(--tinta); }
.tq-cerrar svg { width: 15px; height: 15px; }
.tq-estado { display: flex; align-items: center; gap: 8px; margin-top: 13px;
             font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta); }
.tq-estado i { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.tq-datos { margin-top: 13px; padding-top: 12px;
            border-top: 1px solid var(--linea-suave);
            display: flex; flex-direction: column; gap: 6px; }
.tq-dato { display: flex; gap: 8px; align-items: baseline; }
.tq-etiq { flex: 0 0 78px; font-size: var(--letra-nota); color: var(--tinta-4); }
.tq-valor { flex: 1; min-width: 0; font-size: var(--letra-nota); font-weight: 500;
            color: var(--tinta); font-variant-numeric: tabular-nums; }
.tq-valor.callado { font-weight: 400; color: var(--tinta-4); }
.tq-aviso { display: flex; gap: 7px; margin-top: 12px; padding-top: 11px;
            border-top: 1px solid var(--linea-suave);
            font-size: var(--letra-nota); font-weight: 500; color: var(--rojo); }
.tq-aviso svg { width: 14px; height: 14px; flex: none; margin-top: 1px; }
@media (max-width: 900px) {
  .tarjeta-quien { right: 12px; left: 12px; width: auto; bottom: 108px; }
}
.renombra-caja { font: inherit; font-weight: inherit; color: var(--tinta);
                 width: 100%; max-width: 320px; height: 28px;
                 padding: 0 8px; border: 1px solid var(--ambar);
                 border-radius: 7px; background: var(--tarjeta);
                 outline: none; box-shadow: 0 0 0 3px var(--ambar-palido); }
.acciones-fila:has(.abre-barra:not(.principal):hover) .abre-barra.principal {
  background: var(--tarjeta); border-color: var(--borde);
  color: var(--tinta-suave); }
:root { --buscador: clamp(240px, 27vw, 380px); }
.acciones-fila { position: relative; padding-right: var(--buscador); }
.campo-buscar.derecha { position: absolute; right: 0; top: 50%;
                        transform: translateY(-50%);
                        width: var(--buscador); flex: none; margin: 0; }
.campo-buscar.derecha input { width: 100%; }
@media (max-width: 1200px) {
  .acciones-fila { padding-right: 0; flex-wrap: wrap; }
  .campo-buscar.derecha { position: static; transform: none;
                          flex: 1 1 100%; width: auto; }
  .acciones-alta { margin-right: 0; }
}
.acciones-fila.franja { min-height: var(--franja);
                        margin: calc(-1 * var(--aire)) calc(-1 * var(--aire)) var(--aire);
                        padding: var(--respiro) calc(var(--aire) + var(--buscador))
                                 var(--respiro) var(--aire);
                        background: var(--tarjeta); border-bottom: 1px solid var(--borde); }
.acciones-fila.franja.sin-lupa { padding-right: var(--aire); }
.acciones-fila.franja .campo-buscar.derecha { right: var(--aire); }
.acciones-fila.franja + .cuentas { margin-top: 0; }
.acciones-fila.franja .titulo-v2 { font-size: var(--letra-titulo); }
.acciones-fila.franja .abre-barra,
.acciones-fila.franja .campo-buscar input,
.acciones-fila.franja #buscar,
.acciones-fila.franja .tira,
.acciones-fila.franja .exp-volver,
.acciones-fila.franja .camp-boton { height: var(--toque); }
.acciones-fila.franja .dia-cuadricula { width: var(--toque); height: var(--toque); }
.acciones-fila.franja .campana { align-self: stretch; display: flex; align-items: center; }
.acciones-fila.franja .camp-panel,
.acciones-fila.franja .acciones-alta > .menucito { top: calc(100% + var(--respiro) + 1px); }
.acciones-fila.franja .acciones-alta > .menucito { min-width: 210px; }
.acciones-fila.franja .tira-cal { top: calc(100% + var(--respiro) + 2px); }
@media (max-width: 1200px) {
  .acciones-fila.franja { padding-right: var(--aire); }
  :root:has(.acciones-fila.franja .campo-buscar.derecha) {
    --franja: calc(2 * var(--toque) + 8px + 2 * var(--respiro) + 1px); }
}
:root {
  --hab-asistencia: var(--verde-vivo); --hab-asistencia-texto: var(--verde);
  --hab-alerta:     #F5342B; --hab-alerta-texto:     #D42217;
  --hab-avisos:     #FFB300; --hab-avisos-texto:     var(--rojo-marca);
  --hab-solicitudes:#1E6BE6; --hab-solicitudes-texto:#1A5FD0;
}
.hab-asistencia  { --hab: var(--hab-asistencia);  --hab-texto: var(--hab-asistencia-texto); }
.hab-alerta      { --hab: var(--hab-alerta);      --hab-texto: var(--hab-alerta-texto); }
.hab-avisos      { --hab: var(--hab-avisos);      --hab-texto: var(--hab-avisos-texto); }
.hab-solicitudes { --hab: var(--hab-solicitudes); --hab-texto: var(--hab-solicitudes-texto); }
.hab-faltas      { --hab: var(--rojo-vivo);        --hab-texto: var(--rojo); }
.tecla.con-halo:hover {
  background: var(--lienzo); border-color: var(--hab); }
.hab-icono { width: 12px; height: 12px; flex: none;
             color: var(--hab-texto); }
.hab-icono.medio { width: 15px; height: 15px; }
.hab-icono.grande { width: 30px; height: 30px; }
.hab-alerta .hab-icono { animation: late-hab 2.2s ease-in-out infinite; }
@keyframes late-hab { 0%, 100% { opacity: 1 } 50% { opacity: .4 } }
.hab-pildora { display: inline-flex; align-items: center; gap: 7px;
               font-size: var(--letra-nota); font-weight: 500;
               color: var(--hab-texto); white-space: nowrap; }
.eligible.hab { flex-direction: column; align-items: center; gap: 4px;
                padding: 13px 10px 12px; text-align: center;
                border: 1.5px solid var(--hab); border-radius: var(--radio);
                transition: transform .15s ease, background .15s ease; }
.eligible.hab:hover { border-color: var(--hab); background: var(--sup-2); }
.eligible.hab .eligible-nombre { display: inline-flex; align-items: center;
                                 gap: 7px; font-size: var(--letra-subtitulo);
                                 font-weight: 700; color: var(--hab-texto); }
.eligible.hab .eligible-nombre .hab-icono { width: 18px; height: 18px; }
.eligible-corta { display: block; font-size: var(--letra-nota);
                  color: var(--tinta-suave); }
.eleccion.fija .eligible { pointer-events: none; }
.eleccion.fija .eligible:not(.elegida) { opacity: .4; }
.eligible.hab.elegida { border-width: 2px; padding: 12.5px 9.5px 11.5px;
                        transform: translateY(-3px);
                        background: color-mix(in srgb, var(--hab) 10%, var(--tarjeta)); }
.eligible-detalle { margin: 12px 0 0; padding: 11px 14px; border-radius: var(--radio);
                    font-size: var(--letra-cuerpo); line-height: 1.5;
                    color: var(--hab-texto);
                    background: color-mix(in srgb, var(--hab) 10%, var(--tarjeta)); }
.eligible-detalle[hidden] { display: none; }
.eleccion.catalogo { grid-template-columns: repeat(3, minmax(0, 1fr));
                    gap: 10px; }
.eligible.puesta { opacity: .7; pointer-events: none; position: relative; }
.eligible-puesta { position: absolute; top: 6px; right: 6px;
                   display: grid; place-items: center;
                   width: 16px; height: 16px; border-radius: 50%;
                   background: var(--verde); color: var(--tarjeta); }
.eligible-puesta svg { width: 9px; height: 9px; }
.eligible.pronto { opacity: .55; pointer-events: none; border-style: dashed;
                   border-color: var(--tinta-5); }
.eligible.pronto .eligible-nombre { color: var(--tinta-suave); }
.eligible.pronto .hab-icono { color: var(--tinta-4); }
.eligible-tag { margin-left: 6px; font-size: var(--letra-etiqueta); font-weight: 500; color: var(--tinta-4);
                border: 1px solid var(--borde); border-radius: 6px; padding: 1px 6px; }
.bot-desnudo { padding: 2px 0 6px; }
.bot-desnudo-dice { display: flex; align-items: center; gap: 10px; margin: 0 0 12px;
                    font-size: var(--letra-cuerpo); color: var(--tinta-suave); }
.bot-desnudo-dice b { color: var(--tinta); font-weight: 500; }
.bot-desnudo-dice > svg { width: 16px; height: 16px; flex: none; color: var(--tinta-aviso); }
.bot-desnudo .paso-pregunta { margin: 0 0 8px; }
.pide { padding: 12px 0; border-top: 1px solid var(--linea-suave); }
.pide:first-child { border-top: 0; padding-top: 0; }
.pide:last-child { padding-bottom: 0; }
.trae { display: flex; align-items: center; gap: 10px; min-width: 0; }
.trae.apagado { opacity: .45; }
.burbuja.acuse { display: flex; flex-direction: column; gap: 4px; }
.acuse-recibo { display: inline-flex; align-items: center; gap: 6px;
                font-size: var(--letra-etiqueta); font-weight: 500;
                color: var(--hab-texto); }
.pendientes { display: flex; flex-direction: column; gap: var(--aire); }
.pagina-alta > .pendientes { flex: 1; min-height: 0; overflow-y: auto;
                             overscroll-behavior: contain;
                             padding: 0 2px 2px 0; margin-right: -2px; }
.pagina-alta > .vacio { flex: none; }
.pend-grupo { flex: none; }
.pend-hab { display: inline-flex; align-items: center; gap: 5px;
            font-weight: 500; color: var(--hab-texto); }
.pend-hab .hab-icono { width: 13px; height: 13px; }
.pend-cuando { flex: none; font-size: var(--letra-cuerpo); color: var(--tinta-suave);
               white-space: nowrap; margin-right: 6px; }
.nav-grito, .nav-quieto { margin-left: auto; min-width: 19px;
             height: 19px; border-radius: var(--radio);
             font-size: var(--letra-etiqueta); font-weight: 700; padding: 0 6px;
             display: flex; align-items: center; justify-content: center; }
.nav-grito { background: var(--rojo-marca); color: var(--tarjeta); }
.nav-quieto { background: var(--ambar); color: var(--barra-tinta); }
.pend-nota { display: block; margin-top: 1px; font-size: var(--letra-cuerpo);
             color: var(--tinta); overflow: hidden;
             text-overflow: ellipsis; white-space: nowrap; }
.pend-acciones { display: flex; align-items: center; gap: 7px;
                 flex: none; }
.atiende-forma { margin: 0; }
.pend-mapa, .pend-atender, .pend-si, .pend-no, .pend-baja {
  display: inline-flex; align-items: center; gap: 6px; height: 27px;
  padding: 0 11px; border: 1px solid var(--borde); border-radius: 7px;
  background: var(--tarjeta); color: var(--tinta); font-size: var(--letra-nota);
  font-weight: 500; font-family: inherit; text-decoration: none;
  cursor: pointer; }
.pend-mapa svg, .pend-atender svg {
  width: 13px; height: 13px; }
.pend-si, .pend-no { width: 27px; padding: 0; justify-content: center; }
.pend-si svg, .pend-no svg { width: 14px; height: 14px; }
.pend-si { color: var(--verde); }
.pend-no { color: var(--rojo); }
.pend-si:hover { border-color: var(--verde); }
.pend-no:hover { border-color: var(--rojo); background: var(--rojo-palido); }
.pend-dias { color: var(--tinta); font-weight: 500; white-space: nowrap; }
.pend-ley, .pend-foto { display: inline-flex; align-items: center; gap: 5px;
                        font-size: var(--letra-nota); white-space: nowrap; }
.pend-ley { font-weight: 500; }
.pend-ley svg { width: 12px; height: 12px; flex: none; }
.pend-foto svg { width: 13px; height: 13px; flex: none; }
.pend-foto { color: var(--tinta-4); }
.pend-foto.con { color: var(--tinta); font-weight: 500; text-decoration: none; }
.pend-foto.con:hover { color: var(--tinta-accion); }
.pend-goce { width: auto; padding: 0 10px; }
.pend-goce.sin { color: var(--tinta); }
.pend-goce.sin:hover { border-color: var(--tinta-suave); }
.pend-mapa:hover, .pend-atender:hover { border-color: var(--tinta-suave); }
.pend-baja { color: var(--rojo); }
.pend-baja:hover { border-color: var(--rojo); background: var(--rojo-palido); }
.resuelve-forma { margin: 0; }
.pend.atendida { opacity: .55; }
.pend.atendida .hab-icono { animation: none; }
.pend-pila { display: inline-flex; }
.pend-pila .avatar { margin-left: -10px; border: 2px solid var(--tarjeta); }
.pend-pila .avatar:first-child { margin-left: 0; }
.pagina-alta > .qf { flex: none; margin-top: var(--aire); }
.qf { container: qf / inline-size; }
.qf-leyenda { display: flex; align-items: center; gap: 14px; margin-right: 14px; white-space: nowrap;
              font-size: var(--letra-nota); color: var(--tinta-suave); }
.qf-leyenda b { font-weight: 500; color: var(--tinta); }
.qf-leyenda .pedido b { color: var(--hab-solicitudes-texto); }
.qf-muestra { display: inline-block; width: 10px; height: 10px; margin-right: 6px; border-radius: 3px;
              vertical-align: -1px; }
.qf-muestra.con { background: var(--hab-solicitudes); }
.qf-muestra.sin { background: var(--tinta-suave); }
.qf-muestra.pedido { box-shadow: inset 0 0 0 1.5px var(--hab-solicitudes); }
.qf-muestra.si { background: color-mix(in srgb, var(--hab-solicitudes) 22%, var(--tarjeta)); }
.qf-cuerpo { display: grid; grid-template-columns: 190px minmax(0, 1fr); column-gap: 10px;
             padding: 4px 16px 2px; }
.qf-nombres { min-width: 0; }
.qf-cab { height: 54px; }
.qf-quien { display: flex; align-items: center; gap: 8px; min-width: 0; height: 24px; }
.qf-quien .avatar { width: 20px; height: 20px; font-size: var(--letra-etiqueta); }
.qf-nombre { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
             font-size: var(--letra-cuerpo); font-weight: 500; }
.qf-pie-nombre { display: flex; align-items: center; height: 30px; margin-top: 4px;
                 border-top: 1px solid var(--linea-suave);
                 font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta-suave); }
.qf-vista { position: relative; min-width: 0; overflow: hidden; cursor: grab; user-select: none;
            touch-action: pan-y; }
.qf-vista.qf-arrastra { cursor: grabbing; }
.qf-nadie { position: absolute; z-index: 1; top: 54px; left: 8px; height: 24px; margin: 0;
            display: flex; align-items: center; font-size: var(--letra-cuerpo); color: var(--tinta-4); }
.qf-pista { --ver: 21; position: relative; width: calc(100% * var(--dias) / var(--ver));
            transform: translateX(calc(-100% * var(--vista) / var(--dias))); }
.qf-semanas { position: relative; height: 20px; }
.qf-semana { position: absolute; top: 0; height: 18px; padding-left: 6px; white-space: nowrap;
             left: calc(100% * var(--i) / var(--dias)); width: calc(100% * 7 / var(--dias));
             font-size: var(--letra-nota); font-weight: 500; color: var(--tinta-suave);
             border-bottom: 2px solid transparent; }
.qf-semana.qf-manda { color: var(--tinta); border-bottom-color: var(--ambar); }
.qf-dias, .qf-faltan { position: relative; z-index: 1; display: flex; }
.qf-dias { height: 34px; }
.qf-dia { flex: none; width: calc(100% / var(--dias)); display: flex; flex-direction: column;
          align-items: center; justify-content: center; line-height: 1.15; }
.qf-dia i { font-style: normal; font-size: var(--letra-etiqueta); font-weight: 500; letter-spacing: .04em;
            text-transform: uppercase; color: var(--tinta-suave); }
.qf-dia b { font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta); }
.qf-dia.hoy i { color: var(--tinta); }
.qf-dia.hoy b { font-weight: 700; }
.qf-raya, .qf-hoy { position: absolute; z-index: 0; top: 20px; bottom: 0;
                    left: calc(100% * var(--i) / var(--dias)); }
.qf-raya { width: 1px; background: var(--linea-suave); }
.qf-hoy { width: calc(100% / var(--dias) - 4px); margin-left: 2px; border-radius: var(--radio-dentro);
          background: var(--sup-2); }
.qf-fila { position: relative; z-index: 1; height: 24px; }
.qf-barra { position: absolute; top: 2px; height: 20px; display: flex; align-items: center; gap: 5px;
            left: calc(100% * var(--de) / var(--dias) + 2px);
            width: calc(100% * var(--n) / var(--dias) - 4px);
            padding: 0 8px; border-radius: 5px; overflow: hidden; white-space: nowrap;
            font-size: var(--letra-nota); font-weight: 500; }
.qf-barra svg { width: 11px; height: 11px; flex: none; }
.qf-barra .qf-va { font-weight: 400; }
.qf-barra.con { background: var(--hab-solicitudes); color: var(--tarjeta); }
.qf-barra.sin { background: var(--tinta-suave); color: var(--tarjeta); }
.qf-barra.pedido { background: var(--tarjeta); color: var(--hab-solicitudes-texto);
                   box-shadow: inset 0 0 0 1.5px var(--hab-solicitudes); }
.qf-barra.si { background: color-mix(in srgb, var(--hab-solicitudes) 22%, var(--tarjeta));
               color: var(--hab-solicitudes-texto); }
.qf-barra.antes { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.qf-fuera { position: absolute; top: 2px; height: 20px; display: flex; align-items: center; white-space: nowrap;
            left: calc(100% * (var(--de) + var(--n)) / var(--dias) + 4px);
            font-size: var(--letra-nota); font-weight: 500; color: var(--tinta-suave); }
.qf-fuera.izq { left: auto; right: calc(100% * (var(--dias) - var(--de)) / var(--dias) + 4px); }
.qf-faltan { height: 30px; margin-top: 4px; border-top: 1px solid var(--linea-suave); }
.qf-n { flex: none; width: calc(100% / var(--dias)); display: flex; align-items: center; justify-content: center;
        font-size: var(--letra-cuerpo); font-weight: 700; font-variant-numeric: tabular-nums; }
.qf-n.cero { font-weight: 500; color: var(--tinta-4); }
.qf-n.mas { color: var(--tinta-aviso); }
@container qf (max-width: 860px) {
  .qf-pista { --ver: 14; }
  .qf-cuerpo { grid-template-columns: 150px minmax(0, 1fr); }
}
@container qf (max-width: 560px) {
  .qf-pista { --ver: 7; }
  .qf-cuerpo { grid-template-columns: 120px minmax(0, 1fr); }
  .qf-dia i { font-size: 0; }
  .qf-dia i::after { content: attr(data-corto); font-size: var(--letra-etiqueta); }
}
.pagina-alta > .stb-abajo { flex: 1; min-height: 0; display: grid; gap: var(--aire);
                            grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
                            grid-template-rows: minmax(0, 1fr); }
.stb-abajo > .pulso { display: flex; }
.stb-lista { container: stb / inline-size; }
.stb-cuerpo { flex: 1 1 0; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.stb-normal { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
              font-size: var(--letra-nota); color: var(--tinta-suave); }
.stb-normal b { font-weight: 500; color: var(--tinta); }
.stb-normal .stb-espera { width: 42px; }
.stb-sub { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; gap: 6px;
           padding: 9px 16px; background: var(--tarjeta); border-bottom: 1px solid var(--linea-suave);
           font-size: var(--letra-cuerpo); font-weight: 700; color: var(--tinta); }
.stb-sub .titulo-per { font-weight: 500; }
.stb-calma { display: flex; align-items: center; gap: 10px; margin: 0; padding: 14px 16px;
             border-bottom: 1px solid var(--linea-suave);
             font-size: var(--letra-cuerpo); color: var(--tinta-suave); }
.stb-calma svg { width: 18px; height: 18px; flex: none; color: var(--verde); }
.stb-calma b { font-weight: 500; color: var(--tinta); }
.stb-lista .miembro.pend { padding: 9px 16px; }
.stb-cuerpo > .stb-grupo:last-child > .miembro.pend:last-child { border-bottom: 0; }
.stb-lista .avatar { width: 32px; height: 32px; font-size: var(--letra-etiqueta); }
.stb-lista .pend-pila .avatar { width: 26px; height: 26px; margin-left: -12px; }
.stb-lista .pend-pila .avatar:first-child { margin-left: 0; }
.stb-lista .quien { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; }
.stb-lista .quien > * { grid-column: 1 / -1; }
.stb-lista .quien > .tel-linea { grid-column: 1; min-width: 0; flex-wrap: nowrap; overflow: hidden;
                                  font-size: var(--letra-nota); }
.stb-lista .quien > .tel-linea > * { flex: none; white-space: nowrap; }
.stb-lista .quien > .pend-nota { grid-column: 2; min-width: 0; margin: 2px 0 0;
                                  font-size: var(--letra-nota); font-weight: 500; }
.stb-lista .quien > .pend-nota::before { content: '•'; margin: 0 8px; font-size: var(--letra-etiqueta);
                                          font-weight: 400; color: var(--tinta-5); }
.stb-lista .pend-hab { display: none; }
.stb-lista .tel-linea > .pend-hab + *::before { content: none; }
.stb-lista .pend-cuando.con-espera { display: flex; flex-direction: column; align-items: flex-end; gap: 7px;
                                      font-size: var(--letra-nota); }
.stb-espera { position: relative; display: block; width: 72px; height: 6px; }
.stb-riel { display: flex; height: 100%; border-radius: 3px; overflow: hidden; background: var(--linea-suave); }
.stb-bien { background: var(--hab-solicitudes); }
.stb-tarde { background: var(--ambar); }
.stb-marca { position: absolute; left: 33.333%; top: -3px; bottom: -3px; width: 2px; margin-left: -1px;
             border-radius: 1px; background: var(--tinta-suave); }
.pend.atendida .stb-bien, .pend.atendida .stb-tarde { background: var(--tinta-5); }
@container stb (max-width: 860px) {
  .stb-lista .quien > .tel-linea { flex-wrap: wrap; column-gap: 10px; }
  .stb-lista .quien > .tel-linea > * + *::before { content: none; }
}
@container stb (max-width: 720px) {
  .stb-lista .miembro.pend-permiso { flex-wrap: wrap; }
  .stb-lista .pend-permiso .pend-acciones { width: 100%; justify-content: flex-end; }
}
@container stb (max-width: 440px) {
  .stb-lista .miembro.pend { flex-wrap: wrap; }
  .stb-lista .miembro.pend > .quien { flex-basis: 120px; }
  .stb-lista .quien > .tel-linea > * { flex-shrink: 1; white-space: normal; }
  .stb-lista .quien > .pend-nota { grid-column: 1 / -1; }
  .stb-lista .quien > .pend-nota::before { content: none; }
  .stb-lista .pend-acciones { width: 100%; justify-content: flex-end; }
}
.stb-filtro { display: inline-flex; align-items: center; gap: 6px; height: 26px; margin-left: 4px;
              padding: 0 6px 0 10px; border: 1px solid var(--ambar); border-radius: var(--radio);
              background: var(--ambar-palido); color: var(--tinta); font-family: inherit;
              font-size: var(--letra-nota); font-weight: 500; white-space: nowrap; cursor: pointer; }
.stb-filtro[hidden] { display: none; }
.stb-filtro svg { width: 13px; height: 13px; flex: none; color: var(--tinta-suave); }
.stb-filtro:hover svg { color: var(--tinta); }
.lsp-cuerpo { flex: 1 1 0; min-height: 0; overflow: auto; overscroll-behavior: contain;
              padding: 0 16px; }
.lsp-tabla .lsp-c1 { width: 64px; }
.lsp-tabla .lsp-c2 { width: 40px; }
.lsp-tabla .lsp-c3 { width: 68px; }
.lsp-tabla .lsp-c4 { width: 78px; }
.lsp-tabla th { position: sticky; top: 0; z-index: 1; padding: 8px 5px 6px; background: var(--tarjeta); }
.lsp-tabla td { padding: 6px 5px; }
.lsp-tabla .ts-total td { position: sticky; bottom: 0; background: var(--tarjeta); }
.lsp-fila { cursor: pointer; }
.lsp-fila:hover td, .lsp-fila:focus-visible td { background: var(--hover); }
.lsp-fila:focus-visible { outline: none; }
.lsp-fila.elegida td { background: var(--ambar-palido); }
.lsp-fila.elegida td:first-child { box-shadow: inset 2px 0 0 var(--ambar); }
.lsp-que { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.lsp-hijos { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
             font-size: var(--letra-nota); color: var(--tinta-suave); }
.lsp-tabla .ts-cifra.lsp-espera { color: var(--hab-solicitudes-texto); }
.lsp-tabla td.lsp-tardamos { font-weight: 500; }
.lsp-tabla .avatar { width: 22px; height: 22px; flex: none; font-size: var(--letra-etiqueta); }
.lsp-tabla .pend-pila { flex: none; }
.lsp-tabla .pend-pila .avatar { width: 20px; height: 20px; margin-left: -8px; }
.lsp-tabla .pend-pila .avatar:first-child { margin-left: 0; }
.lsp-nada { margin: 16px 0; font-size: var(--letra-cuerpo); color: var(--tinta-4); }
.lsp { container: lsp / inline-size; }
@container lsp (max-width: 520px) {
  .lsp-corte .tira-centro { width: 132px; }
}
@media (max-width: 1100px) {
  .pagina-alta.stb-alta { height: auto; }
  .pagina-alta > .stb-abajo { display: flex; flex-direction: column; }
  .stb-abajo > .stb-lista { height: calc(100dvh - 2 * var(--aire)); }
  .lsp-cuerpo { flex: none; }
  .tabla-sitios.lsp-tabla { table-layout: fixed; min-width: 520px; }
}
.dia-brinca { display: flex; justify-content: flex-end; gap: 6px;
              position: relative; flex: none; }
.dia-quita { width: 36px; padding: 0; justify-content: center; }
.calendario { position: absolute; right: 0; top: 42px; z-index: 30;
              width: 254px; background: var(--tarjeta);
              border: 1px solid var(--borde); border-radius: var(--radio);
              padding: 10px 12px 12px;
              box-shadow: var(--sombra-3); }
.calendario[hidden] { display: none; }
.cal-cabeza { display: flex; align-items: center; gap: 6px;
              margin-bottom: 8px; }
.cal-mes { flex: 1; text-align: center; font-size: var(--letra-nota);
           font-weight: 500; }
.cal-flecha { width: 26px; height: 26px; border: 0; background: none;
              border-radius: 7px; font-size: var(--letra-titulo); line-height: 1;
              color: var(--tinta-suave); cursor: pointer;
              font-family: inherit; }
.cal-flecha:hover { background: var(--lienzo); color: var(--tinta); }
.cal-semana, .cal-dias { display: grid; gap: 2px;
                         grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cal-semana span { text-align: center; font-size: var(--letra-etiqueta);
                   color: var(--tinta-4); padding-bottom: 4px; }
.cal-dia { position: relative; height: 32px; border: 0;
           display: grid; place-items: center;
           background: none; border-radius: 7px; font-family: inherit;
           font-size: var(--letra-cuerpo); color: var(--tinta); cursor: pointer; }
.cal-dia:hover { background: var(--lienzo); }
.cal-dia.hoy { box-shadow: inset 0 0 0 1px var(--ambar); }
.cal-dia.elegido { background: var(--ambar); color: var(--sobre-ambar);
                   font-weight: 500; }
.cal-dia.con-algo::after { content: ''; position: absolute; left: 50%;
                           bottom: 3px; width: 4px; height: 4px;
                           margin-left: -2px; border-radius: 50%;
                           background: var(--tinta-4); }
.cal-dia.elegido.con-algo::after { background: var(--sobre-ambar); }
.popup-gente { font-size: var(--letra-etiqueta); color: var(--tinta-suave); }
.cara-ed[hidden] { display: none; }
.subir-forma, .deshacer-forma { flex: none; }
.banda-subir { height: 26px; padding: 0 11px; border: 0;
               border-radius: 7px; background: var(--ambar);
               color: var(--sobre-ambar); font-family: inherit;
               font-size: var(--letra-nota); font-weight: 700; cursor: pointer;
               transition: background .15s ease; }
.banda-subir:hover { background: var(--ambar-hondo); }
.relevo:has(#asis-cuestionario:not([hidden])) .lado-presets { display: none; }
.asis-cuestionario { margin-bottom: 14px; }
.asis-cuestionario[hidden] { display: none; }
.asis-cuestionario .tel-sec.on { display: flex; flex-direction: column; gap: 18px; }
.asis-cuestionario .tel-etq,
.asis-cuestionario .tel-etiq { margin-bottom: 0; }
.tel-grupo { display: flex; flex-direction: column; gap: 5px; }
.asis-etiq { margin: 0; }
.asis-etiq .suave { font-weight: 400; color: var(--tinta-4); }
.asis-igual { margin: 0; }
.tel-tarjeta.fija { background: var(--tarjeta); cursor: default; }
.tel-tarjeta.fija:hover { border-color: var(--borde); }
.tel-tarjeta .candado { width: 12px; height: 12px; color: var(--tinta-4); }
.asis-donde { margin-left: auto; color: var(--cue, var(--tinta-aviso)); font-size: var(--letra-etiqueta);
              font-weight: 500; white-space: nowrap; }
.tel-tarjeta.fija .candado { margin-left: 6px; }
.asis-resumen { display: flex; flex-direction: column; gap: 18px; }
.asis-lados { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.asis-lado { border: 1px solid var(--borde); border-radius: var(--radio);
             background: var(--tarjeta); overflow: hidden; }
.asis-lado-cab { display: flex; align-items: center; gap: 9px;
                 padding: 11px 15px; border-bottom: 1px solid var(--linea-suave); }
.asis-lado-cab::before { content: ''; width: 6px; height: 6px; border-radius: 50%;
                         background: var(--rojo-marca); flex: none; }
.asis-lado-cab b { font-size: var(--letra-cuerpo); font-weight: 700; }
.asis-lado-cab span { font-size: var(--letra-nota); color: var(--tinta-4); }
.asis-lado-cuerpo { padding: 6px 15px 13px; }
.asis-linea { display: flex; align-items: center; gap: 10px; padding: 7px 0;
              border-bottom: 1px solid var(--linea-suave); }
.asis-linea:last-child { border-bottom: 0; }
.asis-linea svg { width: 17px; height: 17px; flex: none;
                  color: var(--cue, var(--hab-asistencia-texto)); }
.asis-linea b { flex-grow: 1; font-size: var(--letra-cuerpo); font-weight: 500; }
.asis-linea .cola { font-size: var(--letra-nota); color: var(--tinta-suave); }
.asis-linea.apagada svg { color: var(--tinta-5); }
.asis-linea.apagada b { font-weight: 500; color: var(--tinta-suave); }
.asis-linea.apagada .cola { color: var(--tinta-4); }
.asis-cae { display: flex; align-items: center; gap: 9px; margin: 0;
            font-size: var(--letra-cuerpo); color: var(--tinta-suave); }
.asis-cae svg { width: 16px; height: 16px; flex: none;
                color: var(--cue, var(--hab-asistencia-texto)); }
#asis-cuestionario     { --cue: var(--hab-asistencia-texto); }
#alerta-cuestionario   { --cue: var(--hab-alerta-texto); }
#solicitud-cuestionario { --cue: var(--hab-solicitudes-texto); }
:is(.asis-cuestionario, .alr-cuestionario) .tel-tarjeta-cab svg:not(.candado) {
  color: var(--tinta-5); }
:is(.asis-cuestionario, .alr-cuestionario) .tel-tarjeta:is(.on, .fija) .tel-tarjeta-cab svg:not(.candado) {
  color: var(--cue); }
:is(.asis-cuestionario, .alr-cuestionario) .tel-tarjeta.esc-tel .tel-tarjeta-cab .esc-orden svg {
  color: inherit; }
:is(.asis-cuestionario, .alr-cuestionario) .esc-tel.on .esc-orden { background: var(--cue); }
#solicitud-cuestionario .sol-foto[aria-pressed='true'],
#solicitud-cuestionario .sol-leyenda svg:not(.candado) { color: var(--cue); }
.asis-cae b { color: var(--tinta); font-weight: 500; }
.relevo:has(#alerta-cuestionario:not([hidden])) .lado-presets { display: none; }
.relevo:has(#solicitud-cuestionario:not([hidden])) .lado-presets { display: none; }
.alr-cuestionario[hidden] { display: none; }
.alr-cuestionario .tel-riel { gap: 4px; }
.alr-cuestionario .tel-paso { gap: 6px; padding: 0 2px; }
.alr-cuestionario .tel-guion { min-width: 10px; }
.alr-cuestionario .tel-sec.on { display: flex; flex-direction: column; gap: 18px; }
.alr-cuestionario .tel-etq,
.alr-cuestionario .tel-etiq { margin-bottom: 0; }
.alr-dicho { margin: 0; font-size: var(--letra-nota); color: var(--tinta-suave); }
.alr-sugiere { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; }
.alr-cuestionario .alr-sugiere { margin: 5px 0 0; }
.alr-opciones { margin-top: 0; }
.alr-opciones[hidden] { display: none; }
.alr-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.alr-chip { display: inline-flex; align-items: center; gap: 6px; height: 34px;
            padding: 0 6px 0 12px; border: 1px solid var(--borde); border-radius: 7px;
            background: var(--tarjeta); font-size: var(--letra-cuerpo); font-weight: 500;
            color: var(--tinta); }
.alr-quita { width: 22px; height: 22px; border: 0; border-radius: 6px;
             background: transparent; color: var(--tinta-4); cursor: pointer;
             display: inline-flex; align-items: center; justify-content: center; }
.alr-quita svg { width: 12px; height: 12px; }
.alr-quita:hover { background: var(--rojo-palido); color: var(--rojo); }
.alr-nadie { font-size: var(--letra-cuerpo); color: var(--tinta-4); }
.alr-agrega { display: flex; gap: 8px; margin-top: 10px; }
.alr-agrega .creador-nombre { flex: 1; }
.tel-tarjeta.pronto { opacity: .55; }
.tel-tarjeta.pronto { border-style: dashed; border-color: var(--tinta-5); cursor: default; }
.tel-tarjeta.pronto:hover { border-color: var(--tinta-5); }
.sol-foto { width: 22px; height: 22px; border: 0; border-radius: 6px; padding: 0;
            background: transparent; color: var(--tinta-4); cursor: pointer;
            display: inline-flex; align-items: center; justify-content: center; }
.sol-foto svg { width: 13px; height: 13px; }
.sol-foto[aria-pressed='true'] { color: var(--tinta); }
.sol-foto:hover { background: var(--sup-2); }
.sol-ley { display: inline-flex; align-items: center; padding: 0 5px 0 3px; }
.sol-ley .candado { width: 13px; height: 13px; color: var(--tinta-4); }
.sol-leyenda { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0;
               font-size: var(--letra-nota); color: var(--tinta-suave); }
.sol-leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.sol-leyenda svg { width: 13px; height: 13px; flex: none; }
.alertas-mapa-marco { flex: none; border: 1px solid var(--borde); border-radius: var(--radio);
                      overflow: hidden; background: var(--lienzo); }
.alertas-mapa { height: 240px; }
.alertas-mapa-marco .leaflet-tile-pane { filter: saturate(.55) brightness(1.03)
                                                 contrast(.98); }
.alertas-mapa-marco.cerca .leaflet-tile-pane { filter: grayscale(.95)
                                               brightness(1.09) contrast(.9); }
.alr-etiqueta { font-family: inherit; font-size: var(--letra-nota); font-weight: 500;
                color: var(--tinta); background: var(--tarjeta);
                border: 1px solid var(--borde); border-radius: 7px;
                box-shadow: var(--sombra-1); padding: 3px 8px; }
.alr-etiqueta::before { display: none; }
.esc-tel .esc-orden { width: 24px; height: 24px; border-radius: 50%; flex: none;
                      display: inline-flex; align-items: center; justify-content: center;
                      font-size: var(--letra-etiqueta); font-weight: 700;
                      background: var(--sup-2); color: var(--tinta-suave); }
.esc-tel .esc-orden svg { width: 13px; height: 13px; }
.esc-tel.on .esc-orden { background: var(--tinta-accion); color: var(--tarjeta); }
.esc-espera { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.esc-nadie { font-size: var(--letra-cuerpo); color: var(--tinta-4); margin: 0; }
.esc-panel { flex-basis: 100%; display: flex; flex-direction: column; gap: 8px; }
.arbol-panel .panel-nodo > svg:not(.hab-icono) {
  width: 15px; height: 15px; flex: none; color: var(--tinta-suave); }
.arbol-llega .llega-alerta { pointer-events: none; background: var(--tarjeta);
                             border: 1px solid var(--hab);
                             box-shadow: 0 0 0 1px var(--hab);
                             border-radius: var(--radio); padding: 9px 13px; }
.arbol-llega .llega-alerta .pend-adjuntos { margin: 0 0 0 auto; flex: none; }
.arbol-llega .llega-alerta .quien { min-width: 0; }
.esc-envoltura { flex-basis: 100%; }
.esc-envoltura .asis-etiq { margin: 0 0 6px; }
.arbol-panel:has(.esc-envoltura) { padding-top: 8px; padding-bottom: 8px; }
.arbol-panel .esc-tel { flex-direction: row; align-items: baseline; gap: 7px;
                        padding: 8px 11px; }
.arbol-panel .esc-tel .tel-tarjeta-cab { flex: none; }
.arbol-panel .esc-tel .tel-dice { min-width: 0; overflow: hidden;
                                  text-overflow: ellipsis; white-space: nowrap; }
.esc-panel .asis-etiq { margin: 2px 0 0; }
.esc-panel .panel-boton { align-self: flex-start; }
.pend-llego { display: block; margin-top: 1px; font-size: var(--letra-nota); color: var(--tinta-4); }
.pend-adjuntos { display: flex; align-items: center; gap: 7px; margin-top: 5px; }
.pend-mini { display: block; width: 44px; height: 44px; flex: none;
             border: 1px solid var(--borde); border-radius: 7px; overflow: hidden; }
.pend-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pend-mini.vacia { display: grid; place-items: center; background: var(--lienzo); }
.voz-mini { display: inline-flex; align-items: center; gap: 9px; height: 30px;
            padding: 0 11px 0 6px; border: 1px solid var(--borde);
            border-radius: var(--radio); background: var(--tarjeta); flex: none; }
.voz-play { width: 20px; height: 20px; border-radius: 50%; flex: none;
            background: var(--tinta-accion); color: var(--tarjeta);
            display: inline-flex; align-items: center; justify-content: center; }
.voz-play svg { width: 10px; height: 10px; }
.voz-onda { position: relative; display: inline-block; width: 62px; height: 16px;
            flex: none; }
.voz-capa { position: absolute; left: 0; top: 0; height: 100%; width: 62px;
            display: flex; align-items: center; gap: 2px; }
.voz-capa i { flex: 1; border-radius: 1px; background: var(--tinta-5); }
.voz-capa.viva { clip-path: inset(0 100% 0 0); }
.voz-capa.viva i { background: var(--tinta-accion); }
.voz-dura { font-size: var(--letra-etiqueta); font-weight: 500; color: var(--tinta-suave);
            white-space: nowrap; }
.voz-mini.sonando { border-color: var(--tinta-accion); }
.voz-mini { cursor: pointer; font-family: inherit; font-size: var(--letra-nota); }
.voz-mini:hover { border-color: var(--tinta-accion); }
.pend-mini.vacia svg { width: 17px; height: 17px; color: var(--tinta-5); }
.pend-mini:hover { border-color: var(--tinta-accion); }
.pend-adjunto { display: inline-flex; align-items: center; gap: 6px; height: 28px;
                padding: 0 10px; border: 1px solid var(--borde); border-radius: 7px;
                background: var(--tarjeta); font-size: var(--letra-nota); font-weight: 500;
                color: var(--tinta); text-decoration: none; }
.pend-adjunto svg { width: 14px; height: 14px; color: var(--tinta-accion); }
.pend-adjunto:hover { border-color: var(--tinta-accion); color: var(--tinta); }
.burbuja.nota { align-self: center; background: transparent; color: var(--tinta-4);
                font-size: var(--letra-etiqueta); box-shadow: none; }
#asis-forma .tel-resumen { flex: 1; }
.pieza-fila { display: flex; align-items: center; gap: 12px; height: var(--renglon);
              border-top: 1px solid var(--linea-suave); font-size: var(--letra-cuerpo);
              font-weight: 500; color: var(--tinta); min-width: 0; }
.pieza-fila:first-child { border-top: 0; }
.pieza-nombre { min-width: 0; overflow: hidden; text-overflow: ellipsis;
                white-space: nowrap; }
.pieza-fila .chips { position: static; display: inline-flex;
                     margin-left: auto; box-shadow: none; flex: none; }
.pieza-circ { width: 26px; height: 26px; flex: none; border-radius: 50%; box-sizing: border-box;
              background: var(--tarjeta); color: var(--hab); border: 1px solid var(--borde);
              display: inline-flex; align-items: center; justify-content: center; }
.pieza-circ .hab-icono { width: 13px; height: 13px; color: inherit; animation: none; }
.pieza-lista .pieza-nombre { flex: none; width: 150px; }
.pieza-pide { flex: 1; min-width: 0; display: flex; align-items: center; gap: 14px;
              overflow: hidden; color: var(--tinta-suave); }
.pide-ico { display: inline-flex; align-items: center; gap: 4px; flex: none; }
.pide-ico svg { width: 16px; height: 16px; flex: none; }
.pide-n { font-size: var(--letra-nota); font-weight: 400;
          font-variant-numeric: tabular-nums; }
.pide-ico.pide-mal { color: var(--tinta-aviso); }
.esc-nadie.esc-muerto { color: var(--tinta-aviso); }
.pieza-lista .chips { gap: 2px; }
.pieza-lista .chip { width: 28px; height: 28px; border: 0; border-radius: var(--radio);
                     background: none; box-shadow: none; }
.pieza-lista .chip svg { width: 14px; height: 14px; }
.pieza-lista .chip:hover { background: var(--lienzo); color: var(--tinta); }
.pieza-lista .chip-quita:hover { background: var(--rojo-palido); color: var(--rojo); }
.vacio-titulo { margin: 0 0 6px; font-size: var(--letra-titulo); font-weight: 700;
                color: var(--tinta); }
.vacio-dice { margin: 0 auto; max-width: 40ch; font-size: var(--letra-cuerpo);
              line-height: 1.5; }
.vacio .mando { display: inline-flex; margin-top: 16px; }
.tel-config { background: var(--tarjeta); border: 1px solid var(--borde);
              border-radius: var(--radio); box-shadow: var(--sombra-1);
              margin-bottom: 14px; }
.tel-config[hidden] { display: none; }
.tel-config:not([hidden]) ~ .vacio { display: none; }
.tel-config:not([hidden]) ~ .seg-lista,
.tel-config:not([hidden]) ~ .padron,
.tel-config:not([hidden]) ~ .per-tabla-caja { display: none; }
:is(#tel-config, #alta, #carga):not([hidden]) {
  display: flex; flex-direction: column; flex: 0 1 auto; min-height: 0;
  margin: 0 0 var(--pie); border: 1px solid var(--borde); border-radius: var(--radio-tarjeta);
  box-shadow: var(--sombra-1); overflow: hidden; }
#alta > form { display: flex; flex-direction: column; flex: 0 1 auto; min-height: 0; }
:is(#tel-config, #alta, #carga) .tel-cab { flex: none; border-radius: 0; padding: 6px var(--aire); }
:is(#tel-config, #alta, #carga) .tel-cab > .tel-cierra { margin-right: -6px; }
:is(#tel-config, #alta, #carga) .tel-hoja { flex: 0 1 auto; min-height: 0; overflow-y: auto;
                                            display: flex; flex-direction: column;
                                            padding: 20px var(--aire) 24px; }
:is(#tel-config, #alta, #carga) .tel-sec.on { display: flex; flex-direction: column; flex: 1 1 auto;
                                              min-height: auto; }
#tel-config .tel-sec.tel-lado-a-lado.on {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
  grid-template-rows: auto minmax(0, 1fr); column-gap: var(--aire);
  flex: 1 1 auto; min-height: 300px; }
#tel-config .tel-lado-a-lado .tel-sitio-dos { display: contents; }
#tel-config .tel-lado-a-lado > .tel-etq { grid-column: 1; grid-row: 1; }
#tel-config .tel-lado-a-lado .tel-sitio-lado { grid-column: 1; grid-row: 2; }
#tel-config .tel-lado-a-lado :is(.tel-lugar, .tel-lugar-movil, .tel-reparto) {
  grid-column: 2; grid-row: 1 / -1; min-height: 0; }
@media (max-width: 980px) {
  #tel-config .tel-sec.tel-lado-a-lado.on { grid-template-columns: minmax(0, 1fr);
                                            grid-template-rows: none; }
  #tel-config .tel-lado-a-lado :is(.tel-etq, .tel-sitio-lado, .tel-lugar,
                                   .tel-lugar-movil, .tel-reparto) { grid-column: 1; grid-row: auto; }
}
:is(#tel-config, #alta, #carga) .tel-pie { flex: none; height: var(--pie); box-sizing: border-box;
                                           border-radius: 0; background: var(--pie-claro);
                                           padding: 0 var(--aire); }
.tel-cab { position: relative; display: flex; align-items: center; gap: 10px;
           min-height: 48px; padding: 6px 10px 6px 18px;
           border-bottom: 3px solid var(--linea-suave);
           border-radius: var(--radio-dentro) var(--radio-dentro) 0 0;
           background: var(--tarjeta); color: var(--tinta); }
.tel-cab::after { content: ''; position: absolute; left: 0; bottom: -3px;
                  height: 3px; width: calc(var(--avance, 0) * 100%);
                  background: var(--ambar); transition: width .25s ease; }
.tel-titulo { font-size: var(--letra-subtitulo); font-weight: 700; letter-spacing: -.3px;
              white-space: nowrap; }
.tel-paso-de { font-size: var(--letra-cuerpo); color: var(--tinta-suave);
               white-space: nowrap; }
.tel-raya { width: 1px; height: 20px; background: var(--linea-suave);
            margin: 0 8px; flex: none; }
.tel-riel { display: flex; align-items: center; gap: 6px; flex: 1;
            min-width: 0; }
.tel-paso { display: inline-flex; align-items: center; gap: 8px; height: 30px;
            padding: 0 4px; border: 0; background: transparent;
            font-family: inherit; font-size: var(--letra-cuerpo); font-weight: 500;
            color: var(--tinta-suave); cursor: pointer;
            white-space: nowrap; }
.tel-paso:hover, .tel-paso.on { color: var(--tinta); }
.tel-paso .n { width: 24px; height: 24px; border-radius: 50%; flex: none;
               box-sizing: border-box; border: 1px solid var(--borde);
               background: var(--tarjeta); color: var(--tinta-suave);
               display: inline-flex; align-items: center; justify-content: center;
               font-size: var(--letra-nota); font-weight: 700; }
.tel-paso.on .n, .tel-paso.ok .n { border-color: var(--ambar); background: var(--ambar);
                                   color: var(--sobre-ambar); }
.tel-paso .n svg { width: 12px; height: 12px; }
.tel-guion { flex: 1; min-width: 18px; height: 1px; background: var(--linea-suave); }
.tel-cierra { display: inline-flex; align-items: center; justify-content: center;
              width: 30px; height: 30px; flex: none; margin-left: auto;
              border: 0; border-radius: var(--radio); background: transparent;
              color: var(--tinta-suave); cursor: pointer; }
.tel-cierra:hover { background: var(--hover); color: var(--tinta); }
.tel-cierra svg { width: 17px; height: 17px; }
.tel-hoja { padding: 16px 18px 18px; }
.tel-sec { display: none; }
.tel-sec.on { display: block; }
.tel-etq { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
           margin: 0 0 12px; font-size: var(--letra-cuerpo); color: var(--tinta-suave); }
.tel-etq b { font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta); }
.tel-etq b::after { content: ''; display: inline-block; width: 5px; height: 5px;
                    border-radius: 50%; background: var(--ambar);
                    margin-left: 10px; vertical-align: middle; }
.tel-campos { display: flex; gap: 10px; flex-wrap: wrap; }
.tel-campos .campo.campo-numero { flex: 0 1 230px; }
.tel-boton { display: inline-flex; align-items: center; gap: 7px; height: 38px;
             padding: 0 12px; border: 1px solid var(--borde); border-radius: var(--radio);
             background: var(--tarjeta); color: var(--tinta); font-family: inherit;
             font-size: var(--letra-cuerpo); font-weight: 500; cursor: pointer;
             text-decoration: none; white-space: nowrap; }
.tel-boton:hover { border-color: var(--tinta); }
.tel-boton svg { width: 13px; height: 13px; }
.candado { justify-content: center; gap: 9px;
           transition: background .25s ease, color .25s ease, border-color .25s ease; }
.candado .cand { width: 14px; height: 14px; overflow: visible; }
.candado .cand path { transform-box: fill-box; transform-origin: 50% 100%;
                      transition: opacity .25s ease,
                                  transform .35s cubic-bezier(.2, .9, .3, 1.25); }
.candado .cand-cerrado { opacity: 0; transform: translateY(-4px); }
.candado.cerrado, .candado.cerrado:hover { background: var(--tinta-accion);
                                           border-color: var(--tinta-accion); color: var(--tarjeta); }
.candado.cerrado .cand-abierto { opacity: 0; }
.candado.cerrado .cand-cerrado { opacity: 1; transform: none; }
.candado.guardando { opacity: .75; }
.tel-opciones { display: grid; gap: 10px;
                grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); }
@media (max-width: 980px) {
  .tel-opciones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.tel-tarjeta { display: flex; flex-direction: column; gap: 3px; text-align: left;
               border: 1px solid var(--borde); border-radius: var(--radio); padding: 9px 11px;
               background: var(--tarjeta); font-family: inherit; color: var(--tinta);
               cursor: pointer; }
.tel-tarjeta:hover { border-color: var(--tinta-5); }
.tel-tarjeta.on { border: 2px solid var(--ambar); padding: 8px 10px;
                  background: var(--ambar-palido); }
.tel-tarjeta-cab { display: flex; align-items: center; gap: 8px; }
.tel-tarjeta-cab svg { width: 15px; height: 15px; color: var(--rojo-marca); flex: none; }
.tel-tarjeta-cab b { font-size: var(--letra-cuerpo); font-weight: 700; }
.tel-dice { font-size: var(--letra-nota); color: var(--tinta-suave); }
.tel-nueva { flex-direction: row; align-items: center; justify-content: center;
             gap: 7px; min-height: 64px; border: 1.5px dashed var(--tinta-5);
             background: transparent; color: var(--tinta-suave);
             font-size: var(--letra-cuerpo); font-weight: 500; text-decoration: none; }
.tel-nueva svg { width: 14px; height: 14px; }
.tel-nueva:hover { border-color: var(--tinta-accion); color: var(--tinta-accion); }
.tel-sin-bots { margin: 10px 0 0; }
.tel-sitio-dos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
                 gap: 12px; height: 440px; }
.tel-sitio-lado { display: flex; flex-direction: column; gap: 10px; min-height: 0; }
.tel-sitio-fijos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; flex: none; }
.tel-sitio-busca { flex: none; }
.tel-sitios { display: flex; flex-direction: column; gap: 4px; flex: 1; min-height: 0;
              overflow-y: auto; overscroll-behavior: contain; padding: 0 2px 2px 0; }
.tel-sitios > .tel-sitio { flex: none; }
.tel-sitio-nada { margin: 6px 2px; color: var(--tinta-suave); }
.tel-lugar-movil { display: flex; align-items: center; justify-content: center; margin: 0;
                   padding: 24px; text-align: center; color: var(--tinta-suave);
                   border: 1px dashed var(--borde); border-radius: var(--radio); }
.tel-lugar-movil[hidden] { display: none; }
@media (max-width: 980px) {
  .tel-sitio-dos { grid-template-columns: minmax(0, 1fr); height: auto; }
  .tel-sitios { max-height: 300px; }
}
.tel-sitio { display: flex; align-items: center; gap: 8px; min-height: 40px;
             padding: 5px 12px; border: 1px solid var(--borde); border-radius: var(--radio);
             background: var(--tarjeta); font-size: var(--letra-cuerpo); }
.tel-sitio:hover { border-color: var(--tinta-5); }
.tel-sitio:has(> input:checked) { border: 2px solid var(--ambar);
                                 padding: 4px 11px;
                                 background: var(--ambar-palido); }
.tel-sitio-txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.tel-sitio-txt .tel-h { font-size: var(--letra-nota); white-space: nowrap; overflow: hidden;
                        text-overflow: ellipsis; }
.tel-sitio > svg { width: 15px; height: 15px; flex: none; color: var(--rojo-marca); }
.tel-sitio b { font-weight: 500; white-space: nowrap; overflow: hidden;
              text-overflow: ellipsis; }
.tel-h { font-size: var(--letra-cuerpo); color: var(--tinta-suave); white-space: nowrap; }
.tel-radio { cursor: pointer; position: relative; }
.tel-radio > input[type='radio'] { position: absolute; opacity: 0; width: 0; height: 0; }
.tel-punto { width: 16px; height: 16px; flex: none; border-radius: 50%;
             border: 1.5px solid var(--tinta-5); display: inline-flex;
             align-items: center; justify-content: center; }
.tel-punto::before { content: ''; width: 7px; height: 7px; border-radius: 50%;
                     background: var(--sobre-ambar); transform: scale(0);
                     transition: transform .15s ease; }
.tel-radio > input:checked ~ .tel-punto { background: var(--ambar);
                                        border-color: var(--ambar); }
.tel-radio > input:checked ~ .tel-punto::before { transform: scale(1); }
.tel-radio > input:focus-visible ~ .tel-punto { outline: 2px solid var(--ambar);
                                              outline-offset: 2px; }
.tel-lugar { position: relative; border: 1px solid var(--borde);
             border-radius: var(--radio); overflow: hidden; background: var(--sup-2); }
.tel-lugar[hidden] { display: none; }
.tel-mapa { height: 100%; min-height: 320px; cursor: crosshair; }
.tel-lugar .leaflet-tile-pane { filter: saturate(.55) brightness(1.03) contrast(.98); }
.tel-lugar.cerca .leaflet-tile-pane { filter: grayscale(.95) brightness(1.09) contrast(.9); }
.tel-lugar.satelite .leaflet-tile-pane { filter: saturate(.72) brightness(1.02); }
.tel-flota { position: absolute; z-index: 500; }
.tel-flota-busca { left: 12px; top: 12px; width: min(520px, calc(100% - 200px)); }
.tel-flota-nombre { left: 12px; bottom: 12px; width: min(420px, calc(100% - 200px));
                    display: flex; flex-direction: column; gap: 6px; }
.tel-lugar-campo { position: relative; }
.tel-lugar-campo input { width: 100%; height: 40px; border: 1px solid var(--borde);
                         border-radius: var(--radio); background: var(--tarjeta);
                         padding: 0 12px 0 39px; font-family: inherit; font-size: var(--letra-cuerpo);
                         color: var(--tinta); outline: none; box-shadow: var(--sombra-2); }
.tel-lugar-campo input::placeholder { color: var(--tinta-4); }
.tel-lugar-campo input:focus { border-color: var(--ambar); }
.tel-lugar-campo svg { position: absolute; left: 13px; top: 50%; margin-top: -8px;
                       width: 16px; height: 16px; color: var(--tinta-4); pointer-events: none; }
.tel-lugar-dato { width: fit-content; max-width: 100%; padding: 4px 8px; border-radius: 6px;
                  background: rgba(255, 255, 255, .88); font-size: var(--letra-cuerpo);
                  color: var(--tinta-suave); }
.tel-lugar-dato[hidden] { display: none; }
.tel-lugar-dato b { color: var(--tinta); font-weight: 500; }
.tel-sugerencias { position: absolute; top: 46px; left: 0; right: 0; background: var(--tarjeta);
                   border: 1px solid var(--borde); border-radius: var(--radio);
                   box-shadow: var(--sombra-3); overflow: hidden; }
.tel-sugerencias[hidden] { display: none; }
.tel-sug { display: flex; width: 100%; align-items: center; gap: 10px; min-height: 44px;
           padding: 0 14px; border: 0; border-top: 1px solid var(--linea-suave);
           background: none; font-family: inherit; font-size: var(--letra-cuerpo); color: var(--tinta);
           text-align: left; cursor: pointer; }
.tel-sug:first-child { border-top: 0; }
.tel-sug:hover, .tel-sug:focus-visible { background: var(--sup-2); outline: none; }
.tel-sug > svg { width: 15px; height: 15px; flex: none; color: var(--rojo-marca); }
.tel-sug b { font-weight: 500; white-space: nowrap; }
.tel-sug .dir { color: var(--tinta-suave); font-size: var(--letra-cuerpo); white-space: nowrap;
                overflow: hidden; text-overflow: ellipsis; }
.tel-sug .tipo { margin-left: auto; font-size: var(--letra-nota); color: var(--tinta-4);
                 white-space: nowrap; }
.tel-sug-nada { margin: 0; padding: 12px 14px; font-size: var(--letra-cuerpo); color: var(--tinta-suave); }
.tel-mapa-botones { position: absolute; right: 12px; top: 12px; z-index: 500;
                    display: flex; flex-direction: column; gap: 10px; }
.tel-mapa-fondo { position: absolute; right: 12px; bottom: 12px; z-index: 500;
                  box-shadow: var(--sombra-2); }
.tel-pin { background: none; border: 0; }
.tel-pin svg { width: 34px; height: 34px; filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .28)); }
.tel-lugar .leaflet-control-attribution { font-size: var(--letra-etiqueta); }
.tel-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.tel-chips:empty { display: none; }
.tel-chip-t { display: inline-flex; align-items: center; gap: 9px; height: 36px;
              padding: 0 4px 0 12px; border-radius: var(--radio); background: var(--sup-2);
              font-size: var(--letra-cuerpo); }
.tel-chip-t b { font-weight: 500; }
.tel-cupo { display: inline-flex; align-items: center; gap: 2px;
            margin-left: 4px; padding-left: 10px;
            border-left: 1px solid var(--borde); }
.tel-cupo button { width: 24px; height: 24px; border: 0; border-radius: 6px;
                   background: transparent; font-family: inherit; font-size: var(--letra-cuerpo);
                   color: var(--tinta-suave); cursor: pointer; }
.tel-cupo button:hover { background: var(--tarjeta); color: var(--tinta); }
.tel-cupo > span { min-width: 70px; text-align: center; font-size: var(--letra-cuerpo);
                   color: var(--tinta-suave); font-variant-numeric: tabular-nums; }
.tel-cupo b { color: var(--tinta); }
.tel-quita { width: 26px; height: 26px; flex: none; border: 0; border-radius: 6px;
             background: transparent; color: var(--tinta-4); cursor: pointer;
             display: inline-flex; align-items: center; justify-content: center; }
.tel-quita:hover { background: var(--tarjeta); color: var(--rojo); }
.tel-quita svg { width: 13px; height: 13px; }
.tel-agrega { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.tel-agrega .campo { min-width: 220px; }
.tel-oferta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px;
              margin-bottom: 10px; padding: 12px 14px; border: 1px solid var(--borde);
              border-radius: var(--radio); background: var(--tarjeta);
              font-size: var(--letra-cuerpo); }
.tel-oferta[hidden] { display: none; }
.tel-oferta p { flex: 1 1 280px; min-width: 0; margin: 0; }
.tel-oferta b { font-weight: 500; }
.tel-oferta-botones { display: flex; gap: 8px; flex-wrap: wrap; }
.tel-desde-sub { display: block; color: var(--tinta-suave); }
.tel-boton[aria-pressed='true'] { box-shadow: inset 0 0 0 1.5px var(--tinta-accion); }
.tel-horas { display: inline-flex; align-items: center; height: 40px;
             border: 1px solid var(--borde); border-radius: 7px;
             background: var(--tarjeta); }
.tel-horas label { display: inline-flex; align-items: center; gap: 8px;
                   padding: 0 12px; height: 100%; font-size: var(--letra-cuerpo);
                   color: var(--tinta-suave); }
.tel-horas label + label { border-left: 1px solid var(--borde); }
.tel-horas input { border: 0; background: transparent; font-family: inherit;
                   font-size: var(--letra-cuerpo); color: var(--tinta); outline: none;
                   font-variant-numeric: tabular-nums; }
.tel-error { font-size: var(--letra-nota); color: var(--rojo); margin: 8px 0 0; }
.tel-error[hidden] { display: none; }
.carga-guia { display: flex; flex-direction: column; gap: 14px; margin-bottom: 14px; }
.carga-ejemplo { width: 100%; border-collapse: separate; border-spacing: 0;
                 font-size: var(--letra-cuerpo); border: 1px solid var(--borde);
                 border-radius: var(--radio); overflow: hidden; }
.carga-ejemplo th { text-align: left; padding: 7px 12px; font-size: var(--letra-nota);
                    font-weight: 500; color: var(--tinta-suave);
                    background: var(--sup-2); border-bottom: 1px solid var(--borde); }
.carga-ejemplo td { padding: 7px 12px; border-bottom: 1px solid var(--linea-suave);
                    font-variant-numeric: tabular-nums; white-space: nowrap; }
.carga-ejemplo tr:last-child td { border-bottom: 0; }
.carga-ejemplo td:empty::after { content: '·'; color: var(--tinta-5); }
.carga-notas { margin: 0; padding: 0 0 0 18px; font-size: var(--letra-cuerpo);
               color: var(--tinta-suave); line-height: 1.55; }
.carga-notas b { color: var(--tinta); font-weight: 500; }
.carga-suelta { display: flex; align-items: center; gap: 14px; padding: 18px 20px;
                border: 1.5px dashed var(--tinta-5); border-radius: var(--radio);
                background: var(--tarjeta); cursor: pointer;
                transition: border-color .15s ease, background .15s ease; }
.carga-suelta:hover, .carga-suelta.encima { border-color: var(--ambar);
                                             background: var(--ambar-palido); }
.carga-suelta > svg { width: 34px; height: 34px; flex: none; color: var(--rojo-marca); }
.carga-suelta-dice { flex: 1; min-width: 0; font-size: var(--letra-cuerpo); color: var(--tinta-suave);
                     line-height: 1.4; }
.carga-suelta-dice b { display: block; font-size: var(--letra-subtitulo); color: var(--tinta); }
.carga-suelta-botones { display: inline-flex; gap: 10px; flex: none; }
.carga-suelta-botones .tel-boton { text-decoration: none; }
.carga-cabeza { display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
                margin-bottom: 10px; }
.carga-cabeza .tel-etq { margin: 0; flex: 1; }
.carga-cuentas { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 10px;
                 font-size: var(--letra-cuerpo); color: var(--tinta-suave); }
.carga-cuenta { display: inline-flex; align-items: center; gap: 7px; }
.carga-cuenta b { color: var(--tinta); font-weight: 700; }
.carga-punto { width: 7px; height: 7px; border-radius: 50%; flex: none;
               background: var(--tinta-5); }
.carga-punto.verde { background: var(--verde-vivo); }
.carga-punto.ambar { background: var(--ambar); }
.carga-config:not([hidden]) { display: flex; flex-direction: column;
                              min-height: 0; margin-bottom: 0; }
.carga-config .tel-hoja { display: flex; flex: 1 1 auto;
                          min-height: 0; overflow: auto; }
.carga-config .tel-sec.on { display: flex; flex-direction: column;
                            flex: 1 1 auto; min-height: 0; }
.carga-vista { border: 1px solid var(--borde); border-radius: var(--radio); overflow: auto;
               flex: 1 1 auto; min-height: 140px; background: var(--tarjeta); }
.carga-tabla { width: 100%; border-collapse: collapse; font-size: var(--letra-nota); }
.carga-tabla th { position: sticky; top: 0; z-index: 1; text-align: left; padding: 8px 10px;
                  font-size: var(--letra-etiqueta); font-weight: 500; color: var(--tinta-suave);
                  background: var(--sup-2); border-bottom: 1px solid var(--borde); }
.carga-tabla td { padding: 5px 10px; border-bottom: 1px solid var(--linea-suave);
                  vertical-align: middle; font-variant-numeric: tabular-nums; }
.carga-tabla tr:last-child td { border-bottom: 0; }
.carga-tabla td:not(:last-child) { white-space: nowrap; }
.carga-tabla tr.salta td { color: var(--tinta-4); }
.carga-tabla tr.salta .carga-quien b { text-decoration: line-through;
                                       text-decoration-color: var(--tinta-5); }
.carga-quien { display: flex; align-items: center; gap: 8px; }
.carga-quien .avatar { width: 22px; height: 22px; font-size: var(--letra-etiqueta); }
.carga-quien .avatar.sin { background: var(--tinta-5); }
.carga-quien b { font-weight: 500; }
.carga-estado { display: inline-flex; align-items: baseline; gap: 7px;
                font-size: var(--letra-nota); }
.carga-estado .carga-punto { flex: none; transform: translateY(-1px); }
.carga-estado.nueva { color: var(--tinta-suave); }
.carga-estado.aviso { color: var(--tinta-aviso); font-weight: 500; }
.carga-estado.salta { color: var(--tinta-4); }
.carga-nuevo { color: var(--tinta-aviso); font-weight: 500; }
.carga-nada { color: var(--tinta-4); }
.carga-dice { color: var(--tinta-suave); }
.carga-sitios { flex-basis: 100%; margin: 0; font-size: var(--letra-nota);
                color: var(--tinta-suave); line-height: 1.5; }
.carga-aviso { display: flex; align-items: center; gap: 12px; margin: 0 0 14px;
               padding: 12px 16px; border: 1px solid var(--ambar); border-radius: var(--radio);
               background: var(--ambar-palido); font-size: var(--letra-cuerpo); color: var(--tinta); }
.carga-aviso > svg { width: 16px; height: 16px; flex: none; color: var(--tinta-aviso); }
.carga-aviso b { font-weight: 500; }
.carga-aviso a { display: inline-flex; align-items: center; gap: 6px; margin-left: auto;
                 font-weight: 500; color: var(--tinta-accion); text-decoration: none;
                 white-space: nowrap; }
.carga-aviso a svg { width: 14px; height: 14px; }
.carga-verdad { margin: 0 0 12px; }
.carga-decide { border: 1px solid var(--borde); border-radius: var(--radio);
                background: var(--tarjeta); margin: 0 0 14px; }
.carga-decide[hidden] { display: none; }
.carga-decide-cab { display: flex; align-items: baseline; gap: 6px; padding: 12px 16px;
                    border-bottom: 1px solid var(--linea-suave); }
.carga-decide-cab b { font-weight: 500; }
.carga-decide-cab .cuantos { color: var(--tinta-aviso); font-weight: 500; }
.carga-decide-cab .cuantos.listo { color: var(--tinta-suave); }
.carga-decide-cab .nota { margin-left: auto; color: var(--tinta-suave); font-size: var(--letra-nota); }
.carga-choque { display: grid; grid-template-columns: 290px minmax(0, 1fr) auto; gap: 16px;
                align-items: center; padding: 12px 16px; }
.carga-choque + .carga-choque { border-top: 1px solid var(--linea-suave); }
.carga-choque .que b { display: block; font-weight: 500; }
.carga-choque .que span { color: var(--tinta-suave); font-size: var(--letra-nota); }
.carga-choque .lados { display: grid; gap: 6px; min-width: 0; }
.carga-choque .lado { display: flex; align-items: center; gap: 8px; min-width: 0; }
.carga-choque .lado .de { width: 84px; flex: none; color: var(--tinta-4); font-size: var(--letra-nota); }
.carga-choque .lado .carga-quien b { white-space: nowrap; }
.carga-choque .lado .dato { color: var(--tinta-suave); white-space: nowrap;
                            overflow: hidden; text-overflow: ellipsis; }
.carga-choque .elige { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.carga-choque .falta { color: var(--tinta-aviso); font-size: var(--letra-nota); font-weight: 500; }
.carga-choque .solo { color: var(--tinta-suave); font-size: var(--letra-nota); text-align: right; }
.carga-choque.hecho .que b, .carga-choque.hecho .lado .carga-quien b { color: var(--tinta-suave); }
@media (max-width: 1100px) {
  .carga-choque { grid-template-columns: minmax(0, 1fr); }
  .carga-choque .elige { align-items: flex-start; }
}
.carga-aviso .carga-aviso-cierra { margin-left: 0; padding: 4px; border-radius: 6px;
                                   color: var(--tinta-4); }
.carga-aviso .carga-aviso-cierra:hover { background: var(--tarjeta); color: var(--tinta); }
.miembro.nueva { background: var(--ambar-palido); }
.tel-persona > input[type='checkbox'] { position: absolute; opacity: 0; width: 0; height: 0; }
.tel-punto.tel-cuadro { border-radius: 5px; }
.tel-punto.tel-cuadro::before { display: none; }
.tel-punto.tel-cuadro svg { width: 11px; height: 11px; color: var(--sobre-ambar); opacity: 0; }
.tel-radio > input:checked ~ .tel-punto.tel-cuadro svg { opacity: 1; }
.tel-persona .carita { width: 26px; height: 26px; margin: 0; flex: none; border: 0;
                       font-size: var(--letra-etiqueta); }
.tel-reparto { display: flex; flex-direction: column; overflow-y: auto; }
.tel-reparto .tel-gente { flex-direction: row; flex-wrap: wrap; margin-bottom: 16px; }
.tel-etiq { margin: 0 0 8px; font-size: var(--letra-cuerpo); font-weight: 500;
            color: var(--tinta); }
.tel-gente { display: flex; flex-direction: column; gap: 6px; }
.tel-chip { display: inline-flex; align-items: center; gap: 9px; height: 36px;
            padding: 0 10px 0 5px; border: 1px solid var(--borde); border-radius: var(--radio);
            background: var(--tarjeta); font-size: var(--letra-cuerpo); cursor: grab;
            user-select: none; }
.tel-chip:hover { border-color: var(--tinta); }
.tel-chip.sel { border: 2px solid var(--ambar); padding: 0 9px 0 4px;
                background: var(--ambar-palido); }
.tel-chip.fijo { cursor: default; }
.tel-chip.fijo:hover { border-color: var(--borde); }
.tel-chip .carita { width: 26px; height: 26px; margin: 0; border: 0;
                    font-size: var(--letra-etiqueta); }
.tel-chip svg { width: 13px; height: 13px; color: var(--tinta-4); }
.tel-cajas { display: grid; gap: 10px; align-items: start;
             grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); }
.tel-caja { border: 1px solid var(--borde); border-radius: var(--radio); padding: 10px 12px; }
.tel-caja.sobre { border: 2px dashed var(--ambar); padding: 9px 11px; }
.tel-caja-cab { display: flex; justify-content: space-between; gap: 10px;
                align-items: baseline; margin-bottom: 10px; }
.tel-caja-cab b { font-size: var(--letra-cuerpo); font-weight: 700; }
.tel-caja-cab span { font-size: var(--letra-cuerpo); color: var(--tinta-suave); }
.tel-huecos { display: flex; flex-wrap: wrap; gap: 8px; }
.tel-hueco { min-width: 110px; height: 32px; padding: 0 12px;
             border: 1.5px dashed var(--tinta-5); border-radius: var(--radio);
             display: inline-flex; align-items: center; justify-content: center;
             font-size: var(--letra-cuerpo); color: var(--tinta-4); cursor: pointer; }
.tel-hueco:hover { border-color: var(--ambar-hondo); color: var(--tinta-accion); }
.tel-chip-t { height: 40px; }
.tel-lugares { display: inline-flex; align-items: center; gap: 8px; margin-left: 4px;
               padding-left: 10px; border-left: 1px solid var(--borde); }
.tel-libre { font-size: var(--letra-cuerpo); color: var(--tinta-4); white-space: nowrap; }
.tel-sugiere { margin: 6px 2px 2px; font-size: var(--letra-etiqueta); font-weight: 500;
               color: var(--tinta-suave); white-space: nowrap; overflow: hidden;
               text-overflow: ellipsis; }
.tel-etiq.suave { color: var(--tinta-suave); font-weight: 500; }
.tel-fuera { width: 22px; height: 22px; flex: none; border: 0; border-radius: 6px;
             background: transparent; color: var(--tinta-4); cursor: pointer;
             display: inline-flex; align-items: center; justify-content: center; }
.tel-fuera:hover { background: var(--rojo-palido); color: var(--rojo); }
.tel-fuera svg { width: 12px; height: 12px; }
.tel-hueco.listo { border-color: var(--ambar); color: var(--tinta-accion); }
.tel-pie { display: flex; align-items: center; gap: 10px; padding: 10px 18px;
           border-top: 1px solid var(--linea-suave); background: var(--sup-2);
           border-radius: 0 0 var(--radio-dentro) var(--radio-dentro); }
.tel-resumen { flex: 1; display: flex; flex-wrap: wrap; gap: 6px 16px;
               font-size: var(--letra-cuerpo); color: var(--tinta); }
.tel-resumen[hidden] { display: none; }
.tel-resumen .r { display: inline-flex; align-items: center; gap: 9px; }
.tel-resumen .r::before { content: ''; width: 6px; height: 6px; border-radius: 50%;
                          background: var(--tinta-5); flex: none; }
.tel-resumen .r.vino::before { background: var(--rojo-marca); }
.tel-resumen .r.ambar::before { background: var(--ambar); }
.tel-resumen .r.suave { color: var(--tinta-suave); }
.tel-pie .tel-error { margin: 0; flex: 1; }
.tel-pie .manda { display: inline-flex; align-items: center; gap: 7px; }
.tel-pie .manda svg { width: 13px; height: 13px; }
.tel-atras.oculto { opacity: .45; pointer-events: none; }
.cfg-tarjeta { max-width: 640px; background: var(--tarjeta); border: 1px solid var(--borde);
               border-radius: var(--radio); box-shadow: var(--sombra-1); }
.cfg-cab { display: flex; flex-direction: column; gap: 3px; padding: 16px 18px 13px;
           border-bottom: 1px solid var(--linea-suave); }
.cfg-cab b { font-size: var(--letra-subtitulo); font-weight: 700; }
.cfg-cuerpo { display: flex; flex-direction: column; gap: 16px; padding: 14px 18px 16px; }
.cfg-regla .tel-etiq { margin-bottom: 6px; }
.cfg-dias, .cfg-noche, .cfg-modo, .cfg-accion, .cfg-lejos { width: fit-content; }
.cfg-vigila { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.cfg-cupo { margin-left: 0; padding-left: 0; border-left: 0; }
.cfg-cupo > span { min-width: 64px; font-size: var(--letra-cuerpo); }
.cfg-cupo button { width: 28px; height: 28px; border: 1px solid var(--borde);
                   background: var(--tarjeta); }
.cfg-pie { display: flex; align-items: center; gap: 10px; padding: 10px 18px;
           border-top: 1px solid var(--linea-suave); background: var(--sup-2);
           border-radius: 0 0 var(--radio-dentro) var(--radio-dentro); }
.cfg-dicho { flex: 1; font-size: var(--letra-cuerpo); color: var(--tinta); }
.sol-reglas-etiq { margin: 18px 0 8px; }
.tel-etq + .sol-reglas-etiq { margin-top: 0; }
.sol-reglas-dicho { display: block; margin-top: 16px; }
.tel-cupo.apagado { opacity: .45; }
.tel-cupo.apagado button { cursor: default; }
.cfg-deshacer.se-fue { visibility: hidden; }
.cfg-deshacer:disabled { color: var(--tinta-4); border-color: var(--borde);
                         cursor: default; }
.cfg-tarjeta + .cfg-tarjeta { margin-top: var(--aire); }
.semana-regla { font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta-suave); }
.cuadro-sem.sin-registro, .cuadro-mini.sin-registro { background: var(--control); }
.cuadro-sem.hoy { outline: 2px solid var(--ambar); outline-offset: 1px; }
.sem-cuenta { width: 172px; flex: 0 0 172px; font-size: var(--letra-cuerpo); line-height: 1.25;
              color: var(--tinta-suave); font-variant-numeric: tabular-nums; }
.sem-faltas { color: var(--rojo); font-weight: 500; }
.sem-definir { font-style: normal; color: var(--tinta-4); }
.cuadro-sem.permiso-pedido, .cuadro-mini.permiso-pedido {
  background: var(--tarjeta); box-shadow: inset 0 0 0 1.5px var(--hab-solicitudes); }
.cuadro-sem.permiso-con, .cuadro-sem.permiso-sin, .cuadro-mini.permiso {
  background: var(--hab-solicitudes); }
.sem-permiso, .kpi-permiso { color: var(--hab-solicitudes-texto); font-weight: 500; }
.sem-permiso, .sem-faltas, .sem-definir, .sem-descanso { white-space: nowrap; }
.semana-lado { flex: 0 1 320px; }
.campana { position: relative; flex: none; }
.camp-boton { height: 38px; padding: 0 11px; border-radius: var(--radio);
              border: 1px solid var(--borde); background: var(--tarjeta);
              color: var(--tinta); cursor: pointer; position: relative;
              display: inline-flex; align-items: center; gap: 8px;
              transition: background .18s ease, color .18s ease,
                          border-color .18s ease, box-shadow .18s ease; }
.camp-boton svg { width: 18px; height: 18px; flex: none; }
.camp-mano { transform-origin: 12px 12px; }
.camp-boton:hover, .camp-boton.abierto { background: var(--tinta-accion);
              border-color: var(--tinta-accion); color: var(--tarjeta);
              box-shadow: var(--sombra-2); }
.camp-boton:hover .camp-mano { animation: vuelta-reloj 1s ease-in-out; }
@keyframes vuelta-reloj { to { transform: rotate(360deg); } }
.camp-num { margin-right: 2px; font-size: var(--letra-cuerpo); font-weight: 700;
            color: var(--tinta-accion); font-variant-numeric: tabular-nums; }
.camp-boton:hover .camp-num, .camp-boton.abierto .camp-num { color: var(--tarjeta); }
.camp-panel { position: absolute; top: 46px; right: 0; width: 480px;
              max-width: calc(100vw - 32px);
              max-height: 62vh; overflow-y: auto; overflow-x: hidden; z-index: 30;
              background: var(--tarjeta); border: 1px solid var(--borde);
              border-radius: var(--radio); box-shadow: var(--sombra-3); }
.camp-cab { display: flex; align-items: baseline; gap: 7px; padding: 13px 15px 11px; }
.camp-titulo { font-size: var(--letra-subtitulo); font-weight: 700; }
.camp-sub { font-size: var(--letra-nota); color: var(--tinta-4); }
.camp-cuenta { margin-left: auto; font-size: var(--letra-nota); font-weight: 500;
               color: var(--tinta-accion); }
.camp-nada { margin: 0; padding: 20px 15px 24px; text-align: center;
             font-size: var(--letra-cuerpo); color: var(--tinta-suave); }
.camp-rastro { padding: 12px 15px 6px; font-size: var(--letra-etiqueta); font-weight: 500;
               letter-spacing: .06em; text-transform: uppercase;
               color: var(--tinta-4); border-top: 1px solid var(--linea-suave); }
.camp-lista .miembro { position: relative; flex-wrap: nowrap; align-items: flex-start;
                       gap: 12px; padding: 11px 15px;
                       border-bottom: 0; border-top: 1px solid var(--linea-suave); }
.camp-lista .miembro:hover { background: var(--hover); }
.camp-lista .retrato { display: none; }
.camp-lista .quien { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr);
                     align-items: baseline; }
.camp-lista .quien > * { grid-column: 1 / -1; }
.camp-lista .quien > .nombre { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.camp-lista .quien > .tel-linea { grid-column: 1; min-width: 0; flex-wrap: nowrap;
                                  overflow: hidden; margin-top: 3px; font-size: var(--letra-nota); }
.camp-lista .quien > .tel-linea > * { flex: none; white-space: nowrap; }
.camp-lista .quien > .pend-nota { grid-column: 2; min-width: 0; margin: 3px 0 0;
                                  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
                                  font-size: var(--letra-nota); color: var(--tinta-suave); }
.camp-lista .quien > .pend-nota::before { content: '·'; margin: 0 6px; color: var(--tinta-5); }
.camp-lista .tel-linea > * + *::before { content: '·'; margin: 0 6px; font-size: inherit; }
.camp-lista .pend-hab { color: var(--tinta); }
.camp-lista .pend-hab .hab-icono { color: var(--tinta-suave); }
.camp-lista :is(.hab-incompleto, .hab-temprano, .hab-sin_entrada) .pend-hab,
.camp-lista :is(.hab-incompleto, .hab-temprano, .hab-sin_entrada) .pend-hab .hab-icono {
  color: var(--tinta-aviso); }
.camp-lista .tel-linea > .camp-veces { font-weight: 500; }
.camp-lista .tel-linea > .pend-hab.camp-otra:not(.hab-incompleto, .hab-temprano, .hab-sin_entrada) {
  color: var(--tinta); }
.camp-lista .tel-linea > .pend-hab.camp-otra:not(.hab-incompleto, .hab-temprano, .hab-sin_entrada) .hab-icono {
  color: var(--tinta-suave); }
.camp-lista .pend-cuando { margin-left: auto; margin-right: 0; padding-top: 1px;
                           font-size: var(--letra-nota); }
.camp-lista .pend-acciones { position: absolute; right: 15px; top: 50%; transform: translateY(-50%);
                             gap: 0; margin: 0; }
.camp-lista .miembro:not(:hover):not(:focus-within) > .pend-acciones { display: none; }
.camp-lista .pend-acciones svg { display: none; }
.camp-lista .pend-acciones :is(.pend-mapa, .pend-atender, .pend-baja) {
  border-radius: 0; background: var(--tarjeta); }
.camp-lista .pend-acciones > :first-child :is(.pend-atender, .pend-baja),
.camp-lista .pend-acciones > .pend-mapa:first-child {
  border-radius: var(--radio) 0 0 var(--radio); }
.camp-lista .pend-acciones > :last-child :is(.pend-atender, .pend-baja),
.camp-lista .pend-acciones > .pend-mapa:last-child {
  border-radius: 0 var(--radio) var(--radio) 0; }
.camp-lista .pend-acciones > :only-child :is(.pend-atender, .pend-baja) { border-radius: var(--radio); }
.camp-lista .pend-acciones > * + * { margin-left: -1px; }
.camp-lista .pend-ir { color: var(--tinta-accion); }
@media (hover: none) {
  .camp-lista .miembro { flex-wrap: wrap; }
  .camp-lista .pend-acciones { position: static; transform: none; flex-basis: 100%;
                               margin-top: 8px; }
  .camp-lista .miembro:not(:hover):not(:focus-within) > .pend-acciones { display: flex; }
}
.expediente { display: flex; flex-direction: column; }
.xp-regreso { display: inline-flex; align-items: center; justify-content: center; flex: none;
              height: var(--toque); padding: 0 8px; margin: 0 -4px 0 -6px;
              border-radius: var(--radio); color: var(--tinta-suave); text-decoration: none; }
.xp-regreso:hover { background: var(--fondo); color: var(--tinta); }
.xp-regreso:focus-visible { outline: 2px solid var(--ambar); outline-offset: -2px; }
.xp-regreso svg { width: 14px; height: 14px; }
.xp-quien { display: flex; align-items: center; gap: 12px; padding: 7px 12px;
            background: var(--tarjeta); border: 1px solid var(--borde);
            border-radius: var(--radio); }
.xp-cara { width: 36px; height: 36px; flex: none; font-size: var(--letra-cuerpo); }
.xp-datos { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.xp-nombre-fila { display: flex; align-items: center; gap: 9px; }
.xp-nombre { font-size: var(--letra-titulo); font-weight: 700; letter-spacing: -.01em; }
.xp-linea { display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
            font-size: var(--letra-nota); color: var(--tinta-suave); }
.xp-dato { display: inline-flex; align-items: center; gap: 5px; }
.xp-dato svg { width: 13px; height: 13px; flex: none; }
.xp-alta { flex: none; display: flex; flex-direction: column; text-align: right; }
.xp-alta b { font-size: var(--letra-cuerpo); }
.xp-lleva { font-size: var(--letra-etiqueta); color: var(--tinta-suave); }
.xp-et { font-size: var(--letra-etiqueta); font-weight: 500; letter-spacing: .04em;
         text-transform: uppercase; color: var(--tinta-4); }
.xp-numeros { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin-top: 0; }
.xp-numero { cursor: default; gap: 1px; padding: 8px 7px 9px; }
.xp-num-cab { display: flex; align-items: center; gap: 5px; min-width: 0; }
.xp-num-cab .res-nombre { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xp-numero .res-dato { font-size: var(--letra-grande); line-height: 1.1; }
.xp-numero .res-comp { font-size: var(--letra-etiqueta); line-height: 1.35; }
.xp-numero:hover { border-color: var(--borde); }
.xp-mes { background: var(--tarjeta); border: 1px solid var(--borde);
          border-radius: var(--radio); padding: 8px 12px 9px;
          display: flex; flex-direction: column; flex: 1 1 auto; }
.xp-mes-cab { display: flex; align-items: center; gap: 9px; margin-bottom: 5px; flex: none; }
.xp-titulo { font-size: var(--letra-subtitulo); font-weight: 700; }
.xp-titulo-suave { font-size: var(--letra-subtitulo); color: var(--tinta-suave); }
.xp-flechas { height: 28px; }
.xp-flechas .tira-paso { width: 28px; }
.xp-leyenda { margin-left: auto; display: flex; align-items: center; gap: 13px;
              font-size: var(--letra-nota); color: var(--tinta-suave); }
.xp-ley { display: inline-flex; align-items: center; gap: 6px; }
.xp-punto { display: inline-block; width: 9px; height: 9px; border-radius: 3px; }
.xp-punto.ok { background: var(--verde-vivo); }
.xp-punto.tarde { background: var(--ambar); }
.xp-punto.falta { background: var(--coral); }
.xp-punto.libre { background: var(--control); }
.xp-semana { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr));
             gap: 4px; margin-bottom: 3px; flex: none; }
.xp-semana span { text-align: center; font-size: var(--letra-etiqueta); font-weight: 500;
                  letter-spacing: .04em; color: var(--tinta-4); }
.xp-rejilla { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px;
              flex: 1 1 auto; grid-auto-rows: minmax(20px, 1fr); }
.xp-cuadro { position: relative; display: grid; place-items: center; min-height: 20px;
             border-radius: var(--radio); border: 1px solid transparent; font-size: var(--letra-cuerpo);
             font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums;
             text-decoration: none; color: var(--tinta); }
.xp-cuadro .cuadro-marca { position: absolute; right: 7px; top: 50%;
                           transform: translateY(-50%); }
.xp-cuadro.hueco { background: transparent; }
.xp-cuadro.ok { background: var(--verde-vivo); color: var(--tarjeta); }
.xp-cuadro.tarde { background: var(--ambar); color: var(--sobre-ambar); }
.xp-cuadro.falta { background: var(--coral); color: var(--sobre-ambar); }
.xp-cuadro.libre { background: var(--control); color: var(--tinta-suave); }
.xp-cuadro.futuro { background: var(--tarjeta); border-color: var(--linea-suave);
                    color: var(--tinta-5); }
a.xp-cuadro:hover { filter: brightness(.96); }
.xp-cuadro.hoy { outline: 2px solid var(--tinta-aviso); outline-offset: -2px; }
.xp-cuadro.elegido { outline: 2px solid var(--tinta); outline-offset: -2px; }
.xp-cuenta { display: flex; align-items: center; gap: 16px; margin-top: 6px; flex: none;
             padding: 6px 10px; background: var(--sup-2);
             border: 1px solid var(--linea-suave); border-radius: var(--radio); }
.xp-cuenta-quien { display: flex; flex-direction: column; min-width: 160px; }
.xp-cuenta-quien b { font-size: var(--letra-cuerpo); }
.xp-cifra { display: flex; flex-direction: column; }
.xp-cifra b { font-size: var(--letra-cuerpo); font-variant-numeric: tabular-nums; }
.xp-cifra.crece { flex: 1; min-width: 0; }
.xp-veredicto { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xp-veredicto.ok { color: var(--verde); }
.xp-veredicto.tarde { color: var(--tinta-aviso); }
.xp-veredicto.falta { color: var(--rojo); }
.xp-veredicto.libre { color: var(--tinta-suave); }
.xp-renglon { line-height: 1.35; white-space: nowrap; }
.xp-que-paso { display: flex; align-items: center; gap: 6px; min-width: 0; }
.xp-que-paso b { font-size: var(--letra-cuerpo); }
.ficha-marcas-cab { display: flex; align-items: baseline; gap: 8px; }
.ficha-al-exp { display: inline-flex; align-items: center; gap: 4px;
                margin-left: auto; padding: 0; text-transform: none;
                letter-spacing: 0; font-size: var(--letra-cuerpo); text-decoration: none; }
.ficha-al-exp:hover { background: none; text-decoration: underline; }
.ficha-al-exp svg { width: 13px; height: 13px; }
.ficha-sub .per-estado { margin-left: 2px; }
.ficha-cuantas { margin-left: 5px; font-weight: 500; letter-spacing: 0;
                 text-transform: none; color: var(--tinta-4); }
.ficha-tira { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
              gap: 8px; margin-top: 6px; }
.ficha-tira .xp-marco { height: 64px; }
@media (max-width: 1120px) {
  .xp-numeros { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .xp-quien { flex-wrap: wrap; }
  .xp-cuenta { flex-wrap: wrap; gap: 12px 18px; }
}
.xp-evidencia { background: var(--tarjeta); border: 1px solid var(--borde);
                border-radius: var(--radio); padding: 8px 12px 9px; }
.xp-todas { margin-left: auto; height: 32px; }
.xp-tira { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 9px; }
.xp-foto { display: block; min-width: 0; background: var(--tarjeta);
           border: 1px solid var(--borde); border-top: 3px solid var(--tinta-4);
           border-radius: var(--radio); overflow: hidden; text-decoration: none;
           color: var(--tinta); }
.xp-foto:hover { border-color: var(--tinta-5); }
.xp-foto.entrada { border-top-color: var(--verde-vivo); }
.xp-foto.salida { border-top-color: var(--tinta-4); }
.xp-foto.tarde { border-top-color: var(--ambar); }
.xp-marco { display: grid; place-items: center; height: 150px; overflow: hidden;
            background: var(--sup-2); color: var(--tinta-4); }
.xp-foto.chica .xp-marco { height: 56px; }
.xp-marco img { width: 100%; height: 100%; object-fit: cover; display: block;
                align-self: stretch; justify-self: stretch; }
.xp-marco svg { width: 22px; height: 22px; }
.xp-pie-foto { display: block; padding: 4px 7px 5px;
               border-top: 1px solid var(--linea-suave); }
.xp-cuando { display: block; font-size: var(--letra-nota); font-variant-numeric: tabular-nums;
             white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xp-cuando .fuerte { font-weight: 500; color: var(--tinta); }
.xp-cuando .suave { color: var(--tinta-4); }
.xp-que { display: block; font-size: var(--letra-etiqueta); white-space: nowrap;
          overflow: hidden; text-overflow: ellipsis; }
.xp-que.entrada { color: var(--verde); }
.xp-que.salida { color: var(--tinta-suave); }
.xp-que.tarde { color: var(--tinta-aviso); }
.xp-galeria { flex: 1; min-height: 0; display: flex; flex-direction: column;
              background: var(--tarjeta); border: 1px solid var(--borde);
              border-radius: var(--radio); overflow: hidden; }
.xp-gal-cab { display: flex; align-items: center; gap: 13px; padding: 15px 18px 14px;
              border-bottom: 1px solid var(--linea-suave); }
.xp-cara-chica { width: 38px; height: 38px; flex: none; font-size: var(--letra-cuerpo); }
.xp-gal-dice { font-size: var(--letra-nota); color: var(--tinta-suave); }
.xp-gal-filtros { display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
                  padding: 12px 18px; border-bottom: 1px solid var(--linea-suave); }
.xp-chip { display: inline-flex; align-items: center; gap: 6px; height: 28px;
           padding: 0 11px; border: 1px solid var(--borde); border-radius: var(--radio);
           background: var(--tarjeta); color: var(--tinta-suave);
           font-size: var(--letra-nota); font-weight: 500; text-decoration: none; }
.xp-chip:hover { border-color: var(--tinta-5); color: var(--tinta); }
.xp-chip.on { background: var(--tinta-accion); border-color: var(--tinta-accion); color: var(--tarjeta); }
.xp-chip-n { font-variant-numeric: tabular-nums; color: var(--tinta-4); }
.xp-chip.on .xp-chip-n { color: var(--tarjeta); }
.xp-gal-nota { margin-left: auto; font-size: var(--letra-nota); color: var(--tinta-suave); }
.xp-gal-caja { flex: 1; min-height: 0; overflow: auto; padding: 16px 18px 20px; }
.xp-gal-rejilla { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
                  gap: 10px; }
.xp-corte { grid-column: 1 / -1; position: sticky; top: 0; z-index: 2;
            display: flex; align-items: center; gap: 9px; padding: 2px 0 9px;
            background: var(--tarjeta); }
.xp-corte b { font-size: var(--letra-cuerpo); }
.xp-corte span { font-size: var(--letra-nota); color: var(--tinta-suave); }
.xp-corte i { flex: 1; height: 1px; background: var(--linea-suave); }
.xp-visor { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; }
.xp-velo { position: absolute; inset: 0; background: var(--velo); }
.xp-visor-caja { position: relative; width: min(760px, 92vw); max-height: 92vh;
                 display: flex; flex-direction: column; overflow: hidden;
                 background: var(--tarjeta); border-radius: var(--radio);
                 box-shadow: var(--sombra-3); }
.xp-visor-cab { display: flex; align-items: center; gap: 10px; flex: none;
                padding: 14px 18px; border-bottom: 1px solid var(--linea-suave); }
.xp-visor-pasos { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; }
.xp-paso { width: 32px; height: 32px; display: grid; place-items: center;
           border: 1px solid var(--borde); border-radius: var(--radio); color: var(--tinta); }
.xp-paso:hover { border-color: var(--tinta); }
.xp-paso.apagado { opacity: .35; pointer-events: none; }
.xp-paso svg, .xp-cierra svg { width: 15px; height: 15px; }
.xp-cierra { width: 32px; height: 32px; margin-left: 5px; display: grid;
             place-items: center; border-radius: var(--radio); color: var(--tinta-suave); }
.xp-cierra:hover { background: var(--hover); color: var(--tinta); }
.xp-visor-foto { flex: 1; min-height: 0; display: grid; place-items: center;
                 background: var(--sup-2); }
.xp-visor-foto img { max-width: 100%; max-height: 62vh; display: block;
                     object-fit: contain; }
.xp-sin-foto { display: inline-flex; align-items: center; gap: 9px; padding: 60px 0;
               font-size: var(--letra-cuerpo); color: var(--tinta-4); }
.xp-sin-foto svg { width: 22px; height: 22px; }
.xp-visor-pie { display: flex; flex-wrap: wrap; gap: 14px 22px; flex: none;
                padding: 14px 18px 16px; }
.xp-aki-dice { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.xp-aki-dice.bien { color: var(--verde); }
.xp-aki-dice.mal { color: var(--tinta-aviso); }
.xp-aki-dice.leyendo { color: var(--tinta-suave); font-weight: 400; }
.xp-aki-cara { display: block; width: 26px; height: 26px; margin: -6px 0 -6px -2px; flex: none; }
.xp-aki-cara svg { display: block; width: 26px; height: 26px; overflow: visible; }
@media (prefers-reduced-motion: reduce) {
  .xp-aki-cara svg * { animation: none !important; }
}
@media (max-width: 1120px) {
  .xp-tira { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .xp-gal-rejilla { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.xp-cuerpo { display: flex; gap: var(--aire); flex: 1; min-height: 0; }
.xp-izq { flex: 1.62 1 0; min-width: 0; min-height: 0; overflow: auto;
          display: flex; flex-direction: column; gap: var(--aire); }
.xp-der { flex: 1 1 0; min-width: 0; min-height: 0;
          display: flex; flex-direction: column; gap: var(--aire); }
.xp-historia { flex: 1; min-height: 0; display: flex; flex-direction: column;
               background: var(--tarjeta); border: 1px solid var(--borde);
               border-radius: var(--radio); padding: 11px 0 6px; }
.xp-historia > .xp-mes-cab { padding: 0 14px; margin-bottom: 0; }
.xp-hist-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 9px 14px 10px; }
.xp-hist-caja { flex: 1; min-height: 0; overflow: auto; padding: 0 14px 10px; }
.xp-hito { display: flex; gap: 11px; padding: 11px 0;
           border-top: 1px solid var(--linea-suave); }
.xp-hito-icono { width: 26px; height: 26px; flex: none; margin-top: 2px;
                 display: grid; place-items: center; border-radius: var(--radio);
                 background: var(--sup-2); }
.xp-hito-dice { flex: 1; min-width: 0; }
.xp-hito-cab { display: flex; align-items: baseline; gap: 8px; }
.xp-hito-cab b { font-size: var(--letra-cuerpo); }
.xp-hito-cuando { margin-left: auto; flex: none; font-size: var(--letra-nota); color: var(--tinta-4); }
.xp-hito-detalle { font-size: var(--letra-cuerpo); color: var(--tinta-suave); margin-top: 1px; }
.xp-sello { display: inline-block; margin-top: 6px; padding: 2px 9px;
            border-radius: 7px; font-size: var(--letra-nota); font-weight: 500;
            background: var(--sup-2); color: var(--tinta-suave); }
.xp-sello.bien { background: var(--verde-palido); color: var(--verde-fuera); }
.xp-sello.mal { background: var(--rojo-palido); color: var(--rojo); }
.xp-punto.vino { background: var(--rojo-marca); }
.xp-punto.rojo { background: var(--rojo); }
.xp-punto.verde { background: var(--verde-vivo); }
.xp-punto.ambar { background: var(--ambar); }
.xp-punto.gris { background: var(--tinta-4); }
.xp-donde { flex: none; background: var(--tarjeta); border: 1px solid var(--borde);
            border-radius: var(--radio); padding: 11px 14px 12px; }
.xp-liga { margin-left: auto; font-size: var(--letra-cuerpo); font-weight: 500;
           color: var(--tinta-accion); text-decoration: none; }
.xp-liga:hover { color: var(--tinta); }
.xp-sitio + .xp-sitio { margin-top: 11px; }
.xp-sitio-cab { display: flex; align-items: center; gap: 8px; font-size: var(--letra-cuerpo); }
.xp-sitio-cab svg { width: 13px; height: 13px; flex: none; color: var(--rojo-marca); }
.xp-sitio-n { margin-left: auto; color: var(--tinta-suave);
              font-variant-numeric: tabular-nums; }
.xp-barra { height: 8px; border-radius: 4px; background: var(--sup-2);
            margin-top: 6px; overflow: hidden; }
.xp-barra i { display: block; height: 100%; border-radius: 4px; background: var(--rojo-marca); }
.xp-donde-pie { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 12px;
                padding-top: 11px; border-top: 1px solid var(--linea-suave);
                font-size: var(--letra-nota); color: var(--tinta-suave); }
.xp-lejos { color: var(--tinta-aviso); font-weight: 500; }
@media (max-width: 1240px) {
  .xp-cuerpo { flex-direction: column; overflow: auto; }
  .xp-izq, .xp-der { flex: none; overflow: visible; }
  .xp-historia { min-height: 320px; }
}
.rep-zona { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: var(--aire);
            overflow-y: auto; overscroll-behavior: contain; }
.rep-panel:first-child { flex: none; }
.rep-panel + .rep-panel { flex: 1 1 auto; min-height: 240px; }
.rep-previa, .rep-previa > .xl { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.rep-previa > .xl > .xl-scroll { flex: 1 1 auto; min-height: 0; overflow: auto; }
.rep-previa .xl-tabs, .rep-previa .rep-nota { flex: none; }
.rep-previa .xl thead th { position: sticky; top: 0; z-index: 1; }
.rep-panel { background: var(--tarjeta); border: 1px solid var(--borde);
             border-radius: var(--radio); min-width: 0; display: flex; flex-direction: column; }
.rep-cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
           padding: 14px 16px 12px; border-bottom: 1px solid var(--linea-suave); }
.rep-cab .ts-titulo { font-size: var(--letra-subtitulo); font-weight: 700; color: var(--tinta); }
.rep-dicho { color: var(--tinta-suave); font-size: var(--letra-cuerpo); }
.rep-dicho b { color: var(--tinta); font-weight: 500; }
.rep-arma { display: flex; align-items: center; gap: var(--respiro); flex-wrap: wrap;
            padding: var(--respiro) 16px; }
.rep-arma .ts-titulo { font-size: var(--letra-subtitulo); font-weight: 700; color: var(--tinta);
                       margin-right: 6px; }
.rep-grupo { display: flex; min-width: 0; position: relative; }
.rep-etq { font-size: var(--letra-etiqueta); font-weight: 500; letter-spacing: .04em;
           text-transform: uppercase; color: var(--tinta-suave); }
.rep-circ { display: inline-flex; flex: none; color: var(--hab); }
.rep-circ svg { width: 16px; height: 16px; }
.rep-icos { display: inline-flex; gap: 4px; flex: none; }
.rep-que-menu { top: calc(100% + 6px); left: 0; width: 230px; }
.rep-que-menu .per-op { gap: 8px; }
.rep-fijo { display: inline-flex; align-items: center; gap: 8px; padding: 0 12px;
            font-size: var(--letra-cuerpo); font-weight: 500; color: var(--tinta); }
.rep-cifras { color: var(--tinta-suave); font-size: var(--letra-cuerpo); white-space: nowrap; }
.rep-arma a.seg-btn { text-decoration: none; }
.rep-arma .tira-fecha { width: 200px; }
.rep-arma .tira.apagada { opacity: .5; pointer-events: none; }
.cal-dia.sin { color: var(--tinta-5); cursor: default; }
.cal-dia.sin:hover { background: none; }
.cal-meses { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.cal-meses .cal-dia { height: 40px; }
.cal-nota { margin-top: 8px; font-size: var(--letra-etiqueta); color: var(--tinta-4);
            display: flex; align-items: center; gap: 6px; }
.cal-nota i { width: 4px; height: 4px; border-radius: 50%; background: var(--tinta-4); flex: none; }
.rep-arma .rep-cal { left: 0; right: auto; width: 300px; }
.rep-migas { flex: 1; display: flex; align-items: center; justify-content: center; gap: 2px;
             font-size: var(--letra-nota); white-space: nowrap; }
.rep-migas button { border: 0; background: none; padding: 2px 5px; border-radius: var(--radio-dentro);
                    font-family: inherit; font-size: inherit; font-weight: 500;
                    color: var(--tinta-accion); cursor: pointer; }
.rep-migas button:hover { background: var(--lienzo); }
.rep-migas b { font-weight: 700; color: var(--tinta); padding: 2px 5px; }
.rep-migas i { font-style: normal; color: var(--tinta-5); }
.rep-cal .cal-flecha[hidden] { display: block; visibility: hidden; }
.rep-cal .cal-meses .cal-dia { height: 46px; display: flex; flex-direction: column;
                               align-items: center; justify-content: center; gap: 1px; }
.rep-cal .cal-dia small { font-size: var(--letra-etiqueta); color: var(--tinta-4);
                          font-variant-numeric: tabular-nums; }
.rep-cal .cal-dia.elegido small { color: var(--sobre-ambar); }
.rep-cal-sem, .rep-cal-fila { display: grid; grid-template-columns: repeat(7, 1fr) 48px; gap: 2px; }
.rep-cal-sem span { text-align: center; font-size: var(--letra-etiqueta); color: var(--tinta-4);
                    padding-bottom: 4px; }
.rep-cal-sem span:last-child { text-align: right; padding-right: 6px; }
.rep-cal-filas { display: flex; flex-direction: column; gap: 2px; }
.rep-cal-fila { border-radius: var(--radio); text-decoration: none; color: inherit; }
.rep-cal-fila .cal-dia { height: 30px; pointer-events: none; }
.rep-cal-fila .cal-dia.fuera { color: var(--tinta-5); }
.rep-cal-fila .cal-dia.futuro { opacity: .35; }
a.rep-cal-fila:hover { background: var(--lienzo); }
.rep-cal-fila.on { background: var(--ambar-palido); box-shadow: inset 0 0 0 1px var(--ambar); }
.rep-cal-fila.sin { cursor: default; }
.rep-cal-n { display: grid; place-items: center end; padding-right: 6px; font-size: var(--letra-nota);
             color: var(--tinta-4); font-variant-numeric: tabular-nums; }
.rep-cal-fila.on .rep-cal-n { color: var(--tinta); font-weight: 500; }
.rep-cal-pie { margin-top: 10px; }
.rep-todo { display: flex; align-items: center; justify-content: center; height: 34px;
            border: 1px solid var(--borde); border-radius: var(--radio); background: var(--tarjeta);
            font-size: var(--letra-nota); font-weight: 500; color: var(--tinta); text-decoration: none; }
a.rep-todo:hover { border-color: var(--tinta-5); }
.rep-todo.on { border-color: var(--ambar); background: var(--ambar-palido); }
.rep-todo.apagado { color: var(--tinta-4); border-style: dashed; }
.rep-archivo-cab { display: inline-flex; align-items: center; gap: 7px; min-width: 0;
                   font-size: var(--letra-nota); color: var(--tinta-suave); }
.rep-archivo-cab svg { width: 15px; height: 15px; color: var(--rojo-marca); flex: none; }
.rep-previa { padding: 14px 16px 16px; min-width: 0; }
.rep-vacio { padding: 34px 20px 36px; text-align: center; color: var(--tinta-suave);
             font-size: var(--letra-cuerpo); line-height: 1.55; }
.rep-vacio b { display: block; color: var(--tinta); font-size: var(--letra-subtitulo);
               font-weight: 700; margin-bottom: 4px; }
.rep-nota { margin: 8px 2px 0; font-size: var(--letra-nota); color: var(--tinta-4); }
.xl { border: 1px solid var(--borde); border-radius: var(--radio); overflow: hidden; }
.xl-scroll { overflow-x: auto; }
.xl table { border-collapse: collapse; font-size: var(--letra-nota); min-width: 100%;
            font-variant-numeric: tabular-nums; }
.xl th, .xl td { border: 1px solid var(--linea-suave); padding: 4px 8px; white-space: nowrap; height: 25px; }
.xl thead th, .xl tbody th { background: var(--sup-2); color: var(--tinta-suave); font-weight: 500;
                             font-size: var(--letra-etiqueta); text-align: center; }
.xl tbody th { width: 30px; }
.xl td.n { text-align: right; }
.xl td.rojo { color: var(--tinta-aviso); }
.xl tr.xl-titulo td { font-weight: 700; color: var(--tinta); font-size: var(--letra-cuerpo);
                      border-color: transparent; }
.xl tr.xl-dato td { color: var(--tinta-suave); border-color: transparent; }
.xl tr.xl-cab td { background: var(--ambar-palido); font-weight: 500; color: var(--tinta);
                   border-bottom: 1.5px solid var(--ambar); }
.xl tr.xl-total td { font-weight: 700; border-top: 1.5px solid var(--tinta-5); }
.xl-tabs { display: flex; align-items: stretch; gap: 2px; background: var(--sup-2);
           border-top: 1px solid var(--borde); padding: 0 6px; overflow-x: auto; }
.xl-tab { font-size: var(--letra-nota); color: var(--tinta-suave); padding: 7px 12px 6px;
          white-space: nowrap; border-bottom: 2px solid transparent; }
.xl-tab.on { background: var(--tarjeta); color: var(--tinta); font-weight: 500;
             border-bottom-color: var(--ambar); }
.rep-hojas-fila { display: flex; align-items: center; gap: 12px; padding: 12px 16px 0; flex-wrap: wrap; }
.rep-hojas { display: flex; gap: 6px; flex-wrap: wrap; }
.rep-hoja { display: inline-flex; align-items: center; gap: 7px; height: 30px; padding: 0 11px 0 7px;
            border: 1px solid var(--borde); border-radius: var(--radio); background: var(--tarjeta);
            font-size: var(--letra-nota); color: var(--tinta-suave); text-decoration: none; }
.rep-hoja:hover { border-color: var(--tinta-5); }
.rep-hoja.on { color: var(--tinta); border-color: var(--ambar); background: var(--ambar-palido); }
.rep-paloma { width: 16px; height: 16px; border-radius: var(--radio-dentro); box-sizing: border-box;
              border: 1.5px solid var(--tinta-5); display: grid; place-items: center; flex: none; }
.rep-paloma svg { width: 10px; height: 10px; color: var(--tarjeta); opacity: 0; }
.rep-hoja.on .rep-paloma { background: var(--tinta-accion); border-color: var(--tinta-accion); }
.rep-hoja.on .rep-paloma svg { opacity: 1; }
.rep-cab .crece-hueco { flex: 1; }
.rep-baja { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; text-decoration: none; }
.rep-baja svg { width: 16px; height: 16px; }
a.xl-tab { text-decoration: none; }
a.xl-tab:hover { color: var(--tinta); }
.xl tr.xl-mas td { color: var(--tinta-4); border-color: transparent; }
.rep-arma .tira-sola .tira-fecha { width: auto; min-width: 230px; border: 0; justify-content: flex-start;
                                   font-weight: 500; }
.rep-arma .tira-sola .chev { width: 13px; height: 13px; margin-left: auto; color: var(--tinta-4); }
.rep-arma .tira-fecha .pin { width: 14px; height: 14px; color: var(--rojo-marca); flex: none; }
.rep-arma .mini { width: 22px; height: 22px; border-radius: 50%; flex: none; background: var(--sup-2);
                  color: var(--tinta-suave); display: inline-flex; align-items: center;
                  justify-content: center; font-size: var(--letra-etiqueta); font-weight: 500; }
.rep-menu { left: 0; right: auto; top: calc(100% + 6px); width: 290px; max-height: 340px; overflow: auto; }
.rep-menu .accion { text-decoration: none; }
.rep-menu .accion svg { color: var(--rojo-marca); }
.rep-menu .accion.on { background: var(--ambar-palido); font-weight: 500; }
.rep-menu .accion .de { margin-left: auto; font-size: var(--letra-nota); color: var(--tinta-4); }
.menu-etq { padding: 9px 14px 4px; font-size: var(--letra-etiqueta); font-weight: 500;
            letter-spacing: .04em; text-transform: uppercase; color: var(--tinta-4); }
.rep-circ.persona { color: var(--rojo-marca); }
.rep-circ .hab-icono { width: 16px; height: 16px; color: inherit; animation: none; }
:root { --aki-boton: 60px; --aki-hueco: 12px; }
.aki { position: fixed; right: var(--aire); bottom: var(--aire); z-index: 1200;
       display: flex; flex-direction: column; align-items: flex-end; gap: var(--aki-hueco);
       pointer-events: none; }
.aki > * { pointer-events: auto; }
.aki-mano { display: block; }
.aki-mano-tinta { fill: var(--rojo-marca); }
.aki-mano-sombra { fill: var(--mano-sombra); }
.aki-carita circle { fill: var(--tarjeta); }
.aki-carita path { fill: none; stroke: var(--tarjeta); stroke-width: 2.2;
                   stroke-linecap: round; }
.aki-boton { position: relative; width: var(--aki-boton); height: var(--aki-boton);
             border: 0; padding: 0; background: none; cursor: pointer;
             border-radius: var(--radio);
             filter: drop-shadow(var(--sombra-2));
             display: flex; align-items: center; justify-content: center;
             transition: transform .15s ease; }
.aki-boton:hover { transform: translateY(-2px); }
.aki-boton .aki-mano { width: 29px; height: 37px; }
.aki-boton-cara { display: flex; align-items: center; justify-content: center;
                  width: var(--aki-boton); height: var(--aki-boton); }
.aki-cara { display: block; line-height: 0; }
.aki-cara svg { display: block; overflow: visible; }
.aki-boton-cara .aki-cara svg { width: var(--aki-boton); height: var(--aki-boton); }
.aki-cabeza .aki-avatar .aki-cara svg { width: 32px; height: 32px; }
@media (prefers-reduced-motion: reduce) {
  .aki-cara svg * { animation: none !important; }
}
.aki-punto { position: absolute; top: 6px; right: 10px; width: 12px; height: 12px;
             border-radius: 50%; background: var(--rojo-marca);
             border: 2px solid var(--tarjeta); }
.aki-punto[hidden] { display: none; }
.aki-globo { position: absolute; right: calc(var(--aki-boton) * .75 + var(--aki-hueco));
             bottom: 14px; white-space: nowrap;
             background: var(--tarjeta); border: 1px solid var(--borde);
             border-radius: var(--radio); box-shadow: var(--sombra-2);
             padding: 6px 12px; font-weight: 500; color: var(--tinta); }
.aki-globo[hidden] { display: none; }
.aki-panel { width: 420px;
             height: min(580px, calc(100vh - 2 * var(--aire) - var(--aki-boton) - var(--aki-hueco)));
             display: flex; flex-direction: column; overflow: hidden;
             background: var(--tarjeta); border: 1px solid var(--borde);
             border-radius: var(--radio); box-shadow: var(--sombra-3); }
.aki-panel[hidden] { display: none; }
.aki.aki-abierto > .aki-boton { display: none; }
.aki-panel { transform-origin: bottom right; }
.aki-vuela { position: fixed; z-index: 1250; pointer-events: none;
             filter: drop-shadow(var(--sombra-2)); }
.aki-vuela .aki-mano { width: 100%; height: 100%; }
.aki-cabeza { display: flex; align-items: center; gap: 10px; flex: none;
              padding: 12px 12px 12px 14px; border-bottom: 1px solid var(--linea-suave); }
.aki-avatar { width: 32px; height: 32px; flex: none; border-radius: 50%;
              background: var(--tarjeta);
              display: flex; align-items: center; justify-content: center; }
.aki-avatar .aki-mano { width: 15px; height: 19px; }
.aki-nombre { font-size: var(--letra-subtitulo); font-weight: 500; }
.aki-cierra { margin-left: auto; width: 32px; height: 32px; border: 0;
              border-radius: var(--radio); background: none; color: var(--tinta-suave);
              cursor: pointer; display: flex; align-items: center; justify-content: center; }
.aki-cierra:hover { background: var(--hover); color: var(--tinta); }
.aki-cierra svg { width: 17px; height: 17px; }
.aki-charla { flex: 1; min-height: 0; overflow-y: auto; padding: 16px 14px;
              display: flex; flex-direction: column; gap: 14px; }
.aki-dice { animation: caeEv .2s ease; }
.aki-texto { color: var(--tinta); overflow-wrap: anywhere; }
.aki-texto p + p, .aki-texto p + ol, .aki-texto ol + p { margin-top: 6px; }
.aki-texto ol { padding-left: 20px; }
.aki-texto li + li { margin-top: 3px; }
.aki-texto b { font-weight: 500; }
.aki-yo { align-self: flex-end; max-width: 82%; padding: 8px 12px;
          background: var(--ambar-palido); border-radius: var(--radio);
          overflow-wrap: anywhere; animation: caeEv .2s ease; }
.aki-temas { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.aki-tema { border: 1px solid var(--borde); border-radius: var(--radio);
            background: var(--tarjeta); color: var(--tinta); cursor: pointer;
            padding: 5px 11px; font-size: var(--letra-nota); font-weight: 500;
            text-align: left; transition: border-color .15s ease; }
.aki-tema:hover { border-color: var(--tinta-5); }
.aki-ir { display: inline-block; margin-top: 8px; font-weight: 500; }
.aki-pasos { margin-top: 10px; border: 1px solid var(--borde); border-radius: var(--radio);
             overflow: hidden; background: var(--tarjeta); }
.aki-texto .aki-pasos + p { margin-top: 10px; }
.aki-pasos-cab { display: flex; align-items: baseline; gap: 6px; padding: 9px 12px;
                 background: var(--hover); border-bottom: 1px solid var(--linea-suave); }
.aki-pasos-n { color: var(--tinta-suave); }
.aki-pasos-abrir { margin-left: auto; font-weight: 500; white-space: nowrap; }
.aki-texto .aki-pasos-lista { padding: 0; list-style: none; }
.aki-paso { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px;
            padding: 10px 12px; }
.aki-texto .aki-paso + .aki-paso { margin-top: 0; border-top: 1px solid var(--linea-suave); }
.aki-paso-n { width: 22px; height: 22px; border-radius: var(--radio-dentro);
              background: var(--sup-2); font-size: var(--letra-nota); font-weight: 500;
              display: flex; align-items: center; justify-content: center;
              font-variant-numeric: tabular-nums; }
.aki-paso-cuerpo { display: flex; flex-direction: column; gap: 2px; padding-top: 1px; }
.aki-paso-titulo { font-weight: 500; }
.aki-paso-detalle { font-size: var(--letra-nota); color: var(--tinta-suave); }
.aki-paso.con-guia { grid-template-columns: 22px minmax(0, 1fr) 10px; cursor: pointer; }
.aki-paso.con-guia:hover { background: var(--hover); }
.aki-paso-ir { color: var(--tinta-5); align-self: center; }
.aki-llevame { border: 0; border-radius: var(--radio); background: var(--ambar);
               color: var(--sobre-ambar); font-weight: 500; cursor: pointer;
               padding: 0 14px; min-height: var(--toque); }
.aki-llevame:hover { background: var(--ambar-hondo); }
.aki-pasos > .aki-llevame { display: block; width: calc(100% - 24px); margin: 2px 12px 12px; }
.aki-llevame[hidden] { display: none; }
.aki-guia { width: 300px; display: flex; flex-direction: column; gap: 3px;
            padding: 12px 14px; background: var(--tarjeta); border: 1px solid var(--borde);
            border-radius: var(--radio); box-shadow: var(--sombra-3);
            animation: caeEv .2s ease; }
.aki-guia[hidden], .aki-guia [hidden] { display: none; }
.aki-guia-n { font-size: var(--letra-nota); color: var(--tinta-suave); }
.aki-guia-titulo { font-weight: 500; }
.aki-guia-detalle { font-size: var(--letra-nota); color: var(--tinta-suave); }
.aki-guia-botones { display: flex; justify-content: flex-end; gap: 6px; margin-top: 8px; }
.aki-guia-botones .aki-llevame { min-height: 0; padding: 5px 11px; font-size: var(--letra-nota); }
.aki-senal { outline: 2px solid var(--ambar); outline-offset: 3px;
             animation: aki-senal 1.6s ease-in-out infinite; }
.aki-senal-dentro { outline-offset: -2px; }
@keyframes aki-senal { 50% { outline-color: var(--ambar-barra); } }
@media (prefers-reduced-motion: reduce) { .aki-senal { animation: none; } }
.aki-sirvio { display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
              margin-top: 10px; font-size: var(--letra-nota); color: var(--tinta-suave); }
.aki-cita { color: var(--tinta-suave); }
.aki-cita::before { content: '«'; }
.aki-cita::after { content: '»'; }
.aki-escribe { display: flex; gap: 4px; padding-top: 9px; }
.aki-escribe i { width: 6px; height: 6px; border-radius: 50%; background: var(--tinta-5);
                 animation: pulso-late 1s ease infinite; }
.aki-escribe i:nth-child(2) { animation-delay: .15s; }
.aki-escribe i:nth-child(3) { animation-delay: .3s; }
.aki-caja { display: flex; gap: 8px; flex: none; padding: 12px;
            border-top: 1px solid var(--linea-suave); }
.aki-caja input { flex: 1; min-width: 0; }
.aki-manda { width: 40px; height: 40px; flex: none; border: 0; border-radius: var(--radio);
             background: var(--ambar); color: var(--sobre-ambar); cursor: pointer;
             display: flex; align-items: center; justify-content: center; }
.aki-manda:hover { background: var(--ambar-hondo); }
.aki-manda svg { width: 18px; height: 18px; }
.lienzo:has(> .sin-marco) + .aki { right: 16px; bottom: 16px; }
.lienzo:has(> .sin-marco) + .aki .aki-globo { display: none; }
.con-aki .linea-tiempo { right: calc(16px + var(--aki-boton) + var(--aki-hueco)); }
html.tarjetas .aki { right: calc(2 * var(--aire) - (var(--aki-boton) - var(--aki-dibujo)) / 2);
                     bottom: calc(var(--aire) + (var(--pie) - var(--aki-boton)) / 2); }
html.tarjetas .aki-globo { display: none; }
html.tarjetas .aki-panel { margin-right: calc((var(--aki-boton) - var(--aki-dibujo)) / 2); }
@media (max-width: 760px) {
  .aki-panel { width: calc(100vw - 2 * var(--aire)); }
  .lienzo:has(> .sin-marco) + .aki { right: 12px; bottom: 12px; }
  .con-aki .linea-tiempo { right: calc(12px + var(--aki-boton) + var(--aki-hueco)); }
}
html.tarjetas { --radio: var(--radio-control); --radio-dentro: calc(var(--radio-control) - 1px); }
html.tarjetas body { background: var(--fondo-tarjetas); }
html.tarjetas .acciones-fila.franja { background: transparent; border-bottom-color: transparent; }
html.tarjetas .acciones-fila.franja { margin-bottom: calc(var(--aire) - var(--respiro) - 1px); }
html.tarjetas :is(.campo input, .campo-buscar input, #buscar, .manda, .tel-boton, .abre-barra) {
  border-radius: var(--radio-control); }
html.tarjetas .per-avisos .per-aviso { padding: 0 12px; border: 1px solid var(--borde);
                                       border-radius: var(--radio-control); background: var(--tarjeta); }
html.tarjetas .per-avisos .per-aviso:hover { background: var(--hover); }
html.tarjetas .per-aviso.prendido { border-color: var(--tinta-accion); box-shadow: none;
                                    border-radius: var(--radio-control); }
html.tarjetas :is(.abre-barra.principal, .manda) { border: 0; box-shadow: 2px 2px 0 var(--rojo-marca); }
html.tarjetas :is(.abre-barra.principal, .manda):hover { box-shadow: 2px 2px 0 var(--rojo-marca); }
html.tarjetas .manda:disabled { box-shadow: none; }
html.tarjetas .per-tabla th { color: var(--tinta); }
html.tarjetas .per-tabla tbody,
html.tarjetas .per-tabla .per-nombre { font-weight: 500; }
html.tarjetas .per-tabla th { font-weight: 700; }
html.tarjetas .acciones-fila.franja .titulo-v2 { font-size: var(--letra-grande); }
html.tarjetas .per-estado { display: inline-flex; align-items: center; gap: 6px;
                            padding: 3px 10px 3px 8px; border-radius: 999px; }
html.tarjetas .per-estado::before { content: ''; width: 6px; height: 6px; border-radius: 50%;
                                    flex: none; background: var(--tinta-5); }
html.tarjetas .per-estado.si { background: color-mix(in srgb, var(--verde-vivo) 12%, var(--tarjeta));
                               color: var(--verde-fuera); }
html.tarjetas .per-estado.si::before { background: var(--verde-vivo); }
html.tarjetas .per-estado.no { background: var(--sup-2); color: var(--tinta-suave); }
html.tarjetas .tel-etq { flex-direction: column; align-items: flex-start; gap: 2px;
                         margin-bottom: 16px; }
html.tarjetas .tel-etq b { font-size: var(--letra-subtitulo); font-weight: 700; letter-spacing: -.3px; }
html.tarjetas .tel-etq b::after { display: none; }
.etiquetado { display: flex; flex-direction: column; gap: 6px; flex: 1; min-width: 200px; }
.etiquetado.numero { flex: 0 1 300px; min-width: 160px; }
.etiquetado > .campo { flex: none; min-width: 0; }
.etiqueta { font-size: var(--letra-nota); font-weight: 500; color: var(--tinta-suave); }
html.tarjetas .carga-notas { list-style: none; padding: 0; display: grid;
                             grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 32px; }
html.tarjetas .carga-notas > li:last-child:nth-child(3n + 1) { grid-column: 1 / -1; }
@media (max-width: 1000px) {
  html.tarjetas .carga-notas { grid-template-columns: minmax(0, 1fr); }
}
html.tarjetas .carga-suelta > svg { box-sizing: content-box; width: 20px; height: 20px; padding: 11px;
                                    border-radius: var(--radio-control); background: var(--sup-2); }
html.tarjetas #per-mas-menu { border-radius: var(--radio-tarjeta); padding: 6px; min-width: 300px; }
.accion.accion-dice { height: auto; padding: 8px 10px; gap: 12px; border-radius: var(--radio-control); }
.accion-ico { width: 34px; height: 34px; flex: none; display: grid; place-items: center;
              border-radius: var(--radio-control); background: var(--sup-2); color: var(--tinta); }
.accion-dice .accion-ico svg { width: 17px; height: 17px; }
.accion-texto { display: flex; flex-direction: column; gap: 3px; line-height: 1.25; }
.accion-texto b { font-weight: 500; }
.accion-texto span { font-size: var(--letra-nota); color: var(--tinta-suave); }
.aki-panel { border-radius: var(--radio-tarjeta); }
.aki-nombre { font-weight: 700; }
.aki-cierra, .aki-globo, .aki-pasos, #aki-texto, .aki-llevame { border-radius: var(--radio-control); }
.aki-llevame { box-shadow: 2px 2px 0 var(--rojo-marca); }
.aki-temas { flex-direction: column; align-items: flex-start; gap: 8px; margin-top: 12px; }
.aki-tema { display: inline-flex; align-items: center; height: var(--toque); padding: 0 14px;
            border-radius: var(--radio-control); font-size: var(--letra-cuerpo); }
.aki-tema:hover { background: var(--hover); }
.aki-yo { border-radius: var(--radio-tarjeta) var(--radio-tarjeta) var(--radio-control) var(--radio-tarjeta); }
.aki-manda { border-radius: var(--radio-control); box-shadow: 2px 2px 0 var(--rojo-marca); }
#aki-texto:placeholder-shown + .aki-manda { background: var(--sup-2); color: var(--tinta-4);
                                            box-shadow: none; cursor: default; }
html.tarjetas { --alto-taller: clamp(520px, 100vh - var(--franja) - 2 * var(--aire)
                                        + var(--respiro) + 1px - var(--pie), 780px); }
html.tarjetas :is(.telefono, .lado-presets, .arbol-editor) { height: var(--alto-taller); }
html.tarjetas .bots-caja { border-radius: var(--radio-tarjeta); box-shadow: var(--sombra-1); }
html.tarjetas .bots-tabla :is(thead th, .bot-reng > td):first-child { padding-left: var(--aire); }
html.tarjetas .bots-tabla :is(thead th, .bot-reng > td):last-child { padding-right: var(--aire); }
html.tarjetas .bots-tabla th.per-c-acc { width: calc(50px + var(--aire) - 12px); }
html.tarjetas .bots-tabla tr.bot-abierto > td { padding-left: calc(72px + var(--aire) - 12px);
                                                padding-right: calc(18px + var(--aire) - 12px); }
html.tarjetas :is(.arbol-vista, .arbol-panel) { border-radius: var(--radio-tarjeta);
                                                box-shadow: var(--sombra-1); }
html.tarjetas :is(.asis-cuestionario, .alr-cuestionario) { border-radius: var(--radio-tarjeta);
                                                          box-shadow: var(--sombra-1); overflow: hidden; }
html.tarjetas :is(.asis-cuestionario, .alr-cuestionario) .tel-cab { border-radius: 0; }
html.tarjetas :is(.asis-cuestionario, .alr-cuestionario) .tel-pie { border-radius: 0;
                                                                    background: var(--pie-claro); }
.tabla-tarjeta:has(> .per-tabla-caja.deja-salir) { overflow: visible; }
html.tarjetas .per-tabla thead th:first-child { border-top-left-radius: calc(var(--radio-tarjeta) - 1px); }
html.tarjetas .per-tabla thead th:last-child { border-top-right-radius: calc(var(--radio-tarjeta) - 1px); }
html.tarjetas .per-tabla tbody tr:last-child > td:first-child { border-bottom-left-radius: calc(var(--radio-tarjeta) - 1px); }
html.tarjetas .per-tabla tbody tr:last-child > td:last-child { border-bottom-right-radius: calc(var(--radio-tarjeta) - 1px); }
html.tarjetas :is(.menucito, .per-menu) { border-radius: var(--radio-tarjeta); padding: 6px; }
html.tarjetas .menucito .accion, html.tarjetas .per-op { border-radius: var(--radio-control); }
html.tarjetas .menucito > :has(> .accion.peligro),
html.tarjetas .menucito > .accion.peligro { border-top: 0; margin-top: 7px; position: relative; }
html.tarjetas .menucito > :has(> .accion.peligro)::before,
html.tarjetas .menucito > .accion.peligro::before {
  content: ''; position: absolute; left: 4px; right: 4px; top: -4px; height: 1px;
  background: var(--linea-suave); }
.panel-ficha { --radio: var(--radio-control); --radio-dentro: calc(var(--radio-control) - 1px);
               top: var(--aire); right: var(--aire); bottom: var(--aire);
               max-width: calc(100vw - 2 * var(--aire));
               border: 1px solid var(--borde); border-radius: var(--radio-tarjeta);
               box-shadow: var(--sombra-3); }
.panel-ficha { width: 520px; }
.panel-ficha .ficha-uno { height: 100%; min-height: 0; }
.panel-ficha .ficha-cabeza { padding-top: 16px; padding-bottom: 14px; }
.ficha-cuerpo { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column;
                padding-top: 12px; }
.ficha-cuerpo > * { flex: none; }
.panel-ficha .ficha-etiqueta { margin-bottom: 6px; }
.panel-ficha .ficha-etiqueta.con-aire { margin-top: 8px; }
.panel-ficha .banda { padding: 11px 13px 13px; }
.panel-ficha .ficha-num { padding-top: 7px; padding-bottom: 8px;
                          border-radius: var(--radio-tarjeta); }
.ficha-cuerpo > .ficha-tira { flex: 0 1 auto; min-height: 0; grid-template-rows: minmax(0, 1fr); }
.ficha-tira .xp-foto { display: flex; flex-direction: column; min-height: 0; }
.ficha-tira .xp-marco { height: auto; flex: 1 1 64px; min-height: 40px; max-height: 64px; }
.ficha-tira .xp-pie-foto { flex: none; }
.panel-ficha :is(.ficha-liga, .fp-elige, .fp-dato input, .fp-cancela, .manda) {
  border-radius: var(--radio-control); }
.panel-ficha .manda { border: 0; box-shadow: 2px 2px 0 var(--rojo-marca); }
.panel-ficha .per-estado { display: inline-flex; align-items: center; gap: 6px;
                           padding: 3px 10px 3px 8px; border-radius: 999px; }
.panel-ficha .per-estado::before { content: ''; width: 6px; height: 6px; border-radius: 50%;
                                   flex: none; background: var(--tinta-5); }
.panel-ficha .per-estado.si { background: color-mix(in srgb, var(--verde-vivo) 12%, var(--tarjeta));
                              color: var(--verde-fuera); }
.panel-ficha .per-estado.si::before { background: var(--verde-vivo); }
.panel-ficha .per-estado.no { background: var(--sup-2); color: var(--tinta-suave); }
.panel-ficha .banda-chip { border-radius: 999px; }
.ficha-pie { min-height: var(--pie); padding: 0 calc(var(--aire) + var(--aki-dibujo) + 8px) 0 20px;
             background: var(--pie-claro); }
html.tarjetas :is(.xp-quien, .xp-numero, .xp-mes, .xp-evidencia, .xp-historia, .xp-donde, .xp-galeria) {
  border-radius: var(--radio-tarjeta); box-shadow: var(--sombra-1); }
html.tarjetas .xp-visor-caja { border-radius: var(--radio-tarjeta); }
html.tarjetas :is(.xp-sello, .cuadro-marca) { border-radius: 999px; }
html.tarjetas .cuadro-marca.dos-x { height: 16px; padding: 0 6px; box-shadow: none;
                                    background: var(--ambar); color: var(--barra-tinta); font-weight: 700; }
html.tarjetas :is(.xp-cuadro, .cuadro-dia) .cuadro-marca.dos-x { padding: 0 4px; }
html.tarjetas .xp-sello { padding: 2px 10px; }
html.tarjetas .xp-donde { padding-bottom: 0; overflow: hidden; }
html.tarjetas .xp-donde-pie { margin: 12px -14px 0; min-height: var(--pie);
                              padding: 0 calc(var(--aire) + var(--aki-dibujo) + 12px) 0 14px;
                              align-items: center; align-content: center;
                              background: var(--pie-claro); }
html.tarjetas .expediente :is(.xp-izq, .xp-der) {
  gap: 0; background: var(--tarjeta); border: 1px solid var(--borde);
  border-radius: var(--radio-tarjeta); box-shadow: var(--sombra-1); }
html.tarjetas .expediente .xp-der { overflow: hidden; }
html.tarjetas .expediente :is(.xp-izq, .xp-der) > * { border: 0; border-radius: 0; box-shadow: none; }
html.tarjetas .expediente :is(.xp-izq, .xp-der) > * + * { border-top: 1px solid var(--linea-suave); }
html.tarjetas .expediente .xp-izq > .xp-quien { padding-bottom: 8px; }
html.tarjetas .expediente .xp-izq > .xp-numeros { gap: 0; padding: 0; }
html.tarjetas .expediente .xp-numero { border: 0; border-radius: 0; box-shadow: none; background: none;
                                       padding: 9px 9px 10px; }
html.tarjetas .expediente .xp-numero + .xp-numero { border-left: 1px solid var(--linea-suave); }
@media (max-width: 1120px) {
  html.tarjetas .expediente .xp-numero:nth-child(3n+1) { border-left: 0; }
  html.tarjetas .expediente .xp-numero:nth-child(n+4) { border-top: 1px solid var(--linea-suave); }
}
html.tarjetas .expediente { --foto-tira: 104px; }
html.tarjetas .expediente .xp-foto.chica .xp-marco { height: var(--foto-tira); }
html.tarjetas .expediente .xp-evidencia > .per-sin-nadie {
  display: grid; place-items: center; margin: 0; min-height: calc(var(--foto-tira) + 52px); }
html.tarjetas .expediente .xp-evidencia > .xp-mes-cab { min-height: 32px; }
html.tarjetas .asistencias :is(.pulso, .resumen-marco, .grafica-marco, .tabla-sitios-marco,
                               .exp-grafica, .exp-dia, .res-tarjeta) {
  border-radius: var(--radio-tarjeta); box-shadow: var(--sombra-1); }
html.tarjetas :is(.asistencias, .stb-alta) .camp-panel { border-radius: var(--radio-tarjeta); }
html.tarjetas .asistencias :is(.pulso-titulo, .ts-titulo, .gr-titulo, .exp-dia .exp-titulo) {
  font-weight: 700; }
html.tarjetas .asistencias .tabla-sitios th { color: var(--tinta); font-weight: 700; }
html.tarjetas .asistencias .tabla-sitios :is(td, .ts-nombre, .ts-cifra, .ts-n) { font-weight: 500; }
html.tarjetas .asistencias .exp-dia :is(.fila-dia, .dia-nombre, .dia-linea, .fila-dia .dato, .dia-tarde) {
  font-weight: 500; }
html.tarjetas .asistencias .gr-lienzo { padding-right: calc(var(--aire) + var(--aki-dibujo) + 4px); }
html.tarjetas .pendientes :is(.alertas-mapa-marco, .sitio) {
  border-radius: var(--radio-tarjeta); box-shadow: var(--sombra-1); overflow: hidden; }
html.tarjetas .pendientes .sitio-titulo { border-radius: 0; }
html.tarjetas .pendientes .alr-etiqueta { border-radius: var(--radio-control); }
html.tarjetas .pendientes :is(.pend-mapa, .pend-atender, .pend-adjunto, .voz-mini) {
  border-radius: var(--radio-control); }
html.tarjetas .pendientes .pend :is(.pend-cuando, .pend-nota, .pend-llego, .tel-linea, .voz-dura) {
  font-weight: 500; }
html.tarjetas .pendientes > .sitio:last-of-type { margin-bottom: var(--pie); }
html.tarjetas .pendientes .vacio { background: var(--tarjeta); border: 1px solid var(--borde);
                                    border-radius: var(--radio-tarjeta); box-shadow: var(--sombra-1); }
html.tarjetas .stb-alta .pulso { border-radius: var(--radio-tarjeta); box-shadow: var(--sombra-1); }
html.tarjetas .stb-alta .qf-dia { color: var(--tinta); font-weight: 700; }
html.tarjetas .stb-alta .qf-n { font-weight: 500; }
html.tarjetas .stb-alta .tabla-sitios th { color: var(--tinta); font-weight: 700; }
html.tarjetas .stb-alta .tabla-sitios :is(td, .ts-nombre, .ts-cifra, .ts-n) { font-weight: 500; }
html.tarjetas .stb-alta .pend :is(.pend-cuando, .pend-nota, .pend-llego, .tel-linea) { font-weight: 500; }
html.tarjetas .stb-alta :is(.pend-si, .pend-no, .pend-atender, .pend-adjunto, .voz-mini) {
  border-radius: var(--radio-control); }
html.tarjetas .stb-alta :is(.pend-ley, .pend-foto) { border-radius: 999px; }
html.tarjetas .stb-alta .qf { position: relative; }
html.tarjetas .stb-alta > .qf { height: 350px; display: flex; flex-direction: column; }
html.tarjetas .stb-alta .qf-cuerpo { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
html.tarjetas .stb-alta .qf-nadie { inset: 0; top: 0; height: auto; justify-content: center;
                                    pointer-events: none; }
html.tarjetas .stb-alta > .qf { overflow: visible; }
html.tarjetas .stb-alta .qf :is(.tira-menu, .tira-cal) { top: auto; bottom: calc(100% + 6px); }
.camp-sol :is(.camp-num, .camp-cuenta) { color: var(--hab-solicitudes-texto); }
.camp-asi :is(.camp-num, .camp-cuenta) { color: var(--hab-asistencia-texto); }
.camp-asi .camp-boton:hover, .camp-asi .camp-boton.abierto {
  background: var(--hab-asistencia); border-color: var(--hab-asistencia); }
.camp-sol .camp-boton:hover, .camp-sol .camp-boton.abierto {
  background: var(--hab-solicitudes); border-color: var(--hab-solicitudes); }
.camp-palomita { stroke-dasharray: 10; stroke-dashoffset: 0; }
.camp-sol .camp-boton:hover .camp-palomita { animation: camp-palomita .6s ease-out; }
@keyframes camp-palomita { from { stroke-dashoffset: 10; } to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .camp-sol .camp-boton:hover .camp-palomita { animation: none; } }
.camp-sol .camp-lista .pend-hab { display: none; }
.camp-sol .camp-lista .tel-linea > .pend-hab + *::before { content: none; }
html.tarjetas .rep-panel { border-radius: var(--radio-tarjeta); box-shadow: var(--sombra-1); }
html.tarjetas .rep-hoja { border-radius: var(--radio-control); }
html.tarjetas .rep-baja { border-radius: var(--radio-control); box-shadow: 2px 2px 0 var(--rojo-marca); }
html.tarjetas .rep-previa > .xl { border-radius: var(--radio-control); overflow: hidden; }
html.tarjetas .rep-previa:has(> .rep-nota) { padding-bottom: 0; }
html.tarjetas .rep-nota { display: flex; align-items: center; min-height: var(--pie);
                          margin: 14px -16px 0; padding: 0 calc(var(--aire) + var(--aki-dibujo) + 12px) 0 18px;
                          background: var(--pie-claro); border-top: 1px solid var(--linea-suave);
                          border-radius: 0 0 calc(var(--radio-tarjeta) - 1px) calc(var(--radio-tarjeta) - 1px); }
html.tarjetas .cfg-tarjeta { border-radius: var(--radio-tarjeta); box-shadow: var(--sombra-1); }
html.tarjetas .cfg-pie { background: var(--pie-claro);
                         border-radius: 0 0 calc(var(--radio-tarjeta) - 1px) calc(var(--radio-tarjeta) - 1px); }
html.tarjetas .cfg-tarjeta .segmento { border-radius: var(--radio-control); }
html.tarjetas .cfg-tarjeta .segmento .seg-btn { border-radius: calc(var(--radio-control) - 4px); }
html.tarjetas .cfg-tarjeta :is(.tel-cupo button, .tel-tarjeta) { border-radius: var(--radio-control); }
#contenido.sin-marco :is(.mapa-panel, .mapa-leyenda, .linea-tiempo) { border-radius: var(--radio-tarjeta); }
#contenido.sin-marco .mp-titulo { font-size: var(--letra-grande); }
#contenido.sin-marco .mp-hab { border-radius: var(--radio-control); }
#contenido.sin-marco .mph-btn { border-radius: calc(var(--radio-control) - 3px); }
#contenido.sin-marco :is(.lt-ahora, .sitio-ficha, .mapa-boton) { border-radius: var(--radio-control); }
.camp-asi .camp-cab { padding: 15px 16px 6px; }
.camp-asi .camp-lista { display: flex; flex-direction: column; gap: 6px; padding: 0 10px 12px; }
.camp-asi .camp-rastro { border-top: 0; padding: 12px 6px 2px; }
.camp-asi .camp-lista .miembro { display: flex; flex-wrap: wrap; align-items: center;
  column-gap: 8px; row-gap: 4px; padding: 11px 13px 12px;
  background: var(--tarjeta); border: 1px solid var(--borde); border-radius: var(--radio-control); }
.camp-asi .camp-lista .miembro:hover { background: var(--tarjeta); border-color: var(--tinta-5); }
.camp-asi .camp-lista .miembro::before { content: ''; order: -1; flex-basis: 100%; height: 3px; }
.camp-asi .camp-lista :is(.quien, .tel-linea) { display: contents; }
.camp-asi .camp-lista .quien > .nombre { order: -4; flex: 1 1 0; min-width: 0; min-height: 19px;
  font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.camp-asi .camp-lista .pend-cuando { order: -3; flex: none; margin-left: auto; padding-top: 0;
  color: var(--tinta-4); }
.camp-asi .camp-lista .pend-acciones { order: -2; position: static; transform: none; flex: none;
  margin: -4px 0 -4px auto; }
.camp-asi .camp-lista .miembro:is(:hover, :focus-within) > .pend-cuando { display: none; }
.camp-asi .camp-lista .tel-linea > * + *::before,
.camp-asi .camp-lista .quien > .pend-nota::before { content: none; }
.camp-asi .camp-lista .tel-linea > * { font-size: var(--letra-nota); white-space: nowrap; }
.camp-asi .camp-lista .tel-linea > :not(.pend-hab, .camp-veces, .camp-veces + *) {
  color: var(--tinta); font-weight: 500; }
.camp-asi .camp-lista .tel-linea > .camp-veces { font-weight: 400; color: var(--tinta-suave); }
.camp-asi .camp-lista .tel-linea > .camp-veces + * { color: var(--tinta-suave); }
.camp-asi .camp-lista .tel-linea > .camp-veces + *::before { content: '·'; margin: 0 6px 0 -2px; }
.camp-asi .camp-lista .quien > .pend-nota { margin: 0; min-width: 0; white-space: normal; }
.camp-asi .camp-lista .pend-hab { display: inline-flex; align-items: center; gap: 5px;
  padding: 2px 9px 2px 7px; border-radius: 999px; background: var(--sup-2);
  color: var(--tinta); font-weight: 500; }
.camp-asi .camp-lista .pend-hab .hab-icono { width: 13px; height: 13px; }
.camp-asi .camp-lista :is(.hab-incompleto, .hab-temprano, .hab-sin_entrada) .pend-hab:not(.camp-otra),
.camp-asi .camp-lista .pend-hab.camp-otra:is(.hab-incompleto, .hab-temprano, .hab-sin_entrada) {
  background: var(--rojo-palido); }
@media (hover: none) {
  .camp-asi .camp-lista .pend-acciones { order: 9; flex-basis: 100%; margin: 8px 0 0; }
  .camp-asi .camp-lista .miembro > .pend-cuando { display: inline; }
}
.no-existe-ir { display: inline-flex; align-items: center; text-decoration: none; }
