/* =========================
   THEME: Dark Shell + Light Article
   ========================= */

body.dark_shell_light_article {
    background: linear-gradient(180deg, #040b12 0%, #08111c 260px, #eef3f8 260px, #eef3f8 100%);
    color: var(--shell-text);
}

body.dark_shell_light_article .topbar {
    border-color: #183042;
}

body.dark_shell_light_article .brand-link,
body.dark_shell_light_article .topnav a {
    color: var(--shell-text);
}

body.dark_shell_light_article .brand-subtitle {
    color: #7be3db;
}

body.dark_shell_light_article .topnav a {
    color: #c8d7e6;
}

body.dark_shell_light_article .topnav a:hover {
    color: #ffffff;
}

body.dark_shell_light_article .hero {
    background: linear-gradient(180deg, rgba(11, 22, 34, 0.96) 0%, rgba(12, 27, 41, 0.96) 100%);
    border-color: #1d3950;
    color: var(--shell-text);
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.22);
}

body.dark_shell_light_article .hero-summary,
body.dark_shell_light_article .hero-meta {
    color: #bfd0df;
}

body.dark_shell_light_article .hero-badge {
    background: rgba(30, 214, 255, 0.12);
    border: 1px solid rgba(30, 214, 255, 0.28);
    color: #8ee9ff;
}

body.dark_shell_light_article .hero-image-wrap img {
    border-color: #20405a;
}

body.dark_shell_light_article .hero-action-link {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.08);
    color: #eef7ff;
}

body.dark_shell_light_article .hero-action-link:hover {
    background: rgba(30,214,255,0.12);
    color: #ffffff;
}

body.dark_shell_light_article .article-content,
body.dark_shell_light_article .sidebar-card,
body.dark_shell_light_article .toc-mobile-card {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
    border-color: #d8e2ee;
    box-shadow: 0 10px 30px rgba(17, 24, 39, 0.08);
    color: #111827;
}

body.dark_shell_light_article .article-content p,
body.dark_shell_light_article .article-content li,
body.dark_shell_light_article .article-content h2,
body.dark_shell_light_article .article-content h3,
body.dark_shell_light_article .article-content h4,
body.dark_shell_light_article .sidebar-card-title,
body.dark_shell_light_article .sidebar-card-text,
body.dark_shell_light_article .sidebar-list a,
body.dark_shell_light_article .sidebar-feature-link a,
body.dark_shell_light_article .toc-mobile-label {
    color: #16202d;
}

body.dark_shell_light_article .sidebar-list a:hover,
body.dark_shell_light_article .sidebar-feature-link a:hover {
    color: #0f4f96;
}

body.dark_shell_light_article .sidebar-card-kicker,
body.light_minimal .sidebar-card-kicker {
    background: rgba(var(--ct-category-accent-rgb), 0.08);
    border: 1px solid rgba(var(--ct-category-accent-rgb), 0.12);
    color: var(--ct-category-accent);
}

body.dark_shell_light_article .sidebar-toc-list a {
    color: #29405b;
}

body.dark_shell_light_article .sidebar-toc-list a:hover {
    background: rgba(17, 79, 159, 0.08);
    color: #114f9f;
}

body.dark_shell_light_article .sidebar-toc-list a.is-active {
    background: rgba(17, 79, 159, 0.12);
    color: #114f9f;
}

body.dark_shell_light_article .toc-mobile-card {
    border-radius: 16px;
    padding: 18px;
}

body.dark_shell_light_article .toc-mobile-select {
    border-color: #d5deea;
    background: #ffffff;
    color: #16202d;
}

body.dark_shell_light_article .toc-mobile-select option {
    background: #ffffff;
    color: #16202d;
}

body.dark_shell_light_article .ct-step::before,
body.light_minimal .ct-step::before {
    content: "";
    position: absolute;
    left: 0;
    top: 18px;
    bottom: 18px;
    width: 3px;
    border-radius: 999px;
    background: linear-gradient(
        180deg,
        rgba(var(--ct-category-accent-rgb), 0.90) 0%,
        rgba(var(--ct-category-accent-rgb), 0.55) 100%
    );
}

body.dark_shell_light_article .ct-code,
body.light_minimal .ct-code {
    border-top: 2px solid rgba(var(--ct-category-accent-rgb), 0.75);
}

