:root {
    --brand-gradient: linear-gradient(135deg, #7c5cfc 0%, #00d2ff 100%);
    --primary: #7c5cfc;
    --primary-dark: #9b85ff;
    --primary-light: #5a3ed4;
    --secondary: #00d2ff;
    --secondary-dark: #00b8e6;
    --secondary-light: #33ddff;
    --bg: #0f1117;
    --surface: #1a1d27;
    --surface-alt: #232633;
    --border: #2e3347;
    --border-light: #3a3f55;
    --text-primary: #e8eaed;
    --text-secondary: #8b8fa3;
    --success: #00e676;
    --warning: #ffab00;
    --danger: #ff5252;
    --shadow-sm: 0 2px 12px rgba(0, 0, 0, 0.25);
    --shadow-md: 0 12px 32px rgba(0, 0, 0, 0.4);
    --shadow-glow: 0 0 20px rgba(124, 92, 252, 0.15);
    --radius-sm: 10px;
    --radius-md: 14px;
    --radius-lg: 18px;
    --nav-bg: rgba(15, 17, 23, 0.88);
    --nav-shadow: 0 1px 8px rgba(0, 0, 0, 0.3);
    --nav-hover-bg: rgba(255, 255, 255, 0.06);
    --nav-active-bg: rgba(124, 92, 252, 0.1);
    --nav-logo-filter: brightness(1.1);
    --list-item-hover-bg: rgba(255, 255, 255, 0.05);

    /* Botones semánticos (modo oscuro) */
    --btn-edit-bg: rgba(124, 92, 252, 0.14);
    --btn-edit-border: rgba(155, 133, 255, 0.55);
    --btn-edit-text: #c4b5fd;
    --btn-edit-hover-bg: rgba(124, 92, 252, 0.28);
    --btn-danger-bg: rgba(255, 82, 82, 0.16);
    --btn-danger-border: rgba(255, 138, 128, 0.55);
    --btn-danger-text: #ff8a80;
    --btn-danger-hover-bg: rgba(255, 82, 82, 0.28);
    --btn-success-bg: rgba(0, 230, 118, 0.16);
    --btn-success-border: rgba(105, 240, 174, 0.5);
    --btn-success-text: #69f0ae;
    --btn-success-hover-bg: rgba(0, 230, 118, 0.28);
    --btn-muted-bg: var(--surface);
    --btn-muted-border: var(--border-light);
    --btn-muted-text: var(--text-primary);
    --btn-muted-hover-bg: var(--surface-alt);

    /* Burbujas / pills (modo oscuro) */
    --pill-success-bg: rgba(0, 230, 118, 0.2);
    --pill-success-border: rgba(105, 240, 174, 0.55);
    --pill-success-text: #69f0ae;
    --pill-warning-bg: rgba(255, 171, 0, 0.2);
    --pill-warning-border: rgba(255, 215, 64, 0.55);
    --pill-warning-text: #ffd740;
    --pill-danger-bg: rgba(255, 82, 82, 0.2);
    --pill-danger-border: rgba(255, 138, 128, 0.55);
    --pill-danger-text: #ff8a80;
}

[data-theme="light"] {
    --bg: #f3f5f9;
    --surface: #ffffff;
    --surface-alt: #f8f9fc;
    --border: #dde3ef;
    --border-light: #c8d0e0;
    --text-primary: #1a1d27;
    --text-secondary: #5c6378;
    --primary-dark: #5a3ed4;
    --shadow-sm: 0 2px 12px rgba(15, 17, 23, 0.08);
    --shadow-md: 0 12px 32px rgba(15, 17, 23, 0.12);
    --shadow-glow: 0 0 20px rgba(124, 92, 252, 0.08);
    --nav-bg: rgba(255, 255, 255, 0.92);
    --nav-shadow: 0 1px 8px rgba(15, 17, 23, 0.08);
    --nav-hover-bg: rgba(124, 92, 252, 0.08);
    --nav-active-bg: rgba(124, 92, 252, 0.12);
    --nav-logo-filter: none;
    --list-item-hover-bg: rgba(124, 92, 252, 0.06);

    --btn-edit-bg: rgba(124, 92, 252, 0.1);
    --btn-edit-border: rgba(90, 62, 212, 0.45);
    --btn-edit-text: #5a3ed4;
    --btn-edit-hover-bg: rgba(124, 92, 252, 0.18);
    --btn-danger-bg: rgba(198, 40, 40, 0.1);
    --btn-danger-border: rgba(198, 40, 40, 0.45);
    --btn-danger-text: #c62828;
    --btn-danger-hover-bg: rgba(198, 40, 40, 0.18);
    --btn-success-bg: rgba(46, 125, 50, 0.1);
    --btn-success-border: rgba(46, 125, 50, 0.45);
    --btn-success-text: #2e7d32;
    --btn-success-hover-bg: rgba(46, 125, 50, 0.18);
    --btn-muted-bg: var(--surface-alt);
    --btn-muted-border: var(--border);
    --btn-muted-text: var(--text-primary);
    --btn-muted-hover-bg: #eef1f7;

    --pill-success-bg: rgba(46, 125, 50, 0.12);
    --pill-success-border: rgba(46, 125, 50, 0.4);
    --pill-success-text: #2e7d32;
    --pill-warning-bg: rgba(230, 81, 0, 0.12);
    --pill-warning-border: rgba(230, 81, 0, 0.4);
    --pill-warning-text: #e65100;
    --pill-danger-bg: rgba(198, 40, 40, 0.12);
    --pill-danger-border: rgba(198, 40, 40, 0.4);
    --pill-danger-text: #c62828;
}

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

html,
body {
    margin: 0;
    padding: 0;
}

body {
    min-height: 100vh;
    background: var(--bg);
    color: var(--text-primary);
    font-family: "Inter", "Segoe UI", Roboto, Arial, sans-serif;
    line-height: 1.5;
}

body:not(.login-page) {
    display: flex;
    flex-direction: column;
}

@media (prefers-reduced-motion: no-preference) {
    html {
        scroll-behavior: smooth;
    }
}

img {
    max-width: 100%;
    display: block;
}

a {
    color: var(--secondary);
}

button,
input,
select,
textarea {
    font: inherit;
}

input,
select,
textarea {
    width: 100%;
    border: 1px solid var(--border);
    background: var(--surface-alt);
    color: var(--text-primary);
    border-radius: var(--radius-sm);
    padding: 0.75rem 0.9rem;
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

input::placeholder,
textarea::placeholder {
    color: var(--text-secondary);
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(124, 92, 252, 0.2);
}

textarea {
    min-height: 110px;
    resize: vertical;
}

button {
    border: 0;
    border-radius: var(--radius-sm);
    padding: 0.68rem 1rem;
    font-weight: 600;
    color: #fff;
    background: var(--primary);
    cursor: pointer;
    transition: transform 0.14s ease, box-shadow 0.2s ease, background 0.2s ease;
}

button:hover {
    background: var(--primary-light);
    box-shadow: 0 0 16px rgba(124, 92, 252, 0.3);
}

button:active {
    transform: translateY(1px);
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--secondary);
    outline-offset: 2px;
}

/* --- Navegación --- */

#nav-bar {
    position: sticky;
    top: 0;
    z-index: 10;
    backdrop-filter: blur(16px) saturate(1.4);
    -webkit-backdrop-filter: blur(16px) saturate(1.4);
    background: var(--nav-bg);
    border-bottom: 1px solid var(--border);
    box-shadow: var(--nav-shadow);
}

#botones {
    width: 100%;
    margin: 0;
    min-height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0 1rem;
}

#botones-izquierda {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

#botones-derecha {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: auto;
}

.nav-logo {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.5rem 0.25rem 0;
    margin-right: 0.5rem;
    border-right: 1px solid var(--border);
}

.nav-logo img {
    height: 30px;
    width: auto;
    filter: var(--nav-logo-filter);
}

#agenda,
#listado,
#comunidades,
#inicio-dashboard,
#editor,
#volver,
#btn-filtrar,
#btn-filtrar-mediador,
#btn-filtrar-aseguradora {
    background: transparent;
    color: var(--text-secondary);
    border: none;
    border-radius: var(--radius-sm);
    padding: 0.5rem 0.75rem;
    font-size: 0.82rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: color 0.18s, background 0.18s;
    position: relative;
}

#agenda:hover,
#listado:hover,
#comunidades:hover,
#inicio-dashboard:hover,
#editor:hover,
#volver:hover,
#btn-filtrar:hover,
#btn-filtrar-mediador:hover,
#btn-filtrar-aseguradora:hover {
    color: var(--text-primary);
    background: var(--nav-hover-bg);
}

#agenda.is-active,
#listado.is-active,
#comunidades.is-active,
#inicio-dashboard.is-active,
#editor.is-active {
    color: var(--primary-dark);
    background: var(--nav-active-bg);
    box-shadow: none;
    border: none;
}

#agenda.is-active::after,
#listado.is-active::after,
#comunidades.is-active::after,
#inicio-dashboard.is-active::after,
#editor.is-active::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 2px;
    background: var(--primary);
    border-radius: 2px;
}

#agenda i,
#listado i,
#comunidades i,
#inicio-dashboard i,
#editor i {
    font-size: 0.85rem;
    opacity: 0.8;
}

/* --- Títulos de sección --- */

#titulo-comunidades,
#titulo-listado {
    width: calc(100% - 2.4rem);
    margin: 1.6rem 1.2rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

#titulo-comunidades h1,
#titulo-listado h1 {
    margin: 0;
    font-size: clamp(1.45rem, 2vw, 2rem);
    line-height: 1.15;
}

/* --- Agenda (mediadores + aseguradoras) --- */

.agenda-layout {
    width: calc(100% - 2.4rem);
    margin: 1.4rem 1.2rem 1.6rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    align-items: start;
}

.agenda-columna {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    padding: 1rem;
    min-height: 420px;
}

.agenda-columna__header {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.agenda-columna__header h1 {
    margin: 0;
    font-size: clamp(1.2rem, 1.8vw, 1.6rem);
}

.agenda-columna .filtro-inline {
    width: 100%;
    min-width: 0;
    flex-wrap: wrap;
}

.agenda-columna .filtro-inline input {
    min-width: 0;
    flex: 1 1 140px;
}

.agenda-columna #listado-mediadores,
.agenda-columna #listado-aseguradoras {
    width: 100%;
    margin: 0;
}

/* --- Dashboard inicio --- */

.inicio-layout {
    width: calc(100% - 2.4rem);
    margin: 1.4rem 1.2rem 1.6rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem;
}

.inicio-columna-toolbar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    width: 100%;
}

.inicio-columna {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    padding: 1rem;
    min-height: 420px;
}

.inicio-bienvenida {
    width: calc(100% - 2.4rem);
    margin: 1.2rem 1.2rem 0.2rem;
}

.inicio-bienvenida h1 {
    margin: 0 0 0.2rem;
    font-size: clamp(1.25rem, 2vw, 1.8rem);
}

.inicio-bienvenida p {
    margin: 0;
    color: var(--text-secondary);
}

.inicio-brand {
    background: var(--brand-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-weight: 800;
}

.inicio-columna__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.inicio-columna__header h2 {
    margin: 0 0 0.75rem;
    font-size: 1.1rem;
}

.btn-accion-header {
    padding: 0.45rem 1rem;
    font-size: 0.85rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--btn-edit-border);
    background: var(--btn-edit-bg);
    color: var(--btn-edit-text);
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
    white-space: nowrap;
}

.btn-accion-header:hover {
    background: var(--btn-edit-hover-bg);
    border-color: var(--primary);
    color: var(--btn-edit-text);
    box-shadow: 0 0 10px rgba(124, 92, 252, 0.2);
}

.inicio-filtros {
    display: grid;
    grid-template-columns: minmax(140px, 1fr) minmax(110px, 0.8fr) minmax(140px, 1.2fr) 160px auto;
    gap: 0.5rem;
    margin-bottom: 0.8rem;
    align-items: center;
}

.inicio-card {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface-alt);
    padding: 0.8rem;
    margin-bottom: 0.7rem;
    transition: border-color 0.2s ease;
}

.inicio-card:hover {
    border-color: var(--border-light);
}

.inicio-card h3 {
    margin: 0;
    font-size: 1rem;
}

.inicio-card__fila-principal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.5rem;
}

.inicio-card__comunidad {
    flex: 1 1 200px;
    min-width: 0;
}

.inicio-card__resumen {
    margin: 0.35rem 0 0;
    font-size: 0.88rem;
    color: var(--text-secondary);
    line-height: 1.45;
    word-break: break-word;
}

.inicio-card__meta {
    font-size: 0.88rem;
    color: var(--text-primary);
    white-space: nowrap;
}

.inicio-card__meta--estado {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    white-space: normal;
}

.inicio-card p {
    margin: 0.25rem 0;
}

.inicio-card__acciones {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.65rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.inicio-paginacion {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.8rem;
}

.inicio-paginacion span {
    color: var(--text-secondary);
    font-size: 0.92rem;
}

.filtro-inline {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: min(480px, 100%);
}

.filtro-inline input {
    min-width: 220px;
}

#titulo-comunidades .filtro-inline {
    min-width: min(560px, 100%);
    flex-wrap: nowrap;
    align-items: stretch;
}

#titulo-comunidades .filtro-inline > input,
#titulo-comunidades .filtro-inline > select,
#titulo-comunidades #btn-nueva-comunidad {
    height: 2.85rem;
    box-sizing: border-box;
}

#titulo-comunidades #btn-nueva-comunidad {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    flex: 0 0 auto;
    min-width: 12rem;
    padding: 0 1.25rem;
    line-height: 1.2;
}

/* --- Contenido principal --- */

#contenido-comunidades,
#informacion-general,
#contenido-listado,
#listado-aseguradoras,
#listado-mediadores {
    width: calc(100% - 2.4rem);
    margin: 0 1.2rem 2rem;
}

#contenido-comunidades {
    margin-bottom: 0.55rem;
}

#paginacion-comunidades {
    width: calc(100% - 2.4rem);
    margin: 0 1.2rem 2.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
}

#paginacion-comunidades button {
    padding: 0.32rem 0.75rem;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.2;
    background: var(--btn-muted-bg);
    color: var(--btn-muted-text);
    border: 1px solid var(--btn-muted-border);
    box-shadow: none;
}

#paginacion-comunidades button:hover:not(:disabled) {
    background: var(--btn-muted-hover-bg);
    border-color: var(--border-light);
    color: var(--text-primary);
    box-shadow: none;
}

#paginacion-comunidades button:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

#paginacion-comunidades span {
    color: var(--text-secondary);
    font-size: 0.82rem;
    font-weight: 600;
    min-width: 7.5rem;
    text-align: center;
}

#paginacion-siniestros-inicio {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    margin-top: 0.55rem;
}

#paginacion-siniestros-inicio button {
    padding: 0.32rem 0.75rem;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.2;
    background: var(--btn-muted-bg);
    color: var(--btn-muted-text);
    border: 1px solid var(--btn-muted-border);
    box-shadow: none;
}

#paginacion-siniestros-inicio button:hover:not(:disabled) {
    background: var(--btn-muted-hover-bg);
    border-color: var(--border-light);
    color: var(--text-primary);
    box-shadow: none;
}

#paginacion-siniestros-inicio button:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

