@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Poppins:wght@600;700;800&display=swap');

:root {
    --codex-bg: #0f172a;
    --codex-surface: #111827;
    --codex-card: #1f2937;
    --codex-dark: #f9fafb;
    --codex-slate: #e5e7eb;
    --codex-gold: #d6b85a;
    --codex-muted: #9ca3af;
    --codex-border: rgba(255,255,255,0.08);
    --codex-radius: 18px;
}

body {
    background:
        radial-gradient(circle at top left, rgba(214,184,90,0.14), transparent 35%),
        linear-gradient(135deg, #0f172a, #111827);
    color: var(--codex-dark);
    font-family: "Inter", system-ui, sans-serif;
    min-height: 100vh;
}

h1,
h2,
h3,
h4,
h5,
h6,
.navbar-brand {
    font-family: "Poppins", system-ui, sans-serif;
}

.navbar {
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.35);
}

.codex-sidebar {
    background: rgba(17, 24, 39, 0.92);
    border-right: 1px solid var(--codex-border);
}

.codex-sidebar-title {
    font-family: "Poppins", system-ui, sans-serif;
    font-weight: 800;
    letter-spacing: -0.04em;
    margin-bottom: 1.25rem;
    color: var(--codex-gold);
}

.codex-sidebar .list-group-item {
    background: transparent;
    border: 0;
    border-radius: 14px;
    margin-bottom: 8px;
    color: var(--codex-slate);
    font-weight: 600;
    transition: all 0.18s ease;
}

.codex-sidebar .list-group-item:hover {
    transform: translateX(4px);
    background: rgba(255,255,255,0.08);
    color: #ffffff;
}

.codex-card,
.codex-stat,
.card {
    background: rgba(31,41,55,0.94);
    border: 1px solid var(--codex-border);
    border-radius: var(--codex-radius);
    color: var(--codex-dark);
    box-shadow: 0 14px 35px rgba(0, 0, 0, 0.28);
}

.codex-card {
    transition: all 0.2s ease;
}

.codex-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.38);
}

.codex-card-soft {
    background: linear-gradient(135deg, rgba(31,41,55,0.96), rgba(17,24,39,0.96));
    border-radius: var(--codex-radius);
    border: 1px solid var(--codex-border);
    color: var(--codex-dark);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.34);
}

.codex-title {
    font-weight: 800;
    letter-spacing: -0.04em;
}

.codex-muted,
.text-muted {
    color: var(--codex-muted) !important;
}

.btn-codex,
.btn-codex-gold {
    border-radius: 999px;
    padding: 0.6rem 1.25rem;
    font-weight: 700;
    border: 0;
}

.btn-codex {
    background: var(--codex-slate);
    color: #111827;
}

.btn-codex-gold {
    background: var(--codex-gold);
    color: #111827;
}

.btn-codex-gold:hover {
    background: #b8921f;
    color: #111827;
}

.codex-editor {
    min-height: 620px;
    font-size: 1.15rem;
    line-height: 1.9;
    border: 0;
    outline: none;
    resize: vertical;
    background: #0f172a;
    color: #f9fafb;
}

.codex-stat {
    padding: 1rem;
}

.codex-page {
    max-width: 1500px;
    margin: 0 auto;
}

.form-control,
.form-select,
textarea {
    background-color: #111827;
    color: #f9fafb;
    border-color: var(--codex-border);
}

.form-control:focus,
.form-select:focus,
textarea:focus {
    background-color: #111827;
    color: #f9fafb;
    border-color: var(--codex-gold);
    box-shadow: 0 0 0 0.2rem rgba(214,184,90,0.15);
}

.list-group-item {
    background-color: rgba(31,41,55,0.94);
    color: var(--codex-dark);
    border-color: var(--codex-border);
}
/* v0.23 - The Study + Four Pillar Navigation */
.codex-topbar {
    position: sticky;
    top: 0;
    z-index: 1030;
}

.codex-project-select {
    min-width: 220px;
}

.codex-context-bar,
.codex-breadcrumb-bar {
    background: rgba(17, 24, 39, 0.96);
    border-top: 1px solid var(--codex-border);
    border-bottom: 1px solid var(--codex-border);
}

.codex-pillar-nav {
    --bs-accordion-bg: transparent;
    --bs-accordion-border-color: transparent;
}

.codex-pillar {
    margin-bottom: 0.85rem;
}

.codex-pillar-button {
    width: 100%;
    border: 1px solid var(--codex-border);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(31,41,55,0.96), rgba(17,24,39,0.96));
    color: var(--codex-dark);
    font-weight: 800;
    padding: 0.9rem 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.2s ease;
}

.codex-pillar-button::after {
    content: "⌄";
    color: var(--codex-muted);
    transition: transform 0.2s ease;
}

.codex-pillar-button.collapsed::after {
    transform: rotate(-90deg);
}

.codex-pillar-button:hover,
.codex-pillar-button:not(.collapsed) {
    border-color: rgba(214,184,90,0.5);
    color: #ffffff;
    box-shadow: 0 12px 30px rgba(0,0,0,0.22);
}

.codex-pillar-links {
    padding: 0.65rem 0.35rem 0.2rem 0.35rem;
}

.codex-nav-link {
    display: block;
    color: var(--codex-slate);
    text-decoration: none;
    border-radius: 12px;
    padding: 0.62rem 0.8rem;
    margin-bottom: 0.25rem;
    font-weight: 650;
    font-size: 0.94rem;
    transition: all 0.18s ease;
}

.codex-nav-link:hover,
.codex-nav-link.active {
    background: rgba(255,255,255,0.08);
    color: #ffffff;
    transform: translateX(4px);
}

.codex-nav-link.active {
    border-left: 3px solid var(--codex-gold);
}

.codex-nav-link.disabled {
    color: rgba(229,231,235,0.38);
    cursor: not-allowed;
}

.codex-nav-link.disabled:hover {
    background: transparent;
    transform: none;
}

.codex-sidebar-admin {
    border-top: 1px solid var(--codex-border);
}

.codex-study-hero {
    background:
        radial-gradient(circle at top right, rgba(214,184,90,0.18), transparent 34%),
        linear-gradient(135deg, rgba(31,41,55,0.96), rgba(17,24,39,0.97));
    border: 1px solid var(--codex-border);
    border-radius: 28px;
    padding: clamp(1.5rem, 4vw, 3rem);
    box-shadow: 0 22px 60px rgba(0,0,0,0.35);
}

.codex-study-title {
    font-family: "Poppins", system-ui, sans-serif;
    font-size: clamp(2.8rem, 7vw, 5.8rem);
    line-height: 0.95;
    letter-spacing: -0.075em;
    font-weight: 800;
}

.codex-study-project {
    border-left: 4px solid var(--codex-gold);
    padding-left: 1rem;
}

.codex-progress {
    background: rgba(255,255,255,0.08);
    border-radius: 999px;
    height: 0.8rem;
}

.codex-progress .progress-bar {
    background: var(--codex-gold);
}

.codex-pillar-card,
.codex-pillar-card:visited {
    color: var(--codex-dark);
}

.codex-pillar-card .codex-card {
    min-height: 230px;
}

.codex-pillar-icon {
    font-size: 2.4rem;
    margin-bottom: 1rem;
}

@media (max-width: 767.98px) {
    .codex-sidebar {
        min-height: auto !important;
    }

    .codex-study-title {
        font-size: 3.2rem;
    }
}

/* v0.24 - Writer's Soundscape Hub */
.codex-soundscape-service {
    background: rgba(17, 24, 39, 0.72);
    border: 1px solid var(--codex-border);
    border-radius: 16px;
    transition: all 0.18s ease;
}

.codex-soundscape-service:hover {
    transform: translateY(-2px);
    border-color: rgba(214,184,90,0.45);
    background: rgba(31,41,55,0.9);
}

/* Writer's Soundscape mini-player */
.codex-soundscape-embed {
    width: 100%;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 18px;
    background: rgba(0, 0, 0, 0.24);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.codex-soundscape-embed iframe {
    display: block;
    width: 100%;
    min-height: 152px;
    border: 0;
}

.codex-soundscape-embed-compact iframe {
    min-height: 88px;
}

.codex-soundscape-fallback {
    border: 1px dashed rgba(255, 255, 255, 0.16);
    border-radius: 16px;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.04);
}

/* v0.24.3 - Persistent Workspace Bar */
body {
    padding-bottom: 78px;
}

.codex-workspace-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1040;
    min-height: 64px;
    padding: 0.65rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    background:
        radial-gradient(circle at top left, rgba(214,184,90,0.16), transparent 30%),
        rgba(10, 15, 25, 0.97);
    border-top: 1px solid rgba(214,184,90,0.24);
    box-shadow: 0 -18px 46px rgba(0,0,0,0.38);
    backdrop-filter: blur(16px);
}

.codex-workspace-segment {
    min-height: 42px;
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.45rem 0.75rem;
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 999px;
    background: rgba(255,255,255,0.045);
    color: #ffffff;
}

.codex-workspace-project {
    max-width: 360px;
}

.codex-workspace-label {
    color: rgba(229,231,235,0.68);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.055em;
    white-space: nowrap;
}

.codex-workspace-link {
    color: #ffffff;
    text-decoration: none;
    font-weight: 800;
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.codex-workspace-link:hover {
    color: var(--codex-gold);
}

.codex-workspace-soundscape {
    margin-left: auto;
}

.codex-workspace-soundscape-name {
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 800;
}

.codex-soundscape-player-body {
    padding: 0;
    min-height: 100vh;
    background:
        radial-gradient(circle at top right, rgba(214,184,90,0.18), transparent 35%),
        linear-gradient(135deg, #111827, #050816);
}

.codex-soundscape-player-shell {
    padding: 1.25rem;
}

.codex-soundscape-embed-player iframe {
    min-height: 430px;
}

@media (max-width: 767.98px) {
    body {
        padding-bottom: 118px;
    }

    .codex-workspace-bar {
        justify-content: space-between;
    }

    .codex-workspace-segment {
        padding: 0.45rem 0.6rem;
    }

    .codex-workspace-project {
        max-width: 100%;
    }

    .codex-workspace-soundscape {
        margin-left: 0;
    }
}

/* v0.26.1 - Writer's Codex brand polish + guided experience */
:root {
    --codex-bg: #070a12;
    --codex-ink: #090d16;
    --codex-navy: #0d1424;
    --codex-panel: rgba(13, 20, 36, 0.92);
    --codex-panel-soft: rgba(18, 27, 46, 0.86);
    --codex-parchment: #f1e4c3;
    --codex-gold: #d8b25c;
    --codex-gold-bright: #f0cf7b;
    --codex-copper: #9d6743;
    --codex-aether: #7aa6ff;
    --codex-dark: #f7f0df;
    --codex-slate: #e8dcc4;
    --codex-muted: #a89c86;
    --codex-border: rgba(216, 178, 92, 0.18);
    --codex-border-soft: rgba(255,255,255,0.08);
}

body {
    background:
        radial-gradient(circle at 12% 8%, rgba(216,178,92,0.18), transparent 28%),
        radial-gradient(circle at 88% 18%, rgba(122,166,255,0.10), transparent 32%),
        linear-gradient(135deg, #05070d 0%, #0b1020 48%, #080b13 100%);
    color: var(--codex-dark);
}

.codex-topbar {
    background: rgba(5, 7, 13, 0.92) !important;
    backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(216,178,92,0.18);
}

.codex-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    letter-spacing: -0.035em;
}

.codex-brand-mark,
.codex-brand-seal {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 25%, #f8e7a3, #d8b25c 55%, #7d5526);
    color: #11100b;
    box-shadow: 0 0 26px rgba(216,178,92,0.35);
}

.codex-sidebar {
    background:
        linear-gradient(180deg, rgba(10,14,25,0.98), rgba(7,10,18,0.98)),
        radial-gradient(circle at top, rgba(216,178,92,0.18), transparent 42%);
    border-right: 1px solid rgba(216,178,92,0.18);
}

.codex-sidebar-brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--codex-parchment);
    margin-bottom: 1.4rem;
}

.codex-sidebar-brand strong {
    display: block;
    line-height: 1.05;
}

.codex-sidebar-brand small {
    display: block;
    color: var(--codex-muted);
    font-family: "Inter", system-ui, sans-serif;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    margin-top: 0.18rem;
    text-transform: uppercase;
}

.codex-pillar-button {
    background:
        linear-gradient(135deg, rgba(20,30,51,0.92), rgba(9,13,24,0.94)),
        radial-gradient(circle at top left, rgba(216,178,92,0.12), transparent 55%);
    border: 1px solid rgba(216,178,92,0.16);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), 0 12px 32px rgba(0,0,0,0.18);
}

.codex-pillar-button:hover,
.codex-pillar-button:not(.collapsed) {
    background:
        linear-gradient(135deg, rgba(33,43,66,0.96), rgba(12,17,29,0.98)),
        radial-gradient(circle at top left, rgba(240,207,123,0.18), transparent 56%);
    border-color: rgba(240,207,123,0.48);
    transform: translateY(-1px);
}

.codex-pillar-heading {
    display: flex;
    gap: 0.72rem;
    align-items: center;
    text-align: left;
}

.codex-pillar-heading strong {
    display: block;
    color: var(--codex-parchment);
    line-height: 1.05;
}

.codex-pillar-heading small {
    display: block;
    color: var(--codex-muted);
    font-size: 0.74rem;
    font-weight: 600;
    margin-top: 0.18rem;
}

.codex-nav-link {
    color: rgba(241,228,195,0.88);
    border: 1px solid transparent;
}

.codex-nav-link:hover,
.codex-nav-link.active {
    background: rgba(216,178,92,0.10);
    border-color: rgba(216,178,92,0.18);
    color: #fff6dd;
}

.codex-nav-link.active {
    border-left: 3px solid var(--codex-gold-bright);
    box-shadow: 0 8px 22px rgba(0,0,0,0.15);
}

.codex-card,
.codex-stat,
.card {
    background:
        linear-gradient(180deg, rgba(21,29,47,0.96), rgba(13,18,31,0.96));
    border: 1px solid rgba(216,178,92,0.14);
    box-shadow: 0 20px 50px rgba(0,0,0,0.34), inset 0 1px 0 rgba(255,255,255,0.035);
}

.codex-card-soft,
.codex-study-hero {
    background:
        radial-gradient(circle at top right, rgba(216,178,92,0.18), transparent 35%),
        linear-gradient(135deg, rgba(22,30,49,0.98), rgba(8,12,21,0.98));
    border: 1px solid rgba(216,178,92,0.18);
    box-shadow: 0 24px 70px rgba(0,0,0,0.38), inset 0 1px 0 rgba(255,255,255,0.045);
}

.codex-study-title {
    color: #fff4d8;
    text-shadow: 0 0 36px rgba(216,178,92,0.18);
}

.codex-study-quote {
    color: var(--codex-gold-bright);
    font-family: "Poppins", system-ui, sans-serif;
    font-weight: 700;
    letter-spacing: -0.025em;
}

.codex-kicker {
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 800;
}

