/*
 * Rich Book Reader (富文本书籍阅读器)
 * 所有样式均以 .rbr-book 为根作用域，避免污染主题全局样式。
 * 风格参考《探索未知世界》书页样式：纸质背景 + 棕色标题 + 金色点缀。
 */

.rbr-book {
    --rbr-brown: #8b4513;
    --rbr-brown-dark: #6d360f;
    --rbr-gold: #d4a76a;
    --rbr-paper: #f5f1e6;
    --rbr-paper-dark: #e8e0d0;
    --rbr-ink: #2d2327;
    --rbr-serif: 'Palatino', 'Book Antiqua', 'Georgia', 'Songti SC', 'SimSun', serif;
    --rbr-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', 'Microsoft YaHei', sans-serif;

    font-family: var(--rbr-sans);
    color: var(--rbr-ink);
    margin: 1.25rem 0;
    /* 不使用 transform/filter，保证内部 fixed 目录按钮相对视口定位 */
}

.rbr-book * {
    box-sizing: border-box;
}

/* 布局：目录脱离文章（fixed 悬浮），书页占满文章宽度 */
.rbr-book .rbr-flex {
    display: block;
}

.rbr-book .rbr-pages {
    width: 100%;
}

/* ============ 目录（默认：窄屏抽屉式，隐藏在视口左侧外） ============ */
.rbr-book .rbr-toc {
    background-color: var(--rbr-paper-dark);
    padding: 1.25rem;
    box-shadow: 4px 0 16px rgba(0, 0, 0, 0.25);
    width: 78%;
    max-width: 320px;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 41;
    max-height: 100vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 0;
    margin: 0;
    transform: translateX(-100%);
    transition: transform 0.3s ease;
}

.rbr-book .rbr-toc.active {
    transform: translateX(0);
}

/* 宽屏（≥1366px）：页面中第一本书的目录始终悬浮、紧贴文章区域左边缘外侧，
   垂直居中，不随页面滚动移动；目录的 left 由 JS 按书页实际位置计算设置，
   确保与文章严格对齐。左侧留白不足时 JS 不加 rbr-float-ready，自动回退抽屉式。 */
@media (min-width: 1366px) {
    .rbr-book.rbr-float-book .rbr-toc {
        top: 50%;
        bottom: auto;
        width: 19rem;
        max-width: none;
        max-height: 82vh;
        border-radius: 0.5rem;
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
        /* left 由 JS 设置；未就绪前保持抽屉隐藏态(translateX(-100%)) */
    }

    /* 定位成功：目录悬浮可见，关闭按钮/遮罩/"目录"按钮隐藏 */
    .rbr-book.rbr-float-book.rbr-float-ready .rbr-toc {
        transform: translateY(-50%);
    }

    .rbr-book.rbr-float-book.rbr-float-ready .rbr-toc-close,
    .rbr-book.rbr-float-book.rbr-float-ready .rbr-toc-toggle,
    .rbr-book.rbr-float-book.rbr-float-ready .rbr-toc-overlay {
        display: none !important;
    }
}

.rbr-book .rbr-toc-head {
    position: relative;
    margin-bottom: 0.25rem;
}

.rbr-book .rbr-toc-title {
    display: block;
    font-size: 1.25rem;
    font-weight: bold;
    color: var(--rbr-brown);
    font-family: var(--rbr-serif);
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid rgba(212, 167, 106, 0.3);
}

.rbr-book .rbr-toc-close {
    display: block;
    position: absolute;
    top: 0.6rem;
    right: 0.6rem;
    background: none;
    border: none;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    color: var(--rbr-brown);
    width: 32px;
    height: 32px;
}

.rbr-book .rbr-toc-list,
.rbr-book .rbr-sub-toc {
    list-style: none;
    margin: 0;
    padding: 0;
}

.rbr-book .rbr-sub-toc {
    padding-left: 0;
    margin: 0.25rem 0;
}

.rbr-book .rbr-toc-item {
    display: block;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    color: inherit;
    text-decoration: none;
    transition: all 0.2s ease;
    position: relative;
    margin: 2px 0;
    border-left: 3px solid transparent;
    line-height: 1.4;
}

.rbr-book .rbr-toc-item::before {
    content: "•";
    position: absolute;
    left: 0.25rem;
    color: var(--rbr-brown);
    opacity: 0;
    transition: all 0.2s ease;
}

.rbr-book .rbr-toc-item:hover {
    transform: translateX(5px);
    background-color: rgba(212, 167, 106, 0.15);
    border-left-color: var(--rbr-gold);
    color: inherit;
    text-decoration: none;
}

.rbr-book .rbr-toc-item:hover::before {
    opacity: 1;
}

.rbr-book .rbr-toc-item.active {
    font-weight: bold;
    color: var(--rbr-brown);
    background-color: rgba(212, 167, 106, 0.25);
    border-left-color: var(--rbr-brown);
    transform: translateX(8px);
}

.rbr-book .rbr-toc-item.active::before {
    opacity: 1;
    color: var(--rbr-brown);
}

.rbr-book .rbr-toc-item.level-1 { padding-left: 0.75rem; font-size: 0.95rem; }
.rbr-book .rbr-toc-item.level-2 { padding-left: 1.25rem; font-size: 0.9rem; }
.rbr-book .rbr-toc-item.level-3 { padding-left: 1.75rem; font-size: 0.85rem; }
.rbr-book .rbr-toc-item.level-4 { padding-left: 2.25rem; font-size: 0.8rem; }

