/* SISCO web: hoja de estilos única, sin compilación (el hosting no tiene Node).
   Colores tomados del logo de La Red (#2CBEC3). Modo oscuro automático según el sistema. */

:root {
    --marca: #2cbec3;
    --marca-fuerte: #0b7f85;     /* botones y enlaces: contraste AA con blanco */
    --marca-hover: #096a6f;
    --marca-suave: #e8f8f8;
    --marca-borde: #b5e8ea;

    --fondo: #f4f7f9;
    --superficie: #ffffff;
    --superficie-2: #f8fafc;
    --borde: #e3e8ee;
    --borde-fuerte: #cdd5df;
    --texto: #0f1d2b;
    --texto-2: #3d4b5c;
    --tenue: #6b7889;

    --exito: #047857;   --exito-suave: #e7f7f0;  --exito-borde: #a7e3c9;
    --peligro: #c62828; --peligro-suave: #fdeeee; --peligro-borde: #f3b7b7;
    --alerta: #9a5b00;  --alerta-suave: #fff5e0;  --alerta-borde: #f5d48f;

    --sombra-1: 0 1px 2px rgba(15, 29, 43, .06), 0 1px 3px rgba(15, 29, 43, .04);
    --sombra-2: 0 10px 30px -12px rgba(15, 29, 43, .25);
    --radio: 10px;
    --radio-chico: 7px;
    --lateral-ancho: 272px;
    --barra-alto: 68px;
    --enfoque: 0 0 0 3px rgba(44, 190, 195, .35);
    color-scheme: light;
}

@media (prefers-color-scheme: dark) {
    :root {
        --marca-fuerte: #2cbec3;
        --marca-hover: #5fd3d7;
        --marca-suave: rgba(44, 190, 195, .12);
        --marca-borde: rgba(44, 190, 195, .35);

        --fondo: #0d151d;
        --superficie: #131e28;
        --superficie-2: #172431;
        --borde: #223140;
        --borde-fuerte: #2f4354;
        --texto: #e6edf3;
        --texto-2: #b9c5d1;
        --tenue: #8796a6;

        --exito: #4ade80;   --exito-suave: rgba(74, 222, 128, .1);  --exito-borde: rgba(74, 222, 128, .3);
        --peligro: #f87171; --peligro-suave: rgba(248, 113, 113, .1); --peligro-borde: rgba(248, 113, 113, .3);
        --alerta: #fbbf24;  --alerta-suave: rgba(251, 191, 36, .1);  --alerta-borde: rgba(251, 191, 36, .3);

        --sombra-1: 0 1px 2px rgba(0, 0, 0, .3);
        --sombra-2: 0 12px 32px -12px rgba(0, 0, 0, .6);
        color-scheme: dark;
    }
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    font: 14px/1.5 "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    font-feature-settings: "cv11", "ss01";
    color: var(--texto);
    background: var(--fondo);
    -webkit-font-smoothing: antialiased;
}

a { color: var(--marca-fuerte); text-decoration: none; }
a:hover { color: var(--marca-hover); }
h1, h2, h3 { margin: 0; letter-spacing: -.01em; }
h1 { font-size: 20px; font-weight: 700; }
h2 { font-size: 16px; font-weight: 600; }
p { margin: 0 0 8px; }
img { max-width: 100%; }
.icono { flex-shrink: 0; display: block; }
.tenue { color: var(--tenue); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: none; box-shadow: var(--enfoque); border-radius: 6px; }

/* ---------- Estructura ---------- */
.app { display: flex; min-height: 100vh; }

.lateral {
    width: var(--lateral-ancho);
    flex-shrink: 0;
    height: 100vh;
    position: sticky;
    top: 0;
    display: flex;
    flex-direction: column;
    background: var(--superficie);
    border-right: 1px solid var(--borde);
    z-index: 30;
}
.lateral-cabecera {
    display: flex; align-items: center; justify-content: space-between;
    height: var(--barra-alto); padding: 0 20px; flex-shrink: 0;
    border-bottom: 1px solid var(--borde);
}
.marca { display: block; line-height: 0; }
.marca img { height: 38px; width: auto; }

.menu { flex: 1; overflow-y: auto; padding: 14px 12px 20px; scrollbar-width: thin; }
.menu-rotulo {
    margin: 18px 10px 6px; font-size: 11px; font-weight: 600;
    text-transform: uppercase; letter-spacing: .08em; color: var(--tenue);
}
.menu-directo, .menu-seccion > summary {
    display: flex; align-items: center; gap: 11px;
    padding: 8px 10px; border-radius: var(--radio-chico);
    color: var(--texto-2); font-weight: 500; cursor: pointer;
    list-style: none; user-select: none;
}
.menu-seccion > summary::-webkit-details-marker { display: none; }
.menu-directo:hover, .menu-seccion > summary:hover { background: var(--superficie-2); color: var(--texto); }
.menu-directo.activo { background: var(--marca-suave); color: var(--marca-fuerte); font-weight: 600; }
.menu-directo .icono, .menu-seccion > summary .icono { color: var(--tenue); }
.menu-directo.activo .icono { color: var(--marca-fuerte); }
.menu-texto { flex: 1; }
.menu-seccion > summary .flecha { transition: transform .15s ease; }
.menu-seccion[open] > summary .flecha { transform: rotate(180deg); }
.menu-seccion[open] > summary { color: var(--texto); }
.menu-seccion > summary.pendiente { color: var(--tenue); }

.menu-lista { list-style: none; margin: 2px 0 6px; padding: 0; }
.menu-lista.nivel-1 { margin-left: 19px; padding-left: 12px; border-left: 1px solid var(--borde); }
.menu-lista.nivel-2, .menu-lista.nivel-3, .menu-lista.nivel-4 { margin: 2px 0 6px 10px; padding-left: 10px; border-left: 2px solid var(--marca-suave); }
.menu-lista a, .menu-lista .pendiente {
    display: block; padding: 5px 10px; border-radius: 6px;
    color: var(--texto-2); font-size: 13px;
}
.menu-lista a:hover { background: var(--superficie-2); color: var(--texto); }
.menu-lista a.activo { background: var(--marca-suave); color: var(--marca-fuerte); font-weight: 600; }
.menu-lista .pendiente { color: var(--tenue); opacity: .75; cursor: default; }
.menu-grupo {
    display: flex; align-items: center; gap: 6px; padding: 6px 10px; margin-top: 2px; border-radius: 6px;
    font-size: 13px; font-weight: 600; color: var(--texto); cursor: pointer; list-style: none;
}
.menu-grupo::-webkit-details-marker { display: none; }
.menu-grupo:hover { background: var(--superficie-2); }
.menu-grupo .flecha { color: var(--tenue); transition: transform .15s ease; }
.menu-sub[open] > .menu-grupo .flecha { transform: rotate(90deg); }
.menu-sub[open] > .menu-grupo { color: var(--marca-fuerte); }
.menu-grupo.pendiente-grupo { color: var(--tenue); }
.menu-sub[open] > .menu-grupo.pendiente-grupo { color: var(--tenue); }
.pronto, .chip {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 1px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; line-height: 18px;
    white-space: nowrap; vertical-align: middle;
}
.pronto { background: var(--superficie-2); color: var(--tenue); border: 1px solid var(--borde); }