#paginacion-siniestros-inicio span {
    color: var(--text-secondary);
    font-size: 0.82rem;
    font-weight: 600;
    min-width: 7.5rem;
    text-align: center;
}

#listado-siniestros-inicio .inicio-card:last-child {
    margin-bottom: 0.35rem;
}

#contenido-comunidades,
#contenido-listado,
#listado-aseguradoras,
#listado-mediadores {
    display: grid;
    gap: 1rem;
}

#titulo-listado .filtro-inline {
    min-width: 0;
    margin-left: auto;
    justify-content: flex-end;
}

/* --- Tabla Listado --- */

#tabla-listado-wrapper {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    overflow: auto;
}

#tabla-listado {
    width: 100%;
    border-collapse: collapse;
    min-width: 980px;
    font-size: 0.95rem;
}

#tabla-listado th,
#tabla-listado td {
    text-align: left;
    white-space: nowrap;
    padding: 0.7rem 0.8rem;
    border-bottom: 1px solid var(--border);
}

#tabla-listado th {
    position: sticky;
    top: 0;
    background: var(--surface-alt);
    color: var(--primary-dark);
    font-weight: 700;
    z-index: 1;
}

#tabla-listado tbody tr:nth-child(even) {
    background: rgba(35, 38, 51, 0.5);
}

#tabla-listado tbody tr:hover {
    background: rgba(124, 92, 252, 0.06);
}

/* --- Editor (vista tipo Excel) --- */

#editor-barra {
    width: calc(100% - 2.4rem);
    margin: 0.65rem 1.2rem 0.45rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

#editor-barra .acciones-editor {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
}

#editor-barra .acciones-editor button {
    padding: 0.32rem 0.65rem;
    font-size: 0.8rem;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

#editor-barra .acciones-editor button i {
    font-size: 0.85em;
}

#btn-guardar-editor {
    background: var(--primary);
    color: #fff;
    border: 1px solid var(--primary);
}

#btn-guardar-editor:hover:not(:disabled) {
    background: var(--primary-light);
    border-color: var(--primary-light);
    color: #fff;
    box-shadow: 0 0 14px rgba(124, 92, 252, 0.35);
}

#btn-guardar-editor:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    box-shadow: none;
}

#btn-exportar-editor,
#btn-importar-editor,
#btn-exportar-listado {
    background: var(--surface);
    color: var(--text-primary);
    border: 1px solid var(--border);
}

#btn-exportar-editor:hover,
#btn-importar-editor:hover,
#btn-exportar-listado:hover {
    border-color: var(--secondary);
    color: var(--secondary);
    background: rgba(0, 210, 255, 0.08);
}

#editor-toolbar.editor-barra-izquierda {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex: 1;
    min-width: 0;
}

#editor-buscar {
    min-width: 200px;
    max-width: 320px;
    padding: 0.32rem 0.5rem;
    font-size: 0.8rem;
    line-height: 1.2;
}

.editor-btn-secundario {
    background: var(--btn-muted-bg);
    color: var(--btn-muted-text);
    border: 1px solid var(--btn-muted-border);
    padding: 0.32rem 0.55rem;
    font-size: 0.78rem;
    line-height: 1.2;
}

.editor-btn-secundario:hover {
    border-color: var(--secondary);
    color: var(--secondary);
    background: rgba(0, 210, 255, 0.1);
}

.editor-resumen-busqueda {
    color: var(--text-secondary);
    font-size: 0.78rem;
    white-space: nowrap;
}

#contenido-editor {
    width: calc(100% - 2.4rem);
    margin: 0 1.2rem 1rem;
    display: grid;
    gap: 0;
}

#tabla-editor-wrapper {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
    overflow: auto;
    max-height: calc(100vh - 155px);
}

#tabla-editor {
    width: 100%;
    border-collapse: collapse;
    min-width: 1060px;
    font-size: 0.78rem;
    table-layout: fixed;
}

#tabla-editor th,
#tabla-editor td {
    text-align: left;
    vertical-align: middle;
    padding: 0.12rem 0.28rem;
    border-bottom: 1px solid var(--border);
    overflow: hidden;
    line-height: 1.15;
}

#tabla-editor th:nth-child(1),
#tabla-editor td:nth-child(1) {
    width: 10%;
    max-width: 9.5rem;
}

#tabla-editor th:nth-child(2),
#tabla-editor td:nth-child(2) {
    width: 5.6rem;
    min-width: 5.6rem;
    max-width: 5.6rem;
}

#tabla-editor th:nth-child(3),
#tabla-editor td:nth-child(3) {
    width: 9%;
    min-width: 7.25rem;
    max-width: 9.5rem;
}

#tabla-editor th:nth-child(4),
#tabla-editor td:nth-child(4) {
    width: 5.75rem;
    min-width: 5.75rem;
    max-width: 5.75rem;
    padding-left: 0.15rem;
    padding-right: 0.15rem;
}

#tabla-editor th:nth-child(5),
#tabla-editor td:nth-child(5),
#tabla-editor th:nth-child(6),
#tabla-editor td:nth-child(6) {
    width: 8.1rem;
    min-width: 8.1rem;
    max-width: 8.1rem;
}

#tabla-editor th:nth-child(7),
#tabla-editor td:nth-child(7) {
    width: 6.6rem;
    min-width: 6.6rem;
    max-width: 6.6rem;
    padding-left: 0.08rem;
    padding-right: 0.08rem;
    overflow: visible;
    text-align: center;
}

#tabla-editor th:nth-child(8),
#tabla-editor td:nth-child(8) {
    width: 4.6rem;
    min-width: 4.6rem;
    max-width: 4.6rem;
    padding-left: 0.1rem;
    padding-right: 0.1rem;
}

#tabla-editor th:nth-child(9),
#tabla-editor td:nth-child(9),
#tabla-editor th:nth-child(10),
#tabla-editor td:nth-child(10) {
    width: 6.25rem;
    min-width: 6.25rem;
    max-width: 6.75rem;
}

#tabla-editor th:nth-child(11),
#tabla-editor td:nth-child(11) {
    width: 4.6rem;
    min-width: 4.6rem;
    max-width: 4.6rem;
    padding-left: 0.1rem;
    padding-right: 0.1rem;
}

#tabla-editor td.celda-editor--mediador {
    overflow: visible;
    position: relative;
}

#tabla-editor .editor-autocomplete {
    position: relative;
    width: 100%;
}

#tabla-editor .editor-autocomplete__lista {
    position: absolute;
    top: calc(100% + 1px);
    left: 0;
    right: 0;
    z-index: 30;
    margin: 0;
    padding: 0.15rem 0;
    list-style: none;
    max-height: 9rem;
    overflow-y: auto;
    background: var(--surface);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-md);
}

#tabla-editor .editor-autocomplete__item {
    padding: 0.22rem 0.4rem;
    font-size: 0.78rem;
    line-height: 1.2;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--text-primary);
}

#tabla-editor .editor-autocomplete__item:hover,
#tabla-editor .editor-autocomplete__item--activo {
    background: rgba(124, 92, 252, 0.15);
    color: var(--primary-dark);
}

#tabla-editor td:nth-child(2) input {
    padding-left: 0.3rem;
    padding-right: 0.3rem;
    letter-spacing: 0.01em;
}

#tabla-editor td:nth-child(3) input {
    padding-left: 0.35rem;
    padding-right: 0.35rem;
}

#tabla-editor td:nth-child(4) input {
    padding-left: 0.2rem;
    padding-right: 0.2rem;
}

#tabla-editor td:nth-child(8) input,
#tabla-editor td:nth-child(11) input {
    padding-left: 0.1rem;
    padding-right: 0.1rem;
    font-size: 0.76rem;
}

#tabla-editor td.celda-editor--cobertura {
    overflow: visible;
    vertical-align: middle;
}

.editor-cobertura-checks {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0.18rem;
    flex-wrap: nowrap;
}

.editor-cobertura-check {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.02rem;
    min-width: 0;
    font-size: 0.58rem;
    line-height: 1;
    color: var(--text-secondary);
    cursor: pointer;
}

.editor-cobertura-check input[type="checkbox"] {
    width: 0.78rem;
    height: 0.78rem;
    min-width: 0;
    margin: 0;
    padding: 0;
    flex: 0 0 auto;
    accent-color: var(--primary);
}

.editor-cobertura-check span {
    font-size: 0.58rem;
    line-height: 1;
    letter-spacing: -0.02em;
}

#tabla-editor th {
    position: sticky;
    top: 0;
    background: var(--surface-alt);
    color: var(--primary-dark);
    font-weight: 700;
    z-index: 2;
    white-space: nowrap;
    font-size: 0.76rem;
    padding-top: 0.2rem;
    padding-bottom: 0.2rem;
}

#tabla-editor td.celda-editor--comunidad {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--surface);
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
    min-width: 0;
    max-width: 9.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    box-shadow: 1px 0 0 var(--border);
    font-size: 0.78rem;
}

#tabla-editor th:first-child {
    position: sticky;
    left: 0;
    z-index: 3;
    box-shadow: 1px 0 0 var(--border);
}

#tabla-editor tbody tr:nth-child(even) td:not(.celda-editor--comunidad) {
    background: rgba(35, 38, 51, 0.4);
}

#tabla-editor tbody tr:hover td:not(.celda-editor--comunidad) {
    background: rgba(124, 92, 252, 0.06);
}

#tabla-editor tbody tr.fila-editor--modificada td.celda-editor--comunidad {
    box-shadow: inset 4px 0 0 var(--secondary);
}

#tabla-editor tbody tr.fila-editor--pendiente:not(.fila-editor--modificada) td.celda-editor--comunidad {
    box-shadow: inset 4px 0 0 var(--warning);
}

#tabla-editor tbody tr.fila-editor--modificada.fila-editor--pendiente td.celda-editor--comunidad {
    box-shadow: inset 4px 0 0 var(--warning), inset 8px 0 0 var(--secondary);
}

#tabla-editor .celda-editor input,
#tabla-editor .celda-editor select {
    width: 100%;
    min-width: 0;
    border: 1px solid transparent;
    border-radius: 2px;
    padding: 0.14rem 0.22rem;
    background: transparent;
    color: var(--text-primary);
    font: inherit;
    font-size: 0.78rem;
    line-height: 1.15;
    min-height: 1.35rem;
}

#tabla-editor .celda-editor input[type="date"] {
    padding: 0.1rem 0.15rem;
    color-scheme: dark;
}

#tabla-editor .celda-editor select {
    padding-right: 1.1rem;
}

#tabla-editor .celda-editor input:hover,
#tabla-editor .celda-editor select:hover {
    border-color: var(--border-light);
    background: var(--surface-alt);
}

#tabla-editor .celda-editor input:focus,
#tabla-editor .celda-editor select:focus {
    border-color: var(--secondary);
    background: var(--surface-alt);
    outline: none;
    box-shadow: 0 0 0 1px rgba(0, 210, 255, 0.2);
}

#tabla-editor .celda-editor--modificada input,
#tabla-editor .celda-editor--modificada select {
    border-color: var(--warning);
    background: rgba(255, 171, 0, 0.08);
}

#tabla-editor td.celda-editor--alerta {
    background: rgba(255, 82, 82, 0.08) !important;
}

#tabla-editor tbody tr:nth-child(even) td.celda-editor--alerta {
    background: rgba(255, 82, 82, 0.12) !important;
}

#tabla-editor tbody tr:hover td.celda-editor--alerta {
    background: rgba(255, 82, 82, 0.15) !important;
}

#tabla-editor .celda-editor--alerta input,
#tabla-editor .celda-editor--alerta select {
    background: rgba(255, 82, 82, 0.08);
    border-color: var(--danger);
    box-shadow: inset 0 0 0 1px rgba(255, 82, 82, 0.25);
    color: #ff8a80;
}

#tabla-editor .celda-editor--alerta input::placeholder,
#tabla-editor .celda-editor--alerta select option[value=""] {
    color: #ff5252;
}

#tabla-editor .celda-editor--alerta input:hover,
#tabla-editor .celda-editor--alerta select:hover {
    background: rgba(255, 82, 82, 0.12);
    border-color: #ff6e6e;
}

#tabla-editor .celda-editor--alerta input:focus,
#tabla-editor .celda-editor--alerta select:focus {
    background: var(--surface-alt);
    border-color: var(--danger);
    box-shadow: 0 0 0 1px rgba(255, 82, 82, 0.35);
}

/* --- Cards de entidades --- */

.comunidad,
.aseguradora,
.mediador,
.poliza-item,
.siniestro-item {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    transition: transform 0.18s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.comunidad:hover,
.aseguradora:hover,
.mediador:hover,
.poliza-item:hover,
.siniestro-item:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-glow);
    border-color: var(--border-light);
}

.comunidad {
    padding: 1rem;
    display: grid;
    grid-template-columns: auto minmax(260px, 1fr) auto;
    grid-template-rows: auto auto;
    align-items: center;
    gap: 0.85rem 1rem;
}

.comunidad>.estado-badge {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: center;
}

.comunidad>.nombre {
    grid-column: 2;
    grid-row: 1 / span 2;
}

.comunidad--inactiva {
    opacity: 0.82;
}

.nombre,
.telefono,
.email,
.direccion {
    color: var(--text-primary);
}

.nombre {
    font-weight: 600;
}

.aviso-vencimiento {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    min-width: 190px;
    text-align: center;
    font-size: 0.86rem;
    font-weight: 700;
    color: var(--pill-warning-text);
    background: var(--pill-warning-bg);
    border: 1px solid var(--pill-warning-border);
    padding: 0.23rem 0.55rem;
    border-radius: 999px;
}

.acciones {
    grid-column: 3;
    grid-row: 2;
    justify-self: end;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.55rem;
}

.btn-consultar-informacion,
.btn-consultar-siniestros,
.btn-abrir-agregar-informacion,
.btn-ver-siniestro {
    background: var(--btn-edit-bg);
    border: 1px solid var(--btn-edit-border);
    color: var(--btn-edit-text);
    padding: 0.5rem 0.75rem;
    font-size: 0.9rem;
}

.btn-consultar-informacion:hover,
.btn-consultar-siniestros:hover,
.btn-abrir-agregar-informacion:hover,
.btn-ver-siniestro:hover {
    background: var(--btn-edit-hover-bg);
    border-color: var(--primary);
    color: var(--btn-edit-text);
    box-shadow: 0 0 10px rgba(124, 92, 252, 0.2);
}

/* Botones de creación: Nuevo/Nueva (estilo primario sólido) */
.btn-nuevo,
.btn-abrir-nueva-poliza,
.btn-abrir-siniestro,
#btn-nueva-comunidad,
#btn-nuevo-mediador,
#btn-nueva-aseguradora,
#btn-nuevo-siniestro-inicio,
#btn-nueva-poliza-editor,
#excel-sin-nuevo,
#excel-com-nueva,
#excel-agenda-nuevo {
    background: var(--primary);
    color: #fff;
    border: 1px solid var(--primary);
    box-shadow: none;
}

.btn-nuevo:hover,
.btn-abrir-nueva-poliza:hover,
.btn-abrir-siniestro:hover,
#btn-nueva-comunidad:hover,
#btn-nuevo-mediador:hover,
#btn-nueva-aseguradora:hover,
#btn-nuevo-siniestro-inicio:hover,
#btn-nueva-poliza-editor:hover,
#excel-sin-nuevo:hover,
#excel-com-nueva:hover,
#excel-agenda-nuevo:hover {
    background: var(--primary-light);
    border-color: var(--primary-light);
    color: #fff;
    box-shadow: 0 0 16px rgba(124, 92, 252, 0.3);
}

