/* Reading utilities reuse the journal's existing type and theme tokens. */
.reading-tools{border-block:1px solid var(--line);padding:1rem 0;margin:1.5rem 0 2rem}.reading-tools[hidden],.reading-shelf [hidden]{display:none!important}.reading-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.2rem}.reading-actions a{font-size:.8rem;min-height:44px;display:inline-flex;align-items:center}.reading-tools button,.reading-shelf button{font:inherit;font-size:.8rem;min-height:44px;padding:.55rem .9rem;border:1px solid var(--line-strong,var(--line));border-radius:3px;background:var(--paper,#f7f4ec);color:var(--ink);cursor:pointer}.reading-tools button:hover,.reading-shelf button:hover{border-color:var(--accent)}.reading-tools button:focus-visible,.reading-shelf button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.reading-tools button:disabled,.reading-shelf button:disabled{opacity:.6;cursor:wait}.reading-note,.reading-status{font-size:.74rem!important;color:var(--muted);line-height:1.6}.reading-status:empty{display:none}.reading-tools progress,.shelf-card progress{width:100%;height:3px;accent-color:var(--accent);display:block;margin:.8rem 0}.reading-tools .reading-note{margin:.6rem 0 0}.shelf-intro{font:450 clamp(1.4rem,3vw,1.9rem)/1.4 Newsreader,Georgia,serif;max-width:40ch}.shelf-section{margin:2.5rem 0}.shelf-section h2,.shelf-install h2,.shelf-discover h2{font-family:Newsreader,Georgia,serif;font-weight:450}.shelf-section-heading{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center}.shelf-section-heading h2{margin:0}.shelf-card{border-top:1px solid var(--line);padding:1.2rem 0}.shelf-card h3{font:450 1.4rem/1.3 Newsreader,Georgia,serif;margin:0 0 .4rem}.shelf-card p{font-size:.75rem;margin:.4rem 0;color:var(--muted)}.shelf-card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.7rem}.shelf-install{padding:1.8rem;border:1px solid var(--line-strong,var(--line));margin:3rem 0;background:var(--surface,var(--paper))}.shelf-install h2{font-size:2rem;margin:.4rem 0 1rem}.shelf-install p,.shelf-install summary{font-size:.85rem}.shelf-install summary{min-height:44px;cursor:pointer;display:list-item}.shelf-discover{border-top:1px solid var(--line);padding-top:1.5rem}.shelf-discover p{font-size:.9rem}@media(max-width:520px){.shelf-install{padding:1.2rem}.reading-actions{gap:.3rem .8rem}}@media print{.reading-tools,.shelf-install,.shelf-card-actions{display:none!important}}

/* Always in the page flow: discoverable on a phone without covering the text. */
.reading-shortcuts{border-bottom:1px solid var(--line);background:var(--surface-raised,var(--paper))}.reading-shortcuts-inner{display:flex;align-items:center;gap:1.5rem;min-height:52px}.reading-shortcuts a{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font-size:.78rem;text-decoration:none}.reading-shelf-shortcut{font-weight:650;color:var(--ink)}.reading-shelf-shortcut svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.6}.reading-shortcuts-benefit{font-size:.74rem;color:var(--muted);flex:1}.reading-install-shortcut{margin-left:auto;color:var(--accent);font-weight:650}.reading-saved-count{border:1px solid var(--line);border-radius:3px;padding:.1rem .35rem;font-size:.65rem;font-weight:500;white-space:nowrap}.reading-shortcuts a:focus-visible,.shelf-install-actions a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.reading-shortcuts [hidden],.reading-save-next[hidden]{display:none!important}.reading-save-next{font-size:.8rem;padding:.8rem 1rem;background:var(--surface);border-left:2px solid var(--accent);margin:.8rem 0}.reading-save-next a{display:inline-block;min-height:44px;align-content:center}.shelf-install{scroll-margin-top:1rem;margin:1.5rem 0 2.5rem}.shelf-install h2{font-size:1.75rem}.shelf-install-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.shelf-install-actions a{min-height:44px;display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem}.shelf-install [data-reading-install]{background:var(--ink);color:var(--paper);font-weight:650}.shelf-install [data-reading-install]:hover{border-color:var(--accent)}@media(max-width:640px){.reading-shortcuts-inner{gap:.7rem}.reading-shortcuts-benefit{display:none}.reading-shortcuts a{font-size:.76rem}.reading-saved-count{font-size:.6rem}.reading-shelf-shortcut{gap:.35rem!important}}@media(max-width:360px){.reading-shelf-shortcut svg{display:none}.reading-shortcuts-inner{gap:.3rem}.reading-shortcuts a{font-size:.72rem}.reading-saved-count{padding:.1rem .2rem}}@media print{.reading-shortcuts,.reading-save-next{display:none!important}}
@media(max-width:360px){.reading-saved-count{display:none}}

/* Reserve the existing controls before deferred enhancement, without exposing inert UI. */
html.theme-capable .reading-tools[hidden]{display:block!important;visibility:hidden}

/* Retain the prebuilt menu when the shared legacy enhancer adds its equivalent. */
.article-contents[data-static-contents] + .article-contents{display:none}