.lateral-pie {
    display: flex; align-items: center; gap: 10px;
    padding: 14px 20px; border-top: 1px solid var(--borde);
    font-size: 12px; color: var(--tenue);
}

.principal { flex: 1; min-width: 0; display: flex; flex-direction: column; }

.barra {
    position: sticky; top: 0; z-index: 20;
    display: flex; align-items: center; gap: 14px;
    height: var(--barra-alto); padding: 0 32px;
    background: color-mix(in srgb, var(--fondo) 85%, transparent);
    backdrop-filter: saturate(160%) blur(10px);
    -webkit-backdrop-filter: saturate(160%) blur(10px);
    border-bottom: 1px solid var(--borde);
}
.barra-titulo { flex: 1; min-width: 0; }
.barra-titulo h1 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.migas { display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--tenue); margin-bottom: 1px; }
.migas a { color: var(--tenue); }
.migas a:hover { color: var(--marca-fuerte); }

.usuario-menu { position: relative; }
.usuario-menu > summary {
    display: flex; align-items: center; gap: 10px; list-style: none; cursor: pointer;
    padding: 5px 8px 5px 5px; border-radius: 999px; border: 1px solid transparent;
}
.usuario-menu > summary::-webkit-details-marker { display: none; }
.usuario-menu > summary:hover, .usuario-menu[open] > summary { background: var(--superficie); border-color: var(--borde); }
.usuario-nombre { display: flex; flex-direction: column; line-height: 1.2; font-weight: 600; font-size: 13px; }
.usuario-nombre small { font-weight: 400; color: var(--tenue); font-size: 12px; }
.avatar {
    display: inline-grid; place-items: center; flex-shrink: 0;
    width: 34px; height: 34px; border-radius: 50%;
    background: linear-gradient(135deg, var(--marca), var(--marca-fuerte));
    color: #fff; font-size: 12.5px; font-weight: 700; letter-spacing: .02em;
}
.avatar-chico { width: 30px; height: 30px; font-size: 11px; }
.desplegable {
    position: absolute; right: 0; top: calc(100% + 8px); min-width: 210px;
    background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio);
    box-shadow: var(--sombra-2); padding: 6px; z-index: 40;
}
.desplegable a, .desplegable button {
    display: flex; align-items: center; gap: 10px; width: 100%;
    padding: 9px 10px; border-radius: var(--radio-chico);
    color: var(--texto-2); font: inherit; background: none; border: 0; cursor: pointer; text-align: left;
}
.desplegable a:hover, .desplegable button:hover { background: var(--superficie-2); color: var(--texto); }
.desplegable form { margin: 0; }

.contenido { padding: 28px 32px 48px; width: 100%; max-width: 1400px; }

/* ---------- Componentes ---------- */
.tarjeta {
    background: var(--superficie);
    border: 1px solid var(--borde);
    border-radius: var(--radio);
    box-shadow: var(--sombra-1);
    padding: 24px;
}
.tarjeta-tabla { padding: 0; overflow: hidden; }
.tarjeta-cabecera { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 20px; }
.tarjeta-icono {
    display: grid; place-items: center; width: 40px; height: 40px; flex-shrink: 0;
    border-radius: 10px; background: var(--marca-suave); color: var(--marca-fuerte);
}
.angosto { max-width: 520px; }

