/**
 * Xpress × social_next theme bridge.
 *
 * Keeps Bootstrap's machinery (grid, modals, dropdowns, toasts) and re-maps its
 * palette onto the social_next design tokens (d:\cream\social_next\_shell.css):
 * ink/cream surfaces, terracotta accent, Geist + Instrument Serif type.
 * Dark is the default; [data-bs-theme="light"] is the cream "paper" variant.
 * Loaded AFTER bootstrap.min.css and the layout's inline styles.
 */

@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700;800&family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@400&display=swap');

:root,
[data-bs-theme="dark"] {
    --sn-page: #07070a;
    --sn-ink-1: #0c0c10;
    --sn-ink-2: #121218;
    --sn-ink-3: #181822;
    --sn-ink-4: #20202c;
    --sn-line: #1f1f29;
    --sn-line-2: #2c2c3a;
    --sn-fg-0: #f6f1e7;
    --sn-fg-1: #ddd7c8;
    --sn-fg-2: #9b958a;
    --sn-fg-3: #6a655d;
    --sn-terra: #f26522;
    --sn-terra-dark: #d9531a;
    --sn-terra-soft: rgba(242, 101, 34, 0.12);
    --sn-indigo: #6c80d8;
    --sn-gold: #e0a500;
    --sn-shadow-card: 0 1px 0 rgba(255,255,255,0.02) inset, 0 4px 16px rgba(0,0,0,0.25);
}

[data-bs-theme="light"] {
    --sn-page: #fbf6ec;
    --sn-ink-1: #ffffff;
    --sn-ink-2: #f6f1e7;
    --sn-ink-3: #ece6d6;
    --sn-ink-4: #ddd7c8;
    --sn-line: rgba(12, 12, 16, 0.08);
    --sn-line-2: rgba(12, 12, 16, 0.14);
    --sn-fg-0: #0c0c10;
    --sn-fg-1: #2a2620;
    --sn-fg-2: #6a655d;
    --sn-fg-3: #9b958a;
    --sn-terra: #d9531a;
    --sn-terra-dark: #bc4512;
    --sn-terra-soft: rgba(217, 83, 26, 0.10);
    --sn-indigo: #3a4ea8;
    --sn-shadow-card: 0 1px 0 rgba(255,255,255,0.6) inset, 0 2px 12px rgba(12,12,16,0.06);
}

/* ===== Bootstrap variable remap ===== */
[data-bs-theme="dark"],
[data-bs-theme="light"] {
    --bs-body-bg: var(--sn-page);
    --bs-body-color: var(--sn-fg-0);
    --bs-secondary-color: var(--sn-fg-2);
    --bs-tertiary-color: var(--sn-fg-3);
    --bs-secondary-bg: var(--sn-ink-2);
    --bs-tertiary-bg: var(--sn-ink-3);
    --bs-border-color: var(--sn-line);
    --bs-border-color-translucent: var(--sn-line);
    --bs-emphasis-color: var(--sn-fg-0);
    --bs-link-color: var(--sn-terra);
    --bs-link-hover-color: var(--sn-terra-dark);
    --bs-primary: var(--sn-terra);
    --bs-primary-rgb: 242, 101, 34;
    --bs-focus-ring-color: rgba(242, 101, 34, 0.25);
}

body {
    font-family: 'Geist', ui-sans-serif, system-ui, -apple-system, sans-serif;
    background: var(--sn-page);
    color: var(--sn-fg-0);
    -webkit-font-smoothing: antialiased;
}

