/* ============================================================
   page-index.css - 首页(现代简约风)专属样式
   加载在所有通用样式【之后】；复用 variables.css 主题变量，换主题仍生效。
   不删任何按钮/功能；只改外观。范围：头部+侧栏全页统一，正文区限定 #dashboardView。
   ============================================================ */

/* 字体：无外链，系统栈，更现代观感 */
.home-page {
    --pi-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
               "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
    font-family: var(--pi-font);
}

/* ===== 背景：仅用主题底色（不覆盖用户可选背景图，背景图由 background.js 动态设置） ===== */

/* ==================== 顶部导航 ==================== */
.home-page .top-header {
    padding: 10px 24px !important;
    height: 48px !important;
    background: var(--card-bg) !important;
    border-bottom: 1px solid var(--border-color) !important;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
}
/* 顶部不再显示应用名/图标（用户要求去掉，避免观感廉价） */

/* 主题切换：分段胶囊，保留原主题 */
.home-page #themeSwitcherInline {
    gap: 2px !important;
    padding: 3px;
    border: 1px solid var(--border-color);
    border-radius: 999px;
    background: var(--app-bg);
}
.home-page .theme-btn-inline {
    border: none !important;
    background: transparent !important;
    color: var(--text-secondary) !important;
    padding: 4px 11px !important;
    border-radius: 999px !important;
    font-size: 0.8rem !important;
    cursor: pointer;
    transition: all 0.18s ease;
    white-space: nowrap;
}
.home-page .theme-btn-inline:hover { color: var(--text-primary) !important; }
.home-page .theme-btn-inline.active {
    background: var(--card-bg) !important;
    color: var(--theme-primary) !important;
    font-weight: 600;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.10);
}
.home-page .header-right .notification-btn,
.home-page .header-right .btn { border-radius: 10px !important; }

/* ==================== 主体布局 ==================== */
.home-page .main-layout { background: transparent; }
.home-page .content-area {
    padding: 24px 28px 40px !important;
}

/* ==================== 侧边栏 ==================== */
.home-page .sidebar-nav {
    padding: 18px 12px !important;
    background: var(--card-bg) !important;
    border-right: 1px solid var(--border-color) !important;
}
.home-page .nav-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px !important;
    margin: 3px 0;
    border-radius: 11px;
    color: var(--text-secondary) !important;
    font-size: 0.92rem;
    cursor: pointer;
    transition: all 0.16s ease;
}
.home-page .nav-item i {
    width: 20px;
    text-align: center;
    font-size: 1.02rem;
    color: var(--text-secondary);
    transition: all 0.16s ease;
}
.home-page .nav-item:hover {
    background: var(--hover-bg) !important;
    color: var(--theme-primary) !important;
}
.home-page .nav-item:hover i { color: var(--theme-primary); }
/* 当前导航：文字用主题主文字色(黑色)，去掉白色边框/白色竖条 */
.home-page .nav-item.active {
    background: var(--hover-bg) !important;
    color: var(--text-primary) !important;
}
.home-page .nav-item.active span,
.home-page .nav-item.active i,
.home-page .nav-item.active:hover span,
.home-page .nav-item.active:hover i {
    color: var(--text-primary) !important;
}
.home-page .nav-item.active::after {
    display: none !important;
}
.home-page .nav-item.active { font-weight: 600; }

/* ===== 以下正文样式限定在首页 Dashboard 视图 ===== */

/* 页面标题 */
.home-page #dashboardView .view-header { margin-bottom: 22px; }
.home-page #dashboardView .view-header h2 {
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: var(--text-primary) !important;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}
.home-page #dashboardView .view-header h2 i {
    color: var(--theme-primary);
    font-size: 1.3rem;
}

/* 欢迎卡片 */
.home-page #dashboardView .welcome-card {
    background: var(--card-bg) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 14px !important;
    padding: 26px 30px !important;
    box-shadow: var(--shadow-sm) !important;
    margin-bottom: 22px !important;
}
.home-page #dashboardView .welcome-card .welcome-text h3 {
    font-size: 1.6rem !important;
    font-weight: 700 !important;
    color: var(--text-primary) !important;
    letter-spacing: 0.3px;
}
.home-page #dashboardView .welcome-card .welcome-text p {
    color: var(--text-secondary) !important;
    font-size: 0.92rem !important;
    margin-top: 5px;
}
.home-page #dashboardView .welcome-stat {
    text-align: center;
    padding: 12px 22px;
    border-radius: 18px;
    background: color-mix(in srgb, var(--card-bg) 60%, rgba(var(--theme-primary-rgb), 0.05));
    border: 1px solid var(--border-color);
}
.home-page #dashboardView .welcome-stat .stat-value {
    display: block;
    font-size: 1.9rem !important;
    font-weight: 800 !important;
    color: var(--theme-primary) !important;
}
.home-page #dashboardView .welcome-stat .stat-label {
    font-size: 0.82rem !important;
    color: var(--text-secondary) !important;
    margin-top: 2px;
}