.boton {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    height: 38px; padding: 0 16px; border-radius: var(--radio-chico);
    background: var(--marca-fuerte); color: #fff; border: 1px solid transparent;
    font: inherit; font-weight: 600; cursor: pointer; white-space: nowrap;
    box-shadow: 0 1px 2px rgba(11, 127, 133, .25);
    transition: background .15s ease, box-shadow .15s ease;
}
.boton:hover { background: var(--marca-hover); color: #fff; }
@media (prefers-color-scheme: dark) { .boton, .boton:hover { color: #062a2c; } }
.boton.secundario { background: var(--superficie); color: var(--texto-2); border-color: var(--borde-fuerte); box-shadow: var(--sombra-1); }
.boton.secundario:hover { background: var(--superficie-2); color: var(--texto); }
.boton-bloque { width: 100%; height: 42px; }
.boton-icono {
    display: inline-grid; place-items: center; width: 34px; height: 34px;
    border-radius: var(--radio-chico); color: var(--texto-2);
    background: none; border: 1px solid transparent; cursor: pointer;
}
.boton-icono:hover { background: var(--superficie-2); color: var(--marca-fuerte); border-color: var(--borde); }
.boton-icono.deshabilitado { opacity: .35; pointer-events: none; }
.solo-movil { display: none; }

.aviso {
    display: flex; gap: 10px; align-items: flex-start;
    padding: 12px 14px; margin-bottom: 20px; border-radius: var(--radio);
    border: 1px solid; font-weight: 500;
}
.aviso .icono { margin-top: 1px; }
.aviso ul { margin: 0; padding-left: 18px; }
.aviso.exito { background: var(--exito-suave); border-color: var(--exito-borde); color: var(--exito); }
.aviso.error { background: var(--peligro-suave); border-color: var(--peligro-borde); color: var(--peligro); }
.aviso.alerta { background: var(--alerta-suave); border-color: var(--alerta-borde); color: var(--alerta); }
.aviso.info { background: var(--marca-suave); border-color: var(--borde); color: var(--texto-2); }

.chip-ok { background: var(--exito-suave); color: var(--exito); }
.chip-neutro { background: var(--superficie-2); color: var(--tenue); border: 1px solid var(--borde); }
.chip-alerta { background: var(--peligro-suave); color: var(--peligro); }
.chip-aviso { background: var(--alerta-suave); color: var(--alerta); }
.chip-marca { background: var(--marca-suave); color: var(--marca-fuerte); }

/* ---------- Listados ---------- */
.herramientas { display: flex; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 16px; flex-wrap: wrap; }
.filtros-listado { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; flex: 1; margin: 0; }
.filtros-listado .busqueda { margin: 0; }
.filtro-si-no { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: var(--texto-2); }
.filtro-si-no select { height: 40px; width: auto; min-width: 110px; }
.busqueda { position: relative; flex: 1; max-width: 480px; min-width: 220px; margin: 0; }
.busqueda > .icono { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--tenue); pointer-events: none; }
.herramientas .busqueda input[type=search] { padding-left: 38px; padding-right: 36px; height: 40px; }
.busqueda .limpiar { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); color: var(--tenue); display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; }
.busqueda .limpiar:hover { background: var(--superficie-2); color: var(--texto); }

.tabla-contenedor { overflow-x: auto; }
.tabla { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tabla th {
    position: sticky; top: 0; text-align: left; white-space: nowrap;
    padding: 11px 16px; background: var(--superficie-2);
    font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--tenue);
    border-bottom: 1px solid var(--borde);
}
.tabla td { padding: 11px 16px; border-bottom: 1px solid var(--borde); vertical-align: middle; color: var(--texto-2); }
.tabla tbody tr:last-child td { border-bottom: 0; }
.tabla tbody tr { transition: background .1s ease; }
.tabla tbody tr:hover { background: var(--superficie-2); }
.tabla td.codigo { font-weight: 600; color: var(--texto); font-variant-numeric: tabular-nums; }
.tabla .numero { text-align: right; font-variant-numeric: tabular-nums; }
.tabla .acciones-fila { width: 1%; text-align: right; padding-top: 6px; padding-bottom: 6px; }
.tabla td.vacio { text-align: center; padding: 48px 16px; color: var(--tenue); }
.tabla td.vacio .icono { margin: 0 auto 8px; opacity: .6; }
.persona { display: flex; align-items: center; gap: 10px; }
.persona strong { color: var(--texto); font-weight: 600; }
.persona small { display: block; }

.paginacion {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 10px 16px; border-top: 1px solid var(--borde); background: var(--superficie);
    color: var(--tenue); font-size: 13px;
}
.paginacion-botones { display: flex; align-items: center; gap: 6px; }
.paginacion-pagina { padding: 0 6px; white-space: nowrap; }

/* ---------- Formularios ---------- */
.formulario { max-width: 960px; }
.campos { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px 20px; }
.campos.una-columna { grid-template-columns: 1fr; }
.campo { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 500; color: var(--texto-2); }
.campo small { font-weight: 400; color: var(--tenue); }
.ancho { grid-column: 1 / -1; }
input:not([type=checkbox]):not([type=radio]), select, textarea {
    width: 100%; height: 40px; padding: 0 12px;
    font: inherit; font-size: 14px; color: var(--texto);
    background: var(--superficie); border: 1px solid var(--borde-fuerte); border-radius: var(--radio-chico);
    transition: border-color .15s ease, box-shadow .15s ease;
}
textarea { height: auto; min-height: 90px; padding: 10px 12px; resize: vertical; }
select {
    appearance: none; padding-right: 34px; cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7889' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 10px center;
}
input:hover, select:hover, textarea:hover { border-color: var(--tenue); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--marca); box-shadow: var(--enfoque); }
input:disabled, select:disabled, textarea:disabled { background: var(--superficie-2); color: var(--tenue); cursor: not-allowed; }
input[type=checkbox] { width: 17px; height: 17px; margin: 0; accent-color: var(--marca-fuerte); cursor: pointer; flex-shrink: 0; }
.casilla { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--texto-2); cursor: pointer; align-self: end; min-height: 40px; }
.ayuda { color: var(--alerta); font-size: 12px; font-weight: 500; }
.acciones {
    display: flex; justify-content: flex-end; gap: 10px;
    margin: 24px -24px -24px; padding: 16px 24px;
    background: var(--superficie-2); border-top: 1px solid var(--borde);
    border-radius: 0 0 var(--radio) var(--radio);
}
.subtitulo { margin: 28px 0 4px; padding-top: 22px; border-top: 1px solid var(--borde); }

.arbol-permisos { margin-top: 14px; columns: 3 260px; column-gap: 24px; }
.arbol-permisos > ul { margin: 0; padding: 0; list-style: none; }
.arbol-permisos > ul > li {
    break-inside: avoid; margin-bottom: 14px; padding: 12px 14px;
    border: 1px solid var(--borde); border-radius: var(--radio); background: var(--superficie-2);
}
.arbol-permisos > ul > li > .casilla { font-weight: 600; color: var(--texto); min-height: 0; }
.arbol-permisos ul ul { list-style: none; margin: 6px 0 0; padding-left: 26px; }
.arbol-permisos ul ul .casilla { min-height: 28px; font-size: 13px; }

