/* ═══════════════════════════════════════════════════════════════
   GreenTrust® — the public legal pages (privacy policy, terms of
   service): the platform's look (palette of style.css, the dashboard
   panel header), light and dark (body.dark-mode, js/shell/theme-boot.js).
   ═══════════════════════════════════════════════════════════════ */
.legal-page {
    --lg-primary: #253d1c;
    --lg-secondary: #5c7852;
    --lg-bg: #eef3eb;
    --lg-card: #f5f8f3;
    --lg-paper: #ffffff;
    --lg-border: #c0d0ba;
    --lg-border-soft: #dde6d9;
    --lg-text: #162b0e;
    --lg-body: #2f4228;
    --lg-muted: #466140;
    --lg-tint: rgba(92, 120, 82, 0.08);
    --lg-topbar: #0f1f0a;
}
body.legal-page.dark-mode {
    --lg-primary: #ecf0f1;
    --lg-bg: #0a1508;
    --lg-card: #12280d;
    --lg-paper: #102209;
    --lg-border: #2a4a22;
    --lg-border-soft: #1e3518;
    --lg-text: #ecf0f1;
    --lg-body: #cfd8cb;
    --lg-muted: #a9b2a0;
    --lg-tint: rgba(123, 153, 112, 0.12);
    --lg-topbar: #06100a;
}
html.dark-mode-pending, html.dark-mode-pending body { background: #0a1508; }

.legal-page * { box-sizing: border-box; }
.legal-page {
    margin: 0;
    font-family: 'Nunito', system-ui, sans-serif;
    background: var(--lg-bg);
    color: var(--lg-text);
    line-height: 1.7;
}

/* ── top bar ── */
.legal-topbar {
    position: sticky; top: 0; z-index: 10;
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 12px 24px;
    background: var(--lg-topbar);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06);
}
.legal-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: #fff; }
.legal-brand img { height: 36px; width: auto; display: block; }
.legal-brand span { font-weight: 800; letter-spacing: 0.06em; font-size: 0.95rem; }
.legal-back {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 14px; border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: #e6efe3; text-decoration: none; font-size: 0.85rem; font-weight: 600;
}
.legal-back:hover, .legal-back:focus-visible { background: rgba(255, 255, 255, 0.08); }

/* ── layout ── */
.legal-wrap { max-width: 1040px; margin: 0 auto; padding: 32px 24px 56px; }

/* the dashboard panel header: icon disc, title, green underline */
.legal-head { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 24px; }
.legal-head-icon {
    flex: 0 0 48px; width: 48px; height: 48px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #466140, #253d1c); color: #fff;
}
.legal-head-text { flex: 1; min-width: 0; }
.legal-kicker {
    margin: 0; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em;
    text-transform: uppercase; color: var(--lg-muted);
}
.legal-head h1 {
    margin: 2px 0 6px; padding-bottom: 8px; font-size: 1.6rem; font-weight: 700;
    color: var(--lg-text); border-bottom: 2px solid var(--lg-secondary);
}
.legal-meta { margin: 0; font-size: 0.85rem; color: var(--lg-muted); }

.legal-grid { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; align-items: start; }

/* contents */
.legal-toc {
    position: sticky; top: 84px;
    background: var(--lg-card); border: 1px solid var(--lg-border); border-radius: 12px;
    padding: 16px 18px;
}
.legal-toc-title {
    margin: 0 0 8px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em;
    text-transform: uppercase; color: var(--lg-muted);
}
.legal-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; }
.legal-toc li { margin: 0; }
.legal-toc a {
    display: block; padding: 4px 8px; border-radius: 6px;
    font-size: 0.84rem; line-height: 1.4; color: var(--lg-body); text-decoration: none;
}
.legal-toc a:hover, .legal-toc a:focus-visible { background: var(--lg-tint); color: var(--lg-text); }

/* the document */
.legal-card {
    background: var(--lg-paper); border: 1px solid var(--lg-border); border-radius: 12px;
    padding: 32px 40px;
}
.legal-card h2 {
    margin: 32px 0 12px; padding-top: 20px; font-size: 1.12rem; font-weight: 700;
    color: var(--lg-text); border-top: 1px solid var(--lg-border-soft);
    scroll-margin-top: 84px;
}
.legal-card > h2:first-child, .legal-card > .legal-lead + h2 { margin-top: 0; }
.legal-card > h2:first-child { padding-top: 0; border-top: none; }
.legal-card h3 { margin: 20px 0 8px; font-size: 0.98rem; font-weight: 700; color: var(--lg-text); scroll-margin-top: 84px; }
.legal-card p, .legal-card li { font-size: 0.93rem; color: var(--lg-body); }
.legal-card p { margin: 0 0 12px; }
.legal-card ul, .legal-card ol { margin: 0 0 14px; padding-left: 22px; }
.legal-card li { margin-bottom: 6px; }
.legal-card li::marker { color: var(--lg-secondary); }
.legal-card strong { color: var(--lg-text); }
.legal-card a { color: var(--lg-secondary); text-decoration: underline; text-underline-offset: 2px; }
body.dark-mode .legal-card a { color: #8fae83; }
.legal-card code {
    font-size: 0.84em; padding: 1px 5px; border-radius: 4px;
    background: var(--lg-tint); color: var(--lg-text);
}

/* callouts (formerly .highlight-box) */
.legal-card .highlight-box, .legal-lead {
    margin: 14px 0; padding: 14px 18px; border-radius: 10px;
    background: var(--lg-tint); border: 1px solid var(--lg-border-soft);
    border-left: 3px solid var(--lg-secondary);
    font-size: 0.9rem; color: var(--lg-body);
}
.legal-lead { margin: 0 0 24px; }

/* tables */
.legal-table { width: 100%; border-collapse: collapse; margin: 12px 0 16px; font-size: 0.88rem; }
.legal-table th {
    text-align: left; padding: 9px 12px; font-size: 0.75rem; font-weight: 700;
    letter-spacing: 0.05em; text-transform: uppercase; color: var(--lg-muted);
    background: var(--lg-tint); border-bottom: 1px solid var(--lg-border);
}
.legal-table td { padding: 10px 12px; vertical-align: top; color: var(--lg-body); border-bottom: 1px solid var(--lg-border-soft); }
.legal-table tr:last-child td { border-bottom: none; }
.legal-table-wrap { overflow-x: auto; border: 1px solid var(--lg-border-soft); border-radius: 10px; margin: 12px 0 16px; }
.legal-table-wrap .legal-table { margin: 0; }

/* footer */
.legal-foot {
    margin-top: 24px; display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center;
    font-size: 0.84rem; color: var(--lg-muted);
}
.legal-foot a { color: var(--lg-muted); text-decoration: none; }
.legal-foot a:hover, .legal-foot a:focus-visible { color: var(--lg-text); text-decoration: underline; }
.legal-foot .legal-foot-copy { margin-right: auto; }

@media (max-width: 860px) {
    .legal-grid { grid-template-columns: 1fr; }
    .legal-toc { position: static; }
}
@media (max-width: 600px) {
    .legal-topbar { padding: 10px 16px; }
    .legal-brand span { display: none; }
    .legal-wrap { padding: 20px 16px 40px; }
    .legal-card { padding: 20px 18px; }
    .legal-head h1 { font-size: 1.3rem; }
}
@media print {
    .legal-topbar, .legal-toc, .legal-foot { display: none; }
    .legal-grid { display: block; }
    .legal-card { border: none; padding: 0; }
}