/* ============ 书页正文区 ============ */
.rbr-book .rbr-pages {
    background-color: var(--rbr-paper);
    padding: 1.75rem 1.75rem 2rem;
    border-radius: 0.5rem;
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.18), inset 0 0 30px rgba(0, 0, 0, 0.06);
    flex: 1;
    min-width: 0;
}

.rbr-book .rbr-book-title {
    font-family: var(--rbr-serif);
    color: var(--rbr-brown);
    font-size: 2.2rem;
    text-align: center;
    margin: 0 0 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid rgba(212, 167, 106, 0.4);
}

/* 章节标题 */
.rbr-book .rbr-chapter h2,
.rbr-book .rbr-chapter h3,
.rbr-book .rbr-chapter h4,
.rbr-book .rbr-chapter h5,
.rbr-book .rbr-chapter h6 {
    font-family: var(--rbr-serif);
    color: var(--rbr-brown);
    margin-top: 2rem;
    margin-bottom: 1rem;
    line-height: 1.3;
}

.rbr-book .rbr-chapter h2 { font-size: 1.9rem; }
.rbr-book .rbr-chapter h3 { font-size: 1.6rem; }
.rbr-book .rbr-chapter h4 { font-size: 1.35rem; }
.rbr-book .rbr-chapter h5 { font-size: 1.15rem; }
.rbr-book .rbr-chapter h6 { font-size: 1.05rem; }

/* 章节分隔线与锚点偏移（避开主题固定头部） */
.rbr-book .rbr-chapter {
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(212, 167, 106, 0.3);
    scroll-margin-top: 90px;
}

.rbr-book .rbr-chapter:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

/* 正文排版 */
.rbr-book .rbr-page-content {
    text-align: justify;
    line-height: 1.8;
    text-indent: 2em;
}

.rbr-book .rbr-page-content p {
    margin: 0 0 1.25rem;
}

.rbr-book .rbr-page-content ul,
.rbr-book .rbr-page-content ol {
    margin: 0 0 1.25rem;
    padding-left: 2rem;
    text-indent: 0;
}

.rbr-book .rbr-page-content li {
    margin-bottom: 0.5rem;
}

.rbr-book .rbr-page-content strong { font-weight: bold; }
.rbr-book .rbr-page-content em { font-style: italic; }

.rbr-book .rbr-page-content a {
    color: var(--rbr-brown);
    text-decoration: underline;
}

.rbr-book .rbr-page-content img {
    max-width: 100%;
    height: auto;
    margin: 1.25rem auto;
    display: block;
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
    text-indent: 0;
}

.rbr-book .rbr-page-content blockquote {
    margin: 1.25rem 0;
    padding: 0.5rem 1rem;
    border-left: 4px solid var(--rbr-gold);
    background: rgba(212, 167, 106, 0.1);
    text-indent: 0;
    color: #5b4a3a;
}

.rbr-book .rbr-page-content h1,
.rbr-book .rbr-page-content h2,
.rbr-book .rbr-page-content h3,
.rbr-book .rbr-page-content h4,
.rbr-book .rbr-page-content h5 {
    text-indent: 0;
}

/* ============ 遮罩 / 目录按钮（窄屏抽屉模式） ============ */
.rbr-book .rbr-toc-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 39;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.rbr-book .rbr-toc-overlay.active {
    opacity: 1;
    visibility: visible;
}

.rbr-book .rbr-toc-toggle {
    position: fixed;
    z-index: 40;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    background-color: var(--rbr-brown);
    color: #fff;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: 15px;
    border: none;
    writing-mode: vertical-rl;
    letter-spacing: 2px;
    padding: 0;
}

.rbr-book .rbr-toc-toggle:hover {
    background-color: var(--rbr-brown-dark);
    transform: translateY(-50%) scale(1.08);
}

/* 阅读进度 / 恢复位置提示 */
.rbr-book .rbr-toast {
    position: fixed;
    bottom: 20px;
    right: 20px;
    background-color: rgba(139, 69, 19, 0.92);
    color: #fff;
    padding: 10px 16px;
    border-radius: 22px;
    font-size: 13px;
    opacity: 0;
    transform: translateY(10px);
    transition: all 0.3s ease;
    z-index: 60;
    pointer-events: none;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}

.rbr-book .rbr-toast.show {
    opacity: 1;
    transform: translateY(0);
}

/* ============ 小屏（≤768px）：书页紧凑排版 ============ */
@media (max-width: 768px) {
    .rbr-book .rbr-pages {
        padding: 1.25rem 1rem 1.5rem;
        margin-bottom: 56px;
    }

    .rbr-book .rbr-book-title {
        font-size: 1.7rem;
    }

    .rbr-book .rbr-chapter h2 { font-size: 1.5rem; }
    .rbr-book .rbr-chapter h3 { font-size: 1.3rem; }
    .rbr-book .rbr-chapter h4 { font-size: 1.15rem; }
}

/* 内容保护开启时：整本书禁止选中，禁用 iOS 长按弹出菜单 */
.rbr-book.rbr-protected {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
}

.rbr-book.rbr-protected img {
    -webkit-user-drag: none;
    pointer-events: none;
}
