/* catalog.css — 书库/分页 */
/* ============================================================
   书库
   ============================================================ */
.catalog-header{margin-bottom:28px;}
.catalog-header h1{margin:0 0 6px;font-size:26px;font-weight:700;}
.catalog-count{color:var(--muted);font-size:14px;margin:0 0 18px;}

.catalog-filter{
    display:flex;flex-wrap:wrap;gap:12px;align-items:center;
    background:var(--surface);border:1px solid var(--border);
    border-radius:var(--radius);padding:16px;
}
.catalog-filter input,.catalog-filter select{
    padding:11px 14px;border:1px solid var(--border);
    border-radius:var(--radius-sm);background:var(--surface);
    color:var(--text);font-family:inherit;font-size:13.5px;
    transition:border-color var(--transition),box-shadow var(--transition);
}
.catalog-filter input{min-width:200px;flex:1;}
.catalog-filter input:focus,.catalog-filter select:focus{
    outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);
}
.catalog-filter input:user-invalid,.catalog-filter select:user-invalid{
    border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft);
}

.category-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;}
.category-pill{
    padding:6px 16px;border-radius:999px;background:var(--surface);
    border:1px solid var(--border);color:var(--text-2);
    font-size:13.5px;font-weight:500;transition:all var(--transition);
}
.category-pill:hover{border-color:var(--text-2);color:var(--text);}
.category-pill.active{background:var(--btn-inverse-bg);color:var(--btn-inverse-fg);border-color:var(--btn-inverse-bg);}

.catalog-sort{
    display:flex;flex-wrap:wrap;align-items:center;gap:8px;
    margin-top:14px;padding:10px 14px;
    background:var(--surface);border:1px solid var(--border);
    border-radius:var(--radius);
}
.catalog-sort-label{
    font-size:13px;color:var(--muted);font-weight:500;
    flex-shrink:0;
}
.sort-pill{
    display:inline-flex;align-items:center;
    padding:5px 14px;border-radius:999px;
    background:transparent;border:1px solid transparent;
    color:var(--text-2);font-size:13px;font-weight:500;
    transition:all var(--transition);
    min-height:30px;
}
.sort-pill:hover{
    background:var(--bg-subtle);
    color:var(--text);
}
.sort-pill.active{
    background:var(--btn-inverse-bg);color:var(--btn-inverse-fg);
    border-color:var(--btn-inverse-bg);
    font-weight:600;
}

.catalog-count{color:var(--muted);font-size:13.5px;margin:18px 0;}
.catalog-count strong{color:var(--text);font-weight:600;}

.author-header{margin-bottom:28px;}
.author-title-row{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:14px;}
.author-header h1{margin:0;font-size:26px;font-weight:700;}
.author-subtitle{color:var(--muted);font-size:14px;}
.author-stats{display:flex;gap:28px;margin-top:14px;flex-wrap:wrap;}
.author-stat{color:var(--text-2);font-size:14px;}
.author-stat-num{color:var(--text);font-weight:600;}
.author-stat-num.is-primary{color:var(--primary);}
.author-stat-num.is-jade{color:var(--jade);}

.bookshelf-header{margin-bottom:28px;}
.bookshelf-header h1{margin:0 0 8px;font-size:26px;font-weight:700;}
.bookshelf-meta{color:var(--muted);font-size:14px;}

.pagination-ellipsis{color:var(--muted);padding:0 4px;}
.pagination-info{font-size:13px;color:var(--muted,#888);margin-right:12px;white-space:nowrap;}

/* ============================================================
   分页
   ============================================================ */
.pagination{
    display:flex;justify-content:center;gap:8px;
    margin-top:40px;flex-wrap:wrap;align-items:center;
}
.pagination a,.pagination span{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:40px;height:40px;padding:0 14px;
    border-radius:var(--radius);background:var(--surface);
    border:1px solid var(--border);color:var(--text-2);
    font-size:14px;font-weight:500;transition:all var(--transition);
}
.pagination a:hover{border-color:var(--text-2);color:var(--text);}
.pagination a.active{background:var(--btn-inverse-bg);border-color:var(--btn-inverse-bg);color:var(--btn-inverse-fg);}

