.button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 8px; padding: 10px 18px; border: 1px solid transparent; border-radius: var(--radius); font-size: .84rem; font-weight: 800; line-height: 1.2; text-decoration: none; cursor: pointer; }
.button-primary { background: var(--ijms-primary); color: var(--white); }
.button-primary:hover { background: var(--ijms-secondary); color: var(--white); }
.button-accent { background: var(--ijms-accent); color: var(--white); }
.button-accent:hover { background: #98541b; color: var(--white); }
.button-quiet { border-color: var(--line); background: var(--white); color: var(--ijms-primary); }
.button-ghost { border-color: rgba(255,255,255,.5); background: transparent; color: var(--white); }
.button-ghost:hover { border-color: var(--white); background: rgba(255,255,255,.08); color: var(--white); }
.text-link { font-size: .88rem; font-weight: 800; text-decoration: none; }
.pdf-link { font-size: .82rem; font-weight: 800; }
.call-section { padding-top: 0; }
.call-card { display: grid; grid-template-columns: .55fr 1.6fr .75fr; gap: 40px; align-items: start; margin-top: -18px; padding: 42px; background: var(--white); border-top: 4px solid var(--ijms-accent); box-shadow: var(--shadow); }
.call-kicker { display: flex; flex-direction: column; gap: 8px; padding-top: 6px; color: var(--ijms-accent); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.call-kicker strong { color: var(--ijms-heading); }
.call-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; padding-top: 6px; }
.topic-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
.topic-card { position: relative; display: flex; align-items: flex-start; gap: 24px; padding: 26px 30px; background: var(--white); border: 1px solid var(--line); color: var(--ijms-heading); text-decoration: none; transition: border-color .2s ease; }
.topic-card:hover { border-color: var(--ijms-accent); color: var(--ijms-heading); }
.topic-card__body { flex: 1 1 auto; min-width: 0; }
.topic-card span { color: var(--ijms-accent); font: 700 1.3rem var(--serif); }
.topic-card strong { display: block; font: 600 1.2rem var(--serif); }
.topic-card p { margin: 8px 0 0; color: var(--ijms-text); font-size: .92rem; line-height: 1.65; }
.topic-card .text-link { flex: 0 0 auto; align-self: center; }
.topic-card i { position: absolute; right: 18px; top: 16px; font-style: normal; }
.topic-card__image { flex: 0 0 140px; width: 140px; height: 100px; object-fit: cover; }
.divided-list { columns: 2; column-gap: 48px; }
.divided-row { display: flex; align-items: baseline; gap: 14px; padding: 13px 0; border-bottom: 1px solid var(--line); color: var(--ijms-heading); break-inside: avoid; }
.divided-row__title { flex: 1; font: 600 1rem/1.3 var(--serif); }
.issue-feature { display: grid; grid-template-columns: minmax(190px, .55fr) 1.8fr; gap: clamp(34px, 7vw, 90px); align-items: center; padding: clamp(28px, 5vw, 58px); background: var(--white); border: 1px solid var(--line); }
.issue-cover img { width: 100%; box-shadow: 0 18px 28px rgba(16,45,64,.17); }
.issue-meta, .article-card-meta { color: var(--ijms-accent); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.article-list { display: grid; gap: 18px; }
.article-card { padding: 28px 30px; background: var(--white); border: 1px solid var(--line); }
.article-card-meta { display: flex; justify-content: space-between; gap: 20px; }
.article-card h3 { max-width: 900px; margin-top: 14px; }
.article-card h3 a { color: var(--ijms-heading); text-decoration: none; }
.article-authors { color: var(--ijms-heading); font-weight: 650; }
.doi { color: var(--muted); font-size: .8rem; }
.article-card-actions { display: flex; gap: 24px; margin-top: 20px; }
.benefit-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(255,255,255,.14); }
.benefit-card { min-height: 260px; padding: 30px; background: var(--ink); }
.benefit-card h3 { color: var(--white); }
.benefit-number { display: block; margin-bottom: 55px; color: #79a2b8; font-weight: 800; }
.benefit-number img { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; }
.dark-disclaimer { padding: 24px; border: 1px solid rgba(255,255,255,.2); color: #dce7ed; }
.dark-disclaimer p { margin: 0; }
.process-timeline { display: flex; justify-content: space-between; position: relative; list-style: none; margin: 24px 0 0; padding: 0; }
.process-timeline::before { content: ""; position: absolute; top: 22px; left: 22px; right: 22px; height: 1px; background: var(--line); z-index: 0; }
.process-timeline__step { position: relative; z-index: 1; flex: 1; text-align: center; padding: 0 8px; }
.process-timeline__num { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0 auto 18px; border-radius: 50%; background: var(--ijms-primary); color: var(--white); font: 700 .95rem var(--sans); }
.process-timeline__step h3 { margin: 0 0 6px; font: 600 .95rem var(--serif); color: var(--ijms-heading); }
.process-timeline__step p { margin: 0; font-size: .82rem; color: var(--ijms-text); line-height: 1.5; }
.member-card { display: flex; gap: 18px; padding: 22px; background: var(--white); border: 1px solid var(--line); }
.member-photo { flex: 0 0 68px; width: 68px; height: 68px; display: grid; place-items: center; overflow: hidden; border-radius: 50%; background: var(--ijms-primary); color: var(--white); font: 600 1.25rem var(--serif); text-decoration: none; }
.member-photo img { width: 100%; height: 100%; object-fit: cover; }
.member-role { margin: 0 0 4px; color: var(--ijms-accent); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.member-card h3 { font-size: 1.13rem; margin-bottom: 6px; }
.member-card h3 a { color: inherit; text-decoration: none; }
.member-card p { margin-bottom: 4px; font-size: .83rem; }
.member-country, .orcid-link { color: var(--muted); font-size: .75rem; }
.board-bio-list { display: flex; flex-direction: column; gap: 16px; }
.member-bio-card { display: flex; gap: 32px; padding: 28px; border: none; border-left: 4px solid var(--ijms-accent); }
.member-bio-identity { flex: 0 0 auto; width: 260px; display: flex; gap: 20px; }
.member-bio-divider { width: 1px; align-self: stretch; background: var(--line); flex-shrink: 0; }
.member-bio-text { flex: 1; min-width: 0; }
.member-bio-text p { margin: 0 0 10px; font-style: italic; color: var(--ijms-text); font-size: .95rem; line-height: 1.65; }
.member-bio-text p:last-child { margin-bottom: 0; }
.member-bio-text p:first-child::before { content: "\201C"; font-style: normal; color: var(--ijms-accent); font: 700 1.5rem var(--serif); margin-right: 3px; vertical-align: -2px; }
.board-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 24px; }
.board-card { display: flex; gap: 18px; padding: 22px; background: var(--white); border: 1px solid var(--line); }
.board-card-photo { flex: 0 0 68px; width: 68px; height: 68px; overflow: hidden; border-radius: 50%; background: var(--ijms-primary); color: var(--white); display: grid; place-items: center; font: 600 1.25rem var(--serif); }
.board-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.board-card-role { margin: 0 0 4px; color: var(--ijms-accent); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.board-card-body h3 { margin: 0 0 6px; font-size: 1.13rem; color: var(--ijms-heading); }
.board-card-body h3 a { color: inherit; text-decoration: none; }
.board-card-body p { margin: 0 0 4px; font-size: .83rem; color: var(--ijms-text); }
.board-card-body .board-card-country { color: var(--muted); font-size: .75rem; }
.indexing-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 21px; }
.indexing-card { display: flex; align-items: flex-start; gap: 24px; min-height: 180px; padding: 33px; background: var(--white); border: 1px solid var(--line); color: var(--ijms-heading); text-decoration: none; }
.indexing-card__body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.indexing-card strong { font-size: 1.1rem; }
.indexing-card__body p { margin: 0; color: var(--ijms-text); font-size: .9rem; line-height: 1.6; }
.indexing-card span { color: var(--muted); font-size: .8rem; margin-top: auto; }
.indexing-card__logo { flex: 0 0 auto; width: 90px; height: 90px; object-fit: contain; object-position: left top; }

.indexing-marquee-section .section-heading { margin-bottom: 24px; }
.indexing-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(to right, transparent, #000 40px, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(to right, transparent, #000 40px, #000 calc(100% - 40px), transparent); }
.indexing-marquee__track { display: flex; gap: 24px; width: max-content; animation: ijms-marquee 22s linear infinite; }
.indexing-marquee:hover .indexing-marquee__track { animation-play-state: paused; }
.indexing-marquee--static .indexing-marquee__track { animation: none; }
@keyframes ijms-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .indexing-marquee__track { animation: none; } }
.indexing-image-tile { flex: 0 0 auto; width: 170px; height: 120px; display: flex; align-items: center; justify-content: center; padding: 20px; background: var(--white); border: 1px solid var(--line); color: var(--ijms-heading); text-decoration: none; }
.indexing-image-tile strong { font: 600 .9rem/1.3 var(--sans); text-align: center; }
.indexing-image-tile__logo { max-width: 100%; max-height: 100%; object-fit: contain; }
.call-card__image { width: 100%; max-height: 180px; margin-bottom: 18px; object-fit: cover; }
.call-list { display: grid; gap: 18px; }
.call-list-item { position: relative; padding: 26px 30px; background: var(--white); border: 1px solid var(--line); }
.call-list-item--featured { border-color: var(--ijms-accent); border-top: 4px solid var(--ijms-accent); }
.call-list-item__badge { position: absolute; top: 22px; right: 26px; padding: 4px 10px; background: var(--ijms-accent); color: var(--white); font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.call-list-item__dates { display: flex; gap: 20px; margin: 10px 0 16px; color: var(--muted); font-size: .82rem; }
.disclaimer, .empty-state { padding: 36px; background: var(--white); border: 1px solid var(--line); }
.disclaimer p { margin: 8px 0 0; }
.empty-state { width: 100%; text-align: center; }
.empty-state > span { color: var(--ijms-accent); font-size: 2rem; }
.metrics-section { padding: 52px 0; background: var(--ijms-primary); color: var(--white); }
.metrics-section .eyebrow { color: #d8b085; }
.metrics-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.metrics-empty { max-width: 720px; margin: 0; color: #d3e1e8; }
.metric { display: flex; flex-direction: column; border-left: 1px solid rgba(255,255,255,.3); padding-left: 24px; }
.metric strong { font: 600 clamp(2rem, 4vw, 3.5rem) var(--serif); }
.metric span { color: #c7d7df; font-size: .83rem; }
.faq-list details { border-top: 1px solid var(--line); padding: 20px 0; }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { color: var(--ijms-heading); font: 600 1.15rem var(--serif); cursor: pointer; }
.faq-list details p { max-width: 720px; margin: 14px 0 0; }
.updates-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; }
.newsletter-placeholder { padding: 30px; background: var(--white); border: 1px solid var(--line); }
.newsletter-placeholder > div { display: flex; gap: 8px; }
.newsletter-placeholder input { flex: 1; min-width: 0; }
.newsletter-placeholder small { display: block; margin-top: 8px; color: var(--muted); }

.article-hero { padding: clamp(64px, 9vw, 110px) 0; background: var(--ink); color: #d9e5eb; }
.article-hero h1 { max-width: 1050px; font-size: clamp(2.5rem, 6vw, 4.8rem); }
.article-byline { color: var(--white); font: 1.22rem/1.5 var(--serif); }
.affiliations { max-width: 760px; color: #b7cad5; font-size: .9rem; }
.article-facts { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 26px 0; color: #bed0da; font-size: .78rem; }
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(42px, 8vw, 100px); padding-block: clamp(54px, 8vw, 100px); }
.article-main > section, .article-main > .entry-content { padding-bottom: 38px; margin-bottom: 38px; border-bottom: 1px solid var(--line); }
.article-abstract p { color: var(--ijms-heading); font: 1.22rem/1.7 var(--serif); }
.keywords p { color: var(--ijms-primary); font-weight: 700; }
.article-record dl { display: flex; flex-wrap: wrap; gap: 22px 44px; }
.article-record dt, .sidebar-card dt { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.article-record dd, .sidebar-card dd { margin: 2px 0; color: var(--ijms-heading); }
.related-articles ul { list-style: none; margin: 0; padding: 0; }
.related-articles li { display: flex; justify-content: space-between; gap: 24px; padding: 13px 0; border-top: 1px solid var(--line); }
.related-articles li a { color: var(--ijms-heading); font-family: var(--serif); font-weight: 600; text-decoration: none; }
.related-articles li span { flex: 0 0 auto; color: var(--muted); font-size: .78rem; }
.article-sidebar { display: flex; flex-direction: column; gap: 18px; }
.sidebar-card, .page-aside, .contact-card { padding: 25px; background: var(--white); border: 1px solid var(--line); }
.sidebar-card h2, .page-aside h2, .contact-card h2 { font-size: 1.2rem; }
.placeholder-metric { color: var(--muted); font-size: .82rem; }
.issue-header-layout { display: grid; grid-template-columns: 210px 1fr; gap: 50px; align-items: center; }
.issue-detail-cover { box-shadow: 0 20px 30px rgba(0,0,0,.28); }
.issue-toc { margin-top: 55px; }
.toc-group { margin-top: 34px; }
.toc-group > h3 { padding-bottom: 12px; border-bottom: 2px solid var(--ijms-heading); }
.issue-toc .article-card { margin-bottom: 14px; }
.issue-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.archive-year { margin-bottom: 60px; }
.board-group { margin-bottom: 70px; }
.two-column-page, .contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 70px; align-items: start; }
.contact-info-compact { max-width: 980px; margin: 8px auto 0; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: .88rem; }
.contact-info-compact .prose { font-size: .88rem; color: var(--muted); }
.contact-info-compact .prose > *:first-child { margin-top: 0; }
.contact-info-compact .prose h1, .contact-info-compact .prose h2, .contact-info-compact .prose h3, .contact-info-compact .prose h4, .contact-info-compact .prose h5, .contact-info-compact .prose h6 { font-size: .95rem; color: var(--muted); margin: 0 0 .35em; }
.contact-info-line { display: flex; flex-wrap: wrap; gap: 18px; margin: 8px 0 0; }
.contact-info-line a { color: inherit; }
.page-aside { position: sticky; top: 24px; }
.portal-shell { max-width: 1040px; }
.custom-home-section--light { background: var(--white); }
.custom-home-section--muted { background: #edf1f2; }
.custom-home-section--dark { background: var(--ink); color: #dce7ed; }
.custom-home-section--dark h2 { color: var(--white); }
.custom-home-section__body { margin-bottom: 24px; }
.highlight>span:last-child { display: grid; gap: 3px; }
.highlight small { color: var(--ijms-muted); font-size: .82rem; }
.member-links { display: flex; flex-wrap: wrap; gap: 12px; }

input[type="text"], input[type="email"], input[type="search"], input[type="url"], input[type="tel"], input[type="date"], input[type="password"], input[type="file"], select, textarea {
  width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #b6c1c7; border-radius: 3px; background: var(--white); color: var(--ijms-heading);
}
textarea { min-height: 130px; resize: vertical; }
label { color: var(--ijms-heading); font-weight: 700; }

/* IJMS plugin presentation compatibility. */
.iisjm-public-shell, .iisjm-submission-form, .iisjm-status-lookup, .iisjm-login, .iisjm-portal, [class*="iisjm-"][class*="form"] { font-family: var(--sans); color: var(--ijms-text); }
.entry-content .iisjm-submission-form, .entry-content .iisjm-status-lookup, .entry-content .iisjm-login, .entry-content .iisjm-portal, .full-width-content > form { max-width: 920px; margin-inline: auto; padding: clamp(24px, 5vw, 48px); background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow); }
.iisjm-submission-form fieldset, .iisjm-status-lookup fieldset { margin: 0 0 28px; padding: 24px; border: 1px solid var(--line); }
.iisjm-submission-form legend { padding-inline: 8px; color: var(--ijms-heading); font: 600 1.3rem var(--serif); }
.iisjm-submission-form label, .iisjm-status-lookup label, .iisjm-login label { display: block; margin-bottom: 7px; }
.iisjm-submission-form p, .iisjm-status-lookup p, .iisjm-login p { margin-bottom: 20px; }
.iisjm-submission-form button, .iisjm-submission-form input[type="submit"], .iisjm-status-lookup button, .iisjm-login button, .iisjm-portal .button { min-height: 46px; padding: 11px 20px; border: 0; border-radius: var(--radius); background: var(--ijms-primary); color: var(--white); font-weight: 800; cursor: pointer; }
.iisjm-notice, .iisjm-message, .iisjm-error, .iisjm-success { margin-bottom: 24px; padding: 14px 18px; border-left: 4px solid var(--ijms-primary); background: #eaf2f6; }
.iisjm-error { border-color: #a13c35; background: #faecea; color: #732b26; }
.iisjm-success { border-color: #24734a; background: #e7f5ed; color: #175437; }
.iisjm-submission-form input[type="file"] { padding: 8px; border-style: dashed; background: #f8fafb; }
.iisjm-public-button { border-radius: var(--radius)!important; }

/* Register page (/register/): the bare <fieldset>/<legend> account-type
   choice and the plain-paragraph checkboxes had no styling at all beyond
   the generic input rules above, so they rendered with default browser
   fieldset borders and cramped inline radio text. */
.iisjm-register-form .iisjm-register-type { margin: 0 0 22px; padding: 0; border: 0; }
.iisjm-register-form .iisjm-register-type legend { padding: 0 0 10px; color: var(--ijms-heading); font-weight: 700; }
.iisjm-register-form .iisjm-register-type label { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 10px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius); font-weight: 500; cursor: pointer; }
.iisjm-register-form .iisjm-register-type label:has(input:checked) { border-color: var(--ijms-primary); background: #f3f7fa; }
.iisjm-register-form .iisjm-register-type input[type="radio"] { flex-shrink: 0; margin-top: 4px; accent-color: var(--ijms-primary); }
.iisjm-register-form .iisjm-field-row { display: flex; gap: 20px; }
.iisjm-register-form .iisjm-field-row > p { flex: 1; min-width: 0; }
.iisjm-register-form .iisjm-check label { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; }
.iisjm-register-form .iisjm-check input[type="checkbox"] { flex-shrink: 0; width: 18px; height: 18px; margin-top: 3px; accent-color: var(--ijms-primary); }
@media (max-width: 700px) { .iisjm-register-form .iisjm-field-row { flex-direction: column; gap: 0; } }

/* Issue/article public pages (Current Issue, direct issue permalink,
   Archives) carried no styling of their own beyond the line above, so
   headings/links fell back to plain body text -- a Table of Contents
   article title rendered at the same size/weight as the issue title
   above it, with no divider between entries. Client feedback, 2026-08-07:
   with 10-15 articles this read as an unbroken wall of oversized text. */
.iisjm-public-kicker { display: inline-block; margin-bottom: 6px; color: var(--ijms-accent); font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.iisjm-public-page-header { padding-bottom: 32px; margin-bottom: 36px; border-bottom: 1px solid var(--line); }
.iisjm-public-page-header h1 { margin: 4px 0 10px; font: 600 clamp(1.7rem, 3vw, 2.3rem)/1.2 var(--serif); color: var(--ijms-heading); }
.iisjm-public-page-header > p, .iisjm-public-page-header > div > p { margin: 0; color: var(--muted); }
.iisjm-public-issue-header { display: flex; gap: 28px; align-items: flex-start; }
.iisjm-public-issue-header > div { flex: 1; min-width: 0; }
.iisjm-issue-cover { flex: none; width: 130px; height: auto; border: 1px solid var(--line); box-shadow: var(--shadow); }
.iisjm-public-description { margin-top: 14px; color: var(--ijms-text); }
.iisjm-public-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }

.iisjm-issue-summary { display: flex; align-items: center; gap: 24px; padding-bottom: 28px; margin-bottom: 8px; border-bottom: 1px solid var(--line); }
.iisjm-issue-summary__cover { flex: none; }
.iisjm-issue-summary__cover img { display: block; width: 90px; height: auto; border: 1px solid var(--line); }
.iisjm-issue-summary > div { flex: 1; min-width: 0; }
.iisjm-issue-summary h2 { margin: 0 0 8px; font: 600 1.55rem/1.25 var(--serif); }
.iisjm-issue-summary h2 a { color: var(--ijms-heading); text-decoration: none; }
.iisjm-issue-summary h2 a:hover { color: var(--ijms-accent); }
.iisjm-issue-summary p { margin: 0; color: var(--muted); font-size: .92rem; }
.iisjm-public-count { display: flex; flex: none; flex-direction: column; align-items: center; justify-content: center; min-width: 66px; padding: 10px 8px; background: var(--ijms-bg); border: 1px solid var(--line); font: 700 1.55rem/1 var(--sans); color: var(--ijms-primary); font-variant-numeric: tabular-nums; text-align: center; }
.iisjm-public-count small { display: block; margin-top: 4px; color: var(--muted); font-size: .64rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }

.iisjm-public-section { counter-reset: ijms-toc; margin-top: 8px; }
.iisjm-public-section + .iisjm-public-section { margin-top: 44px; }
.iisjm-public-section__header { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 6px; }
.iisjm-public-section__header h2 { margin: 0; font: 600 1.3rem/1.2 var(--serif); color: var(--ijms-heading); }
.iisjm-public-section__header span { flex: none; color: var(--muted); font-size: .82rem; font-weight: 700; }

.iisjm-public-article-card__meta span { color: var(--ijms-accent); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.iisjm-public-article-card h3 { margin: 8px 0 0; font: 600 1.05rem/1.4 var(--serif); }
.iisjm-public-article-card h3 a { color: var(--ijms-heading); text-decoration: none; }
.iisjm-public-article-card h3 a:hover { color: var(--ijms-accent); text-decoration: underline; }
.iisjm-public-article-card p { margin: 4px 0 0; color: var(--muted); font-size: .86rem; }
.iisjm-public-article-card small { display: block; margin-top: 8px; color: var(--muted); font-size: .76rem; }

/* The Table of Contents needs to read as a compact, scannable numbered
   list, not a stack of full-size cards -- scoped to direct children of
   .iisjm-public-section (the TOC/listing contexts) so the same
   article_card() markup used standalone inside the Gutenberg blocks' own
   grid cards (see blocks.css .ijms-block__grid > li) is unaffected. */
.iisjm-public-section > .iisjm-public-article-card { position: relative; padding: 16px 4px 16px 38px; border-bottom: 1px solid var(--line); }
.iisjm-public-section > .iisjm-public-article-card:first-of-type { border-top: 1px solid var(--line); }
.iisjm-public-section > .iisjm-public-article-card:hover { background: #f7f9fa; }
.iisjm-public-section > .iisjm-public-article-card::before { counter-increment: ijms-toc; content: counter(ijms-toc, decimal-leading-zero); position: absolute; left: 2px; top: 18px; color: var(--line); font: 700 .92rem/1 var(--sans); font-variant-numeric: tabular-nums; }
.iisjm-public-section > .iisjm-public-article-card h3 { margin-top: 0; }
.iisjm-public-section > .iisjm-public-article-card--featured { padding-left: 4px; }
.iisjm-public-section > .iisjm-public-article-card--featured::before { content: none; }

.iisjm-public-empty { padding: 32px; background: var(--ijms-bg); border: 1px dashed var(--line); color: var(--muted); text-align: center; }

/* "Other Issues" on the standalone Current Issue page, and the Archives
   page's own issue listing -- both use the same .iisjm-archive-grid of
   .iisjm-issue-summary blocks, so each summary is restyled as a
   self-contained card instead of the full-width row it is elsewhere. */
.iisjm-archive-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }
.iisjm-archive-grid .iisjm-issue-summary { flex-direction: column; align-items: flex-start; gap: 14px; margin: 0; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); transition: border-color .15s ease, box-shadow .15s ease; }
.iisjm-archive-grid .iisjm-issue-summary:hover { border-color: var(--ijms-secondary); box-shadow: var(--shadow); }
.iisjm-archive-grid .iisjm-issue-summary__cover img { width: 100%; }
.iisjm-archive-grid .iisjm-public-count { align-self: flex-start; }

/* IJMS 2.0 public portal markup. */
.ijms-portal-card, .ijms-login-shell { max-width: 980px; margin-inline: auto; font-family: var(--sans); color: var(--ijms-text); }
.ijms-portal-card { overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
/* Author/Reviewer Dashboard: wider than the 980px shared by login/register
   cards -- their tables and multi-column layouts need the room now that
   the page itself renders in the wide .site-shell (see page.php). */
.ijms-portal-card.ijms-dashboard { max-width: 1200px; }
.ijms-portal-heading { padding: clamp(26px, 5vw, 46px); background: linear-gradient(135deg, var(--ink), var(--ijms-primary)); color: #dbe7ed; }
.ijms-portal-heading > span { display: block; margin-bottom: 8px; color: #e1b17e; font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ijms-portal-heading h1 { margin-bottom: 12px; color: var(--white); font-size: clamp(2rem, 5vw, 3.4rem); }
.ijms-portal-heading p { max-width: 720px; margin: 0; }
.ijms-form { padding: clamp(24px, 5vw, 46px); }
.ijms-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.ijms-grid label { display: flex; min-width: 0; flex-direction: column; gap: 7px; }
.ijms-grid .ijms-wide { grid-column: 1 / -1; }
.ijms-grid small { color: var(--muted); font-weight: 400; }
.ijms-grid .ijms-check { display: grid; grid-template-columns: 22px 1fr; align-items: start; }
.ijms-check input[type="checkbox"] { width: 18px; height: 18px; margin-top: 4px; accent-color: var(--ijms-primary); }
.ijms-form input[type="file"] { padding: 12px; border-style: dashed; background: #f7f9fa; }
.ijms-button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; margin-top: 24px; padding: 11px 22px; border: 1px solid var(--ijms-primary); border-radius: var(--radius); background: var(--ijms-primary); color: var(--white); font-weight: 800; text-decoration: none; cursor: pointer; }
.ijms-button:hover { background: var(--ijms-secondary); color: var(--white); }
.ijms-button.ijms-secondary { border-color: var(--line); background: var(--white); color: var(--ijms-primary); }
/* Standard compact button -- ~30% smaller than the default CTA sizing,
   text close to the small .ijms-status-pill badges it usually sits next
   to (e.g. "Accept"). Used anywhere a real, clickable button is needed at
   pill-adjacent density: dashboard table cells, inline action rows.
   Client feedback, 2026-08-07: the full-size .ijms-button (46px tall, CTA
   weight) read as oversized next to small status pills and dense text in
   both dashboards -- standardized on ONE smaller button instead of the
   mix of a full button here and a separate pill-link there. */
.ijms-button.ijms-compact { min-height: 32px; margin-top: 0; padding: 6px 14px; font-size: .82rem; font-weight: 700; }
.ijms-notice { max-width: 980px; margin: 0 auto 22px; padding: 14px 18px; border-left: 4px solid var(--ijms-primary); background: #eaf2f6; color: var(--ijms-heading); }
.ijms-notice.ijms-error { border-color: #a13c35; background: #faecea; color: #732b26; }
.ijms-status-form { display: block; padding: clamp(24px, 5vw, 42px); }
.ijms-status-result { margin: 0 clamp(24px, 5vw, 42px) clamp(24px, 5vw, 42px); padding: 22px; border: 1px solid var(--line); background: #f7f9fa; }
.ijms-status-result p { margin: 7px 0 0; }
.ijms-login-shell { display: grid; grid-template-columns: minmax(0, .9fr) minmax(340px, 1.1fr); overflow: hidden; background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow); max-width: 1140px; }
.ijms-login-brand { padding: clamp(30px, 6vw, 56px); background: var(--ink); color: #d7e4eb; }
.ijms-login-brand > span { color: #e1b17e; font-weight: 800; letter-spacing: .15em; }
.ijms-login-brand h1 { margin-top: 26px; color: var(--white); font-size: clamp(2rem, 4vw, 3.2rem); }
.ijms-login-panel { padding: clamp(30px, 6vw, 56px); }
.ijms-login-panel h2 { font-size: 2rem; }
.ijms-login-panel form p { margin-bottom: 18px; }
.ijms-login-panel label { display: block; margin-bottom: 6px; }
.ijms-login-panel input[type="submit"] { min-height: 46px; padding: 11px 22px; border: 0; border-radius: var(--radius); background: var(--ijms-primary); color: var(--white); font-weight: 800; cursor: pointer; }
.ijms-actions { display: flex; flex-wrap: wrap; gap: 10px; padding: clamp(24px, 5vw, 42px); }

/* Author/Reviewer dashboard sections -- previously entirely unstyled
   (bare <h2>/<table>/<p>), which read as broken/empty rather than simply
   having no data yet. */
.ijms-dashboard-section { padding: clamp(20px, 4vw, 36px); border-top: 1px solid var(--line); }
.ijms-dashboard-section:first-of-type { border-top: 0; }
.ijms-dashboard-section h2 { margin: 0 0 16px; color: var(--ijms-heading); font-size: 1.3rem; }
.ijms-dashboard-section h3 { margin: 24px 0 12px; color: var(--ijms-heading); font-size: 1.05rem; }
.ijms-dashboard-empty { margin: 0; padding: 18px; border: 1px dashed var(--line); border-radius: var(--radius); background: var(--ijms-bg); color: var(--muted); }
.ijms-dashboard-table { width: 100%; border-collapse: collapse; }
.ijms-dashboard-table th { padding: 10px 14px; border-bottom: 2px solid var(--line); color: var(--muted); font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-align: left; text-transform: uppercase; }
.ijms-dashboard-table td { padding: 12px 14px; border-bottom: 1px solid var(--line); }
.ijms-dashboard-table tbody tr:last-child td { border-bottom: 0; }
.ijms-status-pill { display: inline-block; padding: 4px 12px; border-radius: 999px; background: #eaf2f6; color: var(--ijms-primary); font-size: .78rem; font-weight: 700; }
/* Inline "Review Proof" row -- same collapsed-into-the-table idea as the
   existing inline abstract/manuscript revision rows, styled here since
   this is the first of that family to actually need its own look. */
.ijms-inline-row td { padding: 0; border-bottom: 1px solid var(--line); }
.ijms-inline-panel { padding: 20px clamp(14px, 3vw, 28px); background: var(--ijms-bg); }
.ijms-inline-panel h4 { margin: 0 0 8px; color: var(--ijms-heading); font-size: 1rem; }
.ijms-inline-panel > p { margin: 0 0 14px; color: var(--muted); }
/* In-browser PDF preview -- native browser PDF rendering inside an
   iframe, no JS library needed (unlike the reviewer's DOCX viewer, which
   needs mammoth.js since browsers can't render docx natively). The
   author no longer has to download the file to see it. */
.ijms-proof-viewer { width: 100%; height: 480px; margin-bottom: 12px; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--white); }
.ijms-proof-viewer iframe { display: block; width: 100%; height: 100%; border: 0; }
/* Two clearly separated option-cards (approve vs. request changes)
   instead of a loose vertical stack of unrelated-looking buttons --
   client feedback, 2026-08-07: the earlier stacked layout "wasn't
   organized." Side by side on wide screens, stacked on narrow ones. */
.ijms-proof-actions { display: grid; grid-template-columns: 1fr auto 1fr; align-items: start; gap: 16px; max-width: 640px; }
.ijms-proof-option { display: flex; flex-direction: column; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.ijms-proof-option__label { font-size: .82rem; font-weight: 700; color: var(--ijms-heading); }
.ijms-proof-divider { align-self: center; color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.ijms-inline-form { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; width: 100%; }
.ijms-inline-form textarea { width: 100%; min-height: 60px; padding: 10px; border: 1px solid var(--line); border-radius: var(--radius); font: inherit; resize: vertical; }
.ijms-inline-form .ijms-button { margin-top: 0; }
@media (max-width: 560px) {
    .ijms-proof-actions { grid-template-columns: 1fr; }
    .ijms-proof-divider { justify-self: center; }
}

/* Reviewer Dashboard rows (invitations/active/completed lists). */
.ijms-review-row { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.ijms-review-row + .ijms-review-row { margin-top: 12px; }
.ijms-review-row__info { display: flex; flex-direction: column; gap: 6px; }
.ijms-review-row__meta { color: var(--muted); font-size: .82rem; }
.ijms-review-row__meta--overdue { color: #a13c35; font-weight: 700; }
.ijms-review-row__actions { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.ijms-review-row__reason-label { display: flex; flex-direction: column; gap: 5px; font-size: .82rem; }
/* Groups the recommendation pill and certificate button so they align
   with each other, rather than each aligning independently to the top of
   the (taller, two-line) .ijms-review-row__info block next to them --
   client-reported misalignment, 2026-08-07. */
.ijms-review-row__badges { display: flex; align-items: center; gap: 10px; }
.ijms-review-row__buttons { display: flex; gap: 8px; }
.ijms-review-manuscript, .ijms-review-submit { margin-top: 10px; width: 100%; }
.ijms-review-manuscript summary, .ijms-review-submit summary { padding: 8px 0; color: var(--ijms-primary); font-weight: 700; cursor: pointer; }
.ijms-manuscript-summary { padding: 14px; border-radius: var(--radius); background: var(--ijms-bg); }
.ijms-manuscript-summary p { margin: 0 0 8px; }
.ijms-review-submit form { display: grid; gap: 14px; }
.ijms-review-submit form label { display: grid; gap: 6px; }
.ijms-review-submit form textarea, .ijms-review-submit form select, .ijms-review-submit form input[type=file] { box-sizing: border-box; width: 100%; }
.ijms-review-submit__actions { display: flex; gap: 10px; }