.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border-radius: 999px;
    padding: 0.2rem 0.68rem;
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    border: 1px solid var(--border-light);
    color: var(--text-primary);
    background: var(--surface-alt);
}

.status-pill--success {
    background: var(--pill-success-bg);
    border-color: var(--pill-success-border);
    color: var(--pill-success-text);
}

.status-pill--warning {
    background: var(--pill-warning-bg);
    border-color: var(--pill-warning-border);
    color: var(--pill-warning-text);
}

.status-pill--danger {
    background: var(--pill-danger-bg);
    border-color: var(--pill-danger-border);
    color: var(--pill-danger-text);
}

.status-pill--neutral {
    background: var(--surface-alt);
    border-color: var(--border-light);
    color: var(--text-secondary);
}

.status-siniestro--en-curso {
    background: rgba(66, 165, 245, 0.22);
    border-color: rgba(100, 181, 246, 0.55);
    color: #90caf9;
}

.status-siniestro--pendiente-seguro {
    background: rgba(255, 171, 0, 0.22);
    border-color: rgba(255, 215, 64, 0.55);
    color: #ffd740;
}

.status-siniestro--tramitado-indemnizado {
    background: rgba(0, 230, 118, 0.22);
    border-color: rgba(105, 240, 174, 0.55);
    color: #69f0ae;
}

.status-siniestro--tramitado-sin-indemnizar {
    background: rgba(38, 198, 218, 0.22);
    border-color: rgba(77, 208, 225, 0.55);
    color: #4dd0e1;
}

.status-siniestro--no-cubierto {
    background: rgba(255, 82, 82, 0.22);
    border-color: rgba(255, 138, 128, 0.55);
    color: #ff8a80;
}

.status-siniestro--repara-comunidad {
    background: rgba(171, 71, 188, 0.22);
    border-color: rgba(206, 147, 216, 0.55);
    color: #ce93d8;
}

.status-siniestro--ec-repara-seguro {
    background: rgba(255, 109, 0, 0.22);
    border-color: rgba(255, 183, 77, 0.55);
    color: #ffb74d;
}

.status-siniestro--ec-repara-comunidad {
    background: rgba(92, 107, 192, 0.22);
    border-color: rgba(159, 168, 218, 0.55);
    color: #9fa8da;
}

.status-siniestro--rc-pendiente-seguro {
    background: rgba(236, 64, 122, 0.22);
    border-color: rgba(244, 143, 177, 0.55);
    color: #f48fb1;
}

[data-theme="light"] .status-siniestro--en-curso {
    background: rgba(21, 101, 192, 0.12);
    border-color: rgba(21, 101, 192, 0.4);
    color: #1565c0;
}

[data-theme="light"] .status-siniestro--pendiente-seguro {
    background: rgba(230, 81, 0, 0.12);
    border-color: rgba(230, 81, 0, 0.4);
    color: #e65100;
}

[data-theme="light"] .status-siniestro--tramitado-indemnizado {
    background: rgba(46, 125, 50, 0.12);
    border-color: rgba(46, 125, 50, 0.4);
    color: #2e7d32;
}

[data-theme="light"] .status-siniestro--tramitado-sin-indemnizar {
    background: rgba(0, 131, 143, 0.12);
    border-color: rgba(0, 131, 143, 0.4);
    color: #00838f;
}

[data-theme="light"] .status-siniestro--no-cubierto {
    background: rgba(198, 40, 40, 0.12);
    border-color: rgba(198, 40, 40, 0.4);
    color: #c62828;
}

[data-theme="light"] .status-siniestro--repara-comunidad {
    background: rgba(123, 31, 162, 0.12);
    border-color: rgba(123, 31, 162, 0.4);
    color: #7b1fa2;
}

[data-theme="light"] .status-siniestro--ec-repara-seguro {
    background: rgba(239, 108, 0, 0.12);
    border-color: rgba(239, 108, 0, 0.4);
    color: #ef6c00;
}

[data-theme="light"] .status-siniestro--ec-repara-comunidad {
    background: rgba(57, 73, 171, 0.12);
    border-color: rgba(57, 73, 171, 0.4);
    color: #3949ab;
}

[data-theme="light"] .status-siniestro--rc-pendiente-seguro {
    background: rgba(194, 24, 91, 0.12);
    border-color: rgba(194, 24, 91, 0.4);
    color: #c2185b;
}

.aseguradora,
.mediador {
    padding: 0.95rem 1rem;
    display: grid;
    gap: 0.35rem;
}

.acciones-listado {
    display: flex;
    justify-content: flex-end;
    gap: 0.45rem;
    margin-top: 0.4rem;
}

/* Botones Editar / Eliminar unificados */
.btn-editar-item,
.btn-editar-poliza,
.btn-accion-secundaria {
    background: var(--btn-edit-bg);
    border: 1px solid var(--btn-edit-border);
    color: var(--btn-edit-text);
    padding: 0.45rem 0.72rem;
    font-size: 0.88rem;
    box-shadow: none;
}

.btn-editar-item:hover,
.btn-editar-poliza:hover,
.btn-accion-secundaria:hover {
    background: var(--btn-edit-hover-bg);
    border-color: var(--primary);
    color: var(--btn-edit-text);
    box-shadow: 0 0 10px rgba(124, 92, 252, 0.2);
}

.btn-eliminar-item,
.btn-eliminar-poliza,
.btn-eliminar-comentario {
    background: var(--btn-danger-bg);
    border: 1px solid var(--btn-danger-border);
    color: var(--btn-danger-text);
    padding: 0.45rem 0.72rem;
    font-size: 0.88rem;
    box-shadow: none;
}

.btn-eliminar-item:hover,
.btn-eliminar-poliza:hover,
.btn-eliminar-comentario:hover {
    background: var(--btn-danger-hover-bg);
    border-color: var(--danger);
    color: var(--btn-danger-text);
    box-shadow: 0 0 10px rgba(255, 82, 82, 0.25);
}

.btn-eliminar-comentario {
    padding: 0.3rem 0.6rem;
    font-size: 0.82rem;
}

.telefono,
.email,
.direccion {
    color: var(--text-secondary);
}

.poliza-item,
.siniestro-item {
    margin-bottom: 1rem;
    padding: 1rem;
}

.info-group p {
    margin: 0.3rem 0;
}

.info-group strong {
    color: var(--text-primary);
}

/* --- Información general de comunidad --- */

#informacion-general .poliza-item {
    padding: 1.15rem 1.2rem;
}

.estado-poliza-item {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.7rem;
}

#informacion-general .info-group--poliza {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 0.5rem 1rem;
}

#informacion-general .dato-poliza {
    margin: 0;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 0.6rem 0.75rem;
    display: grid;
    gap: 0.2rem;
}

#informacion-general .dato-poliza__label {
    display: inline-block;
    color: var(--text-secondary);
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

#informacion-general .dato-poliza__value {
    color: var(--text-primary);
    font-weight: 600;
    font-size: 0.98rem;
    overflow-wrap: anywhere;
}

.pdf-group {
    margin-top: 1rem;
    border-top: 1px solid var(--border);
    padding-top: 0.85rem;
}

.pdf-group--colapsable {
    padding-top: 0.85rem;
}

.pdf-group__toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.65rem 0.75rem;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 10px;
    color: var(--text-primary);
    font-weight: 600;
    font-size: 0.95rem;
    cursor: pointer;
    text-align: left;
}

.pdf-group__toggle:hover {
    border-color: var(--border-light);
}

.pdf-group__icono {
    transition: transform 0.2s ease;
    color: var(--secondary);
    font-size: 0.85rem;
}

.pdf-group__toggle--abierto .pdf-group__icono {
    transform: rotate(90deg);
}

.pdf-group__contenido {
    margin-top: 0.75rem;
}

.pdf-group__contenido.oculto {
    display: none;
}

.pdf-docs-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.75rem;
}

.pdf-docs-select {
    flex: 1 1 12rem;
    min-width: 10rem;
    max-width: 22rem;
}

.pdf-docs-toolbar__acciones {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    margin-left: auto;
}

.pdf-docs-upload {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm, 10px);
    background: var(--surface-alt);
    padding: 0.85rem;
    margin-bottom: 0.75rem;
    display: grid;
    gap: 0.65rem;
}

.pdf-docs-upload.oculto {
    display: none;
}

.pdf-docs-upload__acciones {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
}

.pdf-group h3 {
    margin: 0 0 0.6rem;
}

iframe {
    width: 100%;
    min-height: 360px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface-alt);
}

.pdf-group a,
.pdf-link {
    display: inline-block;
    margin-top: 0.6rem;
    font-weight: 600;
    color: var(--secondary);
}

.acciones-poliza {
    margin-top: 0;
    display: flex;
    justify-content: flex-start;
    gap: 0.5rem;
    flex-wrap: wrap;
}

#informacion-general .info-group--poliza .acciones-poliza {
    grid-column: 1 / span 2;
    align-self: start;
}

/* --- Comentarios siniestro --- */

.comentarios-siniestro,
.nuevo-comentario-siniestro {
    margin-top: 1rem;
    border-top: 1px solid var(--border);
    padding-top: 1rem;
}

.comentarios-siniestro h3,
.nuevo-comentario-siniestro h3 {
    margin: 0 0 0.7rem;
}

.lista-comentarios {
    display: grid;
    gap: 0.75rem;
}

.comentario-item {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface-alt);
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
}

.comentario-item .pdf-link {
    margin-top: 0.15rem;
}

.comentario-item .btn-eliminar-comentario {
    margin-top: 0.35rem;
}

.comentario-meta {
    color: var(--text-secondary);
    font-size: 0.9rem;
    font-weight: 600;
}

.comentario-texto {
    margin: 0.45rem 0 0;
}

.formulario-comentario {
    display: grid;
    gap: 0.75rem;
}

.comentario-form-item label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.comentario-ayuda,
.nombre-archivo-seleccionado {
    color: var(--text-secondary);
    font-size: 0.86rem;
}

.acciones-comentario {
    display: flex;
    justify-content: flex-end;
    gap: 0.45rem;
}

/* --- Modales --- */

.modal {
    position: fixed;
    inset: 0;
    z-index: 50;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.modal-contenido {
    width: min(680px, 100%);
    max-height: 92vh;
    overflow-y: auto;
    border-radius: var(--radius-lg);
    border: 1px solid var(--border-light);
    background: var(--surface);
    box-shadow: var(--shadow-md);
    padding: 1rem 1.15rem 1.2rem;
}

.modal-contenido--opciones {
    width: min(720px, 100%);
}

.modal-opciones__subtitulo {
    margin: -0.55rem 0 1.1rem;
    color: var(--text-secondary);
    font-size: 0.92rem;
}

.modal-opciones__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

#opciones-siniestros-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.modal-opcion-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    text-align: left;
    padding: 1rem 0.9rem;
    min-height: 6.5rem;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    box-shadow: none;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.modal-opcion-card:hover {
    background: var(--btn-edit-bg);
    border-color: var(--btn-edit-border);
    color: var(--text-primary);
    box-shadow: 0 0 12px rgba(124, 92, 252, 0.18);
}

.modal-opcion-card__titulo {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--text-primary);
}

.modal-opcion-card__desc {
    font-size: 0.84rem;
    font-weight: 500;
    color: var(--text-secondary);
    line-height: 1.35;
}

@media (max-width: 640px) {
    .modal-opciones__grid,
    #opciones-siniestros-grid {
        grid-template-columns: 1fr;
    }
}

.cerrar-modal {
    background: transparent;
    color: var(--text-secondary);
    font-size: 1.7rem;
    line-height: 1;
    padding: 0.1rem 0.3rem;
    margin-left: auto;
    display: block;
}

.cerrar-modal:hover {
    background: transparent;
    color: var(--text-primary);
    box-shadow: none;
}

.titulo h2 {
    margin: 0.25rem 0 1rem;
}

.form-group {
    margin-bottom: 0.8rem;
}

.form-group>label {
    display: block;
    margin: 0 0 0.32rem;
    color: var(--text-secondary);
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.form-hint {
    display: block;
    margin-top: 0.35rem;
    color: var(--text-secondary);
    font-size: 0.82rem;
}

.form-row--docs {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.75rem;
    align-items: end;
}

.form-row--docs .form-group {
    min-width: 0;
    width: 100%;
    margin-bottom: 0;
}

.form-row--docs .form-group input[type="text"],
.form-row--docs .form-group input[type="file"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

@media (max-width: 560px) {
    .form-row--docs {
        grid-template-columns: 1fr;
    }
}

.np-docs-pendientes {
    margin: 0.5rem 0 0.85rem;
    display: grid;
    gap: 0.65rem;
}

.np-docs-pendientes__acciones {
    display: flex;
    justify-content: flex-start;
}

.np-docs-lista {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}

.np-docs-lista:empty {
    display: none;
}

.np-docs-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm, 10px);
    background: var(--surface-alt);
}

.np-docs-item__info {
    min-width: 0;
    display: grid;
    gap: 0.15rem;
}

.np-docs-item__titulo {
    color: var(--text-primary);
    font-weight: 600;
    font-size: 0.9rem;
}

.np-docs-item__archivo {
    color: var(--text-secondary);
    font-size: 0.8rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.campo-obligatorio {
    color: var(--danger);
    font-weight: 700;
}

.texto-obligatorio {
    margin: 0 0 0.7rem;
    color: var(--text-secondary);
    font-size: 0.9rem;
}

.texto-obligatorio>span {
    color: var(--danger);
    font-weight: 700;
}

#formAgregarInformacion .form-group>label,
#formNuevaPoliza .form-group>label {
    display: block;
    margin: 0 0 0.32rem;
    color: var(--text-secondary);
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.acciones-modal {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.55rem;
}

.btn-cancelar,
#btnCancelarModalSiniestro,
#btnCancelarModalAgregarInformacion,
.modal-confirm__btn-cancel {
    background: var(--btn-muted-bg);
    color: var(--btn-muted-text);
    border: 1px solid var(--btn-muted-border);
}

.btn-cancelar:hover,
#btnCancelarModalSiniestro:hover,
#btnCancelarModalAgregarInformacion:hover,
.modal-confirm__btn-cancel:hover {
    background: var(--btn-muted-hover-bg);
    border-color: var(--border-light);
    color: var(--btn-muted-text);
    box-shadow: none;
}

.oculto {
    display: none !important;
}

/* --- Estados vacíos y feedback --- */

.empty-state,
.feedback-message {
    border: 1px dashed var(--border-light);
    border-radius: var(--radius-md);
    background: var(--surface-alt);
    color: var(--text-secondary);
    padding: 1rem;
    text-align: center;
}

.empty-state i {
    font-size: 2rem;
    display: block;
    margin-bottom: 0.5rem;
    opacity: 0.5;
}

.feedback-message--error {
    border-style: solid;
    border-color: rgba(255, 82, 82, 0.3);
    color: #ff8a80;
    background: rgba(255, 82, 82, 0.08);
}

/* --- Overlay de carga --- */

.overlay-carga {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.5);
}

.overlay-carga.visible {
    display: flex;
}

.spinner-contenedor {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--surface);
    box-shadow: var(--shadow-md);
}

