/* ═══ Tab 切换 ═══ */
.tab-bar{display:flex;gap:6px;margin-bottom:20px;border-bottom:2px solid var(--border);padding-bottom:0}
.tab-btn{padding:10px 20px;border:1px solid var(--border);border-bottom:none;border-radius:8px 8px 0 0;background:var(--bg-accent);color:var(--text-muted);font-size:.72em;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap}
.tab-btn:hover{color:var(--text-header);background:var(--bg-card)}
.tab-btn.active{background:var(--bg-card);color:var(--accent-red);border-color:var(--border-accent);border-bottom:2px solid var(--bg-card);margin-bottom:-2px;position:relative;z-index:1}
.tab-panel{display:none}
.tab-panel.active{display:block}
@media(max-width:600px){.tab-btn{padding:8px 12px;font-size:.65em}}

/* ═══ 折叠面板 ═══ */
.collapse-hd{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg-accent);border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:.72em;font-weight:700;color:var(--text-header);transition:all .2s;margin:14px 0 0;user-select:none}
.collapse-hd:hover{border-color:var(--border-accent);background:var(--bg-card)}
.collapse-hd .arrow{transition:transform .2s;color:var(--text-muted);font-size:.8em}
.collapse-hd.open .arrow{transform:rotate(90deg)}
.collapse-body{overflow:hidden;transition:max-height .3s ease;padding:0 4px}
.collapse-body.shut{max-height:0!important;padding:0 4px}

/* ═══ 状态概览 ═══ */
.status-row{display:flex;flex-wrap:wrap;gap:10px}
.status-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-accent);border:1px solid var(--border);border-radius:6px;font-size:.65em;color:var(--text)}
.status-chip .dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.status-chip .dot.green{background:var(--accent-green)}
.status-chip .dot.gold{background:var(--accent-gold)}
.status-chip .dot.red{background:var(--accent-red)}
.status-chip .dot.blue{background:var(--accent-blue)}
.status-chip strong{color:var(--text-header);font-weight:700}

/* ═══ 架构卡片(概览) ═══ */
.arch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
@media(max-width:768px){.arch-grid{grid-template-columns:repeat(2,1fr)}}
.arch-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:16px;text-align:center;transition:all .2s}
.arch-card:hover{border-color:var(--border-accent);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.arch-card .big{font-size:2em;font-weight:900;color:var(--text-header);line-height:1.1}
.arch-card .unit{font-size:.36em;font-weight:500;color:var(--text-muted);margin-left:4px}
.arch-card .label{font-size:.68em;font-weight:700;color:var(--text-header);margin-top:4px}
.arch-card .desc{font-size:.58em;color:var(--text-muted);margin-top:2px}
.arch-card .prog{height:4px;background:var(--bg-accent);border-radius:2px;margin-top:8px;overflow:hidden}
.arch-card .prog .fill{height:100%;background:var(--accent-green);border-radius:2px;transition:width .4s}

/* ═══ 详情卡片 ═══ */
.detail-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:14px 16px;margin:10px 0;transition:all .2s}
.detail-card:hover{border-color:var(--border-accent);box-shadow:var(--shadow-sm)}
.detail-card .big{font-size:1.6em;font-weight:900;color:var(--text-header);line-height:1.1}
.detail-card .big .unit{font-size:.4em;font-weight:500;color:var(--text-muted);margin-left:4px}
.detail-card .prog{height:6px;background:var(--bg-accent);border-radius:3px;margin:10px 0;overflow:hidden}
.detail-card .prog .fill{height:100%;border-radius:3px;transition:width .4s}
.detail-card .sub{font-size:.64em;color:var(--text-muted);line-height:1.7}
.detail-card .sub .line{display:block}
.detail-card .sub .dim{opacity:.55}
.detail-card .sub .tag{color:var(--text);font-weight:600}

/* ═══ 待办 ═══ */
.todo-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:14px 16px;margin-bottom:14px}
.todo-cat-title{font-size:.68em;font-weight:800;color:var(--text-header);margin:12px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--border);letter-spacing:.5px}
.todo-cat-title:first-child{margin-top:0}
.todo-item{display:flex;align-items:flex-start;gap:8px;padding:4px 0;font-size:.64em;color:var(--text);line-height:1.6}
.todo-item.done{color:var(--text-muted);text-decoration:line-through;text-decoration-color:var(--border)}
.todo-mark{flex-shrink:0;width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:3px;font-size:.8em;color:var(--text-muted);background:var(--bg-accent);margin-top:2px}
.todo-item.done .todo-mark{color:var(--accent-green);border-color:var(--accent-green);background:rgba(39,174,96,.08)}

/* ═══ 书名标题块 ═══ */
.book-title-block{text-align:center;margin:28px 0 20px;padding:0 16px}
.book-title-block .main-logo{font-family:var(--font-serif);font-size:2.6em;font-weight:900;color:var(--text-header);letter-spacing:.06em;margin:0;line-height:1.2;text-align:center}
.book-title-block .main-logo .accent-red{color:var(--accent-red)}
.book-title-block .desc-gray{font-family:var(--font-sans);font-size:.82em;color:var(--text-muted);margin:6px 0 0;line-height:1.6;text-align:center}
.book-title-block .desc-gold{color:var(--accent-gold);font-size:.72em;margin-top:4px;text-align:center}
@media(max-width:600px){.book-title-block .main-logo{font-size:1.8em}}