/* Compact discovery and paginated archive share the existing reader. */
.article-section { margin: 0 0 30px; min-width: 0; }
.article-section-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.article-section-head h3 { margin:0; font:600 21px/1.5 var(--font-ui); }
.article-section-head p { color:var(--muted); font-size:13px; margin:5px 0 0; }
.article-list { display:block; border-top:1px solid var(--desk-line); }
.article-entry { padding:18px 0; min-width:0; border-bottom:1px solid var(--desk-line); }
.article-entry h3 { margin:0 0 6px; }
.article-title-link { display:block; padding:0; background:none; text-align:left; color:var(--ink); font:600 20px/1.65 var(--font-reading); overflow-wrap:anywhere; }
.article-title-link:hover { color:var(--primary); }
.article-summary { margin:0 0 6px; color:var(--muted); font-size:14px; line-height:1.8; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.article-meta { color:var(--muted); font-size:12px; line-height:1.8; margin:0; }
.article-status { color:var(--muted); line-height:1.8; padding:18px 0; }
#desk-articles .article-entry { padding:12px 0; }
#desk-articles .article-title-link { font:600 17px/1.6 var(--font-ui); }
#desk-articles .article-entry h3 { margin-bottom:4px; }
.library-tabs { grid-column:1/-1; display:flex; gap:26px; margin:0 0 28px; border-bottom:1px solid var(--desk-line); }
.library-tabs button { background:transparent; font-size:16px; font-weight:600; color:var(--muted); padding:12px 4px; border-bottom:3px solid transparent; min-height:48px; }
.library-tabs button[aria-pressed="true"] { color:var(--primary); border-bottom-color:var(--primary); }
#books-page[data-library-tab="books"] > #library-articles { display:none!important; }
#books-page[data-library-tab="articles"] > .book-shelf,
#books-page[data-library-tab="articles"] > .desk-directory,
#books-page[data-library-tab="articles"] > .revision-alert { display:none!important; }
#books-page #library-articles { grid-column:1/-1; order:0; margin-bottom:0; width:100%; max-width:1040px; }
.library-toolbar { display:grid; grid-template-columns:minmax(0,1fr) 165px; gap:16px; margin:18px 0 12px; }
.library-search-control { display:flex; gap:8px; align-items:center; min-width:0; }
.library-toolbar input,.library-toolbar select { min-width:0; min-height:44px; border:1px solid var(--desk-line); background:var(--surface); color:var(--ink); border-radius:4px; font-size:14px; padding:10px 12px; }
.library-toolbar input { width:100%; flex:1; }
.library-toolbar button { flex:none; min-height:44px; }
.library-count { color:var(--muted); font-size:13px; margin:12px 0; }
.library-pagination { display:flex; align-items:center; justify-content:center; gap:22px; margin:24px 0; font-size:14px; }
.library-pagination button { min-height:44px; }
.library-pagination button:disabled { opacity:.4; cursor:default; }
.library-pagination[hidden] { display:none; }
.library-toolbar select:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
#article-page { max-width: 900px; margin: 0 auto; --article-size: 20px; }
#article-page[data-font="large"] { --article-size: 23px; }
#article-page[data-font="small"] { --article-size: 18px; }
.article-toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 0 0 22px; border-bottom: 1px solid var(--desk-line); }
.article-toolbar-actions { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.article-variant { min-height:44px; padding:9px 14px; border:1px solid var(--primary); border-radius:4px; background:var(--surface); color:var(--primary); }
.article-variant[aria-pressed="true"] { background:var(--primary); color:var(--surface); }
.article-variant:disabled { opacity:.5; cursor:default; }
.article-variant:focus-visible { outline:2px solid var(--primary); outline-offset:3px; }
.article-reviewbar { position:sticky; top:64px; z-index:6; background:var(--surface); padding:12px; border:1px solid var(--desk-line); margin:0 0 22px; display:flex; gap:12px; align-items:center; justify-content:space-between; font-size:14px; }
/* Keep clipping without creating a non-scrolling ancestor for sticky navigation. */
#app:has(#article-page:not([hidden])) { overflow:clip; }
.article-reviewbar[hidden] { display:none; }
.article-reviewbar > div { display:flex; flex-wrap:wrap; gap:8px; }
.article-reviewbar button { min-height:44px; padding:8px 12px; background:var(--surface); color:var(--primary); border:1px solid var(--desk-line); border-radius:4px; }
.article-reviewbar button:disabled { opacity:.4; }
#article-review-next { background:var(--primary); color:var(--surface); }
.article-edit-block { border:1px solid var(--desk-line); border-left:3px solid #b39852; border-radius:6px; padding:12px 16px; margin:0 0 24px; scroll-margin-top:200px; cursor:pointer; }
.article-edit-block[data-active="true"] { outline:2px solid #aa842a; outline-offset:2px; }
.article-edit-link { display:block; min-height:44px; padding:6px 0; font-size:14px; background:transparent; color:var(--primary); text-align:left; }
.article-edit-block > p { margin:8px 0; white-space:pre-wrap; }
.article-edit-block > h2 { margin:8px 0; }
.article-edit-deleted { color:#8d3b35; background:#fbe1df; padding:2px 5px; font-size:16px; }
#article-change-dialog { padding:0; width:min(1000px,calc(100vw - 24px)); max-height:85dvh; border:1px solid var(--desk-line); border-radius:10px; background:var(--surface); color:var(--ink); overflow:hidden; }
#article-change-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr); }
#article-change-dialog::backdrop { background:#0008; }
#article-change-dialog > header { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:18px 24px; border-bottom:1px solid var(--desk-line); }
#article-change-dialog h2 { margin:0; font-size:26px; }
#article-change-label { margin:0 0 8px; font-size:14px; color:var(--muted); }
#article-change-close { min-height:44px; padding:8px 12px; flex:none; }
.article-change-scroll { overflow:auto; min-height:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; padding:20px 24px; font:18px/1.9 var(--font-reading); }
.article-change-scroll h3 { margin:0 0 14px; border-bottom:2px solid var(--desk-line); padding-bottom:8px; font-size:18px; }
.article-change-scroll section > div { white-space:pre-wrap; overflow-wrap:anywhere; }
#article-page .update-diff-removed { background:#f8d6d3; color:inherit; text-decoration:none; }
#article-page .update-diff-added { background:#dcebd4; color:inherit; text-decoration:none; }
@media(max-width:700px) {
  .article-reviewbar { flex-direction:column; align-items:stretch; top:64px; gap:6px; padding:8px; }
  .article-reviewbar > div { gap:4px; }
  .article-reviewbar button { font-size:12px; padding:6px; }
  .article-change-scroll { grid-template-columns:minmax(0,1fr); gap:22px; padding:16px; font-size:17px; }
  #article-change-dialog > header { padding:14px 16px; }
}
.article-toolbar a { color: var(--primary); min-height: 44px; display: inline-flex; align-items: center; }
.article-toolbar a[hidden] { display: none; }
.article-toolbar label { color: var(--muted); font-size: 14px; }
.article-toolbar select { color: var(--ink); background: var(--surface); border: 1px solid var(--desk-line); border-radius: 4px; padding: 9px; margin-left: 8px; min-height: 44px; }
.article-reading-header { margin: 36px 0 30px; }
.article-reading-header h1 { font: 600 clamp(27px, 3vw, 40px)/1.55 var(--font-reading); margin: 0 0 20px; overflow-wrap: anywhere; text-wrap: balance; }
.article-toc { border-bottom: 1px solid var(--desk-line); padding: 0 0 22px; margin: 0 0 32px; }
.article-toc summary, .article-sources summary { cursor: pointer; color: var(--primary); font-weight: 600; padding: 12px 0; }
#article-toc-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 20px; }
#article-toc-list button { text-align: left; min-height: 44px; padding: 6px 0; font-weight: 400; }
.article-body { color: var(--ink); font: var(--article-size)/2 var(--font-reading); overflow-wrap: break-word; }
.article-body p { margin: 0 0 1.25em; }
.article-body h2 { font: 600 1.24em/1.6 var(--font-reading); margin: 2em 0 1em; scroll-margin-top: 30px; }
.article-body sup { font: 11px var(--font-ui); padding: 0 2px; }
.article-body a, .article-sources a { color: var(--primary); }
.article-sources { margin-top: 36px; padding: 20px 0; border-top: 1px solid var(--desk-line); line-height: 1.85; }
.article-sources ol { padding-left: 26px; }
.article-sources li { padding: 10px 0; overflow-wrap: anywhere; font-size: 14px; scroll-margin-top: 30px; }
.article-paging { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-top: 1px solid var(--desk-line); margin-top: 20px; padding: 24px 0; }
.article-paging[hidden], .article-toc[hidden], .article-sources[hidden] { display: none; }
.article-paging button { min-height: 44px; }
.article-paging button:disabled { opacity: .4; cursor: default; }
.article-toolbar a:focus-visible, .article-body a:focus-visible, .article-sources a:focus-visible, .article-toolbar select:focus-visible { outline: 2px solid var(--primary); outline-offset: 4px; }
@media(max-width:700px) {
  .article-section { margin-bottom: 30px; }
  .article-section-head { align-items: flex-start; }
  .article-section-head h3 { font-size: 20px; }
  .article-section-head p { font-size: 12px; }
  .article-section-head > button { white-space: nowrap; font-size: 12px; padding: 8px 0; }
  .article-title-link { font-size: 19px; }
  .library-toolbar { grid-template-columns:minmax(0,1fr); gap:10px; }
  .library-toolbar select { width:165px; }
  .library-tabs { margin-bottom:24px; }
  .article-toolbar { gap: 6px; }
  .article-toolbar-actions { gap: 14px; }
  .article-reading-header { margin: 26px 0; }
  #article-page { --article-size: 18px; }
  #article-page[data-font="large"] { --article-size: 21px; }
  #article-page[data-font="small"] { --article-size: 16px; }
  #article-toc-list { grid-template-columns: 1fr; }
}