.spinner {
    width: 42px;
    height: 42px;
    border: 4px solid var(--border);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: spin 0.7s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* --- Login --- */

form[action="#"] {
    width: min(430px, calc(100% - 2rem));
    margin: 7vh auto 0;
    border: 1px solid var(--border);
    background: var(--surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    padding: 1.25rem;
}

.login-page {
    position: relative;
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: var(--bg);
    overflow: hidden;
}

.login-stars-bg {
    position: fixed;
    inset: 0;
    z-index: 0;
    background: var(--bg);
    overflow: hidden;
    pointer-events: none;
}

.login-star-track {
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 1px;
    animation: loginStarDrift linear infinite;
}

.login-star-layer {
    position: absolute;
    top: 0;
    left: 0;
    background: transparent;
    border-radius: 50%;
}

.login-star-layer--clone {
    top: 2000px;
}

@keyframes loginStarDrift {
    from {
        transform: translateY(0);
    }

    to {
        transform: translateY(-2000px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .login-star-track {
        animation: none;
    }
}

.login-page form.login-pending {
    visibility: hidden;
}

html.auth-pending body {
    overflow: hidden;
}

html.auth-pending body > :not(script) {
    visibility: hidden;
}

html.auth-pending #carga-app {
    visibility: visible;
    display: flex;
}

.login-page form[action="#"] {
    position: relative;
    z-index: 1;
    margin: 0;
    border-color: var(--border-light);
}

.login-logo {
    margin: 0 auto 0.95rem;
    width: min(240px, 78%);
}

.login-logo img {
    filter: brightness(1.1);
}

form[action="#"] .form-group {
    position: relative;
}

form[action="#"] .form-group i {
    position: absolute;
    left: 0.8rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-secondary);
}

form[action="#"] input {
    padding-left: 2.2rem;
}

#login {
    width: 100%;
    background: var(--brand-gradient);
    border: none;
}

#login:hover {
    box-shadow: 0 0 20px rgba(124, 92, 252, 0.4);
}

/* --- Tabla de siniestros en modal --- */

#tabla-siniestros table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

#tabla-siniestros th,
#tabla-siniestros td {
    text-align: left;
    padding: 0.65rem;
    border-bottom: 1px solid var(--border);
}

#tabla-siniestros th {
    background: var(--surface-alt);
    color: var(--text-secondary);
    font-weight: 700;
}

/* --- Modal de confirmación personalizado --- */

.modal-confirm {
    position: fixed;
    inset: 0;
    z-index: 60;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.modal-confirm__box {
    width: min(420px, 100%);
    background: var(--surface);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    padding: 1.5rem;
    text-align: center;
}

.modal-confirm__icon {
    font-size: 2.5rem;
    margin-bottom: 0.75rem;
}

.modal-confirm__icon--danger {
    color: var(--danger);
}

.modal-confirm__icon--warning {
    color: var(--warning);
}

.modal-confirm__title {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
}

.modal-confirm__text {
    color: var(--text-secondary);
    margin: 0 0 1.2rem;
    font-size: 0.95rem;
}

.modal-confirm__actions {
    display: flex;
    justify-content: center;
    gap: 0.65rem;
}

.modal-confirm__btn-cancel {
    padding: 0.55rem 1.2rem;
}

.modal-confirm__btn-confirm {
    padding: 0.55rem 1.2rem;
}

.modal-confirm__btn-confirm--danger {
    background: var(--danger);
    border: 1px solid var(--danger);
    color: #fff;
}

.modal-confirm__btn-confirm--danger:hover {
    background: #ff6e6e;
    border-color: #ff6e6e;
    box-shadow: 0 0 14px rgba(255, 82, 82, 0.3);
}

/* --- Barra de estado del editor --- */

.editor-status-bar {
    width: calc(100% - 2.4rem);
    margin: 0 1.2rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.45rem 0.8rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.editor-status-bar--dirty {
    border-color: var(--warning);
    background: rgba(255, 171, 0, 0.06);
}

.editor-status-bar__left {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.editor-status-bar__right {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.editor-status-bar__item {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.editor-status-bar__item--changes {
    color: var(--warning);
    font-weight: 600;
}

/* --- Breadcrumbs --- */

.breadcrumbs {
    width: calc(100% - 2.4rem);
    margin: 0.8rem 1.2rem 0;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.88rem;
    color: var(--text-secondary);
}

.breadcrumbs a {
    color: var(--secondary);
    text-decoration: none;
}

.breadcrumbs a:hover {
    text-decoration: underline;
}

.breadcrumbs__separator {
    color: var(--border-light);
}

.breadcrumbs__current {
    color: var(--text-primary);
    font-weight: 600;
}

/* --- Tooltips --- */

[data-tooltip] {
    position: relative;
}

[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%) scale(0.95);
    background: var(--surface-alt);
    color: var(--text-primary);
    border: 1px solid var(--border-light);
    border-radius: 8px;
    padding: 0.35rem 0.6rem;
    font-size: 0.78rem;
    font-weight: 500;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 40;
    box-shadow: var(--shadow-sm);
}

[data-tooltip]:hover::after {
    opacity: 1;
    transform: translateX(-50%) scale(1);
}

/* --- Responsive --- */

@media (max-width: 950px) {

    .inicio-layout,
    .agenda-layout {
        grid-template-columns: 1fr;
    }

    .inicio-bienvenida {
        width: calc(100% - 1.5rem);
        margin: 1rem 0.75rem 0.1rem;
    }

    .inicio-filtros {
        grid-template-columns: 1fr;
    }

    .comunidad {
        grid-template-columns: auto 1fr;
        grid-template-rows: auto auto auto;
    }

    .comunidad>.estado-badge {
        grid-row: 1 / span 3;
    }

    .comunidad>.nombre {
        grid-column: 2;
        grid-row: 1;
    }

    .comunidad>.aviso-vencimiento {
        grid-column: 2;
        grid-row: 2;
        justify-self: start;
        min-width: 0;
    }

    .acciones {
        grid-column: 2;
        grid-row: 3;
        justify-self: start;
    }
}

@media (max-width: 760px) {
    #botones {
        width: 100%;
        min-height: 48px;
        padding: 0 0.5rem;
        flex-wrap: wrap;
    }

    #botones-izquierda {
        gap: 0.15rem;
        flex-wrap: wrap;
    }

    #agenda,
    #listado,
    #comunidades,
    #inicio-dashboard,
    #editor {
        padding: 0.4rem 0.5rem;
        font-size: 0.75rem;
    }

    #agenda i,
    #listado i,
    #comunidades i,
    #inicio-dashboard i,
    #editor i {
        display: none;
    }

    .nav-logo {
        margin-right: 0.3rem;
        padding-right: 0.3rem;
    }

    .nav-logo img {
        height: 24px;
    }

    #titulo-comunidades,
    #titulo-listado {
        width: calc(100% - 1.5rem);
        margin: 1.2rem 0.75rem 0.9rem;
        flex-direction: column;
        align-items: flex-start;
    }

    #contenido-comunidades,
    #informacion-general,
    #contenido-listado,
    #contenido-editor,
    #listado-aseguradoras,
    #listado-mediadores,
    .inicio-layout,
    .agenda-layout {
        width: calc(100% - 1.5rem);
        margin: 0 0.75rem 1.35rem;
    }

    #contenido-comunidades {
        margin-bottom: 0.45rem;
    }

    #paginacion-comunidades {
        width: calc(100% - 1.5rem);
        margin: 0 0.75rem 1.8rem;
    }

    .agenda-layout {
        grid-template-columns: 1fr;
    }

    .filtro-inline {
        width: 100%;
        min-width: 0;
    }

    .filtro-inline input {
        min-width: 0;
    }

    #titulo-comunidades .filtro-inline {
        flex-wrap: wrap;
    }

    #titulo-comunidades #btn-nueva-comunidad {
        min-width: 0;
        flex: 1 1 auto;
    }

    #titulo-listado .filtro-inline {
        width: 100%;
        margin-left: 0;
        justify-content: flex-end;
    }

    #editor-barra {
        width: calc(100% - 1.5rem);
        margin: 0.55rem 0.75rem 0.4rem;
        flex-direction: column;
        align-items: stretch;
    }

    #editor-barra .acciones-editor {
        width: 100%;
        justify-content: flex-end;
    }

    #editor-toolbar.editor-barra-izquierda {
        flex-direction: column;
        align-items: stretch;
    }

    #editor-buscar {
        width: 100%;
        max-width: none;
    }

    #tabla-editor-wrapper {
        max-height: none;
    }

    .comunidad {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    .comunidad>.estado-badge,
    .comunidad>.nombre,
    .comunidad>.aviso-vencimiento,
    .comunidad>.acciones {
        grid-column: 1;
        grid-row: auto;
    }

    .comunidad>.aviso-vencimiento {
        justify-self: start;
    }

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

    .editor-status-bar {
        width: calc(100% - 1.5rem);
        margin: 0 0.75rem 1rem;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.3rem;
    }

    .breadcrumbs {
        width: calc(100% - 1.5rem);
        margin: 0.6rem 0.75rem 0;
    }
}

/* --- Iconos informativos --- */

.campo-info {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.campo-info::before {
    font-size: 0.95rem;
    opacity: 0.9;
    display: inline-block;
}

.campo-info--telefono::before {
    content: "\260E";
}

.campo-info--email::before {
    content: "\2709";
}

.campo-info--direccion::before {
    content: "";
    width: 0.95rem;
    height: 0.95rem;
    background-color: currentColor;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3l9 8h-2v9a1 1 0 0 1-1 1h-5v-6H11v6H6a1 1 0 0 1-1-1v-9H3l9-8z'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3l9 8h-2v9a1 1 0 0 1-1 1h-5v-6H11v6H6a1 1 0 0 1-1-1v-9H3l9-8z'/%3E%3C/svg%3E");
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
}

/* --- Footer --- */

.site-footer {
    margin-top: auto;
    border-top: 1px solid var(--border);
    background: var(--surface);
    color: var(--text-secondary);
}

.site-footer__inner {
    width: 100%;
    margin: 0;
    padding: 1rem 1.2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: nowrap;
}

.site-footer__brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.site-footer__logo {
    height: 34px;
    width: auto;
    filter: brightness(1.1);
}

.site-footer__tagline {
    font-size: 0.9rem;
    color: var(--text-secondary);
}

.site-footer__legal {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.2rem;
    text-align: right;
    margin-left: auto;
}

.site-footer__dev {
    color: var(--secondary);
    font-weight: 600;
    font-size: 0.88rem;
}

.site-footer__copy {
    font-size: 0.8rem;
    color: var(--text-secondary);
}

/* --- Ordenación de columnas --- */

.th-ordenable {
    cursor: pointer;
    user-select: none;
    transition: background 0.2s ease, color 0.2s ease;
}

.th-ordenable:hover {
    background: rgba(124, 92, 252, 0.12);
}

.th-ordenable--activo {
    background: rgba(124, 92, 252, 0.18) !important;
    color: var(--primary-dark) !important;
}

@media (max-width: 760px) {
    .site-footer__inner {
        width: calc(100% - 1.5rem);
        padding: 0.9rem 0;
    }

    .site-footer__brand,
    .site-footer__legal {
        width: 100%;
        align-items: flex-start;
        text-align: left;
    }
}

/* --- Toasts --- */

.toast-container {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    z-index: 9999;
    pointer-events: none;
}

.toast {
    min-width: 240px;
    max-width: min(420px, calc(100vw - 2rem));
    background: var(--surface);
    color: var(--text-primary);
    border-radius: 12px;
    padding: 0.75rem 0.9rem;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--border-light);
    border-left: 4px solid var(--primary);
    transform: translateY(8px);
    opacity: 0;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.toast--visible {
    transform: translateY(0);
    opacity: 1;
}

.toast--success {
    border-left-color: var(--success);
    border-color: var(--pill-success-border);
    color: var(--pill-success-text);
}

.toast--warning {
    border-left-color: var(--warning);
    border-color: var(--pill-warning-border);
    color: var(--pill-warning-text);
}

.toast--error {
    border-left-color: var(--danger);
    border-color: var(--pill-danger-border);
    color: var(--pill-danger-text);
}

/* --- Modal vencimientos --- */

.modal-contenido--vencimientos {
    width: min(760px, 100%);
}

.lista-vencimientos-modal {
    max-height: 52vh;
    overflow-y: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface-alt);
    padding: 0.5rem;
    margin-bottom: 0.9rem;
}

.item-vencimiento-modal {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.55rem 0.6rem;
    border-radius: var(--radius-sm);
}

.item-vencimiento-modal:nth-child(odd) {
    background: rgba(124, 92, 252, 0.06);
}

.item-vencimiento-modal__nombre {
    font-weight: 600;
    color: var(--text-primary);
}

.item-vencimiento-modal__fecha {
    color: var(--primary-dark);
    font-size: 0.92rem;
    white-space: nowrap;
}

/* --- Selectores nativos dark --- */

select option {
    background: var(--surface);
    color: var(--text-primary);
}

input[type="date"] {
    color-scheme: dark;
}

input[type="file"] {
    color: var(--text-secondary);
}

input[type="file"]::file-selector-button {
    background: var(--surface-alt);
    color: var(--text-primary);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 0.4rem 0.8rem;
    font: inherit;
    font-size: 0.88rem;
    cursor: pointer;
    margin-right: 0.6rem;
}

input[type="file"]::file-selector-button:hover {
    background: var(--surface);
    border-color: var(--border-light);
}

/* --- Scrollbar oscuro --- */

::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--bg);
}

::-webkit-scrollbar-thumb {
    background: var(--border-light);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--text-secondary);
}

/* ===== Panel de Administración ===== */

.btn-admin-nav {
    background: transparent;
    color: var(--text-secondary);
    border: none;
    border-radius: var(--radius-sm);
    padding: 0.5rem 0.75rem;
    font-size: 0.82rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: color 0.18s, background 0.18s;
    position: relative;
}

.btn-admin-nav:hover {
    color: var(--text-primary);
    background: var(--nav-hover-bg);
}

.btn-admin-nav.is-active {
    color: var(--secondary);
    background: rgba(0, 210, 255, 0.1);
    box-shadow: none;
    border: none;
}

.btn-admin-nav.is-active::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 2px;
    background: var(--secondary);
    border-radius: 2px;
}

.btn-admin-nav i {
    font-size: 0.85rem;
    opacity: 0.8;
}

.admin-header {
    width: calc(100% - 2.4rem);
    margin: 1.2rem 1.2rem 0.2rem;
}

.admin-header h1 {
    margin: 0 0 0.2rem;
    font-size: clamp(1.25rem, 2vw, 1.8rem);
}