.btn-codex-gold {
    background: linear-gradient(135deg, #f1d98d, #d8b25c 58%, #b88735);
    color: #120f09;
    box-shadow: 0 10px 28px rgba(216,178,92,0.22);
}

.btn-codex-gold:hover {
    background: linear-gradient(135deg, #fff0af, #e5bd61 58%, #ba8737);
    color: #120f09;
}

.btn-outline-light {
    border-color: rgba(241,228,195,0.32);
    color: #f1e4c3;
}

.btn-outline-light:hover {
    background: rgba(241,228,195,0.10);
    border-color: rgba(240,207,123,0.55);
    color: #fff6dd;
}

.form-control,
.form-select,
textarea {
    background-color: rgba(7,10,18,0.92);
    border-color: rgba(216,178,92,0.18);
}

.tooltip .tooltip-inner {
    background: linear-gradient(180deg, #151d2f, #0a0f1b);
    border: 1px solid rgba(216,178,92,0.28);
    color: #f7f0df;
    box-shadow: 0 14px 40px rgba(0,0,0,0.42);
    padding: 0.65rem 0.8rem;
    max-width: 300px;
    text-align: left;
}

.tooltip.bs-tooltip-top .tooltip-arrow::before,
.tooltip.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before {
    border-top-color: rgba(216,178,92,0.42);
}

.codex-tour-modal {
    background:
        radial-gradient(circle at top right, rgba(216,178,92,0.18), transparent 36%),
        linear-gradient(135deg, #151d2f, #080b13);
    border: 1px solid rgba(216,178,92,0.24);
    box-shadow: 0 28px 80px rgba(0,0,0,0.55);
    border-radius: 24px;
}

.codex-tour-card {
    min-height: 132px;
    padding: 1rem;
    border-radius: 18px;
    background: rgba(255,255,255,0.045);
    border: 1px solid rgba(216,178,92,0.14);
}

.codex-tour-card strong {
    display: block;
    color: #fff0c7;
    margin-bottom: 0.5rem;
}

.codex-tour-card p {
    color: var(--codex-muted);
    margin-bottom: 0;
    font-size: 0.94rem;
}

.codex-rich-editor {
    background:
        linear-gradient(180deg, rgba(8,12,21,0.98), rgba(7,10,18,0.98));
}

.codex-editor-toolbar {
    background: rgba(7,10,18,0.72);
    backdrop-filter: blur(10px);
}

.codex-workspace-bar {
    background: rgba(5,7,13,0.96);
    border-top: 1px solid rgba(216,178,92,0.2);
    box-shadow: 0 -16px 44px rgba(0,0,0,0.42);
}

/* v0.26.2 - Brand Identity Polish */
:root {
    --codex-black: #040608;
    --codex-ink: #070b12;
    --codex-navy: #08121f;
    --codex-deep: #0d1627;
    --codex-card: rgba(9, 14, 24, 0.96);
    --codex-card-soft: rgba(14, 22, 36, 0.94);
    --codex-parchment: #f6e7be;
    --codex-gold: #d8b25c;
    --codex-gold-bright: #f1d98d;
    --codex-gold-dark: #9e6b2c;
    --codex-muted: rgba(246,231,190,0.68);
    --codex-border: rgba(216,178,92,0.22);
}

body {
    background:
        radial-gradient(circle at 72% 0%, rgba(216,178,92,0.13), transparent 30%),
        radial-gradient(circle at 12% 0%, rgba(216,178,92,0.08), transparent 32%),
        linear-gradient(135deg, var(--codex-black), var(--codex-navy) 52%, #05070c);
    color: var(--codex-parchment);
}

h1, h2, h3, h4, h5, h6,
.navbar-brand,
.codex-sidebar-title,
.codex-study-title,
.codex-title {
    font-family: Georgia, 'Times New Roman', serif;
    letter-spacing: 0.015em;
}

.codex-brand {
    display: flex;
    align-items: center;
    min-width: 210px;
}

.codex-brand-logo {
    display: block;
    height: auto;
    max-width: 100%;
    filter: drop-shadow(0 0 12px rgba(216,178,92,0.18));
}

.codex-brand-logo-top {
    width: 210px;
    max-height: 58px;
}

.codex-brand-logo-sidebar {
    width: 100%;
    max-width: 232px;
    margin: 0 auto;
}

.codex-sidebar-brand {
    display: flex;
    justify-content: center;
    padding: 0.4rem 0 1rem 0;
    margin-bottom: 1rem;
    border-bottom: 1px solid rgba(216,178,92,0.22);
}

.codex-brand-mark,
.codex-brand-seal {
    display: none;
}

.codex-topbar,
.navbar.bg-dark {
    background:
        linear-gradient(180deg, rgba(5,7,12,0.98), rgba(7,10,18,0.96)) !important;
    border-bottom: 1px solid rgba(216,178,92,0.18);
}

.codex-sidebar {
    background:
        radial-gradient(circle at top, rgba(216,178,92,0.12), transparent 36%),
        linear-gradient(180deg, rgba(5,7,12,0.99), rgba(8,12,20,0.99));
    border-right: 1px solid rgba(216,178,92,0.22);
}

.codex-pillar-button {
    min-height: 54px;
    padding: 0.86rem 0.95rem;
    border-radius: 15px;
    background:
        linear-gradient(135deg, rgba(15,23,39,0.94), rgba(6,9,16,0.96));
    border: 1px solid rgba(216,178,92,0.22);
    color: var(--codex-parchment);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.035), 0 12px 28px rgba(0,0,0,0.18);
}

.codex-pillar-button:hover,
.codex-pillar-button:not(.collapsed) {
    background:
        linear-gradient(135deg, rgba(32,41,62,0.96), rgba(10,15,25,0.98));
    border-color: rgba(241,217,141,0.55);
    color: #fff5dc;
}

.codex-pillar-heading {
    display: flex;
    align-items: center;
    gap: 0.72rem;
    text-align: left;
}

.codex-pillar-icon-small {
    width: 1.85rem;
    height: 1.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(216,178,92,0.10);
    border: 1px solid rgba(216,178,92,0.24);
    font-size: 1rem;
}

.codex-pillar-heading strong {
    color: var(--codex-parchment);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 0.98rem;
    letter-spacing: 0.025em;
    text-transform: uppercase;
}

.codex-pillar-heading small {
    display: none !important;
}

.codex-nav-link {
    color: rgba(246,231,190,0.78);
    font-size: 0.91rem;
}

.codex-nav-link:hover,
.codex-nav-link.active {
    background: rgba(216,178,92,0.105);
    border-color: rgba(216,178,92,0.22);
    color: #fff7df;
}

.codex-card,
.codex-stat,
.card,
.codex-card-soft {
    background:
        radial-gradient(circle at top right, rgba(216,178,92,0.07), transparent 34%),
        linear-gradient(180deg, rgba(12,18,30,0.97), rgba(6,10,17,0.97));
    border-color: rgba(216,178,92,0.18);
}

.codex-context-bar,
.codex-breadcrumb-bar,
.codex-workspace-bar {
    background: rgba(5,7,12,0.96);
    border-color: rgba(216,178,92,0.18);
}

.btn-codex-gold {
    background: linear-gradient(135deg, #fff0ad, #d8b25c 52%, #a77330);
    color: #130f08;
    border: 1px solid rgba(255,240,173,0.3);
}

@media (max-width: 991.98px) {
    .codex-brand-logo-top {
        width: 170px;
    }
}

/* v0.27.0 - The Author's Desk + branded login landing page */
.codex-kicker {
    color: var(--codex-gold-bright, #f0cf7b);
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.codex-author-desk-page {
    max-width: 1600px;
}

.codex-author-hero {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(216,178,92,0.24);
    border-radius: 30px;
    padding: clamp(1.4rem, 3.3vw, 2.6rem);
    background:
        radial-gradient(circle at 86% 8%, rgba(240,207,123,0.15), transparent 32%),
        radial-gradient(circle at 12% 90%, rgba(122,166,255,0.10), transparent 34%),
        linear-gradient(135deg, rgba(13,20,36,0.96), rgba(6,9,17,0.98));
    box-shadow: 0 24px 70px rgba(0,0,0,0.42);
}

.codex-author-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(216,178,92,0.11), transparent 20%, transparent 80%, rgba(216,178,92,0.08));
    opacity: 0.65;
}

.codex-author-hero > * {
    position: relative;
    z-index: 1;
}

.codex-author-hero-logo {
    width: 72px;
    height: 72px;
    object-fit: contain;
    filter: drop-shadow(0 0 24px rgba(216,178,92,0.36));
}

.codex-author-project-title {
    color: var(--codex-parchment, #f1e4c3);
    font-family: "Poppins", system-ui, sans-serif;
    font-size: clamp(1.75rem, 3.8vw, 3.2rem);
    font-weight: 800;
    letter-spacing: -0.045em;
    line-height: 1.03;
}

.codex-author-lead {
    max-width: 760px;
    color: rgba(241,228,195,0.78);
}

.codex-author-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
    max-width: 860px;
}

.codex-author-metrics div,
.codex-author-panel {
    border: 1px solid rgba(216,178,92,0.17);
    border-radius: 20px;
    background:
        linear-gradient(135deg, rgba(18,27,46,0.82), rgba(7,10,18,0.88));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), 0 14px 36px rgba(0,0,0,0.24);
}

.codex-author-metrics div {
    padding: 0.9rem 1rem;
}

.codex-author-metrics span {
    display: block;
    color: #fff6dd;
    font-weight: 850;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.codex-author-metrics small {
    color: var(--codex-muted, #a89c86);
    font-weight: 700;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.codex-author-panel {
    padding: 1.45rem;
}

.codex-pillar-grid .codex-card {
    min-height: 150px;
    align-items: center;
    justify-content: center;
}

.codex-pillar-grid .codex-card h4 {
    color: var(--codex-parchment, #f1e4c3);
}

.codex-pillar-grid .codex-card:hover {
    border-color: rgba(240,207,123,0.46);
    box-shadow: 0 22px 52px rgba(0,0,0,0.36), 0 0 30px rgba(216,178,92,0.08);
}

.codex-login-landing {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 16% 14%, rgba(216,178,92,0.20), transparent 28%),
        radial-gradient(circle at 84% 10%, rgba(122,166,255,0.12), transparent 34%),
        linear-gradient(135deg, #04060b 0%, #0b1020 48%, #05070d 100%);
}

.codex-login-landing::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(216,178,92,0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(216,178,92,0.035) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: radial-gradient(circle at center, black, transparent 78%);
}

.codex-login-landing > .container {
    position: relative;
    z-index: 1;
}

.codex-login-brand {
    display: flex;
    align-items: center;
    gap: 1.2rem;
}

.codex-login-logo {
    width: clamp(72px, 10vw, 112px);
    height: clamp(72px, 10vw, 112px);
    object-fit: contain;
    filter: drop-shadow(0 0 34px rgba(216,178,92,0.40));
}

.codex-login-title {
    color: var(--codex-parchment, #f1e4c3);
    font-size: clamp(2.4rem, 6vw, 5.2rem);
    font-weight: 850;
    letter-spacing: -0.065em;
    line-height: 0.96;
}

.codex-login-lead {
    max-width: 700px;
    color: rgba(241,228,195,0.78);
    font-size: 1.16rem;
    line-height: 1.75;
}

.codex-login-feature,
.codex-login-card {
    border: 1px solid rgba(216,178,92,0.20);
    border-radius: 22px;
    background:
        linear-gradient(135deg, rgba(18,27,46,0.76), rgba(7,10,18,0.88));
    box-shadow: 0 18px 46px rgba(0,0,0,0.30);
}

.codex-login-feature {
    padding: 1rem 1.1rem;
    color: var(--codex-parchment, #f1e4c3);
    font-weight: 800;
}

.codex-login-feature span {
    margin-left: 0.45rem;
}

.codex-login-card {
    backdrop-filter: blur(18px);
}

.codex-login-card-logo {
    width: 86px;
    height: 86px;
    object-fit: contain;
    filter: drop-shadow(0 0 28px rgba(216,178,92,0.32));
}

.codex-gold-link {
    color: var(--codex-gold-bright, #f0cf7b);
    font-weight: 800;
}

.codex-gold-link:hover {
    color: #fff3c0;
}

@media (max-width: 767.98px) {
    .codex-author-metrics {
        grid-template-columns: 1fr;
    }

    .codex-author-hero-logo {
        width: 58px;
        height: 58px;
    }

    .codex-login-brand {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* v2.4 - Theme Engine */
html[data-codex-theme="classic"] {
    --codex-bg: #0f172a;
    --codex-surface: #111827;
    --codex-card: #1f2937;
    --codex-dark: #f9fafb;
    --codex-slate: #e5e7eb;
    --codex-gold: #d6b85a;
    --codex-gold-bright: #f0cf7b;
    --codex-muted: #9ca3af;
    --codex-border: rgba(255,255,255,0.08);
    --codex-body-bg:
        radial-gradient(circle at top left, rgba(214,184,90,0.14), transparent 35%),
        linear-gradient(135deg, #0f172a, #111827);
    --codex-card-bg: rgba(31,41,55,0.94);
    --codex-soft-bg: linear-gradient(135deg, rgba(31,41,55,0.96), rgba(17,24,39,0.96));
    --codex-editor-bg: #0f172a;
    --codex-editor-text: #f9fafb;
    --codex-hero-bg:
        radial-gradient(circle at 86% 8%, rgba(240,207,123,0.15), transparent 32%),
        radial-gradient(circle at 12% 90%, rgba(122,166,255,0.10), transparent 34%),
        linear-gradient(135deg, rgba(13,20,36,0.96), rgba(6,9,17,0.98));
}

html[data-codex-theme="midnight"] {
    --codex-bg: #050816;
    --codex-surface: #080d1c;
    --codex-card: #10172a;
    --codex-dark: #f8fbff;
    --codex-slate: #dbeafe;
    --codex-gold: #8fb8ff;
    --codex-gold-bright: #bfdbfe;
    --codex-muted: #9aa8c7;
    --codex-border: rgba(143,184,255,0.18);
    --codex-body-bg:
        radial-gradient(circle at 18% 0%, rgba(95,137,255,0.18), transparent 34%),
        radial-gradient(circle at 86% 8%, rgba(80,62,180,0.20), transparent 30%),
        linear-gradient(135deg, #030511, #0b1024 62%, #02030a);
    --codex-card-bg: rgba(12,18,36,0.94);
    --codex-soft-bg: linear-gradient(135deg, rgba(15,23,48,0.96), rgba(5,8,22,0.96));
    --codex-editor-bg: #050816;
    --codex-editor-text: #eff6ff;
    --codex-hero-bg:
        radial-gradient(circle at 75% 8%, rgba(143,184,255,0.16), transparent 34%),
        radial-gradient(circle at 12% 90%, rgba(129,92,246,0.12), transparent 36%),
        linear-gradient(135deg, rgba(5,8,22,0.98), rgba(2,3,10,0.98));
}

html[data-codex-theme="old-bookstore"] {
    --codex-bg: #21170f;
    --codex-surface: #2b1d12;
    --codex-card: #3a2819;
    --codex-dark: #fff2d2;
    --codex-slate: #f1dfb9;
    --codex-gold: #c88d3d;
    --codex-gold-bright: #e7b96b;
    --codex-muted: #c6a982;
    --codex-border: rgba(231,185,107,0.18);
    --codex-body-bg:
        radial-gradient(circle at 15% 10%, rgba(231,185,107,0.16), transparent 30%),
        radial-gradient(circle at 90% 0%, rgba(92,47,24,0.35), transparent 34%),
        linear-gradient(135deg, #1a1009, #2a1a10 58%, #120b07);
    --codex-card-bg: rgba(54,36,22,0.95);
    --codex-soft-bg: linear-gradient(135deg, rgba(60,40,24,0.96), rgba(32,20,12,0.96));
    --codex-editor-bg: #21170f;
    --codex-editor-text: #fff2d2;
    --codex-hero-bg:
        radial-gradient(circle at 80% 10%, rgba(231,185,107,0.18), transparent 34%),
        linear-gradient(135deg, rgba(55,35,19,0.98), rgba(20,12,7,0.98));
}

html[data-codex-theme="fantasy-archive"] {
    --codex-bg: #100d1f;
    --codex-surface: #171226;
    --codex-card: #241a36;
    --codex-dark: #fbf0ff;
    --codex-slate: #f3ddff;
    --codex-gold: #d8a8ff;
    --codex-gold-bright: #f0ccff;
    --codex-muted: #c7a9d8;
    --codex-border: rgba(216,168,255,0.20);
    --codex-body-bg:
        radial-gradient(circle at 20% 0%, rgba(168,85,247,0.22), transparent 32%),
        radial-gradient(circle at 88% 12%, rgba(236,72,153,0.14), transparent 30%),
        linear-gradient(135deg, #0b0716, #1b1030 58%, #06040d);
    --codex-card-bg: rgba(35,25,54,0.94);
    --codex-soft-bg: linear-gradient(135deg, rgba(40,28,62,0.96), rgba(18,11,32,0.96));
    --codex-editor-bg: #100d1f;
    --codex-editor-text: #fbf0ff;
    --codex-hero-bg:
        radial-gradient(circle at 75% 10%, rgba(216,168,255,0.18), transparent 34%),
        radial-gradient(circle at 15% 92%, rgba(236,72,153,0.11), transparent 36%),
        linear-gradient(135deg, rgba(28,17,52,0.98), rgba(7,4,13,0.98));
}

html[data-codex-theme="sci-fi-command"] {
    --codex-bg: #031716;
    --codex-surface: #062322;
    --codex-card: #083332;
    --codex-dark: #eaffff;
    --codex-slate: #c8ffff;
    --codex-gold: #41f3d0;
    --codex-gold-bright: #8fffee;
    --codex-muted: #8fc8c4;
    --codex-border: rgba(65,243,208,0.20);
    --codex-body-bg:
        linear-gradient(rgba(65,243,208,0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(65,243,208,0.035) 1px, transparent 1px),
        radial-gradient(circle at 82% 0%, rgba(65,243,208,0.18), transparent 30%),
        linear-gradient(135deg, #02100f, #062423 60%, #010807);
    --codex-card-bg: rgba(6,35,34,0.94);
    --codex-soft-bg: linear-gradient(135deg, rgba(8,51,50,0.96), rgba(3,18,17,0.96));
    --codex-editor-bg: #031716;
    --codex-editor-text: #eaffff;
    --codex-hero-bg:
        radial-gradient(circle at 75% 10%, rgba(65,243,208,0.18), transparent 35%),
        linear-gradient(135deg, rgba(3,24,23,0.98), rgba(1,8,7,0.98));
}

html[data-codex-theme="druid-grove"] {
    --codex-bg: #07170d;
    --codex-surface: #0d2415;
    --codex-card: #14341f;
    --codex-dark: #efffea;
    --codex-slate: #d8f7cf;
    --codex-gold: #9ccf6b;
    --codex-gold-bright: #c8ee91;
    --codex-muted: #a8c99f;
    --codex-border: rgba(156,207,107,0.19);
    --codex-body-bg:
        radial-gradient(circle at 18% 0%, rgba(156,207,107,0.18), transparent 32%),
        radial-gradient(circle at 84% 12%, rgba(34,197,94,0.14), transparent 30%),
        linear-gradient(135deg, #041009, #0f2415 58%, #020804);
    --codex-card-bg: rgba(19,50,31,0.94);
    --codex-soft-bg: linear-gradient(135deg, rgba(24,64,38,0.96), rgba(7,23,13,0.96));
    --codex-editor-bg: #07170d;
    --codex-editor-text: #efffea;
    --codex-hero-bg:
        radial-gradient(circle at 72% 10%, rgba(156,207,107,0.18), transparent 34%),
        radial-gradient(circle at 12% 92%, rgba(34,197,94,0.10), transparent 36%),
        linear-gradient(135deg, rgba(12,39,22,0.98), rgba(2,8,4,0.98));
}

html[data-codex-theme="steampunk"] {
    --codex-bg: #1d1511;
    --codex-surface: #2a2019;
    --codex-card: #3a2b20;
    --codex-dark: #fff0d8;
    --codex-slate: #f1d8b7;
    --codex-gold: #d4944b;
    --codex-gold-bright: #f0b86d;
    --codex-muted: #c6a17e;
    --codex-border: rgba(212,148,75,0.20);
    --codex-body-bg:
        radial-gradient(circle at 86% 8%, rgba(212,148,75,0.18), transparent 30%),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 38px),
        linear-gradient(135deg, #120c09, #2a1f18 58%, #090604);
    --codex-card-bg: rgba(58,43,32,0.94);
    --codex-soft-bg: linear-gradient(135deg, rgba(64,47,35,0.96), rgba(27,19,14,0.96));
    --codex-editor-bg: #1d1511;
    --codex-editor-text: #fff0d8;
    --codex-hero-bg:
        radial-gradient(circle at 75% 10%, rgba(212,148,75,0.20), transparent 34%),
        linear-gradient(135deg, rgba(47,35,27,0.98), rgba(9,6,4,0.98));
}

body {
    background: var(--codex-body-bg);
}

.codex-theme-picker {
    border: 1px solid var(--codex-border);
    border-radius: 999px;
    padding: 0.16rem 0.25rem 0.16rem 0.7rem;
    background: rgba(255,255,255,0.045);
}

.codex-theme-select {
    width: 150px;
    border-radius: 999px;
    background-color: rgba(0,0,0,0.26);
    color: var(--codex-dark);
    border-color: var(--codex-border);
    font-weight: 700;
}

.codex-theme-select option {
    background: var(--codex-surface);
    color: var(--codex-dark);
}

.codex-card,
.codex-stat,
.card,
.list-group-item {
    background: var(--codex-card-bg);
    border-color: var(--codex-border);
    color: var(--codex-dark);
}

.codex-card-soft,
.codex-pillar-button,
.codex-author-panel,
.codex-author-metrics div,
.codex-login-feature,
.codex-login-card {
    background: var(--codex-soft-bg);
    border-color: var(--codex-border);
}

.codex-topbar,
.codex-context-bar,
.codex-breadcrumb-bar,
.codex-sidebar,
.codex-workspace-bar {
    background-color: color-mix(in srgb, var(--codex-surface) 92%, transparent) !important;
    border-color: var(--codex-border);
}

.codex-sidebar-title,
.codex-gold-link,
.codex-pillar-grid .codex-card h4,
.codex-author-project-title,
.codex-login-title {
    color: var(--codex-gold-bright, var(--codex-gold));
}

.codex-muted,
.text-muted,
.codex-author-lead,
.codex-login-lead {
    color: var(--codex-muted) !important;
}

.btn-codex-gold {
    background: var(--codex-gold);
    color: #101014;
}

.btn-codex-gold:hover {
    background: var(--codex-gold-bright, var(--codex-gold));
    color: #101014;
}

.codex-editor {
    background: var(--codex-editor-bg);
    color: var(--codex-editor-text);
}

.form-control,
.form-select,
textarea {
    background-color: var(--codex-surface);
    color: var(--codex-dark);
    border-color: var(--codex-border);
}

.form-control:focus,
.form-select:focus,
textarea:focus {
    background-color: var(--codex-surface);
    color: var(--codex-dark);
    border-color: var(--codex-gold);
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--codex-gold) 22%, transparent);
}

.codex-author-hero,
.codex-login-landing {
    background: var(--codex-hero-bg);
    border-color: color-mix(in srgb, var(--codex-gold) 34%, transparent);
}

.codex-pillar-button:hover,
.codex-nav-link:hover,
.codex-sidebar .list-group-item:hover,
.codex-pillar-grid .codex-card:hover {
    border-color: color-mix(in srgb, var(--codex-gold) 44%, transparent);
    box-shadow: 0 18px 45px rgba(0,0,0,0.34), 0 0 28px color-mix(in srgb, var(--codex-gold) 12%, transparent);
}

html[data-codex-theme="sci-fi-command"] body {
    background-size: 42px 42px, 42px 42px, auto, auto;
}

/* v2.4.1 - Theme-aware left menu */
html[data-codex-theme="classic"] {
    --codex-sidebar-bg: radial-gradient(circle at top, rgba(214,184,90,0.13), transparent 38%), linear-gradient(180deg, rgba(17,24,39,0.99), rgba(10,15,26,0.99));
    --codex-sidebar-card-bg: linear-gradient(135deg, rgba(31,41,55,0.95), rgba(13,20,35,0.96));
    --codex-sidebar-link-hover: rgba(214,184,90,0.12);
    --codex-sidebar-active-bg: linear-gradient(135deg, rgba(214,184,90,0.20), rgba(31,41,55,0.72));
}

html[data-codex-theme="midnight"] {
    --codex-sidebar-bg: radial-gradient(circle at top, rgba(143,184,255,0.16), transparent 40%), linear-gradient(180deg, rgba(5,8,22,0.99), rgba(2,3,10,0.99));
    --codex-sidebar-card-bg: linear-gradient(135deg, rgba(13,22,49,0.96), rgba(4,7,20,0.98));
    --codex-sidebar-link-hover: rgba(143,184,255,0.13);
    --codex-sidebar-active-bg: linear-gradient(135deg, rgba(143,184,255,0.22), rgba(10,16,38,0.74));
}

html[data-codex-theme="old-bookstore"] {
    --codex-sidebar-bg: radial-gradient(circle at top, rgba(231,185,107,0.17), transparent 40%), linear-gradient(180deg, rgba(43,29,18,0.99), rgba(18,11,7,0.99));
    --codex-sidebar-card-bg: linear-gradient(135deg, rgba(72,46,25,0.96), rgba(31,19,11,0.98));
    --codex-sidebar-link-hover: rgba(231,185,107,0.14);
    --codex-sidebar-active-bg: linear-gradient(135deg, rgba(231,185,107,0.22), rgba(54,36,22,0.74));
}

html[data-codex-theme="fantasy-archive"] {
    --codex-sidebar-bg: radial-gradient(circle at top, rgba(216,168,255,0.17), transparent 40%), linear-gradient(180deg, rgba(23,18,38,0.99), rgba(6,4,13,0.99));
    --codex-sidebar-card-bg: linear-gradient(135deg, rgba(43,28,68,0.96), rgba(16,9,31,0.98));
    --codex-sidebar-link-hover: rgba(216,168,255,0.14);
    --codex-sidebar-active-bg: linear-gradient(135deg, rgba(216,168,255,0.23), rgba(35,25,54,0.74));
}

html[data-codex-theme="sci-fi-command"] {
    --codex-sidebar-bg: linear-gradient(rgba(65,243,208,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(65,243,208,0.04) 1px, transparent 1px), radial-gradient(circle at top, rgba(65,243,208,0.18), transparent 40%), linear-gradient(180deg, rgba(3,23,22,0.99), rgba(1,8,7,0.99));
    --codex-sidebar-card-bg: linear-gradient(135deg, rgba(8,51,50,0.96), rgba(3,18,17,0.98));
    --codex-sidebar-link-hover: rgba(65,243,208,0.14);
    --codex-sidebar-active-bg: linear-gradient(135deg, rgba(65,243,208,0.22), rgba(6,35,34,0.74));
}

html[data-codex-theme="druid-grove"] {
    --codex-sidebar-bg: radial-gradient(circle at top, rgba(156,207,107,0.17), transparent 40%), linear-gradient(180deg, rgba(13,36,21,0.99), rgba(2,8,4,0.99));
    --codex-sidebar-card-bg: linear-gradient(135deg, rgba(24,64,38,0.96), rgba(7,23,13,0.98));
    --codex-sidebar-link-hover: rgba(156,207,107,0.14);
    --codex-sidebar-active-bg: linear-gradient(135deg, rgba(156,207,107,0.22), rgba(19,50,31,0.74));
}

html[data-codex-theme="steampunk"] {
    --codex-sidebar-bg: repeating-linear-gradient(90deg, rgba(255,255,255,0.024) 0 1px, transparent 1px 34px), radial-gradient(circle at top, rgba(212,148,75,0.18), transparent 40%), linear-gradient(180deg, rgba(42,32,25,0.99), rgba(9,6,4,0.99));
    --codex-sidebar-card-bg: linear-gradient(135deg, rgba(73,53,39,0.96), rgba(27,19,14,0.98));
    --codex-sidebar-link-hover: rgba(212,148,75,0.14);
    --codex-sidebar-active-bg: linear-gradient(135deg, rgba(212,148,75,0.23), rgba(58,43,32,0.74));
}

.codex-sidebar {
    background: var(--codex-sidebar-bg) !important;
    border-right-color: color-mix(in srgb, var(--codex-gold) 34%, transparent) !important;
    box-shadow: inset -1px 0 0 color-mix(in srgb, var(--codex-gold) 12%, transparent), 18px 0 55px rgba(0,0,0,0.16);
}

.codex-sidebar-brand {
    border-bottom-color: color-mix(in srgb, var(--codex-gold) 32%, transparent) !important;
}

.codex-pillar-button {
    background: var(--codex-sidebar-card-bg) !important;
    border-color: color-mix(in srgb, var(--codex-gold) 28%, transparent) !important;
    color: var(--codex-dark) !important;
}

.codex-pillar-button:hover,
.codex-pillar-button:not(.collapsed) {
    background: var(--codex-sidebar-active-bg) !important;
    border-color: color-mix(in srgb, var(--codex-gold) 56%, transparent) !important;
}

.codex-pillar-icon-small {
    background: color-mix(in srgb, var(--codex-gold) 14%, transparent) !important;
    border-color: color-mix(in srgb, var(--codex-gold) 34%, transparent) !important;
}

.codex-nav-link {
    color: color-mix(in srgb, var(--codex-dark) 82%, transparent) !important;
}

.codex-nav-link:hover,
.codex-sidebar .list-group-item:hover {
    background: var(--codex-sidebar-link-hover) !important;
    border-color: color-mix(in srgb, var(--codex-gold) 38%, transparent) !important;
    color: var(--codex-dark) !important;
}

.codex-nav-link.active {
    background: var(--codex-sidebar-active-bg) !important;
    border-color: color-mix(in srgb, var(--codex-gold) 52%, transparent) !important;
    border-left-color: var(--codex-gold-bright, var(--codex-gold)) !important;
    color: var(--codex-dark) !important;
}

.codex-nav-link.disabled {
    color: color-mix(in srgb, var(--codex-muted) 78%, transparent) !important;
}

/* v2.4.2 - Hero/banner text colour selector */
:root {
    --codex-hero-text-theme: var(--codex-dark, #f9fafb);
    --codex-hero-text-custom: #ffffff;
    --codex-hero-text-active: var(--codex-hero-text-theme);
    --codex-hero-muted-active: color-mix(in srgb, var(--codex-hero-text-active) 78%, transparent);
}

html[data-codex-hero-text="theme"] {
    --codex-hero-text-active: var(--codex-hero-text-theme);
}

html[data-codex-hero-text="light"] {
    --codex-hero-text-active: #fff8e8;
}

html[data-codex-hero-text="dark"] {
    --codex-hero-text-active: #1b1308;
}

html[data-codex-hero-text="gold"] {
    --codex-hero-text-active: var(--codex-gold-bright, #f0cf7b);
}

html[data-codex-hero-text="custom"] {
    --codex-hero-text-active: var(--codex-hero-text-custom, #ffffff);
}

.codex-hero-text-select {
    width: 112px;
}

.codex-hero-text-custom {
    width: 2.25rem;
    height: 1.9rem;
    min-height: 1.9rem;
    padding: 0.12rem;
    border-radius: 999px;
    background: rgba(0,0,0,0.24);
}

.codex-author-hero,
.codex-study-hero,
.codex-login-landing {
    color: var(--codex-hero-text-active) !important;
}

.codex-author-hero .codex-author-project-title,
.codex-author-hero h1,
.codex-author-hero h2,
.codex-study-hero h1,
.codex-study-hero h2,
.codex-login-landing h1,
.codex-login-landing h2 {
    color: var(--codex-hero-text-active) !important;
    text-shadow: 0 2px 18px rgba(0,0,0,0.38);
}

.codex-author-hero .codex-author-lead,
.codex-author-hero p,
.codex-study-hero p,
.codex-login-landing p {
    color: var(--codex-hero-muted-active) !important;
}

.codex-author-hero .codex-kicker,
.codex-study-hero .codex-kicker,
.codex-login-landing .codex-kicker {
    color: color-mix(in srgb, var(--codex-hero-text-active) 84%, var(--codex-gold-bright) 16%) !important;
}

html[data-codex-hero-text="dark"] .codex-author-hero .codex-author-project-title,
html[data-codex-hero-text="dark"] .codex-author-hero h1,
html[data-codex-hero-text="dark"] .codex-author-hero h2,
html[data-codex-hero-text="dark"] .codex-study-hero h1,
html[data-codex-hero-text="dark"] .codex-study-hero h2,
html[data-codex-hero-text="dark"] .codex-login-landing h1,
html[data-codex-hero-text="dark"] .codex-login-landing h2 {
    text-shadow: 0 2px 18px rgba(255,255,255,0.24);
}

/* v2.5 - Premium UI Consistency */
:root {
    --codex-table-stripe: color-mix(in srgb, var(--codex-card) 86%, var(--codex-gold) 4%);
    --codex-control-bg: color-mix(in srgb, var(--codex-surface) 92%, #000 8%);
    --codex-soft-panel: linear-gradient(135deg, color-mix(in srgb, var(--codex-card) 88%, transparent), color-mix(in srgb, var(--codex-surface) 92%, transparent));
}

.codex-page {
    padding: clamp(1rem, 2vw, 2rem) clamp(0.75rem, 2vw, 1.75rem) 6rem;
}

.codex-page > .d-flex:first-child,
.codex-page > .row:first-child,
.codex-page-header,
.codex-section-header {
    position: relative;
}

.codex-page > .d-flex:first-child:not(.codex-reader-toolbar),
.codex-page-header,
.codex-section-header {
    padding: 1.15rem;
    margin-bottom: 1.25rem;
    border: 1px solid color-mix(in srgb, var(--codex-gold) 22%, transparent);
    border-radius: calc(var(--codex-radius) + 4px);
    background: radial-gradient(circle at top left, color-mix(in srgb, var(--codex-gold) 12%, transparent), transparent 42%), var(--codex-soft-panel);
    box-shadow: 0 18px 48px rgba(0,0,0,0.22);
}

.codex-page h1,
.codex-page h2,
.codex-page h3 {
    letter-spacing: -0.035em;
}

.card,
.codex-card,
.codex-card-soft,
.codex-stat,
.modal-content,
.dropdown-menu,
.offcanvas,
.toast,
.accordion-item {
    background: var(--codex-soft-panel) !important;
    border: 1px solid color-mix(in srgb, var(--codex-border) 72%, var(--codex-gold) 10%) !important;
    color: var(--codex-dark) !important;
    backdrop-filter: blur(14px);
}

.card-header,
.card-footer,
.modal-header,
.modal-footer,
.accordion-button {
    background: color-mix(in srgb, var(--codex-surface) 86%, transparent) !important;
    border-color: var(--codex-border) !important;
    color: var(--codex-dark) !important;
}

.accordion-button:not(.collapsed) {
    color: var(--codex-gold-bright, var(--codex-gold)) !important;
    box-shadow: inset 0 -1px 0 var(--codex-border);
}

.table,
.table > :not(caption) > * > * {
    --bs-table-color: var(--codex-dark);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--codex-border);
    color: var(--codex-dark) !important;
    border-color: var(--codex-border) !important;
}

.table thead th,
.table thead td {
    color: var(--codex-gold-bright, var(--codex-gold)) !important;
    background: color-mix(in srgb, var(--codex-surface) 90%, transparent) !important;
    border-bottom-color: color-mix(in srgb, var(--codex-gold) 28%, transparent) !important;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.075em;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-bg-type: var(--codex-table-stripe);
}

.table-hover > tbody > tr:hover > * {
    --bs-table-bg-state: color-mix(in srgb, var(--codex-gold) 12%, transparent);
}

.form-control,
.form-select,
textarea,
.input-group-text {
    background-color: var(--codex-control-bg) !important;
    color: var(--codex-dark) !important;
    border-color: color-mix(in srgb, var(--codex-border) 78%, var(--codex-gold) 10%) !important;
}

.form-control::placeholder,
textarea::placeholder {
    color: color-mix(in srgb, var(--codex-muted) 78%, transparent) !important;
}

.form-label,
.col-form-label,
legend {
    color: color-mix(in srgb, var(--codex-dark) 88%, var(--codex-gold) 12%);
    font-weight: 700;
}

.btn,
.badge,
.form-control,
.form-select,
.input-group-text {
    border-radius: 999px;
}

textarea.form-control,
.codex-editor,
.card,
.modal-content,
.table-responsive,
.list-group-item,
.alert {
    border-radius: var(--codex-radius);
}

.btn-outline-light,
.btn-outline-secondary,
.btn-outline-primary,
.btn-outline-dark {
    color: var(--codex-dark) !important;
    border-color: color-mix(in srgb, var(--codex-gold) 34%, transparent) !important;
    background: color-mix(in srgb, var(--codex-surface) 64%, transparent) !important;
}

.btn-outline-light:hover,
.btn-outline-secondary:hover,
.btn-outline-primary:hover,
.btn-outline-dark:hover {
    color: #101014 !important;
    background: var(--codex-gold-bright, var(--codex-gold)) !important;
    border-color: var(--codex-gold-bright, var(--codex-gold)) !important;
}

.btn-primary,
.btn-success,
.btn-info,
.btn-warning {
    border: 0 !important;
    color: #101014 !important;
    background: var(--codex-gold-bright, var(--codex-gold)) !important;
    box-shadow: 0 10px 28px color-mix(in srgb, var(--codex-gold) 18%, transparent);
}

.btn-danger {
    border: 0 !important;
    box-shadow: 0 10px 28px rgba(220, 53, 69, 0.18);
}

.alert {
    border-color: color-mix(in srgb, var(--codex-gold) 22%, transparent) !important;
    background: color-mix(in srgb, var(--codex-card) 86%, transparent) !important;
    color: var(--codex-dark) !important;
}

.alert-success { border-left: 4px solid #22c55e !important; }
.alert-info { border-left: 4px solid #38bdf8 !important; }
.alert-warning { border-left: 4px solid #f59e0b !important; }
.alert-danger { border-left: 4px solid #ef4444 !important; }

.badge.bg-secondary,
.badge.text-bg-secondary {
    background: color-mix(in srgb, var(--codex-muted) 34%, transparent) !important;
    color: var(--codex-dark) !important;
}

.badge.bg-primary,
.badge.text-bg-primary,
.badge.bg-warning,
.badge.text-bg-warning {
    background: color-mix(in srgb, var(--codex-gold) 82%, #fff 8%) !important;
    color: #101014 !important;
}

.list-group-item,
.dropdown-item {
    color: var(--codex-dark) !important;
}

.dropdown-item:hover,
.dropdown-item:focus,
.list-group-item:hover {
    background: color-mix(in srgb, var(--codex-gold) 13%, transparent) !important;
    color: var(--codex-dark) !important;
}

.codex-empty-state,
.codex-page .card:has(.codex-muted:only-child),
.codex-page .card:has(.text-muted:only-child) {
    border-style: dashed !important;
    border-color: color-mix(in srgb, var(--codex-gold) 28%, transparent) !important;
    background: radial-gradient(circle at center, color-mix(in srgb, var(--codex-gold) 8%, transparent), transparent 58%), var(--codex-soft-panel) !important;
}

.codex-empty-state {
    text-align: center;
    padding: clamp(1.5rem, 4vw, 3rem);
}

.codex-empty-state h3,
.codex-empty-state h4,
.codex-empty-state h5 {
    color: var(--codex-gold-bright, var(--codex-gold));
}

.codex-topbar,
.codex-context-bar,
.codex-breadcrumb-bar,
.codex-workspace-bar {
    box-shadow: 0 12px 36px rgba(0,0,0,0.22);
}

.codex-topbar .form-select,
.codex-topbar .form-control,
.codex-context-bar .form-select {
    background-color: color-mix(in srgb, var(--codex-surface) 82%, #000 18%) !important;
    color: var(--codex-dark) !important;
}

.codex-workspace-bar {
    color: var(--codex-dark);
}

.codex-workspace-segment {
    border-color: var(--codex-border) !important;
}

.codex-workspace-label {
    color: var(--codex-gold-bright, var(--codex-gold)) !important;
}

.codex-workspace-link,
a:not(.btn):not(.codex-nav-link):not(.navbar-brand):not(.codex-sidebar-title) {
    color: var(--codex-gold-bright, var(--codex-gold));
}

.codex-workspace-link:hover,
a:not(.btn):not(.codex-nav-link):not(.navbar-brand):not(.codex-sidebar-title):hover {
    color: color-mix(in srgb, var(--codex-gold-bright, var(--codex-gold)) 74%, #fff 26%);
}

@media (max-width: 991.98px) {
    .codex-topbar .container-fluid {
        align-items: flex-start;
    }

    .codex-context-bar .container-fluid,
    .codex-breadcrumb-bar .container-fluid {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .codex-sidebar {
        min-height: auto !important;
        border-right: 0 !important;
        border-bottom: 1px solid color-mix(in srgb, var(--codex-gold) 26%, transparent) !important;
    }

    .codex-sidebar-brand {
        justify-content: center;
        text-align: center;
    }

    .codex-pillar-nav {
        display: grid;
        gap: 0.75rem;
    }

    .codex-page > .d-flex:first-child:not(.codex-reader-toolbar),
    .codex-page-header,
    .codex-section-header {
        padding: 1rem;
    }

    .table-responsive {
        border: 1px solid var(--codex-border);
        background: var(--codex-soft-panel);
    }
}

@media (max-width: 575.98px) {
    .codex-page {
        padding-left: 0.65rem;
        padding-right: 0.65rem;
    }

    .codex-topbar .btn,
    .codex-context-bar .btn,
    .codex-breadcrumb-bar .btn {
        width: 100%;
    }

    .codex-topbar .d-flex.align-items-center.gap-2.flex-wrap.justify-content-end.ms-auto {
        width: 100%;
        justify-content: stretch !important;
    }

    .codex-workspace-bar {
        display: none;
    }
}

/* v2.6 Book Identity */
.codex-book-hero {
    --book-accent: var(--codex-gold);
    --book-title-color: var(--codex-hero-text, #f8f1dc);
    position: relative;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    border-color: color-mix(in srgb, var(--book-accent) 34%, transparent) !important;
    box-shadow: 0 22px 60px color-mix(in srgb, var(--book-accent) 14%, rgba(0,0,0,.48));
}

.codex-book-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 18% 20%, color-mix(in srgb, var(--book-accent) 24%, transparent), transparent 36%),
        linear-gradient(135deg, color-mix(in srgb, var(--book-accent) 14%, transparent), transparent 56%);
    opacity: .9;
}

.codex-book-hero > * {
    position: relative;
    z-index: 1;
}

.codex-book-hero-title,
.codex-book-hero .lead,
.codex-book-hero h1,
.codex-book-hero h2 {
    color: var(--book-title-color) !important;
    text-shadow: 0 4px 24px rgba(0,0,0,.48);
}

.codex-book-mood {
    display: inline-flex;
    width: fit-content;
    border: 1px solid color-mix(in srgb, var(--book-accent) 48%, transparent);
    border-radius: 999px;
    padding: .35rem .75rem;
    color: var(--book-title-color);
    background: rgba(0,0,0,.26);
    backdrop-filter: blur(10px);
}

.codex-book-cover-card {
    border: 1px solid color-mix(in srgb, var(--book-accent) 42%, transparent);
    border-radius: 22px;
    padding: .75rem;
    background: linear-gradient(145deg, color-mix(in srgb, var(--book-accent) 16%, transparent), rgba(0,0,0,.32));
    box-shadow: 0 18px 48px rgba(0,0,0,.35);
}

.codex-book-cover-card img {
    display: block;
    width: 100%;
    max-height: 420px;
    object-fit: cover;
    border-radius: 16px;
}

.codex-book-identity-panel {
    border-color: color-mix(in srgb, var(--book-accent, var(--codex-gold)) 30%, transparent) !important;
}

.codex-book-reader {
    --book-accent: var(--codex-gold);
    --book-title-color: var(--codex-hero-text, #f8f1dc);
    background-size: cover !important;
    background-position: center !important;
}

.codex-book-reader .modal-header,
.codex-book-reader .reader-edition-header,
.codex-book-reader .studio-reading-header {
    border-bottom-color: color-mix(in srgb, var(--book-accent) 38%, transparent) !important;
}

.codex-book-reader h1,
.codex-book-reader h5,
.codex-book-reader .modal-title {
    color: var(--book-title-color) !important;
}

.codex-book-reader .reader-edition-rule,
.codex-book-reader .studio-reading-rule,
.codex-book-reader .reader-edition-progress-bar,
.codex-book-reader .studio-reading-progress-bar {
    background: var(--book-accent) !important;
}

.form-control-color {
    width: 100%;
    min-height: 42px;
    padding: .35rem;
    border-radius: 999px;
}

@media (max-width: 991.98px) {
    .codex-book-cover-card img {
        max-height: 320px;
    }
}

.codex-book-card {
    --book-accent: var(--codex-gold);
    --book-title-color: var(--codex-hero-text, #f8f1dc);
    overflow: hidden;
    background-size: cover !important;
    background-position: center !important;
    border-color: color-mix(in srgb, var(--book-accent) 34%, transparent) !important;
}

.codex-book-card::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, transparent, rgba(0,0,0,.22));
}

.codex-book-card > * {
    position: relative;
    z-index: 1;
}

.codex-book-card-title {
    color: var(--book-title-color) !important;
}

.codex-book-card-cover {
    height: 190px;
    padding: .75rem .75rem 0;
}

.codex-book-card-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 16px;
    border: 1px solid color-mix(in srgb, var(--book-accent) 38%, transparent);
}

/* v2.6.1 - Author's Desk active book hero image fix */
.codex-author-hero {
    background-size: cover;
    background-position: center;
    border-color: color-mix(in srgb, var(--book-accent, var(--codex-gold)) 45%, transparent);
}

.codex-author-hero .codex-author-project-title {
    color: var(--book-title-color, var(--codex-hero-text, #f8f1dc));
}

/* v2.6.3 - Robust Author's Desk uploaded hero banner rendering */
.codex-author-hero.has-book-hero {
    background:
        linear-gradient(90deg, rgba(0,0,0,0.62), rgba(0,0,0,0.26)),
        var(--active-book-hero-image) center center / cover no-repeat !important;
}

.codex-author-hero.has-book-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 18% 18%, color-mix(in srgb, var(--book-accent, var(--codex-gold)) 22%, transparent), transparent 36%),
        linear-gradient(90deg, rgba(0,0,0,0.20), transparent 55%);
    z-index: 0;
}

.codex-author-hero.has-book-hero > * {
    position: relative;
    z-index: 1;
}


/* v2.6.6 - Hero banner privacy + image scaling fix */
.codex-author-hero,
.codex-book-hero,
.codex-studio-hero,
.codex-reader-hero {
    background-size: cover;
    background-position: center center;
}

.codex-author-hero.has-book-hero {
    background-color: var(--codex-bg, #050814) !important;
    background-image:
        linear-gradient(90deg, rgba(0,0,0,0.58), rgba(0,0,0,0.18)),
        var(--active-book-hero-image) !important;
    background-size: cover, contain !important;
    background-position: center center, center center !important;
    background-repeat: no-repeat, no-repeat !important;
    min-height: 320px;
}

.codex-book-hero.has-book-hero,
.codex-studio-hero.has-book-hero,
.codex-reader-hero.has-book-hero {
    background-color: var(--codex-bg, #050814) !important;
    background-size: cover, contain !important;
    background-position: center center, center center !important;
    background-repeat: no-repeat, no-repeat !important;
}

@media (max-width: 768px) {
    .codex-author-hero.has-book-hero {
        min-height: 260px;
        background-size: cover, cover !important;
    }
}

/* v2.7 - Personal Author's Desk dashboard cards */
.codex-today-progress-panel {
    overflow: hidden;
}

.codex-dashboard-badge {
    background: color-mix(in srgb, var(--codex-gold) 18%, transparent);
    border: 1px solid color-mix(in srgb, var(--codex-gold) 35%, transparent);
    color: var(--codex-gold);
}

.codex-progress-ring-wrap {
    display: flex;
    justify-content: center;
    padding: .75rem 0;
}

.codex-progress-ring {
    --ring-progress: 0deg;
    width: 178px;
    height: 178px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background:
        conic-gradient(var(--book-accent, var(--codex-gold)) var(--ring-progress), rgba(255,255,255,.11) 0deg),
        radial-gradient(circle at 35% 25%, rgba(255,255,255,.18), transparent 35%);
    box-shadow: 0 18px 38px rgba(0,0,0,.28);
}

.codex-progress-ring-inner {
    width: 132px;
    height: 132px;
    border-radius: 999px;
    display: grid;
    place-content: center;
    text-align: center;
    background: color-mix(in srgb, var(--codex-panel, #111827) 88%, #000 12%);
    border: 1px solid rgba(255,255,255,.12);
}

.codex-progress-ring-inner strong {
    display: block;
    font-size: 1.65rem;
    line-height: 1;
    color: var(--codex-heading, #fff);
}

.codex-progress-ring-inner span {
    display: block;
    margin-top: .35rem;
    font-size: .78rem;
    color: var(--codex-muted, rgba(255,255,255,.68));
}

.codex-dashboard-stat-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.codex-dashboard-stat-grid > div,
.codex-dashboard-stat-list > div {
    padding: .85rem;
    border-radius: 16px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.1);
}

.codex-dashboard-stat-grid strong,
.codex-dashboard-stat-list strong {
    display: block;
    color: var(--codex-heading, #fff);
    font-size: 1.05rem;
}

.codex-dashboard-stat-grid span,
.codex-dashboard-stat-list span {
    display: block;
    color: var(--codex-muted, rgba(255,255,255,.68));
    font-size: .78rem;
}

.codex-dashboard-stat-list {
    display: grid;
    gap: .65rem;
}

.codex-dashboard-stat-list > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.codex-dashboard-stat-list strong {
    font-size: 1.2rem;
}

.codex-dashboard-personalise-bar {
    padding: 1rem 1.15rem;
    border-radius: 20px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.09);
}

 .codex-dashboard-card {
    position: relative;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.codex-dashboard-card-wrap:hover .codex-dashboard-card {
    border-color: color-mix(in srgb, var(--book-accent, var(--codex-gold)) 34%, transparent);
    box-shadow: 0 18px 45px rgba(0,0,0,.22);
    transform: translateY(-2px);
}

@media (max-width: 767.98px) {
    .codex-progress-ring {
        width: 150px;
        height: 150px;
    }

    .codex-progress-ring-inner {
        width: 112px;
        height: 112px;
    }
}

/* v2.8 Personal Library */
.library-page { --library-wood: #56351f; --library-wood-light: #8b5a32; }
.library-wood-shelf { display:flex; align-items:flex-end; gap:14px; flex-wrap:wrap; padding:28px 24px 38px; min-height:340px; border-radius:18px; background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.15)), repeating-linear-gradient(90deg,var(--library-wood) 0 48px,var(--library-wood-light) 49px 52px); box-shadow: inset 0 -18px 0 #3e2516, inset 0 -22px 0 rgba(255,255,255,.12), 0 18px 30px rgba(0,0,0,.2); }
.library-book { position:relative; }
.library-spine { position:relative; display:block; width:72px; height:268px; color:#fff; text-decoration:none; border-radius:5px 5px 2px 2px; transform-origin:bottom center; transition:transform .2s ease, filter .2s ease; box-shadow:5px 5px 10px rgba(0,0,0,.35); overflow:hidden; background:hsl(var(--spine-hue) 42% 30%); }
.library-spine:hover { transform:translateY(-10px); filter:brightness(1.08); color:#fff; }
.library-cover { width:100%; height:100%; object-fit:cover; display:block; }
.library-cover-placeholder { display:grid; place-items:center; font-family:Georgia,serif; font-size:3rem; background:linear-gradient(145deg,hsl(var(--spine-hue) 48% 39%),hsl(var(--spine-hue) 44% 22%)); }
.library-spine-face { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:space-between; align-items:center; padding:14px 7px; text-align:center; background:linear-gradient(90deg,rgba(0,0,0,.35),rgba(255,255,255,.08) 45%,rgba(0,0,0,.28)); writing-mode:vertical-rl; transform:rotate(180deg); text-shadow:0 1px 3px #000; opacity:0; transition:opacity .2s ease; }
.library-spine:not(:has(.library-cover-placeholder)) .library-spine-face { opacity:0; }
.library-spine:hover .library-spine-face, .library-spine:has(.library-cover-placeholder) .library-spine-face { opacity:1; }
.library-spine-face strong { font-family:Georgia,serif; letter-spacing:.04em; }
.library-spine-face small { opacity:.8; }
.library-book-meta { display:none; }
.library-grid-view .library-wood-shelf { background:none; box-shadow:none; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); align-items:stretch; gap:22px; }
.library-grid-view .library-book { display:flex; flex-direction:column; border:1px solid var(--codex-border,rgba(255,255,255,.14)); background:var(--codex-card-bg,rgba(255,255,255,.06)); border-radius:14px; padding:14px; box-shadow:0 10px 24px rgba(0,0,0,.13); }
.library-grid-view .library-spine { width:100%; height:280px; transform:none; box-shadow:none; border-radius:9px; }
.library-grid-view .library-spine:hover { transform:translateY(-3px); }
.library-grid-view .library-spine-face { display:none; }
.library-grid-view .library-book-meta { display:block; padding-top:14px; }
.library-grid-view .library-book-meta h5 { margin-bottom:.2rem; }
.library-grid-view .library-book-meta p { margin-bottom:.35rem; opacity:.75; }
.library-rating { color:#d4af37; letter-spacing:.08em; }
.library-cover-preview { max-height:360px; width:100%; object-fit:contain; background:rgba(0,0,0,.12); }
@media (max-width:576px){.library-wood-shelf{gap:8px;padding:20px 12px 34px}.library-spine{width:56px;height:220px}.library-grid-view .library-wood-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}.library-grid-view .library-spine{height:230px}}

/* v2.9 ISBN Scanner */
.isbn-scanner-page .eyebrow{font-size:.72rem;letter-spacing:.16em;font-weight:800;color:var(--codex-accent,#c9a45c)}
.scanner-card{border:1px solid color-mix(in srgb,var(--codex-accent,#c9a45c) 35%,transparent)}
.scanner-stage{position:relative;min-height:500px;background:radial-gradient(circle at 50% 45%,#23302f 0,#101817 55%,#080d0d 100%);overflow:hidden;display:grid;place-items:center}
.scanner-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease}
.scanner-stage.is-live video{opacity:1}.scanner-stage.is-live .scanner-placeholder{opacity:0;pointer-events:none}
.scanner-placeholder{position:relative;z-index:2;text-align:center;max-width:340px;padding:2rem;color:#e9e0ce;transition:opacity .25s ease}.scanner-placeholder strong,.scanner-placeholder span{display:block}.scanner-placeholder span{opacity:.72;margin-top:.6rem}.scanner-book-glyph{font-size:4rem;color:#d6b46d;text-shadow:0 0 28px rgba(214,180,109,.35)}
.scanner-vignette{position:absolute;inset:0;z-index:3;background:radial-gradient(ellipse at center,transparent 25%,rgba(0,0,0,.55) 100%);pointer-events:none}
.scanner-frame{position:absolute;z-index:4;width:min(78%,620px);aspect-ratio:1.7/1;pointer-events:none}
.scanner-frame .corner{position:absolute;width:56px;height:56px;border-color:#e2bc6d;filter:drop-shadow(0 0 8px rgba(226,188,109,.75))}.corner-tl{left:0;top:0;border-left:4px solid;border-top:4px solid}.corner-tr{right:0;top:0;border-right:4px solid;border-top:4px solid}.corner-bl{left:0;bottom:0;border-left:4px solid;border-bottom:4px solid}.corner-br{right:0;bottom:0;border-right:4px solid;border-bottom:4px solid}
.scanner-line{position:absolute;left:4%;right:4%;height:3px;top:8%;background:linear-gradient(90deg,transparent,#fff1b6 15%,#d3a94f 50%,#fff1b6 85%,transparent);box-shadow:0 0 10px #e8c46e,0 0 28px rgba(232,196,110,.85);animation:codex-scan-line 2.4s ease-in-out infinite}.scanner-line:after{content:"";position:absolute;left:10%;right:10%;top:-14px;height:30px;background:radial-gradient(ellipse,rgba(232,196,110,.22),transparent 70%)}
@keyframes codex-scan-line{0%,100%{top:8%;opacity:.65}50%{top:90%;opacity:1}}
.scanner-instruction{position:absolute;z-index:5;bottom:24px;padding:.55rem 1rem;border-radius:999px;background:rgba(5,10,10,.72);border:1px solid rgba(226,188,109,.35);color:#f5e7c6;backdrop-filter:blur(8px)}
.scanner-success{position:absolute;z-index:7;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(7,20,14,.86);color:#eaffef;opacity:0;pointer-events:none;transform:scale(.98);transition:.25s ease}.scanner-success.is-visible{opacity:1;transform:scale(1)}.scanner-success-mark{display:grid;place-items:center;width:86px;height:86px;border-radius:50%;font-size:3rem;background:#2d9c5b;box-shadow:0 0 38px rgba(63,210,116,.5);margin-bottom:1rem}.scanner-success strong{font-size:1.35rem}.scanner-success span:last-child{margin-top:.35rem;opacity:.8;letter-spacing:.08em}
.scanner-stage.is-detected .scanner-frame{filter:hue-rotate(75deg)}
.athena-lookup-card{background:linear-gradient(145deg,color-mix(in srgb,var(--codex-card-bg,#17191c) 94%,#76602c 6%),var(--codex-card-bg,#17191c))}.athena-orb{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;font-family:Georgia,serif;font-weight:700;font-size:1.45rem;color:#1a160d;background:radial-gradient(circle at 35% 30%,#fff0b7,#c69c46 65%,#6f4f1d);box-shadow:0 0 26px rgba(198,156,70,.34)}
.lookup-steps{display:grid;gap:.75rem;margin-top:1.25rem}.lookup-steps>div{position:relative;display:grid;grid-template-columns:38px 1fr 18px;align-items:center;gap:.8rem;padding:.85rem;border-radius:.75rem;border:1px solid color-mix(in srgb,currentColor 12%,transparent);opacity:.58;transition:.25s ease}.lookup-steps>div>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--codex-accent,#c9a45c) 18%,transparent);font-weight:800}.lookup-steps strong,.lookup-steps small{display:block}.lookup-steps small{opacity:.68}.lookup-steps i{width:10px;height:10px;border-radius:50%;background:currentColor;opacity:.2}.lookup-steps .is-active{opacity:1;border-color:color-mix(in srgb,var(--codex-accent,#c9a45c) 55%,transparent);transform:translateX(4px)}.lookup-steps .is-active i{background:var(--codex-accent,#c9a45c);opacity:1;box-shadow:0 0 12px var(--codex-accent,#c9a45c);animation:lookup-pulse 1s infinite}.lookup-steps .is-complete{opacity:1}.lookup-steps .is-complete i{background:#42b96d;opacity:1}.lookup-steps .is-error i{background:#d85a5a;opacity:1}@keyframes lookup-pulse{50%{transform:scale(1.6);opacity:.45}}
.book-reveal-card{animation:book-reveal .55s cubic-bezier(.2,.8,.2,1)}@keyframes book-reveal{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}.book-reveal-layout{display:grid;grid-template-columns:132px 1fr;gap:1.25rem;align-items:center}.book-reveal-cover-wrap{perspective:800px}.book-reveal-cover{display:block;width:132px;height:198px;object-fit:cover;border-radius:4px 10px 10px 4px;box-shadow:-8px 10px 24px rgba(0,0,0,.35);animation:book-tilt .65s ease both}@keyframes book-tilt{from{opacity:0;transform:rotateY(-35deg) translateX(-18px)}to{opacity:1;transform:rotateY(-7deg)}}.book-reveal-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#5d3827,#24150f);color:#e9c878;font-family:Georgia,serif;font-weight:700;letter-spacing:.12em;border:1px solid #8a6238}
@media(max-width:767.98px){.scanner-stage{min-height:390px}.scanner-frame{width:88%;aspect-ratio:1.55/1}.book-reveal-layout{grid-template-columns:96px 1fr}.book-reveal-cover{width:96px;height:144px}}
@media(prefers-reduced-motion:reduce){.scanner-line,.lookup-steps .is-active i,.book-reveal-card,.book-reveal-cover{animation:none!important}}

/* v3.0 Personal Library fullscreen and Pixel camera reliability */
body.codex-library-mode{overflow-x:hidden}
.codex-library-fullscreen-shell{width:100%;min-height:calc(100vh - 64px);padding:0 0 2rem;background:var(--codex-page-bg,var(--bs-body-bg))}
.library-fullscreen-page{max-width:none!important;width:100%}
.library-nav-bar{position:sticky;top:0;z-index:1010;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid color-mix(in srgb,var(--codex-accent,#c9a45c) 42%,transparent);border-radius:16px;background:color-mix(in srgb,var(--codex-sidebar-bg,#16120f) 92%,transparent);box-shadow:0 12px 30px rgba(0,0,0,.2);backdrop-filter:blur(14px)}
.library-nav-brand{display:flex;align-items:center;gap:.8rem;color:#fff}.library-nav-brand strong,.library-nav-brand small{display:block}.library-nav-brand small{opacity:.65;font-size:.76rem}.library-nav-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--codex-accent,#c9a45c) 18%,transparent);border:1px solid color-mix(in srgb,var(--codex-accent,#c9a45c) 50%,transparent)}
.library-nav-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.library-heading-row{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap}.library-count-badge{padding:.45rem .8rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--codex-accent,#c9a45c) 40%,transparent);background:color-mix(in srgb,var(--codex-card-bg,#fff) 92%,transparent);font-weight:700}
.library-search-bar{position:relative;z-index:2}.codex-library-mode .library-wood-shelf{width:100%;max-width:none}.codex-library-mode .library-shelf-view .library-wood-shelf{grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:1rem .65rem;padding:1.25rem 1.2rem 2.4rem}.codex-library-mode .library-grid-view .library-wood-shelf{grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:1.25rem}
.scanner-camera-select{width:auto;min-width:190px;max-width:310px}.scanner-stage.is-camera-loading:before{content:"Starting camera…";position:absolute;z-index:8;inset:auto 50% 50% auto;transform:translate(50%,50%);padding:.65rem 1rem;border-radius:999px;background:rgba(0,0,0,.72);color:#fff;border:1px solid rgba(226,188,109,.45)}
.scanner-stage video{background:#050707}.scanner-stage.is-live video{opacity:1!important;visibility:visible!important}
@media(max-width:991.98px){.library-nav-bar{align-items:flex-start}.library-nav-actions{width:100%;justify-content:flex-start}.library-heading-row{align-items:flex-start}.codex-library-mode .library-shelf-view .library-wood-shelf{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:.75rem .45rem;padding:.9rem .75rem 2rem}}
@media(max-width:575.98px){.library-nav-bar{position:relative;top:auto}.library-nav-actions .btn{flex:1 1 auto}.scanner-camera-select{width:100%;max-width:none}.scanner-stage video{object-fit:contain}.codex-library-mode .library-shelf-view .library-wood-shelf{grid-template-columns:repeat(auto-fill,minmax(62px,1fr))}}

/* v3.0 Pixel camera, camera selector and zoom controls */
.scanner-zoom-controls{display:inline-flex;align-items:center;gap:.45rem;padding:.25rem .4rem;border:1px solid color-mix(in srgb,var(--codex-accent,#c9a45c) 28%,transparent);border-radius:10px;background:color-mix(in srgb,var(--codex-card-bg,#fff) 88%,transparent)}
.scanner-zoom-controls #zoomValue{min-width:3.25rem;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.scanner-zoom-controls .btn{min-width:2.25rem;font-size:1.15rem;line-height:1}
.codex-library-fullscreen-shell{width:100%;min-height:calc(100vh - 110px);padding:0;margin:0}
body.codex-library-mode .codex-breadcrumb-bar{display:none}
body.codex-library-mode .codex-topbar{position:relative}
@media(max-width:575.98px){.scanner-zoom-controls{width:100%;justify-content:center}.scanner-camera-select{flex:1 1 100%}}

/* v3.1 Personal Library series, sorting, theme inheritance and real shelves */
.library-page {
    --library-wood: #56351f;
    --library-wood-light: #8b5a32;
    --library-wood-dark: #2d190e;
    --library-shelf-edge: #a76d38;
    --library-room-bg: color-mix(in srgb, var(--codex-surface, #16120f) 92%, black 8%);
    color: var(--codex-dark);
}

html[data-codex-theme="midnight"] .library-page {
    --library-wood: #1d2744;
    --library-wood-light: #31446f;
    --library-wood-dark: #090e1d;
    --library-shelf-edge: #506da8;
}
html[data-codex-theme="old-bookstore"] .library-page {
    --library-wood: #56351f;
    --library-wood-light: #8b5a32;
    --library-wood-dark: #2d190e;
    --library-shelf-edge: #b47a42;
}
html[data-codex-theme="fantasy-archive"] .library-page {
    --library-wood: #382453;
    --library-wood-light: #60427f;
    --library-wood-dark: #160d24;
    --library-shelf-edge: #8d67b3;
}
html[data-codex-theme="sci-fi-command"] .library-page {
    --library-wood: #0c3b3b;
    --library-wood-light: #17615e;
    --library-wood-dark: #031514;
    --library-shelf-edge: #2c8f88;
}
html[data-codex-theme="druid-grove"] .library-page {
    --library-wood: #29482d;
    --library-wood-light: #4c7447;
    --library-wood-dark: #102012;
    --library-shelf-edge: #739566;
}
html[data-codex-theme="steampunk"] .library-page {
    --library-wood: #543b29;
    --library-wood-light: #896343;
    --library-wood-dark: #24170f;
    --library-shelf-edge: #b48351;
}

.codex-library-fullscreen-shell,
body.codex-library-mode {
    background: var(--codex-body-bg) !important;
    color: var(--codex-dark);
}

.library-nav-bar {
    background: color-mix(in srgb, var(--codex-sidebar-bg, #16120f) 96%, transparent) !important;
    color: var(--codex-dark);
}
.library-nav-brand { color: var(--codex-dark) !important; }
.library-nav-actions .btn-outline-light {
    color: var(--codex-dark);
    border-color: color-mix(in srgb, var(--codex-gold) 38%, transparent);
}
.library-nav-actions .btn-outline-light:hover {
    color: var(--codex-dark);
    background: color-mix(in srgb, var(--codex-gold) 14%, transparent);
    border-color: var(--codex-gold);
}

.library-shelf-section {
    margin-bottom: 2.5rem;
    padding: 1rem 1rem 1.35rem;
    border: 1px solid var(--codex-border);
    border-radius: 20px;
    background: color-mix(in srgb, var(--codex-card-bg) 94%, transparent);
    box-shadow: 0 18px 45px rgba(0,0,0,.14);
}
.library-shelf-heading,
.library-series-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
}
.library-shelf-heading { padding: .3rem .35rem 1rem; }
.library-shelf-heading h2,
.library-series-heading h3 { margin: 0; color: var(--codex-dark); }
.library-shelf-heading h2 { font-family: Georgia, serif; }
.library-shelf-label,
.library-series-kicker {
    display: block;
    margin-bottom: .18rem;
    color: var(--codex-gold-bright, var(--codex-gold));
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .16em;
}
.library-series-group + .library-series-group { margin-top: 1.3rem; }
.library-series-heading { padding: 0 .6rem .55rem; }
.library-series-heading h3 { font-size: 1rem; font-weight: 750; }
.library-series-count {
    padding: .25rem .55rem;
    border: 1px solid var(--codex-border);
    border-radius: 999px;
    color: var(--codex-muted);
    font-size: .72rem;
}

.library-wood-shelf {
    position: relative;
    display: block;
    min-height: 0;
    padding: 20px 18px 30px;
    overflow: visible;
    border: 0;
    border-radius: 12px 12px 4px 4px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.18)),
        repeating-linear-gradient(90deg, var(--library-wood) 0 54px, var(--library-wood-light) 55px 58px);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 14px 24px rgba(0,0,0,.13);
}
.library-books-row {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 12px;
    min-height: 275px;
}
.library-shelf-plank {
    position: absolute;
    left: -8px;
    right: -8px;
    bottom: -5px;
    height: 26px;
    border-radius: 3px 3px 8px 8px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.16), transparent 16%),
        linear-gradient(180deg, var(--library-shelf-edge), var(--library-wood) 34%, var(--library-wood-dark));
    box-shadow:
        0 8px 0 var(--library-wood-dark),
        0 13px 18px rgba(0,0,0,.38),
        inset 0 -3px 0 rgba(0,0,0,.25),
        inset 0 1px 0 rgba(255,255,255,.18);
}
.library-shelf-plank span {
    position: absolute;
    inset: 5px 6% auto;
    height: 2px;
    opacity: .3;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.7), transparent);
}
.library-book { flex: 0 0 auto; }
.library-volume-badge {
    position: absolute;
    z-index: 3;
    top: 5px;
    right: 5px;
    min-width: 25px;
    padding: .18rem .3rem;
    border-radius: 999px;
    background: rgba(10,8,6,.78);
    color: #fff4cf;
    font-size: .62rem;
    font-weight: 800;
    text-align: center;
    box-shadow: 0 2px 8px rgba(0,0,0,.35);
}
.library-series-meta {
    margin-bottom: .4rem;
    color: var(--codex-gold-bright, var(--codex-gold));
    font-size: .78rem;
    font-weight: 700;
}
.library-book-blurb {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    margin: .55rem 0;
    color: var(--codex-muted) !important;
    font-size: .82rem;
    line-height: 1.45;
}

.library-grid-view .library-shelf-section { padding: 1rem; }
.library-grid-view .library-series-group { margin-bottom: 1.5rem; }
.library-grid-view .library-wood-shelf {
    padding: 0;
    background: none;
    box-shadow: none;
}
.library-grid-view .library-books-row {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    align-items: stretch;
    gap: 1.2rem;
    min-height: 0;
}
.library-grid-view .library-shelf-plank { display: none; }
.library-grid-view .library-book {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 14px;
    border: 1px solid var(--codex-border);
    border-radius: 14px;
    background: var(--codex-card-bg);
    box-shadow: 0 10px 24px rgba(0,0,0,.13);
}
.library-grid-view .library-spine { width: 100%; height: 280px; }
.library-grid-view .library-book-meta { display: block; padding-top: 14px; }
.book-reveal-blurb {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    color: var(--codex-muted);
    font-size: .86rem;
    line-height: 1.5;
}

@media (max-width: 767.98px) {
    .library-shelf-section { padding: .75rem; }
    .library-books-row { gap: 8px; min-height: 225px; }
    .library-grid-view .library-books-row { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .75rem; }
    .library-shelf-heading, .library-series-heading { align-items: flex-start; }
}

/* v3.2 Living Library */
.library-living-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}.library-stat-card{display:flex;align-items:center;gap:.9rem;padding:1rem 1.1rem;border:1px solid var(--codex-border,rgba(255,255,255,.14));border-radius:16px;background:var(--codex-card-bg,rgba(20,20,24,.72));box-shadow:0 10px 24px rgba(0,0,0,.12)}.library-stat-card>span{font-size:1.55rem}.library-stat-card strong{display:block;font-size:1.35rem;line-height:1}.library-stat-card small{display:block;margin-top:.3rem;opacity:.72}.library-smart-collections{padding:1.1rem;border:1px solid var(--codex-border,rgba(255,255,255,.14));border-radius:18px;background:var(--codex-card-bg,rgba(20,20,24,.72))}.library-smart-heading{margin-bottom:.8rem}.library-smart-links{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}.library-smart-links a{display:flex;flex-direction:column;gap:.15rem;padding:1rem;border-radius:14px;text-decoration:none;color:inherit;background:color-mix(in srgb,var(--codex-card-bg,#222) 76%,var(--codex-accent,#b8944e) 24%);border:1px solid var(--codex-border,rgba(255,255,255,.14));transition:transform .18s ease,border-color .18s ease}.library-smart-links a:hover{transform:translateY(-2px);border-color:var(--codex-accent,#b8944e)}.library-smart-links span{font-size:1.25rem}.library-smart-links small{opacity:.7}.library-detail-cover{width:min(100%,300px);aspect-ratio:2/3;object-fit:cover;border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.35)}.library-series-pill{display:inline-flex;padding:.45rem .8rem;border-radius:999px;background:color-mix(in srgb,var(--codex-accent,#b8944e) 22%,transparent);border:1px solid var(--codex-accent,#b8944e)}.library-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.library-detail-grid>div{padding:.85rem;border-radius:12px;background:color-mix(in srgb,var(--codex-card-bg,#222) 82%,var(--codex-accent,#b8944e) 18%)}.library-detail-grid small,.library-detail-grid strong{display:block}.library-detail-grid small{opacity:.68;margin-bottom:.2rem}.library-long-text{line-height:1.75}.library-empty-note{padding:1.2rem;border:1px dashed var(--codex-border,rgba(255,255,255,.25));border-radius:14px;text-align:center;opacity:.8}.library-annotation-list{display:grid;gap:.75rem}.library-annotation-item{display:flex;align-items:flex-start;gap:1rem;padding:1rem;border:1px solid var(--codex-border,rgba(255,255,255,.14));border-radius:14px;background:color-mix(in srgb,var(--codex-card-bg,#222) 90%,var(--codex-accent,#b8944e) 10%)}.library-annotation-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,var(--codex-accent,#b8944e) 25%,transparent);font-size:1.2rem;flex:0 0 auto}
@media(max-width:1199px){.library-living-overview,.library-smart-links{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:767px){.library-living-overview,.library-smart-links,.library-detail-grid{grid-template-columns:1fr 1fr}.library-annotation-item{flex-wrap:wrap}}@media(max-width:520px){.library-living-overview,.library-smart-links,.library-detail-grid{grid-template-columns:1fr}}


/* v4.0 RPG Studio — Phase 1 */
.codex-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;padding:.35rem;border:1px solid var(--codex-border);border-radius:14px;background:rgba(0,0,0,.16)}.codex-mode-switch a{padding:.55rem .45rem;border-radius:10px;text-align:center;text-decoration:none;color:var(--codex-muted);font-size:.82rem;font-weight:800}.codex-mode-switch a.active{background:var(--codex-accent,var(--codex-gold));color:#17120b;box-shadow:0 6px 16px rgba(0,0,0,.18)}
.rpg-studio-page{--rpg-red:#8f3140}.rpg-hero,.rpg-campaign-header{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:2.2rem;border:1px solid var(--codex-border);border-radius:24px;background:radial-gradient(circle at 90% 15%,color-mix(in srgb,var(--codex-accent,#b8944e) 28%,transparent),transparent 35%),linear-gradient(135deg,color-mix(in srgb,var(--codex-card-bg,#201b18) 92%,#31151b 8%),var(--codex-card-bg,#201b18));box-shadow:0 18px 45px rgba(0,0,0,.22)}.rpg-hero h1,.rpg-campaign-header h1{font-size:clamp(2.2rem,5vw,4.3rem);margin:.1rem 0 .7rem}.rpg-hero p,.rpg-campaign-header p{max-width:820px;color:var(--codex-muted);font-size:1.06rem}.rpg-dice-mark{display:grid;place-items:center;width:145px;aspect-ratio:1;clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);background:linear-gradient(145deg,var(--codex-accent,#b8944e),color-mix(in srgb,var(--codex-accent,#b8944e) 55%,#5b202a));color:#fff9e8;font-family:Georgia,serif;font-size:2.1rem;font-weight:900;text-shadow:0 2px 8px #000;filter:drop-shadow(0 16px 20px rgba(0,0,0,.35))}.rpg-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.rpg-stat-grid>div{padding:1.2rem;border:1px solid var(--codex-border);border-radius:16px;background:var(--codex-card-bg);text-align:center}.rpg-stat-grid strong,.rpg-stat-grid span{display:block}.rpg-stat-grid strong{font-size:2rem;color:var(--codex-accent,var(--codex-gold))}.rpg-stat-grid span{color:var(--codex-muted);font-size:.82rem}.rpg-campaign-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.2rem}.rpg-campaign-card{display:flex;flex-direction:column;gap:.75rem;padding:1.35rem;border:1px solid var(--codex-border);border-radius:18px;background:var(--codex-card-bg);box-shadow:0 12px 30px rgba(0,0,0,.14)}.rpg-campaign-card h3{margin:0}.rpg-campaign-card .btn{margin-top:auto}.rpg-status,.rpg-world-pill{display:inline-flex;width:max-content;padding:.35rem .65rem;border:1px solid color-mix(in srgb,var(--codex-accent,#b8944e) 60%,transparent);border-radius:999px;background:color-mix(in srgb,var(--codex-accent,#b8944e) 18%,transparent);font-size:.75rem;font-weight:800}.rpg-card-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.rpg-card-metrics span{padding:.55rem;border-radius:10px;background:rgba(0,0,0,.12);text-align:center;font-size:.72rem}.rpg-card-metrics strong{display:block;font-size:1rem}.rpg-section-nav{display:flex;gap:.5rem;overflow:auto;padding:.55rem;border:1px solid var(--codex-border);border-radius:15px;background:var(--codex-card-bg)}.rpg-section-nav a{white-space:nowrap;padding:.55rem .85rem;border-radius:10px;text-decoration:none;color:inherit}.rpg-section-nav a:hover{background:color-mix(in srgb,var(--codex-accent,#b8944e) 18%,transparent)}.rpg-inline-form{display:grid;grid-template-columns:90px 1.3fr 1fr 130px auto;gap:.55rem}.rpg-inline-form .rpg-form-wide{grid-column:1/-1}.rpg-list{display:grid;gap:.75rem}.rpg-list article{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--codex-border);border-radius:14px;background:color-mix(in srgb,var(--codex-card-bg,#222) 90%,var(--codex-accent,#b8944e) 10%)}.rpg-list h4{margin:.15rem 0}.rpg-list small{color:var(--codex-accent,var(--codex-gold));font-weight:800}.rpg-list.compact p{margin-bottom:0;font-size:.9rem}.rpg-roster-form{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr .7fr auto;gap:.55rem}.rpg-roster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:.8rem}.rpg-roster-grid article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;padding:1rem;border:1px solid var(--codex-border);border-radius:14px;background:color-mix(in srgb,var(--codex-card-bg,#222) 90%,var(--codex-accent,#b8944e) 10%)}.rpg-roster-grid h4{margin:0}.rpg-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:linear-gradient(145deg,var(--codex-accent,#b8944e),#5b202a);color:#fff;font-weight:900}
@media(max-width:1199px){.rpg-stat-grid{grid-template-columns:repeat(2,1fr)}.rpg-inline-form{grid-template-columns:80px 1fr 1fr}.rpg-inline-form button{grid-column:auto}.rpg-roster-form{grid-template-columns:repeat(3,1fr)}}@media(max-width:767px){.rpg-hero,.rpg-campaign-header{align-items:flex-start;flex-direction:column;padding:1.4rem}.rpg-dice-mark{width:90px}.rpg-stat-grid{grid-template-columns:1fr 1fr}.rpg-inline-form,.rpg-roster-form{grid-template-columns:1fr}.rpg-inline-form .rpg-form-wide{grid-column:auto}.rpg-list article{flex-direction:column}.rpg-roster-grid article{grid-template-columns:auto 1fr}.rpg-roster-grid article form{grid-column:1/-1}}

/* v3.2.1 Personal Library overview cleanup */
.library-living-overview{grid-template-columns:repeat(6,minmax(0,1fr))}
a.library-stat-card{color:inherit;text-decoration:none;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background-color .18s ease}
a.library-stat-card:hover,a.library-stat-card:focus-visible{color:inherit;transform:translateY(-3px);border-color:var(--codex-accent,#b8944e);box-shadow:0 16px 30px rgba(0,0,0,.2);outline:none}
a.library-stat-card:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--codex-accent,#b8944e) 42%,transparent),0 16px 30px rgba(0,0,0,.2)}
.library-tbr-card{background:color-mix(in srgb,var(--codex-card-bg,rgba(20,20,24,.72)) 78%,var(--codex-accent,#b8944e) 22%)}
@media(max-width:1399px){.library-living-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767px){.library-living-overview{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.library-living-overview{grid-template-columns:1fr}}

/* =========================================================
   v4.1 — The Game Master's Codex
   ========================================================= */
.gm-codex-page{--gm-emerald:#1f6b57;--gm-bronze:#b1844f;--gm-deep:#101713;position:relative;isolation:isolate}.gm-codex-page:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at 85% 8%,color-mix(in srgb,var(--gm-emerald) 26%,transparent),transparent 32%),radial-gradient(circle at 10% 70%,color-mix(in srgb,var(--gm-bronze) 12%,transparent),transparent 28%)}
.gm-hero,.gm-campaign-header,.gm-form-heading{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:2.3rem;border:1px solid color-mix(in srgb,var(--codex-accent,#b8944e) 55%,var(--codex-border));border-radius:26px;background:linear-gradient(135deg,color-mix(in srgb,var(--codex-card-bg,#201b18) 87%,#0c241c 13%),color-mix(in srgb,var(--codex-card-bg,#201b18) 91%,#392113 9%));box-shadow:0 22px 55px rgba(0,0,0,.28);overflow:hidden;position:relative}.gm-hero:after,.gm-campaign-header:after{content:"";position:absolute;inset:auto -5% -65% 35%;height:220%;background:repeating-linear-gradient(45deg,transparent 0 20px,rgba(255,255,255,.018) 20px 21px);transform:rotate(-7deg);pointer-events:none}.gm-hero-copy,.gm-campaign-header>div{position:relative;z-index:1}.gm-hero h1,.gm-campaign-header h1,.gm-form-heading h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.35rem,5.5vw,4.8rem);letter-spacing:-.035em;margin:.1rem 0 .55rem}.gm-tagline{color:var(--codex-accent,var(--codex-gold));font-family:Georgia,serif;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.gm-intro,.gm-campaign-header p{max-width:850px;color:var(--codex-muted);font-size:1.06rem}.gm-crest{position:relative;z-index:1;display:grid;place-items:center;flex:0 0 170px;width:170px;aspect-ratio:1;border:2px solid color-mix(in srgb,var(--gm-bronze) 75%,transparent);border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--gm-emerald) 55%,#111),#10130f 72%);box-shadow:inset 0 0 0 10px rgba(255,255,255,.025),0 20px 32px rgba(0,0,0,.38);color:#fff1cf}.gm-die{display:grid;place-items:center;width:94px;aspect-ratio:1;clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);background:linear-gradient(145deg,var(--gm-bronze),#5b3123);font-size:2.25rem;font-weight:900;text-shadow:0 2px 8px #000}.gm-crest small{position:absolute;bottom:24px;font-weight:900;letter-spacing:.28em}.gm-room-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}.gm-room-strip a{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.8rem;padding:1rem 1.1rem;border:1px solid var(--codex-border);border-radius:16px;background:var(--codex-card-bg);color:inherit;text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.gm-room-strip a:hover{transform:translateY(-3px);border-color:var(--codex-accent);box-shadow:0 14px 28px rgba(0,0,0,.2)}.gm-room-strip span{grid-row:1/3;font-size:1.55rem;color:var(--codex-accent)}.gm-room-strip small{color:var(--codex-muted)}.gm-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.gm-stat-grid>div{padding:1.2rem;border:1px solid var(--codex-border);border-radius:16px;background:var(--codex-card-bg);text-align:center}.gm-stat-grid strong,.gm-stat-grid span{display:block}.gm-stat-grid strong{font-size:2rem;color:var(--codex-accent,var(--codex-gold))}.gm-stat-grid span{color:var(--codex-muted);font-size:.82rem}.gm-empty-room,.gm-parchment-form,.gm-panel{padding:2rem;border:1px solid var(--codex-border);border-radius:20px;background:var(--codex-card-bg);box-shadow:0 15px 35px rgba(0,0,0,.17)}.gm-empty-sigil{display:grid;place-items:center;margin:0 auto 1rem;width:84px;aspect-ratio:1;clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);background:linear-gradient(145deg,var(--gm-bronze),#543529);font-size:1.35rem;font-weight:900;color:#fff}.gm-campaign-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem}.gm-campaign-card{display:flex;flex-direction:column;gap:.75rem;padding:1.35rem;border:1px solid var(--codex-border);border-radius:20px;background:linear-gradient(160deg,var(--codex-card-bg),color-mix(in srgb,var(--codex-card-bg) 90%,var(--gm-emerald) 10%));box-shadow:0 14px 30px rgba(0,0,0,.18);transition:transform .18s ease,border-color .18s ease}.gm-campaign-card:hover{transform:translateY(-4px);border-color:var(--codex-accent)}.gm-campaign-card-top{display:flex;justify-content:space-between;gap:.75rem}.gm-campaign-emblem{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:linear-gradient(145deg,var(--gm-emerald),#143329);border:2px solid color-mix(in srgb,var(--gm-bronze) 75%,transparent);color:#fff;font-family:Georgia,serif;font-size:1.5rem;font-weight:900}.gm-campaign-card h3{margin:0;font-family:Georgia,serif}.gm-world-name{color:var(--codex-accent);font-weight:700;margin:0}.gm-campaign-card .btn{margin-top:auto}.gm-status,.gm-world-pill{display:inline-flex;width:max-content;padding:.38rem .7rem;border:1px solid color-mix(in srgb,var(--gm-bronze) 65%,transparent);border-radius:999px;background:color-mix(in srgb,var(--gm-emerald) 20%,transparent);font-size:.75rem;font-weight:800}.gm-card-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.gm-card-metrics span{padding:.58rem;border-radius:11px;background:rgba(0,0,0,.13);text-align:center;font-size:.72rem}.gm-card-metrics strong{display:block;font-size:1rem}.gm-section-nav{display:flex;gap:.5rem;overflow:auto;padding:.6rem;border:1px solid var(--codex-border);border-radius:15px;background:var(--codex-card-bg)}.gm-section-nav a{white-space:nowrap;padding:.6rem .9rem;border-radius:10px;text-decoration:none;color:inherit}.gm-section-nav a:hover{background:color-mix(in srgb,var(--gm-emerald) 25%,transparent)}.gm-inline-form{display:grid;grid-template-columns:90px 1.3fr 1fr 130px auto;gap:.55rem}.gm-inline-form .gm-form-wide{grid-column:1/-1}.gm-list{display:grid;gap:.75rem}.gm-list article{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--codex-border);border-radius:14px;background:color-mix(in srgb,var(--codex-card-bg,#222) 91%,var(--gm-emerald) 9%)}.gm-list h4{margin:.15rem 0}.gm-list small{color:var(--codex-accent,var(--codex-gold));font-weight:800}.gm-list.compact p{margin-bottom:0;font-size:.9rem}.gm-roster-form{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr .7fr auto;gap:.55rem}.gm-roster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:.8rem}.gm-roster-grid article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;padding:1rem;border:1px solid var(--codex-border);border-radius:14px;background:color-mix(in srgb,var(--codex-card-bg,#222) 90%,var(--gm-emerald) 10%)}.gm-roster-grid h4{margin:0}.gm-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:linear-gradient(145deg,var(--gm-emerald),#5b3123);color:#fff;font-weight:900}.codex-gm-pillar-card{background:linear-gradient(145deg,color-mix(in srgb,var(--codex-card-bg) 88%,#123b2f 12%),var(--codex-card-bg))}.codex-gm-pillar-card .codex-pillar-icon{filter:drop-shadow(0 6px 10px rgba(0,0,0,.25))}
@media(max-width:1199px){.gm-room-strip,.gm-stat-grid{grid-template-columns:repeat(2,1fr)}.gm-inline-form{grid-template-columns:80px 1fr 1fr}.gm-roster-form{grid-template-columns:repeat(3,1fr)}}
@media(max-width:767px){.gm-hero,.gm-campaign-header,.gm-form-heading{align-items:flex-start;flex-direction:column;padding:1.4rem}.gm-crest{width:105px;flex-basis:105px}.gm-die{width:62px;font-size:1.35rem}.gm-crest small{bottom:10px}.gm-room-strip,.gm-stat-grid{grid-template-columns:1fr 1fr}.gm-inline-form,.gm-roster-form{grid-template-columns:1fr}.gm-inline-form .gm-form-wide{grid-column:auto}.gm-list article{flex-direction:column}.gm-roster-grid article{grid-template-columns:auto 1fr}.gm-roster-grid article form{grid-column:1/-1}}
@media(max-width:480px){.gm-room-strip,.gm-stat-grid{grid-template-columns:1fr}}

/* v4.2 Game Master's Codex */
.gm-campaign-room-hero{min-height:330px;border:1px solid color-mix(in srgb,var(--codex-accent,#c9a24d) 45%,transparent);border-radius:24px;background:linear-gradient(135deg,#101a16,#243429);background-size:cover;background-position:center;display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;padding:34px;box-shadow:0 24px 60px rgba(0,0,0,.32)}
.gm-room-logo{width:112px;height:112px;border-radius:50%;display:grid;place-items:center;background:rgba(10,16,14,.82);border:3px solid #b99145;overflow:hidden;font-size:3rem;font-family:serif;color:#e8cf8a}.gm-room-logo img{width:100%;height:100%;object-fit:cover}.gm-room-copy h1{font-size:clamp(2.2rem,5vw,4.4rem);margin:.1rem 0}.gm-room-actions{display:flex;flex-direction:column;gap:10px;align-self:start}.gm-campaign-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.gm-campaign-stat-grid a{padding:18px;border-radius:16px;background:var(--codex-card-bg,rgba(255,255,255,.06));border:1px solid var(--codex-border,rgba(255,255,255,.12));text-align:center;color:inherit;text-decoration:none}.gm-campaign-stat-grid strong{font-size:1.8rem;display:block}.gm-campaign-stat-grid span{font-size:.82rem;opacity:.75}
.gm-wizard{background:var(--codex-card-bg,rgba(19,25,22,.95));border:1px solid var(--codex-border,rgba(255,255,255,.13));border-radius:24px;padding:28px}.gm-wizard-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:26px}.gm-wizard-step{border:0;border-radius:14px;padding:12px;background:rgba(255,255,255,.05);color:inherit}.gm-wizard-step span{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;margin-right:8px;background:rgba(255,255,255,.1)}.gm-wizard-step.active{background:color-mix(in srgb,var(--codex-accent,#b99145) 24%,transparent);outline:1px solid var(--codex-accent,#b99145)}.gm-wizard-panel{display:none;min-height:390px}.gm-wizard-panel.active{display:block}.gm-wizard-actions{display:flex;justify-content:space-between;margin-top:24px}.gm-system-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:15px;max-height:330px;overflow:auto}.gm-system-option{border:1px solid var(--codex-border,rgba(255,255,255,.14));background:rgba(255,255,255,.04);color:inherit;border-radius:12px;padding:11px;text-align:left}.gm-system-option:hover,.gm-system-option.selected{border-color:var(--codex-accent,#b99145);background:color-mix(in srgb,var(--codex-accent,#b99145) 17%,transparent)}.gm-wizard-callout,.gm-review-card{max-width:780px;margin:45px auto;padding:34px;border:1px solid var(--codex-border);border-radius:20px;text-align:center;background:rgba(255,255,255,.04)}.gm-party-placeholder{display:flex;justify-content:center;gap:12px;margin-top:24px}.gm-party-placeholder span{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;border:2px dashed var(--codex-accent,#b99145)}
.gm-adventure-board{padding:28px;border-radius:22px;background:radial-gradient(circle at 25% 20%,rgba(255,255,255,.08),transparent 24%),linear-gradient(135deg,#6d472d,#3f281b);border:12px solid #2d1a10;box-shadow:inset 0 0 40px rgba(0,0,0,.45),0 20px 45px rgba(0,0,0,.25)}.gm-board-form{display:grid;grid-template-columns:180px minmax(220px,1fr) minmax(180px,220px) auto;gap:10px;align-items:start}.gm-board-details{grid-column:1/-1;min-height:150px;resize:vertical;line-height:1.55;padding:14px 16px}.gm-pin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.gm-pin{position:relative;min-height:180px;padding:24px 18px 16px;background:#efe0b5;color:#292015;box-shadow:4px 7px 14px rgba(0,0,0,.35);transform:rotate(-.4deg)}.gm-pin:nth-child(even){transform:rotate(.6deg);background:#d9e4cf}.gm-pushpin{position:absolute;top:7px;left:50%;width:13px;height:13px;border-radius:50%;background:#9f2929;box-shadow:0 2px 3px rgba(0,0,0,.5)}.gm-pin small{opacity:.7;text-transform:uppercase;letter-spacing:.08em}.gm-pin h4{font-family:Georgia,serif;margin-top:6px}.gm-session-journal{background:linear-gradient(90deg,rgba(86,52,29,.28),transparent 5%,transparent 95%,rgba(86,52,29,.28)),var(--codex-card-bg);border:8px solid #4b2c1a;border-radius:18px;box-shadow:0 16px 40px rgba(0,0,0,.32)}.gm-journal-pages{display:grid;gap:14px}.gm-journal-pages article{padding:24px;background:color-mix(in srgb,var(--codex-card-bg,#f3e7ca) 86%,#fff 14%);border-left:4px solid var(--codex-accent,#b99145);border-radius:8px}.gm-athena-panel{display:grid;grid-template-columns:1fr 1.2fr;gap:24px;padding:28px;border-radius:22px;background:linear-gradient(135deg,rgba(79,112,95,.22),rgba(191,143,65,.12));border:1px solid var(--codex-border)}.gm-athena-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.gm-athena-actions a{padding:14px;border-radius:12px;border:1px solid var(--codex-border);color:inherit;text-decoration:none;background:rgba(255,255,255,.04)}
@media(max-width:1100px){.gm-campaign-room-hero{grid-template-columns:auto 1fr}.gm-room-actions{grid-column:1/-1;flex-direction:row}.gm-campaign-stat-grid{grid-template-columns:repeat(3,1fr)}.gm-pin-grid{grid-template-columns:repeat(2,1fr)}.gm-board-form{grid-template-columns:1fr 1fr}.gm-system-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.gm-campaign-room-hero{grid-template-columns:1fr;padding:22px}.gm-room-logo{width:82px;height:82px}.gm-campaign-stat-grid{grid-template-columns:repeat(2,1fr)}.gm-wizard-steps{grid-template-columns:1fr}.gm-wizard-step:not(.active){display:none}.gm-system-list,.gm-pin-grid,.gm-athena-panel,.gm-athena-actions{grid-template-columns:1fr}.gm-board-form{grid-template-columns:1fr}.gm-adventure-board{padding:18px;border-width:7px}}


/* v4.4 — true Game Master workspace mode */
body.codex-gm-mode .codex-topbar,
body.codex-gm-mode .codex-context-bar,
body.codex-gm-mode .codex-workspace-bar {
    border-color: rgba(177, 133, 66, .48);
}

body.codex-gm-mode .codex-gm-context-bar {
    background:
        linear-gradient(90deg, rgba(19, 50, 42, .98), rgba(42, 31, 22, .98)),
        var(--codex-panel, #18211f);
    box-shadow: inset 0 -1px 0 rgba(212, 175, 55, .2);
}

body.codex-gm-mode .codex-mode-switch a.active {
    background: linear-gradient(135deg, #78552d, #2f6a55);
    color: #fff8e8;
    border-color: rgba(222, 178, 91, .7);
}

body.codex-gm-mode .codex-sidebar {
    box-shadow: inset -1px 0 0 rgba(196, 145, 70, .24);
}

body.codex-gm-mode .codex-workspace-link:hover {
    color: #f1cf88;
}

/* v4.5 Campaign Operations */
.gm-live-session-banner,.gm-live-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border:1px solid color-mix(in srgb,var(--codex-accent,#c79b45) 45%,transparent);border-radius:18px;background:linear-gradient(135deg,rgba(23,65,49,.96),rgba(15,28,24,.96));color:#fff}.gm-session-clock{font:700 2rem/1 monospace;letter-spacing:.08em;padding:.8rem 1rem;border:1px solid rgba(255,255,255,.22);border-radius:12px;background:rgba(0,0,0,.25)}.gm-roster-card{display:flex;align-items:center;gap:1rem;text-decoration:none;color:inherit;padding:1rem;border:1px solid var(--codex-border,rgba(128,128,128,.25));border-radius:16px;background:var(--codex-card-bg,rgba(255,255,255,.04));transition:.2s}.gm-roster-card:hover{transform:translateY(-2px);border-color:var(--codex-accent,#c79b45);color:inherit}.gm-avatar-image,.gm-character-portrait{object-fit:cover;border-radius:14px;border:2px solid var(--codex-accent,#c79b45)}.gm-avatar-image{width:58px;height:58px}.gm-character-portrait{width:100%;max-height:240px;margin-bottom:1rem}.gm-event-timeline{position:relative;padding-left:1.25rem}.gm-event-timeline:before{content:"";position:absolute;left:.35rem;top:.5rem;bottom:.5rem;width:2px;background:color-mix(in srgb,var(--codex-accent,#c79b45) 40%,transparent)}.gm-event-timeline article{position:relative;padding:0 0 1.25rem 1rem}.gm-event-dot{position:absolute;left:-1.28rem;top:.35rem;width:.75rem;height:.75rem;border-radius:50%;background:var(--codex-accent,#c79b45);box-shadow:0 0 0 4px color-mix(in srgb,var(--codex-accent,#c79b45) 18%,transparent)}
.campaign-book-toolbar{position:sticky;top:0;z-index:20;display:flex;gap:.75rem;align-items:center;padding:.8rem 1rem;background:#17130f;color:#fff}.campaign-book-toolbar a,.campaign-book-toolbar button{color:#fff;border:1px solid #a9864a;background:transparent;border-radius:8px;padding:.55rem .8rem;text-decoration:none}.campaign-book{max-width:920px;margin:2rem auto;background:#fff;color:#211b16;box-shadow:0 20px 60px rgba(0,0,0,.25)}.campaign-book-cover{min-height:520px;display:flex;align-items:flex-end;padding:4rem;background:#2c241b center/cover no-repeat;color:#fff}.campaign-book-cover h1{font-size:3.4rem}.campaign-book>section{padding:2rem 3rem;border-bottom:1px solid #ddd}.campaign-book-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.campaign-book-grid article,.campaign-book-entry{padding:1rem;border:1px solid #d8c7a7;border-radius:10px;background:#fffdf7}.campaign-book-entry aside{padding:1rem;background:#fff3d6;border-left:4px solid #a36d21}
@media(max-width:767px){.gm-live-session-banner,.gm-live-header{align-items:flex-start;flex-direction:column}.campaign-book-toolbar{flex-wrap:wrap}.campaign-book-cover{min-height:360px;padding:2rem}.campaign-book-cover h1{font-size:2.2rem}.campaign-book>section{padding:1.25rem}}
@media print{body{background:#fff!important}.codex-sidebar,.codex-topbar,.campaign-book-toolbar,.workspace-status-bar{display:none!important}.campaign-book{max-width:none;margin:0;box-shadow:none}.campaign-book-cover{min-height:100vh;page-break-after:always}.campaign-book>section{page-break-inside:auto}.campaign-book-entry{break-inside:avoid}.app-main,.main-content{margin:0!important;padding:0!important;width:100%!important}}

/* v4.5.2 — Campaign World integration */
.gm-campaign-world {
    border: 1px solid color-mix(in srgb, var(--codex-accent, #c99a45) 34%, transparent);
    border-radius: 1.15rem;
    padding: 1.4rem;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--codex-panel, #17211d) 94%, transparent), color-mix(in srgb, var(--codex-bg, #0d1512) 96%, transparent));
    box-shadow: 0 18px 45px rgba(0,0,0,.22);
}
.gm-world-summary {
    display: grid;
    grid-template-columns: repeat(7, minmax(110px, 1fr));
    gap: .75rem;
}
.gm-world-summary a {
    display: flex;
    min-height: 88px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: .8rem;
    border: 1px solid color-mix(in srgb, var(--codex-accent, #c99a45) 28%, transparent);
    border-radius: .9rem;
    color: var(--codex-text, #f4ead7);
    text-decoration: none;
    background: color-mix(in srgb, var(--codex-panel, #17211d) 86%, transparent);
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.gm-world-summary a:hover,
.gm-world-summary a:focus-visible {
    transform: translateY(-3px);
    border-color: var(--codex-accent, #c99a45);
    background: color-mix(in srgb, var(--codex-accent, #c99a45) 12%, var(--codex-panel, #17211d));
}
.gm-world-summary strong { font-size: 1.55rem; line-height: 1; color: var(--codex-accent, #d5aa5d); }
.gm-world-summary span { margin-top: .45rem; font-size: .78rem; }
.gm-world-group {
    padding-top: .25rem;
}
.gm-world-group + .gm-world-group {
    border-top: 1px solid color-mix(in srgb, var(--codex-border, #705b3c) 45%, transparent);
    padding-top: 1.25rem;
}
.gm-world-group-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .9rem;
}
.gm-world-group-heading h3 { margin: 0; font-family: var(--codex-heading-font, Georgia, serif); }
.gm-world-group-heading span { color: var(--codex-muted, #bdb3a3); font-size: .85rem; }
.gm-world-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: .9rem;
}
.gm-world-card {
    min-width: 0;
    display: grid;
    grid-template-columns: 82px minmax(0,1fr);
    gap: .9rem;
    align-items: stretch;
    min-height: 120px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--codex-border, #705b3c) 70%, transparent);
    border-radius: .85rem;
    background: color-mix(in srgb, var(--codex-card, var(--codex-panel, #17211d)) 94%, transparent);
    color: var(--codex-text, #f4ead7);
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.gm-world-card:hover,
.gm-world-card:focus-visible {
    color: var(--codex-text, #f4ead7);
    transform: translateY(-3px);
    border-color: var(--codex-accent, #c99a45);
    box-shadow: 0 14px 30px rgba(0,0,0,.24);
}
.gm-world-card img,
.gm-world-card-placeholder {
    width: 82px;
    height: 100%;
    min-height: 120px;
    object-fit: cover;
}
.gm-world-card-placeholder {
    display: grid;
    place-items: center;
    font: 700 1.8rem/1 Georgia, serif;
    color: var(--codex-accent, #d5aa5d);
    background: linear-gradient(145deg, color-mix(in srgb, var(--codex-accent, #c99a45) 18%, #24190f), color-mix(in srgb, var(--codex-panel, #17211d) 96%, #000));
}
.gm-world-card > div:last-child { padding: .8rem .8rem .75rem 0; min-width: 0; }
.gm-world-card small { color: var(--codex-accent, #d5aa5d); text-transform: uppercase; letter-spacing: .06em; font-size: .68rem; }
.gm-world-card h4 { margin: .2rem 0 .35rem; font-size: 1rem; }
.gm-world-card p { margin: 0; color: var(--codex-muted, #bdb3a3); font-size: .82rem; line-height: 1.4; }
.gm-map-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
}
.gm-map-card {
    overflow: hidden;
    border-radius: 1rem;
    border: 1px solid color-mix(in srgb, var(--codex-border, #705b3c) 75%, transparent);
    color: var(--codex-text, #f4ead7);
    text-decoration: none;
    background: color-mix(in srgb, var(--codex-card, var(--codex-panel, #17211d)) 95%, transparent);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.gm-map-card:hover,
.gm-map-card:focus-visible { color: var(--codex-text, #f4ead7); transform: translateY(-4px); border-color: var(--codex-accent, #c99a45); box-shadow: 0 16px 34px rgba(0,0,0,.25); }
.gm-map-card img,
.gm-map-placeholder { width: 100%; aspect-ratio: 16/8; object-fit: cover; }
.gm-map-placeholder { display: grid; place-items: center; color: var(--codex-accent, #d5aa5d); font: 700 1.4rem Georgia, serif; background: linear-gradient(135deg, #25332c, #111a16); }
.gm-map-card > div:last-child { padding: .9rem 1rem 1rem; }
.gm-map-card h4 { margin: 0 0 .35rem; }
.gm-map-card p { margin: 0; color: var(--codex-muted, #bdb3a3); font-size: .86rem; }
@media (max-width: 1200px) { .gm-world-summary { grid-template-columns: repeat(4, minmax(110px, 1fr)); } }
@media (max-width: 700px) {
    .gm-campaign-world { padding: 1rem; }
    .gm-world-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gm-world-card-grid, .gm-map-gallery { grid-template-columns: 1fr; }
    .gm-world-card { grid-template-columns: 72px minmax(0,1fr); }
    .gm-world-card img, .gm-world-card-placeholder { width: 72px; }
}

/* v4.6 Live Session Workspace */
.gm-live-header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.gm-live-status-strip{display:flex;gap:.8rem;flex-wrap:wrap;padding:.85rem 1rem;border:1px solid var(--codex-border,rgba(212,175,55,.25));border-radius:14px;background:color-mix(in srgb,var(--codex-surface,#171512) 90%,transparent)}.gm-live-status-strip span{padding:.45rem .7rem;border-radius:999px;background:rgba(0,0,0,.18)}.gm-live-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:1.25rem;align-items:start}.gm-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.gm-panel-heading h2{margin:0}.gm-badge{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid rgba(212,175,55,.35);border-radius:999px;padding:.35rem .65rem;font-size:.78rem;background:rgba(212,175,55,.09)}.gm-badge-live{border-color:rgba(72,190,120,.45);background:rgba(72,190,120,.12)}.gm-live-textarea{min-height:130px;resize:vertical}.gm-plan-panel,.gm-scratchpad-panel{min-height:650px}.gm-scratch-list,.gm-secret-list{display:grid;gap:.8rem;max-height:520px;overflow:auto;padding-right:.25rem}.gm-scratch-card,.gm-secret-card{border:1px solid var(--codex-border,rgba(212,175,55,.22));border-radius:12px;padding:1rem;background:rgba(0,0,0,.13)}.gm-scratch-card.is-filed{opacity:.65}.gm-scratch-meta,.gm-secret-actions,.gm-scratch-actions{display:flex;align-items:center;justify-content:space-between;gap:.65rem;flex-wrap:wrap}.gm-scratch-meta{font-size:.78rem;opacity:.75;margin-bottom:.35rem}.gm-scratch-card h3{font-size:1.05rem;margin:.2rem 0 .45rem}.gm-scratch-actions form:first-child{display:flex;gap:.5rem;align-items:center;flex:1}.gm-scratch-actions form:first-child select{max-width:180px}.gm-secret-card{border-left:4px solid #d8a93e}.gm-secret-card.status-revealed{opacity:.62;text-decoration-line:none;border-left-color:#4fbb79}.gm-secret-card.status-partially-revealed{border-left-color:#e08c3b}.gm-secret-card.status-carry-forward{border-left-color:#6687d8}.gm-secret-card p{margin:0 0 .75rem}.gm-secret-actions form:first-child{flex:1}.gm-end-session-panel{border-top:3px solid rgba(212,175,55,.45)}
@media(max-width:1100px){.gm-live-split{grid-template-columns:1fr}.gm-plan-panel,.gm-scratchpad-panel{min-height:auto}}@media(max-width:700px){.gm-live-header-actions{justify-content:flex-start}.gm-live-status-strip{display:grid;grid-template-columns:1fr 1fr}.gm-scratch-actions form:first-child{width:100%;flex-wrap:wrap}.gm-scratch-actions form:first-child select{max-width:none;flex:1}.gm-secret-actions{align-items:stretch}.gm-live-status-strip span{border-radius:10px}}

/* v4.7.6 Writing Studio sticky save controls */
.studio-sticky-save-bar {
    position: sticky;
    bottom: 4.4rem;
    z-index: 1025;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 1.25rem 0 .5rem;
    padding: .8rem 1rem;
    border: 1px solid color-mix(in srgb, var(--codex-accent, #d4af37) 55%, var(--codex-border, #5c4a32));
    border-radius: 1rem;
    background: color-mix(in srgb, var(--codex-panel, #171512) 94%, transparent);
    box-shadow: 0 18px 42px rgba(0, 0, 0, .32);
    backdrop-filter: blur(16px);
}
.studio-sticky-save-summary {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    color: var(--codex-muted, #c6baa4);
    font-size: .86rem;
}
.studio-sticky-save-summary strong { color: var(--codex-text, #f4ead7); }
.studio-sticky-save-status {
    display: inline-flex;
    align-items: center;
    min-height: 1.8rem;
    padding: .25rem .65rem;
    border-radius: 999px;
    border: 1px solid rgba(90, 190, 125, .45);
    background: rgba(90, 190, 125, .11);
    color: #a9e8bd;
}
.studio-sticky-save-status.is-saving { border-color: rgba(225, 176, 76, .5); background: rgba(225, 176, 76, .12); color: #f2ce82; }
.studio-sticky-save-status.is-unsaved { border-color: rgba(230, 151, 64, .5); background: rgba(230, 151, 64, .12); color: #f0b46f; }
.studio-sticky-save-status.is-error { border-color: rgba(220, 86, 86, .55); background: rgba(220, 86, 86, .12); color: #f3a1a1; }
.studio-sticky-save-button { min-width: 150px; }

/* v4.7.6 reusable Athena Media panel */
.athena-media-floating-button {
    position: fixed;
    right: 1.25rem;
    bottom: 5.4rem;
    z-index: 1032;
    border-radius: 999px;
    padding: .7rem 1rem;
    box-shadow: 0 16px 36px rgba(0, 0, 0, .36);
}
.athena-media-modal { border: 1px solid color-mix(in srgb, var(--codex-accent, #d4af37) 45%, var(--codex-border, #5c4a32)); }
.athena-media-prompt { min-height: 240px; resize: vertical; line-height: 1.55; }
.athena-media-latest-preview {
    display: block;
    width: min(100%, 760px);
    max-height: 520px;
    object-fit: contain;
    margin-inline: auto;
    border-radius: 1rem;
    border: 1px solid var(--codex-border, rgba(212, 175, 55, .28));
    background: rgba(0,0,0,.2);
}
.athena-media-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.athena-media-card {
    overflow: hidden;
    border: 1px solid var(--codex-border, rgba(212, 175, 55, .24));
    border-radius: 1rem;
    background: color-mix(in srgb, var(--codex-card, var(--codex-panel, #171512)) 96%, transparent);
}
.athena-media-card > a { display: block; background: rgba(0,0,0,.22); }
.athena-media-card img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform .2s ease;
}
.athena-media-card:hover img { transform: scale(1.025); }

@media (max-width: 900px) {
    .studio-sticky-save-bar { bottom: .75rem; }
    .athena-media-floating-button { bottom: 1rem; right: 1rem; }
}
@media (max-width: 700px) {
    .studio-sticky-save-bar { align-items: stretch; flex-direction: column; }
    .studio-sticky-save-button { width: 100%; }
    .studio-sticky-save-summary { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem .8rem; }
    .athena-media-grid { grid-template-columns: 1fr; }
    .athena-media-floating-button { padding: .65rem .8rem; font-size: .82rem; }
}

/* v4.7.7 image controls and universal image viewer */
.athena-media-inline-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: .65rem;
    border-radius: .75rem;
}
.codex-main img:not(.no-codex-lightbox),
.athena-media-modal img:not(.no-codex-lightbox) {
    cursor: zoom-in;
}
.codex-image-viewer-modal {
    background: rgba(8, 8, 10, .98);
}
.codex-image-viewer-stage {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    min-height: calc(100vh - 76px);
    padding: 1.25rem;
    touch-action: none;
    cursor: grab;
    background:
        radial-gradient(circle at center, rgba(255,255,255,.045), transparent 55%),
        #08080a;
}
.codex-image-viewer-stage:active { cursor: grabbing; }
.codex-image-viewer-stage img {
    display: block;
    max-width: 96vw;
    max-height: calc(100vh - 120px);
    object-fit: contain;
    transform-origin: center center;
    transition: transform .08s linear;
    user-select: none;
    -webkit-user-drag: none;
    cursor: grab;
}

/* v4.7.7 writing statistics use net words and active typing time */
.studio-sticky-save-summary #bottomDailyWords,
#wordCount,
#sessionWords,
#wpm {
    font-variant-numeric: tabular-nums;
}

/* v4.7.7a Athena generated-image application workflow */
.athena-media-card.is-applied {
    box-shadow: 0 0 0 2px rgba(68, 191, 116, .55), 0 18px 40px rgba(0, 0, 0, .28);
}

.athena-media-apply-actions {
    display: grid;
    gap: .55rem;
}

.athena-media-workflow-note {
    display: grid;
    gap: .2rem;
    padding: .8rem .9rem;
    border: 1px solid color-mix(in srgb, var(--codex-accent, #c9a45c) 38%, transparent);
    border-radius: .8rem;
    background: color-mix(in srgb, var(--codex-accent, #c9a45c) 9%, transparent);
    font-size: .84rem;
}

.athena-media-workflow-note span {
    color: var(--codex-muted, #b9b4aa);
}