/* ---------- Inicio ---------- */
.bienvenida {
    position: relative; overflow: hidden;
    display: flex; align-items: center; justify-content: space-between; gap: 24px;
    padding: 28px 32px; margin-bottom: 28px; border-radius: 14px;
    background: linear-gradient(120deg, #0b7f85 0%, #1aa9ae 60%, #2cbec3 100%);
    color: #fff; box-shadow: var(--sombra-2);
}
.bienvenida h2 { font-size: 22px; font-weight: 700; margin-bottom: 6px; }
.bienvenida p { max-width: 640px; margin: 0; color: rgba(255, 255, 255, .9); }
.bienvenida .pronto { background: rgba(255, 255, 255, .2); color: #fff; border-color: rgba(255, 255, 255, .35); }
.bienvenida-logo { width: 96px; height: 96px; filter: brightness(0) invert(1); opacity: .9; }
.bienvenida::after {
    content: ""; position: absolute; right: -60px; top: -80px; width: 260px; height: 260px;
    border-radius: 50%; border: 28px solid rgba(255, 255, 255, .08); pointer-events: none;
}
.seccion-titulo { margin: 0 0 12px; font-size: 13px; text-transform: uppercase; letter-spacing: .07em; color: var(--tenue); }
.grilla-atajos { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.atajo {
    display: flex; align-items: center; gap: 14px;
    padding: 16px; border-radius: var(--radio);
    background: var(--superficie); border: 1px solid var(--borde); box-shadow: var(--sombra-1);
    color: var(--texto); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.atajo:hover { color: var(--texto); border-color: var(--marca-borde); box-shadow: var(--sombra-2); transform: translateY(-1px); }
.atajo-icono { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 11px; background: var(--marca-suave); color: var(--marca-fuerte); }
.atajo-texto { flex: 1; display: flex; flex-direction: column; line-height: 1.3; }
.atajo-texto strong { font-weight: 600; }
.atajo-texto .tenue { font-size: 12.5px; }
.atajo-flecha { color: var(--tenue); transition: transform .15s ease; }
.atajo:hover .atajo-flecha { transform: translateX(3px); color: var(--marca-fuerte); }
.nota { display: flex; align-items: center; gap: 8px; margin-top: 28px; color: var(--tenue); font-size: 13px; }

/* ---------- Login ---------- */
.pantalla-login { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); min-height: 100vh; }
.login-portada {
    position: relative; overflow: hidden;
    display: flex; flex-direction: column; justify-content: center; gap: 22px;
    padding: 64px clamp(32px, 6vw, 96px);
    background: radial-gradient(120% 120% at 0% 0%, #36d0d5 0%, var(--marca) 35%, #0b7f85 100%);
    color: #fff;
}
.login-logo-portada { width: min(340px, 80%); height: auto; position: relative; z-index: 1; }
.login-lema { position: relative; z-index: 1; max-width: 420px; font-size: 20px; line-height: 1.4; font-weight: 500; color: rgba(255, 255, 255, .92); }
.aro { position: absolute; border-radius: 50%; border-style: solid; border-color: rgba(255, 255, 255, .12); pointer-events: none; }
.aro-1 { width: 520px; height: 520px; right: -180px; bottom: -200px; border-width: 46px; }
.aro-2 { width: 260px; height: 260px; right: 80px; top: -110px; border-width: 24px; border-color: rgba(255, 255, 255, .08); }
.login-panel { display: grid; place-items: center; padding: 48px 24px; background: var(--superficie); }
.login { width: 100%; max-width: 380px; display: flex; flex-direction: column; gap: 16px; }
.login h1 { font-size: 26px; }
.login .tenue { margin: -10px 0 4px; }
.login .aviso { margin: 0; }
.login-logo { display: none; }
.login-logo img { height: 52px; width: auto; }
.login-pie { font-size: 12.5px; text-align: center; margin: 4px 0 0 !important; }

/* ---------- Pantallas chicas ---------- */
@media (max-width: 960px) {
    .solo-movil { display: inline-grid; }
    .lateral {
        position: fixed; left: 0; top: 0; bottom: 0;
        transform: translateX(-100%); transition: transform .2s ease;
        box-shadow: var(--sombra-2);
    }
    .menu-abierto .lateral { transform: none; }
    .velo { position: fixed; inset: 0; z-index: 25; background: rgba(8, 15, 22, .45); opacity: 0; pointer-events: none; transition: opacity .2s ease; }
    .menu-abierto .velo { opacity: 1; pointer-events: auto; }
    .barra { padding: 0 16px; gap: 8px; }
    .usuario-nombre { display: none; }
    .contenido { padding: 20px 16px 40px; }
    .bienvenida { padding: 22px; }
    .bienvenida-logo { display: none; }
    .acciones { margin: 20px -16px -16px; padding: 14px 16px; }
    .tarjeta { padding: 16px; }
    .tarjeta-tabla { padding: 0; }
    .tabla td { white-space: nowrap; }
    .pantalla-login { grid-template-columns: 1fr; }
    .login-portada { display: none; }
    .login-logo { display: block; margin-bottom: 8px; }
}
@media (max-width: 560px) {
    .busqueda { max-width: none; }
    .herramientas .boton { width: 100%; }
    .paginacion { flex-direction: column; align-items: stretch; text-align: center; }
    .paginacion-botones { justify-content: center; }
    .acciones { flex-direction: column-reverse; }
    .acciones .boton { width: 100%; }
}

/* ---------- Informes ---------- */
.filtros-informe { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px 20px; margin-bottom: 20px; }
.filtros-informe .filtro-ancho { flex: 1 1 360px; }
.filtros-informe fieldset { border: 0; padding: 0; margin: 0; }
.filtros-informe legend { padding: 0; margin-bottom: 6px; }
.opciones { display: flex; gap: 16px; height: 40px; align-items: center; }
.informe-cabecera { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; margin: 4px 0 16px; }
.informe-cabecera h2 { margin: 2px 0 4px; font-size: 22px; }
.informe-acciones { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.informe-acciones form { margin: 0; }
.antetitulo { margin: 0; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--marca-fuerte); }
.resumen { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-bottom: 20px; }
.resumen > div { background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); padding: 14px 16px; box-shadow: var(--sombra-1); }
.resumen span { display: block; font-size: 12px; color: var(--tenue); text-transform: uppercase; letter-spacing: .05em; }
.resumen strong { display: block; font-size: 20px; margin-top: 4px; font-variant-numeric: tabular-nums; color: var(--texto); }
.negativo { color: var(--peligro) !important; }
.grupo-informe { margin-bottom: 18px; }
.grupo-cabecera { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 14px 16px; border-bottom: 1px solid var(--borde); }
.grupo-cabecera h3 { margin: 0 0 2px; font-size: 15px; }
.grupo-cabecera p { margin: 0; font-size: 13px; }
.grupo-cifras { display: flex; gap: 24px; margin: 0; }
.grupo-cifras dt { font-size: 11px; color: var(--tenue); text-transform: uppercase; letter-spacing: .05em; }
.grupo-cifras dd { margin: 2px 0 0; font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; }
.tabla-compacta td { padding-top: 8px; padding-bottom: 8px; }
.tabla tfoot td { padding: 10px 16px; background: var(--superficie-2); font-weight: 600; color: var(--texto); border-top: 1px solid var(--borde-fuerte); }
.vacio-informe { text-align: center; color: var(--tenue); padding: 32px; }
.solo-imprimir { display: none; }

/* ---------- Ficha de contrato ---------- */
.seccion-ficha { padding: 16px; margin-bottom: 18px; }
.seccion-ficha h3 { margin: 0 0 12px; font-size: 15px; }
.ficha { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px 20px; margin: 0; }
.ficha dt { font-size: 11px; color: var(--tenue); text-transform: uppercase; letter-spacing: .05em; }
.ficha dd { margin: 2px 0 0; font-weight: 500; color: var(--texto); overflow-wrap: anywhere; }
.ficha .ancho { grid-column: 1 / -1; }
.fila-formulario { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }
.fila-formulario input { height: 34px; }
.agregar-cuota { padding: 12px 16px; border-top: 1px solid var(--borde); }
.agregar-cuota .campo { width: 170px; }
.editar-cuota { position: relative; display: inline-block; }
.editar-cuota summary { list-style: none; }
.editar-cuota summary::-webkit-details-marker { display: none; }
.editar-cuota[open] > form:first-of-type { margin-top: 6px; }
.editar-cuota[open] { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.editar-cuota input[type=number] { width: 130px; }
.boton.peligro { color: var(--peligro); border-color: var(--peligro-borde); }
.boton.peligro:hover { background: var(--peligro-suave); color: var(--peligro); }
.zona-peligro { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding: 14px 16px; border: 1px solid var(--peligro-borde); border-radius: var(--radio); }
.zona-peligro p { margin: 2px 0 0; font-size: 13px; }
.nota-seccion { margin: 0; padding: 10px 16px; border-top: 1px solid var(--borde); font-size: 13px; white-space: pre-line; }
.formulario-ancho { max-width: 1100px; }
.valor-calculado { height: 38px; display: flex; align-items: center; font-size: 16px; font-weight: 600; color: var(--texto); font-variant-numeric: tabular-nums; }

/* ---------- Parrilla ---------- */
.tabla-parrilla th, .tabla-parrilla td { vertical-align: top; }
.tabla-parrilla td { min-width: 130px; }
.tabla-parrilla th small { display: block; font-weight: 400; color: var(--tenue); text-transform: none; letter-spacing: 0; }
.tabla-parrilla .hora { font-variant-numeric: tabular-nums; color: var(--texto-2); white-space: nowrap; }
.tabla-parrilla .hoy { background: var(--marca-suave); }
.programa { display: block; padding: 2px 0 2px 8px; border-left: 3px solid var(--color-tarifa, var(--borde)); line-height: 1.3; }
.programa small { display: block; color: var(--tenue); font-size: 11px; }
.leyenda-tarifas { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin-top: 12px; font-size: 13px; }
.leyenda-tarifas .programa { display: inline-block; }
.vacio-grande { text-align: center; padding: 40px 16px; color: var(--tenue); }
.tabla-parrilla th a { color: inherit; text-decoration: none; }
.tabla-parrilla th a:hover { text-decoration: underline; }
.editor-parrilla, .copiar-parrilla { margin-top: 18px; }
.editor-parrilla .acciones-formulario, .copiar-parrilla .acciones-formulario, .eliminar-parrilla .acciones-formulario { display: flex; gap: 8px; justify-content: flex-end; margin-top: 16px; }
.campo-en-linea { flex-direction: row; align-items: center; gap: 8px; }
.campo-en-linea input { height: 34px; }
.tabla-parrilla-dia td.hora { width: 64px; font-variant-numeric: tabular-nums; font-weight: 600; color: var(--texto-2); }
.tabla-parrilla-dia td:nth-child(2) input { min-width: 260px; }
.tabla-parrilla-dia input[data-campo="duracion"] { width: 96px; min-width: 80px; }
.tabla-parrilla-dia select { min-width: 110px; }
.tabla-parrilla-dia .acciones-fila { white-space: nowrap; width: 1%; }
.tabla-parrilla-dia input:invalid { border-color: var(--peligro); }
.error-texto { color: var(--peligro); font-weight: 600; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.copiar-parrilla .copiar-columnas { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.copiar-parrilla h3 { margin: 0 0 10px; font-size: 15px; }
.dias-copia { list-style: none; margin: 10px 0 0; padding: 0; font-size: 13px; }
.dias-copia li { display: flex; justify-content: space-between; padding: 5px 0; border-bottom: 1px solid var(--borde); }
.dias-copia .ocupado { color: var(--peligro); font-weight: 600; }

/* ---------- Cotizaciones ---------- */
.formulario-cotizacion > .tarjeta { margin-bottom: 18px; }
.titulo-seccion { margin: 0 0 14px; font-size: 15px; }
.titulo-con-accion { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.titulo-con-accion .titulo-seccion { margin: 0; }
.item-cotizacion { border: 1px solid var(--borde); border-radius: var(--radio); padding: 12px; margin: 12px 0; }
.item-cabecera { display: flex; align-items: center; gap: 16px; margin-bottom: 8px; }
.item-cabecera .tenue { margin-left: auto; }
.tabla-edicion td { padding: 4px 6px; vertical-align: middle; }
.tabla-edicion input, .tabla-edicion select { height: 34px; width: 100%; min-width: 90px; }
.tabla-edicion td:first-child input { min-width: 200px; }
.tabla-edicion select { min-width: 170px; }
.tabla-edicion input[data-campo="cantidad"] { width: 90px; min-width: 70px; }
.tabla-edicion input[data-campo="valor_unitario"], .tabla-edicion input[data-campo="valor"] { width: 150px; }
.boton.boton-chico { height: 30px; padding: 0 10px; font-size: 13px; margin-top: 8px; }
.acciones-detalle { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 8px; }
.total-cotizacion { font-size: 15px; }
.total-cotizacion strong { font-size: 20px; margin-left: 8px; font-variant-numeric: tabular-nums; }
.versiones { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: -4px 0 16px; }
.versiones a { text-decoration: none; }
.flujo-cotizacion { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; padding: 16px 18px; margin-bottom: 18px; border-left: 3px solid var(--marca); }
.flujo-cotizacion h3 { margin: 0; font-size: 15px; }
.flujo-cotizacion p { margin: 2px 0 0; }
.flujo-acciones { display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-start; }
.flujo-acciones form { margin: 0; }
.flujo-detalle summary { list-style: none; cursor: pointer; }
.flujo-detalle summary::-webkit-details-marker { display: none; }
.flujo-detalle[open] summary { display: none; }
.flujo-formulario { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }
.flujo-formulario label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--texto-2); }
.flujo-formulario textarea { width: min(360px, 80vw); }
.tabla-anexo th small { display: block; font-weight: 400; color: var(--tenue); text-transform: none; letter-spacing: 0; }
.tabla-anexo td:first-child { min-width: 200px; }
.anexo-tarifas .tabla-contenedor + .tabla-contenedor { border-top: 1px solid var(--borde); }
.paso-contrato .opcion-destino { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border: 1px solid var(--borde); border-radius: var(--radio); margin-bottom: 10px; cursor: pointer; }
.paso-contrato .opcion-destino:has(input:checked) { border-color: var(--marca); background: var(--marca-suave); }
.paso-contrato .opcion-destino input[type=radio] { margin-top: 3px; }
.paso-contrato .opcion-destino select { margin-top: 6px; min-width: 200px; }
.paso-contrato .acciones-formulario { display: flex; gap: 8px; justify-content: flex-end; margin-top: 16px; }

@media print {
    @page { size: A4 landscape; margin: 12mm; }
    body { background: #fff !important; color: #000; }
    .lateral, .barra, .no-imprimir, .migas { display: none !important; }
    .app, .principal, .contenido { display: block !important; margin: 0 !important; padding: 0 !important; }
    .solo-imprimir { display: block; }
    .informe-logo { height: 44px; width: auto; }
    .tarjeta, .resumen > div { box-shadow: none !important; border-color: #bbb !important; background: #fff !important; }
    .tabla th { position: static; background: #eee !important; color: #333 !important; }
    .tabla td, .tabla tfoot td { color: #000 !important; background: #fff !important; }
    .tabla-contenedor { overflow: visible !important; }
    .grupo-informe { break-inside: auto; }
    .tabla tr { break-inside: avoid; }
    .resumen strong, .grupo-cifras dd { color: #000; }
}
.filtros-informe .filtro-corto { flex: 0 0 110px; }
.filtros-informe .filtro-medio { flex: 0 0 160px; }
.filtros-informe .filtro-casilla { height: 40px; display: flex; align-items: center; gap: 8px; font-size: 13px; }
.tabla-meses td, .tabla-meses th { padding-left: 10px; padding-right: 10px; }
.tabla-meses td.numero, .tabla-meses th.numero { min-width: 92px; }
.tabla-meses td.cliente { white-space: nowrap; max-width: 280px; overflow: hidden; text-overflow: ellipsis; color: var(--texto); }
.tabla-meses .total { font-weight: 600; color: var(--texto); background: var(--marca-suave); }
.tabla-meses tfoot .total { background: var(--superficie-2); }
.tabla-comparativa .anterior { color: var(--tenue); }
.tabla-comparativa .subencabezado th { top: 38px; font-size: 10.5px; padding-top: 4px; padding-bottom: 6px; }
@media print {
    .tabla-meses { font-size: 9px; }
    .tabla-meses td, .tabla-meses th { padding: 4px 5px; }
    .tabla-meses .total { background: #f3f3f3 !important; }
}
.filtro-navegar { display: flex; gap: 8px; margin-left: auto; }
.tabla .fila-grupo td { background: var(--marca-suave); color: var(--texto); font-weight: 600; }
.tabla .grupo-filas tr:last-child td { border-bottom: 1px solid var(--borde); }
@media print { .tabla .fila-grupo td { background: #eee !important; } }
.tabla-ancha td { white-space: nowrap; }
@media print { .tabla-ancha { font-size: 8.5px; } .tabla-ancha td, .tabla-ancha th { padding: 3px 4px; } }
.tabla-meses td { white-space: nowrap; }
.barra-avance { display: inline-block; min-width: 64px; padding: 1px 6px; border-radius: 6px; font-size: 12px; font-weight: 600;
    background: linear-gradient(90deg, var(--marca-suave) var(--avance), var(--superficie-2) var(--avance)); color: var(--marca-fuerte); }

/* Tendencias por segundaje: gráfico de líneas */
.grafico-tendencias { padding: 16px 18px 10px; }
.grafico-tendencias svg { width: 100%; height: auto; display: block; }
.grafico-tendencias .guia { stroke: var(--borde); stroke-width: 1; }
.grafico-tendencias .eje { fill: var(--tenue); font-size: 11px; font-variant-numeric: tabular-nums; }
.grafico-tendencias .serie { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.leyenda { display: flex; flex-wrap: wrap; gap: 6px 18px; list-style: none; margin: 0 0 10px; padding: 0; font-size: .85rem; color: var(--tenue); }
.leyenda li { display: flex; align-items: center; gap: 6px; }
.leyenda .muestra { width: 18px; height: 0; border-top: 3px solid var(--serie); border-radius: 2px; }
.leyenda .serie-disponibilidad { border-top-style: dashed; }
.serie-disponibilidad { --serie: var(--tenue); }
.serie-total { --serie: var(--marca-fuerte); }
.serie-auspicio { --serie: #7c5cd6; }
.serie-otros { --serie: #e08a1e; }
.serie-canje { --serie: #d6457a; }
.grafico-tendencias .serie { stroke: var(--serie); }
.grafico-tendencias .serie-disponibilidad { stroke-dasharray: 5 4; }
.grafico-tendencias .serie-total { stroke-width: 3; }

.tabla .texto-largo { min-width: 260px; white-space: normal; }

/* Subtotales de los informes de Cierre de mes */
.tabla .fila-subtotal td { font-weight: 600; border-top: 1px solid var(--borde-fuerte); background: var(--superficie-2); }
@media print { .tabla .fila-subtotal td { background: #f4f4f4 !important; } }

/* ---------- Anexo de tarifas (edición) ---------- */
.pestanas { display: flex; gap: 4px; margin-bottom: 16px; border-bottom: 1px solid var(--borde); }
.pestanas a { padding: 8px 14px; text-decoration: none; color: var(--texto-2); border-bottom: 2px solid transparent; margin-bottom: -1px; font-weight: 500; }
.pestanas a.activa { color: var(--marca); border-bottom-color: var(--marca); }
.opcion-chica { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--texto-2); }
.tabla-escala input, .tabla-escala td:first-child input { width: 72px; min-width: 64px; }
.tabla-anexo-edicion td { padding: 4px 3px; }
.tabla-anexo-edicion .celda-programa input[data-nombre] { min-width: 220px; }
.tabla-anexo-edicion select { min-width: 0; width: auto; }
.tabla-anexo-edicion input[type="number"] { width: 104px; min-width: 96px; padding: 0 8px; text-align: right; font-variant-numeric: tabular-nums; -moz-appearance: textfield; }
.tabla-anexo-edicion input[type="number"]::-webkit-inner-spin-button, .tabla-anexo-edicion input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.tabla-anexo-edicion .seg-30 input, .tabla-anexo-edicion th.seg-30 { background: var(--marca-suave); font-weight: 600; }
.tabla-anexo-edicion .extra { display: none; }
.tabla-anexo-edicion.con-extras .extra { display: table-cell; }
.tabla-anexo-edicion .acciones-fila { width: 1%; }
.formulario-cotizacion > .acciones-formulario { display: flex; gap: 8px; justify-content: flex-end; margin: 4px 0 18px; }

/* ---------- Análisis de parrilla ---------- */
.tabla-analisis td.numero, .tabla-analisis th.numero { white-space: nowrap; font-variant-numeric: tabular-nums; }
.tabla-analisis .hora-real { width: 96px; height: 30px; text-align: right; font-variant-numeric: tabular-nums; }
.tabla-analisis .hora-real:invalid { border-color: var(--peligro); }
.tabla-analisis .fuerte { font-weight: 600; }
.tabla-analisis .desfase.atraso { color: var(--peligro); font-weight: 600; }
.tabla-analisis .desfase.adelanto { color: var(--marca); font-weight: 600; }
#analisis .acciones-formulario { display: flex; gap: 12px; justify-content: space-between; align-items: center; padding: 12px 16px; flex-wrap: wrap; }
.tabla-analisis td:nth-child(2) { min-width: 190px; }

/* Órdenes de publicidad */
.filtro-mes { display: flex; gap: 8px; align-items: center; }
.filtro-mes input[type=month] { height: 40px; }
.tabla-orden th.dia, .tabla-orden td.dia { padding-left: 2px; padding-right: 2px; min-width: 24px; text-align: center; font-variant-numeric: tabular-nums; }
.tabla-orden th.finde { color: var(--tenue); }
.tabla-orden td.con-spots { font-weight: 600; color: var(--marca); }
.tabla-orden td { padding-top: 5px; padding-bottom: 5px; }
.tabla-orden td.programa { white-space: nowrap; }
.tabla-orden td.material { white-space: nowrap; }
.tabla-orden td.programa, .tabla-orden thead tr:first-child th:first-child { position: sticky; left: 0; background: var(--superficie); z-index: 1; }
.tabla-orden td.material .tenue { font-size: 12px; margin-left: 4px; }
.tabla-orden td.numero, .tabla-orden th.numero { white-space: nowrap; }
details.grupo-informe > summary { cursor: pointer; list-style: none; }
details.grupo-informe > summary::-webkit-details-marker { display: none; }
.tabla-orden-edicion td { padding: 4px 2px; }
.tabla-edicion.tabla-orden-edicion td.dia input { width: 30px; min-width: 30px; height: 30px; padding: 0; text-align: center; -moz-appearance: textfield; }
.tabla-orden-edicion td.dia input::-webkit-inner-spin-button, .tabla-orden-edicion td.dia input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.tabla-orden-edicion td.dia.en-parrilla { background: var(--marca-suave); }
.tabla-orden-edicion td.dia.cerrado { background: repeating-linear-gradient(45deg, var(--superficie-2), var(--superficie-2) 4px, var(--borde) 4px, var(--borde) 6px); }
.tabla-orden-edicion td.dia input.con-spots { font-weight: 700; border-color: var(--marca); }
.tabla-edicion.tabla-orden-edicion td:first-child input.campo-programa { width: 190px; min-width: 190px; }
.tabla-edicion.tabla-orden-edicion select.campo-tipo { width: 110px; min-width: 110px; }
.tabla-edicion.tabla-orden-edicion select.campo-material { width: 200px; min-width: 200px; }
.tabla-edicion.tabla-orden-edicion input.campo-valor { width: 92px; min-width: 92px; text-align: right; }
.tabla-edicion.tabla-orden-edicion input, .tabla-edicion.tabla-orden-edicion select { height: 32px; }

/* Tandas: consulta de segundajes */
.oculto { display: none; }
.tabla-segundajes th.finde { color: var(--tenue); }
.tabla-segundajes td.celda-segundaje { white-space: nowrap; }
.tabla-segundajes td.sobre, .leyenda-segundaje.sobre { background: var(--peligro-suave); color: var(--peligro); }
.tabla-segundajes td.cerca, .leyenda-segundaje.cerca { background: var(--alerta-suave); color: var(--alerta); }
.tabla-segundajes td.cerrado, .leyenda-segundaje.cerrado { background: var(--superficie-2); color: var(--tenue); }
.leyenda-segundaje { display: inline-flex; align-items: center; gap: 4px; padding: 1px 8px; border-radius: 999px; font-size: .85em; margin-right: 6px; }
.boton-celda { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: 3px; min-width: 2.5em; min-height: 1.4em; justify-content: flex-end; }
.boton-celda:hover, .boton-celda:focus-visible { text-decoration: underline; outline: 1px dashed var(--marca); outline-offset: 2px; }

/* Armado de pauta (Tandas) */
.armado { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); gap: 18px; align-items: start; margin-top: 18px; }
.armado-programas { position: sticky; top: calc(var(--barra-alto) + 12px); max-height: calc(100vh - var(--barra-alto) - 32px); overflow: auto; }
.armado-programas ul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 2px; }
.armado-programas a { display: grid; grid-template-columns: 48px 1fr; gap: 2px 8px; padding: 8px 10px; border-radius: var(--radio-chico); color: var(--texto); text-decoration: none; }
.armado-programas a:hover { background: var(--superficie-2); }
.armado-programas a.activo { background: var(--marca-suave); box-shadow: inset 3px 0 0 var(--marca-fuerte); }
.armado-programas .hora { font-variant-numeric: tabular-nums; color: var(--tenue); font-weight: 600; }
.armado-programas .nombre { font-weight: 600; font-size: .92rem; }
.armado-programas .conteo { grid-column: 2; display: flex; gap: 4px; flex-wrap: wrap; }
.armado-programas .conteo:empty { display: none; }
.armado-editor { display: grid; gap: 18px; min-width: 0; }
.armado-editor .tarjeta { margin: 0; }
.cortes { display: grid; gap: 10px; margin-top: 12px; }
.corte { border: 1px solid var(--borde); border-radius: var(--radio-chico); background: var(--superficie); }
.corte-pendientes { border-style: dashed; background: var(--superficie-2); }
.corte-pack { border-color: var(--marca-borde); }
.corte.sobre { border-color: var(--marca-fuerte); box-shadow: var(--enfoque); }
.corte-titulo { display: flex; justify-content: space-between; gap: 8px; padding: 8px 12px; border-bottom: 1px solid var(--borde); font-size: .9rem; }
.corte.vacio .corte-titulo { border-bottom: 0; }
.corte-lista { list-style: none; margin: 0; padding: 4px; display: grid; gap: 4px; min-height: 8px; }
.spot { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 6px 8px; border: 1px solid var(--borde); border-radius: var(--radio-chico); background: var(--superficie); cursor: grab; }
.spot.arrastrando { opacity: .5; }
.spot-mover { color: var(--tenue); letter-spacing: -2px; user-select: none; }
.spot-datos { display: grid; flex: 1 1 260px; min-width: 0; font-size: .9rem; }
.spot-datos > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.spot-segundos { font-variant-numeric: tabular-nums; font-weight: 600; min-width: 3ch; text-align: right; }
.spot select { width: auto; min-width: 150px; padding: 4px 8px; }
.spot-orden { display: flex; gap: 2px; }
.spot-sacar { color: var(--peligro); }
.lista-menciones { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 4px; }
@media (max-width: 900px) {
    .armado { grid-template-columns: 1fr; }
    .armado-programas { position: static; max-height: 260px; }
}
.sin-saltos { white-space: nowrap; }

/* Pauta diaria y notas (Tandas) */
.pauta-programa .titulo-seccion { padding: 14px 16px 0; }
.pauta-notas { margin: 8px 16px 12px; padding: 8px 12px 8px 28px; border: 1px solid var(--borde); border-radius: var(--radio-chico); background: var(--superficie-2); font-size: .9rem; }
.notas-pauta { display: grid; gap: 14px; }
.nota-programa h3 { margin: 0 0 6px; font-size: 1rem; }
.nota-programa p { margin: 0; padding: 4px 0; border-bottom: 1px solid var(--borde); }
.nota-programa .linea-vacia { height: 26px; }
@media print { .nota-programa { break-inside: avoid; } .pauta-notas { background: none !important; } }

/* Bitácora de Megatime (Conciliación) */
.bitacora-encabezado { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); gap: 18px; align-items: start; }
.bitacora-encabezado .tarjeta { margin: 0; }
.mes-grilla { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; margin-top: 10px; font-size: .85rem; }
.dia-mes { display: block; padding: 6px 0; border-radius: var(--radio-chico); color: var(--texto); text-decoration: none; }
.dia-mes:hover { background: var(--superficie-2); }
.dia-mes.con-datos { background: var(--marca-suave); color: var(--marca-fuerte); font-weight: 600; }
.dia-mes.elegido { box-shadow: inset 0 0 0 2px var(--marca-fuerte); }
.tabla tr.sin-parear td { color: var(--tenue); }
.form-estado { margin: 0; }
.chip-boton { font-family: inherit; cursor: pointer; transition: filter .15s, box-shadow .15s; }
.chip-boton:not(.chip-neutro) { border: 1px solid transparent; }
.chip-boton:hover { filter: brightness(.95); box-shadow: 0 0 0 2px var(--borde); }
.chip-boton:focus-visible { outline: 2px solid var(--marca); outline-offset: 2px; }
.chip-info { background: var(--marca-suave); color: var(--marca-fuerte); }
.boton.boton-mini { height: 28px; padding: 0 10px; font-size: 12px; }
.tabla tr.elegido td { background: var(--alerta-suave); }
.tabla tr.pareado td { color: var(--tenue); text-decoration: line-through; text-decoration-color: var(--borde-fuerte); }
.tabla tr.pareado td:last-child { text-decoration: none; }
.barra-guardar { position: sticky; bottom: 0; background: var(--fondo, var(--superficie)); padding: 12px 0; display: flex; justify-content: flex-end; align-items: center; gap: 12px; }
#pareo:not(.eligiendo) [data-asignar], #pareo tr.pareado [data-asignar] { visibility: hidden; }
.tabla.tabla-canje { min-width: 1240px; }
.tabla.tabla-canje td { padding: 6px 4px; }
.tabla.tabla-canje input { width: 84px; min-width: 84px; height: 32px; padding: 4px 6px; text-align: right; font-variant-numeric: tabular-nums; -moz-appearance: textfield; }
.tabla.tabla-canje input::-webkit-inner-spin-button, .tabla.tabla-canje input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.tabla.tabla-canje input.codigo { width: 60px; min-width: 60px; text-align: left; }
.tabla-canje input.base { font-weight: 700; box-shadow: inset 0 0 0 1px var(--marca-fuerte); }
@media (max-width: 900px) { .bitacora-encabezado { grid-template-columns: 1fr; } }
.tabla-canje input.sin-uso { opacity: .45; }
.tabla-canje select { height: 32px; padding: 4px 6px; max-width: 240px; }
details.tarjeta > summary { cursor: pointer; }
.tabla-cambios td.editable { cursor: pointer; text-decoration: underline dotted; }
.tabla-cambios input { width: 90px; height: 28px; padding: 2px 6px; text-align: right; }
.filtros-informe [hidden] { display: none !important; }
.tabla-canje td:first-child { min-width: 180px; }
.tabla-canje input.cambiado { background: var(--alerta-suave); }
.tabla-canje input[type=date] { width: 140px; min-width: 140px; text-align: left; }
.tabla-canje input[type=checkbox] { width: auto; min-width: 0; height: auto; }
.tabla td.cambiado { background: var(--alerta-suave); font-weight: 600; }
.tabla td.fecha { white-space: nowrap; }

/* Conciliación: exportaciones, auditoría y equivalencias SISCO ↔ Megatime */
.tabla tr.banda td { background: var(--superficie-2); }
.tabla tr.seleccionada td { background: var(--marca-suave); }
.columnas-auditoria { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr)); gap: 16px; }
.columnas-auditoria caption { text-align: left; font-weight: 600; padding: 4px 0 8px; }
.tabla-resumen { max-width: 640px; margin-top: 12px; }
.tabla tr.fila-error td { background: var(--peligro-suave); }
.acciones-inline { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.tabla tr.fila-nula td { color: var(--tenue); }
.tabla-notas td.numero, .tabla-notas td.nowrap { white-space: nowrap; }

/* Proyección de ventas */
.tabla th.centrado { text-align: center; }
.tabla tr.fila-total td { background: var(--superficie-2); font-weight: 600; color: var(--texto); border-top: 1px solid var(--borde-fuerte); }
.form-foto-mes { margin-top: 8px; }
.form-foto-dia { display: flex; gap: 8px; align-items: flex-end; }
.form-foto-dia .campo { margin: 0; }

/* Contratos por vencer */
.tarjeta-tabla > .titulo-seccion { padding: 14px 16px 0; }
.tabla td.fecha { white-space: nowrap; }