.admin-header h1 i {
    background: var(--brand-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.admin-header p {
    margin: 0;
    color: var(--text-secondary);
}

.admin-filtros {
    width: calc(100% - 2.4rem);
    margin: 1rem 1.2rem;
    display: flex;
    align-items: flex-end;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.admin-filtros__grupo {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.admin-filtros__grupo label {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-secondary);
}

.admin-filtros__grupo select,
.admin-filtros__grupo input {
    width: auto;
    min-width: 180px;
}

.admin-filtros__grupo--acciones {
    flex-direction: row;
    align-items: flex-end;
    gap: 0.4rem;
}

.admin-kpis {
    width: calc(100% - 2.4rem);
    margin: 0 1.2rem 1rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.75rem;
}

.admin-kpi {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: 1rem;
    text-align: center;
    box-shadow: var(--shadow-sm);
}

.admin-kpi__valor {
    font-size: 2rem;
    font-weight: 800;
    background: var(--brand-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    line-height: 1.2;
}

.admin-kpi__valor--sm {
    font-size: 1.1rem;
}

.admin-kpi__label {
    font-size: 0.82rem;
    color: var(--text-secondary);
    margin-top: 0.25rem;
}

.admin-layout {
    width: calc(100% - 2.4rem);
    margin: 0 1.2rem 1rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.admin-seccion {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    padding: 1rem;
}

.admin-seccion h2 {
    margin: 0 0 0.75rem;
    font-size: 1.05rem;
}

.admin-seccion h2 i {
    color: var(--primary-dark);
    margin-right: 0.3rem;
}

.admin-seccion--full {
    width: calc(100% - 2.4rem);
    margin: 0 1.2rem 1.5rem;
}

.admin-seccion__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.admin-seccion__header h2 {
    margin-bottom: 0;
}

/* --- Tarjeta usuario resumen --- */

.admin-usuario-card {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface-alt);
    padding: 0.8rem;
    margin-bottom: 0.6rem;
}

.admin-usuario-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.6rem;
}

.admin-usuario-card__info h3 {
    margin: 0;
    font-size: 1rem;
}

.admin-usuario-card__correo {
    font-size: 0.82rem;
    color: var(--text-secondary);
}

.admin-estado {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.82rem;
    font-weight: 600;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    white-space: nowrap;
}

.admin-estado--online {
    color: var(--success);
    background: rgba(0, 230, 118, 0.1);
    border: 1px solid rgba(0, 230, 118, 0.3);
}

.admin-estado--offline {
    color: var(--text-secondary);
    background: var(--surface);
    border: 1px solid var(--border);
}

.admin-estado__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}

.admin-estado--online .admin-estado__dot {
    background: var(--success);
    box-shadow: 0 0 6px var(--success);
    animation: admin-pulse 2s infinite;
}

.admin-estado--offline .admin-estado__dot {
    background: var(--text-secondary);
}

@keyframes admin-pulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.4;
    }
}

.admin-usuario-card__stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.5rem;
}

.admin-stat {
    text-align: center;
    padding: 0.35rem;
    border-radius: var(--radius-sm);
    background: var(--surface);
    border: 1px solid var(--border);
}

.admin-stat__num {
    display: block;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-primary);
}

.admin-stat__label {
    display: block;
    font-size: 0.72rem;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.admin-usuario-card__footer {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0.5rem;
    font-size: 0.8rem;
    color: var(--text-secondary);
}

/* --- Gráfico de horas --- */

.admin-horas-chart {
    display: flex;
    align-items: flex-end;
    gap: 2px;
    height: 160px;
    padding: 0.5rem 0;
}

.admin-hora-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
    position: relative;
}

.admin-hora-bar {
    width: 100%;
    min-height: 2px;
    background: var(--brand-gradient);
    border-radius: 3px 3px 0 0;
    transition: height 0.3s ease;
}

.admin-hora-col:hover .admin-hora-bar {
    box-shadow: 0 0 8px rgba(124, 92, 252, 0.4);
}

.admin-hora-label {
    font-size: 0.65rem;
    color: var(--text-secondary);
    margin-top: 4px;
}

/* --- Actividad colapsable (admin) --- */

.admin-act-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.admin-act-card {
    border: 1px solid var(--border);
    border-radius: 12px;
    background: rgba(255, 193, 7, 0.06);
    overflow: hidden;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.admin-act-card--error {
    background: rgba(255, 82, 82, 0.06);
}

.admin-act-card--warning {
    background: rgba(255, 171, 0, 0.06);
}

.admin-act-card.is-open {
    border-color: rgba(124, 92, 252, 0.35);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.admin-act-card__toggle {
    width: 100%;
    display: grid;
    grid-template-columns: 40px 1fr auto 20px;
    gap: 0.75rem;
    align-items: center;
    padding: 0.85rem 1rem;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.admin-act-card__icono {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--surface-alt);
    border: 1px solid var(--border);
}

.admin-act-card__titulo-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.admin-act-card__titulo {
    font-size: 0.95rem;
    line-height: 1.3;
}

.admin-act-card__subtitulo {
    margin: 0.2rem 0 0;
    font-size: 0.82rem;
    color: var(--text-secondary);
}

.admin-act-card__badge {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--surface-alt);
}

.admin-act-card__fecha {
    font-size: 0.78rem;
    color: var(--text-secondary);
    white-space: nowrap;
}

.admin-act-card__chevron {
    color: var(--text-secondary);
    transition: transform 0.2s ease;
}

.admin-act-card.is-open .admin-act-card__chevron {
    transform: rotate(180deg);
}

.admin-act-card__detalle {
    padding: 0 1rem 1rem;
    border-top: 1px solid var(--border);
}

.admin-act-card__meta-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 0.85rem;
}

.admin-act-meta-item {
    display: flex;
    gap: 0.55rem;
    align-items: flex-start;
    padding: 0.65rem 0.7rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
}

.admin-act-meta-item i {
    margin-top: 0.15rem;
    color: var(--secondary);
}

.admin-act-meta-item span {
    display: block;
    font-size: 0.72rem;
    color: var(--text-secondary);
}

.admin-act-meta-item strong {
    display: block;
    font-size: 0.84rem;
    line-height: 1.25;
}

.admin-act-meta-item small {
    display: block;
    font-size: 0.72rem;
    color: var(--text-secondary);
}

.admin-act-card__banner {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
    padding: 0.55rem 0.75rem;
    border-radius: 8px;
    background: rgba(0, 210, 255, 0.08);
    border: 1px solid rgba(0, 210, 255, 0.2);
    font-size: 0.82rem;
}

.admin-act-card__detalle-texto {
    margin: 0.75rem 0 0;
    font-size: 0.84rem;
    color: var(--text-secondary);
}

.admin-act-meta-root {
    margin-top: 0.85rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
    overflow: hidden;
}

.admin-act-meta-root__summary {
    list-style: none;
    cursor: pointer;
    padding: 0.7rem 0.85rem;
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--success);
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.admin-act-meta-root__summary::-webkit-details-marker {
    display: none;
}

.admin-act-meta-root[open] .admin-act-meta-root__summary i {
    transform: rotate(180deg);
}

.admin-act-meta-root__body {
    padding: 0.75rem;
    border-top: 1px solid var(--border);
}

.admin-act-meta-root__body h4 {
    margin: 0 0 0.75rem;
    font-size: 0.88rem;
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.admin-act-meta-campo {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 0.5rem;
    padding: 0.45rem 0;
    border-bottom: 1px solid var(--border);
}

.admin-act-meta-campo:last-child {
    border-bottom: none;
}

.admin-act-meta-campo__label {
    font-size: 0.78rem;
    color: var(--text-secondary);
    font-weight: 600;
}

.admin-act-meta-campo__valor {
    font-size: 0.82rem;
    white-space: pre-wrap;
    word-break: break-word;
}

.admin-act-meta-grupo {
    border: 1px solid var(--border);
    border-radius: 8px;
    margin-bottom: 0.5rem;
    overflow: hidden;
}

.admin-act-meta-grupo__summary {
    list-style: none;
    cursor: pointer;
    padding: 0.55rem 0.7rem;
    font-size: 0.8rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.45rem;
    background: rgba(0, 210, 255, 0.06);
}

.admin-act-meta-grupo--nivel-1 .admin-act-meta-grupo__summary {
    background: rgba(0, 230, 118, 0.06);
}

.admin-act-meta-grupo__summary::-webkit-details-marker {
    display: none;
}

.admin-act-meta-grupo[open] > .admin-act-meta-grupo__summary i {
    transform: rotate(90deg);
}

.admin-act-meta-grupo__body {
    padding: 0.55rem 0.7rem 0.7rem;
}

.admin-act-meta-vacio {
    margin: 0;
    font-size: 0.82rem;
    color: var(--text-secondary);
}

.admin-icono--error { color: var(--danger); }
.admin-icono--vista { color: var(--secondary); }
.admin-icono--exportar,
.admin-icono--importar { color: var(--warning); }

.admin-accion--error {
    color: var(--pill-danger-text);
    border-color: var(--pill-danger-border);
    background: var(--pill-danger-bg);
}

.admin-accion--vista {
    color: var(--secondary);
    border-color: rgba(0, 210, 255, 0.5);
    background: rgba(0, 210, 255, 0.14);
}

@media (max-width: 1100px) {
    .admin-act-card__meta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .admin-act-card__toggle {
        grid-template-columns: 32px 1fr;
        grid-template-areas:
            "icono resumen"
            "icono fecha"
            "icono chevron";
    }

    .admin-act-card__icono { grid-area: icono; }
    .admin-act-card__resumen { grid-area: resumen; }
    .admin-act-card__fecha {
        grid-area: fecha;
        text-align: left;
    }
    .admin-act-card__chevron { grid-area: chevron; }

    .admin-act-card__meta-grid {
        grid-template-columns: 1fr;
    }

    .admin-act-meta-campo {
        grid-template-columns: 1fr;
    }
}

/* --- Timeline --- */

.admin-timeline-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.admin-timeline-item {
    display: grid;
    grid-template-columns: 36px 1fr auto;
    gap: 0.6rem;
    align-items: center;
    padding: 0.6rem 0.5rem;
    border-bottom: 1px solid var(--border);
    transition: background 0.15s;
}

.admin-timeline-item:hover {
    background: rgba(124, 92, 252, 0.04);
}

.admin-timeline-item:last-child {
    border-bottom: none;
}

.admin-timeline-item__icono {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    font-size: 0.9rem;
    flex-shrink: 0;
}

.admin-icono--login {
    color: var(--success);
}

.admin-icono--logout {
    color: var(--text-secondary);
}

.admin-icono--nav {
    color: var(--secondary);
}

.admin-icono--crear {
    color: var(--success);
}

.admin-icono--actualizar {
    color: var(--warning);
}

.admin-icono--eliminar {
    color: var(--danger);
}

.admin-timeline-item__header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.admin-timeline-item__header strong {
    font-size: 0.9rem;
}

.admin-timeline-item__accion {
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    background: var(--surface-alt);
    border: 1px solid var(--border);
}

.admin-accion--login {
    color: var(--pill-success-text);
    border-color: var(--pill-success-border);
    background: var(--pill-success-bg);
}

.admin-accion--logout {
    color: var(--text-secondary);
}

.admin-accion--navegacion {
    color: var(--secondary);
    border-color: rgba(0, 210, 255, 0.5);
    background: rgba(0, 210, 255, 0.14);
}

.admin-accion--crear {
    color: var(--pill-success-text);
    border-color: var(--pill-success-border);
    background: var(--pill-success-bg);
}

.admin-accion--actualizar {
    color: var(--pill-warning-text);
    border-color: var(--pill-warning-border);
    background: var(--pill-warning-bg);
}

.admin-accion--eliminar {
    color: var(--pill-danger-text);
    border-color: var(--pill-danger-border);
    background: var(--pill-danger-bg);
}

.admin-timeline-item__seccion {
    font-size: 0.78rem;
    color: var(--text-secondary);
    background: var(--surface);
    padding: 0.1rem 0.45rem;
    border-radius: 6px;
    border: 1px solid var(--border);
}

.admin-timeline-item__detalle {
    margin: 0.15rem 0 0;
    font-size: 0.82rem;
    color: var(--text-secondary);
}

.admin-timeline-item__fecha {
    font-size: 0.78rem;
    color: var(--text-secondary);
    white-space: nowrap;
    text-align: right;
}

/* --- Paginación admin --- */

.admin-paginacion {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.3rem 0;
}

.admin-paginacion span {
    font-size: 0.82rem;
    color: var(--text-secondary);
}

.admin-pag-btn {
    padding: 0.35rem 0.75rem;
    font-size: 0.82rem;
}

.admin-pag-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* --- Responsive admin --- */

@media (max-width: 950px) {
    .admin-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {

    .admin-header,
    .admin-filtros,
    .admin-kpis,
    .admin-layout,
    .admin-seccion--full {
        width: calc(100% - 1.5rem);
        margin-left: 0.75rem;
        margin-right: 0.75rem;
    }

    .admin-filtros {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-filtros__grupo select,
    .admin-filtros__grupo input {
        width: 100%;
        min-width: 0;
    }

    .admin-usuario-card__stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .admin-timeline-item {
        grid-template-columns: 30px 1fr;
    }

    .admin-timeline-item__fecha {
        grid-column: 2;
        text-align: left;
        font-size: 0.72rem;
    }

    .btn-admin-nav {
        padding: 0.4rem 0.5rem;
        font-size: 0.75rem;
    }

    .btn-admin-nav i {
        display: none;
    }
}

/* --- Alerta vencimientos en navbar --- */

.alerta-vencimientos-nav {
    position: relative;
}

.btn-alerta-vencimientos {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--pill-warning-border);
    background: var(--pill-warning-bg);
    color: var(--pill-warning-text);
    cursor: pointer;
    animation: alerta-vencimientos-pulso 1.6s ease-in-out infinite;
}

.btn-alerta-vencimientos:hover {
    background: rgba(255, 171, 0, 0.28);
    color: var(--pill-warning-text);
    border-color: var(--warning);
}

.btn-alerta-vencimientos__badge {
    position: absolute;
    top: -0.35rem;
    right: -0.35rem;
    min-width: 1.15rem;
    height: 1.15rem;
    padding: 0 0.25rem;
    border-radius: 999px;
    background: var(--danger);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.15rem;
    text-align: center;
}

.panel-vencimientos-nav {
    position: absolute;
    top: calc(100% + 0.45rem);
    right: 0;
    width: min(360px, 90vw);
    max-height: 70vh;
    display: flex;
    flex-direction: column;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    z-index: 20;
    overflow: hidden;
}

.panel-vencimientos-nav__cabecera {
    padding: 0.7rem 0.85rem;
    border-bottom: 1px solid var(--border);
    color: var(--text-primary);
}

.panel-vencimientos-nav__lista {
    overflow-y: auto;
    max-height: calc(70vh - 3rem);
}

.panel-vencimientos-nav__vacio {
    margin: 0;
    padding: 0.85rem;
    color: var(--text-secondary);
    font-size: 0.9rem;
}

.item-vencimiento-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 0.85rem;
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    transition: background 0.15s;
}

.item-vencimiento-nav:last-child {
    border-bottom: none;
}

.item-vencimiento-nav:hover {
    background: var(--list-item-hover-bg);
}

.item-vencimiento-nav__nombre {
    font-weight: 600;
    color: var(--text-primary);
}

.item-vencimiento-nav__fecha {
    flex-shrink: 0;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.2rem 0.45rem;
    border-radius: var(--radius-sm);
    background: rgba(255, 171, 64, 0.15);
    color: #ffb74d;
    white-space: nowrap;
}

.item-vencimiento-nav__fecha--vencida {
    background: rgba(255, 82, 82, 0.15);
    color: #ff8a80;
}

@keyframes alerta-vencimientos-pulso {

    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(255, 171, 64, 0.35);
    }

    50% {
        box-shadow: 0 0 0 6px rgba(255, 171, 64, 0);
    }
}

.selector-companias {
    position: relative;
}

