* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    font-family:
        Inter,
        "Segoe UI",
        Arial,
        sans-serif;
    color: #172033;
    background: #f4f6fa;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input {
    font: inherit;
}

.sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    width: 250px;
    display: flex;
    flex-direction: column;
    padding: 26px 18px;
    background: #172033;
    color: #ffffff;
}

.marca {
    display: flex;
    flex-direction: column;
    padding: 0 10px 28px;
}

.marca-titulo {
    font-size: 21px;
    font-weight: 700;
}

.marca-subtitulo {
    margin-top: 4px;
    font-size: 13px;
    color: #aeb8cb;
}

.menu {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 7px;
}

.menu a {
    padding: 12px 14px;
    border-radius: 9px;
    color: #dbe2ef;
}

.menu a:hover {
    background: #273249;
    color: #ffffff;
}

.usuario {
    padding: 18px 10px 0;
    border-top: 1px solid #334057;
}

.usuario span {
    display: block;
    margin-bottom: 10px;
    font-weight: 600;
}

.usuario button {
    padding: 0;
    border: 0;
    color: #bdc7d8;
    background: transparent;
    cursor: pointer;
}

.usuario button:hover {
    color: #ffffff;
}

.contenido {
    min-height: 100vh;
    margin-left: 250px;
    padding: 32px;
}

.encabezado {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 26px;
}

.encabezado h1 {
    margin: 0;
    font-size: 30px;
}

.encabezado p {
    margin: 7px 0 0;
    color: #68738a;
}