/* 主 CTA（进入工作台） */
.home-page #dashboardView .pi-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    padding: 17px 24px;
    border: none;
    border-radius: 14px;
    font-size: 1.02rem;
    font-weight: 600;
    letter-spacing: 0.4px;
    color: #fff;
    cursor: pointer;
    background: linear-gradient(135deg, var(--theme-primary), color-mix(in srgb, var(--theme-primary) 78%, #8a7aff));
    box-shadow: 0 8px 22px rgba(var(--theme-primary-rgb), 0.30);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    margin-bottom: 18px;
    text-decoration: none;
}
.home-page #dashboardView .pi-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(var(--theme-primary-rgb), 0.38);
}
.home-page #dashboardView .pi-cta i { font-size: 0.95rem; opacity: 0.9; }

/* 统计卡片 */
.home-page #dashboardView .stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px !important;
    margin-bottom: 24px !important;
}
.home-page #dashboardView .stat-card {
    display: flex !important;
    align-items: center;
    gap: 14px;
    background: var(--card-bg) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 14px !important;
    padding: 18px !important;
    box-shadow: var(--shadow-sm) !important;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.home-page #dashboardView .stat-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md) !important;
}
.home-page #dashboardView .stat-card .stat-icon {
    width: 48px;
    height: 48px;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    color: var(--theme-primary);
    background: color-mix(in srgb, var(--theme-primary) 14%, var(--card-bg));
    flex-shrink: 0;
}
.home-page #dashboardView .stat-card .stat-number {
    display: block;
    font-size: 1.6rem !important;
    font-weight: 800 !important;
    color: var(--text-primary) !important;
    line-height: 1.1;
}
.home-page #dashboardView .stat-card .stat-name {
    color: var(--text-secondary) !important;
    font-size: 0.84rem !important;
}

/* 分区块标题 */
.home-page #dashboardView .section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.08rem;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0 0 14px;
}
.home-page #dashboardView .section-title i { color: var(--theme-primary); }
.home-page #dashboardView .heatmap-section > h4,
.home-page #dashboardView .recent-section .section-header h4 {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0 0 14px;
}
.home-page #dashboardView .heatmap-section > h4 i,
.home-page #dashboardView .recent-section .section-header h4 i { color: var(--theme-primary); }

/* 热力图 + 最近编辑 */
.home-page #dashboardView .dashboard-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: stretch;
    margin-bottom: 0;
}
.home-page #dashboardView .dashboard-cols .heatmap-section,
.home-page #dashboardView .dashboard-cols .recent-section {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 14px;
    padding: 14px 16px;
    box-shadow: var(--shadow-sm);
    margin-bottom: 0;
    min-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.home-page #dashboardView .dashboard-cols .heatmap-section .heatmap-container,
.home-page #dashboardView .dashboard-cols .recent-section .recent-table-wrapper {
    flex: 1;
    min-height: 0;
}
/* 缩小写作日历（去掉内层双框，融入卡片） */
.home-page #dashboardView .dashboard-cols .writing-calendar {
    border: none;
    box-shadow: none;
    background: transparent;
    border-radius: 0;
    padding: 0;
    max-width: 100%;
    width: 100%;
}
.home-page #dashboardView .dashboard-cols .writing-calendar .calendar-cell {
    height: 30px;
    font-size: 0.68rem;
    border-radius: 7px;
    padding: 2px 0;
}
.home-page #dashboardView .dashboard-cols .writing-calendar .calendar-cell .day-num { font-size: 0.72rem; }
.home-page #dashboardView .dashboard-cols .writing-calendar .calendar-cell .day-words { font-size: 0.58rem; margin-top: 1px; }
.home-page #dashboardView .dashboard-cols .writing-calendar .calendar-weekdays span { font-size: 0.66rem; padding: 3px 0; }
.home-page #dashboardView .dashboard-cols .writing-calendar .calendar-month { font-size: 0.92rem; min-width: 84px; }
.home-page #dashboardView .dashboard-cols .writing-calendar .calendar-nav-btn { width: 26px; height: 26px; border-radius: 8px; font-size: 0.8rem; }
.home-page #dashboardView .dashboard-cols .writing-calendar .calendar-stats { font-size: 0.7rem; gap: 12px; padding-bottom: 8px; }
.home-page #dashboardView .dashboard-cols .writing-calendar .calendar-legend { font-size: 0.68rem; gap: 12px; margin-top: 8px; padding-top: 8px; }
/* 缩小最近编辑表格，避免横向滚动 */
.home-page #dashboardView .dashboard-cols .recent-table { table-layout: fixed; }
.home-page #dashboardView .dashboard-cols .recent-table th,
.home-page #dashboardView .dashboard-cols .recent-table td { padding: 6px 8px; font-size: 0.78rem; }
.home-page #dashboardView .dashboard-cols .recent-table-wrapper { overflow: hidden; }
.home-page #dashboardView .recent-section .section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}
.home-page #dashboardView .recent-section .section-header h4 {
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--text-primary);
}
.home-page #dashboardView .recent-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}
.home-page #dashboardView .recent-table th {
    text-align: left;
    padding: 10px 12px;
    color: var(--text-secondary);
    font-weight: 600;
    background: transparent;
    border-bottom: 1px solid var(--border-color);
}
.home-page #dashboardView .recent-table td {
    padding: 11px 12px;
    border-bottom: 1px solid var(--border-color);
    color: var(--text-primary);
}
.home-page #dashboardView .recent-table tbody tr { transition: background 0.15s ease; }
.home-page #dashboardView .recent-table tbody tr:hover { background: var(--table-hover); }
.home-page #dashboardView .recent-table tbody tr:last-child td { border-bottom: none; }
.home-page #dashboardView .recent-table .empty-hint { text-align: center; color: var(--text-secondary); padding: 30px 0 !important; }