/* ===== Buttons ===== */
.btn-primary {
    --bs-btn-bg: var(--sn-terra);
    --bs-btn-border-color: var(--sn-terra);
    --bs-btn-hover-bg: var(--sn-terra-dark);
    --bs-btn-hover-border-color: var(--sn-terra-dark);
    --bs-btn-active-bg: var(--sn-terra-dark);
    --bs-btn-active-border-color: var(--sn-terra-dark);
    --bs-btn-disabled-bg: var(--sn-terra);
    --bs-btn-disabled-border-color: var(--sn-terra);
    --bs-btn-focus-shadow-rgb: 242, 101, 34;
}
.btn-outline-primary {
    --bs-btn-color: var(--sn-terra);
    --bs-btn-border-color: var(--sn-terra);
    --bs-btn-hover-bg: var(--sn-terra);
    --bs-btn-hover-border-color: var(--sn-terra);
    --bs-btn-active-bg: var(--sn-terra-dark);
    --bs-btn-active-border-color: var(--sn-terra-dark);
    --bs-btn-focus-shadow-rgb: 242, 101, 34;
}
.btn-outline-secondary {
    --bs-btn-color: var(--sn-fg-1);
    --bs-btn-border-color: var(--sn-line-2);
    --bs-btn-hover-bg: var(--sn-ink-3);
    --bs-btn-hover-color: var(--sn-fg-0);
    --bs-btn-hover-border-color: var(--sn-line-2);
}

/* ===== Surfaces ===== */
.card {
    --bs-card-bg: var(--sn-ink-2);
    --bs-card-border-color: var(--sn-line);
    --bs-card-cap-bg: var(--sn-ink-1);
    border: 1px solid var(--sn-line);
    box-shadow: var(--sn-shadow-card);
    border-radius: 12px;
}
.modal-content {
    --bs-modal-bg: var(--sn-ink-2);
    --bs-modal-border-color: var(--sn-line-2);
}
.dropdown-menu {
    --bs-dropdown-bg: var(--sn-ink-2);
    --bs-dropdown-border-color: var(--sn-line-2);
    --bs-dropdown-link-color: var(--sn-fg-1);
    --bs-dropdown-link-hover-bg: var(--sn-ink-3);
    --bs-dropdown-link-hover-color: var(--sn-fg-0);
}
.list-group {
    --bs-list-group-bg: var(--sn-ink-2);
    --bs-list-group-border-color: var(--sn-line);
    --bs-list-group-color: var(--sn-fg-0);
}
.toast { background: var(--sn-ink-2); border-color: var(--sn-line-2); }

/* ===== Tables ===== */
.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--sn-fg-0);
    --bs-table-border-color: var(--sn-line);
    --bs-table-striped-bg: var(--sn-ink-1);
    --bs-table-striped-color: var(--sn-fg-0);
    --bs-table-hover-bg: var(--sn-ink-3);
    --bs-table-hover-color: var(--sn-fg-0);
}
.table thead th {
    color: var(--sn-fg-2);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom-color: var(--sn-line-2);
}

/* ===== Forms ===== */
.form-control, .form-select, .input-group-text {
    background-color: var(--sn-ink-1);
    border-color: var(--sn-line-2);
    color: var(--sn-fg-0);
}
.form-control:focus, .form-select:focus {
    background-color: var(--sn-ink-1);
    border-color: var(--sn-terra);
    color: var(--sn-fg-0);
    box-shadow: 0 0 0 0.25rem rgba(242, 101, 34, 0.15);
}
.form-control::placeholder { color: var(--sn-fg-3); }
.form-check-input:checked { background-color: var(--sn-terra); border-color: var(--sn-terra); }

/* ===== Nav tabs / pills ===== */
.nav-tabs { --bs-nav-tabs-border-color: var(--sn-line-2); --bs-nav-tabs-link-active-bg: var(--sn-ink-2); --bs-nav-tabs-link-active-color: var(--sn-fg-0); --bs-nav-tabs-link-active-border-color: var(--sn-line-2) var(--sn-line-2) var(--sn-ink-2); }
.nav-tabs .nav-link { color: var(--sn-fg-2); }
.nav-tabs .nav-link:hover { color: var(--sn-fg-0); border-color: var(--sn-line) var(--sn-line) transparent; }
.nav-pills { --bs-nav-pills-link-active-bg: var(--sn-terra); }

