/*
 * Правовые документы /legal/* (pages/legal/view.html) и предпросмотр в редакторе
 * (.legal-content внутри админки). HTML документа — от LegalMarkdown: заголовки h2–h4 с якорями,
 * списки, таблицы в .table-wrap. Цвета — переменные core.css, тема светлая и тёмная.
 */

body.legal {
    max-width: 760px;
    margin: 0 auto;
    padding: 2rem 1.5rem 3rem;
    background: var(--bg-root);
    color: var(--text-primary);
    line-height: 1.65;
    overflow-wrap: anywhere;
}

.legal-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border-subtle);
}
.legal-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    color: var(--text-primary);
    text-decoration: none;
}
.legal-back {
    margin-left: auto;
    color: var(--text-secondary);
    text-decoration: none;
    font-size: var(--text-sm);
}
.legal-back:hover { color: var(--accent); }

.legal-title { font-size: 1.8rem; line-height: 1.25; margin: 0 0 0.5rem; }
.legal-subtitle { color: var(--text-secondary); margin: 0 0 0.25rem; }
.legal-meta { color: var(--text-muted); font-size: var(--text-sm); margin: 0 0 1.5rem; }
.legal-archived {
    margin: 0 0 1.5rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--amber);
    border-radius: var(--radius);
    background: var(--amber-dim);
}

.legal-toc {
    margin: 0 0 2rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-surface);
}
.legal-toc__title { font-weight: 600; margin-bottom: 0.5rem; }
.legal-toc ol { list-style: none; margin: 0; padding: 0; }
.legal-toc li { margin: 0.25rem 0; }

.legal a, .legal-content a { color: var(--accent); }

/* --- Текст документа */
.legal-content h2 { font-size: 1.3rem; line-height: 1.3; margin: 2rem 0 0.75rem; scroll-margin-top: 1rem; }
.legal-content h3 { font-size: 1.1rem; margin: 1.5rem 0 0.5rem; scroll-margin-top: 1rem; }
.legal-content h4 { font-size: 1rem; margin: 1.25rem 0 0.5rem; }
.legal-content p { margin: 0.75rem 0; color: var(--text-secondary); }
.legal-content strong { color: var(--text-primary); }
.legal-content ul, .legal-content ol { margin: 0.75rem 0; padding-left: 1.5rem; color: var(--text-secondary); }
.legal-content ul { list-style: disc; }
.legal-content ol { list-style: decimal; }
.legal-content li { margin: 0.35rem 0; }
.legal-content li > ul, .legal-content li > ol { margin: 0.35rem 0; }
.legal-content ul ul { list-style: circle; }
.legal-content blockquote {
    margin: 1rem 0;
    padding: 0.75rem 1rem;
    border-left: 3px solid var(--accent);
    background: var(--bg-surface);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.legal-content blockquote p { margin: 0; }
.legal-content code {
    font-family: var(--font-mono);
    font-size: 0.9em;
    padding: 0.05em 0.3em;
    border-radius: 4px;
    background: var(--bg-raised);
}
.legal-content hr { border: 0; border-top: 1px solid var(--border-subtle); margin: 2rem 0; }

/* Таблица шире экрана прокручивается внутри своего блока — страница вбок не едет */
.legal-content .table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 1rem 0;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
}
.legal-content table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
    overflow-wrap: normal;
}
.legal-content th, .legal-content td {
    min-width: 9rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
    color: var(--text-secondary);
}
.legal-content tr > :first-child { border-left: 0; }
.legal-content tr > :last-child { border-right: 0; }
.legal-content thead tr:first-child > * { border-top: 0; }
.legal-content tbody tr:last-child > * { border-bottom: 0; }
.legal-content th {
    background: var(--bg-raised);
    color: var(--text-primary);
    font-weight: 600;
}

.legal-history { margin-top: 2.5rem; }
.legal-history h2 { font-size: 1.1rem; margin-bottom: 0.5rem; }
.legal-history ul { list-style: none; padding: 0; margin: 0; }
.legal-history li { margin: 0.25rem 0; }

.legal-footer {
    margin-top: 3rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-subtle);
    font-size: var(--text-sm);
    color: var(--text-muted);
}
.legal-footer ul { list-style: none; padding: 0; margin: 0 0 0.5rem; display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; }

@media (max-width: 640px) {
    body.legal { padding: 1.25rem 1rem 2rem; }
    .legal-title { font-size: 1.45rem; }
    .legal-content h2 { font-size: 1.15rem; }
    .legal-back, .legal-toc a, .legal-footer a { min-height: 44px; display: inline-flex; align-items: center; }
    .legal-content th, .legal-content td { min-width: 8rem; }
}
