/* ============================================
   lmin Generic Page (page.php — sample/legal/info pages)
   Composes ONLY existing --nb-* / --color-* / --space-* /
   --step-* / --lmin-* tokens from lmin-variables.css.
   Card recipe copied from lmin-profile.css:11-18 — no new tokens.
   ============================================ */

/* Scoped reset (pattern: home-b-bold-bento.css:28) */
.lmin-page, .lmin-page *, .lmin-page *::before, .lmin-page *::after { box-sizing: border-box; }

/* ── Container ─────────────────────────────── */
.lmin-page {
    min-height: 60vh;
    padding: var(--space-xl-2xl) var(--space-s-l);
}

/* Card (recipe: lmin-profile.css:11-18) */
.lmin-page .lmin-entry {
    max-width: 800px;
    margin-inline: auto;
    background: var(--color-surface);
    border: var(--nb-border);
    border-radius: var(--nb-radius);
    box-shadow: var(--nb-shadow);
    padding: var(--space-l-xl);
}

/* ── Typography ────────────────────────────── */
.lmin-page .lmin-entry-title {
    font-family: var(--lmin-font-sans);
    font-size: var(--step-3);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-text);
    margin: 0 0 var(--space-l);
}

.lmin-entry-content {
    font-family: var(--lmin-font-sans);
    font-size: var(--step-0);
    color: var(--color-text);
    line-height: 1.7;
}

.lmin-entry-content p { margin: 0 0 var(--space-m); }

.lmin-entry-content h2 {
    font-size: var(--step-2);
    font-weight: 700;
    color: var(--color-text);
    margin: var(--space-xl) 0 var(--space-m);
}

.lmin-entry-content h3 {
    font-size: var(--step-1);
    font-weight: 700;
    color: var(--color-text);
    margin: var(--space-l) 0 var(--space-s);
}

.lmin-entry-content ul,
.lmin-entry-content ol {
    padding-inline-start: var(--space-l);
    margin: 0 0 var(--space-m);
    list-style: revert;
}

.lmin-entry-content a {
    color: var(--color-accent);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.lmin-entry-content blockquote {
    border-left: var(--nb-border);
    padding: var(--space-s) var(--space-m);
    margin: var(--space-m) 0;
    font-style: italic;
    color: var(--color-text-muted);
}

/* ── Dark mode ───────────────────────────────
   Scoped exactly like .lmin-profile (lmin-profile.css:381-431);
   body:has() cannot collide because .lmin-page only renders in page.php.
   --nb-* polarity flips globally (lmin-variables.css:263-271) — not re-declared. */
[data-theme="dark"] body:has(.lmin-page) {
    background-color: #0F172A;
}

[data-theme="dark"] .lmin-page {
    --color-bg: #0F172A;
    --color-surface: #1E293B;
    --color-surface-raised: #1E293B;
    --color-border: #E2E8F0;
    --color-border-hover: #F1F5F9;
    --color-text: #CBD5E1;
    --color-text-muted: #94A3B8;
    --color-accent: #60A5FA;
    --color-accent-text: #60A5FA;
    --color-accent-hover: #2563EB;
    --color-accent-fg: #FFFFFF;
    --color-accent-subtle: rgba(59, 130, 246, 0.15);
    --color-success: #4ADE80;
    --color-danger: #F87171;

    /* Neutral (slate) scale flip for legacy token consumers */
    --lmin-slate-900: #E2E8F0;
    --lmin-slate-800: #CBD5E1;
    --lmin-slate-700: #CBD5E1;
    --lmin-slate-600: #94A3B8;
    --lmin-slate-500: #94A3B8;
    --lmin-slate-400: #64748B;
    --lmin-slate-300: #475569;
    --lmin-slate-200: #334155;
    --lmin-slate-100: #1E293B;
    --lmin-slate-50: #172033;

    /* Accent + semantic pastels → translucent tints */
    --lmin-accent-bg: rgba(59, 130, 246, 0.12);
    --lmin-accent-border: rgba(59, 130, 246, 0.4);
    --lmin-success-bg: rgba(34, 197, 94, 0.15);
    --lmin-success-border: rgba(34, 197, 94, 0.4);
    --lmin-success-dark: #4ADE80;
    --lmin-warning-bg: rgba(245, 158, 11, 0.15);
    --lmin-warning-border: rgba(245, 158, 11, 0.4);
    --lmin-warning-dark: #FBBF24;
    --lmin-error-bg: rgba(239, 68, 68, 0.15);
    --lmin-error-border: rgba(239, 68, 68, 0.4);
    --lmin-error-dark: #F87171;
}

/* ── Small screens ─────────────────────────── */
@media (max-width: 600px) {
    .lmin-page {
        padding: var(--space-m) var(--space-s);
    }

    .lmin-page .lmin-entry {
        padding: var(--space-m);
    }
}