body.dark_shell_light_article .ct-code-label,
body.light_minimal .ct-code-label {
    color: var(--ct-category-accent);
    background: rgba(var(--ct-category-accent-rgb), 0.08);
    border: 1px solid rgba(var(--ct-category-accent-rgb), 0.16);
    padding: 4px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.dark_shell_light_article .ct-copy-btn:hover,
body.light_minimal .ct-copy-btn:hover {
    background: rgba(var(--ct-category-accent-rgb), 0.08);
    border-color: rgba(var(--ct-category-accent-rgb), 0.20);
}

body.dark_shell_light_article .ct-icon-code,
body.light_minimal .ct-icon-code {
    color: var(--ct-category-accent);
}

body.dark_shell_light_article .ct-step {
    background: linear-gradient(180deg, #f8fbff 0%, #f2f7fc 100%);
    border-color: #d5e2ef;
    color: #102033;
}

body.dark_shell_light_article .ct-step-badge,
body.light_minimal .ct-step-badge {
    background: rgba(var(--ct-category-accent-rgb), 0.08);
    border: 1px solid rgba(var(--ct-category-accent-rgb), 0.16);
    color: var(--ct-category-accent);
}

body.dark_shell_light_article .ct-step-badge-number,
body.light_minimal .ct-step-badge-number {
    color: #16202d;
}

body.dark_shell_light_article .ct-step-badge-number,
body.light_minimal .ct-step-badge-number {
    color: #16202d;
}

body.dark_shell_light_article .ct-step-title,
body.dark_shell_light_article .ct-step-body {
    color: #102033;
}

body.dark_shell_light_article .ct-step-helper {
    color: #5c6c82;
}

body.dark_shell_light_article .ct-code-label {
    color: #bfd0e6;
}

body.dark_shell_light_article .ct-copy-btn {
    border-color: #cfd9e8;
    background: #ffffff;
    color: #1f2937;
}

body.dark_shell_light_article .ct-copy-btn:hover {
    background: #f3f7fb;
}

body.dark_shell_light_article .ct-warning {
    background: linear-gradient(180deg, #fff8ea 0%, #fff2d8 100%);
    border-color: #f2c46b;
    color: #5a3a00;
}

body.dark_shell_light_article .ct-note {
    background: linear-gradient(180deg, #eef7ff 0%, #e4f2ff 100%);
    border-color: #8ec5ff;
    color: #12456d;
}

body.dark_shell_light_article .ct-success {
    background: linear-gradient(180deg, #ecfff2 0%, #dff8e8 100%);
    border-color: #7ed8a1;
    color: #11552a;
}

/* =========================
   THEME: Light Minimal
   Same layout, lighter shell
   ========================= */

body.light_minimal {
    background: linear-gradient(180deg, #f7f9fc 0%, #eef3f8 100%);
    color: #111827;
}

body.light_minimal .topbar {
    border-color: #d7e0ea;
}

body.light_minimal .brand-link,
body.light_minimal .topnav a {
    color: #13202f;
}

body.light_minimal .brand-subtitle {
    color: #15786d;
}

body.light_minimal .topnav a {
    color: #314255;
}

body.light_minimal .topnav a:hover {
    color: #0f4f96;
}

body.light_minimal .hero {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
    border-color: #d8e2ee;
    color: #111827;
    box-shadow: 0 10px 30px rgba(17, 24, 39, 0.06);
}

body.light_minimal .hero-summary,
body.light_minimal .hero-meta {
    color: #58677a;
}

body.light_minimal .hero-badge {
    background: #edf6ff;
    border: 1px solid #cfe2f8;
    color: #195fb9;
}

body.light_minimal .hero-image-wrap img {
    border-color: #d7e2ec;
}

body.light_minimal .hero-action-link {
    background: #ffffff;
    border-color: #d5deea;
    color: #22364a;
}

body.light_minimal .hero-action-link:hover {
    background: #eef6ff;
    color: #114f9f;
}

body.light_minimal .article-content,
body.light_minimal .sidebar-card,
body.light_minimal .toc-mobile-card {
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    border-color: #d8e2ee;
    box-shadow: 0 10px 30px rgba(17, 24, 39, 0.05);
    color: #111827;
}

body.light_minimal .article-content p,
body.light_minimal .article-content li,
body.light_minimal .article-content h2,
body.light_minimal .article-content h3,
body.light_minimal .article-content h4,
body.light_minimal .sidebar-card-title,
body.light_minimal .sidebar-card-text,
body.light_minimal .sidebar-list a,
body.light_minimal .sidebar-feature-link a,
body.light_minimal .toc-mobile-label {
    color: #16202d;
}

body.light_minimal .sidebar-list a:hover,
body.light_minimal .sidebar-feature-link a:hover {
    color: #0f4f96;
}

body.light_minimal .sidebar-card-kicker {
    background: rgba(17, 79, 159, 0.08);
    border: 1px solid rgba(17, 79, 159, 0.12);
    color: #114f9f;
}

body.light_minimal .sidebar-toc-list a {
    color: #29405b;
}

body.light_minimal .sidebar-toc-list a:hover {
    background: rgba(17, 79, 159, 0.08);
    color: #114f9f;
}

body.light_minimal .sidebar-toc-list a.is-active {
    background: rgba(17, 79, 159, 0.12);
    color: #114f9f;
}

body.light_minimal .toc-mobile-card {
    border-radius: 16px;
    padding: 18px;
}

body.light_minimal .toc-mobile-select {
    border-color: #d5deea;
    background: #ffffff;
    color: #16202d;
}

body.light_minimal .toc-mobile-select option {
    background: #ffffff;
    color: #16202d;
}

body.light_minimal .ct-step {
    background: linear-gradient(180deg, #fbfcfe 0%, #f5f9fd 100%);
    border-color: #dbe4ef;
    color: #102033;
}

body.light_minimal .ct-step-title,
body.light_minimal .ct-step-body {
    color: #102033;
}

body.light_minimal .ct-step-helper {
    color: #607084;
}

body.light_minimal .ct-warning {
    background: linear-gradient(180deg, #fff8ea 0%, #fff2d8 100%);
    border-color: #f2c46b;
    color: #5a3a00;
}

body.light_minimal .ct-note {
    background: linear-gradient(180deg, #eef7ff 0%, #e4f2ff 100%);
    border-color: #8ec5ff;
    color: #12456d;
}

body.light_minimal .ct-success {
    background: linear-gradient(180deg, #ecfff2 0%, #dff8e8 100%);
    border-color: #7ed8a1;
    color: #11552a;
}

/* =========================
   CODE BLOCKS - DARK SHELL LIGHT ARTICLE
   ========================= */

body.dark_shell_light_article .ct-code {
    background: linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%);
    border-color: #d6e0eb;
    color: #13202f;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.5);
}

body.dark_shell_light_article .ct-code-label {
    color: #4b6077;
}

body.dark_shell_light_article .ct-code pre,
body.dark_shell_light_article .ct-code code {
    color: #13202f;
}

body.dark_shell_light_article .ct-copy-btn {
    border-color: #cfd9e8;
    background: #ffffff;
    color: #1f2937;
}

body.dark_shell_light_article .ct-copy-btn:hover {
    background: #eef4fa;
}

/* =========================
   CODE BLOCKS - LIGHT MINIMAL
   ========================= */

body.light_minimal .ct-code {
    background: linear-gradient(180deg, #ffffff 0%, #f6f9fc 100%);
    border-color: #d9e2ec;
    color: #13202f;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.7);
}

body.light_minimal .ct-code-label {
    color: #52657c;
}

body.light_minimal .ct-code pre,
body.light_minimal .ct-code code {
    color: #13202f;
}

body.light_minimal .ct-copy-btn {
    border-color: #d0d9e5;
    background: #ffffff;
    color: #1f2937;
}

body.light_minimal .ct-copy-btn:hover {
    background: #f3f7fb;
}

/* ICONS */

body.dark_shell_light_article .sidebar-card .ct-icon,
body.light_minimal .sidebar-card .ct-icon,
body.dark_shell_light_article .toc-mobile-card .ct-icon,
body.light_minimal .toc-mobile-card .ct-icon {
    color: #48627c;
}

body.dark_shell_light_article .sidebar-card-kicker .ct-icon-category,
body.light_minimal .sidebar-card-kicker .ct-icon-category,
body.dark_shell_light_article .meta-category-pill .ct-icon-category,
body.light_minimal .meta-category-pill .ct-icon-category {
    color: var(--ct-category-accent);
}

body.dark_shell_light_article .ct-icon-code,
body.light_minimal .ct-icon-code {
    color: #355f8f;
}

body.dark_shell_light_article .ct-icon-warning,
body.light_minimal .ct-icon-warning {
    color: #b97b12;
}

body.dark_shell_light_article .ct-icon-note,
body.light_minimal .ct-icon-note {
    color: #1a73b8;
}

body.dark_shell_light_article .ct-icon-success,
body.light_minimal .ct-icon-success {
    color: #178545;
}

/* Meta Category Pill */

body.dark_shell_light_article .meta-category-pill,
body.light_minimal .meta-category-pill {
    background: rgba(var(--ct-category-accent-rgb), 0.08);
    border-color: rgba(var(--ct-category-accent-rgb), 0.18);
    color: var(--ct-category-accent);
}

body.dark_shell_light_article .meta-read-time,
body.dark_shell_light_article .meta-updated,
body.light_minimal .meta-read-time,
body.light_minimal .meta-updated {
    color: #58677a;
}

body.dark_shell_light_article .meta-inline-icon,
body.light_minimal .meta-inline-icon {
    color: #114f9f;
}

body.dark_shell_light_article .article-content a,
body.light_minimal .article-content a {
    color: #1F78C8;
}

body.dark_shell_light_article .article-content a:hover,
body.light_minimal .article-content a:hover {
    color: #0F5FA8;
}

/* Search */

body.dark_shell_light_article .search-trigger-btn,
body.dark_shell_light_article .search-close-btn,
body.dark_shell_light_article .search-overlay-input,
body.dark_shell_light_article .search-result-item,
body.dark_shell_light_article .search-modal,
body.light_minimal .search-trigger-btn,
body.light_minimal .search-close-btn,
body.light_minimal .search-overlay-input,
body.light_minimal .search-result-item,
body.light_minimal .search-modal {
    border-color: #d8e2ee;
}

body.dark_shell_light_article .search-trigger-btn,
body.dark_shell_light_article .search-close-btn,
body.dark_shell_light_article .search-overlay-input,
body.dark_shell_light_article .search-modal,
body.dark_shell_light_article .search-result-item,
body.light_minimal .search-trigger-btn,
body.light_minimal .search-close-btn,
body.light_minimal .search-overlay-input,
body.light_minimal .search-modal,
body.light_minimal .search-result-item {
    color: #16202d;
}

/* Dark Shell + Light Article keeps dark shell header styling */
body.dark_shell_light_article .search-trigger-btn {
    background: rgba(255,255,255,0.03);
    color: #e8f0f7;
    border-color: rgba(255,255,255,0.08);
}

/* Minimal full-light theme uses white button */
body.light_minimal .search-trigger-btn {
    background: #ffffff;
    color: #16202d;
    border-color: #d8e2ee;
}

body.dark_shell_light_article .search-trigger-btn:hover {
    background: rgba(var(--ct-category-accent-rgb), 0.10);
    border-color: rgba(var(--ct-category-accent-rgb), 0.22);
    color: #ffffff;
}

body.light_minimal .search-trigger-btn:hover {
    background: rgba(var(--ct-category-accent-rgb), 0.08);
    border-color: rgba(var(--ct-category-accent-rgb), 0.18);
}

body.dark_shell_light_article .search-modal,
body.light_minimal .search-modal {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
    box-shadow: 0 28px 80px rgba(17, 24, 39, 0.16);
}

body.dark_shell_light_article .search-modal-subtitle,
body.dark_shell_light_article .search-empty-state,
body.dark_shell_light_article .search-result-meta,
body.light_minimal .search-modal-subtitle,
body.light_minimal .search-empty-state,
body.light_minimal .search-result-meta {
    color: #5b677a;
}

body.dark_shell_light_article .search-overlay-input,
body.light_minimal .search-overlay-input {
    background: #ffffff;
}

body.dark_shell_light_article .search-overlay-input:focus,
body.light_minimal .search-overlay-input:focus {
    border-color: rgba(var(--ct-category-accent-rgb), 0.24);
    box-shadow: 0 0 0 3px rgba(var(--ct-category-accent-rgb), 0.08);
}

body.dark_shell_light_article .search-result-item,
body.light_minimal .search-result-item {
    background: #ffffff;
}

body.dark_shell_light_article .search-result-item:hover,
body.light_minimal .search-result-item:hover {
    background: rgba(var(--ct-category-accent-rgb), 0.06);
    border-color: rgba(var(--ct-category-accent-rgb), 0.18);
}

body.dark_shell_light_article .search-result-arrow,
body.light_minimal .search-result-arrow {
    color: var(--ct-category-accent);
}

body.dark_shell_light_article .search-overlay-backdrop,
body.light_minimal .search-overlay-backdrop {
    background: rgba(240, 245, 250, 0.72);
    backdrop-filter: blur(8px);
}

body.dark_shell_light_article .search-trigger-icon {
    color: #bcd0e2;
}

body.dark_shell_light_article .search-trigger-btn:hover .search-trigger-icon {
    color: var(--ct-category-accent);
}

body.light_minimal .search-trigger-icon {
    color: #58677a;
}

body.light_minimal .search-trigger-btn:hover .search-trigger-icon {
    color: var(--ct-category-accent);
}

body.dark_shell_light_article .search-result-item.is-selected,
body.light_minimal .search-result-item.is-selected {
    background: rgba(var(--ct-category-accent-rgb), 0.08);
    border-color: rgba(var(--ct-category-accent-rgb), 0.20);
}

body.dark_shell_light_article .search-result-category-pill,
body.light_minimal .search-result-category-pill {
    background: rgba(var(--search-category-accent-rgb), 0.08);
    border-color: rgba(var(--search-category-accent-rgb), 0.18);
    color: var(--search-category-accent);
}

body.dark_shell_light_article .search-highlight,
body.light_minimal .search-highlight {
    background: rgba(var(--ct-category-accent-rgb), 0.12);
    color: #16202d;
}

body.dark_shell_light_article .search-result-excerpt,
body.light_minimal .search-result-excerpt {
    color: #5b677a;
}

body.dark_shell_light_article .recent-searches-title,
body.dark_shell_light_article .recent-searches-clear-btn,
body.dark_shell_light_article .recent-search-item,
body.light_minimal .recent-searches-title,
body.light_minimal .recent-searches-clear-btn,
body.light_minimal .recent-search-item {
    color: #16202d;
    border-color: #d8e2ee;
}

body.dark_shell_light_article .recent-searches-clear-btn,
body.light_minimal .recent-searches-clear-btn {
    background: #ffffff;
}

body.dark_shell_light_article .recent-searches-clear-btn:hover,
body.light_minimal .recent-searches-clear-btn:hover {
    background: rgba(var(--ct-category-accent-rgb), 0.08);
    border-color: rgba(var(--ct-category-accent-rgb), 0.18);
}

body.dark_shell_light_article .recent-search-item,
body.light_minimal .recent-search-item {
    background: #ffffff;
}

body.dark_shell_light_article .recent-search-item:hover,
body.dark_shell_light_article .recent-search-item.is-selected,
body.light_minimal .recent-search-item:hover,
body.light_minimal .recent-search-item.is-selected {
    background: rgba(var(--ct-category-accent-rgb), 0.06);
    border-color: rgba(var(--ct-category-accent-rgb), 0.18);
}

body.dark_shell_light_article .recent-search-item-arrow,
body.light_minimal .recent-search-item-arrow {
    color: var(--ct-category-accent);
}

/* Search Result Difficulty */

body.dark_shell_light_article .search-result-difficulty-beginner,
body.light_minimal .search-result-difficulty-beginner {
    color: #00A86B;
}

body.dark_shell_light_article .search-result-difficulty-intermediate,
body.light_minimal .search-result-difficulty-intermediate {
    color: #2563EB;
}

body.dark_shell_light_article .search-result-difficulty-advanced,
body.light_minimal .search-result-difficulty-advanced {
    color: #D97706;
}

/* Reading Progress Bar */
body.dark_shell_light_article .reading-progress-bar,
body.light_minimal .reading-progress-bar {
    background: linear-gradient(
        90deg,
        var(--ct-category-accent),
        rgba(var(--ct-category-accent-rgb), 0.55)
    );
}

/* Code block accents */

body.dark_shell_light_article .ct-code,
body.light_minimal .ct-code {
    border-top-color: var(--code-accent) !important;
}

body.dark_shell_light_article .ct-code-label,
body.light_minimal .ct-code-label {
    color: var(--code-accent) !important;
    background: color-mix(in srgb, var(--code-accent) 8%, transparent) !important;
    border-color: color-mix(in srgb, var(--code-accent) 18%, transparent) !important;
}

body.dark_shell_light_article .ct-code .ct-icon-code,
body.light_minimal .ct-code .ct-icon-code {
    color: var(--code-accent) !important;
}

/* Toast */
body.dark_shell_light_article .ct-toast,
body.light_minimal .ct-toast {
    background: #ffffff;
    border-color: rgba(var(--ct-category-accent-rgb), 0.22);
    color: #16202d;
    box-shadow: 0 18px 50px rgba(17, 24, 39, 0.16);
}