/* ===== Status chips (layout.php badge-*) ===== */
.badge-draft        { background: rgba(224, 165, 0, 0.16);  color: #e3b54b; }
.badge-scheduled    { background: rgba(108, 128, 216, 0.18); color: #9eaef0; }
.badge-sending      { background: rgba(242, 101, 34, 0.16);  color: #f7965e; }
.badge-sent         { background: rgba(46, 160, 67, 0.18);   color: #6fcf85; }
.badge-active       { background: rgba(46, 160, 67, 0.18);   color: #6fcf85; }
.badge-paused       { background: rgba(224, 165, 0, 0.16);   color: #e3b54b; }
.badge-unsubscribed { background: rgba(248, 81, 73, 0.16);   color: #f08577; }
.badge-bounced      { background: rgba(248, 81, 73, 0.20);   color: #f08577; }
[data-bs-theme="light"] .badge-draft        { background: #fef3c7; color: #92400e; }
[data-bs-theme="light"] .badge-scheduled    { background: #dde3f7; color: #3a4ea8; }
[data-bs-theme="light"] .badge-sending      { background: rgba(217,83,26,.12); color: #bc4512; }
[data-bs-theme="light"] .badge-sent,
[data-bs-theme="light"] .badge-active       { background: #d1fae5; color: #065f46; }
[data-bs-theme="light"] .badge-paused       { background: #fef3c7; color: #92400e; }
[data-bs-theme="light"] .badge-unsubscribed,
[data-bs-theme="light"] .badge-bounced      { background: #fee2e2; color: #991b1b; }

/* ===== App shell (overrides layout.php inline styles) ===== */
.sidebar {
    background: var(--sn-ink-1);
    border-right: 1px solid var(--sn-line);
}
.sidebar .brand {
    color: var(--sn-terra);
    font-family: 'Geist', sans-serif;
    font-weight: 800;
    border-bottom: 1px solid var(--sn-line);
}
.sidebar .nav-link { color: var(--sn-fg-2); font-weight: 500; }
.sidebar .nav-link:hover { color: var(--sn-fg-0); background: var(--sn-ink-3); }
.sidebar .nav-link.active { color: var(--sn-terra); background: var(--sn-terra-soft); font-weight: 600; }
.sidebar small.text-white-50 { color: var(--sn-fg-3) !important; }
.sidebar .form-select {
    background-color: var(--sn-ink-2);
    border-color: var(--sn-line-2);
    color: var(--sn-fg-0);
}

.top-bar {
    background: var(--sn-ink-1);
    border-bottom: 1px solid var(--sn-line);
}
.top-bar h4 { font-family: 'Geist', sans-serif; font-weight: 700; letter-spacing: -0.01em; }
.hamburger-btn { color: var(--sn-fg-1); }

.stat-card .stat-value { color: var(--sn-fg-0); }
.stat-card .stat-label { color: var(--sn-fg-2); }

/* Headings keep Geist; page-level display numbers may opt into the serif */
.sn-serif { font-family: 'Instrument Serif', 'Times New Roman', serif; font-weight: 400; }

/* text-muted etc. follow the token system */
.text-muted { color: var(--sn-fg-2) !important; }
a { color: var(--sn-terra); }
a:hover { color: var(--sn-terra-dark); }

/* Theme toggle button */
.theme-toggle {
    width: 34px; height: 34px;
    border-radius: 50%;
    border: 1px solid var(--sn-line-2);
    background: var(--sn-ink-2);
    color: var(--sn-fg-1);
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: background 0.2s;
}
.theme-toggle:hover { background: var(--sn-ink-3); color: var(--sn-fg-0); }
[data-bs-theme="dark"] .theme-toggle .bi-moon-stars { display: none; }
[data-bs-theme="light"] .theme-toggle .bi-sun { display: none; }

/* Scrollbars, social_next style */
* { scrollbar-width: thin; scrollbar-color: var(--sn-ink-4) transparent; }
*::-webkit-scrollbar { width: 8px; height: 8px; }
*::-webkit-scrollbar-thumb { background: var(--sn-ink-4); border-radius: 4px; }
*::-webkit-scrollbar-track { background: transparent; }
