/* ==========================================================================
   NeuralV v6 — PÁGINAS LEGALES
   Política de Privacidad y Términos de Uso comparten esta hoja: mismo
   patrón de barra lateral fija + contenido con tablas y avisos.
   ========================================================================== */

.legal-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: var(--s-6);
    align-items: start;
}

/* Un item de grid no se encoge bajo su contenido por defecto: sin esto una
   tabla ancha empuja la página entera en móvil. */
.legal-layout > * { min-width: 0; }

.legal-nav {
    position: sticky;
    top: 110px;
    padding: var(--s-3);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
}

.legal-nav h4 { font-size: var(--t-micro); text-transform: uppercase; letter-spacing: 0.07em; color: var(--ink-faint); margin-bottom: var(--s-2); }

.legal-nav a {
    display: block;
    padding: 0.5rem 0.6rem;
    border-radius: var(--radius-sm);
    font-size: var(--t-small);
    color: var(--ink-soft);
    transition: background 0.2s var(--ease), color 0.2s var(--ease);
}

.legal-nav a:hover { background: rgba(0, 107, 240, 0.06); color: var(--brand); }

.legal-updated {
    margin-top: var(--s-2);
    padding: var(--s-2);
    border-radius: var(--radius-sm);
    background: rgba(0, 107, 240, 0.05);
    border: 1px solid rgba(0, 107, 240, 0.14);
    font-size: var(--t-micro);
    color: var(--ink-soft);
    text-align: center;
}

.legal-updated strong { display: block; color: var(--brand); margin-bottom: 0.2rem; }

.legal-content {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: var(--s-5);
}

.legal-content section { margin-bottom: var(--s-5); scroll-margin-top: 110px; }
.legal-content section:last-child { margin-bottom: 0; }

.legal-content h2 {
    font-size: var(--t-h3);
    padding-bottom: var(--s-2);
    margin-bottom: var(--s-2);
    border-bottom: 1px solid var(--line);
}

.legal-content h3 { font-size: var(--t-body); font-weight: 600; margin: var(--s-3) 0 0.5rem; }
.legal-content p { color: var(--ink-soft); line-height: 1.75; margin-bottom: var(--s-2); }
.legal-content a { color: var(--brand); }
.legal-content a:hover { text-decoration: underline; }

/* Las URLs técnicas largas deben partirse dentro de la tarjeta, sin recortarse. */
.legal-content code { overflow-wrap: anywhere; }

.legal-content ul { margin-bottom: var(--s-2); }

.legal-content ul li {
    position: relative;
    padding: 0.35rem 0 0.35rem 1.25rem;
    color: var(--ink-soft);
    line-height: 1.65;
}

.legal-content ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.85rem;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--brand);
}

.legal-content details { margin-top: var(--s-2); }

/* El comportamiento nativo "cerrado = oculto" de <details> no se puede dar
   por hecho (falla en algunos contextos de depuración/emulación): se
   reafirma aquí explícitamente para no depender solo de él. */
.legal-content details:not([open]) > *:not(summary) { display: none; }
.legal-content summary { cursor: pointer; font-size: var(--t-small); color: var(--brand); padding: 0.4rem 0; }

/* Envuelta en .legal-table-wrap: poner overflow-x directamente en un
   <table> con display:block no aísla su contenido de forma fiable en
   todos los motores (el mismo patrón que .device-body SÍ resuelve bien). */
/* contain:layout es la garantía real: aísla el contenido interno de este
   caja de cualquier cálculo de tamaño del documento, algo que overflow-x:auto
   por sí solo NO siempre cumple con un <table> nativo dentro. */
.legal-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    margin: var(--s-2) 0;
}

.legal-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--t-small);
    margin: 0;
    table-layout: fixed;
}

.legal-table td, .legal-table th { word-break: break-word; }

.legal-table th {
    text-align: left;
    padding: 0.7rem var(--s-2);
    background: var(--surface-dark);
    color: #fff;
    font-weight: 600;
}

.legal-table th:first-child { border-radius: var(--radius-sm) 0 0 0; }
.legal-table th:last-child { border-radius: 0 var(--radius-sm) 0 0; }
.legal-table td { padding: 0.7rem var(--s-2); border-bottom: 1px solid var(--line); color: var(--ink-soft); vertical-align: top; }
.legal-table tr:nth-child(even) td { background: var(--surface-alt); }

.legal-box {
    padding: var(--s-2) var(--s-3);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    border-left: 3px solid var(--brand);
    background: rgba(0, 107, 240, 0.05);
    margin: var(--s-2) 0;
}

.legal-box p { margin: 0; color: var(--ink); font-size: var(--t-small); }
.legal-box.aviso { border-color: var(--alert); background: rgba(215, 38, 61, 0.05); }

.rights-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-2); margin: var(--s-2) 0; }

.right-card {
    padding: var(--s-2) var(--s-3);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
}

.right-card b { display: block; font-size: var(--t-small); margin-bottom: 0.15rem; }
.right-card span { font-size: var(--t-micro); color: var(--ink-faint); }

@media (max-width: 900px) {
    .legal-layout { grid-template-columns: 1fr; }
    .legal-nav { position: static; }
    .rights-grid { grid-template-columns: 1fr; }
    .legal-content { padding: var(--s-4); }
}

@media (max-width: 600px) {
    .legal-table { min-width: 420px; }
}
