/**
 * Creator Systems – shared theme and layout
 */
:root {
    --cw-bg: #0f0f1a;
    --cw-surface: #1a1a2e;
    --cw-border: #2d3748;
    --cw-text: #e2e8f0;
    --cw-muted: #a0aec0;
    --cw-accent: #2563eb;
    --cw-accent-hover: #1d4ed8;
    --cw-link: #60a5fa;
    --cw-link-hover: #93c5fd;
    --cw-card-bg: #16213e;
    --cw-radius: 8px;
    --cw-font: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    padding: 0 5%;
    font-family: var(--cw-font);
    font-size: 16px;
    line-height: 1.5;
    background: var(--cw-bg);
    color: var(--cw-text);
    min-height: 100vh;
}

/* Nav */
.cw-nav {
    background: var(--cw-surface);
    border-bottom: 1px solid var(--cw-border);
    padding: 0.75rem 1.5rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    overflow: visible;
}
.cw-nav a {
    color: var(--cw-muted);
    text-decoration: none;
    font-size: 0.95rem;
}
.cw-nav a:hover { color: #fff; }
.cw-nav .cw-sep { color: var(--cw-border); margin: 0 0.25rem; }
.cw-nav-ad-slot {
    margin-left: auto;
    width: 468px;
    height: 60px;
    flex-shrink: 0;
}
.cw-header-ad-placeholder {
    width: 468px;
    height: 60px;
    background: var(--cw-card-bg);
    border: 1px dashed var(--cw-border);
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cw-muted);
    font-size: 0.8rem;
}
.cw-nav-theme { font-size: 0.85rem; }
.cw-nav-style { font-size: 0.85rem; }
.cw-nav-layout { font-size: 0.85rem; }
.cw-theme-label { color: var(--cw-muted); margin-right: 0.25rem; }
.cw-theme-link { color: var(--cw-muted); text-decoration: none; }
.cw-theme-link:hover { color: #fff; }
.cw-theme-link.cw-theme-active { color: var(--cw-accent); font-weight: 500; }
.cw-theme-link.cw-theme-active:hover { color: var(--cw-accent-hover); }

/* Nav accordion: Creator Systems + Theme/Style/Layout (collapsed by default) */
.cw-nav-accordion {
    display: inline-block;
    position: relative;
}
.cw-nav-accordion[open] .cw-nav-accordion-icon { transform: rotate(180deg); }
.cw-nav-accordion-summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 600;
    color: var(--cw-text);
    font-size: 0.95rem;
    padding: 0.2rem 0;
    user-select: none;
}
.cw-nav-accordion-summary::-webkit-details-marker { display: none; }
.cw-nav-accordion-summary:hover { color: #fff; }
.cw-nav-accordion-icon {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-left: 0.15rem;
    transition: transform 0.2s;
}
.cw-nav-accordion-panel {
    position: absolute;
    left: 0;
    top: 100%;
    margin-top: 0.35rem;
    padding: 0.85rem 1rem;
    background: var(--cw-surface);
    border: 1px solid var(--cw-border);
    border-radius: var(--cw-radius);
    box-shadow: 0 6px 20px rgba(0,0,0,0.25);
    min-width: 20rem;
    z-index: 100;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}
.cw-nav-accordion-panel .cw-nav-theme,
.cw-nav-accordion-panel .cw-nav-style,
.cw-nav-accordion-panel .cw-nav-layout {
    margin-left: 0;
}
.cw-nav-accordion-home {
    color: var(--cw-accent);
    font-weight: 500;
    margin-bottom: 0.25rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--cw-border);
}
.cw-nav-after-accordion { margin-right: 0.15rem; }

/* Header below nav: breadcrumb + heavens/realms/portals nav */
.cw-header-below-nav {
    background: var(--cw-surface);
    border-bottom: 1px solid var(--cw-border);
    padding: 0.5rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.cw-breadcrumb {
    font-size: 0.85rem;
    color: var(--cw-muted);
}
.cw-breadcrumb a {
    color: var(--cw-link);
    text-decoration: none;
}
.cw-breadcrumb a:hover { color: var(--cw-link-hover); }
.cw-breadcrumb-sep {
    margin: 0 0.35rem;
    color: var(--cw-border);
}
.cw-heavens-realms-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.5rem;
    font-size: 0.85rem;
}
.cw-heavens-realms-nav .cw-hrp-portal {
    color: var(--cw-accent);
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    font-size: 0.8rem;
    border: 1px solid var(--cw-accent);
    background: color-mix(in srgb, var(--cw-accent) 20%, transparent);
}
.cw-heavens-realms-nav .cw-hrp-portal:hover,
.cw-heavens-realms-nav .cw-hrp-all:hover { color: var(--cw-accent-hover); }
.cw-heavens-realms-nav .cw-hrp-all {
    color: var(--cw-muted);
    text-decoration: none;
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    font-size: 0.8rem;
    border: 1px solid var(--cw-border);
    background: rgba(255,255,255,0.04);
}
.cw-heavens-realms-nav .cw-hrp-sep {
    color: var(--cw-border);
    margin: 0 0.15rem;
}
.cw-heavens-realms-nav .cw-hrp-link {
    color: var(--cw-muted);
    text-decoration: none;
    padding: 0.15rem 0.35rem;
    border-radius: 4px;
}
.cw-heavens-realms-nav .cw-hrp-link.cw-hrp-badge {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 500;
    border: 1px solid var(--cw-border);
    background: rgba(255,255,255,0.04);
}
.cw-heavens-realms-nav .cw-hrp-link.cw-hrp-badge:hover {
    color: #fff;
    background: rgba(255,255,255,0.12);
    border-color: var(--cw-accent);
}
.cw-heavens-realms-nav .cw-hrp-link:hover {
    color: #fff;
    background: rgba(255,255,255,0.08);
}
.cw-heavens-realms-nav .cw-hrp-link.cw-hrp-heaven { color: var(--cw-link); }
.cw-heavens-realms-nav .cw-hrp-link.cw-hrp-heaven.cw-hrp-badge { border-color: color-mix(in srgb, var(--cw-link) 60%, transparent); }
.cw-heavens-realms-nav .cw-hrp-link.cw-hrp-realm { color: var(--cw-muted); }

/* Realms menu on smaller screens: compact, horizontally scrollable */
@media (max-width: 768px) {
    .cw-header-below-nav { padding: 0.5rem 1rem; }
    .cw-heavens-realms-nav {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        flex-wrap: nowrap;
        gap: 0.2rem 0.35rem;
        font-size: 0.8rem;
        padding-bottom: 0.25rem;
    }
    .cw-heavens-realms-nav .cw-hrp-portal,
    .cw-heavens-realms-nav .cw-hrp-all,
    .cw-heavens-realms-nav .cw-hrp-link.cw-hrp-badge {
        padding: 0.15rem 0.4rem;
        font-size: 0.75rem;
        flex-shrink: 0;
    }
    .cw-heavens-realms-nav .cw-hrp-sep { flex-shrink: 0; }
}

