/* Hallmark · genre: modern-minimal · macrostructure: Index-First · design-system: DESIGN.md · designed-as-app · nav: N9 · footer: Ft2 · contrast: pass (40–41) · slop: pass (42–45) · honest: pass (46) · chrome: pass (47) · tokens: pass (48) · responsive: pass (49) · icons: pass (30) · mobile: pass (34,49,50–57) */
/* Hallmark · pre-emit critique: P5 H5 E4 S5 R5 V4 */
@import "./tokens.css";

@font-face {
  font-family: Vazirmatn;
  src: url("./assets/fonts/Vazirmatn.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
:root {
  color-scheme: light;
  --navy: #071f2a;
  --navy-2: #0d3440;
  --ink: #102e37;
  --muted: #61777c;
  --paper: #f3f7f6;
  --surface: #ffffff;
  --surface-2: #eaf3f0;
  --line: #d3e0dd;
  --line-strong: #a9c0bb;
  --teal: #087c69;
  --mint: #59e3c4;
  --mint-soft: #d9f8ef;
  --yellow: #ffd166;
  --rose: #cf5c69;
  --shadow: 0 22px 70px rgba(7,31,42,.10);
  --radius: 18px;
  font-family: Vazirmatn, Tahoma, Arial, sans-serif;
  font-synthesis: none;
}
* { box-sizing: border-box; font-family: Vazirmatn, Tahoma, sans-serif; }
textarea { font:inherit; }
html { scroll-behavior: smooth; }
body { margin:0; min-width:320px; background:var(--paper); color:var(--ink); line-height:1.8; }
button,input,select { font:inherit; }
button,select { cursor:pointer; }
a { color:inherit; }
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,[role="tabpanel"]:focus-visible { outline:3px solid var(--teal); outline-offset:3px; }
[hidden] { display:none !important; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.shell { width:min(1220px,calc(100% - 40px)); margin-inline:auto; }
.skip-link { position:fixed; z-index:200; top:10px; right:10px; transform:translateY(-160%); background:var(--yellow); color:var(--navy); padding:8px 14px; border-radius:9px; font-weight:800; }
.skip-link:focus { transform:none; }
.topbar { position:sticky; top:0; z-index:60; background:var(--navy); border-bottom:1px solid rgba(255,255,255,.1); color:#fff; }
.topbar__inner { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
.brand__mark { width:43px; height:48px; display:grid; place-items:center; border-radius:12px 12px 4px 12px; background:var(--mint); color:var(--navy); font-weight:950; font-size:1.35rem; box-shadow:inset 0 -7px 0 rgba(7,31,42,.08); }
.brand strong { display:block; font-size:1.1rem; }
.brand small { display:block; margin-top:-4px; color:#bad0cc; font-size:.72rem; }
.top-actions { display:flex; gap:8px; }
.ghost-button,.primary-button,.link-button,.view-button,.icon-button,.compare-toggle { border:0; }
.ghost-button { min-height:40px; border:1px solid rgba(255,255,255,.20); border-radius:11px; background:rgba(255,255,255,.06); color:inherit; padding:7px 12px; }
.top-actions .about-link { display:inline-flex; align-items:center; text-decoration:none; white-space:nowrap; }
.ghost-button b { display:inline-grid; place-items:center; min-width:22px; height:22px; margin-right:5px; padding:0 5px; border-radius:20px; background:var(--mint); color:var(--navy); font-size:.72rem; }
.ghost-button:disabled { opacity:.45; cursor:not-allowed; }
.hero { position:relative; overflow:hidden; background:var(--navy); color:#fff; padding:58px 0 74px; }
.hero::before { content:""; position:absolute; inset:auto -55px -85px auto; width:350px; height:350px; border:1px solid rgba(89,227,196,.2); border-radius:50%; }
.hero::after { content:""; position:absolute; inset:auto 25px -135px auto; width:390px; height:390px; border:1px solid rgba(89,227,196,.1); border-radius:50%; }
.hero__grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(390px,.75fr); align-items:end; gap:54px; }
.eyebrow,.section-kicker { margin:0 0 6px; color:var(--teal); font-size:.75rem; font-weight:900; }
.hero .eyebrow { color:var(--mint); }
.hero h1 { max-width:760px; margin:0; font-size:clamp(2rem,4.5vw,4.15rem); line-height:1.25; text-wrap:balance; }
.hero__copy>p { text-wrap:pretty; }
.hero__copy>p:last-child { max-width:720px; margin:18px 0 0; color:#c6d8d4; font-size:1.02rem; }
.hero__stats { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.hero__stats article { min-height:112px; padding:17px 18px; border:1px solid rgba(255,255,255,.13); border-radius:15px; background:rgba(255,255,255,.055); backdrop-filter:blur(8px); }
.hero__stats strong { display:block; color:var(--mint); font-size:1.65rem; }
.hero__stats span { color:#bdd0cc; font-size:.78rem; }
.workspace { position:relative; z-index:3; margin-top:-34px; padding-bottom:90px; }
.workspace-tabs { display:flex; gap:6px; width:fit-content; max-width:100%; padding:7px; border:1px solid var(--line); border-radius:15px 15px 0 0; background:var(--surface); box-shadow:0 -5px 30px rgba(7,31,42,.08); scroll-margin-top:92px; }
.workspace-tab { display:flex; align-items:center; gap:10px; min-height:48px; padding:7px 21px; border:0; border-radius:9px; background:transparent; color:var(--ink); font-weight:850; white-space:nowrap; }
.workspace-tab span { color:var(--teal); font-size:.72rem; font-variant-numeric:tabular-nums; }
.workspace-tab.is-active { background:var(--navy); color:#fff; }
.workspace-tab:not(.is-active):hover { background:var(--surface-2); }
.workspace-tab.is-active span { color:var(--mint); }
.search-workspace { scroll-margin-top:95px; }
.search-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:26px; }
.search-card__head,.results-toolbar { display:flex; align-items:end; justify-content:space-between; gap:20px; }
.search-card h2,.results-toolbar h2 { margin:0; line-height:1.35; }
.search-card h2 { font-size:1.35rem; }
.link-button { background:transparent; color:var(--teal); padding:7px 0; border-bottom:1px solid currentColor; font-weight:800; }
.search-field { display:grid; grid-template-columns:26px minmax(0,1fr) auto; gap:13px; align-items:center; min-height:66px; margin-top:20px; padding:0 18px; border:2px solid var(--navy); border-radius:14px; background:#f9fcfb; }
.search-field:focus-within { border-color:var(--teal); box-shadow:0 0 0 5px rgba(8,124,105,.11); }
.search-field svg { width:25px; fill:none; stroke:var(--teal); stroke-width:1.8; }
.search-field input { width:100%; border:0; outline:0; background:transparent; color:var(--ink); font-size:1rem; }
kbd { direction:ltr; border:1px solid var(--line-strong); border-bottom-width:2px; border-radius:6px; color:var(--muted); padding:1px 9px; font:700 .75rem/1.7 Vazirmatn, Tahoma, sans-serif; }
.filters { margin-top:16px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.filters label { display:grid; gap:5px; min-width:0; }
.filters span { color:var(--muted); font-size:.74rem; font-weight:800; }
.filters select { min-width:0; height:45px; border:1px solid var(--line-strong); border-radius:10px; background:#fff; color:var(--ink); padding:0 10px; }
.results-toolbar { padding:36px 2px 14px; border-bottom:1px solid var(--line-strong); }
.results-toolbar h2 { font-size:1.1rem; }
#results-heading { scroll-margin-top:100px; }
.view-tools { display:flex; gap:6px; padding:4px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.view-button { width:40px; height:40px; border-radius:7px; background:transparent; color:var(--muted); }
.view-button.is-active { background:var(--navy); color:#fff; }
.results-grid,.loading-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:18px; }
.results-grid.is-list { grid-template-columns:1fr; }
.results-grid.is-list .journal-card { grid-template-columns:95px minmax(0,1fr) auto; min-height:unset; }
.results-grid.is-list .journal-card__actions { width:170px; border-top:0; border-right:1px solid var(--line); align-content:center; }
.journal-card { position:relative; min-width:0; min-height:335px; display:grid; grid-template-rows:auto 1fr auto; background:var(--surface); border:1px solid var(--line); border-radius:16px; overflow:hidden; transition:transform .18s ease-out; }
.journal-card:hover { transform:translateY(-3px); border-color:var(--line-strong); }
.journal-card__top { display:flex; justify-content:space-between; gap:10px; padding:16px 17px 0; }
.badge-row { display:flex; flex-wrap:wrap; gap:6px; }
.badge { display:inline-flex; align-items:center; min-height:27px; padding:2px 8px; border-radius:7px; background:var(--surface-2); color:var(--teal); font-size:.75rem; font-weight:900; }
.badge--rank { background:var(--yellow); color:var(--navy); }
.badge--muted { color:var(--muted); background:#f0f3f3; }
.icon-button { width:40px; height:40px; display:grid; place-items:center; border-radius:9px; background:#f3f7f6; color:var(--muted); font-size:1.18rem; }
.icon-button.is-active { background:var(--mint-soft); color:var(--teal); }
.journal-card__body { padding:13px 17px 17px; }
.journal-card__subject { margin:0; color:var(--teal); font-size:.72rem; font-weight:900; }
.journal-card h3 { direction:ltr; text-align:left; margin:5px 0 4px; min-height:52px; font-size:1.03rem; line-height:1.45; overflow-wrap:anywhere; }
.publisher { direction:ltr; text-align:left; margin:0; min-height:25px; color:var(--muted); font-size:.76rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.scope-preview { margin:13px 0 0; color:#4f666b; font-size:.78rem; line-height:1.8; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin:16px 0 0; padding-top:13px; border-top:1px solid var(--line); }
.metrics div { min-width:0; }
.metrics dt { color:var(--muted); font-size:.74rem; }
.metrics dd { margin:0; font-weight:950; font-size:.79rem; font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.journal-card__actions { position:relative; z-index:2; display:grid; grid-template-columns:1fr auto; gap:8px; padding:11px 13px; border-top:1px solid var(--line); background:#fbfdfc; }
.detail-button { min-height:39px; border:0; border-radius:9px; background:var(--navy); color:#fff; font-weight:850; }
.external-button { min-width:98px; padding:0 9px; display:grid; place-items:center; border:1px solid var(--line-strong); border-radius:9px; background:#fff; color:var(--teal); text-decoration:none; font-weight:900; font-size:.7rem; white-space:nowrap; }
.compare-toggle { position:absolute; left:12px; top:57px; z-index:3; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--muted); padding:4px 8px; font-size:.68rem; font-weight:800; }
.compare-toggle.is-active { background:var(--mint); color:var(--navy); border-color:transparent; }
.loading-grid div { height:330px; border:1px solid var(--line); border-radius:16px; background:var(--surface-2); }
.state-card { margin-top:18px; padding:65px 25px; border:1px dashed var(--line-strong); border-radius:16px; background:#fff; text-align:center; }
.state-card__icon { display:grid; place-items:center; width:48px; height:48px; margin:0 auto 10px; border-radius:50%; background:var(--surface-2); color:var(--teal); font-weight:950; }
.state-card h3 { margin:0; }.state-card p { margin:5px 0 18px; color:var(--muted); }
.primary-button { min-height:42px; border-radius:10px; background:var(--navy); color:#fff; padding:8px 16px; font-weight:850; }
.primary-button:not(:disabled):hover,.detail-button:hover { background:var(--navy-2); }
.pagination { display:flex; justify-content:center; align-items:center; gap:16px; margin-top:28px; }
.pagination button { min-height:41px; border:1px solid var(--navy); border-radius:10px; background:#fff; color:var(--navy); padding:7px 14px; font-weight:800; }
.pagination button:disabled { opacity:.35; cursor:not-allowed; }.pagination span { color:var(--muted); font-size:.82rem; }
.compare-tray { position:fixed; inset:auto 0 max(18px,env(safe-area-inset-bottom)); z-index:55; pointer-events:none; }
.compare-tray__inner { pointer-events:auto; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:13px 16px; border-radius:15px; background:rgba(7,31,42,.96); color:#fff; box-shadow:0 18px 60px rgba(7,31,42,.3); backdrop-filter:blur(12px); }
.compare-tray__inner>div:first-child { display:flex; align-items:center; gap:12px; }.compare-tray__inner span { color:#bcd0cc; font-size:.78rem; }.compare-tray__actions { display:flex; gap:8px; }
.modal { width:min(930px,calc(100% - 28px)); max-height:90vh; padding:0; border:0; border-radius:20px; background:#fff; color:var(--ink); box-shadow:0 40px 120px rgba(0,0,0,.34); }
.modal::backdrop { background:rgba(4,20,26,.78); }
.modal__frame { position:relative; padding:32px; }.modal__frame--wide { width:min(1120px,100%); }
.close-button { position:sticky; float:left; top:0; z-index:10; width:40px; height:40px; border:1px solid var(--line); border-radius:50%; background:#fff; color:var(--ink); font-size:1.5rem; }
.dialog-hero { padding:3px 48px 23px 0; border-bottom:1px solid var(--line); }
.dialog-hero__meta { display:flex; gap:7px; flex-wrap:wrap; align-items:center; }
.dialog-hero h2 { direction:ltr; text-align:left; margin:12px 0 4px; font-size:clamp(1.45rem,3vw,2.3rem); line-height:1.35; }
.dialog-publisher { direction:ltr; text-align:left; margin:0; color:var(--muted); }
.dialog-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:17px; }
.dialog-actions a,.dialog-actions button { min-height:40px; display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line-strong); border-radius:10px; background:#fff; color:var(--ink); padding:7px 12px; text-decoration:none; font-weight:850; }
.dialog-actions a.primary-link { background:var(--navy); color:#fff; border-color:var(--navy); }.link-note { display:block; width:100%; color:var(--muted); font-size:.69rem; }
.detail-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin:22px 0; border:1px solid var(--line); background:var(--line); border-radius:13px; overflow:hidden; }
.detail-metrics div { min-width:0; background:#f8fbfa; padding:13px; }.detail-metrics dt { color:var(--muted); font-size:.68rem; }.detail-metrics dd { margin:2px 0 0; font-weight:950; font-size:.88rem; overflow-wrap:anywhere; }
.tabs { display:flex; gap:5px; overflow:auto; margin-top:23px; padding:5px; border:1px solid var(--line); border-radius:12px; background:#f6f9f8; }
.tab-button { flex:0 0 auto; border:0; border-radius:8px; background:transparent; color:var(--muted); padding:7px 12px; font-weight:850; }.tab-button.is-active { background:#fff; color:var(--teal); box-shadow:0 2px 10px rgba(7,31,42,.07); }
.tab-panel { padding-top:21px; }.detail-section + .detail-section { margin-top:26px; }.detail-section h3 { margin:0 0 8px; color:var(--teal); font-size:.9rem; }.detail-section p { margin:0; color:#294850; white-space:pre-wrap; }
.raw-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.raw-item { padding:12px; border:1px solid var(--line); border-radius:10px; background:#fafcfc; }.raw-item span { display:block; color:var(--muted); font-size:.68rem; }.raw-item strong { display:block; margin-top:3px; overflow-wrap:anywhere; }
.source-box { padding:14px; border-radius:12px; background:var(--surface-2); color:#38565d; font-size:.82rem; }.source-box code { direction:ltr; unicode-bidi:embed; }
.compare-table-wrap { overflow:auto; margin-top:20px; border:1px solid var(--line); border-radius:14px; }.compare-table { width:100%; min-width:760px; border-collapse:collapse; }.compare-table th,.compare-table td { padding:12px 13px; border-bottom:1px solid var(--line); text-align:right; vertical-align:top; }.compare-table th:first-child { position:sticky; right:0; background:#f5f9f8; z-index:1; min-width:150px; }.compare-table thead th { background:var(--navy); color:#fff; }.compare-table thead th:first-child { background:var(--navy); }.compare-table td { min-width:190px; font-size:.82rem; }.compare-table .ltr { direction:ltr; text-align:left; }
footer { background:var(--navy); color:#b9ceca; border-top:4px solid var(--mint); }.footer__inner { min-height:125px; display:flex; align-items:center; justify-content:space-between; gap:30px; font-size:.76rem; }.footer__inner p { max-width:850px; margin:0; }
@media(max-width:1050px){.hero__grid{grid-template-columns:1fr}.hero__stats{max-width:680px}.results-grid,.loading-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.shell{width:min(100% - 22px,1220px)}.topbar__inner{min-height:68px}.brand small{display:none}.top-actions .ghost-button{font-size:.72rem;padding:6px 8px}.hero{padding:42px 0 62px}.hero__grid{gap:28px}.hero__stats{grid-template-columns:1fr 1fr}.hero__stats article{min-height:92px;padding:13px}.workspace{margin-top:-25px}.search-card{padding:18px}.search-card__head{align-items:start}.filters{grid-template-columns:1fr}.results-grid,.loading-grid{grid-template-columns:1fr}.results-grid.is-list .journal-card{grid-template-columns:1fr}.results-grid.is-list .journal-card__actions{width:auto;border-right:0;border-top:1px solid var(--line)}.journal-card{min-height:0}.modal__frame{padding:22px 16px}.dialog-hero{padding-right:0;padding-left:42px}.detail-metrics{grid-template-columns:1fr 1fr}.raw-grid{grid-template-columns:1fr}.compare-tray{bottom:max(8px,env(safe-area-inset-bottom))}.compare-tray__inner{width:min(100% - 16px,1220px)}.footer__inner{padding:25px 0;display:block}.footer__inner span{display:block;margin-top:10px}}

/* A research catalogue needs strong reading rhythm and visible source context. */
.hero { background:var(--navy); }
.hero h1 { max-width:700px; font-size:clamp(2.1rem,4vw,3.75rem); }
.hero__copy .hero__source { margin-top:18px; padding-right:13px; border-right:2px solid var(--mint); color:#b2d5ce; font-size:.79rem; }
.hero__stats article { border-radius:4px 16px 4px 16px; }
.search-card { border-top:4px solid var(--mint); }
.catalog-help { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 24px; margin-top:19px; padding-top:15px; border-top:1px solid var(--line); color:var(--muted); font-size:.77rem; }
.catalog-help .link-button { flex-shrink:0; }
.catalog-help .link-button:disabled { opacity:.45; cursor:wait; }
.journal-card { border-radius:5px 16px 5px 16px; }
.journal-card h3,.dialog-hero h2 { font-weight:700; }
.journal-card__actions { grid-template-columns:minmax(0,1fr) auto; }
.scope-preview { min-height:2.8em; }
@media(max-width:700px){.catalog-help{align-items:start;flex-direction:column}.hero__source{max-width:100%}.search-card__head{flex-direction:column;gap:6px}}

.about-section { scroll-margin-top:95px; display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:18px 46px; padding:0 0 92px; }
.about-section__intro { padding:22px 0; }
.about-section h2 { margin:4px 0 14px; font-size:clamp(1.6rem,2.5vw,2.4rem); line-height:1.4; }
.about-section__intro>p:last-child { margin:0; color:var(--muted); font-size:.93rem; }
.about-section__source { padding:25px 29px; border:1px solid var(--line); border-right:4px solid var(--teal); border-radius:4px 16px 4px 16px; background:#fff; box-shadow:var(--shadow); }
.about-section__logo { position:relative; width:min(100%,280px); height:205px; margin:0 auto 16px; overflow:hidden; background:#fff; }
.about-section__logo img { position:absolute; top:0; left:50%; width:794px; height:486px; max-width:none; transform:translateX(-50%); }
.about-section__institution { margin:0; color:var(--teal); font-weight:900; }
.about-section__source h3 { margin:8px 0 22px; font-size:1.12rem; line-height:1.75; }
.about-section__source dl { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0; }
.about-section__source dl>div { padding:12px 15px; border:1px solid var(--line); border-radius:9px; background:var(--paper); }
.about-section__source dt { color:var(--muted); font-size:.75rem; }
.about-section__source dd { margin:3px 0 0; font-weight:900; }
.about-section__note { margin:18px 0 0; color:var(--muted); font-size:.76rem; }
.about-section__credit { grid-column:1/-1; justify-self:end; margin:0; padding-top:14px; border-top:1px solid var(--line-strong); width:100%; color:var(--muted); text-align:left; }
.about-section__credit a { color:var(--teal); font-weight:900; text-decoration-thickness:1px; text-underline-offset:4px; }
.footer__inner a { color:var(--mint); text-underline-offset:4px; }
@media(max-width:800px){.about-section{grid-template-columns:1fr;gap:16px;padding-bottom:65px}.about-section__intro{padding:0}.about-section__credit{text-align:right}}
@media(max-width:450px){.top-actions{gap:4px}.top-actions .ghost-button{padding:5px 6px;font-size:.68rem}.about-section__source{padding:19px}.about-section__source dl{grid-template-columns:1fr 1fr}}
@media(max-width:380px){.topbar__inner{gap:6px}.brand__mark{display:none}.brand strong{font-size:.88rem}.top-actions .ghost-button{padding:4px 5px;font-size:.64rem}.ghost-button b{min-width:18px;margin-right:2px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.journal-card{transition:none}.loading-grid div{animation:none}}

/* Manuscript matching keeps the reasons for the ranking visible. */
.hero__recommend-link { display:inline-flex; align-items:center; min-height:42px; margin-top:22px; padding:7px 17px; border:1px solid var(--mint); border-radius:9px; color:var(--navy); background:var(--mint); text-decoration:none; font-weight:900; }
.recommender { scroll-margin-top:95px; margin:0; padding:clamp(22px,4vw,48px); border:1px solid var(--line); border-top:4px solid var(--mint); border-radius:4px 16px 4px 16px; background:var(--surface); box-shadow:var(--shadow); }
.recommender__heading { display:flex; justify-content:space-between; align-items:end; gap:12px; }
.recommender h2 { margin:0; font-size:clamp(1.3rem,2.4vw,2rem); line-height:1.4; text-wrap:balance; }
.recommender__number { color:var(--teal); font-size:.72rem; font-weight:900; white-space:nowrap; }
.recommender__intro { max-width:780px; margin:10px 0 25px; color:#4f666b; text-wrap:pretty; }
.recommend-form { display:grid; grid-template-columns:minmax(0,780px); gap:18px; }
.recommend-field { display:grid; align-content:start; gap:6px; min-width:0; color:var(--ink); font-size:.82rem; font-weight:900; }
.recommend-field--title,.recommend-field--abstract { grid-column:1/-1; }
.recommend-field input,.recommend-field textarea { width:100%; border:1px solid var(--line-strong); border-radius:9px; background:#fff; color:var(--ink); padding:11px 13px; font-size:.9rem; font-weight:400; line-height:1.75; resize:vertical; }
.recommend-field textarea { min-height:128px; }
.recommend-form__action { display:flex; align-items:center; justify-content:flex-start; flex-wrap:wrap; gap:9px 14px; padding-top:2px; }
.recommend-form__action .primary-button { min-height:48px; }
.recommend-form__action .primary-button:disabled { opacity:.5; cursor:wait; }
.recommend-form__action p { width:100%; margin:0; color:var(--muted); text-align:right; font-size:.78rem; }
.recommend-field:focus-within { color:var(--teal); }
.recommend-field [aria-invalid="true"] { border-color:#a43443; }
.field-error { color:#a43443; font-size:.79rem; font-weight:700; }
.recommender__privacy { margin:20px 0 0; padding-top:14px; border-top:1px solid var(--line); color:var(--muted); font-size:.74rem; }
.recommend-results { max-width:850px; margin-top:32px; padding-top:22px; border-top:2px solid var(--line); scroll-margin-top:100px; }
.recommend-results__heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:6px 16px; }
.recommend-results__heading h3 { margin:0; font-size:1.13rem; }
.recommend-results__heading p { margin:0; color:var(--muted); font-size:.72rem; }
.recommend-list { display:grid; gap:10px; margin:15px 0 0; padding:0; list-style:none; }
.recommendation { display:grid; grid-template-columns:38px minmax(0,1fr); gap:15px; align-items:start; padding:17px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.recommendation__rank { color:var(--teal); font-weight:900; font-size:.9rem; }
.recommendation__title { margin:3px 0 2px; direction:ltr; text-align:left; font-size:1.06rem; line-height:1.45; overflow-wrap:anywhere; }
.recommendation__publisher { margin:0; color:var(--muted); font-size:.75rem; }
.recommendation__evidence { display:flex; flex-wrap:wrap; gap:5px; margin-top:10px; }
.recommendation__evidence span { padding:2px 8px; border-radius:5px; background:var(--surface-2); color:var(--teal); font-size:.7rem; }
.recommendation__terms { margin:7px 0 0; color:var(--muted); font-size:.72rem; }
.recommendation__actions { display:flex; flex-wrap:wrap; gap:8px 15px; margin-top:11px; }
.recommendation__actions button,.recommendation__actions a { border:0; padding:0; background:transparent; color:var(--teal); font-size:.79rem; font-weight:900; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
@media(max-width:750px){.recommender{padding:22px}.recommend-form{grid-template-columns:1fr}.recommend-field--title,.recommend-field--abstract{grid-column:auto}.recommendation{grid-template-columns:25px minmax(0,1fr);gap:9px;padding:13px}}
@media(max-width:600px){.topbar__inner{flex-wrap:wrap;gap:8px;padding-block:8px}.top-actions{margin-right:auto}}
@media(max-width:480px){.recommender__heading{display:block}.recommender__number{display:none}.recommendation{grid-template-columns:26px minmax(0,1fr)}.recommender,.about-section{scroll-margin-top:130px}}
@media(max-width:600px){.workspace-tabs{width:100%;gap:4px;padding:5px}.workspace-tab{flex:1;min-width:0;justify-content:center;gap:5px;padding:8px 6px;font-size:.82rem}.workspace-tab span{font-size:.65rem}}
@media(max-width:400px){.workspace-tab span{display:none}}

/* Hallmark redesign: the legacy rules above remain as a compatibility layer. */
html, body { overflow-x:clip; }
html { scroll-padding-top:var(--space-xl); }
body {
  min-width:0;
  background:var(--color-paper);
  color:var(--color-ink);
  font-family:var(--font-body);
  text-rendering:optimizeLegibility;
}
* { font-family:var(--font-body); }
h1,h2,h3,h4 { min-width:0; overflow-wrap:anywhere; font-family:var(--font-display); font-style:normal; }
button,a,input,select,textarea { touch-action:manipulation; }
button,a,.workspace-tab,.hero__recommend-link,.recommendation__actions a { white-space:nowrap; }
.brand,.link-button,.compare-toggle { min-height:2.75rem; }
button:active,a:active { transform:translateY(1px); }
button:disabled,[aria-disabled="true"] { cursor:not-allowed; opacity:.5; transform:none; }
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,[role="tabpanel"]:focus-visible {
  outline:var(--rule-fine) solid var(--color-focus);
  outline-offset:var(--space-3xs);
}
.shell { width:min(78rem,calc(100% - clamp(2rem,7vw,6rem))); }

.topbar {
  background:var(--color-paper-glass);
  border-block-end:var(--rule-hair) solid var(--color-rule);
  color:var(--color-ink);
  backdrop-filter:blur(18px) saturate(130%);
}
.topbar__inner { min-height:4.25rem; }
.brand__mark {
  width:2.5rem;
  height:2.5rem;
  border-radius:var(--radius-input);
  background:var(--color-ink);
  color:var(--color-accent-ink);
  box-shadow:none;
}
.brand strong { font-weight:800; letter-spacing:var(--tracking-display); }
.brand small { color:var(--color-muted); }
.top-actions { margin-inline-start:auto; }
.ghost-button {
  min-height:2.75rem;
  border:var(--rule-hair) solid var(--color-rule-2);
  border-radius:var(--radius-pill);
  background:var(--color-paper-2);
  color:var(--color-ink);
  transition:transform var(--dur-micro) var(--ease-out),background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out);
}
.ghost-button b { background:var(--color-accent-soft); color:var(--color-accent-strong); }

.hero {
  overflow:visible;
  background:var(--color-paper);
  color:var(--color-ink);
  padding:clamp(3rem,6vw,5rem) 0 clamp(4rem,8vw,6.5rem);
  border-block-end:var(--rule-hair) solid var(--color-rule);
}
.hero::before,.hero::after { display:none; }
.hero__grid {
  grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr);
  align-items:end;
  gap:clamp(2rem,6vw,6rem);
}
.hero .eyebrow { color:var(--color-accent); }
.eyebrow,.section-kicker { color:var(--color-accent); letter-spacing:.01em; }
.hero h1 {
  max-width:15ch;
  font-size:var(--text-display);
  font-weight:var(--display-weight);
  letter-spacing:var(--tracking-display);
  line-height:1.22;
}
.hero__copy>p:last-of-type { max-width:58ch; color:var(--color-muted); font-size:var(--text-md); }
.hero__recommend-link {
  display:inline-flex;
  align-items:center;
  min-height:2.75rem;
  margin-block-start:var(--space-md);
  padding-inline:var(--space-sm);
  border-radius:var(--radius-pill);
  background:var(--color-ink);
  color:var(--color-accent-ink);
  text-decoration:none;
  font-weight:800;
  transition:transform var(--dur-micro) var(--ease-out),background-color var(--dur-short) var(--ease-out);
}
.hero__source { color:var(--color-muted) !important; }
.hero__stats {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  border-block-start:var(--rule-hair) solid var(--color-rule-2);
}
.hero__stats article {
  min-height:auto;
  padding:var(--space-sm) 0 var(--space-xs);
  border:0;
  border-block-end:var(--rule-hair) solid var(--color-rule);
  border-radius:0;
  background:transparent;
  backdrop-filter:none;
}
.hero__stats article:nth-child(odd) { padding-inline-end:var(--space-sm); border-inline-end:var(--rule-hair) solid var(--color-rule); }
.hero__stats article:nth-child(even) { padding-inline-start:var(--space-sm); }
.hero__stats strong { color:var(--color-ink); font-size:var(--text-xl); }
.hero__stats span { color:var(--color-muted); }

.workspace { margin-top:0; padding-block:var(--space-lg) var(--space-3xl); }
.workspace-tabs {
  position:sticky;
  top:5rem;
  z-index:20;
  width:100%;
  padding:var(--space-2xs);
  border:var(--rule-hair) solid var(--color-rule);
  border-radius:var(--radius-card);
  background:var(--color-paper-glass);
  box-shadow:var(--shadow-card);
  backdrop-filter:blur(18px);
}
.workspace-tab { flex:1; justify-content:center; min-height:2.75rem; border-radius:var(--radius-input); }
.workspace-tab.is-active { background:var(--color-ink); color:var(--color-accent-ink); }
.workspace-tab span,.workspace-tab.is-active span { color:var(--color-accent); }

.search-card,.recommender {
  margin-block-start:var(--space-md);
  padding:clamp(1rem,3vw,2rem);
  border:var(--rule-hair) solid var(--color-rule);
  border-radius:var(--radius-card);
  background:var(--color-paper-2);
  box-shadow:none;
}
.search-card__head,.results-toolbar,.recommender__heading { align-items:start; }
.search-card h2,.recommender h2 { font-size:var(--text-xl); letter-spacing:var(--tracking-display); }
.search-field {
  min-height:3.75rem;
  border:var(--rule-fine) solid var(--color-ink);
  border-radius:var(--radius-input);
  background:var(--color-paper);
}
.search-field:focus-within { border-color:var(--color-ink); box-shadow:0 0 0 .25rem var(--color-accent-soft); }
.search-field svg { stroke:var(--color-accent); }
.filters { grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space-xs); }
.filters select,.recommend-field input,.recommend-field textarea {
  border:var(--rule-hair) solid var(--color-rule-2);
  border-radius:var(--radius-input);
  background:var(--color-paper);
  color:var(--color-ink);
}
.filters select { min-height:2.75rem; }
.filters select:hover,.recommend-field input:hover,.recommend-field textarea:hover { border-color:var(--color-accent); }
.catalog-help { border-color:var(--color-rule); }

.results-toolbar { padding-block:var(--space-xl) var(--space-sm); }
.view-tools { border-color:var(--color-rule); border-radius:var(--radius-input); background:var(--color-paper-2); }
.view-button { min-width:2.75rem; min-height:2.75rem; }
.view-button.is-active { background:var(--color-ink); color:var(--color-accent-ink); }
.results-grid,.loading-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-xs); }
.journal-card {
  min-height:18rem;
  border:var(--rule-hair) solid var(--color-rule);
  border-radius:var(--radius-card);
  background:var(--color-paper-2);
  transition:transform var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out),box-shadow var(--dur-short) var(--ease-out);
}
.journal-card h3 { min-height:auto; font-size:var(--text-lg); letter-spacing:-.01em; }
.journal-card__subject,.recommendation__rank { color:var(--color-accent); }
.badge { background:var(--color-paper-3); color:var(--color-accent-strong); }
.badge--rank { background:var(--color-warning); color:var(--color-ink); }
.badge--muted { background:var(--color-paper-3); color:var(--color-muted); }
.icon-button { min-width:2.75rem; min-height:2.75rem; background:var(--color-paper-3); }
.icon-button.is-active { background:var(--color-accent-soft); color:var(--color-accent-strong); }
.compare-toggle { min-height:2.75rem; border-color:var(--color-rule-2); background:var(--color-paper-2); }
.compare-toggle.is-active { background:var(--color-accent); color:var(--color-accent-ink); }
.scope-preview,.publisher { color:var(--color-muted); }
.journal-card__actions { border-color:var(--color-rule); background:var(--color-paper); }
.detail-button,.primary-button { min-height:2.75rem; border-radius:var(--radius-pill); background:var(--color-ink); color:var(--color-accent-ink); }
.external-button { min-height:2.75rem; border-color:var(--color-rule-2); border-radius:var(--radius-pill); background:var(--color-paper-2); color:var(--color-accent-strong); }
.pagination button { min-height:2.75rem; border-color:var(--color-ink); border-radius:var(--radius-pill); background:var(--color-paper-2); }

.recommend-form { background:var(--color-paper); border-color:var(--color-rule); }
.recommendation { border-color:var(--color-rule); border-radius:var(--radius-card); background:var(--color-paper); }
.recommendation__evidence span { background:var(--color-accent-soft); color:var(--color-accent-strong); }
.recommender__privacy { background:var(--color-paper-3); color:var(--color-muted); }
.field-error { color:var(--color-danger); }
.field-error[hidden] { display:block !important; min-height:1lh; visibility:hidden; }
.recommend-field [aria-invalid="true"] { border-color:var(--color-danger); }

.modal { border-radius:var(--radius-card); background:var(--color-paper-2); color:var(--color-ink); box-shadow:var(--shadow-card); }
.modal::backdrop { background:var(--color-backdrop); }
.close-button { min-width:2.75rem; min-height:2.75rem; background:var(--color-paper-2); border-color:var(--color-rule); }
.detail-metrics,.compare-table-wrap,.tabs,.raw-item { border-color:var(--color-rule); }
.detail-metrics,.compare-table { background:var(--color-rule); }
.detail-metrics div,.raw-item,.tab-button.is-active { background:var(--color-paper); }
.tabs,.source-box { background:var(--color-paper-3); }
.compare-table thead th { background:var(--color-ink); color:var(--color-accent-ink); }

.about-section {
  grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);
  gap:clamp(2rem,7vw,7rem);
  padding-block:var(--space-3xl);
  border-block-start:var(--rule-hair) solid var(--color-rule-2);
}
.about-section__source { border-color:var(--color-rule); background:var(--color-paper-2); box-shadow:none; }
.about-section__logo { background:var(--color-paper); }
.about-section__credit { border-color:var(--color-rule); }
.about-section__credit a,.footer__inner a { display:inline-flex; align-items:center; min-height:2.75rem; }
footer { border-block-start:var(--rule-hair) solid var(--color-rule-2); background:var(--color-paper); color:var(--color-muted); }
.footer__inner { min-height:5.5rem; }

@media (hover:hover) and (pointer:fine) {
  .journal-card:hover { transform:translateY(-2px); border-color:var(--color-rule-2); box-shadow:var(--shadow-card); }
  .ghost-button:hover,.external-button:hover,.pagination button:not(:disabled):hover { background:var(--color-paper-3); border-color:var(--color-accent); }
  .hero__recommend-link:hover,.primary-button:not(:disabled):hover,.detail-button:hover { background:var(--color-ink-2); }
}
@media (max-width:60rem) {
  .hero__grid,.about-section { grid-template-columns:1fr; }
  .filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:40rem) {
  .shell { width:calc(100% - 2rem); }
  .topbar__inner { gap:var(--space-2xs); }
  .brand small,.top-actions .about-link { display:none; }
  .top-actions { gap:var(--space-3xs); }
  .top-actions .ghost-button { min-width:2.75rem; padding-inline:var(--space-2xs); }
  .hero { padding-block:var(--space-xl) var(--space-lg); }
  .hero__grid { gap:var(--space-lg); }
  .hero h1 { font-size:clamp(2rem,11vw,3rem); }
  .workspace { padding-block-start:var(--space-sm); }
  .workspace-tabs { top:4.75rem; }
  .workspace-tab { padding-inline:var(--space-2xs); font-size:var(--text-sm); }
  .filters,.results-grid,.loading-grid { grid-template-columns:1fr; }
  .search-card__head,.results-toolbar,.recommender__heading { display:grid; grid-template-columns:1fr; }
  .search-field { grid-template-columns:1.5rem minmax(0,1fr); padding-inline:var(--space-xs); }
  .search-field kbd { display:none; }
  .journal-card__actions { grid-template-columns:minmax(0,1fr) auto; }
  .about-section { padding-block:var(--space-2xl); }
  .footer__inner { display:grid; gap:var(--space-xs); padding-block:var(--space-lg); }
  button,.ghost-button,.workspace-tab,.view-button,.icon-button,.detail-button,.external-button,.primary-button,.pagination button { min-height:2.75rem; }
}
@media (max-width:22rem) {
  .brand strong { font-size:var(--text-sm); }
  .workspace-tab span { display:none; }
  .hero__stats { grid-template-columns:1fr; }
  .hero__stats article:nth-child(odd) { border-inline-end:0; padding-inline-end:0; }
  .hero__stats article:nth-child(even) { padding-inline-start:0; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { scroll-behavior:auto !important; transition-duration:var(--dur-micro) !important; animation-duration:var(--dur-micro) !important; animation-iteration-count:1 !important; }
  .journal-card:hover,button:active,a:active { transform:none; }
}

/* Frontend Engineer redesign · compact discovery workspace */
.hero {
  background:var(--color-ink);
  color:var(--color-accent-ink);
  padding-block:clamp(2.5rem,5vw,4.5rem) clamp(5rem,8vw,7rem);
  border-block-end:0;
}
.hero .eyebrow { color:var(--color-focus); }
.hero h1 { max-width:18ch; font-size:clamp(2.25rem,4.6vw,4rem); line-height:1.14; }
.hero__copy>p:last-of-type,.hero__source { color:var(--color-on-dark-muted) !important; }
.hero__recommend-link { background:var(--color-accent-ink); color:var(--color-ink); }
.hero__recommend-link:hover { background:var(--color-accent-soft) !important; }
.hero__stats { border-block-start-color:var(--color-on-dark-rule-strong); }
.hero__stats article { border-block-end-color:var(--color-on-dark-rule); }
.hero__stats article:nth-child(odd) { border-inline-end-color:var(--color-on-dark-rule); }
.hero__stats strong { color:var(--color-accent-ink); font-size:var(--text-2xl); }
.hero__stats span { color:var(--color-on-dark-muted); }

.workspace { margin-top:calc(var(--space-xl) * -1); }
.workspace-tabs { top:4.75rem; border-color:var(--color-rule); }
.search-card,.recommender { box-shadow:var(--shadow-card); }
.search-card { border-block-start:var(--space-3xs) solid var(--color-accent); }
.filter-actions { display:flex; align-items:center; gap:var(--space-sm); }
.filter-toggle {
  display:none;
  min-height:2.75rem;
  padding-inline:var(--space-sm);
  border:var(--rule-hair) solid var(--color-rule-2);
  border-radius:var(--radius-pill);
  background:var(--color-paper);
  color:var(--color-ink);
  font-weight:800;
}
.filter-toggle b {
  display:inline-grid;
  place-items:center;
  min-width:1.5rem;
  min-height:1.5rem;
  margin-inline-start:var(--space-2xs);
  border-radius:var(--radius-pill);
  background:var(--color-paper-3);
  color:var(--color-accent-strong);
}
.filter-toggle.is-active { border-color:var(--color-accent); color:var(--color-accent-strong); }
.search-field { margin-block-start:var(--space-md); }
.results-grid,.loading-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.journal-card { min-height:21rem; }
.journal-card h3 { font-size:1.08rem; }
.journal-card__actions { padding:var(--space-xs); }
.about-section { margin-block-start:var(--space-xl); }

@media (max-width:75rem) {
  .results-grid,.loading-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:60rem) {
  .hero__grid { grid-template-columns:minmax(0,1fr); }
  .hero__stats { max-width:38rem; }
}
@media (max-width:40rem) {
  .hero { padding-block:var(--space-xl) calc(var(--space-2xl) + var(--space-md)); }
  .workspace { margin-top:calc(var(--space-lg) * -1); }
  .search-card__head { gap:var(--space-sm); }
  .filter-actions { width:100%; justify-content:space-between; }
  .filter-toggle { display:inline-flex; align-items:center; justify-content:center; }
  .filters[data-collapsed="true"] { display:none; }
  .filters[data-collapsed="false"] { display:grid; }
  .results-grid,.loading-grid { grid-template-columns:minmax(0,1fr); }
  .journal-card { min-height:0; }
}