.tarjetas {
    display: grid;
    grid-template-columns:
        repeat(auto-fit, minmax(190px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.tarjeta {
    padding: 22px;
    border: 1px solid #e4e8f0;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 5px 18px rgba(20, 32, 56, 0.05);
}

.tarjeta-etiqueta {
    display: block;
    margin-bottom: 12px;
    color: #727d91;
    font-size: 13px;
    font-weight: 600;
}

.tarjeta strong {
    font-size: 26px;
}

.columnas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.panel {
    overflow: hidden;
    border: 1px solid #e4e8f0;
    border-radius: 14px;
    background: #ffffff;
}

.panel-titulo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 22px;
    border-bottom: 1px solid #edf0f5;
}

.panel-titulo h2 {
    margin: 0;
    font-size: 17px;
}

.panel-titulo a {
    color: #4358d4;
    font-size: 13px;
    font-weight: 600;
}

.tabla-contenedor {
    overflow-x: auto;
}

table {
    width: 100%;
    border-collapse: collapse;
}

th,
td {
    padding: 14px 18px;
    border-bottom: 1px solid #edf0f5;
    text-align: left;
    font-size: 14px;
}

th {
    color: #6d788d;
    background: #fafbfc;
    font-size: 12px;
    text-transform: uppercase;
}

tr:last-child td {
    border-bottom: 0;
}

.pagina-login {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: #172033;
}

.login-contenedor {
    width: 100%;
    max-width: 420px;
}

.login-tarjeta {
    padding: 38px;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.25);
}

.login-marca {
    margin-bottom: 28px;
    text-align: center;
}

.login-marca h1 {
    margin: 0;
    font-size: 27px;
}

.login-marca p {
    margin: 8px 0 0;
    color: #717b8f;
}

.formulario-login {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.campo {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.campo label {
    font-size: 13px;
    font-weight: 600;
}

.campo input {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid #d5dbe6;
    border-radius: 9px;
    outline: none;
}

.campo input:focus {
    border-color: #4358d4;
    box-shadow: 0 0 0 3px rgba(67, 88, 212, 0.12);
}

.boton-principal {
    padding: 13px 18px;
    border: 0;
    border-radius: 9px;
    color: #ffffff;
    background: #4358d4;
    font-weight: 700;
    cursor: pointer;
}

.boton-principal:hover {
    background: #3548bc;
}

.mensaje-error {
    margin-bottom: 18px;
    padding: 12px 14px;
    border-radius: 9px;
    color: #9a2530;
    background: #fdecef;
    font-size: 14px;
}

@media (max-width: 900px) {
    .sidebar {
        position: static;
        width: 100%;
    }

    .contenido {
        margin-left: 0;
        padding: 22px;
    }

    .columnas {
        grid-template-columns: 1fr;
    }
}
.encabezado-acciones {
    display: flex;
    align-items: center;
    gap: 10px;
}

.boton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 10px 16px;
    border: 1px solid transparent;
    border-radius: 9px;
    font-size: 14px;
    font-weight: 650;
    cursor: pointer;
}

.boton-primario {
    color: #ffffff;
    background: #4358d4;
}

.boton-primario:hover {
    background: #3548bc;
}

.boton-secundario {
    color: #ffffff;
    background: #26334b;
}

.boton-secundario:hover {
    background: #172033;
}

.boton-suave {
    border-color: #dce1ea;
    color: #4f5a70;
    background: #ffffff;
}

.boton-suave:hover {
    background: #f3f5f8;
}

.mensajes {
    margin-bottom: 20px;
}

.mensaje {
    padding: 13px 16px;
    border-radius: 9px;
    font-size: 14px;
}

.mensaje-success {
    border: 1px solid #bce5cd;
    color: #246b43;
    background: #eaf8f0;
}

.mensaje-error {
    border: 1px solid #f1c4c9;
    color: #9a2530;
    background: #fdecef;
}

.filtros-panel {
    margin-bottom: 20px;
    padding: 20px;
}

.formulario-filtros {
    display: grid;
    grid-template-columns: minmax(250px, 1fr) 220px auto;
    gap: 16px;
    align-items: end;
}

.filtro-busqueda,
.filtro-estado {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.filtro-busqueda label,
.filtro-estado label,
.grupo-campo label {
    color: #435067;
    font-size: 13px;
    font-weight: 650;
}

.filtro-acciones {
    display: flex;
    gap: 8px;
}

.campo-control {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid #d5dbe6;
    border-radius: 9px;
    color: #172033;
    background: #ffffff;
    outline: none;
}

.campo-control:focus {
    border-color: #4358d4;
    box-shadow: 0 0 0 3px rgba(67, 88, 212, 0.12);
}

textarea.campo-control {
    resize: vertical;
}

.resultado-contador {
    display: block;
    margin-top: 5px;
    color: #788398;
    font-size: 13px;
}

.estado {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.estado-activo {
    color: #246b43;
    background: #e4f6eb;
}

.estado-prospecto {
    color: #805c14;
    background: #fff4d7;
}

.estado-inactivo {
    color: #70798b;
    background: #edf0f4;
}

.acciones-tabla {
    text-align: right;
}

.enlace-accion {
    color: #4358d4;
    font-weight: 650;
}

.enlace-accion:hover {
    text-decoration: underline;
}

.tabla-vacia {
    padding: 35px;
    color: #778196;
    text-align: center;
}

.formulario-principal {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.formulario-seccion {
    padding-bottom: 24px;
}

.formulario-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    padding: 22px;
}

.grupo-campo {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 0 22px;
}

.formulario-grid .grupo-campo {
    padding: 0;
}

.grupo-doble {
    grid-column: span 2;
}

.errorlist {
    margin: 0;
    padding: 0;
    color: #a12c37;
    font-size: 12px;
    list-style: none;
}

.formulario-acciones {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding-bottom: 25px;
}

@media (max-width: 900px) {
    .formulario-filtros {
        grid-template-columns: 1fr;
    }

    .filtro-acciones {
        justify-content: flex-start;
    }

    .formulario-grid {
        grid-template-columns: 1fr;
    }

    .grupo-doble {
        grid-column: span 1;
    }

    .encabezado {
        align-items: flex-start;
        gap: 16px;
    }

    .encabezado-acciones {
        flex-shrink: 0;
    }
}
.formulario-filtros-productos {
    grid-template-columns:
        minmax(240px, 1fr)
        minmax(170px, 220px)
        minmax(140px, 180px)
        minmax(150px, 190px)
        auto;
}

.stock-resumen {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.stock-resumen small {
    color: #7a8497;
    font-size: 11px;
}

.estado-alerta {
    color: #9b3d20;
    background: #ffeadf;
}

.campo-checkbox-contenedor {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding-top: 22px;
    padding-bottom: 22px;
}

.campo-checkbox {
    width: 18px;
    height: 18px;
    accent-color: #4358d4;
}

.campo-solo-lectura {
    min-height: 42px;
    padding: 11px 12px;
    border: 1px solid #e0e4eb;
    border-radius: 9px;
    color: #3e495d;
    background: #f2f4f7;
    font-weight: 650;
}

.texto-ayuda {
    color: #7a8497;
    font-size: 12px;
}

@media (max-width: 1150px) {
    .formulario-filtros-productos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .formulario-filtros-productos {
        grid-template-columns: 1fr;
    }
}
.tarjetas-stock {
    grid-template-columns: repeat(3, minmax(180px, 1fr));
}

.estado-sin-stock {
    color: #982633;
    background: #fde5e8;
}

@media (max-width: 700px) {
    .tarjetas-stock {
        grid-template-columns: 1fr;
    }
}
.estado-venta-borrador {
    color: #75570e;
    background: #fff2cc;
}

.estado-venta-confirmada {
    color: #246b43;
    background: #e4f6eb;
}

.estado-venta-anulada {
    color: #912d39;
    background: #fde5e8;
}

.boton-peligro {
    color: #ffffff;
    background: #b63848;
}

.boton-peligro:hover {
    background: #972b39;
}

.formulario-accion-inline {
    display: inline-flex;
    margin: 0;
}

.tabla-detalles select,
.tabla-detalles input {
    min-width: 130px;
}

.tabla-detalles select {
    min-width: 250px;
}

.celda-checkbox {
    text-align: center;
}

.detalle-ayuda {
    display: block;
    padding: 0 22px 20px;
}

.tarjetas-venta {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
}

.texto-mediano {
    font-size: 20px !important;
}

.detalle-datos {
    margin-bottom: 20px;
}

.detalle-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    padding: 22px;
}

.detalle-grid div {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.detalle-grid span,
.detalle-observaciones span {
    color: #788398;
    font-size: 12px;
    font-weight: 650;
    text-transform: uppercase;
}

.detalle-observaciones {
    padding: 0 22px 22px;
}

.detalle-observaciones p {
    margin: 7px 0 0;
    white-space: pre-line;
}

.panel-separado {
    margin-top: 20px;
}

tfoot td {
    background: #fafbfc;
}

@media (max-width: 900px) {
    .tarjetas-venta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .detalle-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .tarjetas-venta {
        grid-template-columns: 1fr;
    }
}
.pago-venta-resumen {
    margin-bottom: 20px;
}

.texto-deuda {
    color: #a12c37;
}

.texto-saldado {
    color: #246b43;
    font-weight: 700;
}
.formulario-reporte {
    display: grid;
    grid-template-columns: 220px 220px auto;
    gap: 16px;
    align-items: end;
}

.formulario-reporte .grupo-campo {
    padding: 0;
}

.reporte-error {
    grid-column: 1 / -1;
}

.periodo-reporte {
    margin: 0 0 18px;
    color: #68738a;
    font-size: 14px;
}

.tarjetas-reportes {
    grid-template-columns: repeat(3, minmax(190px, 1fr));
}

.columnas-reportes {
    margin-bottom: 20px;
}

.texto-secundario {
    display: block;
    margin-top: 3px;
    color: #7a8497;
}

@media (max-width: 900px) {
    .formulario-reporte {
        grid-template-columns: 1fr;
    }

    .tarjetas-reportes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .tarjetas-reportes {
        grid-template-columns: 1fr;
    }
}
.exportaciones-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.exportacion-tarjeta {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 230px;
    padding: 24px;
}

.exportacion-tarjeta h2 {
    margin: 0 0 10px;
    font-size: 20px;
}

.exportacion-tarjeta p {
    margin: 0;
    color: #6f7a8e;
    line-height: 1.6;
}

.exportacion-acciones {
    display: flex;
    gap: 10px;
    margin-top: 24px;
}

@media (max-width: 800px) {
    .exportaciones-grid {
        grid-template-columns: 1fr;
    }

    .exportacion-acciones {
        flex-direction: column;
    }
}
/* CRM comercial */
.tarjetas-crm { grid-template-columns: repeat(5, minmax(160px, 1fr)); }
.acciones-rapidas { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:20px; }
.acceso-crm { padding:20px; display:flex; flex-direction:column; gap:6px; }
.acceso-crm strong { font-size:18px; }
.acceso-crm span { color:#6f7a8e; font-size:13px; }
.pipeline { display:grid; grid-template-columns:repeat(6,minmax(245px,1fr)); gap:14px; overflow-x:auto; padding-bottom:12px; }
.pipeline-columna { background:#eef1f6; border-radius:14px; min-height:420px; }
.pipeline-columna header { display:flex; justify-content:space-between; gap:10px; padding:16px; border-bottom:1px solid #dfe4ec; }
.pipeline-columna h2 { margin:0; font-size:15px; }
.pipeline-columna header span { color:#788398; font-size:12px; }
.pipeline-columna header > strong { font-size:13px; }
.pipeline-tarjetas { padding:10px; display:flex; flex-direction:column; gap:10px; }
.oportunidad-card { padding:14px; border:1px solid #e0e5ed; border-radius:10px; background:white; box-shadow:0 3px 10px rgba(20,32,56,.04); display:flex; flex-direction:column; gap:7px; }
.oportunidad-card > span { color:#637087; font-size:13px; }
.oportunidad-card > div { display:flex; justify-content:space-between; align-items:center; }
.oportunidad-card small { color:#7b8597; }
.pipeline-vacio { padding:24px 12px; color:#8992a2; text-align:center; font-size:13px; }
.fila-vencida td { background:#fff1f2; }
.prioridad-alta { color:#982633; background:#fde5e8; }
.prioridad-media { color:#805c14; background:#fff4d7; }
.prioridad-baja { color:#246b43; background:#e4f6eb; }
.enlace-boton { border:0; background:transparent; color:#4358d4; font-weight:650; cursor:pointer; padding:0 0 0 8px; }
.calendario { border:1px solid #e4e8f0; border-radius:14px; overflow:hidden; background:white; }
.calendario-cabecera,.calendario-grid { display:grid; grid-template-columns:repeat(7,minmax(130px,1fr)); }
.calendario-cabecera strong { padding:12px; text-align:center; background:#f5f7fa; color:#68738a; }
.calendario-dia { min-height:150px; border-top:1px solid #e8ebf1; border-right:1px solid #e8ebf1; padding:8px; }
.calendario-hoy { background:#f3f5ff; }
.calendario-vacio { background:#fafbfc; }
.numero-dia { display:block; font-weight:700; margin-bottom:7px; }
.evento { display:block; padding:6px 7px; margin-bottom:5px; border-radius:7px; background:#e8ecff; font-size:11px; line-height:1.35; }
.evento small { display:block; color:#616d84; }
.evento-completada { background:#e4f6eb; }
.evento-cancelada { background:#edf0f4; opacity:.7; }
@media(max-width:1100px){.tarjetas-crm{grid-template-columns:repeat(2,minmax(0,1fr));}.acciones-rapidas{grid-template-columns:1fr}.calendario{overflow-x:auto}.calendario-cabecera,.calendario-grid{min-width:920px}}

/* =========================================================
   Menú lateral profesional tipo ERP
   ========================================================= */
.sidebar-toggle{position:absolute;opacity:0;pointer-events:none}.sidebar{overflow:hidden;padding:0}.sidebar-cabecera{display:flex;align-items:flex-start;justify-content:space-between;padding:26px 18px 18px;border-bottom:1px solid #2b374e;flex-shrink:0}.sidebar-cabecera .marca{padding:0}.sidebar-cerrar,.sidebar-abrir{display:none;cursor:pointer}.menu{min-height:0;overflow-y:auto;overflow-x:hidden;padding:14px 12px 18px;scrollbar-width:thin;scrollbar-color:#4f63d9 #172033}.menu::-webkit-scrollbar{width:7px}.menu::-webkit-scrollbar-track{background:#172033}.menu::-webkit-scrollbar-thumb{background:#4f63d9;border-radius:999px}.menu::-webkit-scrollbar-thumb:hover{background:#687af0}.menu-enlace,.menu-grupo summary{display:flex;align-items:center;min-height:42px;padding:10px 12px;border-radius:9px;color:#dbe2ef;cursor:pointer;user-select:none}.menu-enlace{gap:10px;margin-bottom:5px}.menu-enlace:hover,.menu-grupo summary:hover{color:#fff;background:#273249}.menu-enlace.activo{color:#fff;background:#4358d4}.menu-grupo{margin:4px 0}.menu-grupo summary{justify-content:space-between;list-style:none;font-size:13px;font-weight:700;letter-spacing:.01em}.menu-grupo summary::-webkit-details-marker{display:none}.menu-grupo summary::after{content:"›";color:#8591a7;font-size:18px;line-height:1;transform:rotate(90deg);transition:transform .2s ease}.menu-grupo:not([open]) summary::after{transform:rotate(0)}.menu-resumen-contenido{display:flex;align-items:center;gap:10px}.menu-icono{display:inline-flex;align-items:center;justify-content:center;width:20px;min-width:20px;color:#9eabd0;font-size:16px}.menu-submenu{display:flex;flex-direction:column;gap:3px;padding:4px 0 8px 30px}.menu-submenu a{position:relative;padding:9px 12px;border-radius:8px;color:#bdc7d8;font-size:13px}.menu-submenu a::before{content:"";position:absolute;top:50%;left:-10px;width:5px;height:5px;border-radius:50%;background:#57647b;transform:translateY(-50%)}.menu-submenu a:hover{color:#fff;background:#273249}.menu-submenu a.activo{color:#fff;background:#33415b;font-weight:700}.menu-submenu a.activo::before{background:#7e8dff;box-shadow:0 0 0 3px rgba(126,141,255,.16)}.usuario{flex-shrink:0;padding:15px 18px 18px;background:#131b2b}.usuario-datos{display:flex;align-items:center;gap:10px;margin-bottom:12px}.usuario-avatar{display:inline-flex!important;align-items:center;justify-content:center;width:34px;height:34px;margin:0!important;border-radius:50%;color:#fff;background:#4358d4;font-weight:800!important}.usuario-datos div{min-width:0}.usuario-datos strong,.usuario-datos small{display:block}.usuario-datos strong{overflow:hidden;color:#fff;text-overflow:ellipsis;white-space:nowrap}.usuario-datos small{margin-top:2px;color:#8f9bb0;font-size:11px}.usuario button{padding:7px 0}.encabezado-principal{display:flex;align-items:flex-start;gap:14px}.sidebar-overlay{display:none}@media(max-width:900px){.sidebar{position:fixed;z-index:1000;width:min(300px,86vw);transform:translateX(-100%);transition:transform .25s ease}.sidebar-toggle:checked~.sidebar{transform:translateX(0)}.sidebar-cerrar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;color:#dbe2ef;font-size:26px;line-height:1}.sidebar-cerrar:hover{background:#273249}.sidebar-abrir{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #dce1ea;border-radius:9px;color:#29364d;background:#fff;font-size:20px;box-shadow:0 3px 10px rgba(20,32,56,.06)}.sidebar-overlay{position:fixed;z-index:999;inset:0;background:rgba(8,14,25,.5);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.sidebar-toggle:checked~.sidebar-overlay{display:block;opacity:1;visibility:visible}.contenido{margin-left:0}}

/* Etapa 10: presupuestos */
.estado-presupuesto-borrador { color:#75570e; background:#fff2cc; }
.estado-presupuesto-enviado { color:#3152a6; background:#e6ecff; }
.estado-presupuesto-aceptado { color:#246b43; background:#e4f6eb; }
.estado-presupuesto-rechazado,.estado-presupuesto-vencido { color:#912d39; background:#fde5e8; }
.boton-whatsapp { color:#fff; background:#1fa855; }
.boton-whatsapp:hover { background:#168744; }

/* Dashboard ejecutivo */
.tarjetas-ejecutivas{grid-template-columns:repeat(3,minmax(190px,1fr))}.columnas-dashboard{grid-template-columns:minmax(0,2fr) minmax(300px,1fr)}.panel-grafico{min-height:390px}.grafico-contenedor{padding:14px 18px 18px;min-height:350px}.grafico-contenedor canvas{display:block;width:100%;max-width:100%}.lista-kpi{display:flex;flex-direction:column;padding:10px 20px 20px}.lista-kpi div{display:flex;align-items:center;justify-content:space-between;padding:14px 4px;border-bottom:1px solid #edf0f5}.lista-kpi div:last-child{border-bottom:0}.lista-kpi span{color:#68738a}.lista-kpi strong{font-size:20px}@media(max-width:1050px){.tarjetas-ejecutivas{grid-template-columns:repeat(2,minmax(0,1fr))}.columnas-dashboard{grid-template-columns:1fr}}@media(max-width:600px){.tarjetas-ejecutivas{grid-template-columns:1fr}}

/* Etapa 12: identidad corporativa, portal público y módulo agronómico */
.marca-logo { width: 58px; height: 58px; object-fit: contain; margin-bottom: 8px; border-radius: 10px; background: #fff; padding: 3px; }
.logo-configuracion { display:block; max-width:220px; max-height:180px; object-fit:contain; margin-top:10px; border:1px solid #e4e8f0; border-radius:12px; padding:8px; background:#fff; }
.tabla-presupuesto-tecnico { min-width:1250px; }
.tabla-presupuesto-tecnico select, .tabla-presupuesto-tecnico input { min-width:110px; }
.tabla-presupuesto-tecnico td:first-child select { min-width:220px; }
.enlace-publico { display:flex; gap:10px; padding:20px 22px; }
.texto-documento { padding:22px; line-height:1.65; color:#3f4b60; }
.pagina-publica { background:#eef3ed; padding:26px; }
.presupuesto-publico { width:100%; max-width:1050px; margin:0 auto; }
.publico-cabecera { display:flex; align-items:center; gap:22px; padding:22px; margin-bottom:20px; border-radius:16px; color:#fff; background:linear-gradient(135deg,#0b542f,#173d28); box-shadow:0 10px 28px rgba(11,84,47,.18); }
.publico-cabecera img { width:110px; height:110px; object-fit:contain; border-radius:12px; background:#fff; padding:5px; }
.publico-cabecera h1 { margin:0 0 7px; font-size:28px; }
.publico-cabecera p { margin:3px 0; color:#e6f0e7; }
.publico-panel { padding-bottom:10px; }
.respuesta-cliente { padding:22px; }
.respuesta-cliente h2 { margin-top:0; }
.respuesta-acciones { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.publico-pie { padding:28px; text-align:center; color:#28563d; font-weight:650; }
.respuesta-confirmacion { width:min(560px,92vw); margin:10vh auto; padding:38px; border-radius:18px; text-align:center; background:#fff; box-shadow:0 20px 60px rgba(20,50,30,.18); }
.respuesta-confirmacion img { max-width:180px; max-height:160px; object-fit:contain; }
@media(max-width:700px){.pagina-publica{padding:12px}.publico-cabecera{align-items:flex-start;flex-direction:column}.publico-cabecera img{width:90px;height:90px}.enlace-publico{flex-direction:column}}
.login-logo { width:150px; height:130px; object-fit:contain; margin:0 auto 14px; display:block; }


/* Identidad corporativa APA */
:root {
    --empresa-principal: #0B542F;
    --empresa-secundario: #91AD2C;
    --empresa-principal-oscuro: #073B22;
}
.sidebar { background: var(--empresa-principal-oscuro); }
.sidebar-cabecera { border-bottom-color: rgba(255,255,255,.14); }
.menu { scrollbar-color: var(--empresa-secundario) var(--empresa-principal-oscuro); }
.menu::-webkit-scrollbar-track { background: var(--empresa-principal-oscuro); }
.menu::-webkit-scrollbar-thumb { background: var(--empresa-secundario); }
.menu::-webkit-scrollbar-thumb:hover { background: #a8c542; }
.menu-enlace.activo { background: var(--empresa-secundario); color: #16331f; }
.menu-submenu a.activo { background: rgba(145,173,44,.24); }
.menu-submenu a.activo::before { background: var(--empresa-secundario); box-shadow: 0 0 0 3px rgba(145,173,44,.18); }
.menu-icono { color: #b8ce70; }
.usuario { background: #052d1b; }
.usuario-avatar, .boton-primario, .boton-principal { background: var(--empresa-principal); }
.boton-primario:hover, .boton-principal:hover { background: var(--empresa-principal-oscuro); }
.enlace-accion, .panel-titulo a { color: var(--empresa-principal); }
.campo-control:focus, .campo input:focus { border-color: var(--empresa-secundario); box-shadow: 0 0 0 3px rgba(145,173,44,.18); }
.pagina-login { background: linear-gradient(135deg, var(--empresa-principal-oscuro), var(--empresa-principal)); }
.publico-cabecera { background: linear-gradient(135deg, var(--empresa-principal), var(--empresa-principal-oscuro)); }
.publico-pie { color: var(--empresa-principal); }
.marca-enlace { color: inherit; text-decoration: none; }
.marca-enlace:hover .marca-titulo { color: #d8e89d; }
.marca-logo { transition: transform .2s ease; }
.marca-enlace:hover .marca-logo { transform: scale(1.04); }
#compartir-presupuesto:disabled { opacity:.65; cursor:wait; }

/* Acciones de borrado seguro */
.formulario-eliminar {
    display: inline-flex;
    margin-left: 8px;
}

.enlace-eliminar {
    padding: 0;
    border: 0;
    color: #b42318;
    background: transparent;
    font: inherit;
    font-weight: 650;
    cursor: pointer;
}

.enlace-eliminar:hover {
    color: #8f1710;
    text-decoration: underline;
}

/* Etapa 14: mapa comercial y rutas */
.mapa-panel { overflow: hidden; }
.mapa-grande { height: 560px; width: 100%; z-index: 1; }
.mapa-ruta { height: 420px; width: 100%; z-index: 1; }
.tabla-rutas select { min-width: 190px; }
.tabla-rutas input[type="number"] { min-width: 75px; }
.tabla-rutas input[type="time"] { min-width: 110px; }
.estado-ruta-planificada { color:#75570e; background:#fff2cc; }
.estado-ruta-en_curso { color:#174f79; background:#e1f1fb; }
.estado-ruta-completada { color:#246b43; background:#e4f6eb; }
.estado-ruta-cancelada { color:#912d39; background:#fde5e8; }
.fila-completada td { background:#f1faf4; }
@media(max-width:700px){.mapa-grande{height:430px}.mapa-ruta{height:360px}}

.mensaje-warning {
    border: 1px solid #efd493;
    color: #75570e;
    background: #fff7df;
    margin-bottom: 20px;
}

/* Etapa 17.2 - Análisis de agua inteligente */
.riesgo-alto { color:#8f1d2c; background:#fde5e8; }
.riesgo-medio { color:#805c14; background:#fff4d7; }
.riesgo-bajo { color:#246b43; background:#e4f6eb; }
.tarjeta small { display:block; margin-top:7px; color:#778196; font-size:12px; }

/* Etapa 17.3 - motor de recomendaciones */
.recomendacion-panel { margin-bottom: 18px; }
.recomendacion-contenido { padding: 22px; line-height: 1.6; }
.recomendacion-contenido p { margin: 0 0 12px; }
.recomendacion-contenido .mensaje { margin-top: 14px; }

/* Etapa 17.6 - Inteligencia comercial */
.tarjetas-resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px}.tarjeta{background:#fff;border:1px solid #dfe7df;border-radius:14px;padding:18px;box-shadow:0 4px 14px rgba(20,60,35,.06)}.tarjeta span,.tarjeta small{display:block;color:#647067}.tarjeta strong{display:block;font-size:1.65rem;margin:6px 0;color:#173d25}.grilla-dos-columnas{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:20px}.panel{background:#fff;border:1px solid #dfe7df;border-radius:14px;padding:18px;margin-bottom:18px}.panel-cabecera{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.panel-cabecera h2{margin:0;font-size:1.1rem}.item-lista{padding:12px 0;border-bottom:1px solid #edf1ed}.item-lista:last-child{border-bottom:0}.item-lista strong,.item-lista span{display:block}.item-lista span{color:#68736b;font-size:.92rem;margin-top:4px}.ficha-datos{display:grid;grid-template-columns:150px 1fr;gap:10px 16px}.ficha-datos dt{font-weight:700;color:#516057}.ficha-datos dd{margin:0}.estado-peligro{background:#fde8e7;color:#a92d27}.estado-advertencia{background:#fff2cc;color:#8b6410}.estado-exito{background:#e3f4e6;color:#246b32}@media(max-width:950px){.grilla-dos-columnas{grid-template-columns:1fr}}
/* Etapas 17.4 y 17.5 */
.tarjetas-resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}.tarjetas-resumen article{background:#fff;border:1px solid #dfe5df;border-radius:12px;padding:16px}.tarjetas-resumen small{display:block;color:#68756c;margin-bottom:6px}.tarjetas-resumen strong{font-size:1.35rem}.prescripcion-items{display:grid;gap:12px}.item-prescripcion{padding:12px;margin:0}.campo-ancho{grid-column:1/-1}@media print{.sidebar,.encabezado-acciones,.sidebar-overlay,.sidebar-toggle{display:none!important}.contenido{margin:0!important}.panel{box-shadow:none;border:1px solid #bbb}}

.camp-kpis{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:14px;margin:0 0 18px}.camp-kpis>div{background:#fff;border:1px solid #dfe7e2;border-radius:14px;padding:18px;box-shadow:0 4px 14px rgba(0,0,0,.04)}.camp-kpis small{display:block;color:#68756d;margin-bottom:8px}.camp-kpis strong{font-size:1.5rem}.camp-estado{display:inline-block;padding:5px 9px;border-radius:999px;background:#eef2ef;font-size:.84rem}.camp-convertido{background:#dff4e7;color:#145c31}.camp-interesado,.camp-cotizado{background:#fff3cd;color:#6b5200}.camp-no_interesado{background:#f8d7da;color:#842029}.enlace-boton{border:0;background:none;color:var(--empresa-principal);text-decoration:underline;cursor:pointer;padding:0;margin-left:8px}@media(max-width:900px){.camp-kpis{grid-template-columns:repeat(2,1fr)}}

/* =========================================================
   ETAPA 19.2.1 - BASE RESPONSIVE GLOBAL
   ========================================================= */
html { -webkit-text-size-adjust: 100%; }
body { overflow-x: hidden; }
img, svg, video, canvas { max-width: 100%; height: auto; }
iframe { max-width: 100%; }
select, textarea, input, button { max-width: 100%; }

.contenido { width: auto; min-width: 0; }
.contenido > * { min-width: 0; }
.panel, .tarjeta, .formulario-seccion, .filtros-panel { min-width: 0; }

/* Las tablas nunca deben romper el ancho de la pantalla. */
.tabla-contenedor,
.responsive-table-wrapper {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.responsive-table-wrapper > table { min-width: 680px; }
.tabla-contenedor > table { min-width: 680px; }
table { max-width: 100%; }
th, td { overflow-wrap: anywhere; }

/* Controles táctiles y accesibles. */
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea,
button,
.boton {
    min-height: 44px;
}
input[type="checkbox"], input[type="radio"] { min-width: 20px; min-height: 20px; }

.encabezado { min-width: 0; }
.encabezado-principal { min-width: 0; }
.encabezado-principal > div { min-width: 0; }
.encabezado h1 { overflow-wrap: anywhere; }
.encabezado-acciones { flex-wrap: wrap; justify-content: flex-end; }
.formulario-acciones, .filtro-acciones { flex-wrap: wrap; }

/* Grillas genéricas resistentes a contenidos largos. */
.tarjetas,
.tarjetas-resumen,
.camp-kpis,
.formulario-grid,
.detalle-grid,
.columnas,
.grilla-dos-columnas { min-width: 0; }
.tarjetas > *,
.tarjetas-resumen > *,
.camp-kpis > *,
.formulario-grid > *,
.detalle-grid > *,
.columnas > *,
.grilla-dos-columnas > * { min-width: 0; }

/* Mejora de formularios largos. */
.formulario-grid input,
.formulario-grid select,
.formulario-grid textarea,
.formulario-principal input,
.formulario-principal select,
.formulario-principal textarea { width: 100%; }
.helptext, .texto-ayuda { overflow-wrap: anywhere; }

@media (max-width: 1100px) {
    .contenido { padding: 24px; }
    .encabezado { gap: 18px; }
    .camp-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    body { font-size: 15px; }
    .contenido { padding: 18px; }
    .encabezado {
        flex-direction: column;
        align-items: stretch;
        margin-bottom: 20px;
    }
    .encabezado-acciones {
        width: 100%;
        justify-content: flex-start;
    }
    .encabezado-acciones .boton,
    .encabezado-acciones button,
    .encabezado-acciones a { flex: 1 1 180px; }
    .panel-titulo, .panel-cabecera {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 10px;
    }
    .formulario-filtros,
    .formulario-filtros-productos { grid-template-columns: 1fr !important; }
    .columnas,
    .grilla-dos-columnas,
    .detalle-grid,
    .formulario-grid { grid-template-columns: 1fr !important; }
    .grupo-doble, .campo-ancho { grid-column: 1 !important; }
    .camp-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mapa-grande, .mapa-ruta { max-height: 58vh; }
}

@media (max-width: 640px) {
    .contenido { padding: 12px; padding-bottom: 24px; }
    .encabezado-principal { align-items: center; }
    .encabezado h1 { font-size: clamp(1.35rem, 7vw, 1.75rem); line-height: 1.15; }
    .encabezado p { font-size: 0.92rem; }
    .encabezado-acciones { display: grid; grid-template-columns: 1fr; }
    .encabezado-acciones .boton,
    .encabezado-acciones button,
    .encabezado-acciones a { width: 100%; }
    .tarjetas,
    .tarjetas-stock,
    .tarjetas-venta,
    .tarjetas-resumen,
    .camp-kpis { grid-template-columns: 1fr !important; gap: 12px; }
    .tarjeta { padding: 16px; }
    .panel { border-radius: 11px; }
    .panel-titulo, .panel-cabecera, .formulario-grid { padding: 16px; }
    .grupo-campo { padding-left: 16px; padding-right: 16px; }
    .formulario-acciones {
        position: sticky;
        bottom: 0;
        z-index: 15;
        margin: 0 -12px -12px;
        padding: 12px;
        border-top: 1px solid #dfe5df;
        background: rgba(244, 246, 250, 0.96);
        backdrop-filter: blur(8px);
    }
    .formulario-acciones .boton,
    .formulario-acciones button,
    .formulario-acciones a { flex: 1 1 100%; width: 100%; }
    .filtro-acciones { display: grid; grid-template-columns: 1fr; }
    .filtro-acciones .boton,
    .filtro-acciones button,
    .filtro-acciones a { width: 100%; }
    .responsive-table-wrapper > table,
    .tabla-contenedor > table { min-width: 620px; }
    th, td { padding: 12px 14px; }
    .login-tarjeta { padding: 24px 18px; }
    .pagina-login { padding: 14px; }
    .mapa-grande, .mapa-ruta { height: 360px; max-height: 55vh; }
}

@media (max-width: 380px) {
    .contenido { padding: 10px; }
    .sidebar { width: 92vw; }
    .boton, button { padding-left: 12px; padding-right: 12px; }
}

/* =========================================================
   ETAPA 19.2.2 - MENÚ MÓVIL OPTIMIZADO
   ========================================================= */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.menu-buscador {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 7px;
    margin: 0 0 13px;
    padding: 0 2px;
}
.menu-buscador-icono {
    position: absolute;
    top: 50%;
    left: 14px;
    z-index: 1;
    color: #9eabd0;
    font-size: 18px;
    transform: translateY(-50%);
    pointer-events: none;
}
.menu-buscador input {
    width: 100%;
    min-width: 0;
    height: 42px;
    min-height: 42px;
    padding: 8px 10px 8px 38px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 10px;
    color: #fff;
    background: rgba(255,255,255,.09);
    outline: none;
}
.menu-buscador input::placeholder { color: #b9c3d3; }
.menu-buscador input:focus {
    border-color: var(--empresa-secundario);
    box-shadow: 0 0 0 3px rgba(145,173,44,.18);
}
.menu-buscador button {
    min-height: 42px;
    padding: 7px 11px;
    border: 0;
    border-radius: 10px;
    color: #17351f;
    background: var(--empresa-secundario);
    font-weight: 800;
    cursor: pointer;
}
.encabezado-marca-movil { display: none; }

@media (max-width: 900px) {
    body.menu-movil-abierto { overflow: hidden; touch-action: none; }
    .sidebar {
        display: flex;
        flex-direction: column;
        height: 100dvh;
        max-height: 100dvh;
        box-shadow: 18px 0 45px rgba(0,0,0,.24);
    }
    .sidebar-cabecera {
        padding-top: max(18px, env(safe-area-inset-top));
    }
    .menu {
        flex: 1 1 auto;
        overscroll-behavior: contain;
        padding-bottom: 22px;
    }
    .usuario {
        padding-bottom: max(16px, env(safe-area-inset-bottom));
    }
    .menu-enlace,
    .menu-grupo summary { min-height: 48px; }
    .menu-submenu a {
        min-height: 44px;
        display: flex;
        align-items: center;
    }
    .sidebar-abrir {
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        position: sticky;
        top: 10px;
        z-index: 40;
    }
    .sidebar-toggle:checked ~ .contenido .sidebar-abrir { visibility: hidden; }
}

@media (max-width: 640px) {
    .encabezado {
        position: relative;
        padding-top: 3px;
    }
    .encabezado-principal {
        display: grid;
        grid-template-columns: 44px minmax(0, 1fr);
        width: 100%;
        gap: 10px;
    }
    .encabezado-marca-movil {
        display: flex;
        align-items: center;
        min-width: 0;
        height: 44px;
        gap: 9px;
        padding: 5px 8px;
        border: 1px solid #e1e6e1;
        border-radius: 10px;
        color: var(--empresa-principal);
        background: #fff;
        text-decoration: none;
        font-size: .82rem;
        font-weight: 800;
        box-shadow: 0 3px 10px rgba(20,60,35,.05);
    }
    .encabezado-marca-movil img {
        width: 31px;
        height: 31px;
        object-fit: contain;
        border-radius: 7px;
    }
    .encabezado-marca-movil span {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .encabezado-titulos {
        grid-column: 1 / -1;
        padding-top: 5px;
    }
    .sidebar { width: min(330px, 92vw); }
    .sidebar-cabecera .marca-titulo { font-size: 1rem; }
    .sidebar-cabecera .marca-subtitulo { font-size: .75rem; }
    .menu-buscador { position: sticky; top: -14px; z-index: 4; padding: 10px 2px 8px; background: var(--empresa-principal-oscuro); }
}


/* Etapa 19.2.3 - Dashboard Mobile Pro y vistas separadas */
.selector-vista{display:flex;gap:.35rem;padding:.25rem;border:1px solid var(--borde,#dfe4ec);border-radius:12px;background:#fff}.vista-btn{border:0;background:transparent;border-radius:9px;padding:.55rem .75rem;cursor:pointer;color:#657188;font-weight:600}.vista-btn.activo{background:#eef1ff;color:#3246b8}.tarjetas-dashboard-pro{grid-template-columns:repeat(3,minmax(0,1fr))}.tarjetas-dashboard-pro .tarjeta small{display:block;margin-top:.5rem;color:#758096}.acciones-rapidas-grid{display:flex;flex-wrap:wrap;gap:.65rem}.lista-alertas{display:grid;gap:.55rem}.lista-alertas a{display:flex;justify-content:space-between;align-items:center;padding:.8rem 0;border-bottom:1px solid #edf0f5;color:inherit;text-decoration:none}.lista-alertas strong{font-size:1.05rem}.lista-kpi span small{display:block;color:#7a8498;margin-top:.25rem}.dashboard-movil{display:none}.saludo-movil{padding:1rem 1rem 1.15rem;border-radius:18px;background:linear-gradient(135deg,#2e43b7,#5570e5);color:#fff;margin-bottom:1rem}.saludo-movil p{margin:0 0 .3rem;opacity:.88}.saludo-movil h2{margin:0 0 1rem;font-size:1.45rem}.resumen-dia{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.resumen-dia span{background:rgba(255,255,255,.13);border-radius:12px;padding:.65rem .4rem;text-align:center;font-size:.78rem}.resumen-dia strong{display:block;font-size:1.2rem}.kpis-movil{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.kpi-movil{display:flex;flex-direction:column;min-height:116px;padding:1rem;border:1px solid #e5e8ef;border-radius:16px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 4px 14px rgba(32,43,76,.06)}.kpi-movil span{font-size:.8rem;color:#6b7588}.kpi-movil strong{font-size:1.4rem;margin:.35rem 0;line-height:1.1}.kpi-movil small{margin-top:auto;color:#8991a1}.acciones-movil{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem;margin-bottom:1rem}.acciones-movil a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;min-height:76px;border-radius:14px;background:#fff;border:1px solid #e5e8ef;text-decoration:none;color:#3d4a62;font-size:1.35rem}.acciones-movil span{font-size:.7rem;font-weight:700;text-align:center}.panel-movil{padding:0;margin-bottom:1rem;overflow:hidden}.panel-movil .panel-titulo{padding:1rem 1rem .65rem}.lista-movil{display:grid}.item-movil{display:flex;justify-content:space-between;gap:.75rem;padding:.9rem 1rem;border-top:1px solid #edf0f5;text-decoration:none;color:inherit}.item-movil div{min-width:0}.item-movil strong,.item-movil span{display:block}.item-movil strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-movil span{font-size:.78rem;color:#6f788b;margin-top:.2rem}.item-movil time{white-space:nowrap;font-size:.75rem;color:#657188}.item-alerta{border-left:4px solid #c44;background:#fff7f7}.alertas-movil{display:grid;padding:0 1rem 1rem}.alertas-movil a{display:flex;justify-content:space-between;padding:.75rem 0;border-top:1px solid #edf0f5;text-decoration:none;color:inherit}.alertas-movil strong{background:#fff0ef;color:#a6322a;border-radius:999px;min-width:28px;text-align:center;padding:.15rem .45rem}.estado-vacio-movil{padding:1rem;color:#7a8495;text-align:center}
html[data-dashboard-mode="mobile"] .dashboard-escritorio{display:none!important}html[data-dashboard-mode="mobile"] .dashboard-movil{display:block!important}html[data-dashboard-mode="desktop"] .dashboard-escritorio{display:block!important}html[data-dashboard-mode="desktop"] .dashboard-movil{display:none!important}
@media(max-width:900px){html[data-dashboard-mode="auto"] .dashboard-escritorio{display:none}html[data-dashboard-mode="auto"] .dashboard-movil{display:block}.selector-vista{width:100%;overflow:auto}.vista-btn{flex:1;white-space:nowrap}.encabezado-acciones{width:100%}}
@media(min-width:901px){html[data-dashboard-mode="auto"] .dashboard-escritorio{display:block}html[data-dashboard-mode="auto"] .dashboard-movil{display:none}}
@media(max-width:1100px){.tarjetas-dashboard-pro{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.kpis-movil{grid-template-columns:1fr 1fr;gap:.55rem}.kpi-movil{padding:.8rem;min-height:108px}.kpi-movil strong{font-size:1.2rem}.acciones-movil{gap:.4rem}.acciones-movil a{min-height:70px}.resumen-dia{gap:.35rem}}

/* Etapa 19.2.4 - CRM móvil y ficha del productor */
.acciones-encabezado-clientes{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}.interfaz-movil{display:none}.clientes-movil-cabecera{display:flex;justify-content:space-between;gap:.75rem;align-items:end;margin:.25rem 0 .8rem}.clientes-movil-cabecera span{font-size:.78rem;color:#778195}.clientes-tarjetas{display:grid;gap:.8rem}.cliente-tarjeta{overflow:hidden;border:1px solid #e3e8ee;border-radius:17px;background:#fff;box-shadow:0 5px 16px rgba(35,48,78,.06)}.cliente-tarjeta-principal{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:1rem;color:inherit;text-decoration:none}.cliente-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#344bbf,#6b7fe4);color:#fff;font-weight:800;font-size:1.05rem}.cliente-avatar-grande{width:58px;height:58px;border-radius:18px;font-size:1.35rem}.cliente-identidad{min-width:0}.cliente-identidad strong,.cliente-identidad span,.cliente-identidad small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cliente-identidad span{margin-top:.18rem;color:#566176;font-size:.84rem}.cliente-identidad small{margin-top:.2rem;color:#8992a2}.cliente-datos-rapidos{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 1rem .8rem;color:#647086;font-size:.78rem}.cliente-datos-rapidos span{padding:.25rem .5rem;border-radius:999px;background:#f3f5f8}.cliente-acciones-movil{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid #edf0f4}.cliente-acciones-movil a,.ficha360-acciones-principales a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.18rem;min-height:65px;padding:.45rem .2rem;border-right:1px solid #edf0f4;color:#455069;text-decoration:none}.cliente-acciones-movil a:last-child,.ficha360-acciones-principales a:last-child{border-right:0}.cliente-acciones-movil b,.ficha360-acciones-principales b{font-size:1.15rem}.cliente-acciones-movil span,.ficha360-acciones-principales span{font-size:.67rem;font-weight:700}.ficha360-portada-movil{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:1rem;border-radius:18px;background:linear-gradient(135deg,#263e9e,#5670dc);color:#fff;margin-bottom:.75rem}.ficha360-portada-movil h2{margin:0;font-size:1.15rem}.ficha360-portada-movil p,.ficha360-portada-movil span{margin:.15rem 0 0;font-size:.78rem;opacity:.9}.ficha360-portada-movil>.estado{color:#24314f;background:#fff;opacity:1}.ficha360-acciones-principales{display:grid;grid-template-columns:repeat(5,1fr);overflow:hidden;border:1px solid #e3e8ee;border-radius:15px;background:#fff;margin-bottom:.75rem}.ficha360-kpis-movil{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem;margin-bottom:.75rem}.ficha360-kpis-movil article{display:flex;flex-direction:column;min-height:102px;padding:.85rem;border:1px solid #e3e8ee;border-radius:15px;background:#fff}.ficha360-kpis-movil span{font-size:.72rem;color:#6e798e}.ficha360-kpis-movil strong{font-size:1.22rem;margin:.3rem 0}.ficha360-kpis-movil small{margin-top:auto;color:#8a93a3}.ficha360-bloque-movil{margin-bottom:.75rem}.ficha360-bloque-movil .f360-alerta{margin:.6rem .8rem}.ficha360-datos-movil{display:grid;grid-template-columns:1fr 1fr;padding:0 .9rem .9rem;gap:.6rem}.ficha360-datos-movil p{margin:0;padding:.7rem;border-radius:11px;background:#f6f7fa}.ficha360-datos-movil span,.ficha360-datos-movil strong{display:block}.ficha360-datos-movil span{font-size:.68rem;color:#7a8497;text-transform:uppercase}.ficha360-datos-movil strong{margin-top:.25rem;font-size:.84rem;overflow-wrap:anywhere}
html[data-interface-mode="mobile"] .interfaz-escritorio{display:none!important}html[data-interface-mode="mobile"] .interfaz-movil{display:block!important}html[data-interface-mode="desktop"] .interfaz-escritorio{display:block!important}html[data-interface-mode="desktop"] .interfaz-movil{display:none!important}
@media(max-width:900px){html[data-interface-mode="auto"] .interfaz-escritorio{display:none}html[data-interface-mode="auto"] .interfaz-movil{display:block}.acciones-encabezado-clientes{width:100%;display:grid;grid-template-columns:1fr}.acciones-encabezado-clientes>.boton{width:100%}.selector-interfaz{width:100%}.clientes-filtros{position:sticky;top:0;z-index:12}.clientes-filtros .formulario-filtros{gap:.55rem}.clientes-filtros label{display:none}}
@media(min-width:901px){html[data-interface-mode="auto"] .interfaz-escritorio{display:block}html[data-interface-mode="auto"] .interfaz-movil{display:none}}
@media(max-width:420px){.cliente-tarjeta-principal{grid-template-columns:auto minmax(0,1fr)}.cliente-tarjeta-principal>.estado{grid-column:2;justify-self:start}.cliente-acciones-movil,.ficha360-acciones-principales{grid-template-columns:repeat(5,1fr)}.cliente-acciones-movil a,.ficha360-acciones-principales a{min-height:61px}.ficha360-datos-movil{grid-template-columns:1fr}.clientes-movil-cabecera{display:block}.clientes-movil-cabecera span{display:block;margin-top:.2rem}}

/* Etapa 19.2.5 - Formularios móviles inteligentes */
.formulario-inteligente{position:relative}.formulario-progreso{position:sticky;top:0;z-index:15;margin-bottom:.85rem;padding:.75rem .9rem;border:1px solid #dfe5ed;border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 4px 14px rgba(30,43,73,.06);backdrop-filter:blur(8px)}.formulario-progreso-cabecera{display:flex;justify-content:space-between;gap:.75rem;align-items:center;font-size:.78rem;color:#657188}.formulario-progreso-cabecera strong{color:#354056}.formulario-progreso-barra{height:7px;margin-top:.55rem;overflow:hidden;border-radius:999px;background:#edf0f4}.formulario-progreso-barra span{display:block;width:0;height:100%;border-radius:inherit;background:var(--empresa-principal);transition:width .25s ease}.validacion-inmediata{display:block;min-height:1.1em;margin-top:.28rem;font-size:.72rem;color:#7b8596}.grupo-campo.campo-valido .validacion-inmediata{color:#218249}.grupo-campo.campo-invalido .validacion-inmediata{color:#b43832}.grupo-campo.campo-invalido input,.grupo-campo.campo-invalido select,.grupo-campo.campo-invalido textarea{border-color:#c94c45!important;box-shadow:0 0 0 3px rgba(201,76,69,.1)}.grupo-campo.campo-valido input,.grupo-campo.campo-valido select,.grupo-campo.campo-valido textarea{border-color:#52a66f}.estado-borrador{position:fixed;right:1rem;bottom:1rem;z-index:80;transform:translateY(130%);padding:.7rem .9rem;border-radius:11px;background:#26334a;color:#fff;font-size:.78rem;box-shadow:0 8px 24px rgba(0,0,0,.2);opacity:0;transition:.25s ease}.estado-borrador.visible{transform:translateY(0);opacity:1}.guardar-flotante-movil,.seccion-movil-toggle{display:none}
@media(max-width:900px){body:has(.guardar-flotante-movil){padding-bottom:84px}.formulario-inteligente .formulario-grid{grid-template-columns:1fr!important;gap:.75rem}.formulario-inteligente .grupo-doble,.formulario-inteligente .grupo-triple{grid-column:auto!important}.formulario-inteligente input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),.formulario-inteligente select,.formulario-inteligente textarea{width:100%;min-height:48px;font-size:16px!important;border-radius:12px}.formulario-inteligente textarea{min-height:110px}.formulario-inteligente label{font-size:.8rem;font-weight:700}.formulario-inteligente .formulario-acciones{padding-bottom:1rem}.guardar-flotante-movil{position:fixed;display:flex;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));z-index:70;align-items:center;justify-content:center;gap:.55rem;min-height:54px;border:0;border-radius:16px;background:var(--empresa-principal);color:#fff;box-shadow:0 12px 28px rgba(7,59,34,.3);font-size:1rem;cursor:pointer}.guardar-flotante-movil span{font-size:1.25rem}.seccion-movil-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.75rem;margin:0 0 .7rem;padding:.75rem .2rem;border:0;border-bottom:1px solid #e8ebf0;background:transparent;color:#354056;text-align:left;font-weight:800;font-size:.95rem}.seccion-movil-toggle b{transition:transform .2s ease}.formulario-seccion.seccion-plegada>.seccion-movil-toggle b{transform:rotate(-90deg)}.formulario-seccion.seccion-plegada>:not(.seccion-movil-toggle){display:none!important}.formulario-progreso{top:66px}.estado-borrador{right:12px;bottom:78px}.formulario-inteligente .errorlist{margin:.3rem 0 0;padding-left:1rem;font-size:.75rem}.formulario-inteligente [required]+.validacion-inmediata:empty::after{content:"Obligatorio";color:#8b93a1}.formulario-inteligente input:focus,.formulario-inteligente select:focus,.formulario-inteligente textarea:focus{scroll-margin-top:145px}}
@media(max-width:420px){.formulario-progreso-cabecera{align-items:flex-start;flex-direction:column;gap:.2rem}.guardar-flotante-movil{min-height:52px}}


/* ETAPA 19.2.6 - PRESUPUESTOS Y VENTAS MÓVILES */
.listado-movil,.accion-flotante-movil,.resumen-presupuesto-movil{display:none}
@media (max-width:900px){
 .listado-escritorio{display:none!important}.listado-movil{display:block}.solo-escritorio{display:none!important}
 .listado-movil-cabecera{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px;gap:12px}
 .tarjeta-registro-movil{background:#fff;border:1px solid var(--borde,#dfe5e1);border-radius:16px;margin-bottom:12px;box-shadow:0 5px 18px rgba(0,0,0,.05);overflow:hidden}
 .tarjeta-registro-enlace{display:block;padding:16px;color:inherit;text-decoration:none}
 .tarjeta-registro-superior{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.tarjeta-registro-superior h3{font-size:1.04rem;margin:4px 0 0}.registro-numero{font-size:.78rem;font-weight:800;opacity:.65;text-transform:uppercase;letter-spacing:.04em}
 .tarjeta-registro-datos{display:flex;flex-wrap:wrap;gap:8px 16px;margin:14px 0;font-size:.88rem;opacity:.78}
 .tarjeta-registro-total{display:flex;align-items:flex-end;justify-content:space-between;border-top:1px solid #edf1ee;padding-top:12px}.tarjeta-registro-total strong{font-size:1.25rem}.tarjeta-registro-total small{opacity:.7}
 .tarjeta-registro-acciones{display:flex;gap:8px;padding:10px 16px 14px;background:#f8faf9}.tarjeta-registro-acciones .boton{flex:1;text-align:center;justify-content:center}
 .accion-flotante-movil{display:flex;position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));width:58px;height:58px;align-items:center;justify-content:center;border-radius:50%;background:var(--color-primario,#256b42);color:#fff;text-decoration:none;font-size:2rem;line-height:1;z-index:50;box-shadow:0 8px 24px rgba(0,0,0,.25)}
 .estado-vacio-movil{padding:28px;text-align:center;background:#fff;border-radius:16px;display:grid;gap:6px}
 .detalles-presupuesto-movil{display:block}.producto-form-movil{background:#fff;border:1px solid #dfe5e1;border-radius:16px;padding:15px;margin-bottom:14px}.producto-form-numero{font-weight:800;margin-bottom:12px;color:var(--color-primario,#256b42)}
 .producto-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.producto-form-pie{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e8ece9;margin-top:12px;padding-top:12px}.producto-form-pie strong{font-size:1.1rem}.eliminar-linea{font-size:.82rem;color:#a22323}
 .resumen-presupuesto-movil{display:grid;position:sticky;bottom:0;z-index:20;background:#13291e;color:#fff;border-radius:16px 16px 0 0;padding:12px 16px;margin:10px -4px 0;box-shadow:0 -5px 20px rgba(0,0,0,.18);grid-template-columns:1fr 1fr;gap:6px 18px}.resumen-presupuesto-movil div{display:flex;justify-content:space-between;gap:8px;font-size:.84rem}.resumen-presupuesto-movil .resumen-total{grid-column:1/-1;font-size:1.05rem;border-top:1px solid rgba(255,255,255,.25);padding-top:8px}.resumen-presupuesto-movil .resumen-total strong{font-size:1.25rem}
 .venta-importes-movil{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid #edf1ee;padding-top:12px}.venta-importes-movil div{display:grid;gap:3px}.venta-importes-movil div:last-child{text-align:right}.venta-importes-movil small{opacity:.65}.venta-importes-movil strong{font-size:1.08rem}
}
@media (max-width:520px){.producto-form-grid{grid-template-columns:1fr 1fr}.filtros-panel .formulario-filtros{grid-template-columns:1fr}.tarjeta-registro-superior .estado{font-size:.72rem}}

/* Etapa 19.2.7 — Agenda Comercial Inteligente */
.agenda-cabecera{align-items:flex-start}.agenda-etapa{display:inline-block;margin-bottom:.45rem;padding:.28rem .58rem;border-radius:999px;background:color-mix(in srgb,var(--empresa-principal) 12%,white);color:var(--empresa-principal);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.agenda-acciones-cabecera{display:flex;gap:.55rem;flex-wrap:wrap}.agenda-filtros{margin-bottom:1rem}.agenda-filtros-grid{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(160px,1fr) auto auto;gap:.75rem;align-items:end}.agenda-filtros label>span{display:block;margin-bottom:.28rem;font-size:.78rem;font-weight:700;color:#576176}.agenda-check{display:flex!important;align-items:center;gap:.45rem;padding-bottom:.72rem}.agenda-check span{margin:0!important}.agenda-filtro-botones{display:flex;gap:.45rem}.agenda-metricas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}.agenda-metrica{display:flex;flex-direction:column;text-decoration:none!important}.agenda-metrica small{font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#687287}.agenda-metrica strong{font-size:2rem;line-height:1.1;color:#263044}.agenda-metrica span{font-size:.78rem;color:#798296}.agenda-metrica-alerta{border-left:4px solid #c7463d}.agenda-seccion{margin-bottom:1rem;scroll-margin-top:1rem}.agenda-seccion-titulo{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.agenda-seccion-titulo p{margin:.2rem 0 0;color:#727c8d}.agenda-actividades,.agenda-sugerencias{display:grid;gap:.7rem}.agenda-actividad{display:grid;grid-template-columns:66px minmax(0,1fr) auto;gap:.85rem;align-items:center;padding:.85rem;border:1px solid #e1e5eb;border-radius:14px;background:#fff}.agenda-actividad-vencida{border-left:4px solid #c7463d;background:#fffafa}.agenda-fecha{display:flex;flex-direction:column;align-items:center;padding:.42rem;border-radius:12px;background:#f3f5f8}.agenda-fecha strong{font-size:1.35rem}.agenda-fecha span{font-size:.72rem;text-transform:uppercase}.agenda-fecha small{font-weight:800;color:var(--empresa-principal)}.agenda-actividad-titulo,.agenda-sugerencia-cabecera{display:flex;justify-content:space-between;gap:.7rem;align-items:flex-start}.agenda-actividad h3,.agenda-sugerencia h3{margin:0;font-size:1rem}.agenda-actividad p,.agenda-sugerencia p{margin:.25rem 0;color:#677185}.agenda-actividad-acciones,.agenda-actividad-acciones form,.agenda-agendar-form{display:flex;gap:.4rem;flex-wrap:wrap}.agenda-sugerencia{display:grid;grid-template-columns:78px minmax(0,1fr);gap:.9rem;padding:1rem;border:1px solid #e1e5eb;border-radius:16px;background:#fff}.agenda-score{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:76px;border-radius:14px;background:#eef2f5}.agenda-score strong{font-size:1.7rem}.agenda-score small{font-size:.65rem;font-weight:900;letter-spacing:.05em}.agenda-score-critica{background:#fde9e7;color:#a92e27}.agenda-score-alta{background:#fff0d9;color:#9b5a00}.agenda-score-media{background:#e9f2ff;color:#245b97}.agenda-asunto{padding:.55rem .7rem;border-radius:10px;background:#f6f8fa}.agenda-motivos{display:flex;gap:.35rem;flex-wrap:wrap;margin:.55rem 0}.agenda-motivos span{padding:.25rem .48rem;border-radius:999px;background:#edf1f5;font-size:.72rem;color:#525d70}.agenda-vacia{padding:1.2rem;text-align:center;color:#697386;background:#f7f8fa;border-radius:14px}.agenda-vacia p{margin:.3rem 0 0}
@media(max-width:980px){.agenda-filtros-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.agenda-metricas{grid-template-columns:repeat(2,minmax(0,1fr))}.agenda-actividad{grid-template-columns:58px minmax(0,1fr)}.agenda-actividad-acciones{grid-column:1/-1;padding-left:66px}}
@media(max-width:640px){.agenda-cabecera,.agenda-seccion-titulo{display:block}.agenda-acciones-cabecera{margin-top:.7rem}.agenda-filtros-grid,.agenda-metricas{grid-template-columns:1fr}.agenda-actividad,.agenda-sugerencia{grid-template-columns:1fr}.agenda-fecha{flex-direction:row;justify-content:flex-start;gap:.35rem}.agenda-actividad-acciones{padding-left:0}.agenda-score{min-height:auto;flex-direction:row;gap:.5rem;padding:.55rem}.agenda-agendar-form .boton,.agenda-actividad-acciones .boton{flex:1}}

/* Etapa 19.2.8 — Inteligencia Comercial Predictiva */
.predictiva-cabecera{align-items:flex-start}.predictiva-lista{display:grid;gap:1rem}.predictiva-tarjeta{display:grid;grid-template-columns:92px 1fr;gap:1rem;padding:1rem;border:1px solid var(--borde, #dfe5e2);border-radius:16px;background:var(--fondo-tarjeta, #fff)}.predictiva-contenido{min-width:0}.predictiva-accion{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;padding:.8rem 1rem;margin:.75rem 0;border-radius:12px;background:rgba(33,94,72,.07)}.predictiva-accion small{width:100%;text-transform:uppercase;letter-spacing:.05em}.predictiva-accion strong{font-size:1.05rem}.predictiva-accion span{margin-left:auto}.predictiva-datos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:.75rem 0}.predictiva-datos>span{display:flex;flex-direction:column;padding:.65rem .8rem;border-radius:10px;background:rgba(0,0,0,.035)}.predictiva-datos small{font-size:.75rem}.predictiva-datos strong{margin-top:.2rem}.agenda-score-baja{background:#eef1f0;color:#495752}
@media(max-width:720px){.predictiva-tarjeta{grid-template-columns:1fr}.predictiva-tarjeta .agenda-score{width:100%;min-height:auto;flex-direction:row;justify-content:center;gap:.5rem}.predictiva-datos{grid-template-columns:1fr}.predictiva-accion span{margin-left:0}}

/* Etapa 20.1 — Aplicación móvil PWA */
.estado-red{display:none;position:fixed;top:0;left:50%;transform:translateX(-50%);z-index:3000;padding:.38rem .85rem;border-radius:0 0 .75rem .75rem;background:#e8f5ec;color:#0b542f;font-size:.78rem;font-weight:700;box-shadow:0 4px 16px rgba(0,0,0,.1)}
.estado-red.sin-conexion{display:block;background:#fff0cf;color:#764b00}
.boton-pwa-instalar{white-space:nowrap;background:var(--empresa-principal);color:#fff;border:0;cursor:pointer}
.navegacion-movil{display:none}
html[data-network-status="offline"] form button[type="submit"]::after{content:" · requiere conexión";font-size:.72em;opacity:.85}

@media (max-width:900px){
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .contenido{padding-bottom:1.5rem}
  .encabezado{position:sticky;top:0;z-index:900;background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}
  .encabezado-acciones .boton-pwa-instalar{font-size:.78rem;padding:.55rem .7rem}
  .navegacion-movil{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:1900;min-height:64px;padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));background:rgba(255,255,255,.97);border-top:1px solid #d9e2dc;box-shadow:0 -8px 26px rgba(7,59,34,.12);backdrop-filter:blur(14px)}
  .navegacion-movil a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;color:#506158;text-decoration:none;border-radius:12px;font-weight:700}
  .navegacion-movil a span{font-size:1.35rem;line-height:1}.navegacion-movil a small{font-size:.66rem;white-space:nowrap}
  .navegacion-movil a.activo{color:var(--empresa-principal);background:#edf6f0}
  .navegacion-movil .accion-central span{display:grid;place-items:center;width:42px;height:42px;margin-top:-18px;border-radius:50%;background:var(--empresa-principal);color:#fff;font-size:1.8rem;box-shadow:0 5px 14px rgba(11,84,47,.28)}
  .navegacion-movil .accion-central small{margin-top:1px}
  .tabla-contenedor,.responsive-table-wrapper{border-radius:14px}
  input,select,textarea,button,.boton{min-height:44px}
}

@media (display-mode:standalone){
  .boton-pwa-instalar{display:none!important}
  body{overscroll-behavior-y:contain}
}
.offline-resumen {
    display: grid;
    grid-template-columns: repeat(2, minmax(150px, 1fr)) auto;
    gap: 1rem;
    align-items: stretch;
    margin-bottom: 1rem;
}
.offline-resumen .boton { align-self: center; }
.offline-estado .sin-conexion { color: #b42318; }
.offline-item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 0;
    border-bottom: 1px solid #e2e8e5;
}
.offline-item div { display: grid; gap: .25rem; }
.offline-item span, .offline-item time { color: #66736c; font-size: .9rem; }
.geolocalizacion-control {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    margin-top: 1rem;
    padding: .9rem;
    border: 1px solid #d8e2dc;
    border-radius: .75rem;
    background: #f7faf8;
}
.geolocalizacion-control span { color: #66736c; font-size: .92rem; }
.geolocalizacion-control .ubicacion-correcta { color: #0b6b3a; font-weight: 700; }
@media (max-width: 700px) {
    .offline-resumen { grid-template-columns: 1fr 1fr; }
    .offline-resumen .boton { grid-column: 1 / -1; }
    .offline-item { flex-direction: column; }
}
.mapa-planificador-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
    gap: 1rem;
    align-items: start;
}
.mapa-capas { display: flex; flex-wrap: wrap; gap: 1rem; font-size: .9rem; }
.planificador-panel { position: sticky; top: 1rem; }
.planificador-panel form { display: grid; gap: .85rem; }
.planificador-clientes {
    max-height: 430px;
    overflow-y: auto;
    border: 1px solid #d8e2dc;
    border-radius: .75rem;
}
.planificador-cliente {
    display: flex;
    gap: .7rem;
    align-items: flex-start;
    padding: .7rem;
    border-bottom: 1px solid #e8eeea;
    cursor: pointer;
}
.planificador-cliente:hover { background: #f3f8f5; }
.planificador-cliente span { display: grid; gap: .15rem; }
.planificador-cliente small { color: #66736c; }
.boton-ancho { width: 100%; justify-content: center; }
@media (max-width: 950px) {
    .mapa-planificador-grid { grid-template-columns: 1fr; }
    .planificador-panel { position: static; }
    .planificador-clientes { max-height: 320px; }
}
.optimizacion-aviso {
    margin: 1rem 0;
    border-left: 4px solid #d39a28;
    background: #fffaf0;
}
.optimizacion-aviso p { margin: .35rem 0 0; color: #5d655f; }
.automatizaciones-seguridad {
    border-left: 4px solid #0b542f;
    background: #f2f8f4;
    margin-bottom: 1rem;
}
.automatizaciones-seguridad p { margin: .35rem 0 0; color: #5d655f; }
.automatizaciones-lista { display: grid; gap: 1rem; }
.automatizacion-item { display: grid; gap: .85rem; }
.automatizacion-cabecera { display: flex; justify-content: space-between; gap: 1rem; }
.automatizacion-cabecera h2 { margin: .35rem 0 .15rem; font-size: 1.15rem; }
.automatizacion-mensaje { margin: 0; padding: .8rem; border-radius: .6rem; background: #f7f9f8; }
.automatizacion-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.automatizacion-acciones form { margin: 0; }
@media (max-width: 650px) {
    .automatizacion-cabecera { flex-direction: column; }
    .automatizacion-acciones .boton { width: 100%; justify-content: center; }
}
.campania-clientes-check ul { columns: 3; list-style: none; padding: 0; }
.campania-clientes-check li { break-inside: avoid; margin-bottom: .4rem; }
.bi-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.bi-kpis article { background: #fff; border: 1px solid #dfe7e2; border-radius: .9rem; padding: 1rem; display: grid; gap: .35rem; }
.bi-kpis span, .bi-kpis small { color: #66736c; }
.bi-kpis strong { font-size: 1.4rem; color: #153c2b; }
.bi-barras { display: grid; gap: .65rem; }
.bi-barra-fila { display: grid; grid-template-columns: 75px 1fr 130px; gap: .75rem; align-items: center; }
.bi-barra-fila div, .bi-progreso { height: 12px; background: #e8eeea; border-radius: 99px; overflow: hidden; }
.bi-barra-fila i, .bi-progreso i { display: block; height: 100%; background: #0b542f; border-radius: inherit; }
.bi-barra-fila strong { text-align: right; }
.bi-rankings { margin-top: 1rem; }
.bi-objetivos { display: grid; gap: 1rem; }
.bi-objetivos article { display: grid; grid-template-columns: minmax(220px, 1fr) 2fr 70px; gap: 1rem; align-items: center; }
.bi-objetivos article > div:first-child { display: grid; }
@media (max-width: 900px) {
    .bi-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .campania-clientes-check ul { columns: 2; }
}
@media (max-width: 560px) {
    .bi-kpis { grid-template-columns: 1fr; }
    .bi-barra-fila { grid-template-columns: 60px 1fr; }
    .bi-barra-fila strong { grid-column: 2; text-align: left; }
    .bi-objetivos article { grid-template-columns: 1fr; }
    .campania-clientes-check ul { columns: 1; }
}
.diagnostico-lista { display: grid; gap: .65rem; }
.diagnostico-lista article { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem; border-radius: .6rem; }
.diagnostico-ok { background: #edf8f1; color: #0b542f; }
.diagnostico-pendiente { background: #fff5e5; color: #8a5400; }
.integraciones-estado { border-left: 4px solid #0b542f; margin-bottom: 1rem; }
.inteligencia-aclaracion { border-left: 4px solid #d39a28; background: #fffaf0; margin-bottom: 1rem; }
.inteligencia-aclaracion p { margin: .35rem 0 0; }
.chips { display: flex; flex-wrap: wrap; gap: .6rem; }
.chips span { padding: .5rem .75rem; border-radius: 99px; background: #edf5f0; color: #174b34; }
.chip-alta { background: #fee2e2; color: #991b1b; }
.chip-media { background: #fef3c7; color: #92400e; }
.etiqueta-incidencia {
    display: inline-block;
    margin: .15rem .25rem .15rem 0;
    padding: .25rem .5rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #334155;
    font-size: .82rem;
}
.notificaciones-boton { position: relative; }
.notificaciones-boton span { display: inline-grid; place-items: center; min-width: 20px; height: 20px; margin-left: .35rem; padding: 0 .3rem; border-radius: 999px; background: #b42318; color: #fff; font-size: .72rem; }
.lista-notificaciones { display: grid; gap: .65rem; }
.notificacion { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid #e3e8e5; border-radius: 12px; }
.notificacion h3, .notificacion p { margin: .2rem 0; }
.notificacion-pendiente { border-left: 4px solid var(--empresa-principal); background: #f7fbf8; }
.ayuda-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); gap: 1rem; }