.chips-companias {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.45rem;
}

.chip-compania {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.5rem;
    border-radius: var(--radius-sm);
    background: var(--btn-edit-bg);
    border: 1px solid var(--btn-edit-border);
    color: var(--btn-edit-text);
    font-size: 0.82rem;
    font-weight: 600;
}

.chip-compania button {
    border: none;
    background: transparent;
    color: inherit;
    cursor: pointer;
    padding: 0;
    line-height: 1;
}

.sugerencias-companias {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 30;
    max-height: 180px;
    overflow-y: auto;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
}

.sugerencia-compania {
    display: block;
    width: 100%;
    text-align: left;
    padding: 0.5rem 0.65rem;
    border: none;
    background: transparent;
    color: var(--text-primary);
    cursor: pointer;
}

.sugerencia-compania:hover {
    background: rgba(255, 255, 255, 0.06);
}

.campo-info--compania::before {
    content: "\f3ed";
    /* fa-shield-halved */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    margin-right: 0.4rem;
    opacity: 0.8;
}

.paso-mediador-indicador {
    margin: 0 0 0.75rem;
    color: var(--text-secondary);
    font-size: 0.85rem;
}

/* Stepper multipaso (navegación libre entre pasos) */
.paso-stepper {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.35rem 0.25rem;
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}

.paso-stepper__item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.paso-stepper__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--surface-alt);
    color: var(--text-secondary);
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    box-shadow: none;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.paso-stepper__btn:hover {
    background: var(--btn-edit-bg);
    border-color: var(--btn-edit-border);
    color: var(--btn-edit-text);
    box-shadow: none;
}

.paso-stepper__btn.is-active {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

.paso-stepper__btn.is-active:hover {
    background: var(--primary-light);
    border-color: var(--primary-light);
    color: #fff;
}

.paso-stepper__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 50%;
    font-size: 0.72rem;
    font-weight: 700;
    background: rgba(255, 255, 255, 0.12);
    color: inherit;
}

.paso-stepper__btn.is-active .paso-stepper__num {
    background: rgba(255, 255, 255, 0.22);
}

.paso-stepper__sep {
    width: 1rem;
    height: 1px;
    background: var(--border-light);
    flex-shrink: 0;
}

@media (max-width: 520px) {
    .paso-stepper__label {
        display: none;
    }

    .paso-stepper__sep {
        width: 0.55rem;
    }
}

.paso-mediador .acciones-modal {
    margin-top: 1rem;
}

.paso-mediador.oculto {
    display: none;
}

/* --- Switch tema claro/oscuro (Uiverse-inspired) --- */

.theme-switch {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 34px;
    flex-shrink: 0;
    margin: 0;
    vertical-align: middle;
}

.theme-switch #input-toggle-tema {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
}

.theme-switch .slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #2196f3;
    transition: 0.4s;
    z-index: 0;
    overflow: hidden;
}

.theme-switch .sun-moon {
    position: absolute;
    height: 26px;
    width: 26px;
    left: 4px;
    bottom: 4px;
    background-color: yellow;
    transition: 0.4s;
}

.theme-switch #input-toggle-tema:checked + .slider {
    background-color: black;
}

.theme-switch #input-toggle-tema:focus-visible + .slider {
    outline: 2px solid var(--secondary);
    outline-offset: 2px;
}

.theme-switch #input-toggle-tema:checked + .slider .sun-moon {
    transform: translateX(26px);
    background-color: white;
}

.theme-switch .moon-dot {
    opacity: 0;
    transition: 0.4s;
    fill: gray;
}

.theme-switch #input-toggle-tema:checked + .slider .sun-moon .moon-dot {
    opacity: 1;
}

.theme-switch .slider.round {
    border-radius: 34px;
}

.theme-switch .slider.round .sun-moon {
    border-radius: 50%;
}

.theme-switch #moon-dot-1 {
    left: 10px;
    top: 3px;
    position: absolute;
    width: 6px;
    height: 6px;
    z-index: 4;
}

.theme-switch #moon-dot-2 {
    left: 2px;
    top: 10px;
    position: absolute;
    width: 10px;
    height: 10px;
    z-index: 4;
}

.theme-switch #moon-dot-3 {
    left: 16px;
    top: 18px;
    position: absolute;
    width: 3px;
    height: 3px;
    z-index: 4;
}

.theme-switch #light-ray-1 {
    left: -8px;
    top: -8px;
    position: absolute;
    width: 43px;
    height: 43px;
    z-index: -1;
    fill: white;
    opacity: 0.1;
}

.theme-switch #light-ray-2 {
    left: -50%;
    top: -50%;
    position: absolute;
    width: 55px;
    height: 55px;
    z-index: -1;
    fill: white;
    opacity: 0.1;
}

.theme-switch #light-ray-3 {
    left: -18px;
    top: -18px;
    position: absolute;
    width: 60px;
    height: 60px;
    z-index: -1;
    fill: white;
    opacity: 0.1;
}

.theme-switch .cloud-light {
    position: absolute;
    fill: #eee;
    animation: theme-cloud-move 6s infinite;
}

.theme-switch .cloud-dark {
    position: absolute;
    fill: #ccc;
    animation: theme-cloud-move 6s infinite;
    animation-delay: 1s;
}

.theme-switch #cloud-1 {
    left: 30px;
    top: 15px;
    width: 40px;
}

.theme-switch #cloud-2 {
    left: 44px;
    top: 10px;
    width: 20px;
}

.theme-switch #cloud-3 {
    left: 18px;
    top: 24px;
    width: 30px;
}

.theme-switch #cloud-4 {
    left: 36px;
    top: 18px;
    width: 40px;
}

.theme-switch #cloud-5 {
    left: 48px;
    top: 14px;
    width: 20px;
}

.theme-switch #cloud-6 {
    left: 22px;
    top: 26px;
    width: 30px;
}

@keyframes theme-cloud-move {
    0% { transform: translateX(0); }
    40% { transform: translateX(4px); }
    80% { transform: translateX(-4px); }
    100% { transform: translateX(0); }
}

.theme-switch .stars {
    transform: translateY(-32px);
    opacity: 0;
    transition: 0.4s;
}

.theme-switch .star {
    fill: white;
    position: absolute;
    transition: 0.4s;
    animation: theme-star-twinkle 2s infinite;
}

.theme-switch #input-toggle-tema:checked + .slider .stars {
    transform: translateY(0);
    opacity: 1;
}

.theme-switch #star-1 {
    width: 20px;
    top: 2px;
    left: 3px;
    animation-delay: 0.3s;
}

.theme-switch #star-2 {
    width: 6px;
    top: 16px;
    left: 3px;
}

.theme-switch #star-3 {
    width: 12px;
    top: 20px;
    left: 10px;
    animation-delay: 0.6s;
}

.theme-switch #star-4 {
    width: 18px;
    top: 0;
    left: 18px;
    animation-delay: 1.3s;
}

@keyframes theme-star-twinkle {
    0% { transform: scale(1); }
    40% { transform: scale(1.2); }
    80% { transform: scale(0.8); }
    100% { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .theme-switch .sun-moon,
    .theme-switch .slider,
    .theme-switch .moon-dot,
    .theme-switch .stars,
    .theme-switch .star,
    .theme-switch .cloud-light,
    .theme-switch .cloud-dark {
        animation: none !important;
        transition: none !important;
    }
}

/* --- Menú usuario en navbar --- */

.menu-usuario-nav {
    position: relative;
}

.btn-menu-usuario {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-primary);
    padding: 0.35rem 0.65rem 0.35rem 0.35rem;
    border-radius: 999px;
    box-shadow: none;
}

.btn-menu-usuario:hover {
    background: var(--surface-alt);
    border-color: var(--border-light);
    box-shadow: none;
}

.btn-menu-usuario--abierto .menu-usuario__chevron {
    transform: rotate(180deg);
}

.menu-usuario__avatar {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #7c5cfc 0%, #00d2ff 100%);
    color: #fff;
    font-weight: 700;
    font-size: 0.9rem;
    flex-shrink: 0;
}

.menu-usuario__nombre {
    font-size: 0.88rem;
    font-weight: 600;
    max-width: 140px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.menu-usuario__chevron {
    font-size: 0.72rem;
    color: var(--text-secondary);
    transition: transform 0.2s ease;
}

.panel-menu-usuario {
    position: absolute;
    top: calc(100% + 0.45rem);
    right: 0;
    width: min(280px, 90vw);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    z-index: 30;
    overflow: hidden;
}

.panel-menu-usuario__cabecera {
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--border);
    display: grid;
    gap: 0.15rem;
}

.panel-menu-usuario__cabecera strong {
    font-size: 0.95rem;
}

.panel-menu-usuario__cabecera span {
    font-size: 0.82rem;
    color: var(--text-secondary);
}

.panel-menu-usuario__rol {
    display: inline-block;
    margin-top: 0.35rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: rgba(124, 92, 252, 0.12);
    color: var(--primary-dark);
    font-size: 0.72rem;
    font-weight: 700;
    width: fit-content;
}

.panel-menu-usuario__item {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    background: transparent;
    color: var(--text-primary);
    border: 0;
    border-radius: 0;
    padding: 0.75rem 1rem;
    text-align: left;
    box-shadow: none;
}

.panel-menu-usuario__item:hover {
    background: var(--surface-alt);
    box-shadow: none;
}

.panel-menu-usuario__item--tema {
    justify-content: space-between;
    cursor: default;
}

.panel-menu-usuario__item--tema:hover {
    background: transparent;
}

.panel-menu-usuario__tema-texto {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-weight: 600;
    color: var(--text-primary);
}

.panel-menu-usuario__item--tema .theme-switch {
    margin: 0;
    flex-shrink: 0;
}

.panel-menu-usuario__item--danger {
    color: var(--danger);
    border-top: 1px solid var(--border);
}

.panel-menu-usuario__item--danger:hover {
    background: rgba(255, 82, 82, 0.08);
}

.siniestro-detalle-layout {
    max-width: none;
}

.siniestro-detalle.poliza-item {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.siniestro-detalle.poliza-item > .poliza-seccion {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.siniestro-detalle__acciones-cabecera {
    justify-content: flex-end;
}

.siniestro-detalle__acciones-cabecera .btn-accion-secundaria,
.siniestro-detalle__acciones-cabecera .btn-editar-poliza,
.siniestro-detalle__acciones-cabecera .btn-eliminar-poliza {
    flex: 0 1 auto;
    min-width: auto;
}

.siniestro-detalle__comentarios-grid {
    grid-template-columns: 1fr;
}

.siniestro-detalle__resumen-campo {
    grid-column: 1 / -1;
}

.siniestro-detalle__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.75rem 1rem;
}

.siniestro-detalle__resumen {
    grid-column: 1 / -1;
}

.siniestro-detalle__contactos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    grid-column: 1 / -1;
}

.siniestro-detalle__acciones {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    grid-column: 1 / -1;
    align-items: center;
}

.siniestro-detalle__acciones button {
    flex: 1 1 auto;
    min-width: 160px;
}

.siniestro-detalle__estado-select {
    width: 100%;
    margin-top: 0.35rem;
    padding: 0.45rem 0.6rem;
    border-radius: 8px;
    border: 1px solid var(--border);
    background: var(--surface-alt);
    color: var(--text-primary);
    font-weight: 600;
    font-size: 0.92rem;
}

.siniestro-detalle__contacto-card {
    display: grid;
    gap: 0.25rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface-alt);
}

.siniestro-detalle__telefono {
    color: var(--text-secondary);
    font-size: 0.9rem;
}

.siniestro-detalle__dato-estado {
    min-width: 0;
    width: 100%;
    margin: 0;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 0.6rem 0.75rem;
    display: grid;
    gap: 0.2rem;
    box-sizing: border-box;
}

.siniestro-detalle__dato-estado .siniestro-detalle__estado-select {
    margin-top: 0.1rem;
    width: 100%;
    box-sizing: border-box;
}

.siniestro-detalle {
    padding: 1.15rem 1.2rem;
}

@media (max-width: 720px) {
    .siniestro-detalle__contactos {
        grid-template-columns: 1fr;
    }

    .siniestro-detalle__acciones-cabecera {
        width: 100%;
        justify-content: stretch;
    }

    .siniestro-detalle__acciones-cabecera button {
        flex: 1 1 calc(50% - 0.25rem);
        min-width: 0;
    }

    .siniestro-detalle__acciones button {
        min-width: 100%;
    }
}

/* --- Comunidades: estado activa/inactiva --- */

.estado-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 78px;
    padding: 0.22rem 0.7rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.estado-badge--activa {
    color: var(--pill-success-text);
    background: var(--pill-success-bg);
    border: 1px solid var(--pill-success-border);
}

.estado-badge--inactiva {
    color: var(--pill-danger-text);
    background: var(--pill-danger-bg);
    border: 1px solid var(--pill-danger-border);
}

.filtro-estado-comunidades {
    display: inline-flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.filtro-estado-btn {
    border: 1px solid var(--btn-muted-border);
    background: var(--btn-muted-bg);
    color: var(--btn-muted-text);
    border-radius: 999px;
    padding: 0.35rem 0.85rem;
    font-size: 0.82rem;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.filtro-estado-btn:hover {
    border-color: var(--border-light);
    background: var(--btn-muted-hover-bg);
}

.filtro-estado-btn.is-active {
    color: #fff;
    border-color: transparent;
}

.filtro-estado-btn[data-estado="todas"].is-active {
    background: var(--primary);
}

.filtro-estado-btn--activa.is-active {
    background: var(--success);
}

.filtro-estado-btn--inactiva.is-active {
    background: var(--danger);
}

.btn-activar-item,
.btn-desactivar-item {
    padding: 0.45rem 0.85rem;
    font-size: 0.88rem;
    font-weight: 600;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}

.btn-activar-item {
    background: var(--btn-success-bg);
    border: 1px solid var(--btn-success-border);
    color: var(--btn-success-text);
}

.btn-activar-item:hover {
    background: var(--btn-success-hover-bg);
    border-color: var(--success);
    color: var(--btn-success-text);
    box-shadow: 0 0 10px rgba(0, 230, 118, 0.25);
}

.btn-desactivar-item {
    background: var(--btn-danger-bg);
    border: 1px solid var(--btn-danger-border);
    color: var(--btn-danger-text);
}

.btn-desactivar-item:hover {
    background: var(--btn-danger-hover-bg);
    border-color: var(--danger);
    color: var(--btn-danger-text);
    box-shadow: 0 0 10px rgba(255, 82, 82, 0.25);
}

/* --- Nueva póliza: paso 3 --- */
.form-row {
    display: flex;
    gap: 0.85rem;
    flex-wrap: wrap;
    margin-bottom: 0.8rem;
}

.form-row--fechas .form-group {
    flex: 1 1 220px;
    min-width: 0;
    margin-bottom: 0;
}

.form-row--checks {
    align-items: center;
    gap: 1.2rem;
    padding: 0.55rem 0 0.2rem;
}

.form-check {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    cursor: pointer;
    color: var(--text-primary);
    font-size: 0.9rem;
    user-select: none;
}

.form-check input[type="checkbox"] {
    width: 1rem;
    height: 1rem;
    accent-color: var(--primary);
    cursor: pointer;
}

.form-group--importe-franquicia {
    margin: 0.35rem 0 0.85rem;
    max-width: 16rem;
}

.form-group--importe-franquicia label {
    display: block;
    margin-bottom: 0.35rem;
}

.form-group--importe-franquicia input {
    width: 100%;
}

@media (max-width: 560px) {
    .form-row--fechas {
        flex-direction: column;
    }
}

/* --- Información general: tarjeta por secciones (Nivel 2) --- */

#informacion-general .poliza-item {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.poliza-cabecera {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding-bottom: 0.85rem;
    margin-bottom: 0.85rem;
    border-bottom: 1px solid var(--border);
}

.poliza-cabecera__titulo {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.poliza-cabecera__numero {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--text-primary);
}

.poliza-cabecera__acciones {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.poliza-seccion {
    margin-bottom: 1rem;
}

.poliza-seccion:last-of-type {
    margin-bottom: 0;
}

.poliza-seccion__titulo {
    margin: 0 0 0.55rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--secondary);
}

.poliza-seccion__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0.5rem 0.85rem;
}

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

