:root {
    --legal-brand: #002e6e;
    --legal-blue: #3c79c0;
    --legal-ink: #334155;
    --legal-muted: #64748b;
    --legal-line: #dbe4ef;
    --legal-panel: rgba(255,255,255,.96);
    --legal-soft: #f4f8fc;
}

.dark {
    --legal-ink: #e2e8f0;
    --legal-muted: #94a3b8;
    --legal-line: rgba(255,255,255,.09);
    --legal-panel: rgba(22,27,34,.97);
    --legal-soft: rgba(255,255,255,.04);
}

.legal-page {
    min-height: 100vh;
    margin: 0;
    font-family: "Aptos", "Segoe UI", sans-serif;
    color: var(--legal-ink);
    background:
        radial-gradient(circle at top right, rgba(59,130,246,.10), transparent 28%),
        radial-gradient(circle at bottom left, rgba(26,68,110,.08), transparent 24%),
        #f6f9fd;
}

.dark .legal-page { background-color: #0b0e14; }

.legal-shell { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; padding: 2rem 0 4rem; }
.legal-topbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:2rem; }
.legal-logo { width:auto; height:3.25rem; object-fit:contain; }
.legal-back, .legal-link-button {
    display:inline-flex; align-items:center; justify-content:center; gap:.65rem;
    min-height:2.9rem; padding:.65rem 1rem; border:1px solid var(--legal-line);
    border-radius:1rem; background:var(--legal-panel); color:var(--legal-brand);
    font-size:.72rem; line-height:1; font-weight:900; letter-spacing:.1em;
    text-transform:uppercase; text-decoration:none; cursor:pointer;
}
.dark .legal-back, .dark .legal-link-button { color:#fff; }
.legal-hero {
    padding: clamp(2rem, 5vw, 4rem); border-radius:2.5rem;
    color:#fff; background:linear-gradient(135deg,#002e6e,#2f70b7);
    box-shadow:0 24px 60px rgba(15,23,42,.12);
}
.legal-eyebrow { margin:0 0 .9rem; font-size:.68rem; font-weight:900; letter-spacing:.25em; text-transform:uppercase; color:#bfdbfe; }
.legal-title { margin:0; font-size:clamp(2.2rem,5vw,4.2rem); line-height:.96; letter-spacing:-.045em; }
.legal-intro { max-width:48rem; margin:1.35rem 0 0; font-size:1rem; line-height:1.75; font-weight:650; color:#dbeafe; }
.legal-updated { margin-top:1.6rem; font-size:.7rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.legal-grid { display:grid; grid-template-columns:minmax(0,1fr) 18rem; gap:1.5rem; margin-top:1.5rem; align-items:start; }
.legal-card {
    padding:clamp(1.5rem,3vw,2.5rem); border:1px solid var(--legal-line);
    border-radius:2rem; background:var(--legal-panel); box-shadow:0 18px 48px rgba(15,23,42,.07);
}
.legal-card + .legal-card { margin-top:1.25rem; }
.legal-card h2 { margin:0 0 1rem; color:var(--legal-brand); font-size:1.35rem; line-height:1.2; }
.dark .legal-card h2 { color:#fff; }
.legal-card h3 { margin:1.5rem 0 .55rem; color:var(--legal-brand); font-size:1rem; }
.dark .legal-card h3 { color:#bfdbfe; }
.legal-card p, .legal-card li { font-size:.92rem; line-height:1.75; font-weight:600; color:var(--legal-muted); }
.legal-card ul { margin:.65rem 0 0; padding-left:1.2rem; }
.legal-card a { color:#2563eb; font-weight:800; }
.legal-nav { position:sticky; top:1.25rem; }
.legal-nav a { display:block; padding:.75rem .85rem; border-radius:.8rem; color:var(--legal-muted); font-size:.8rem; font-weight:800; text-decoration:none; }
.legal-nav a:hover, .legal-nav a:focus-visible { background:var(--legal-soft); color:var(--legal-brand); }
.dark .legal-nav a:hover, .dark .legal-nav a:focus-visible { color:#fff; }
.legal-table-wrap { overflow-x:auto; margin-top:1.25rem; border:1px solid var(--legal-line); border-radius:1.25rem; }
.legal-table { width:100%; border-collapse:collapse; min-width:650px; }
.legal-table th, .legal-table td { padding:1rem; border-bottom:1px solid var(--legal-line); text-align:left; vertical-align:top; font-size:.82rem; line-height:1.55; }
.legal-table th { color:var(--legal-brand); background:var(--legal-soft); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; }
.dark .legal-table th { color:#bfdbfe; }
.legal-table tr:last-child td { border-bottom:0; }
.legal-note { margin-top:1rem; padding:1rem 1.15rem; border-radius:1rem; background:#eff6ff; color:#1e40af !important; }
.dark .legal-note { background:rgba(59,130,246,.1); color:#bfdbfe !important; }
.legal-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.25rem; }
.legal-primary { background:var(--legal-brand); color:#fff !important; border-color:var(--legal-brand); }
.legal-footer { padding:2rem 0 0; text-align:center; color:#94a3b8; font-size:.66rem; font-weight:900; letter-spacing:.18em; text-transform:uppercase; }
.legal-footer-links { display:flex; justify-content:center; flex-wrap:wrap; gap:.8rem 1.25rem; margin-bottom:1rem; }
.legal-footer a { color:inherit; text-decoration:none; }
.legal-footer a:hover { color:#2563eb; }

.portal-legal-links { display:flex; justify-content:center; flex-wrap:wrap; gap:.45rem .95rem; margin-top:.65rem; }
.portal-legal-links a, .portal-legal-button {
    border:0; padding:0; background:transparent; color:inherit; font:inherit;
    letter-spacing:.12em; text-transform:uppercase; text-decoration:none; cursor:pointer;
}
.portal-legal-links a:hover, .portal-legal-button:hover { color:#3b82f6; }

@media (max-width: 820px) {
    .legal-grid { grid-template-columns:1fr; }
    .legal-nav { position:static; order:-1; }
    .legal-nav .legal-card { display:flex; overflow-x:auto; padding:1rem; }
    .legal-nav a { white-space:nowrap; }
}
