I’ll build this as a complete advanced citation stylesheet for RX Theme: citation chips, reference boxes, medical evidence badges, footnotes, DOI/PubMed links, responsive behavior, dark mode, print mode, accessibility, and WordPress block compatibility.
Yes friend — create this file:
assets/css/rx-citation.css
Then paste the full code below.
/*!
Theme Name: RX Theme
File: assets/css/rx-citation.css
Purpose: Advanced citation, references, evidence badges, footnotes, source links, medical article reference UI
Author: RxHarun
Version: 1.0.0
*/
/* =========================================================
RX CITATION SYSTEM
========================================================= */
/* Root citation variables */
:root {
--rx-cite-font-family: inherit;
--rx-cite-font-size: 0.875rem;
--rx-cite-line-height: 1.55;
--rx-cite-text: #17405f;
--rx-cite-text-muted: #5b7083;
--rx-cite-bg: #eef8ff;
--rx-cite-bg-soft: #f7fcff;
--rx-cite-bg-hover: #dff2ff;
--rx-cite-border: #b9def5;
--rx-cite-border-strong: #5bb5e8;
--rx-cite-primary: #0877b9;
--rx-cite-primary-dark: #075f93;
--rx-cite-success: #138a53;
--rx-cite-warning: #a86500;
--rx-cite-danger: #b42318;
--rx-cite-info: #2563eb;
--rx-cite-radius-xs: 4px;
--rx-cite-radius-sm: 6px;
--rx-cite-radius-md: 10px;
--rx-cite-radius-lg: 16px;
--rx-cite-radius-pill: 999px;
--rx-cite-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.08);
--rx-cite-shadow-md: 0 8px 24px rgba(15, 23, 42, 0.10);
--rx-cite-shadow-lg: 0 16px 40px rgba(15, 23, 42, 0.14);
--rx-cite-space-1: 0.25rem;
--rx-cite-space-2: 0.5rem;
--rx-cite-space-3: 0.75rem;
--rx-cite-space-4: 1rem;
--rx-cite-space-5: 1.25rem;
--rx-cite-space-6: 1.5rem;
--rx-cite-space-8: 2rem;
--rx-cite-transition: 160ms ease;
}
/* Dark mode variables */
@media (prefers-color-scheme: dark) {
:root {
--rx-cite-text: #d7ecff;
--rx-cite-text-muted: #a8c0d6;
--rx-cite-bg: #0d2b3f;
--rx-cite-bg-soft: #071e2d;
--rx-cite-bg-hover: #123c58;
--rx-cite-border: #285a76;
--rx-cite-border-strong: #4da8d9;
--rx-cite-primary: #6bc8ff;
--rx-cite-primary-dark: #9ddcff;
--rx-cite-success: #68d391;
--rx-cite-warning: #f6bd60;
--rx-cite-danger: #ff8a80;
--rx-cite-info: #93c5fd;
}
}
/* Manual dark class support */
.rx-theme-dark,
.dark,
[data-theme="dark"] {
--rx-cite-text: #d7ecff;
--rx-cite-text-muted: #a8c0d6;
--rx-cite-bg: #0d2b3f;
--rx-cite-bg-soft: #071e2d;
--rx-cite-bg-hover: #123c58;
--rx-cite-border: #285a76;
--rx-cite-border-strong: #4da8d9;
--rx-cite-primary: #6bc8ff;
--rx-cite-primary-dark: #9ddcff;
}
/* =========================================================
INLINE CITATION CHIPS
========================================================= */
.rx-citation,
.rx-cite,
.rx-ref,
.entry-content a.rx-citation,
.entry-content a.rx-cite,
.entry-content a.rx-ref {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.25em;
min-width: 1.65em;
min-height: 1.65em;
padding: 0.08em 0.55em;
margin-inline: 0.12em;
border: 1px solid var(--rx-cite-border);
border-radius: var(--rx-cite-radius-pill);
background: var(--rx-cite-bg);
color: var(--rx-cite-primary);
font-family: var(--rx-cite-font-family);
font-size: 0.78em;
font-weight: 700;
line-height: 1.25;
text-decoration: none;
vertical-align: baseline;
white-space: nowrap;
box-shadow: var(--rx-cite-shadow-sm);
transition:
color var(--rx-cite-transition),
background-color var(--rx-cite-transition),
border-color var(--rx-cite-transition),
box-shadow var(--rx-cite-transition),
transform var(--rx-cite-transition);
}
.rx-citation:hover,
.rx-cite:hover,
.rx-ref:hover,
.entry-content a.rx-citation:hover,
.entry-content a.rx-cite:hover,
.entry-content a.rx-ref:hover {
background: var(--rx-cite-bg-hover);
color: var(--rx-cite-primary-dark);
border-color: var(--rx-cite-border-strong);
text-decoration: none;
box-shadow: var(--rx-cite-shadow-md);
transform: translateY(-1px);
}
.rx-citation:focus-visible,
.rx-cite:focus-visible,
.rx-ref:focus-visible {
outline: 3px solid color-mix(in srgb, var(--rx-cite-primary) 35%, transparent);
outline-offset: 2px;
}
/* Citation number style */
.rx-citation-number,
.rx-cite-number {
font-variant-numeric: tabular-nums;
letter-spacing: 0.01em;
}
/* Bracket citation style: [1] */
.rx-citation-bracket {
display: inline;
padding: 0;
margin: 0 0.08em;
border: 0;
background: transparent;
box-shadow: none;
color: var(--rx-cite-primary);
font-size: 0.88em;
font-weight: 700;
text-decoration: none;
}
.rx-citation-bracket::before {
content: "[";
}
.rx-citation-bracket::after {
content: "]";
}
.rx-citation-bracket:hover {
background: transparent;
box-shadow: none;
text-decoration: underline;
transform: none;
}
/* Superscript citation */
.rx-citation-super,
sup.rx-citation,
sup.rx-cite {
position: relative;
top: -0.35em;
display: inline-flex;
padding: 0.05em 0.42em;
font-size: 0.68em;
line-height: 1.1;
vertical-align: baseline;
}
/* Compact citation */
.rx-citation-compact {
min-width: auto;
min-height: auto;
padding: 0.02em 0.38em;
font-size: 0.72em;
box-shadow: none;
}
/* Large citation */
.rx-citation-large {
padding: 0.22em 0.75em;
font-size: 0.9em;
}
/* Rounded square citation */
.rx-citation-square {
border-radius: var(--rx-cite-radius-sm);
}
/* =========================================================
CITATION LINK TYPES
========================================================= */
.rx-cite-pubmed,
.rx-cite-doi,
.rx-cite-fda,
.rx-cite-who,
.rx-cite-cdc,
.rx-cite-nhs,
.rx-cite-guideline,
.rx-cite-journal,
.rx-cite-book,
.rx-cite-website {
position: relative;
}
.rx-cite-pubmed::before {
content: "PMID";
font-size: 0.68em;
font-weight: 800;
opacity: 0.82;
}
.rx-cite-doi::before {
content: "DOI";
font-size: 0.68em;
font-weight: 800;
opacity: 0.82;
}
.rx-cite-fda::before {
content: "FDA";
font-size: 0.68em;
font-weight: 800;
opacity: 0.82;
}
.rx-cite-who::before {
content: "WHO";
font-size: 0.68em;
font-weight: 800;
opacity: 0.82;
}
.rx-cite-cdc::before {
content: "CDC";
font-size: 0.68em;
font-weight: 800;
opacity: 0.82;
}
.rx-cite-nhs::before {
content: "NHS";
font-size: 0.68em;
font-weight: 800;
opacity: 0.82;
}
/* External source icon */
.rx-cite-external::after,
.rx-reference-link[target="_blank"]::after {
content: "↗";
margin-left: 0.25em;
font-size: 0.85em;
line-height: 1;
opacity: 0.75;
}
/* =========================================================
EVIDENCE BADGES
========================================================= */
.rx-evidence-badge,
.rx-cite-badge {
display: inline-flex;
align-items: center;
gap: 0.35em;
padding: 0.25em 0.65em;
border-radius: var(--rx-cite-radius-pill);
border: 1px solid var(--rx-cite-border);
background: var(--rx-cite-bg-soft);
color: var(--rx-cite-text);
font-size: 0.78rem;
font-weight: 700;
line-height: 1.3;
white-space: nowrap;
vertical-align: middle;
}
.rx-evidence-badge::before {
content: "";
width: 0.55em;
height: 0.55em;
border-radius: 50%;
background: currentColor;
opacity: 0.85;
}
.rx-evidence-high {
color: var(--rx-cite-success);
border-color: color-mix(in srgb, var(--rx-cite-success) 45%, transparent);
background: color-mix(in srgb, var(--rx-cite-success) 11%, transparent);
}
.rx-evidence-moderate {
color: var(--rx-cite-info);
border-color: color-mix(in srgb, var(--rx-cite-info) 45%, transparent);
background: color-mix(in srgb, var(--rx-cite-info) 11%, transparent);
}
.rx-evidence-low {
color: var(--rx-cite-warning);
border-color: color-mix(in srgb, var(--rx-cite-warning) 45%, transparent);
background: color-mix(in srgb, var(--rx-cite-warning) 11%, transparent);
}
.rx-evidence-very-low {
color: var(--rx-cite-danger);
border-color: color-mix(in srgb, var(--rx-cite-danger) 45%, transparent);
background: color-mix(in srgb, var(--rx-cite-danger) 11%, transparent);
}
.rx-evidence-guideline::after {
content: "Guideline";
}
.rx-evidence-review::after {
content: "Review";
}
.rx-evidence-rct::after {
content: "RCT";
}
.rx-evidence-meta::after {
content: "Meta-analysis";
}
.rx-evidence-observational::after {
content: "Observational";
}
/* =========================================================
REFERENCE SECTION
========================================================= */
.rx-references,
.rx-reference-section,
.references,
.wp-block-group.rx-references {
margin-block: clamp(2rem, 4vw, 4rem);
padding: clamp(1rem, 3vw, 2rem);
border: 1px solid var(--rx-cite-border);
border-radius: var(--rx-cite-radius-lg);
background:
linear-gradient(
180deg,
color-mix(in srgb, var(--rx-cite-bg) 60%, transparent),
color-mix(in srgb, var(--rx-cite-bg-soft) 85%, transparent)
);
color: var(--rx-cite-text);
box-shadow: var(--rx-cite-shadow-sm);
}
.rx-references-title,
.rx-reference-title,
.rx-references h2,
.rx-references h3,
.references h2,
.references h3 {
display: flex;
align-items: center;
gap: 0.5rem;
margin-block: 0 1rem;
color: var(--rx-cite-text);
font-size: clamp(1.35rem, 2vw, 1.8rem);
line-height: 1.25;
}
.rx-references-title::before,
.rx-reference-title::before {
content: "▦";
color: var(--rx-cite-primary);
font-size: 0.9em;
}
.rx-references-description {
margin-block: -0.35rem 1.25rem;
color: var(--rx-cite-text-muted);
font-size: 0.95rem;
line-height: 1.7;
}
/* Reference list */
.rx-reference-list,
.rx-references ol,
.rx-references ul,
.references ol,
.references ul {
display: grid;
gap: 0.75rem;
margin: 0;
padding-left: 1.4rem;
}
.rx-reference-list {
list-style-position: outside;
}
.rx-reference-item,
.rx-references li,
.references li {
position: relative;
padding: 0.85rem 1rem;
border: 1px solid color-mix(in srgb, var(--rx-cite-border) 75%, transparent);
border-radius: var(--rx-cite-radius-md);
background: color-mix(in srgb, var(--rx-cite-bg-soft) 92%, transparent);
color: var(--rx-cite-text);
font-size: var(--rx-cite-font-size);
line-height: var(--rx-cite-line-height);
overflow-wrap: anywhere;
transition:
background-color var(--rx-cite-transition),
border-color var(--rx-cite-transition),
box-shadow var(--rx-cite-transition),
transform var(--rx-cite-transition);
}
.rx-reference-item:hover,
.rx-references li:hover,
.references li:hover {
border-color: var(--rx-cite-border-strong);
background: color-mix(in srgb, var(--rx-cite-bg-hover) 65%, transparent);
box-shadow: var(--rx-cite-shadow-md);
transform: translateY(-1px);
}
/* Highlight targeted reference */
.rx-reference-item:target,
.rx-references li:target,
.references li:target {
border-color: var(--rx-cite-primary);
background: color-mix(in srgb, var(--rx-cite-primary) 12%, var(--rx-cite-bg-soft));
box-shadow: 0 0 0 4px color-mix(in srgb, var(--rx-cite-primary) 18%, transparent);
scroll-margin-top: 6rem;
}
/* Reference meta */
.rx-reference-meta {
display: flex;
flex-wrap: wrap;
gap: 0.4rem;
margin-top: 0.45rem;
color: var(--rx-cite-text-muted);
font-size: 0.8rem;
}
.rx-reference-author,
.rx-reference-year,
.rx-reference-journal,
.rx-reference-source,
.rx-reference-doi,
.rx-reference-pmid {
display: inline-flex;
align-items: center;
gap: 0.25em;
}
/* Reference link */
.rx-reference-link,
.rx-references a,
.references a {
color: var(--rx-cite-primary);
font-weight: 700;
text-decoration: underline;
text-decoration-thickness: 0.08em;
text-underline-offset: 0.18em;
transition: color var(--rx-cite-transition);
}
.rx-reference-link:hover,
.rx-references a:hover,
.references a:hover {
color: var(--rx-cite-primary-dark);
text-decoration-thickness: 0.12em;
}
.rx-reference-link:focus-visible,
.rx-references a:focus-visible,
.references a:focus-visible {
outline: 3px solid color-mix(in srgb, var(--rx-cite-primary) 35%, transparent);
outline-offset: 3px;
border-radius: var(--rx-cite-radius-xs);
}
/* =========================================================
FOOTNOTE SYSTEM
========================================================= */
.rx-footnotes,
.rx-footnote-section {
margin-block: 2rem;
padding-top: 1rem;
border-top: 2px solid var(--rx-cite-border);
font-size: 0.92rem;
color: var(--rx-cite-text);
}
.rx-footnotes-title {
margin: 0 0 0.8rem;
font-size: 1.2rem;
color: var(--rx-cite-text);
}
.rx-footnote-ref,
a.rx-footnote-ref {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 1.35em;
min-height: 1.35em;
padding: 0.02em 0.35em;
border-radius: var(--rx-cite-radius-pill);
background: var(--rx-cite-bg);
color: var(--rx-cite-primary);
font-size: 0.68em;
font-weight: 800;
line-height: 1;
text-decoration: none;
vertical-align: super;
}
.rx-footnote-ref:hover {
background: var(--rx-cite-bg-hover);
text-decoration: none;
}
.rx-footnote-back {
display: inline-flex;
margin-left: 0.35em;
color: var(--rx-cite-primary);
text-decoration: none;
font-weight: 800;
}
.rx-footnote-back::before {
content: "↩";
}
/* =========================================================
MEDICAL SOURCE CARD
========================================================= */
.rx-source-card {
display: grid;
gap: 0.65rem;
margin-block: 1.25rem;
padding: 1rem;
border: 1px solid var(--rx-cite-border);
border-left: 5px solid var(--rx-cite-primary);
border-radius: var(--rx-cite-radius-md);
background: var(--rx-cite-bg-soft);
color: var(--rx-cite-text);
box-shadow: var(--rx-cite-shadow-sm);
}
.rx-source-card-title {
margin: 0;
color: var(--rx-cite-text);
font-size: 1rem;
font-weight: 800;
line-height: 1.35;
}
.rx-source-card-text {
margin: 0;
color: var(--rx-cite-text-muted);
font-size: 0.92rem;
line-height: 1.65;
}
.rx-source-card-footer {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin-top: 0.25rem;
}
/* Source card types */
.rx-source-card-guideline {
border-left-color: var(--rx-cite-success);
}
.rx-source-card-warning {
border-left-color: var(--rx-cite-warning);
}
.rx-source-card-danger {
border-left-color: var(--rx-cite-danger);
}
.rx-source-card-info {
border-left-color: var(--rx-cite-info);
}
/* =========================================================
ARTICLE TRUST BOX
========================================================= */
.rx-trust-box,
.rx-medical-review-box {
margin-block: 1.5rem;
padding: 1.15rem;
border: 1px solid var(--rx-cite-border);
border-radius: var(--rx-cite-radius-lg);
background:
radial-gradient(
circle at top left,
color-mix(in srgb, var(--rx-cite-primary) 12%, transparent),
transparent 36%
),
var(--rx-cite-bg-soft);
color: var(--rx-cite-text);
box-shadow: var(--rx-cite-shadow-sm);
}
.rx-trust-box-header {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.65rem;
margin-bottom: 0.65rem;
}
.rx-trust-box-title {
margin: 0;
font-size: 1.05rem;
font-weight: 800;
line-height: 1.3;
}
.rx-trust-box-title::before {
content: "✓";
display: inline-grid;
place-items: center;
width: 1.35em;
height: 1.35em;
margin-right: 0.45em;
border-radius: 50%;
background: color-mix(in srgb, var(--rx-cite-success) 16%, transparent);
color: var(--rx-cite-success);
font-size: 0.85em;
}
.rx-trust-box-content {
color: var(--rx-cite-text-muted);
font-size: 0.94rem;
line-height: 1.7;
}
.rx-trust-box-content p {
margin-block: 0 0.75rem;
}
.rx-trust-box-content p:last-child {
margin-bottom: 0;
}
/* =========================================================
CITATION TOOLTIP
========================================================= */
.rx-citation-tooltip {
position: relative;
cursor: help;
}
.rx-citation-tooltip[data-rx-tooltip]::after {
content: attr(data-rx-tooltip);
position: absolute;
left: 50%;
bottom: calc(100% + 0.65rem);
z-index: 20;
width: max-content;
max-width: min(280px, 90vw);
padding: 0.65rem 0.75rem;
border: 1px solid var(--rx-cite-border);
border-radius: var(--rx-cite-radius-md);
background: var(--rx-cite-bg-soft);
color: var(--rx-cite-text);
font-size: 0.78rem;
font-weight: 600;
line-height: 1.45;
box-shadow: var(--rx-cite-shadow-lg);
opacity: 0;
visibility: hidden;
transform: translateX(-50%) translateY(0.35rem);
transition:
opacity var(--rx-cite-transition),
visibility var(--rx-cite-transition),
transform var(--rx-cite-transition);
pointer-events: none;
}
.rx-citation-tooltip[data-rx-tooltip]::before {
content: "";
position: absolute;
left: 50%;
bottom: calc(100% + 0.3rem);
z-index: 21;
width: 0.7rem;
height: 0.7rem;
background: var(--rx-cite-bg-soft);
border-right: 1px solid var(--rx-cite-border);
border-bottom: 1px solid var(--rx-cite-border);
opacity: 0;
visibility: hidden;
transform: translateX(-50%) rotate(45deg);
transition:
opacity var(--rx-cite-transition),
visibility var(--rx-cite-transition);
pointer-events: none;
}
.rx-citation-tooltip:hover::after,
.rx-citation-tooltip:hover::before,
.rx-citation-tooltip:focus-visible::after,
.rx-citation-tooltip:focus-visible::before {
opacity: 1;
visibility: visible;
transform: translateX(-50%) translateY(0);
}
.rx-citation-tooltip:hover::before,
.rx-citation-tooltip:focus-visible::before {
transform: translateX(-50%) rotate(45deg);
}
/* =========================================================
CITATION CALLOUTS
========================================================= */
.rx-citation-callout {
margin-block: 1.5rem;
padding: 1rem 1.1rem;
border: 1px solid var(--rx-cite-border);
border-left: 5px solid var(--rx-cite-primary);
border-radius: var(--rx-cite-radius-md);
background: var(--rx-cite-bg-soft);
color: var(--rx-cite-text);
}
.rx-citation-callout p {
margin-block: 0 0.75rem;
}
.rx-citation-callout p:last-child {
margin-bottom: 0;
}
.rx-citation-callout-title {
margin: 0 0 0.45rem;
font-size: 1rem;
font-weight: 800;
color: var(--rx-cite-text);
}
.rx-citation-callout-note {
border-left-color: var(--rx-cite-info);
}
.rx-citation-callout-success {
border-left-color: var(--rx-cite-success);
}
.rx-citation-callout-warning {
border-left-color: var(--rx-cite-warning);
}
.rx-citation-callout-danger {
border-left-color: var(--rx-cite-danger);
}
/* =========================================================
SOURCE QUALITY LABELS
========================================================= */
.rx-source-quality {
display: inline-flex;
align-items: center;
gap: 0.35em;
padding: 0.22em 0.6em;
border-radius: var(--rx-cite-radius-pill);
font-size: 0.75rem;
font-weight: 800;
line-height: 1.25;
border: 1px solid currentColor;
}
.rx-source-quality-a {
color: var(--rx-cite-success);
background: color-mix(in srgb, var(--rx-cite-success) 10%, transparent);
}
.rx-source-quality-b {
color: var(--rx-cite-info);
background: color-mix(in srgb, var(--rx-cite-info) 10%, transparent);
}
.rx-source-quality-c {
color: var(--rx-cite-warning);
background: color-mix(in srgb, var(--rx-cite-warning) 10%, transparent);
}
.rx-source-quality-d {
color: var(--rx-cite-danger);
background: color-mix(in srgb, var(--rx-cite-danger) 10%, transparent);
}
/* =========================================================
UPDATED / REVIEWED META
========================================================= */
.rx-citation-meta-bar {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.55rem;
margin-block: 1rem;
padding: 0.75rem 0.9rem;
border: 1px solid var(--rx-cite-border);
border-radius: var(--rx-cite-radius-md);
background: var(--rx-cite-bg-soft);
color: var(--rx-cite-text-muted);
font-size: 0.86rem;
line-height: 1.5;
}
.rx-citation-meta-item {
display: inline-flex;
align-items: center;
gap: 0.35em;
}
.rx-citation-meta-item strong {
color: var(--rx-cite-text);
}
.rx-citation-meta-reviewed::before {
content: "✓";
color: var(--rx-cite-success);
font-weight: 900;
}
.rx-citation-meta-updated::before {
content: "↻";
color: var(--rx-cite-info);
font-weight: 900;
}
.rx-citation-meta-author::before {
content: "✎";
color: var(--rx-cite-primary);
font-weight: 900;
}
/* =========================================================
NUMBERED REFERENCE COUNTER
========================================================= */
.rx-reference-list-counter {
counter-reset: rx-reference-counter;
list-style: none;
padding-left: 0;
}
.rx-reference-list-counter .rx-reference-item,
.rx-reference-list-counter li {
counter-increment: rx-reference-counter;
padding-left: 3.25rem;
}
.rx-reference-list-counter .rx-reference-item::before,
.rx-reference-list-counter li::before {
content: counter(rx-reference-counter);
position: absolute;
left: 1rem;
top: 0.9rem;
display: inline-grid;
place-items: center;
width: 1.6rem;
height: 1.6rem;
border-radius: 50%;
background: var(--rx-cite-bg);
color: var(--rx-cite-primary);
border: 1px solid var(--rx-cite-border);
font-size: 0.78rem;
font-weight: 900;
}
/* =========================================================
TWO-COLUMN REFERENCES
========================================================= */
.rx-references-columns .rx-reference-list,
.rx-references-columns ol,
.rx-references-columns ul {
column-count: 2;
column-gap: 1.5rem;
display: block;
}
.rx-references-columns .rx-reference-item,
.rx-references-columns li {
break-inside: avoid;
margin-bottom: 0.75rem;
}
/* =========================================================
WORDPRESS BLOCK COMPATIBILITY
========================================================= */
.wp-block-footnotes {
margin-block: 2rem;
padding: 1rem;
border: 1px solid var(--rx-cite-border);
border-radius: var(--rx-cite-radius-lg);
background: var(--rx-cite-bg-soft);
color: var(--rx-cite-text);
}
.wp-block-footnotes li {
margin-bottom: 0.7rem;
line-height: 1.65;
}
.wp-block-footnotes a {
color: var(--rx-cite-primary);
font-weight: 700;
}
.wp-block-pullquote.rx-citation-pullquote {
border-color: var(--rx-cite-border-strong);
color: var(--rx-cite-text);
}
.wp-block-quote.rx-citation-quote {
border-left-color: var(--rx-cite-primary);
background: var(--rx-cite-bg-soft);
padding: 1rem;
border-radius: 0 var(--rx-cite-radius-md) var(--rx-cite-radius-md) 0;
}
/* =========================================================
TABLE REFERENCES
========================================================= */
.rx-reference-table-wrapper {
overflow-x: auto;
margin-block: 1.5rem;
border: 1px solid var(--rx-cite-border);
border-radius: var(--rx-cite-radius-md);
background: var(--rx-cite-bg-soft);
}
.rx-reference-table {
width: 100%;
border-collapse: collapse;
min-width: 640px;
color: var(--rx-cite-text);
font-size: 0.9rem;
}
.rx-reference-table th,
.rx-reference-table td {
padding: 0.8rem 0.9rem;
border-bottom: 1px solid var(--rx-cite-border);
text-align: left;
vertical-align: top;
}
.rx-reference-table th {
background: var(--rx-cite-bg);
color: var(--rx-cite-text);
font-weight: 800;
}
.rx-reference-table tr:last-child td {
border-bottom: 0;
}
.rx-reference-table tbody tr:hover {
background: color-mix(in srgb, var(--rx-cite-bg-hover) 45%, transparent);
}
/* =========================================================
ABSTRACT / STUDY SUMMARY BOX
========================================================= */
.rx-study-summary {
margin-block: 1.5rem;
padding: 1.2rem;
border: 1px solid var(--rx-cite-border);
border-radius: var(--rx-cite-radius-lg);
background: var(--rx-cite-bg-soft);
color: var(--rx-cite-text);
}
.rx-study-summary-header {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 0.75rem;
margin-bottom: 0.8rem;
}
.rx-study-summary-title {
margin: 0;
font-size: 1.05rem;
font-weight: 900;
}
.rx-study-summary-grid {
display: grid;
gap: 0.75rem;
}
.rx-study-summary-row {
display: grid;
grid-template-columns: minmax(120px, 180px) 1fr;
gap: 0.75rem;
padding-block: 0.55rem;
border-top: 1px solid color-mix(in srgb, var(--rx-cite-border) 70%, transparent);
}
.rx-study-summary-label {
color: var(--rx-cite-text);
font-weight: 800;
}
.rx-study-summary-value {
color: var(--rx-cite-text-muted);
}
/* =========================================================
REFERENCE FILTER BAR
========================================================= */
.rx-reference-filter {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin-bottom: 1rem;
}
.rx-reference-filter-button {
display: inline-flex;
align-items: center;
gap: 0.35em;
padding: 0.45rem 0.8rem;
border: 1px solid var(--rx-cite-border);
border-radius: var(--rx-cite-radius-pill);
background: var(--rx-cite-bg-soft);
color: var(--rx-cite-text);
font: inherit;
font-size: 0.85rem;
font-weight: 800;
cursor: pointer;
transition:
background-color var(--rx-cite-transition),
color var(--rx-cite-transition),
border-color var(--rx-cite-transition),
box-shadow var(--rx-cite-transition);
}
.rx-reference-filter-button:hover,
.rx-reference-filter-button.is-active,
.rx-reference-filter-button[aria-pressed="true"] {
background: var(--rx-cite-bg-hover);
color: var(--rx-cite-primary);
border-color: var(--rx-cite-border-strong);
box-shadow: var(--rx-cite-shadow-sm);
}
/* =========================================================
CITATION ANCHOR OFFSET
========================================================= */
[id^="ref-"],
[id^="citation-"],
[id^="footnote-"],
.rx-reference-anchor {
scroll-margin-top: 6rem;
}
/* =========================================================
MEDICAL DISCLAIMER MINI BOX
========================================================= */
.rx-citation-disclaimer {
margin-block: 1.5rem;
padding: 0.95rem 1rem;
border: 1px solid color-mix(in srgb, var(--rx-cite-warning) 45%, var(--rx-cite-border));
border-radius: var(--rx-cite-radius-md);
background: color-mix(in srgb, var(--rx-cite-warning) 10%, var(--rx-cite-bg-soft));
color: var(--rx-cite-text);
font-size: 0.92rem;
line-height: 1.65;
}
.rx-citation-disclaimer strong {
color: var(--rx-cite-warning);
}
/* =========================================================
PRINT OPTIMIZATION
========================================================= */
@media print {
:root {
--rx-cite-text: #000;
--rx-cite-text-muted: #333;
--rx-cite-bg: #fff;
--rx-cite-bg-soft: #fff;
--rx-cite-bg-hover: #fff;
--rx-cite-border: #999;
--rx-cite-border-strong: #444;
--rx-cite-primary: #000;
--rx-cite-primary-dark: #000;
}
.rx-citation,
.rx-cite,
.rx-ref,
.rx-footnote-ref {
border: 1px solid #999;
background: #fff;
color: #000;
box-shadow: none;
text-decoration: none;
}
.rx-citation-tooltip::before,
.rx-citation-tooltip::after {
display: none !important;
}
.rx-references,
.rx-reference-section,
.references,
.rx-source-card,
.rx-trust-box,
.rx-medical-review-box,
.rx-citation-callout,
.rx-study-summary {
break-inside: avoid;
box-shadow: none;
background: #fff;
}
.rx-references a[href]::after,
.references a[href]::after,
.rx-reference-link[href]::after {
content: " (" attr(href) ")";
font-size: 0.82em;
font-weight: 400;
word-break: break-all;
}
.rx-cite-external::after,
.rx-reference-link[target="_blank"]::after {
content: " (" attr(href) ")";
}
}
/* =========================================================
RESPONSIVE DESIGN
========================================================= */
@media (max-width: 768px) {
.rx-references,
.rx-reference-section,
.references {
padding: 1rem;
border-radius: var(--rx-cite-radius-md);
}
.rx-reference-item,
.rx-references li,
.references li {
padding: 0.75rem;
}
.rx-reference-list-counter .rx-reference-item,
.rx-reference-list-counter li {
padding-left: 2.8rem;
}
.rx-reference-list-counter .rx-reference-item::before,
.rx-reference-list-counter li::before {
left: 0.75rem;
top: 0.78rem;
}
.rx-references-columns .rx-reference-list,
.rx-references-columns ol,
.rx-references-columns ul {
column-count: 1;
}
.rx-study-summary-row {
grid-template-columns: 1fr;
gap: 0.25rem;
}
.rx-citation-meta-bar {
align-items: flex-start;
flex-direction: column;
}
}
@media (max-width: 480px) {
.rx-citation,
.rx-cite,
.rx-ref {
font-size: 0.72em;
padding-inline: 0.42em;
}
.rx-evidence-badge,
.rx-cite-badge,
.rx-source-quality {
white-space: normal;
}
.rx-reference-filter-button {
width: 100%;
justify-content: center;
}
}
/* =========================================================
REDUCED MOTION
========================================================= */
@media (prefers-reduced-motion: reduce) {
.rx-citation,
.rx-cite,
.rx-ref,
.rx-reference-item,
.rx-references li,
.references li,
.rx-reference-filter-button,
.rx-citation-tooltip::before,
.rx-citation-tooltip::after {
transition: none !important;
}
.rx-citation:hover,
.rx-cite:hover,
.rx-ref:hover,
.rx-reference-item:hover,
.rx-references li:hover,
.references li:hover {
transform: none !important;
}
}
/* =========================================================
HIGH CONTRAST MODE
========================================================= */
@media (prefers-contrast: more) {
.rx-citation,
.rx-cite,
.rx-ref,
.rx-reference-item,
.rx-references li,
.references li,
.rx-source-card,
.rx-trust-box,
.rx-citation-callout,
.rx-study-summary {
border-width: 2px;
}
.rx-citation,
.rx-cite,
.rx-ref,
.rx-reference-link,
.rx-references a,
.references a {
text-decoration-thickness: 2px;
}
}
/* =========================================================
UTILITY CLASSES
========================================================= */
.rx-cite-hidden {
display: none !important;
}
.rx-cite-visually-hidden {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip-path: inset(50%) !important;
white-space: nowrap !important;
border: 0 !important;
}
.rx-cite-text-muted {
color: var(--rx-cite-text-muted) !important;
}
.rx-cite-text-primary {
color: var(--rx-cite-primary) !important;
}
.rx-cite-bg-soft {
background: var(--rx-cite-bg-soft) !important;
}
.rx-cite-border {
border-color: var(--rx-cite-border) !important;
}
.rx-cite-no-shadow {
box-shadow: none !important;
}
.rx-cite-no-hover:hover {
transform: none !important;
box-shadow: none !important;
}
.rx-cite-center {
text-align: center;
}
.rx-cite-right {
text-align: right;
}
.rx-cite-stack {
display: grid;
gap: 0.75rem;
}
.rx-cite-inline-group {
display: inline-flex;
flex-wrap: wrap;
align-items: center;
gap: 0.35rem;
}
.rx-cite-flex {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.rx-cite-grid {
display: grid;
gap: 1rem;
}
/* =========================================================
END RX CITATION CSS
========================================================= */
Add this file in functions.php or your enqueue file:
wp_enqueue_style(
'rx-citation',
get_template_directory_uri() . '/assets/css/rx-citation.css',
array(),
wp_get_theme()->get('Version')
);
Example HTML use:
<p>
Vitamin B12 deficiency may cause megaloblastic anemia
<a class="rx-citation rx-cite-pubmed" href="#ref-1">1</a>.
</p>
<section class="rx-references rx-reference-section">
<h2 class="rx-references-title">References</h2>
<ol class="rx-reference-list rx-reference-list-counter">
<li id="ref-1" class="rx-reference-item">
National medical source or journal article title.
<a class="rx-reference-link" href="#" target="_blank" rel="noopener noreferrer">
View source
</a>
</li>
</ol>
</section>