/* DECA - estilos minimos */
:root {
    --marca-principal: #34495e;
    --marca-secundario: #4f6f95;
    --marca-fondo: #eef1f5;
}
* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: "Segoe UI", system-ui, sans-serif;
    font-size: 15px;
    color: #24292f;
    background: var(--marca-fondo);
}
body.centrado {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
}

.cabecera {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--marca-principal);
    color: #fff;
    padding: 10px 18px;
}
.cabecera a { color: #cfe2ff; margin-left: 14px; text-decoration: none; }
.cabecera a:hover { text-decoration: underline; }
.cabecera a.boton-nuevo-deca,
.cabecera a.boton-alta-rapida,
.cabecera a.boton-ver-decas {
    color: #fff;
    border: 1px solid transparent;
}
.cabecera a.boton-nuevo-deca {
    background: var(--marca-secundario);
    border-color: #6f8dae;
}
.cabecera a.boton-nuevo-deca:hover { background: #405e80; text-decoration: none; }
.cabecera a.boton-alta-rapida {
    background: #d88712;
    border-color: #efa532;
    font-weight: 700;
}
.cabecera a.boton-alta-rapida:hover { background: #b96f08; text-decoration: none; }
.cabecera a.boton-ver-decas {
    background: #2563a6;
    border-color: #6496c9;
}
.cabecera a.boton-ver-decas:hover { background: #1d4f87; text-decoration: none; }
.cabecera .menu-enlace-deshabilitado {
    display: inline-block;
    margin-left: 14px;
    color: #bdc8d2;
    cursor: not-allowed;
}

/* Menu "Mas" de la cabecera */
.menu-mas { position: relative; display: inline-block; }
.menu-desplegable {
    position: absolute; right: 0; top: 140%;
    display: flex; flex-direction: column; min-width: 200px; z-index: 60;
    background: #fff; border: 1px solid #d5dbe1; border-radius: 6px;
    box-shadow: 0 5px 16px rgba(0,0,0,.22);
}
.menu-desplegable a {
    color: #24292f !important; margin: 0 !important;
    padding: 10px 14px; border-bottom: 1px solid #eef1f4;
}
.menu-desplegable a:last-child { border-bottom: 0; }
.menu-desplegable a:hover { background: #f2f5f8; text-decoration: none !important; }

/* Lista de conductores del modal de WhatsApp */
.wa-lista { display: flex; flex-direction: column; gap: 8px; margin: 12px 0 14px; }
.wa-lista .boton-mini { margin: 0; padding: 9px 14px; }

h2.subtitulo { font-size: 1.05rem; margin: 22px 0 6px; }

.tarjeta {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 1px 4px rgba(0,0,0,.12);
    padding: 24px 28px;
    margin: 24px auto;
}
.tarjeta.login { width: 340px; }
.login-actions { display: flex; align-items: center; gap: 8px; }
.login-actions button { flex: 1; }
.login-actions button:first-child { flex: 0 0 auto; }
.login-direct-toggle {
    color: #34495e;
    background: var(--marca-fondo);
    border: 1px solid #cbd4dd;
}
.login-direct-toggle:hover { background: #dfe6ee; }
.login-direct-help {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #d9e0e7;
}
.login-direct-help h2 { margin: 0 0 6px; font-size: 1rem; }
.login-direct-help p { margin: 5px 0; line-height: 1.4; }
.login-direct-link { margin-top: 10px; }
.login-direct-link code {
    display: block;
    max-height: 84px;
    overflow: auto;
    padding: 9px 10px;
    border: 1px solid #d5dbe1;
    border-radius: 5px;
    background: #f7f9fb;
    overflow-wrap: anywhere;
    white-space: normal;
    font-size: .78rem;
}
.login-direct-link .boton-mini { margin: 8px 0 0; }
.login-direct-link .boton-mini:disabled { cursor: not-allowed; opacity: .55; }
.login-direct-status { min-height: 1.2em; color: #26734d; font-size: .82rem; font-weight: 600; }
.tarjeta.ancho { max-width: 1080px; width: calc(100% - 32px); }
.tarjeta.ancho.admin-principal {
    max-width: none;
    width: calc(100% - 24px);
}
.tarjeta.ancho.listado-principal {
    max-width: none;
    width: calc(100% - 12px);
    padding-left: 16px;
    padding-right: 16px;
}
.tarjeta.ancho.usuarios-principal { max-width: none; width: calc(100% - 24px); }
.usuarios-nuevo, .usuarios-configurar { border-top: 1px solid #d5dbe1; padding: 16px 0; margin: 16px 0; }
.usuarios-nuevo summary { cursor: pointer; font-weight: 700; color: #27465d; }
.usuarios-modos { display: flex; flex-wrap: wrap; gap: 8px 26px; margin: 16px 0 4px; }
.usuarios-modos .check { margin: 0; }
.usuarios-modos input, .usuarios-opcion input { width: auto; margin: 0 5px 0 0; }
.usuarios-permisos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.usuarios-entidades { min-width: 0; }
.usuarios-buscar { width: 100%; }
.usuarios-entidades-lista { max-height: 260px; overflow: auto; border: 1px solid #d5dbe1; border-radius: 5px; padding: 4px 10px; background: #fff; }
.usuarios-opcion { display: flex; align-items: baseline; gap: 4px; padding: 5px 2px; margin: 0; border-bottom: 1px solid #eef1f3; font-weight: 400; }
.usuarios-opcion:last-child { border-bottom: 0; }
.usuarios-opcion[hidden] { display: none; }
.usuarios-opcion span { min-width: 0; overflow-wrap: anywhere; }
.usuarios-tabla { min-width: 1040px; }
.usuarios-canales { min-width: 560px; }
.usuarios-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.usuarios-num small { display: block; font-weight: 400; }
.usuarios-acciones { white-space: nowrap; }
.usuarios-actividad-acceso { margin: 26px 0; padding-top: 4px; }
.accesos-resumen { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)); gap: 12px; margin: 14px 0; }
.accesos-resumen article { display: flex; flex-direction: column; gap: 3px; padding: 14px 16px; border: 1px solid #ccd8e2; border-radius: 8px; background: #f5f8fb; }
.accesos-resumen article strong { color: #24445e; font-size: 1.55rem; font-variant-numeric: tabular-nums; }
.accesos-resumen article span { color: #52606d; font-size: .85rem; }
.accesos-resumen article.alerta { border-color: #e2b1b1; background: #fff5f5; }
.accesos-resumen article.alerta strong, .acceso-fallido { color: #a12626; font-weight: 700; }
.usuarios-accesos-tabla { min-width: 980px; }
.columnas-listado-principal { max-width: 940px; }
.columnas-listado-usuarios { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.columnas-listado-usuarios a { min-width: 150px; padding: 8px 10px; border: 1px solid #ccd7e2; border-radius: 5px; color: #27465d; text-decoration: none; background: #fff; }
.columnas-listado-usuarios a:hover, .columnas-listado-usuarios a.activa { border-color: #2456a6; background: #eaf1fb; color: #183b70; }
.columnas-listado-usuarios a strong, .columnas-listado-usuarios a small { display: block; }
.columnas-listado-usuarios a small { margin-top: 3px; color: #667; }
.columnas-listado-opciones { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)); gap: 10px 18px; margin: 14px 0; }
.columnas-listado-opciones .check { margin: 0; }

h1 { font-size: 1.35rem; margin: 0 0 12px; }
.sub { color: #667; margin-top: -6px; }

label { display: block; margin: 10px 0 2px; font-weight: 600; }
label small { font-weight: normal; color: #667; }
span.req { color: #b03030; }
input, textarea, select {
    width: 100%;
    padding: 7px 9px;
    margin-top: 3px;
    border: 1px solid #c4ccd4;
    border-radius: 5px;
    font: inherit;
}
input:focus, textarea:focus { outline: 2px solid #4a7bd0; border-color: #4a7bd0; }

.fila { display: flex; gap: 14px; }
.fila label { flex: 1; }

fieldset {
    border: 1px solid #d5dbe1;
    border-radius: 6px;
    margin: 14px 0;
    padding: 10px 14px 14px;
}
legend { font-weight: 700; padding: 0 6px; }

/* Apartados del editor: el tono se recalcula al añadir o quitar envíos. */
#formDeca fieldset.deca-form-panel {
    margin: 16px 0;
    padding: 16px 18px 18px;
    border-color: #cbd4dd;
    box-shadow: 0 1px 2px rgba(36, 52, 74, .05);
}
#formDeca fieldset.deca-panel-gris { background: #f1f3f5; }
#formDeca fieldset.deca-panel-blanco { background: #fff; }
#formDeca fieldset.deca-form-panel > legend {
    padding: 3px 9px;
    border: 1px solid #cbd4dd;
    border-radius: 4px;
    background: inherit;
    color: #24344a;
}

button, .boton-mini {
    background: var(--marca-principal);
    color: #fff;
    border: 0;
    border-radius: 5px;
    padding: 10px 18px;
    font: inherit;
    cursor: pointer;
    margin-top: 12px;
}
button:hover { background: #24344a; }
.boton-mini {
    font-size: .8rem;
    padding: 3px 9px;
    margin: 0 0 0 8px;
    text-decoration: none;
    display: inline-block;
    background: var(--marca-secundario);
}
.boton-mini:hover { background: #46648a; }
.boton-mini.boton-sec {
    background: var(--marca-fondo);
    color: #34495e;
    border: 1px solid #d5dbe1;
}
.boton-mini.boton-sec:hover { background: #dfe6ee; }
.boton-mini.wa { background: #168445; }
.boton-mini.wa:hover { background: #106a36; }
.boton-mini.wa::before { content: "✆ "; }
.boton-mini.wa:disabled,
.boton-mini.wa:disabled:hover {
    background: #e5ebe7;
    color: #586e60;
    border: 1px solid #b8c7bd;
    opacity: 1;
    cursor: not-allowed;
}
.boton-mini.accion-compartir-pdf { background: #285eaa; }
.boton-mini.accion-compartir-pdf:hover { background: #1d4a88; }
.boton-mini.accion-compartir-pdf::before { content: "📄 "; }
.boton-mini.accion-compartir-qr { background: #684e90; }
.boton-mini.accion-compartir-qr:hover { background: #543b7b; }
.boton-mini.accion-compartir-qr::before { content: "▦ "; }
.boton-mini.accion-ver-qr { background: #684e90; }
.boton-mini.accion-ver-qr:hover { background: #543b7b; }
.boton-mini.accion-ver-qr::before { content: "▦ "; }
.boton-mini.accion-copiar { background: #496883; }
.boton-mini.accion-copiar:hover { background: #37536b; }
.boton-mini.accion-copiar::before { content: "⧉ "; }
.usuarios-alta-rapida {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 18px;
    padding: 13px 15px;
    border: 1px solid #b8d9c9;
    border-radius: 7px;
    background: #eef8f2;
}
.usuarios-alta-rapida span { display: grid; gap: 3px; }
.usuarios-alta-rapida small { color: #52645b; font-weight: 400; }

.error {
    background: #fde8e8;
    border: 1px solid #e5a3a3;
    color: #8a1f1f;
    border-radius: 5px;
    padding: 8px 12px;
    margin: 10px 0;
}
.error ul { margin: 0; padding-left: 18px; }
.exito {
    background: #e6f6e6;
    border: 1px solid #9fd39f;
    color: #1e5c1e;
    border-radius: 5px;
    padding: 8px 12px;
    margin: 10px 0;
}
.aviso {
    background: #fff8e1;
    border: 1px solid #e6cf7a;
    border-radius: 5px;
    padding: 8px 12px;
}
.nota { color: #667; font-size: .85rem; margin: 4px 0 0; }
.nota-deca-editor { margin-top: 14px; }
.vista-previa-deca { margin-top: 10px; padding: 10px 12px; border: 1px solid #ccd7e2; border-radius: 6px; background: #f8fafc; }
.vista-previa-deca strong, .vista-previa-deca span { display: block; }
.vista-previa-deca span { margin-top: 4px; white-space: pre-wrap; }
.nota-deca-tabla { min-width: 180px; max-width: 280px; white-space: normal; }
.conductor-deca-editor { border-top: 1px solid #d8e0e8; margin-top: 12px; padding-top: 12px; }

.listado-wrap {
    width: 100%;
    overflow-x: auto;
    margin-top: 10px;
    border: 1px solid #e2e6ea;
    border-radius: 6px;
}
table.listado { 
    width: 100%;
    min-width: var(--listado-min-width, 1020px);
    table-layout: fixed;
    border-collapse: collapse;
    margin-top: 0;
}
table.listado th, table.listado td {
    border-bottom: 1px solid #e2e6ea;
    padding: 8px 8px;
    text-align: left;
    font-size: .9rem;
    vertical-align: middle;
    overflow-wrap: anywhere;
}
table.listado th { background: #f4f6f8; }
table.listado th .orden-col {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    width: 100%;
    color: #24292f;
    text-decoration: none;
    font-weight: 700;
    padding: 3px 4px;
    border-radius: 4px;
    box-sizing: border-box;
    overflow-wrap: normal;
}
table.listado th .orden-col:hover { background: #e6edf5; }
table.listado th .orden-col em {
    color: #5a7ba6;
    font-style: normal;
    font-size: .85rem;
    font-weight: 800;
    background: #e7edf5;
    border: 1px solid #cbd8e6;
    border-radius: 4px;
    padding: 1px 4px;
    flex-shrink: 0;
    white-space: nowrap;
}
table.listado th .orden-col.activa {
    color: #183b70;
    background: #eaf1fb;
}
table.listado th .orden-col.activa em {
    color: #fff;
    background: #2456a6;
    border-color: #2456a6;
}
table.listado td.url { white-space: nowrap; }
table.listado tr:last-child td { border-bottom: 0; }
table.listado .col-num { width: 8%; }
table.listado .col-fecha { width: 8%; }
table.listado .col-registro { width: 8%; }
table.listado .col-hora-registro { width: 6%; white-space: nowrap; }
table.listado .col-cargador { width: 13%; }
table.listado .col-transportista { width: 13%; }
table.listado .col-ruta { width: 14%; }
table.listado .col-matricula { width: 8%; }
table.listado .col-estado { width: 11%; }
table.listado .col-acciones { width: 17%; }
td.acciones { white-space: nowrap; }
td.acciones .boton-mini {
    margin: 2px 2px 2px 0;
    padding: 4px 6px;
    line-height: 1.25;
    white-space: nowrap;
}
td.acciones .accion-pdf {
    background: transparent;
    color: #2456a6;
    border: 1px solid #b8c8df;
}
td.acciones .accion-pdf:hover { background: #edf3fb; }
td.acciones .accion-editar {
    background: var(--marca-fondo);
    color: #34495e;
    border: 1px solid #d5dbe1;
}
td.acciones .accion-editar:hover { background: #dfe6ee; }
td.acciones .accion-historial {
    background: #fff;
    color: #315f50;
    border: 1px solid #a9c8bd;
}
td.acciones .accion-historial:hover { background: #edf6f2; }
td.acciones .accion-enlace,
.dc-botones .accion-enlace {
    background: #7a5a18;
    color: #fff;
}

.admin-editor {
    margin-top: 22px;
    padding: 18px;
    border: 1px solid #d8e0e8;
    border-radius: 8px;
    background: #f8fafc;
}
.admin-seguridad {
    margin: 0 0 24px;
    padding: 0 16px 16px;
    border: 1px solid #cbd4dd;
    border-radius: 6px;
    background: #f7f9fb;
}
.admin-seguridad summary {
    margin: 0 -16px;
    padding: 12px 16px;
    cursor: pointer;
    color: #24344a;
    font-weight: 700;
}
.admin-seguridad[open] summary { margin-bottom: 4px; border-bottom: 1px solid #dce3ea; }

.admin-editor-cab {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 6px;
}

.admin-editor-cab h1 {
    margin-bottom: 2px;
}

.admin-editor .boton-mini {
    margin-top: 0;
}
.admin-opciones-directas { min-width: 135px; }
.admin-opciones-directas form { margin: 0; }
.admin-opciones-directas label.check { white-space: nowrap; font-size: .82rem; margin: 2px 0; }
.admin-opciones-directas label.check input { flex: 0 0 auto; }
.admin-mes-form {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    margin: 0 0 12px;
}
.admin-mes-form label { margin: 0; min-width: 210px; }
.admin-mes-form input { margin-top: 5px; }
.admin-mes-form button { margin: 0; }
.admin-empresas-wrap {
    margin-top: 14px;
    border: 1px solid #dce3e9;
    border-radius: 8px;
    background: #fff;
    scrollbar-color: #8fa3b5 #e8edf1;
    scrollbar-width: auto;
}
.admin-empresas-tabla {
    min-width: 2120px !important;
    table-layout: auto !important;
}
.admin-empresas-tabla th {
    position: sticky;
    top: 0;
    z-index: 1;
    color: #334155;
    font-size: .78rem;
    letter-spacing: .01em;
    white-space: normal;
}
.admin-empresas-tabla td { vertical-align: top; }
.admin-empresas-tabla tbody tr:nth-child(even) td { background: #fbfcfd; }
.admin-empresas-tabla tbody tr:hover td { background: #f1f6fb; }
.admin-empresas-tabla th:nth-child(1) { width: 130px; }
.admin-empresas-tabla th:nth-child(2) { width: 160px; }
.admin-empresas-tabla th:nth-child(3) { width: 190px; }
.admin-empresas-tabla th:nth-child(4) { width: 115px; }
.admin-empresas-tabla th:nth-child(5) { width: 105px; }
.admin-empresas-tabla th:nth-child(n+6):nth-child(-n+10) { width: 100px; }
.admin-empresas-tabla th:nth-child(11) { width: 130px; }
.admin-empresas-tabla th:nth-child(12) { width: 105px; }
.admin-empresas-tabla th:nth-child(13) { width: 90px; }
.admin-empresas-tabla th:nth-child(14) { width: 250px; }
.admin-empresas-tabla th:nth-child(15) { width: 205px; }
.admin-empresas-tabla th:nth-child(16) { width: 320px; }
.admin-empresas-tabla .admin-opciones-directas {
    display: grid;
    grid-template-columns: repeat(2, minmax(105px, 1fr));
    gap: 5px 7px;
    min-width: 230px;
}
.admin-empresas-tabla .admin-opciones-directas label.check {
    min-height: 28px;
    margin: 0;
    padding: 4px 6px;
    border: 1px solid #dce4ea;
    border-radius: 5px;
    background: #f7f9fb;
    color: #4b5966;
    line-height: 1.15;
}
.admin-empresas-tabla .admin-opciones-directas label.check:has(input:checked) {
    border-color: #acd3bf;
    background: #edf8f2;
    color: #1f6845;
}
.admin-fecha-limite { min-width: 195px; }
.admin-fecha-form {
    display: grid;
    grid-template-columns: minmax(132px, 1fr) auto;
    align-items: center;
    gap: 6px;
    margin: 0;
}
.admin-fecha-form input.compacto {
    width: 100%;
    min-width: 132px;
    margin: 0;
    padding: 5px 6px;
    font-size: .82rem;
}
.admin-fecha-form .boton-mini { margin: 0; }
.admin-acciones {
    min-width: 300px;
    white-space: normal !important;
}
.admin-acciones form { display: inline-block; margin: 0; }
.admin-acciones .boton-mini { margin: 1px 3px 5px 0; }
td.acciones .accion-enlace:hover,
.dc-botones .accion-enlace:hover { background: #604511; }
.accion-email { background: #245f78; }
.accion-email:hover { background: #19495e; }
.boton-mas-acciones { background: var(--marca-fondo); color: #34495e; border: 1px solid #cbd4dd; }
.boton-mas-acciones:hover { background: #dfe6ee; }

.etiqueta {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: .78rem;
    font-weight: 600;
    color: #fff;
}
.etiqueta.verde   { background: #2e8b57; }
.etiqueta.roja    { background: #b03030; }
.etiqueta.naranja { background: #d07a1e; }
.etiqueta.azul    { background: #3a6ea5; }
.etiqueta.gris    { background: #7a8794; }

/* ---------- Filtros del listado ---------- */
.filtros {
    margin: 10px 0 8px;
}
.filtros-panel {
    background: #f4f6f8;
    border: 1px solid #dbe2ea;
    border-radius: 6px;
}
.filtros-panel summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 12px;
    cursor: pointer;
    color: #34495e;
    user-select: none;
    font-weight: 800;
    letter-spacing: .02em;
}
.filtros-panel summary::-webkit-details-marker { display: none; }
.filtros-panel summary::before {
    content: ">";
    font-size: .78rem;
    color: #5a7ba6;
}
.filtros-panel[open] summary::before { content: "v"; }
.filtros-panel summary span { flex: 1; }
.filtros-panel summary em {
    font-style: normal;
    font-size: .7rem;
    color: #fff;
    background: #2456a6;
    border-radius: 999px;
    padding: 2px 7px;
    letter-spacing: 0;
}
.filtros-cuerpo {
    display: grid;
    grid-template-columns: minmax(220px, 1.35fr) minmax(190px, .9fr);
    gap: 12px 16px;
    align-items: end;
    border-top: 1px solid #dbe2ea;
    padding: 12px;
}
.filtro-busqueda label,
.filtro-fechas label {
    margin: 0;
    font-size: .78rem;
    color: #55616d;
}
.filtro-busqueda input[type=search],
.filtro-fechas select,
.filtro-fechas input[type=date] {
    margin-top: 2px;
    padding: 6px 8px;
    background: #fff;
}
.filtro-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    align-items: end;
}
.filtro-checks label.check { margin: 0; }
.filtro-planificacion {
    min-width: 220px; margin: 0; color: #55616d; font-size: .78rem;
}
.filtro-planificacion select {
    margin-top: 2px; padding: 6px 8px; background: #fff;
}
.filtro-fechas {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 140px minmax(160px, 1fr) minmax(140px, .8fr) minmax(140px, .8fr);
    gap: 10px;
    align-items: end;
    border-top: 1px solid #e2e6ea;
    padding-top: 10px;
}
.filtro-titulo {
    color: #34495e;
    font-weight: 800;
    padding-bottom: 7px;
}
.filtros-acciones {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.filtros-acciones .boton-mini {
    margin: 0;
    white-space: nowrap;
}

.paginacion {
    display: flex; flex-direction: column; gap: 9px; align-items: center; justify-content: center;
    margin-top: 14px; color: #556;
}
.paginacion .boton-mini { margin: 0; }
.paginacion-info { font-weight: 600; text-align: center; }
.paginacion-controles { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; }
.paginacion-controles .boton-mini { min-width: 88px; text-align: center; }
.paginacion-deshabilitada { background: #e5e9ed; border-color: #d3d9df; color: #8a949e; cursor: default; }
.paginacion .deshabilitado { pointer-events: none; opacity: .55; }
.paginacion > span { font-weight: 600; }
.maestro-lista-titulo { margin-top: 26px; }
.maestro-lista-titulo h1 { margin: 0; }
.filtros-maestro {
    display: grid;
    grid-template-columns: minmax(240px, 1.7fr) minmax(180px, .8fr) minmax(140px, .65fr) auto;
    gap: 10px;
    align-items: end;
    margin: 12px 0 16px;
    padding: 12px;
    border: 1px solid #d8e0e7;
    border-radius: 6px;
    background: #f5f7f9;
}
.filtros-maestro label { margin: 0; font-size: .8rem; }
.filtros-maestro input,
.filtros-maestro select { margin: 3px 0 0; background: #fff; }
.filtros-maestro-acciones { display: flex; align-items: center; gap: 8px; }
.filtros-maestro-acciones button,
.filtros-maestro-acciones .boton-mini { margin: 0; white-space: nowrap; }
.maestro-cabecera { margin-bottom: 12px; }
.editor-entidad-panel {
    margin: 0 0 18px;
    border: 1px solid #cbd4dd;
    border-radius: 6px;
    background: #f7f9fb;
}
.editor-entidad-panel summary {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 11px 14px;
    color: #34495e;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.editor-entidad-panel summary::-webkit-details-marker { display: none; }
.editor-entidad-panel summary::before {
    content: ">";
    color: #5a7ba6;
    font-size: .8rem;
}
.editor-entidad-panel[open] summary::before { content: "v"; }
.editor-entidad-cuerpo {
    padding: 4px 16px 16px;
    border-top: 1px solid #dbe2ea;
    background: #fff;
}
.editor-entidad-cuerpo form > button:first-of-type { margin-left: 0; }
.campo-lugar .selector-lugar { margin-bottom: 5px; background: #f7f9fb; }
.campo-lugar .lugar-texto { margin-top: 0; }
label.check {
    display: flex; align-items: center; gap: 6px;
    font-weight: 500; margin: 4px 0; cursor: pointer;
}
label.check input { width: auto; margin: 0; }
.fecha-pendiente-check { align-self: end; min-height: 39px; padding-bottom: 8px; }
.fila.checks { gap: 22px; flex-wrap: wrap; }
.fila.checks label.check { flex: 0 0 auto; }

form.enlinea { display: inline-block; margin: 0; }
form.enlinea input.compacto { width: 130px; padding: 3px 5px; font-size: .85rem; }
form.enlinea button { margin-top: 0; }
.alcance-usuario {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) minmax(170px, 1fr) auto;
    gap: 6px;
    align-items: center;
    min-width: 480px;
}
.alcance-usuario select { margin: 0; padding: 5px 7px; }
.alcance-usuario .boton-mini { margin: 0; white-space: nowrap; }

/* ---------- Vistas lista / tarjetas ---------- */
.oculto { display: none !important; }

.lista-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.lista-cab h1 { margin-bottom: 0; }
.lista-cab-acciones { display: flex; align-items: center; gap: 7px; }
.lista-cab-acciones .boton-mini { margin: 0; }
.boton-ayuda-acciones {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: var(--marca-fondo);
    color: #34495e;
    border: 1px solid #cbd4dd;
}
.boton-ayuda-acciones:hover { background: #dfe6ee; }
.boton-ayuda-acciones span,
.ayuda-acciones-icono {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    font-size: .72rem;
    font-weight: 800;
}
.boton-ayuda-acciones span { color: #fff; background: var(--marca-secundario); }
.cabecera-acciones { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.ayuda-acciones-icono {
    margin: 0;
    padding: 0;
    color: #315b88;
    background: #fff;
    border: 1px solid #9fb3c8;
    line-height: 1;
}
.ayuda-acciones-icono:hover { color: #fff; background: #315b88; }

.tarjetas-deca { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; margin-top: 14px; }
.deca-card {
    border: 1px solid #d5dbe1;
    border-radius: 8px;
    padding: 12px 14px;
    background: #fbfcfd;
}
.deca-numero-linea,
.dc-identidad { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.deca-tipo-nts {
    display: inline-flex;
    align-items: center;
    min-height: 21px;
    padding: 2px 7px;
    border: 1px solid #5aa397;
    border-radius: 4px;
    background: #dff3ef;
    color: #0b6259;
    font-size: .7rem;
    font-weight: 800;
    line-height: 1;
}
table.listado tr.fila-nts > td { background: #f0f8f6; }
table.listado tr.fila-nts > td:first-child { box-shadow: inset 4px 0 0 #168276; }
.deca-card.deca-card-nts {
    border-color: #70aa9f;
    border-left: 5px solid #168276;
    background: #f0f8f6;
}
.dc-cab {
    display: flex; justify-content: space-between; align-items: center; gap: 8px;
    border-bottom: 1px solid #e2e6ea;
    padding-bottom: 6px; margin-bottom: 10px;
}
.dc-cuerpo { display: flex; gap: 12px; align-items: flex-start; }
.dc-qr {
    width: 110px; height: 110px; flex: 0 0 auto;
    border: 1px solid #e2e6ea; border-radius: 6px; background: #fff;
    cursor: pointer;
}
.dc-datos { flex: 1; font-size: .92rem; }
.dc-datos > div { margin-bottom: 6px; }
.dc-etq { display: block; font-size: .72rem; font-weight: 700; color: #8895a2; text-transform: uppercase; }
.dc-botones { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.dc-botones .boton-mini { margin: 0; }

/* ---------- Ventana emergente del QR ---------- */
.qr-modal {
    position: fixed; inset: 0; z-index: 50;
    background: rgba(20, 28, 38, .65);
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
}
.qr-caja {
    background: #fff; border-radius: 10px;
    padding: 20px 26px; text-align: center;
    max-width: 92vw;
    box-shadow: 0 8px 30px rgba(0,0,0,.35);
}
.qr-caja h2 { margin: 0 0 10px; font-size: 1.1rem; }
.qr-caja img { width: min(320px, 78vw); height: auto; }
.qr-caja p { color: #667; font-size: .85rem; margin: 8px 0 4px; }

/* ---------- Vídeos de ayuda ---------- */
.videos-rejilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(235px, 1fr)); gap: 16px; margin-top: 22px; }
.video-tarjeta { border: 1px solid #d9e1ea; border-radius: 8px; padding: 18px; background: #fff; display: flex; flex-direction: column; align-items: flex-start; }
.video-tarjeta h2 { margin: 0 0 8px; font-size: 1.08rem; }
.video-tarjeta h3 { margin: 0 0 13px; font-size: 1.08rem; }
.video-tarjeta p { margin: 0 0 13px; }
.video-tarjeta .boton-mini { margin-top: auto; }
.videos-grupo-titulo { margin: 28px 0 0; font-size: 1.3rem; }
.videos-empresas { margin-top: 28px; border: 1px solid #d9e1ea; border-radius: 8px; background: #fff; }
.videos-empresas > summary { padding: 16px 18px; cursor: pointer; font-weight: 700; }
.videos-empresas > summary small { margin-left: 8px; color: #66737f; font-weight: 400; }
.videos-empresa { padding: 0 18px 18px; }
.videos-empresa h2 { margin: 8px 0 4px; font-size: 1.16rem; }
.videos-empresa-enlaces { margin: 0; color: #66737f; font-size: .9rem; }
.videos-empresa-enlaces a { color: inherit; }
.videos-empresa .videos-rejilla { margin-top: 16px; }

/* ---------- Ayuda de las acciones del listado ---------- */
.ayuda-acciones-caja {
    width: min(620px, 94vw);
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    padding: 20px 22px;
    text-align: left;
}
.modal-cabecera { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.modal-cabecera h2 { margin: 0; }
.cerrar-modal {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    margin: 0;
    padding: 0;
    border-radius: 50%;
    color: #34495e;
    background: var(--marca-fondo);
    font-size: 1.35rem;
    line-height: 1;
}
.cerrar-modal:hover { background: #dfe6ee; }
.leyenda-acciones { margin: 16px 0 8px; }
.leyenda-acciones > div {
    display: grid;
    grid-template-columns: 185px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 9px 0;
    border-top: 1px solid #e5e9ed;
}
.leyenda-acciones > div:first-child { border-top: 0; }
.leyenda-acciones dt,
.leyenda-acciones dd { margin: 0; }
.leyenda-acciones dd { color: #4d5964; line-height: 1.35; }
.leyenda-boton {
    display: inline-block;
    padding: 4px 7px;
    border-radius: 5px;
    background: var(--marca-secundario);
    color: #fff;
    font-size: .78rem;
    font-weight: 600;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.25;
}
.leyenda-boton.pdf { color: #2456a6; background: #fff; border: 1px solid #b8c8df; }
.leyenda-boton.wa { background: #168445; }
.leyenda-boton.wa::before { content: "✆ "; }
.leyenda-boton.compartir-pdf { background: #285eaa; }
.leyenda-boton.compartir-pdf::before { content: "📄 "; }
.leyenda-boton.compartir-qr { background: #684e90; }
.leyenda-boton.compartir-qr::before { content: "▦ "; }
.leyenda-boton.copiar-enlace { background: #496883; }
.leyenda-boton.copiar-enlace::before { content: "⧉ "; }
.leyenda-boton.editar { color: #34495e; background: var(--marca-fondo); border: 1px solid #d5dbe1; }
.leyenda-boton.historial { color: #315f50; background: #fff; border: 1px solid #a9c8bd; }
.leyenda-boton.enlace { background: #7a5a18; }
.qr-caja .ayuda-acciones-nota { margin-top: 12px; }
.modal-pie { display: flex; justify-content: flex-end; margin-top: 14px; }
.modal-pie .boton-mini { margin: 0; }
.leyenda-boton.email { background: #245f78; }

/* ---------- Menu agrupado de acciones ---------- */
.acciones-menu-caja {
    width: min(520px, 94vw);
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    padding: 20px 22px;
    text-align: left;
}
.acciones-menu-grupo { padding: 16px 0; border-top: 1px solid #e2e6ea; }
.acciones-menu-grupo:first-child { border-top: 0; }
.acciones-menu-grupo h3 { margin: 0 0 9px; color: #52606d; font-size: .78rem; text-transform: uppercase; }
.acciones-menu-botones { display: flex; flex-direction: column; align-items: stretch; gap: 8px; }
.acciones-menu-botones .boton-mini,
.acciones-menu-botones form { margin: 0; }
.acciones-menu-botones form .boton-mini { margin: 0; }
.acciones-menu-botones > .boton-mini,
.acciones-menu-botones > form,
.acciones-menu-botones > form .boton-mini { width: 100%; text-align: left; }
.accion-compartir-fila { width: 100%; padding: 8px 0; border-bottom: 1px solid #edf0f3; }
.accion-compartir-fila:last-child { border-bottom: 0; }
.accion-compartir-fila > .boton-mini,
.accion-compartir-fila > form,
.accion-compartir-fila > form .boton-mini { width: 100%; text-align: left; }
.accion-compartir-fila small { display: block; color: #586473; line-height: 1.4; margin-top: 5px; }
.aviso-sin-email { flex-basis: 100%; margin: 0; }
.aviso-wa-inactivo { flex-basis: 100%; margin: 0; color: #586e60; }

/* ---------- Enlace externo para completar matriculas ---------- */
.pagina-enlace-publico { min-height: 100vh; padding: 1px 0 28px; }
.enlace-panel { max-width: 980px; width: calc(100% - 28px); }
.marca-publica {
    display: flex; justify-content: space-between; align-items: center;
    border-bottom: 3px solid #e67e22; padding-bottom: 9px; margin-bottom: 18px;
    color: #34495e;
}
.marca-publica strong { font-size: 1.35rem; }
.marca-publica span { color: #667; font-weight: 600; }
.estado-enlace-publico { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin: 8px 0; color: #5b6874; }
.resumen-enlace,
.datos-solo-lectura {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px; margin: 16px 0;
}
.resumen-enlace div,
.datos-solo-lectura div {
    border: 1px solid #dce2e8; background: #f7f9fb; border-radius: 6px; padding: 10px 12px;
}
.resumen-enlace dt,
.datos-solo-lectura span {
    display: block; margin-bottom: 2px; color: #667; font-size: .75rem; font-weight: 700; text-transform: uppercase;
}
.resumen-enlace dd { margin: 0; font-weight: 600; }
.datos-solo-lectura .ancho-completo { grid-column: 1 / -1; }
.datos-solo-lectura strong { display: block; overflow-wrap: anywhere; }
.acciones-enlace { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin: 12px 0; }
.acciones-enlace button, .acciones-enlace .boton-mini { margin: 0; }
.boton-grande { padding: 10px 18px; font-size: 1rem; }
.boton-mini.boton-abrir { background: #2456a6; }
.boton-mini.boton-abrir:hover { background: #183f7c; }
.boton-peligro { background: #a33030; }
.boton-peligro:hover { background: #812525; }
.recorrido-publico { margin: 18px 0; border: 1px solid #d8e0e7; }
.recorrido-publico-cabecera {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 11px 14px; background: #eef3f7; border-bottom: 1px solid #d8e0e7;
}
.recorrido-publico-cabecera h2 { margin: 0; font-size: 1.05rem; }
.recorrido-publico-cabecera > span {
    flex: 0 0 auto; color: #34495e; font-size: .78rem; font-weight: 700; text-transform: uppercase;
}
.envio-publico { padding: 14px; }
.envio-publico + .envio-publico { border-top: 1px solid #d8e0e7; }
.envio-publico header { display: flex; align-items: baseline; gap: 12px; }
.envio-publico header > span {
    flex: 0 0 auto; color: #667; font-size: .75rem; font-weight: 700; text-transform: uppercase;
}
.envio-publico header > strong { min-width: 0; color: #24394d; overflow-wrap: anywhere; }
.envio-publico header b { padding: 0 4px; color: #e67e22; }
.envio-publico-datos { margin: 9px 0 0; }
.envio-publico-datos p { margin: 5px 0; overflow-wrap: anywhere; }
.envio-publico-datos span {
    display: inline-block; min-width: 92px; color: #667; font-size: .75rem; font-weight: 700; text-transform: uppercase;
}
.detalle-publico { margin: 12px 0 0; }
.detalle-publico h2, .detalle-publico h3 { font-size: .9rem; margin: 0 0 5px; }
.detalle-publico > div {
    display: grid; grid-template-columns: minmax(0, 1fr) 120px 100px; gap: 10px;
    border-bottom: 1px solid #e2e6ea; padding: 8px 4px;
}
.detalle-publico span { text-align: right; color: #55616d; }
.envio-sin-mercancia { margin: 10px 0 0; color: #667; font-style: italic; }
.editor-carga { margin-top: 18px; }
.editor-carga > .nota { margin-top: 0; }
.editor-envio { margin-top: 14px; padding: 12px; border: 1px solid #d7dee5; background: #f8fafb; }
.editor-envio-cabecera { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; color: #34495e; }
.editor-envio-cabecera span { min-width: 0; overflow-wrap: anywhere; }
.editor-lineas { display: grid; gap: 8px; }
.editor-linea {
    display: grid;
    grid-template-columns: minmax(220px, 2fr) minmax(110px, .8fr) minmax(120px, .8fr) minmax(100px, .7fr) 34px;
    gap: 8px;
    align-items: end;
    padding-bottom: 8px;
    border-bottom: 1px solid #e0e5e9;
}
.editor-linea label { margin: 0; font-size: .78rem; }
.editor-linea input { margin-bottom: 0; }
.editor-linea .quitar-linea { width: 34px; height: 37px; margin: 0; padding: 0; background: #a33030; font-size: 1.25rem; }
.editor-envio .anadir-linea { margin: 10px 0 0; }
.acciones-cumplimentacion { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; margin-top: 16px; }
.acciones-cumplimentacion button { margin: 0; }
.aviso-finalizado { margin-top: 18px; padding: 15px 16px; border-left: 4px solid #247746; background: #edf7f1; color: #315d43; }
.aviso-finalizado p { margin: 5px 0 0; }
.configurar-enlace { display: flex; align-items: end; flex-wrap: wrap; gap: 9px; margin: 14px 0; padding: 12px; background: #f5f7f9; border: 1px solid #dce2e8; }
.configurar-enlace label { flex: 1 1 280px; margin: 0; }
.configurar-enlace select, .configurar-enlace button { margin: 0; }
.resumen-enlace-compacto { margin: 12px 0; }
.privacidad-enlace { color: #667; font-size: .82rem; margin-top: 16px; }
.resultado-viaje { margin: 12px 0 18px; }
.resultado-viaje .boton-mini { margin: 0; }
.boton-mini.boton-ver-deca { background: #247746; }
.boton-mini.boton-ver-deca:hover { background: #195b34; }
.guardando-overlay {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(238, 241, 245, .88);
}
.guardando-panel {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 220px;
    padding: 20px 24px;
    border: 1px solid #bcc7d2;
    border-radius: 6px;
    background: #fff;
    color: #34495e;
    box-shadow: 0 8px 28px rgba(0, 0, 0, .2);
}
.guardando-panel strong { letter-spacing: 0; }
.guardando-spinner {
    width: 24px;
    height: 24px;
    flex: 0 0 auto;
    border: 3px solid #d7e0e8;
    border-top-color: #2456a6;
    border-radius: 50%;
    animation: girar-guardando .8s linear infinite;
}
@keyframes girar-guardando { to { transform: rotate(360deg); } }

/* ---------- Historial documental y operativo ---------- */
.historial-contenedor {
    width: min(1180px, calc(100% - 32px));
    margin: 24px auto 40px;
}
.titulo-con-acciones,
.historial-encabezado,
.cambio-cabecera {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.titulo-con-acciones { margin-bottom: 18px; }
.titulo-con-acciones h1 { margin-bottom: 4px; }
.titulo-con-acciones p { margin: 0; }
.grupo-botones { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.grupo-botones .boton-mini { margin: 0; padding: 7px 11px; }
.historial-seccion {
    margin-bottom: 18px;
    padding: 20px 22px;
    border: 1px solid #d7dee5;
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(28, 42, 55, .08);
}
.historial-encabezado { margin-bottom: 12px; }
.historial-encabezado h2 { margin: 0; font-size: 1.08rem; }
.contador-suave {
    flex: 0 0 auto;
    padding: 3px 8px;
    border-radius: 10px;
    background: #edf1f4;
    color: #53616d;
    font-size: .78rem;
    font-weight: 600;
}
.aviso-suave { padding: 14px; border: 1px solid #d8e0e7; background: #f7f9fb; color: #5b6874; }
.tabla-responsive { overflow-x: auto; }
.tabla-historial { width: 100%; border-collapse: collapse; }
.tabla-historial th,
.tabla-historial td { padding: 10px 8px; border-bottom: 1px solid #e1e6eb; text-align: left; }
.tabla-historial th { color: #52606c; background: #f5f7f9; font-size: .8rem; }
.tabla-historial tr:last-child td { border-bottom: 0; }
.tabla-historial .alinear-derecha { text-align: right; }
.tabla-historial .boton-mini { margin: 0; }
.acciones-version { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.version-inicial { color: #687581; font-size: .8rem; white-space: nowrap; }
.fila-cambios-version td { padding: 0; border-bottom: 1px solid #d8e0e6; background: #f7f9fb; }
.fila-cambios-version.oculto { display: none; }
.comparacion-version { padding: 14px 16px 16px; border-left: 3px solid #397864; text-align: left; }
.comparacion-version h3 { margin: 0 0 10px; color: #34495e; font-size: .92rem; }
.comparacion-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 5px 12px; margin-bottom: 11px; color: #65727d; font-size: .8rem; }
.comparacion-meta strong { color: #34495e; }
.comparacion-meta time { margin-left: auto; }
.aviso-comparacion { margin: 0; color: #5b6874; line-height: 1.45; }
.linea-tiempo { position: relative; margin-top: 18px; }
.linea-tiempo::before {
    content: "";
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 6px;
    width: 2px;
    background: #d5dde4;
}
.cambio-item { position: relative; display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 14px; padding-bottom: 18px; }
.cambio-item:last-child { padding-bottom: 0; }
.cambio-marca {
    position: relative;
    z-index: 1;
    width: 14px;
    height: 14px;
    margin-top: 5px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #397864;
    box-shadow: 0 0 0 1px #9ab9ae;
}
.cambio-contenido { min-width: 0; padding: 12px 14px; border: 1px solid #dde3e8; border-radius: 6px; }
.cambio-cabecera time { flex: 0 0 auto; color: #687581; font-size: .82rem; }
.cambio-cabecera .etiqueta { margin-left: 6px; }
.cambio-actor { margin: 4px 0 10px; color: #65727d; font-size: .82rem; }
.cambio-resumen { margin: 0; }
.cambio-detalles { display: grid; gap: 6px; }
.cambio-fila {
    display: grid;
    grid-template-columns: minmax(150px, .8fr) minmax(120px, 1fr) 20px minmax(120px, 1fr);
    gap: 8px;
    align-items: start;
    padding-top: 6px;
    border-top: 1px solid #edf0f2;
    overflow-wrap: anywhere;
}
.cambio-fila:first-child { border-top: 0; padding-top: 0; }
.cambio-envios { padding: 9px 10px; border: 1px solid #dfe6eb; border-radius: 5px; background: #fafbfc; }
.cambio-envios-titulo { display: block; margin-bottom: 8px; color: #34495e; }
.cambio-fila-envio { grid-template-columns: minmax(190px, 1.1fr) minmax(120px, 1fr) 20px minmax(120px, 1fr); }
.valor-anterior { color: #8a4747; text-decoration: line-through; }
.flecha-cambio { color: #7b8791; text-align: center; }

/* ---------- Importacion de clientes ---------- */
.importacion-clientes { max-width: 1280px !important; }
.panel-importacion { max-width: 720px; }
.panel-importacion input[type="file"] { background: #f7f9fb; padding: 12px; }
.panel-importacion label.check { font-weight: 500; }
.resumen-importacion {
    display: grid;
    grid-template-columns: repeat(5, minmax(110px, 1fr));
    gap: 10px;
    margin: 16px 0;
}
.resumen-importacion div {
    border: 1px solid #d5dbe1;
    border-radius: 6px;
    padding: 12px;
    background: #f7f9fb;
}
.resumen-importacion strong { display: block; font-size: 1.3rem; color: #263d54; }
.resumen-importacion span { color: #667; font-size: .85rem; }
.resumen-importacion .con-error { border-color: #e5a3a3; background: #fde8e8; }
.tabla-importacion { overflow-x: auto; margin-top: 14px; }
.tabla-importacion table.listado { min-width: 880px; }
.tabla-importacion .fila-error td { background: #fff4f4; }
.acciones-importacion { display: flex; align-items: center; gap: 10px; margin-top: 14px; }
.acciones-importacion form { margin: 0; }
.acciones-importacion button { margin: 0; }

/* ---------- Movil ---------- */
@media (max-width: 700px) {
    .tarjeta { padding: 16px 14px; margin: 12px 8px; }
    .tarjeta.ancho { max-width: none; }
    .tarjeta.ancho.admin-principal { width: auto; }
    .tarjeta.ancho.listado-principal { width: auto; padding-left: 14px; padding-right: 14px; }
    .tarjeta.ancho.usuarios-principal { width: auto; }
    .usuarios-permisos { grid-template-columns: 1fr; gap: 0; }
    .accesos-resumen { grid-template-columns: 1fr; }
    .columnas-listado-opciones { grid-template-columns: 1fr; }
    .cabecera { flex-wrap: wrap; gap: 6px; padding: 10px 12px; }
    .cabecera nav { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
    .fila { flex-direction: column; gap: 0; }
    table.listado { min-width: 1020px; }
    table.listado th, table.listado td { padding: 6px 6px; font-size: .8rem; }
    .admin-editor-cab { flex-direction: column; gap: 8px; }
    .admin-editor-cab .boton-mini { width: 100%; text-align: center; }
    .lista-cab { flex-wrap: wrap; }
    .lista-cab-acciones { width: 100%; justify-content: space-between; }
    .tarjetas-deca { grid-template-columns: 1fr; }
    .filtros { margin: 8px 0; }
    .filtros-panel summary { padding: 10px; }
    .filtros-cuerpo { grid-template-columns: 1fr; gap: 10px; padding: 10px; }
    .filtro-checks { display: grid; grid-template-columns: 1fr; gap: 7px; }
    .filtro-planificacion { min-width: 0; }
    .filtro-fechas { grid-template-columns: 1fr; gap: 8px; }
    .filtros-acciones { display: grid; grid-template-columns: 1fr; }
    .filtros-acciones .boton-mini { width: 100%; text-align: center; }
    .resumen-enlace, .datos-solo-lectura { grid-template-columns: 1fr; }
    .datos-solo-lectura .ancho-completo { grid-column: auto; }
    .recorrido-publico-cabecera { align-items: flex-start; }
    .envio-publico header { align-items: flex-start; flex-direction: column; gap: 4px; }
    .envio-publico-datos span { display: block; min-width: 0; }
    .detalle-publico > div { grid-template-columns: 1fr; gap: 3px; }
    .detalle-publico span { text-align: left; }
    .editor-envio-cabecera { align-items: flex-start; flex-direction: column; gap: 3px; }
    .editor-linea { grid-template-columns: 1fr 1fr; }
    .editor-linea .campo-descripcion { grid-column: 1 / -1; }
    .editor-linea .quitar-linea { grid-column: 2; justify-self: end; }
    .acciones-cumplimentacion { display: grid; grid-template-columns: 1fr; }
    .acciones-cumplimentacion button { width: 100%; }
    .historial-contenedor { width: auto; margin: 12px 8px 28px; }
    .historial-seccion { padding: 16px 14px; }
    .titulo-con-acciones, .cambio-cabecera { align-items: flex-start; flex-direction: column; }
    .grupo-botones { justify-content: flex-start; }
    .acciones-version { justify-content: flex-start; min-width: 225px; }
    .comparacion-meta { align-items: flex-start; flex-direction: column; }
    .comparacion-meta time { margin-left: 0; }
    .cambio-fila { grid-template-columns: 1fr; gap: 3px; }
    .cambio-fila-envio { grid-template-columns: 1fr; }
    .cambio-fila .flecha-cambio { text-align: left; }
    .filtros-maestro { grid-template-columns: 1fr; }
    .filtros-maestro-acciones { align-items: stretch; flex-direction: column; }
    .filtros-maestro-acciones button, .filtros-maestro-acciones .boton-mini { width: 100%; text-align: center; }
    .resumen-importacion { grid-template-columns: repeat(2, 1fr); }
    .acciones-importacion { align-items: stretch; flex-direction: column; }
    .acciones-importacion button { width: 100%; }
    .ayuda-acciones-caja { padding: 16px; }
    .acciones-menu-caja { padding: 16px; }
    .acciones-menu-botones { display: grid; grid-template-columns: 1fr; }
    .acciones-menu-botones .boton-mini,
    .acciones-menu-botones form,
    .acciones-menu-botones form .boton-mini { width: 100%; text-align: center; }
    .leyenda-acciones > div { grid-template-columns: 1fr; gap: 5px; }
}

.cabecera-identidad { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.marca-logo-cabecera { max-width: 150px; max-height: 34px; object-fit: contain; background: #fff; border-radius: 4px; padding: 3px 6px; }
.cabecera a.boton-personalizar { color: #fff; background: var(--marca-secundario); border: 1px solid rgba(255,255,255,.38); }
.cabecera a.boton-personalizar:hover { filter: brightness(.88); text-decoration: none; }
.marca-pie { padding: 6px 18px; background: #fff; border-bottom: 1px solid #d5dbe1; color: #596775; font-size: .78rem; text-align: right; }
.marca-pie a { color: var(--marca-principal); }
.marca-logo-login { display:block; max-width:220px; max-height:76px; object-fit:contain; object-position:left; margin:0 0 14px; }

.admin-usuarios-empresa { min-width: 180px; }
.admin-usuarios-empresa summary { cursor: pointer; color: var(--marca-principal); font-weight: 700; white-space: nowrap; }
.admin-usuarios-empresa > div { margin-top: 7px; font-size: .82rem; }
.admin-usuarios-empresa ul { margin: 6px 0 0; padding-left: 18px; }
.admin-usuarios-empresa li { margin: 4px 0; white-space: nowrap; }
.admin-usuarios-empresa .etiqueta { margin-left: 4px; font-size: .7rem; }
.admin-logins-filtros { display:flex; align-items:end; flex-wrap:wrap; gap:10px 14px; margin:14px 0 18px; }
.admin-logins-filtros label { margin:0; min-width:220px; }
.admin-logins-filtros button { margin:0; }
.admin-logins-filtros .boton-mini { margin:0; }
.etiqueta.morado { background: #7043a5; }

/* ---------- Comunicación con empresas ---------- */
.cabecera a.boton-avisos { color: #fff; background: #b36a10; border: 1px solid rgba(255,255,255,.38); }
.cabecera a.boton-avisos:hover { filter: brightness(.9); text-decoration: none; }
.comunicacion-admin-seccion { margin-top: 24px; padding-top: 4px; }
.comunicacion-admin-seccion h2 small { color: #6c7885; font-size: .72em; font-weight: 400; }
.comunicacion-hilo { margin: 16px 0; padding: 16px; border: 1px solid #d5dbe1; border-radius: 7px; background: #fbfcfd; }
.comunicacion-hilo h3 { margin: 0 0 10px; color: #263d54; font-size: 1rem; }
.comunicacion-hilo > p { margin: 8px 0 13px; white-space: normal; }
.comunicacion-hilo form { margin-top: 13px; }
.comunicacion-respuesta { margin: 9px 0; padding: 10px 12px; border-left: 4px solid #8ca0b2; background: #f1f4f7; color: #344250; }
.comunicacion-respuesta.admin { border-left-color: var(--marca-principal); background: #eaf2fb; }
.comunicacion-hilo .etiqueta { vertical-align: middle; }
.ticket-acordeon { margin: 8px 0; overflow: hidden; border: 1px solid #d5dbe1; border-radius: 7px; background: #fff; }
.ticket-summary-line { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 12px; min-height: 48px; padding: 9px 14px; cursor: pointer; list-style: none; }
.ticket-summary-line::-webkit-details-marker { display: none; }
.ticket-summary-line::before { content: "＋"; color: #506579; font-size: .9rem; }
.ticket-acordeon[open] > .ticket-summary-line::before { content: "−"; }
.ticket-resumen-asunto { grid-column: 2; overflow: hidden; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.ticket-resumen-fecha { color: #687786; font-size: .88rem; white-space: nowrap; }
.ticket-contenido { padding: 0 14px 12px; border-top: 1px solid #e1e5e9; }
.ticket-contenido .comunicacion-hilo { margin: 0; padding: 12px 0 0; border: 0; border-radius: 0; background: transparent; }
@media (max-width: 600px) {
  .ticket-summary-line { grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; padding: 9px 10px; }
  .ticket-resumen-asunto { grid-column: 2; font-size: .94rem; }
  .ticket-summary-line .etiqueta { grid-column: 3; grid-row: 1; }
  .ticket-resumen-fecha { display: none; }
}