/* Nav dropdown: Heavens Portal sub-menu */
.cw-nav-dropdown { display: inline-block; position: relative; }
.cw-nav-dropdown[open] .cw-nav-dropdown-icon { transform: rotate(180deg); }
.cw-nav-dropdown-summary {
    list-style: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
}
.cw-nav-dropdown-summary::-webkit-details-marker { display: none; }
.cw-nav-dropdown-label { color: var(--cw-muted); text-decoration: none; font-size: 0.95rem; }
.cw-nav-dropdown-label:hover { color: #fff; }
.cw-nav-dropdown-icon {
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-left: 0.1rem;
    transition: transform 0.2s;
    color: var(--cw-muted);
}
.cw-nav-dropdown-panel {
    position: absolute;
    left: 0;
    top: 100%;
    margin-top: 0.25rem;
    padding: 0.5rem 0;
    background: var(--cw-surface);
    border: 1px solid var(--cw-border);
    border-radius: var(--cw-radius);
    box-shadow: 0 6px 20px rgba(0,0,0,0.25);
    min-width: 11rem;
    z-index: 100;
    display: flex;
    flex-direction: column;
}
.cw-nav-dropdown-panel a {
    padding: 0.4rem 1rem;
    color: var(--cw-muted);
    text-decoration: none;
    font-size: 0.9rem;
}
.cw-nav-dropdown-panel a:hover { color: #fff; background: var(--cw-border); }

/* Quick links dropdown: Resources, Pages, Admin (grid icon) */
.cw-nav-quicklinks-summary { padding: 0.2rem; }
.cw-nav-quicklinks-icon { display: inline-flex; align-items: center; justify-content: center; color: var(--cw-muted); }
.cw-nav-quicklinks-icon:hover { color: #fff; }
.cw-nav-quicklinks-icon svg { width: 1.25rem; height: 1.25rem; }
.cw-nav-quicklinks-dropdown[open] .cw-nav-quicklinks-icon { color: #fff; }
.cw-nav-quicklinks-dropdown .cw-nav-dropdown-panel { min-width: 14rem; padding: 0.5rem 0; z-index: 200; }
.cw-nav-quicklinks-panel a { display: block; padding: 0.35rem 1rem; color: var(--cw-muted); text-decoration: none; font-size: 0.9rem; white-space: nowrap; }
.cw-nav-quicklinks-panel a:hover { color: #fff; background: var(--cw-border); }
.cw-quicklinks-label { display: block; padding: 0.25rem 1rem 0.15rem; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: var(--cw-muted); border-bottom: 1px solid var(--cw-border); margin-bottom: 0.25rem; }
.cw-nav-quicklinks-panel .cw-quicklinks-label:first-child { margin-top: 0; }

/* Display dropdown: Theme, Style, Layout (always visible in nav) */
.cw-nav-display-dropdown .cw-nav-dropdown-panel { min-width: 20rem; padding: 0.75rem 1rem; z-index: 200; }
.cw-nav-display-panel .cw-nav-theme,
.cw-nav-display-panel .cw-nav-style,
.cw-nav-display-panel .cw-nav-layout { display: block; margin-bottom: 0.5rem; font-size: 0.85rem; }
.cw-nav-display-panel .cw-nav-theme:last-child,
.cw-nav-display-panel .cw-nav-style:last-child,
.cw-nav-display-panel .cw-nav-layout:last-child { margin-bottom: 0; }
.cw-nav-display-panel .cw-theme-label { display: inline-block; min-width: 3.5rem; color: var(--cw-muted); }
.cw-nav-display-current { font-size: 0.8rem; color: var(--cw-muted); margin-left: 0.2rem; }
.cw-nav-display-current::before { content: '\00a0'; }

/* Gear icon (display / settings) */
.cw-nav-gear-summary { padding: 0.2rem; }
.cw-nav-gear-icon { display: inline-flex; align-items: center; justify-content: center; color: var(--cw-muted); }
.cw-nav-gear-icon:hover { color: #fff; }
.cw-nav-gear-icon svg { width: 1.25rem; height: 1.25rem; }
.cw-nav-display-dropdown[open] .cw-nav-gear-icon { color: #fff; }

/* Admin Area link in gear dropdown */
.cw-nav-display-admin { margin-top: 0.5rem; padding-top: 0.5rem; border-top: 1px solid var(--cw-border); }
.cw-nav-display-admin a { display: block; padding: 0.4rem 1rem; color: var(--cw-muted); text-decoration: none; font-size: 0.9rem; }
.cw-nav-display-admin a:hover { color: #fff; background: var(--cw-border); }

/* Mobile nav: hamburger menu on small screens; inline on desktop */
.cw-nav-mobile-panel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
}
.cw-nav-mobile-summary {
    list-style: none;
    cursor: pointer;
    display: none;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.5rem;
    font-weight: 600;
    color: var(--cw-text);
    user-select: none;
}
.cw-nav-mobile-summary::-webkit-details-marker { display: none; }
.cw-nav-hamburger {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.cw-nav-hamburger span {
    display: block;
    width: 20px;
    height: 2px;
    background: currentColor;
}
@media (max-width: 768px) {
    .cw-nav {
        flex-wrap: nowrap;
        padding: 0.5rem 1rem;
        position: relative;
    }
    .cw-nav-mobile-toggle { flex: 1; margin-left: auto; }
    .cw-nav-mobile-summary {
        display: flex;
    }
    .cw-nav-mobile-panel {
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        margin-top: 0;
        padding: 1rem;
        background: var(--cw-surface);
        border-bottom: 1px solid var(--cw-border);
        box-shadow: 0 6px 20px rgba(0,0,0,0.3);
        z-index: 150;
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
        max-height: 70vh;
        overflow-y: auto;
    }
    .cw-nav-mobile-toggle:not([open]) .cw-nav-mobile-panel { display: none; }
    .cw-nav-mobile-toggle[open] .cw-nav-mobile-panel {
        display: flex;
    }
    .cw-nav-mobile-panel .cw-sep { display: none; }
    .cw-nav-mobile-panel .cw-nav-dropdown,
    .cw-nav-mobile-panel .cw-nav-dropdown-panel,
    .cw-nav-mobile-panel .cw-nav-dropdown-summary { display: block; position: static; }
    .cw-nav-mobile-panel .cw-nav-dropdown-panel {
        box-shadow: none;
        border: none;
        padding: 0.25rem 0 0 1rem;
        margin: 0;
        min-width: 0;
    }
    .cw-nav-mobile-panel .cw-nav-dropdown-summary { padding: 0.5rem 0; }
    .cw-nav-mobile-panel .cw-nav-quicklinks-panel,
    .cw-nav-mobile-panel .cw-nav-display-panel {
        position: static;
        box-shadow: none;
        border: none;
        padding: 0.25rem 0 0 1rem;
    }
    .cw-nav-mobile-panel a { display: block; padding: 0.5rem 0; }
    .cw-nav-ad-slot { display: none; }
}
@media (min-width: 769px) {
    .cw-nav-mobile-toggle { display: contents; }
    .cw-nav-mobile-summary { display: none !important; }
}

/* Main content – wide layout (~2x previous 56rem) */
.cw-main { padding: 1.5rem 1.5rem 2rem; max-width: 112rem; margin: 0 auto; }
.cw-main a:not(.cw-btn) { color: var(--cw-link); text-decoration: none; }
.cw-main a:not(.cw-btn):hover { color: var(--cw-link-hover); text-decoration: underline; }
.cw-main h1 { font-size: 1.5rem; margin: 0 0 1rem; color: #fff; }
.cw-main h2 { font-size: 1.15rem; margin: 1.25rem 0 0.5rem; color: var(--cw-muted); }

/* Cards (heavens portal, etc.) */
.cw-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; margin-top: 1rem; }
.cw-card {
    background: var(--cw-card-bg);
    border: 1px solid var(--cw-border);
    border-radius: var(--cw-radius);
    padding: 1.25rem;
    transition: border-color 0.15s;
}
.cw-card:hover { border-color: var(--cw-accent); }
.cw-card-title { font-size: 1.1rem; font-weight: 600; margin: 0 0 0.5rem; color: #fff; }
.cw-card-meta { font-size: 0.8rem; color: var(--cw-muted); margin-bottom: 0.5rem; }
.cw-card p { margin: 0.35rem 0; font-size: 0.9rem; }
.cw-card .cw-badge {
    display: inline-block;
    font-size: 0.7rem;
    padding: 0.2rem 0.5rem;
    border-radius: 4px;
    background: var(--cw-border);
    color: var(--cw-muted);
    margin-top: 0.5rem;
}
.cw-badge-first-hand { background: var(--cw-accent); color: #fff !important; }
.cw-badge-reporting { background: var(--cw-surface); color: var(--cw-muted); border: 1px solid var(--cw-border); }
.cw-bound-badge { background: #6b2d2d; color: #f0e0e0 !important; }
.cw-bound-notice { margin: 0.25rem 0 0; }

/* Buttons */
.cw-btn {
    display: inline-block;
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
    font-weight: 500;
    text-decoration: none;
    border-radius: var(--cw-radius);
    border: 1px solid var(--cw-border);
    background: var(--cw-surface);
    color: var(--cw-text);
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.cw-btn:hover { background: var(--cw-border); border-color: var(--cw-muted); }
.cw-btn-primary { background: var(--cw-accent); border-color: var(--cw-accent); color: #fff; }
.cw-btn-primary:hover { background: var(--cw-accent-hover); border-color: var(--cw-accent-hover); }
.cw-btn + .cw-btn { margin-left: 0.5rem; }
.cw-btn-sm { padding: 0.35rem 0.75rem; font-size: 0.85rem; }

/* Realm landing buttons (Non-Heavenly Realms page) */
.cw-realm-buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1rem 0; }
.cw-realm-buttons .cw-realm-btn { min-width: 12rem; }
.cw-page-links .cw-btn + .cw-sep { margin-left: 0.5rem; margin-right: 0.25rem; }
.cw-page-links .cw-sep { color: var(--cw-muted); font-weight: normal; }

/* Footer */
.cw-footer {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--cw-border);
    font-size: 0.85rem;
    color: var(--cw-muted);
}
.cw-footer a { color: var(--cw-muted); text-decoration: none; }
.cw-footer .cw-version { color: var(--cw-muted); font-size: 0.85em; }
.cw-footer a:hover { color: var(--cw-text); }
.cw-footer .cw-footer-sep { margin: 0 0.35rem; color: var(--cw-border); }

/* Social icons (footer) */
.cw-social-icons {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    margin-left: 0.75rem;
    vertical-align: middle;
}
.cw-social-icon {
    color: var(--cw-muted);
    transition: color 0.2s;
}
.cw-social-icon:hover {
    color: var(--cw-link);
}
.cw-social-icon svg {
    display: block;
}

/* Search / filters */
.cw-search { background: var(--cw-card-bg); border: 1px solid var(--cw-border); border-radius: var(--cw-radius); padding: 1rem; margin: 1rem 0; }
.cw-search label { display: block; font-size: 0.85rem; color: var(--cw-muted); margin-bottom: 0.25rem; }
.cw-search input[type="text"], .cw-search select { background: var(--cw-surface); border: 1px solid var(--cw-border); color: var(--cw-text); padding: 0.4rem 0.6rem; border-radius: 4px; font-size: 0.95rem; margin-right: 0.5rem; margin-bottom: 0.5rem; }
.cw-search input[type="text"] { min-width: 12rem; }
.cw-search select { min-width: 10rem; }
.cw-search .cw-search-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.5rem; }
.cw-search-stats { font-size: 0.9rem; margin-left: 0.25rem; align-self: center; }
.cw-search-stats .cw-search-stats-count { font-weight: 600; color: var(--cw-text); }
.cw-search-stats .cw-search-stats-filter { color: var(--cw-muted, #666); font-weight: normal; }

/* Realm list (Earthly Realm) */
.cw-realm-list { margin: 1rem 0; }
.cw-realm-row { display: block; background: var(--cw-card-bg); border: 1px solid var(--cw-border); border-radius: var(--cw-radius); padding: 1rem; margin-bottom: 0.75rem; text-decoration: none; color: inherit; transition: border-color 0.15s; }
.cw-realm-row:hover { border-color: var(--cw-accent); }
.cw-realm-row h3 { font-size: 1.05rem; margin: 0 0 0.35rem; color: #fff; }
.cw-realm-row .cw-realm-meta { font-size: 0.8rem; color: var(--cw-muted); margin-bottom: 0.35rem; }
.cw-realm-row p { margin: 0.25rem 0; font-size: 0.9rem; }
.cw-section-title { font-size: 1.1rem; margin: 1.5rem 0 0.75rem; color: var(--cw-text); border-bottom: 1px solid var(--cw-border); padding-bottom: 0.35rem; }
.cw-anomalies-list { margin-top: 1rem; }
.cw-anomaly-card {
    background: var(--cw-surface);
    border: 1px solid var(--cw-border);
    border-radius: var(--cw-radius);
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}
.cw-anomaly-card:last-child { margin-bottom: 0; }
.cw-anomaly-title { font-size: 1.05rem; margin: 0 0 0.5rem; color: #fff; }
.cw-alert-rules-block {
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--cw-border);
}
.cw-alert-rules-block:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.cw-alert-rules-block h3 { font-size: 1.05rem; margin: 0 0 0.5rem; }
.cw-alert-rules-block ul { margin: 0.5rem 0 0 1.25rem; padding: 0; }
.cw-alert-rules-block li { margin-bottom: 0.35rem; }
.cw-ref-list { margin: 0.5rem 0; padding-left: 1.5rem; }
.cw-ref-list li { margin-bottom: 0.35rem; }

/* Body-width panels: match body content settings (max-width, font-size) for Cross-references, Inhabitants, etc. */
.cw-body-width {
    max-width: 56rem;
    margin-top: 1rem;
    font-size: inherit;
    line-height: inherit;
}
.cw-body-width .cw-section-title { font-size: 1.1rem; }
.cw-body-width .cw-muted { font-size: 0.9rem; }
.cw-body-width .cw-portal-angel-list,
.cw-body-width .cw-ref-list { font-size: 0.95rem; }

/* Sitemap page */
.cw-sitemap-sections { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1.5rem 2rem; margin: 1.5rem 0; }
.cw-sitemap-section { margin: 0; }
.cw-sitemap-heading { font-size: 1rem; margin: 0 0 0.5rem; color: var(--cw-muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.cw-sitemap-list { list-style: none; margin: 0; padding: 0; }
.cw-sitemap-list li { margin: 0.25rem 0; }
.cw-sitemap-list a { color: var(--cw-text); text-decoration: none; }
.cw-sitemap-list a:hover { text-decoration: underline; }
.cw-races-list, .cw-genders-list, .cw-knowledge-list { list-style: none; margin: 0.5rem 0 0; padding: 0; }
.cw-races-list li, .cw-genders-list li, .cw-knowledge-list li { margin-bottom: 0.5rem; }

/* Human Knowledge tables */
.cw-table { width: 100%; border-collapse: collapse; margin: 0.75rem 0; font-size: 0.95rem; }
.cw-table th, .cw-table td { padding: 0.5rem 0.75rem; text-align: left; border-bottom: 1px solid var(--cw-border); }
.cw-table th { font-weight: 600; color: var(--cw-text); }
.cw-table tbody tr:hover { background: var(--cw-bg-hover, rgba(255,255,255,0.04)); }
.cw-knowledge-domains-table td:first-child { font-weight: 500; }

/* Simple list layout (older theme style – no cards) */
.cw-list-plain { list-style: none; padding: 0; margin: 1rem 0; }
.cw-heaven-group { margin-top: 1.25rem; margin-bottom: 0.5rem; color: var(--cw-muted); font-size: 1rem; }
.cw-heaven-group:first-child { margin-top: 0; }
.cw-angel-row { padding: 0.5rem 0; border-bottom: 1px solid var(--cw-border); font-size: 0.95rem; line-height: 1.4; }
.cw-angel-row:last-child { border-bottom: none; }
/* All Angels: archangel cards per heaven */
.cw-angel-cards { margin-bottom: 1.5rem; }
.cw-angel-card .cw-angel-card-subtitle { font-size: 0.9rem; color: var(--cw-accent); margin: 0 0 0.35rem; }
.cw-angel-card .cw-angel-card-desc { font-size: 0.9rem; line-height: 1.5; margin: 0.5rem 0 0; }
.cw-angel-card .cw-angel-card-sources { font-size: 0.8rem; margin: 0.35rem 0 0; }
.cw-angel-card-img { width: 100%; height: auto; border-radius: 4px; margin-bottom: 0.5rem; display: block; }
.cw-heavens-list { list-style: none; padding: 0; margin: 1rem 0; }
.cw-heaven-row { padding: 0.75rem 0; border-bottom: 1px solid var(--cw-border); font-size: 0.95rem; line-height: 1.45; }
.cw-heaven-row:last-child { border-bottom: none; }
.cw-heaven-row br + span { display: block; margin-top: 0.2rem; }

/* Heavens Portal: card per heaven with permission, realm details, angels */
.cw-heavens-portal-list { margin-top: 1rem; }
.cw-heaven-card {
    background: var(--cw-card-bg);
    border: 1px solid var(--cw-border);
    border-radius: var(--cw-radius);
    margin-bottom: 1.25rem;
    overflow: hidden;
}
.cw-heaven-card-header {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--cw-border);
}
.cw-heaven-level { font-size: 0.8rem; color: var(--cw-muted); display: block; margin-bottom: 0.25rem; }
.cw-heaven-card-title { font-size: 1.2rem; margin: 0 0 0.35rem; color: #fff; }
.cw-heaven-permission { margin: 0.5rem 0 0; font-size: 0.95rem; color: var(--cw-accent); }
.cw-heaven-card-body { padding: 1rem 1.25rem 1.25rem; }
.cw-heaven-details { margin-bottom: 1.25rem; }
.cw-heaven-details-title, .cw-heaven-angels-title { font-size: 0.85rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cw-muted); margin: 0 0 0.5rem; }
.cw-heaven-details p, .cw-heaven-angels p { margin: 0.35rem 0; font-size: 0.95rem; line-height: 1.5; }
.cw-heaven-angel-list { list-style: none; padding: 0; margin: 0.5rem 0 0; }
.cw-heaven-angel-item { padding: 0.5rem 0; border-bottom: 1px solid var(--cw-border); font-size: 0.9rem; line-height: 1.45; }
.cw-heaven-angel-item:last-child { border-bottom: none; }
.cw-heaven-angel-item .cw-badge { margin-left: 0.25rem; }

/* Portal style (10 Heavens Portal System – numbered titles, pill tags, labeled grid) */
.cw-portal-list { margin-top: 1rem; }
.cw-portal-card {
    background: var(--cw-card-bg);
    border: 1px solid var(--cw-border);
    border-radius: var(--cw-radius);
    margin-bottom: 1.25rem;
    overflow: hidden;
}
.cw-portal-card-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--cw-border);
}
.cw-portal-card-title {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0;
    color: #fff;
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    flex: 1 1 auto;
    min-width: 0;
}
.cw-portal-number {
    color: var(--cw-accent);
    font-weight: 700;
}
.cw-portal-pill {
    display: inline-block;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 500;
    background: var(--cw-accent);
    color: #fff;
    white-space: nowrap;
}
.cw-portal-card-body { padding: 1rem 1.25rem 1.25rem; }
.cw-portal-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem 1.5rem;
    margin-bottom: 1rem;
}
.cw-portal-field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.cw-portal-label {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cw-muted);
}
.cw-portal-value {
    font-size: 0.95rem;
    line-height: 1.5;
    color: var(--cw-text);
}
.cw-portal-notes {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--cw-border);
}
.cw-portal-notes .cw-portal-label { margin-bottom: 0.35rem; }
.cw-portal-notes .cw-portal-value { margin: 0; }
.cw-portal-angels { margin-top: 1rem; }
.cw-portal-angels .cw-portal-label { display: block; margin-bottom: 0.5rem; }
.cw-portal-angel-list { list-style: none; padding: 0; margin: 0; font-size: 0.9rem; line-height: 1.5; }
.cw-portal-angel-list li { padding: 0.25rem 0; }
/* All Angels in portal/layman: same card style, title without number */
.cw-angel-portal-list { margin-top: 0.5rem; }
.cw-angel-portal-card .cw-portal-card-title { font-size: 1.1rem; }

/* Light theme: portal style */
.cw-theme-light .cw-portal-card-title { color: #0f172a; }
.cw-theme-light .cw-portal-number { color: var(--cw-accent); }
.cw-theme-light .cw-portal-label { color: #64748b; }
.cw-theme-light .cw-portal-value { color: #1e293b; }
.cw-theme-light .cw-portal-card { background: var(--cw-card-bg); border-color: var(--cw-border); }

/* Home page: main + sidebar layout */
.cw-home-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 2rem;
    align-items: start;
    margin-top: 1rem;
}
@media (max-width: 768px) {
    .cw-home-layout { grid-template-columns: 1fr; }
}
.cw-home-content { min-width: 0; }
.cw-home-welcome { margin: 0 0 1.25rem; color: var(--cw-text); line-height: 1.6; }

/* Home page only: record counts bar chart (full width of main panel, same as glossary/secondary pages) */
.cw-home-record-chart {
    margin: 0 0 2rem;
    padding: 1.25rem;
    background: var(--cw-card-bg);
    border: 1px solid var(--cw-border);
    border-radius: var(--cw-radius);
}
.cw-home-chart-title {
    font-size: 1.15rem;
    font-weight: 600;
    margin: 0 0 1rem;
    color: #fff;
}
.cw-home-chart-bars {
    margin-bottom: 1.5rem;
}
.cw-home-chart-bars:last-child { margin-bottom: 0; }
.cw-home-chart-heading {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--cw-muted);
    margin: 0 0 0.6rem;
}
.cw-home-chart-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 12rem;
    gap: 0.75rem 1rem;
    align-items: center;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}
.cw-home-chart-row:last-child { margin-bottom: 0; }
.cw-home-chart-label {
    color: var(--cw-link);
    text-decoration: none;
}
.cw-home-chart-label:hover { text-decoration: underline; }
.cw-home-chart-value {
    color: var(--cw-muted);
    font-variant-numeric: tabular-nums;
}
.cw-home-chart-bar-wrap {
    height: 1.25rem;
    background: var(--cw-surface);
    border-radius: 4px;
    overflow: hidden;
}
.cw-home-chart-bar {
    height: 100%;
    min-width: 2px;
    background: var(--cw-accent);
    border-radius: 4px;
    transition: width 0.3s ease;
}
.cw-home-chart-bar-ref {
    background: var(--cw-border);
}
@media (max-width: 640px) {
    .cw-home-chart-row {
        grid-template-columns: 1fr auto;
        gap: 0.25rem 0.5rem;
    }
    .cw-home-chart-bar-wrap { grid-column: 1 / -1; }
}

.cw-home-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.cw-home-buttons .cw-btn { margin-left: 0; }

/* Home sidebar (stats) */
.cw-home-sidebar {
    position: sticky;
    top: 1.5rem;
}
.cw-sidebar-inner {
    background: var(--cw-card-bg);
    border: 1px solid var(--cw-border);
    border-radius: var(--cw-radius);
    padding: 1.25rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.cw-sidebar-title {
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0 0 0.25rem;
    color: #fff;
    letter-spacing: 0.02em;
}
.cw-sidebar-desc {
    font-size: 0.85rem;
    color: var(--cw-muted);
    margin: 0 0 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--cw-border);
}
.cw-sidebar-section { margin-bottom: 1.25rem; }
.cw-sidebar-section:last-child { margin-bottom: 0; }
.cw-sidebar-heading {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cw-muted);
    margin: 0 0 0.6rem;
}
.cw-sidebar-stats {
    list-style: none;
    padding: 0;
    margin: 0;
}
.cw-stat-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--cw-border);
    font-size: 0.9rem;
}
.cw-stat-row:last-child { border-bottom: none; }
.cw-stat-row .cw-share-buttons { margin: 0 0 0 auto; flex-shrink: 0; }

/* Share buttons (detail panels) */
.cw-share-buttons { display: flex; gap: 0.5rem; align-items: center; margin: 0.75rem 0; }
.cw-share-buttons.cw-share-compact { margin: 0 0 0 0.5rem; }
.cw-share-compact .cw-share-btn { width: 28px; height: 28px; }
.cw-share-compact .cw-share-btn svg { width: 14px; height: 14px; }
.cw-share-buttons .cw-share-btn { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--cw-surface); color: var(--cw-muted); transition: color 0.2s, background 0.2s; }
.cw-share-buttons .cw-share-btn:hover { color: #fff; background: var(--cw-border); }
.cw-share-buttons .cw-share-fb:hover { color: #1877f2; }
.cw-share-buttons .cw-share-x:hover { color: #fff; }
.cw-share-buttons .cw-share-linkedin:hover { color: #0a66c2; }
.cw-share-buttons .cw-share-email:hover { color: var(--cw-accent); }

.cw-report-id { margin: -0.25rem 0 0.5rem; }
.cw-description-toggle { margin-top: 0.5rem; }
.cw-stat-row.cw-stat-muted .cw-stat-label,
.cw-stat-row.cw-stat-muted .cw-stat-value { color: var(--cw-muted); font-size: 0.9em; }
.cw-data-gap { background: var(--cw-surface); border-left: 4px solid var(--cw-accent); padding: 0.75rem 1rem; border-radius: 4px; margin: 0.75rem 0; font-size: 0.9rem; }
.cw-data-gap code { background: var(--cw-border); padding: 0.15rem 0.35rem; border-radius: 3px; font-size: 0.85em; }

/* Main layout: content left, Data Overview + stats right; tight gap so right panels sit close to body */
.cw-main-wrap {
    display: grid;
    grid-template-columns: 1fr minmax(240px, 280px);
    gap: 1rem 1.25rem;
    align-items: start;
    max-width: 100%;
}
.cw-main-content { min-width: 0; }
.cw-main-aside {
    position: sticky;
    top: 1rem;
    width: 100%;
    max-width: 280px;
    min-width: 0;
}
.cw-main-aside .cw-data-overview-panel,
.cw-main-aside .cw-stats-panel {
    width: 100%;
    max-width: 100%;
}
#cw-page-stats-slot { margin-top: 1rem; }
#cw-page-stats-slot > .cw-stats-panel { margin-top: 0; }
/* Mobile: content first, Data Overview + Sidebar below (body more important on small screens) */
@media (max-width: 767px) {
    .cw-main-wrap {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    .cw-main-aside {
        order: 1; /* After content – content takes priority on mobile */
        position: static;
        margin-top: 0.5rem;
    }
}

/* Data Overview Panel (global, collapsible) */
.cw-data-overview-panel {
    margin: 0 0 1rem;
    background: var(--cw-card-bg);
    border: 1px solid var(--cw-border);
    border-radius: var(--cw-radius);
    overflow: hidden;
}
.cw-data-overview-summary {
    list-style: none;
    padding: 0.6rem 1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.95rem;
    user-select: none;
}
.cw-data-overview-summary::-webkit-details-marker { display: none; }
.cw-data-overview-summary:hover { background: var(--cw-surface); }
.cw-data-overview-title { font-weight: 600; color: var(--cw-text); }
.cw-data-overview-toggle {
    width: 0; height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid var(--cw-muted);
    transition: transform 0.2s;
}
.cw-data-overview-panel[open] .cw-data-overview-toggle { transform: rotate(180deg); }
.cw-data-overview-inner { padding: 0 1rem 1rem; border-top: 1px solid var(--cw-border); }
.cw-data-overview-desc { font-size: 0.85rem; color: var(--cw-muted); margin: 0 0 1rem; }
.cw-data-overview-summary-table { width: 100%; font-size: 0.85rem; margin: 0 0 1rem; border-collapse: collapse; }
.cw-data-overview-summary-table th { text-align: left; font-weight: 500; padding: 0.2rem 0.5rem 0.2rem 0; color: var(--cw-muted); }
.cw-data-overview-summary-table td { text-align: right; padding: 0.2rem 0; }
.cw-data-overview-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 1.25rem; }
.cw-data-overview-section { margin: 0; }
.cw-data-overview-heading {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cw-muted);
    margin: 0 0 0.5rem;
}

.cw-stat-label {
    color: var(--cw-text);
    font-weight: 500;
    text-decoration: none;
    flex: 1 1 auto;
    min-width: 0;
}
.cw-sidebar-stats a.cw-stat-label { color: var(--cw-accent); }
.cw-sidebar-stats a.cw-stat-label:hover { text-decoration: underline; }
.cw-stat-value {
    color: var(--cw-muted);
    font-size: 0.85rem;
    white-space: nowrap;
}
.cw-sidebar-ref .cw-stat-label { color: var(--cw-muted); font-weight: 400; }
.cw-sidebar-ref .cw-stat-value { color: var(--cw-text); font-weight: 500; }

/* Page layout with stats sidebar (mobile responsive: sidebar stacks below) */
.cw-page-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 1.5rem 2rem;
    align-items: start;
    margin-top: 1rem;
}
/* When sidebar is moved to global aside, content uses full body width (same as help panel above) */
.cw-page-layout.cw-body-full-width {
    grid-template-columns: 1fr;
}
@media (max-width: 768px) {
    .cw-page-layout { grid-template-columns: 1fr; }
}
.cw-page-content { min-width: 0; }
.cw-page-sidebar {
    position: sticky;
    top: 1.5rem;
}
.cw-stats-panel {
    background: var(--cw-card-bg);
    border: 1px solid var(--cw-border);
    border-radius: var(--cw-radius);
    padding: 1.25rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.cw-theme-light .cw-stats-panel { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }
.cw-panel-title-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.75rem; }
.cw-panel-title-row .cw-stats-panel-title,
.cw-panel-title-row .cw-data-overview-heading,
.cw-panel-title-row .cw-section-title,
.cw-panel-title-row .cw-portal-card-title,
.cw-panel-title-row .cw-heaven-card-title,
.cw-panel-title-row .cw-glossary-section-title,
.cw-panel-title-row .cw-glossary-term,
.cw-panel-title-row .cw-card-title { margin: 0; flex: 1 1 auto; }
.cw-panel-title-row .cw-share-buttons { margin-bottom: 0; }
.cw-portal-card-header .cw-panel-title-row,
.cw-heaven-card-header .cw-panel-title-row { margin-bottom: 0; }
.cw-stats-panel-title { font-size: 1.05rem; font-weight: 600; margin: 0 0 0.75rem; color: #fff; }
.cw-theme-light .cw-stats-panel-title { color: #0f172a; }
.cw-stats-panel .cw-sidebar-section { margin-bottom: 1rem; }
.cw-stats-panel .cw-sidebar-section:last-child { margin-bottom: 0; }
.cw-panel-standalone { margin-top: 1.5rem; }

/* UAP Map */
.cw-map-container { height: 480px; width: 100%; margin: 1rem 0; border-radius: var(--cw-radius); border: 1px solid var(--cw-border); background: var(--cw-surface); }
.cw-map-config { overflow: visible; }
.cw-map-config-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1.25rem 1.5rem; margin: 0.75rem 0; align-items: start; }
.cw-map-config-sources label, .cw-map-config-filters label { display: block; margin: 0 0 0.4rem; font-size: 0.9rem; }
.cw-map-config-filters label { margin-bottom: 1.25rem; }
.cw-map-config-filters label:last-child { margin-bottom: 0; }
.cw-map-check { display: inline-block; margin-right: 1rem; margin-bottom: 0.5rem; }
.cw-map-config-filters select { min-width: 10rem; margin-left: 0; margin-top: 0.25rem; display: block; width: 100%; max-width: 14rem; }
.cw-map-total-pins { margin: 0.75rem 0 1rem; padding: 0.6rem 1rem; background: var(--cw-surface); border: 1px solid var(--cw-border); border-radius: var(--cw-radius); font-size: 1rem; }
.cw-map-results-panel { margin: 1rem 0 0.75rem; padding: 0.75rem 1rem; background: var(--cw-surface); border: 1px solid var(--cw-border); border-radius: var(--cw-radius); max-width: 32rem; }
.cw-map-results-text { margin: 0 0 0.35rem; font-size: 0.95rem; color: var(--cw-text); }
.cw-map-results-filters { margin: 0; font-size: 0.8rem; color: var(--cw-muted, #666); line-height: 1.35; }
.cw-pin { background: none; border: none; }
.cw-pin-dot { display: block; width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.4); }
.cw-pin-claimant .cw-pin-dot { background: #2563eb; }
.cw-pin-report .cw-pin-dot { background: #dc2626; }
.leaflet-popup-content-wrapper { background: var(--cw-card-bg); color: var(--cw-text); border: 1px solid var(--cw-border); }
.leaflet-popup-content { margin: 0.5rem 0.75rem; font-size: 0.9rem; }
.leaflet-popup-content a { color: var(--cw-accent); }

/* Theme: light (admin setting) */
.cw-theme-light {
    --cw-bg: #f1f5f9;
    --cw-surface: #fff;
    --cw-border: #cbd5e1;
    --cw-text: #1e293b;
    --cw-muted: #64748b;
    --cw-accent: #2563eb;
    --cw-accent-hover: #1d4ed8;
    --cw-card-bg: #fff;
}
.cw-theme-light body { background: var(--cw-bg); color: var(--cw-text); }
.cw-theme-light .cw-nav a:hover { color: #0f172a; }
.cw-theme-light .cw-nav-quicklinks-icon:hover,
.cw-theme-light .cw-nav-quicklinks-dropdown[open] .cw-nav-quicklinks-icon { color: #0f172a; }
.cw-theme-light .cw-nav-quicklinks-panel a:hover { color: #0f172a; }
.cw-theme-light .cw-theme-link:hover { color: #0f172a; }
.cw-theme-light .cw-theme-link.cw-theme-active { color: var(--cw-accent); }
.cw-theme-light .cw-card { background: var(--cw-card-bg); border-color: var(--cw-border); }
.cw-theme-light .cw-card-title { color: #0f172a; }
.cw-theme-light .cw-sidebar-inner { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }
.cw-theme-light .cw-sidebar-title { color: #0f172a; }
.cw-theme-light .leaflet-popup-content-wrapper { background: var(--cw-card-bg); color: var(--cw-text); border-color: var(--cw-border); }
/* Light theme: all titles and headings visible (dark color on light bg) */
.cw-theme-light .cw-main h1,
.cw-theme-light .cw-main h2,
.cw-theme-light .cw-main h3 { color: #0f172a; }
.cw-theme-light .cw-section-title { color: #0f172a; border-bottom-color: var(--cw-border); }
.cw-theme-light .cw-realm-row h3 { color: #0f172a; }
.cw-theme-light .cw-heaven-group { color: #475569; }
.cw-theme-light .cw-heaven-card-title { color: #0f172a; }
.cw-theme-light .cw-stats-panel-title { color: #0f172a; }
.cw-theme-light .cw-angel-card .cw-card-title { color: #0f172a; }

/* Layout: list (admin setting – single column row style instead of cards) */
.cw-layout-list .cw-cards {
    display: block;
    gap: 0;
}
.cw-layout-list .cw-card {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.5rem;
    margin-bottom: 0.5rem;
    padding: 0.75rem 1rem;
}
.cw-layout-list .cw-card-title { margin: 0; font-size: 1rem; }
.cw-layout-list .cw-card-meta { margin: 0; }
.cw-layout-list .cw-card p { margin: 0; }
.cw-layout-list .cw-card .cw-badge { margin-top: 0; margin-right: 0.25rem; }

/* Layout: compact (admin setting – smaller cards, tighter grid) */
.cw-layout-compact .cw-cards {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.75rem;
}
.cw-layout-compact .cw-card {
    padding: 0.85rem;
}
.cw-layout-compact .cw-card-title { font-size: 1rem; }
.cw-layout-compact .cw-card p { font-size: 0.85rem; margin: 0.25rem 0; }

/* Glossary page */
.cw-glossary-list { margin: 1.5rem 0; }
.cw-glossary-section-title { font-size: 1.35rem; margin: 2rem 0 0.75rem; color: var(--cw-accent); }
.cw-glossary-section-title:first-child { margin-top: 0; }
.cw-glossary-section-heading { font-size: 1.1rem; margin: 1.5rem 0 0.5rem; color: var(--cw-muted); font-weight: 600; }
.cw-glossary-section-intro { border-left: 3px solid var(--cw-accent); padding-left: 1rem; }
.cw-glossary-item {
    margin-bottom: 1.75rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--cw-border);
}
.cw-glossary-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.cw-glossary-term { font-size: 1.15rem; margin: 0 0 0.5rem; color: var(--cw-text); }
.cw-glossary-known-as { margin: 0 0 0.35rem; font-size: 0.95rem; color: var(--cw-accent); }
.cw-glossary-def { margin: 0 0 0.5rem; line-height: 1.55; color: var(--cw-muted); font-size: 0.95rem; }
.cw-glossary-mission { margin: 0; font-size: 0.85rem; }
.cw-glossary-mission a { color: var(--cw-accent); }
.cw-theme-light .cw-glossary-term { color: #0f172a; }
.cw-theme-light .cw-glossary-def { color: #475569; }

/* Dimension map – visual hierarchy by tradition */
.cw-dimension-map {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.5rem;
    margin-top: 1.5rem;
}
.cw-dimension-map-column {
    background: var(--cw-surface);
    border: 1px solid var(--cw-border);
    border-radius: var(--cw-radius);
    overflow: hidden;
}
.cw-dimension-map-tradition {
    font-size: 1rem;
    margin: 0;
    padding: 0.75rem 1rem;
    background: var(--cw-card-bg);
    border-bottom: 1px solid var(--cw-border);
    color: var(--cw-accent);
}
.cw-dimension-map-levels {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem;
}
.cw-dimension-map-level {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 0.6rem 0.75rem;
    background: var(--cw-bg);
    border-radius: 6px;
    border-left: 3px solid var(--cw-accent);
}
.cw-dimension-map-num {
    flex-shrink: 0;
    width: 1.75rem;
    height: 1.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--cw-accent);
    color: #fff;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: 600;
}
.cw-dimension-map-content { flex: 1; min-width: 0; }
.cw-dimension-map-name { display: block; font-size: 0.95rem; margin-bottom: 0.2rem; }
.cw-dimension-map-desc {
    font-size: 0.8rem;
    color: var(--cw-muted);
    margin: 0 0 0.4rem;
    line-height: 1.4;
}
.cw-dimension-map-links { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.cw-dimension-map-links .cw-btn { font-size: 0.75rem; padding: 0.2rem 0.5rem; }
.cw-dimension-list-toggle summary {
    cursor: pointer;
    color: var(--cw-accent);
    font-size: 0.95rem;
}
.cw-dimension-list-toggle summary:hover { text-decoration: underline; }
.cw-theme-light .cw-dimension-map-column { background: #f8fafc; border-color: var(--cw-border); }
.cw-theme-light .cw-dimension-map-tradition { background: #f1f5f9; color: var(--cw-accent); }
.cw-theme-light .cw-dimension-map-level { background: #fff; border-left-color: var(--cw-accent); }

/* User View help (more descriptions, links to Mission & Glossary) – full body width, sets main content width */
.cw-user-view-help {
    background: var(--cw-card-bg);
    border: 1px solid var(--cw-border);
    border-radius: var(--cw-radius);
    padding: 0.85rem 1rem;
    margin: 0 0 1rem;
    font-size: 0.9rem;
    color: var(--cw-muted);
}
.cw-user-view-help a { color: var(--cw-accent); }
.cw-user-view-help strong { color: var(--cw-text); }

/* Utility */
.cw-muted { color: var(--cw-muted); font-size: 0.9rem; }
.cw-muted a { color: var(--cw-link); }
.cw-muted a:hover { color: var(--cw-link-hover); text-decoration: underline; }
.cw-alias { font-size: 0.9em; color: var(--cw-muted); font-weight: normal; }
.cw-error { background: #3d1a1a; color: #fca5a5; padding: 0.75rem; border-radius: var(--cw-radius); margin: 1rem 0; }
.cw-theme-light .cw-error { background: #fef2f2; color: #b91c1c; }

/* Theme: Creator (Creator Systems Data portal – style.css / creator.ideabcs.com) */
.cw-theme-creator {
    --cw-creator-bg: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    --cw-creator-container: #fff;
    --cw-creator-text: #333;
    --cw-creator-accent: #667eea;
    --cw-creator-accent-hover: #5568d3;
    --cw-creator-muted: #555;
    --cw-creator-border: #e2e8f0;
    --cw-creator-shadow: 0 10px 40px rgba(0,0,0,0.2);
    --cw-creator-radius: 10px;
    --cw-creator-font: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.cw-theme-creator body {
    background: var(--cw-creator-bg);
    padding: 20px;
    font-family: var(--cw-creator-font);
    line-height: 1.6;
    color: var(--cw-creator-text);
}
.cw-theme-creator .cw-nav {
    background: var(--cw-creator-container);
    border-bottom: 1px solid var(--cw-creator-border);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    margin: -20px -20px 0 -20px;
    padding: 0.75rem 20px;
}
.cw-theme-creator .cw-nav a {
    color: var(--cw-creator-accent);
    transition: color 0.3s;
}
.cw-theme-creator .cw-nav a:hover {
    color: var(--cw-creator-accent-hover);
}
.cw-theme-creator .cw-nav .cw-nav-brand {
    color: var(--cw-creator-text);
}
.cw-theme-creator .cw-nav-quicklinks-icon { color: var(--cw-creator-muted); }
.cw-theme-creator .cw-nav-quicklinks-icon:hover,
.cw-theme-creator .cw-nav-quicklinks-dropdown[open] .cw-nav-quicklinks-icon { color: var(--cw-creator-accent-hover); }
.cw-theme-creator .cw-nav-quicklinks-panel a { color: var(--cw-creator-accent); }
.cw-theme-creator .cw-nav-quicklinks-panel a:hover { color: var(--cw-creator-accent-hover); }
.cw-theme-creator .cw-quicklinks-label { color: var(--cw-creator-muted); border-bottom-color: var(--cw-creator-border); }
.cw-theme-creator .cw-nav .cw-sep {
    color: var(--cw-creator-border);
}
.cw-theme-creator .cw-theme-label {
    color: var(--cw-creator-muted);
}
.cw-theme-creator .cw-theme-link {
    color: var(--cw-creator-accent);
}
.cw-theme-creator .cw-theme-link:hover {
    color: var(--cw-creator-accent-hover);
}
.cw-theme-creator .cw-theme-link.cw-theme-active {
    color: var(--cw-creator-accent-hover);
    font-weight: 600;
}
.cw-theme-creator .cw-nav-accordion-summary {
    color: var(--cw-creator-text);
}
.cw-theme-creator .cw-nav-accordion-summary:hover {
    color: var(--cw-creator-accent-hover);
}
.cw-theme-creator .cw-nav-accordion-panel {
    background: var(--cw-creator-container);
    border-color: var(--cw-creator-border);
    box-shadow: 0 6px 20px rgba(0,0,0,0.12);
}
.cw-theme-creator .cw-nav-accordion-home {
    color: var(--cw-creator-accent);
    border-bottom-color: var(--cw-creator-border);
}
/* Main = white site container */
.cw-theme-creator .cw-main {
    background: var(--cw-creator-container);
    color: var(--cw-creator-text);
    max-width: 1600px;
    margin: 20px auto 0;
    padding: 30px;
    border-radius: var(--cw-creator-radius);
    box-shadow: var(--cw-creator-shadow);
    min-height: calc(100vh - 120px);
}
.cw-theme-creator .cw-main h1,
.cw-theme-creator .cw-main h2,
.cw-theme-creator .cw-main h3,
.cw-theme-creator .cw-main h4 {
    color: var(--cw-creator-text);
    margin-bottom: 15px;
}
.cw-theme-creator .cw-main h1 {
    font-size: 2.5em;
}
.cw-theme-creator .cw-muted {
    color: var(--cw-creator-muted);
}
.cw-theme-creator .cw-main a {
    color: var(--cw-creator-accent);
    transition: color 0.3s;
}
.cw-theme-creator .cw-main a:hover {
    color: var(--cw-creator-accent-hover);
}
/* Buttons – Creator style */
.cw-theme-creator .cw-btn {
    padding: 12px 30px;
    background: var(--cw-creator-accent);
    color: #fff;
    border: none;
    border-radius: 5px;
    font-size: 16px;
    font-weight: 600;
    transition: background 0.3s;
}
.cw-theme-creator .cw-btn:hover {
    background: var(--cw-creator-accent-hover);
}
.cw-theme-creator .cw-btn-primary {
    background: var(--cw-creator-accent-hover);
}
.cw-theme-creator .cw-btn-primary:hover {
    background: #4557bd;
}
.cw-theme-creator .cw-btn-sm {
    padding: 8px 18px;
    font-size: 14px;
}
/* Cards, search, panels */
.cw-theme-creator .cw-card,
.cw-theme-creator .cw-search,
.cw-theme-creator .cw-stats-panel,
.cw-theme-creator .cw-sidebar-inner {
    background: #f8fafc;
    border: 1px solid var(--cw-creator-border);
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.cw-theme-creator .cw-card-title,
.cw-theme-creator .cw-stats-panel-title,
.cw-theme-creator .cw-sidebar-title {
    color: var(--cw-creator-text);
}
.cw-theme-creator .cw-card-meta,
.cw-theme-creator .cw-section-title {
    color: var(--cw-creator-muted);
}
.cw-theme-creator .cw-section-title {
    border-bottom-color: var(--cw-creator-border);
}
.cw-theme-creator .cw-search label {
    color: var(--cw-creator-muted);
}
.cw-theme-creator .cw-search input[type="text"],
.cw-theme-creator .cw-search select {
    background: #fff;
    border-color: var(--cw-creator-border);
    color: var(--cw-creator-text);
}
/* Portal cards & pills */
.cw-theme-creator .cw-portal-card {
    background: #f8fafc;
    border-color: var(--cw-creator-border);
}
.cw-theme-creator .cw-portal-card-title {
    color: var(--cw-creator-text);
}
.cw-theme-creator .cw-portal-number {
    color: var(--cw-creator-accent);
}
.cw-theme-creator .cw-portal-pill {
    background: var(--cw-creator-accent);
    color: #fff;
}
.cw-theme-creator .cw-portal-label {
    color: var(--cw-creator-muted);
}
.cw-theme-creator .cw-portal-value {
    color: var(--cw-creator-text);
}
.cw-theme-creator .cw-heaven-card,
.cw-theme-creator .cw-realm-row {
    background: #f8fafc;
    border-color: var(--cw-creator-border);
}
.cw-theme-creator .cw-heaven-card-title,
.cw-theme-creator .cw-realm-row h3 {
    color: var(--cw-creator-text);
}
.cw-theme-creator .cw-heaven-group {
    color: var(--cw-creator-muted);
}
.cw-theme-creator .cw-badge {
    background: var(--cw-creator-accent);
    color: #fff;
}
/* Footer */
.cw-theme-creator .cw-footer {
    border-top-color: var(--cw-creator-border);
    color: var(--cw-creator-muted);
}
.cw-theme-creator .cw-footer a {
    color: var(--cw-creator-accent);
}
.cw-theme-creator .cw-footer a:hover {
    color: var(--cw-creator-accent-hover);
}
/* Map popup, error */
.cw-theme-creator .leaflet-popup-content-wrapper {
    background: var(--cw-creator-container);
    color: var(--cw-creator-text);
    border-color: var(--cw-creator-border);
}
.cw-theme-creator .leaflet-popup-content a {
    color: var(--cw-creator-accent);
}
.cw-theme-creator .cw-error {
    background: #fef2f2;
    color: #b91c1c;
}
@media (max-width: 768px) {
    .cw-theme-creator body {
        padding: 10px;
    }
    .cw-theme-creator .cw-nav {
        margin: -10px -10px 0 -10px;
        padding: 0.75rem 10px;
    }
    .cw-theme-creator .cw-main {
        padding: 15px;
        margin-top: 10px;
    }
    .cw-theme-creator .cw-main h1 {
        font-size: 2em;
    }
}

/* Sponsor popup */
.cw-sponsor-popup-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    padding: 1rem;
}
.cw-sponsor-popup {
    background: var(--cw-surface);
    border: 1px solid var(--cw-border);
    border-radius: var(--cw-radius);
    padding: 1.5rem;
    max-width: 560px;
    width: 100%;
    position: relative;
    box-shadow: 0 12px 40px rgba(0,0,0,0.4);
}
.cw-sponsor-popup-title {
    margin: 0 0 1rem 0;
    font-size: 1.25rem;
    color: var(--cw-text);
}
.cw-sponsor-popup-close {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    background: none;
    border: none;
    color: var(--cw-muted);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.25rem;
}
.cw-sponsor-popup-close:hover {
    color: var(--cw-text);
}
.cw-sponsor-popup-grid {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1.5rem;
    align-items: start;
}
.cw-sponsor-popup-preferences {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.cw-sponsor-fieldset {
    border: 1px solid var(--cw-border);
    border-radius: 6px;
    padding: 0.75rem;
    margin: 0;
}
.cw-sponsor-fieldset legend {
    font-size: 0.9rem;
    color: var(--cw-muted);
    padding: 0 0.35rem;
}
.cw-sponsor-fieldset label {
    display: block;
    margin: 0.35rem 0;
    font-size: 0.9rem;
    cursor: pointer;
}
.cw-sponsor-popup-btn {
    margin-top: 0.5rem;
    padding: 0.5rem 1rem;
    background: var(--cw-accent);
    color: #fff;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.95rem;
}
.cw-sponsor-popup-btn:hover {
    background: var(--cw-accent-hover);
}
.cw-sponsor-popup-ad-slot {
    background: var(--cw-card-bg);
    border: 1px dashed var(--cw-border);
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 250px;
}
.cw-sponsor-ad-placeholder {
    color: var(--cw-muted);
    font-size: 0.85rem;
}
@media (max-width: 600px) {
    .cw-sponsor-popup-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 520px) {
    .cw-nav-ad-slot {
        width: 100%;
        max-width: 468px;
        margin-left: 0;
    }
    .cw-header-ad-placeholder {
        width: 100%;
        max-width: 468px;
    }
}