.poliza-seccion__grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.poliza-seccion__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.cobertura-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.7rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 600;
    border: 1px solid var(--border);
}

.cobertura-pill--si {
    color: var(--pill-success-text);
    background: var(--pill-success-bg);
    border-color: var(--pill-success-border);
}

.cobertura-pill--no {
    color: var(--text-secondary);
    background: var(--surface-alt);
    border-color: var(--border-light);
    opacity: 1;
}

#informacion-general .info-group--poliza {
    display: block;
}

#informacion-general .info-group--poliza .acciones-poliza {
    display: none;
}

.estado-poliza-item {
    display: none;
}

@media (max-width: 980px) {
    .poliza-seccion__grid--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .poliza-seccion__grid--2 {
        grid-template-columns: 1fr;
    }

    .poliza-cabecera {
        flex-direction: column;
        align-items: flex-start;
    }

    .poliza-seccion__grid--4 {
        grid-template-columns: 1fr;
    }
}

/* --- Modo Excel (hub) --- */

.excel-hub-body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.excel-hub-nav #botones-izquierda {
    flex-wrap: wrap;
    gap: 0.35rem;
}

.excel-hub-nav #botones-derecha {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.excel-hub-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: 0;
    padding: 0.25rem 0.55rem;
    font-size: 0.78rem;
    color: var(--text-secondary);
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--surface);
}

.excel-lock-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.excel-lock-wrap .btn-lock {
    position: relative;
    top: auto;
    left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    box-sizing: border-box;
    padding: 0;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(0, 0, 0, 0.18);
    background: #e45757;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.excel-lock-wrap .btn-lock svg {
    fill: none;
    width: 1.05rem;
    height: 1.35rem;
    display: block;
    transform: none;
}

.excel-lock-wrap .btn-lock svg .bling {
    stroke: #fff;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-dasharray: 3;
    stroke-dashoffset: 15;
    opacity: 0;
    transition: all 0.3s ease;
}

.excel-lock-wrap .btn-lock svg .lock {
    stroke: #fff;
    stroke-width: 4;
    stroke-linejoin: round;
    stroke-linecap: round;
    /* Cerrado (bloqueado) por defecto */
    stroke-dasharray: 48;
    transition: all 0.4s ease;
}

.excel-lock-wrap .btn-lock svg .lockb {
    fill: #fff;
    fill-rule: evenodd;
    clip-rule: evenodd;
    transform: rotate(0deg);
    transform-origin: 14px 22px;
    transition: all 0.2s ease;
}

#excel-inp-lock {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}

/* Desbloqueado: candado abierto + verde */
#excel-inp-lock:checked + .btn-lock {
    background: #20cca5;
    border-color: rgba(0, 0, 0, 0.12);
    box-shadow: 0 0 0 2px rgba(32, 204, 165, 0.28);
}

#excel-inp-lock:checked + .btn-lock svg .bling {
    opacity: 1;
    animation: excel-lock-bling 0.3s linear forwards;
    animation-delay: 0.15s;
}

#excel-inp-lock:checked + .btn-lock svg .lock {
    stroke-dasharray: 36;
}

#excel-inp-lock:checked + .btn-lock svg .lockb {
    transform: rotate(8deg);
    transform-origin: 14px 20px;
}

@keyframes excel-lock-bling {
    50% {
        stroke-dasharray: 3;
        stroke-dashoffset: 12;
    }
    100% {
        stroke-dasharray: 3;
        stroke-dashoffset: 9;
    }
}

/* Edición bloqueada: tablas en solo lectura; filtros/búsqueda siguen activos */
body.excel-edicion-bloqueada #excel-viewport input,
body.excel-edicion-bloqueada #excel-viewport select,
body.excel-edicion-bloqueada #excel-viewport textarea,
body.excel-edicion-bloqueada #excel-viewport .excel-agenda-btn-add,
body.excel-edicion-bloqueada #excel-viewport .excel-agenda-chip__quitar,
body.excel-edicion-bloqueada #excel-viewport .excel-agenda-btn-icono,
body.excel-edicion-bloqueada #excel-viewport .excel-sin-btn-icono[data-accion="add-comentario"],
body.excel-edicion-bloqueada #excel-viewport .excel-sin-cell {
    pointer-events: none !important;
    cursor: not-allowed;
}

body.excel-edicion-bloqueada #excel-viewport input,
body.excel-edicion-bloqueada #excel-viewport select,
body.excel-edicion-bloqueada #excel-viewport textarea {
    opacity: 0.72;
}

body.excel-edicion-bloqueada #excel-toolbar #btn-guardar-editor,
body.excel-edicion-bloqueada #excel-toolbar #btn-nueva-poliza-editor,
body.excel-edicion-bloqueada #excel-toolbar #btn-descartar-editor,
body.excel-edicion-bloqueada #excel-toolbar #excel-agenda-nuevo,
body.excel-edicion-bloqueada #excel-toolbar #excel-sin-nuevo,
body.excel-edicion-bloqueada #excel-toolbar #excel-sin-guardar-grid,
body.excel-edicion-bloqueada #excel-toolbar #excel-sin-descartar {
    pointer-events: none !important;
    opacity: 0.45;
    cursor: not-allowed;
}

body.excel-edicion-bloqueada #excel-modal-mediador-companias .acciones-modal button:not([data-cerrar-excel-modal]),
body.excel-edicion-bloqueada #excel-modal-mediador-companias #excel-agenda-lista-companias {
    pointer-events: none !important;
    opacity: 0.55;
}

.excel-vistas-nav {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-wrap: wrap;
}

.excel-vista-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.32rem 0.6rem;
    font-size: 0.78rem;
    line-height: 1.2;
    color: var(--text-secondary);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.4rem;
    cursor: pointer;
    white-space: nowrap;
}

.excel-vista-btn:hover {
    color: var(--text-primary);
    background: var(--surface-alt);
    border-color: var(--border);
}

.excel-vista-btn.is-active {
    color: var(--text-primary);
    background: rgba(124, 92, 252, 0.12);
    border-color: rgba(124, 92, 252, 0.35);
}

.excel-toolbar {
    min-height: 0;
    margin: 0.5rem 1.2rem 0;
}

.excel-viewport {
    flex: 1;
    margin: 0.5rem 1.2rem 0.75rem;
    min-height: 0;
    overflow: auto;
}

.excel-status-bar {
    margin: 0 1.2rem 0.65rem;
    padding: 0.35rem 0.5rem;
    font-size: 0.75rem;
    color: var(--text-secondary);
    border-top: 1px solid var(--border);
}

.excel-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 320px;
    padding: 2rem;
    text-align: center;
    border: 1px dashed var(--border);
    border-radius: 0.6rem;
    background: var(--surface);
}

.excel-placeholder__icono {
    font-size: 2rem;
    color: var(--primary);
    margin-bottom: 0.75rem;
}

.excel-placeholder h2 {
    margin: 0 0 0.35rem;
    font-size: 1.15rem;
}

.excel-placeholder p {
    margin: 0;
    color: var(--text-secondary);
    max-width: 420px;
}

.excel-placeholder__aviso {
    margin-top: 0.75rem !important;
    font-size: 0.85rem;
    color: var(--text-secondary);
    opacity: 0.85;
}

@media (max-width: 1100px) {
    .excel-vistas-nav {
        order: 3;
        width: 100%;
        justify-content: flex-end;
    }
}

/* --- Editor dentro del hub Excel (igual que editor.html) --- */

body.excel-hub-body.excel-hub--vista-editor {
    height: 100vh;
    overflow: hidden;
}

.excel-hub--vista-editor .excel-toolbar {
    flex-shrink: 0;
    margin: 0.5rem 1.2rem 0;
}

.excel-hub--vista-editor .excel-toolbar #editor-barra {
    width: 100%;
    margin: 0;
}

.excel-hub--vista-editor .excel-viewport {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    margin: 0.45rem 1.2rem 0;
}

.excel-hub--vista-editor .excel-viewport>#contenido-editor {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0;
}

.excel-hub--vista-editor #tabla-editor-wrapper {
    flex: 1;
    min-height: 0;
    max-height: none;
    overflow: auto;
}

.excel-hub--vista-editor .excel-status-bar {
    flex-shrink: 0;
    margin: 0 1.2rem 1rem;
    padding: 0;
    border-top: none;
}

.excel-hub--vista-editor .excel-status-bar .editor-status-bar {
    width: 100%;
    margin: 0;
}

/* --- Siniestros en hub Excel --- */

.excel-siniestros-toolbar {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
}

.excel-siniestros-toolbar #excel-sin-nuevo {
    margin-left: auto;
    flex: 0 0 auto;
    white-space: nowrap;
}

.excel-siniestros-toolbar #excel-sin-guardar-grid {
    margin-left: 0;
    flex: 0 0 auto;
    white-space: nowrap;
}

.excel-siniestros-toolbar select,
.excel-siniestros-toolbar input[type="text"],
.excel-siniestros-toolbar input[type="date"] {
    width: auto;
    flex: 0 0 auto;
    padding: 0.32rem 0.5rem;
    font-size: 0.8rem;
}

.excel-siniestros-toolbar #excel-sin-filtro-estado {
    min-width: 14rem;
    max-width: 18rem;
}

.excel-siniestros-toolbar input[type="text"] {
    width: 9rem;
}

.excel-siniestros-toolbar input[type="date"] {
    width: 9.5rem;
}

.excel-siniestros-toolbar__check {
    flex: 0 0 auto;
    white-space: nowrap;
}

.excel-siniestros-toolbar .editor-btn-secundario {
    flex: 0 0 auto;
    white-space: nowrap;
}

.excel-siniestros-toolbar__check {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.excel-siniestros-layout {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 0;
    height: 100%;
}

.excel-hub--vista-siniestros .excel-viewport {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.excel-hub--vista-siniestros .excel-siniestros-layout {
    flex: 1;
    min-height: 0;
}

.excel-siniestros-grid-wrapper {
    overflow: auto;
    flex: 1;
    min-height: 0;
    max-height: none;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface);
}

#tabla-siniestros-excel {
    width: 100%;
    border-collapse: collapse;
    min-width: 1300px;
    font-size: 0.78rem;
    table-layout: fixed;
}

#tabla-siniestros-excel th:nth-child(1),
#tabla-siniestros-excel td:nth-child(1) {
    width: 9%;
}

#tabla-siniestros-excel th:nth-child(2),
#tabla-siniestros-excel td:nth-child(2) {
    width: 6.5rem;
}

#tabla-siniestros-excel th:nth-child(3),
#tabla-siniestros-excel td:nth-child(3) {
    width: 6rem;
}

#tabla-siniestros-excel th:nth-child(4),
#tabla-siniestros-excel td:nth-child(4) {
    width: 12%;
    overflow: visible;
    position: relative;
    z-index: 1;
}

#tabla-siniestros-excel td:nth-child(4):focus-within {
    z-index: 5;
}

#tabla-siniestros-excel td:nth-child(4) .excel-sin-cell {
    position: relative;
    z-index: 2;
}

#tabla-siniestros-excel th:nth-child(5),
#tabla-siniestros-excel td:nth-child(5),
#tabla-siniestros-excel th:nth-child(6),
#tabla-siniestros-excel td:nth-child(6) {
    width: 5.5rem;
}

#tabla-siniestros-excel th:nth-child(7),
#tabla-siniestros-excel td:nth-child(7),
#tabla-siniestros-excel th:nth-child(8),
#tabla-siniestros-excel td:nth-child(8) {
    width: 10%;
}

#tabla-siniestros-excel th:nth-child(9),
#tabla-siniestros-excel td:nth-child(9) {
    width: auto;
}

#tabla-siniestros-excel th:nth-child(10),
#tabla-siniestros-excel td:nth-child(10) {
    width: 5.5rem;
    min-width: 5.5rem;
    position: sticky;
    right: 0;
    z-index: 2;
    background: var(--surface);
    box-shadow: -6px 0 8px -6px rgba(0, 0, 0, 0.45);
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
}

#tabla-siniestros-excel thead th:nth-child(10) {
    background: var(--surface-alt);
    z-index: 3;
}

#tabla-siniestros-excel th,
#tabla-siniestros-excel td {
    padding: 0.35rem 0.45rem;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#tabla-siniestros-excel thead th {
    position: sticky;
    top: 0;
    background: var(--surface-alt);
    z-index: 1;
}

#tabla-siniestros-excel .excel-sin-cell {
    width: 100%;
    min-width: 0;
    padding: 0.2rem 0.35rem;
    font-size: 0.78rem;
}

#tabla-siniestros-excel tr.is-dirty {
    background: rgba(0, 210, 255, 0.06);
}

.excel-siniestro-fila {
    cursor: default;
}

.excel-siniestro-fila:hover {
    background: var(--list-item-hover-bg);
}

.excel-siniestro-fila.is-dirty:hover {
    background: rgba(0, 210, 255, 0.1);
}

.excel-sin-acciones {
    white-space: nowrap;
    text-align: right;
    overflow: visible;
}

.excel-sin-btn-icono {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    padding: 0;
    margin: 0 0.12rem;
    font-size: 0.82rem;
    background: var(--btn-edit-bg);
    color: var(--btn-edit-text);
    border: 1px solid var(--btn-edit-border);
    border-radius: var(--radius-sm);
    cursor: pointer;
    box-shadow: none;
}

.excel-sin-btn-icono:hover {
    color: var(--btn-edit-text);
    border-color: var(--primary);
    background: var(--btn-edit-hover-bg);
    box-shadow: 0 0 8px rgba(124, 92, 252, 0.2);
    transform: none;
}

.excel-sin-btn-icono[data-accion="ver-comentarios"] {
    background: rgba(0, 210, 255, 0.16);
    color: var(--secondary);
    border-color: rgba(0, 210, 255, 0.55);
}

.excel-sin-btn-icono[data-accion="ver-comentarios"]:hover {
    color: var(--secondary);
    background: rgba(0, 210, 255, 0.28);
    border-color: var(--secondary);
}

.excel-siniestro-fila.is-dirty td:nth-child(10),
.excel-siniestro-fila:hover td:nth-child(10) {
    background: var(--surface-alt);
}

.excel-sin-btn-primario {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.32rem 0.65rem;
    font-size: 0.8rem;
    line-height: 1.2;
    background: var(--primary);
    color: #fff;
    border: 1px solid var(--primary);
}