/* 热力图微调 */
.home-page #dashboardView .heatmap-container .day-cell,
.home-page #dashboardView .heatmap-container td,
.home-page #dashboardView .heatmap-container .heat-cell { border-radius: 3px; }

/* ===== 统一模态框（index）：无遮罩、纯白、黑字、默认显示 ===== */
.modal-overlay {
    display: flex;              /* 动态创建的弹窗默认显示（静态的因内联 display:none 仍隐藏）*/
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    pointer-events: none !important;
}
/* 让 overlay 的直接子元素（各种自定义容器）都能点击，避免继承 pointer-events:none 导致按钮失灵 */
.modal-overlay > * {
    pointer-events: auto !important;
}
/* 带 .active 的弹窗（Modal 组件/helpers.js 打开的）优先级更高，需单独覆盖去遮罩 */
.modal-overlay.active {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    pointer-events: none !important;
}
.modal-overlay .modal-container {
    pointer-events: auto !important;
    background: #ffffff !important;
    color: #000 !important;
    border-radius: 12px !important;
    border: 1px solid #ececec !important;
    box-shadow: 0 14px 44px rgba(0, 0, 0, 0.16), 0 2px 8px rgba(0, 0, 0, 0.08) !important;
}
.modal-overlay .modal-container .modal-header { border-bottom: 1px solid #f0f0f0 !important; }
.modal-overlay .modal-container .modal-header h3,
.modal-overlay .modal-container .modal-header h4 { color: #000 !important; }
.modal-overlay .modal-container .modal-body { color: #000 !important; }
.modal-overlay .modal-container .close-modal-btn { color: #888 !important; }
.modal-overlay .modal-container .modal-footer { border-top: 1px solid #f0f0f0 !important; }

/* ============================================================
   书籍库「头牌大卡片 + 其他书籍列表」（2026-10-01，v3）
   · 大卡片 = 当前正在写的那本（比 v1 矮一圈）
   · 其他书籍 = 一行一本的列表，紧跟大卡片下方，不再分组
   · 底色一律用原来的实色卡片方案（--card-bg + 边框 + 阴影），不用毛玻璃
   · 悬停：微微放大 + 边框点亮 + 阴影加深
   · 颜色全部走 variables.css 主题变量，6 个主题自动跟随
   · 图墙视图不受影响：图墙模式下由 JS 把这两块 display:none
   ============================================================ */

/* ===== 头牌大卡片（当前书）===== */
.bookshelf-hero {
    margin-bottom: 10px;
}

.bookshelf-hero-card {
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 16px 22px;
    border: 1px solid var(--border-color);
    border-radius: 15px;
    background: var(--card-bg);
    box-shadow: var(--shadow-sm);
    cursor: pointer;
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
.bookshelf-hero-card:hover {
    transform: scale(1.006);
    border-color: rgba(var(--theme-primary-rgb), 0.42);
    box-shadow: var(--shadow-md);
}

/* 左：封面（比 v1 的 176×235 矮一圈） */
.bookshelf-hero-cover {
    width: 124px;
    height: 166px;
    flex-shrink: 0;
    border-radius: 10px;
    overflow: hidden;
    background: linear-gradient(135deg, var(--theme-primary), var(--text-secondary));
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.16);
}
.bookshelf-hero-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.bookshelf-hero-cover .bookshelf-hero-cover-ph {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #fff;
    opacity: 0.9;
}

/* 右：信息区（min-width:0 保证长标题能正常省略而不是把卡片撑破） */
.bookshelf-hero-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* 信息行：状态点 + 开笔日期 + 最后编辑 */
.bookshelf-hero-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 0.8rem;
    color: var(--text-secondary);
}
.bookshelf-hero-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--text-secondary);
}
.bookshelf-hero-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--theme-primary);
    flex-shrink: 0;
}
.bookshelf-hero-sep {
    width: 1px;
    height: 12px;
    background: var(--border-color);
}

