/* Opt-in only: no selectors outside the reader root. */
.reader-ui { --reader-ink:#47392d; --reader-accent:#79573c; --reader-wash:#f5f0e7; color:var(--reader-ink); width:100%; max-width:1180px; margin:1.25rem auto 2rem; font:inherit; box-sizing:border-box; }
.reader-ui[data-site="site_a"] { --reader-ink:#1f3248; --reader-accent:#285d92; --reader-wash:#f1f5f8; }
.reader-ui.reader-tech-search-page { padding-inline:clamp(1rem,3vw,2rem); }
.reader-ui *, .reader-ui *::before, .reader-ui *::after { box-sizing:border-box; }
.reader-ui [hidden] { display:none !important; }
.reader-ui button, .reader-ui input, .reader-ui select { font:inherit; color:inherit; }
.reader-ui button { cursor:pointer; min-height:44px; border:0; background:transparent; padding:.5rem .7rem; border-radius:2px; }
.reader-ui button:disabled { cursor:default; opacity:.55; }
.reader-ui :is(button,a,select):focus-visible { outline:2px solid var(--reader-accent); outline-offset:3px; }
.reader-ui :is(input,select) { width:100%; min-width:0; min-height:44px; background:transparent; border:0; border-bottom:1px solid #b9b4ad; border-radius:0; padding:.45rem .25rem; }
.reader-ui input:focus-visible { outline:none; border-bottom:3px solid var(--reader-accent); padding-bottom:calc(.45rem - 2px); }
.reader-ui .reader-search-row { display:flex; align-items:flex-end; gap:.75rem; }
.reader-ui .reader-search-label { display:block; flex:1; min-width:0; font-size:.9rem; }
.reader-ui .reader-query { display:block; margin-top:.3rem; font-size:1.1rem; }
.reader-ui .reader-submit { background:var(--reader-accent); color:#fff; padding:.6rem 1.2rem; }
.reader-ui .reader-facets { display:flex; align-items:center; flex-wrap:wrap; gap:.15rem .3rem; margin-top:.55rem; }
.reader-ui .reader-facet[aria-expanded="true"] { text-decoration:underline; text-underline-offset:7px; text-decoration-thickness:2px; }
.reader-ui .reader-sort { width:auto; max-width:9rem; margin-left:auto; font-size:.88rem; }
.reader-ui .reader-reset { font-size:.85rem; }
.reader-ui .reader-panel { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem 1.2rem; padding:1rem; background:var(--reader-wash); margin-top:.7rem; }
.reader-ui .reader-field { min-width:0; display:block; font-size:.9rem; }
.reader-ui .reader-field :is(input,select) { display:block; margin-top:.3rem; }
.reader-ui .reader-apply { justify-self:start; text-decoration:underline; text-underline-offset:5px; }
.reader-ui .reader-selected, .reader-ui .reader-status, .reader-ui .reader-correction { font-size:.86rem; line-height:1.65; overflow-wrap:anywhere; }
.reader-ui .reader-selected:empty, .reader-ui .reader-status:empty { display:none; }
.reader-ui .reader-status { margin:.7rem 0; }
.reader-ui .reader-results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.6rem 1.25rem; }
.reader-ui .reader-card { min-width:0; padding-top:.5rem; }
.reader-ui .reader-card-link { color:inherit; text-decoration:none; display:block; }
.reader-ui .reader-image-frame { aspect-ratio:4/3; background:var(--reader-wash); overflow:hidden; margin-bottom:.85rem; }
.reader-ui .reader-image-frame img { width:100%; height:100%; display:block; object-fit:contain; }
.reader-ui .reader-image-frame[data-fit="cover"] img { object-fit:cover; }
.reader-ui .reader-card-title { font-size:1.15rem; line-height:1.55; margin:0 0 .6rem; word-break:keep-all; overflow-wrap:anywhere; }
.reader-ui .reader-card-summary { font-size:.9rem; line-height:1.7; margin:.4rem 0 .8rem; overflow-wrap:anywhere; }
.reader-ui .reader-card-facts { display:grid; grid-template-columns:auto minmax(0,1fr); gap:.25rem .65rem; font-size:.82rem; line-height:1.6; margin:.6rem 0; }
.reader-ui .reader-card-facts dt { opacity:.8; }
.reader-ui .reader-card-facts dd { margin:0; overflow-wrap:anywhere; }
.reader-ui .reader-card-environment, .reader-ui .reader-card-reason, .reader-ui .reader-attribution { font-size:.8rem; line-height:1.6; overflow-wrap:anywhere; }
.reader-ui .reader-actions { display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1rem; }
.reader-ui .reader-actions button { text-decoration:underline; text-underline-offset:5px; }
@media (hover:hover) { .reader-ui .reader-card-link:hover .reader-card-title { text-decoration:underline; text-underline-offset:4px; } }
@media (max-width:760px) { .reader-ui .reader-results { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:480px) {
  .reader-ui { margin:1rem auto 1.5rem; }
  .reader-ui .reader-results, .reader-ui .reader-panel { grid-template-columns:minmax(0,1fr); }
  .reader-ui .reader-panel { padding:.8rem; }
  .reader-ui .reader-search-row { gap:.4rem; }
  .reader-ui .reader-submit { padding:.6rem .85rem; }
  .reader-ui .reader-sort { margin-left:0; }
  .reader-ui .reader-facets { column-gap:.1rem; }
}

/* Reader recommendations: explicit injected component only. */
.reader-recommendations { --rec-ink:#47392d; --rec-accent:#79573c; --rec-wash:#f5f0e7; color:var(--rec-ink); margin:2rem 0 1rem; font:inherit; }
.reader-recommendations[data-site="site_a"] { --rec-ink:#1f3248; --rec-accent:#285d92; --rec-wash:#f1f5f8; }
.reader-recommendations *, .reader-recommendations *::before { box-sizing:border-box; }
.reader-recommendations[hidden], .reader-recommendations [hidden] { display:none !important; }
.reader-recommendations .reader-recommendations-heading { font-size:1.25rem; line-height:1.5; margin:0 0 .4rem; }
.reader-recommendations .reader-recommendations-heading:focus { outline:2px solid var(--rec-accent); outline-offset:4px; }
.reader-recommendations .reader-recommendations-status { font-size:.85rem; line-height:1.65; margin:.25rem 0 1rem; }
.reader-recommendations .reader-recommendations-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.reader-recommendations .reader-recommendation-card { min-width:0; }
.reader-recommendations .reader-recommendation-link { display:block; color:inherit; text-decoration:none; }
.reader-recommendations .reader-recommendation-link:focus-visible { outline:2px solid var(--rec-accent); outline-offset:5px; }
.reader-recommendations .reader-recommendation-frame { aspect-ratio:4/3; background:var(--rec-wash); overflow:hidden; margin-bottom:.85rem; }
.reader-recommendations .reader-recommendation-frame img { width:100%; height:100%; display:block; object-fit:contain; }
.reader-recommendations .reader-recommendation-frame[data-fit="cover"] img { object-fit:cover; }
.reader-recommendations .reader-recommendation-title { font-size:1.05rem; line-height:1.6; margin:0 0 .55rem; word-break:keep-all; overflow-wrap:anywhere; }
.reader-recommendations .reader-recommendation-details { display:grid; grid-template-columns:auto minmax(0,1fr); gap:.15rem .7rem; font-size:.84rem; line-height:1.6; margin:.5rem 0; }
.reader-recommendations .reader-recommendation-details dt { opacity:.8; }
.reader-recommendations .reader-recommendation-details dd { margin:0; overflow-wrap:anywhere; }
.reader-recommendations .reader-recommendation-reason, .reader-recommendations .reader-recommendation-attribution { display:block; font-size:.8rem; line-height:1.6; margin:.5rem 0; overflow-wrap:anywhere; }
@media (hover:hover) { .reader-recommendations .reader-recommendation-link:hover .reader-recommendation-title { text-decoration:underline; text-underline-offset:4px; } }
@media (max-width:480px) { .reader-recommendations .reader-recommendations-list { grid-template-columns:minmax(0,1fr); gap:1.5rem; } }