.excel-sin-btn-secundario {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.32rem 0.65rem;
    font-size: 0.8rem;
    line-height: 1.2;
    font-weight: 600;
    background: var(--btn-muted-bg);
    color: var(--btn-muted-text);
    border: 1px solid var(--btn-muted-border);
    cursor: pointer;
    white-space: nowrap;
}

.excel-sin-btn-secundario:hover:not(:disabled) {
    border-color: var(--secondary);
    color: var(--secondary);
    background: rgba(0, 210, 255, 0.1);
    box-shadow: none;
}

.excel-sin-btn-secundario:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    box-shadow: none;
}

.excel-sin-btn-primario:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    box-shadow: none;
}

.excel-sin-btn-primario:hover:not(:disabled) {
    background: var(--primary-light);
    border-color: var(--primary-light);
}

.modal-contenido--comentarios {
    max-width: 560px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
}

.excel-lista-ver-comentarios {
    flex: 1;
    min-height: 0;
    overflow: auto;
    margin: 0.5rem 0 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.excel-comentarios-vacio {
    color: var(--text-secondary);
    margin: 0.5rem 0;
}

.excel-comentario-item {
    position: relative;
    padding: 0.65rem 2.2rem 0.65rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface-alt);
}

.excel-comentario-item__meta {
    font-size: 0.75rem;
    color: var(--text-secondary);
    margin-bottom: 0.25rem;
}

.excel-comentario-item p {
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
}

.excel-comentario-item__eliminar {
    position: absolute;
    top: 0.45rem;
    right: 0.45rem;
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--danger);
    border: 1px solid transparent;
    box-shadow: none;
}

.excel-comentario-item__eliminar:hover {
    border-color: var(--danger);
    background: rgba(255, 82, 82, 0.08);
    box-shadow: none;
    transform: none;
}

.excel-siniestros-detalle {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface);
    padding: 0.75rem;
    max-height: 38vh;
    overflow: auto;
}

.excel-siniestro-detalle__cabecera {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.excel-siniestro-detalle__cabecera h3 {
    margin: 0;
    font-size: 1rem;
}

.excel-siniestro-detalle__meta {
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.excel-siniestro-detalle__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.55rem;
    margin-bottom: 0.65rem;
}

.excel-siniestro-detalle__grid label {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.78rem;
    color: var(--text-secondary);
}

.excel-siniestro-detalle__full {
    grid-column: 1 / -1;
}

.excel-siniestro-detalle__grid input,
.excel-siniestro-detalle__grid select,
.excel-siniestro-detalle__grid textarea {
    font-size: 0.8rem;
    padding: 0.32rem 0.45rem;
}

.excel-siniestro-detalle__contactos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
    margin-bottom: 0.65rem;
    font-size: 0.8rem;
}

.excel-siniestro-detalle__acciones {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 0.75rem;
}

.excel-sin-btn-primario,
.excel-sin-btn-peligro {
    padding: 0.35rem 0.65rem;
    font-size: 0.8rem;
}

.excel-sin-btn-peligro {
    color: var(--danger);
    border-color: rgba(255, 82, 82, 0.35);
}

.excel-siniestro-comentario {
    padding: 0.45rem 0;
    border-bottom: 1px solid var(--border);
}

.excel-siniestro-comentario__meta {
    font-size: 0.72rem;
    color: var(--text-secondary);
}

.excel-siniestro-nuevo-comentario {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.5rem;
}

.excel-siniestro-comentario-vacio {
    font-size: 0.8rem;
    color: var(--text-secondary);
}

/* --- Comunidades en hub Excel --- */

.excel-comunidades-toolbar-extra {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    margin-bottom: 0.45rem;
}

.excel-comunidades-toolbar-extra select {
    padding: 0.32rem 0.5rem;
    font-size: 0.8rem;
}

.excel-comunidades-layout {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 0;
}

.excel-comunidades-layout #contenido-editor {
    width: 100%;
    margin: 0;
}

.excel-comunidades-layout #tabla-editor-wrapper {
    max-height: 46vh;
}

.excel-com-panel {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface);
    padding: 0.75rem;
}

.excel-com-panel__cabecera {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
}

.excel-com-panel__cabecera h3 {
    margin: 0;
    font-size: 0.95rem;
}

.excel-com-panel__link {
    font-size: 0.8rem;
}

.excel-com-panel__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.55rem;
}

.excel-com-panel__grid label {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.78rem;
    color: var(--text-secondary);
}

.excel-com-panel__grid input[type="text"] {
    font-size: 0.8rem;
    padding: 0.32rem 0.45rem;
}

.excel-com-panel__check {
    flex-direction: row !important;
    align-items: center;
    gap: 0.4rem !important;
}

.excel-com-panel__acciones {
    margin-top: 0.65rem;
}

#tabla-editor tr.fila-comunidad--inactiva {
    opacity: 0.72;
}

#tabla-editor tr.fila-comunidad--vencimiento td:first-child {
    box-shadow: inset 3px 0 0 var(--warning);
}

#tabla-editor tr.is-selected {
    background: rgba(124, 92, 252, 0.12);
}

#tabla-editor tr.oculto {
    display: none;
}

/* --- Listado en hub Excel --- */

.excel-listado-barra {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    width: 100%;
}

.excel-listado-barra #listado-buscar {
    min-width: 220px;
    max-width: 360px;
    padding: 0.32rem 0.5rem;
    font-size: 0.8rem;
}

.excel-viewport #contenido-listado {
    width: 100%;
    margin: 0;
}

.excel-viewport #tabla-listado-wrapper {
    max-height: calc(100vh - 220px);
}

.excel-status-bar #listado-status-bar {
    margin: 0;
    padding: 0.35rem 0;
    border-top: none;
}

/* --- Agenda en hub Excel --- */

.excel-agenda-toolbar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
    width: 100%;
}

.excel-agenda-toolbar-row {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
}

.excel-agenda-tabs {
    display: flex;
    gap: 0.25rem;
}

.excel-agenda-tab {
    padding: 0.32rem 0.6rem;
    font-size: 0.78rem;
    border: 1px solid var(--border);
    border-radius: 0.4rem;
    background: transparent;
    color: var(--text-secondary);
    cursor: pointer;
}

.excel-agenda-tab.is-active {
    background: rgba(124, 92, 252, 0.12);
    border-color: rgba(124, 92, 252, 0.35);
    color: var(--text-primary);
}

.excel-agenda-toolbar #excel-agenda-filtro {
    width: auto;
    flex: 0 0 auto;
    min-width: 14rem;
    max-width: 20rem;
    padding: 0.32rem 0.5rem;
    font-size: 0.8rem;
}

.excel-agenda-toolbar #excel-agenda-nuevo {
    margin-left: auto;
    flex: 0 0 auto;
    white-space: nowrap;
}

.excel-agenda-toolbar #excel-agenda-descartar,
.excel-siniestros-toolbar #excel-sin-descartar {
    flex: 0 0 auto;
    white-space: nowrap;
}

.excel-agenda-grid-wrapper {
    overflow-x: hidden;
    overflow-y: auto;
    max-height: calc(100vh - 220px);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface);
}

#tabla-agenda-excel {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 0.78rem;
}

#tabla-agenda-excel.is-mediadores .excel-agenda-col-nombre {
    width: 18%;
}

#tabla-agenda-excel.is-mediadores .excel-agenda-col-telefono {
    width: 12.5rem;
}

#tabla-agenda-excel.is-mediadores .excel-agenda-col-email {
    width: 13.5rem;
}

#tabla-agenda-excel.is-mediadores .excel-agenda-col-notas {
    width: auto;
}

#tabla-agenda-excel.is-mediadores .excel-agenda-col-companias {
    width: 9.5rem;
    max-width: 9.5rem;
}

#tabla-agenda-excel.is-mediadores .excel-agenda-col-acciones {
    width: 7.25rem;
}

#tabla-agenda-excel.is-aseguradoras .excel-agenda-col-nombre {
    width: 22%;
}

#tabla-agenda-excel.is-aseguradoras .excel-agenda-col-telefono {
    width: 13rem;
}

#tabla-agenda-excel.is-aseguradoras .excel-agenda-col-email {
    width: 14rem;
}

#tabla-agenda-excel.is-aseguradoras .excel-agenda-col-notas {
    width: auto;
}

#tabla-agenda-excel.is-aseguradoras .excel-agenda-col-acciones {
    width: 5.25rem;
}

.excel-agenda-contactos {
    display: grid;
    gap: 0.3rem;
    min-width: 0;
}

.excel-agenda-contactos__lista {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.excel-agenda-contactos__lista:empty {
    display: none;
}

.excel-agenda-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    max-width: 100%;
    padding: 0.12rem 0.35rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--surface-alt);
    font-size: 0.72rem;
    line-height: 1.2;
}

.excel-agenda-chip > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.excel-agenda-chip__quitar {
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--text-secondary);
    cursor: pointer;
    font-size: 0.85rem;
    line-height: 1;
}

.excel-agenda-chip__quitar:hover {
    color: var(--danger, #e35d6a);
}

.excel-agenda-contactos__fila {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
}

.excel-agenda-contactos__fila .excel-agenda-input--add {
    flex: 1 1 auto;
    min-width: 0;
}

.excel-agenda-btn-add {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.55rem;
    height: 1.55rem;
    padding: 0;
    border: 1px solid var(--btn-edit-border);
    border-radius: 50%;
    background: var(--btn-edit-bg);
    color: var(--btn-edit-text);
    cursor: pointer;
    font-size: 0.7rem;
}

.excel-agenda-btn-add:hover {
    filter: brightness(1.08);
}

.excel-agenda-col-companias {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--text-secondary);
    font-size: 0.74rem;
}

#tabla-agenda-excel th,
#tabla-agenda-excel td {
    padding: 0.35rem 0.4rem;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
    overflow: hidden;
}

#tabla-agenda-excel thead th {
    position: sticky;
    top: 0;
    background: var(--surface-alt);
    z-index: 1;
}

.excel-agenda-input {
    width: 100%;
    min-width: 0;
    padding: 0.28rem 0.4rem;
    font-size: 0.78rem;
    box-sizing: border-box;
}

.excel-agenda-input--compacto {
    padding: 0.28rem 0.3rem;
    font-size: 0.75rem;
}

#tabla-agenda-excel td.excel-agenda-acciones {
    white-space: nowrap;
    text-align: right;
    overflow: visible !important;
    padding-left: 0.15rem !important;
    padding-right: 0.4rem !important;
}

.excel-agenda-btn-icono {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    height: 1.7rem;
    min-width: 1.7rem;
    min-height: 1.7rem;
    padding: 0;
    margin: 0 0.05rem;
    font-size: 0.78rem;
    line-height: 1;
    background: var(--btn-edit-bg);
    color: var(--btn-edit-text);
    border: 1px solid var(--btn-edit-border);
    border-radius: 50%;
    cursor: pointer;
    box-shadow: none;
    box-sizing: border-box;
    flex-shrink: 0;
}

.excel-agenda-btn-icono:hover {
    color: var(--btn-edit-text);
    border-color: var(--primary);
    background: var(--btn-edit-hover-bg);
    box-shadow: 0 0 8px rgba(124, 92, 252, 0.2);
    transform: none;
}

.excel-agenda-btn-icono--danger {
    color: var(--btn-danger-text);
    border-color: var(--btn-danger-border);
    background: var(--btn-danger-bg);
}

.excel-agenda-btn-icono--danger:hover {
    color: var(--btn-danger-text);
    border-color: var(--danger);
    background: var(--btn-danger-hover-bg);
    box-shadow: 0 0 8px rgba(255, 82, 82, 0.25);
}

.excel-agenda-lista-companias {
    max-height: 50vh;
    overflow: auto;
    margin: 0.75rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.excel-agenda-compania-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    cursor: pointer;
}

.excel-agenda-compania-item input {
    width: auto;
    flex: 0 0 auto;
}

.admin-header--con-acciones {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.admin-header__btn-logs {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.9rem;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: var(--surface);
    color: inherit;
    text-decoration: none;
    font-size: 0.86rem;
    white-space: nowrap;
}

.admin-header__btn-logs:hover {
    border-color: rgba(124, 92, 252, 0.45);
    background: rgba(124, 92, 252, 0.08);
}

.admin-header__btn-logs--secundario {
    background: var(--surface-alt);
}

.admin-act-cambios {
    margin: 1rem 0;
    padding: 0.85rem 1rem;
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 8px;
    background: var(--surface-secondary, rgba(0,0,0,0.15));
}

.admin-act-cambios h4 {
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.admin-act-cambio {
    display: grid;
    grid-template-columns: minmax(7rem, 28%) 1fr auto 1fr;
    gap: 0.5rem 0.65rem;
    align-items: center;
    padding: 0.45rem 0;
    border-top: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    font-size: 0.88rem;
}

.admin-act-cambio:first-of-type {
    border-top: none;
}

.admin-act-cambio__campo {
    color: var(--text-secondary);
    font-weight: 600;
}

.admin-act-cambio__antes {
    color: var(--text-secondary);
    text-decoration: line-through;
    opacity: 0.85;
}

.admin-act-cambio__despues {
    font-weight: 600;
}

.admin-act-cambio__flecha {
    opacity: 0.55;
    font-size: 0.75rem;
}

.admin-act-cambio--alta,
.admin-act-cambio--baja {
    grid-template-columns: minmax(7rem, 28%) 1fr;
}

@media (max-width: 720px) {
    .admin-act-cambio {
        grid-template-columns: 1fr;
    }
    .admin-act-cambio__flecha {
        display: none;
    }
}

.siniestro-historial-estados {
    margin-top: 1rem;
    border-top: 1px solid var(--border);
    padding-top: 1rem;
}

.siniestro-historial-lista {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.65rem;
}

.siniestro-historial-item {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface-alt);
    padding: 0.7rem 0.85rem;
    display: grid;
    gap: 0.45rem;
}

.siniestro-historial-item__cambio {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.siniestro-historial-item__cambio .fa-arrow-right {
    color: var(--text-secondary);
    font-size: 0.8rem;
}

.siniestro-historial-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.85rem;
    color: var(--text-secondary);
    font-size: 0.86rem;
}

.siniestro-historial-item__meta strong {
    color: var(--text-primary);
    font-weight: 600;
}

.modal-confirm__actions--triple {
    flex-wrap: nowrap;
    justify-content: stretch;
    align-items: stretch;
    gap: 0.4rem;
}

.modal-confirm__actions--triple > button {
    flex: 1 1 0;
    min-width: 0;
    padding: 0.45rem 0.4rem;
    font-size: 0.8rem;
    white-space: nowrap;
    line-height: 1.25;
}

.modal-confirm__box:has(.modal-confirm__actions--triple) {
    width: min(540px, 100%);
}

.agenda-contactos {
    margin: 0 0 0.85rem;
    display: grid;
    gap: 0.4rem;
}

.agenda-contactos > label {
    font-size: 0.88rem;
    color: var(--text-secondary);
}

.agenda-contactos__fila {
    display: flex;
    gap: 0.45rem;
    align-items: center;
}

.agenda-contactos__fila input {
    flex: 1 1 auto;
    min-width: 0;
}

.agenda-contactos__lista {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.35rem;
}

.agenda-contactos__lista:empty {
    display: none;
}

.agenda-contacto-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.4rem 0.55rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm, 8px);
    background: var(--surface-alt);
    font-size: 0.88rem;
}

.agenda-contacto-item button {
    flex-shrink: 0;
}