/* 书名 */
.bookshelf-hero-title {
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--text-primary);
    letter-spacing: 0.4px;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* 简介：固定一行，保持卡片矮 */
.bookshelf-hero-intro {
    font-size: 0.88rem;
    line-height: 1.6;
    color: var(--text-secondary);
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}

/* 四个数字 + 继续写按钮 */
.bookshelf-hero-bottom {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-top: 2px;
    flex-wrap: wrap;
}
.bookshelf-hero-stats {
    display: flex;
    gap: 34px;
    flex-wrap: wrap;
}
.bookshelf-hero-stat {
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.bookshelf-hero-stat-label {
    font-size: 0.76rem;
    color: var(--text-secondary);
}
.bookshelf-hero-stat-value {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1;
    color: var(--text-primary);
}
.bookshelf-hero-stat-unit {
    font-size: 0.74rem;
    font-weight: 400;
    color: var(--text-secondary);
    margin-left: 2px;
}

/* 主行动按钮 */
.bookshelf-hero-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    padding: 10px 20px;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    font-family: inherit;
    font-size: 0.9rem;
    font-weight: 600;
    color: #fff;
    background: linear-gradient(135deg, var(--theme-primary), color-mix(in srgb, var(--theme-primary) 78%, #8a7aff));
    box-shadow: 0 6px 18px rgba(var(--theme-primary-rgb), 0.32);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
    white-space: nowrap;
}
.bookshelf-hero-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(var(--theme-primary-rgb), 0.42);
}
.bookshelf-hero-cta-label { font-weight: 600; }
.bookshelf-hero-cta-chapter {
    font-weight: 400;
    opacity: 0.92;
    max-width: 190px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bookshelf-hero-cta i { font-size: 0.78rem; opacity: 0.95; }

/* ===== 其他书籍：一行一本，不展开 ===== */
.bookshelf-cards {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.bookshelf-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 9px 16px;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    background: var(--card-bg);
    box-shadow: var(--shadow-sm);
    cursor: pointer;
    transform-origin: center;
    /* 悬停微微放大 + 阴影加深 */
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.bookshelf-row:hover {
    /* 1.018：能明确看出"浮起来"了，又不至于晃眼（1.012 实测太弱，几乎看不出来） */
    transform: scale(1.018);
    border-color: rgba(var(--theme-primary-rgb), 0.5);
    box-shadow: var(--shadow-md), 0 0 0 1px rgba(var(--theme-primary-rgb), 0.18);
    z-index: 2;
}

.bookshelf-row-cover {
    width: 42px;
    height: 56px;
    flex-shrink: 0;
    border-radius: 6px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--theme-primary), var(--text-secondary));
    color: #fff;
    font-size: 1rem;
}
.bookshelf-row-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.bookshelf-row-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.bookshelf-row-title {
    font-size: 0.96rem;
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bookshelf-row-sub {
    font-size: 0.76rem;
    color: var(--text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bookshelf-row-stats {
    display: flex;
    gap: 18px;
    flex-shrink: 0;
    font-size: 0.82rem;
    color: var(--text-secondary);
    white-space: nowrap;
}
.bookshelf-row-stats b {
    font-weight: 600;
    color: var(--text-primary);
}

.bookshelf-row-actions {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}
.bookshelf-row-actions button {
    width: 30px;
    height: 30px;
    border: none;
    background: transparent;
    border-radius: 8px;
    cursor: pointer;
    color: var(--text-secondary);
    font-size: 0.88rem;
    transition: background 0.16s ease, color 0.16s ease;
}
.bookshelf-row-actions button:hover {
    background: rgba(var(--theme-primary-rgb), 0.1);
    color: var(--theme-primary);
}

/* ===== 窄窗口 ===== */
@media (max-width: 900px) {
    .bookshelf-hero-card {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        padding: 16px;
    }
    .bookshelf-hero-cover { width: 104px; height: 140px; }
    .bookshelf-hero-title { font-size: 1.3rem; }
    .bookshelf-hero-stats { gap: 22px; }
    .bookshelf-hero-bottom { align-items: flex-start; }
    .bookshelf-row-stats { display: none; }
}
