:root {
  color-scheme: light;
  --sp-ink: #17263a;
  --sp-gold: #ad8432;
  --sp-bg: #f6f5f1;
  --sp-border: #e3e4e0;
  --sp-muted: #647080;
  --sp-radius: 14px;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--sp-bg); color: var(--sp-ink); font: 16px/1.65 system-ui, -apple-system, "Segoe UI", sans-serif; }
a { color: #315875; text-underline-offset: 3px; }
a:hover { color: #936d23; }
:focus-visible { outline: 3px solid #a78135; outline-offset: 4px; }
.sp-shell { width: min(100% - 3rem, 1120px); margin: 0 auto; padding: 1.6rem 0 5rem; min-height: calc(100vh - 200px); }
.sp-crumbs { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin-bottom: 2rem; color: var(--sp-muted); font-size: .8rem; }
.sp-crumbs a { color: var(--sp-muted); text-decoration: none; }
.sp-workspace-nav { display: flex; gap: .35rem; flex-wrap: wrap; padding: .4rem; margin: -.5rem 0 2rem; background: #fff; border: 1px solid var(--sp-border); border-radius: 10px; width: fit-content; }
.sp-workspace-nav a { padding: .55rem .85rem; font-size: .8rem; font-weight: 650; color: #536073; text-decoration: none; border-radius: 6px; }
.sp-workspace-nav a[aria-current="page"] { color: var(--sp-ink); background: #f0eee7; }
.sp-workspace-nav a:hover { background: #f6f5f1; }
h1 { max-width: 950px; font-size: clamp(2rem, 4.5vw, 3.3rem); line-height: 1.13; letter-spacing: -.045em; font-weight: 750; margin: .6rem 0 1.1rem; overflow-wrap: anywhere; }
h2 { font-size: 1.35rem; line-height: 1.35; letter-spacing: -.025em; margin: 2.3rem 0 1rem; }
h3 { margin: .5rem 0; line-height: 1.4; }
.sp-kicker { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: #896523; font-weight: 750; margin: 0 0 .6rem; }
.sp-lead { font-size: clamp(1rem, 2vw, 1.12rem); line-height: 1.8; color: #596574; max-width: 760px; }
.sp-hero { position: relative; padding: clamp(1.5rem, 4vw, 3.2rem); border: 1px solid #dedbd1; border-radius: 18px; background: linear-gradient(120deg, #fff 30%, #ede8dc); margin-bottom: 2.6rem; border-top: 3px solid #b99a50; }
.sp-hero h1 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.6rem, 5.5vw, 4.6rem); font-weight: 500; max-width: 750px; letter-spacing: -.055em; }
.sp-hero .sp-actions { margin-bottom: 0; }
.sp-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin: 1.5rem 0 1.8rem; align-items: center; }
.sp-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; padding: .75rem 1.1rem; color: #fff; background: var(--sp-ink); border: 1px solid var(--sp-ink); border-radius: 8px; font: 650 .84rem/1.4 system-ui, sans-serif; cursor: pointer; text-decoration: none; transition: background .15s, box-shadow .15s; }
.sp-btn:hover { background: #304158; color: #fff; text-decoration: none; box-shadow: 0 3px 9px #17263a12; }
.sp-btn-alt { background: #fff; color: var(--sp-ink); border-color: #d7d9d6; }
.sp-btn-alt:hover { background: #eeeae1; color: var(--sp-ink); }
.sp-btn-danger { background: #96413f; border-color: #96413f; }
.sp-btn-danger:hover { background: #7d302f; }
.sp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: 1.2rem; }
.sp-card { display: flex; flex-direction: column; background: #fff; padding: 1.6rem; border: 1px solid var(--sp-border); border-radius: var(--sp-radius); color: var(--sp-ink); text-decoration: none; transition: border-color .15s, box-shadow .15s; min-width: 0; }
.sp-card h2, .sp-card h3 { margin-top: .5rem; font-size: 1.35rem; }
.sp-card-image { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 8px; margin-bottom: 1rem; }
.sp-card > p:not(.sp-kicker) { color: #5d6875; font-size: .95rem; }
.sp-card .sp-meta { margin-top: auto; padding-top: 1rem; }
.sp-card:hover { color: var(--sp-ink); border-color: #bca66d; box-shadow: 0 8px 24px #15243908; text-decoration: none; }
.sp-meta { color: var(--sp-muted); font-size: .78rem; line-height: 1.6; }
.sp-empty { padding: 2.5rem 1.5rem; text-align: center; background: #fff; border: 1px dashed #d8d4c8; border-radius: var(--sp-radius); color: var(--sp-muted); }
.sp-empty h2 { color: var(--sp-ink); margin: 0 0 .5rem; }
.sp-empty p { max-width: 560px; margin: .5rem auto 1rem; }
.sp-article { max-width: 820px; margin: auto; background: #fff; padding: clamp(1.4rem, 5vw, 3.5rem); border: 1px solid var(--sp-border); border-radius: var(--sp-radius); }
.sp-article p { font-size: 1.05rem; line-height: 1.85; }
.sp-article h1 { font-family: Georgia, serif; font-weight: 500; }
.sp-article figure { margin: 1.8rem 0; }
.sp-article img { display: block; width: 100%; height: auto; max-height: 520px; object-fit: cover; border-radius: 10px; }
.sp-credit { color: var(--sp-muted); font-size: .78rem; padding-top: .5rem; }
.sp-evidence { margin-top: 3rem; padding-top: 1rem; border-top: 1px solid var(--sp-border); font-size: .88rem; overflow-wrap: anywhere; }
.sp-form { max-width: 800px; background: #fff; border: 1px solid var(--sp-border); padding: clamp(1.25rem, 4vw, 2.2rem); border-radius: var(--sp-radius); box-shadow: 0 4px 18px #15243903; }
.sp-form label { display: block; font-weight: 650; font-size: .9rem; margin: 1.4rem 0 .5rem; }
.sp-form > label:first-of-type { margin-top: 0; }
.sp-form textarea, .sp-form input, .sp-form select, .sp-row select { display: block; width: 100%; min-width: 0; padding: .85rem; color: var(--sp-ink); background: #fcfcfa; border: 1px solid #ccd1d3; border-radius: 8px; font: inherit; }
.sp-form textarea:focus, .sp-form input:focus, .sp-row select:focus { background: #fff; border-color: #a78135; outline: 2px solid #a7813525; outline-offset: 1px; }
.sp-form textarea { min-height: 180px; resize: vertical; line-height: 1.7; }
.sp-form textarea::placeholder { color: #84909a; }
.sp-form .sp-links { min-height: 125px; font-size: .9rem; }
.sp-form input[type="file"] { padding: .8rem; }
.sp-form .sp-check { display: flex; align-items: flex-start; gap: .7rem; font-weight: 400; }
.sp-form .sp-check input { width: 18px; height: 18px; flex: 0 0 18px; margin-top: .2rem; padding: 0; }
.sp-image-rights { margin: 1.4rem 0; padding: 1rem; border: 1px solid var(--sp-border); border-radius: 8px; min-width: 0; }
.sp-image-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 1rem; max-width: 800px; }
.sp-image-grid figure { margin: 0; min-width: 0; }
.sp-image-grid img { display: block; width: 100%; max-height: 320px; object-fit: contain; border-radius: 10px; }
.sp-form input[type="file"]::file-selector-button { background: #eeece5; color: var(--sp-ink); border: 0; border-radius: 5px; padding: .55rem .8rem; margin-right: .8rem; cursor: pointer; }
.sp-form .sp-note { margin-bottom: 1.4rem; }
.sp-note { color: var(--sp-muted); font-size: .84rem; line-height: 1.7; }
.sp-alert { border: 1px solid #e7c7c4; border-left: 4px solid #b05c55; border-radius: 6px; background: #fff5f3; padding: .9rem 1rem; margin: 1rem 0; }
.sp-policy { display: flex; gap: .85rem; align-items: flex-start; max-width: 900px; padding: 1rem 1.2rem; background: #eeece4; border: 1px solid #e1ddcf; border-radius: 10px; margin: 1.3rem 0; color: #5f625f; font-size: .85rem; }
.sp-policy strong { color: var(--sp-ink); }
.sp-row { display: flex; gap: .8rem; align-items: center; flex-wrap: wrap; }
.sp-filters { padding: 1rem 1.2rem; background: #fff; border: 1px solid var(--sp-border); border-radius: 12px; margin: 1.5rem 0 1rem; }
.sp-filters label { font-size: .8rem; font-weight: 650; color: var(--sp-muted); }
.sp-filters select { width: auto; padding: .55rem 2rem .55rem .75rem; font-size: .82rem; }
.sp-filters .sp-btn { min-height: 39px; padding: .6rem 1rem; }
.sp-count { margin: 0 0 .65rem; }
.sp-table-wrap { overflow-x: auto; background: #fff; border: 1px solid var(--sp-border); border-radius: 12px; }
.sp-table { width: 100%; border-collapse: collapse; font-size: .86rem; }
.sp-table th, .sp-table td { padding: 1.1rem 1rem; text-align: left; border-bottom: 1px solid #ecece7; vertical-align: top; }
.sp-table th { background: #f0f0eb; font-size: .68rem; letter-spacing: .07em; text-transform: uppercase; color: #66707b; white-space: nowrap; font-weight: 700; }
.sp-table tr:last-child td { border-bottom: 0; }
.sp-table tbody tr:hover { background: #fcfbf8; }
.sp-table td:first-child { min-width: 230px; max-width: 420px; }
.sp-table td > a:first-child { font-weight: 650; color: var(--sp-ink); text-decoration: none; }
.sp-table td > a:hover { text-decoration: underline; }
.sp-table .sp-empty-cell { padding: 2.4rem 1.5rem; text-align: center; color: var(--sp-muted); font-weight: 400; }
.sp-tags { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.sp-tag, .sp-status { display: inline-flex; align-items: center; gap: .35rem; font-size: .72rem; font-weight: 600; padding: .25rem .65rem; background: #eeeee8; border-radius: 6px; color: #536073; white-space: nowrap; }
.sp-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.sp-status-review { background: #faf0d8; color: #826321; }
.sp-status-published { background: #e9f3eb; color: #376e49; }
.sp-status-processing, .sp-status-queued { background: #eaf0f5; color: #456784; }
.sp-status-rejected, .sp-status-removed, .sp-status-duplicate { background: #f7eae8; color: #94574f; }
.sp-review { background: #fff; padding: clamp(1.2rem, 3vw, 2rem); border: 1px solid var(--sp-border); border-radius: var(--sp-radius); max-width: 960px; overflow-wrap: anywhere; }
.sp-review h2:first-child { margin-top: 0; }
.sp-review summary { cursor: pointer; font-size: .9rem; }
.sp-review[open] summary { margin-bottom: 1rem; }
.sp-review pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: .82rem; }
.sp-review textarea { width: 100%; border: 1px solid #cfd3d5; border-radius: 8px; padding: 1rem; font: .8rem/1.7 ui-monospace, monospace; margin: .75rem 0 1rem; }
.sp-footer { display: flex; flex-wrap: wrap; gap: 1.2rem; justify-content: center; padding: 1.6rem; background: #182536; color: #b2bac5; font-size: .78rem; }
.sp-footer a { color: #dfca92; text-decoration: none; }
@media (max-width: 600px) {
  .sp-shell { width: calc(100% - 2rem); padding-top: 1rem; }
  .sp-crumbs { margin-bottom: 1.4rem; }
  .sp-workspace-nav { gap: .2rem; width: 100%; }
  .sp-workspace-nav a { padding: .55rem .6rem; font-size: .73rem; }
  .sp-hero { padding: 1.5rem; }
  .sp-filters { gap: .6rem; }
  .sp-filters select { flex: 1 1 120px; }
  .sp-table th, .sp-table td { padding: .85rem; }
  .sp-submissions-table, .sp-submissions-table tbody { display: block; }
  .sp-submissions-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .sp-submissions-table tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .8rem; padding: 1.1rem; border-bottom: 1px solid var(--sp-border); }
  .sp-submissions-table tr:last-child { border-bottom: 0; }
  .sp-submissions-table td { display: block; min-width: 0; padding: 0; border: 0; }
  .sp-submissions-table td:first-child { min-width: 0; max-width: none; grid-column: 1 / -1; }
  .sp-submissions-table td:last-child { grid-column: 1 / -1; }
  .sp-submissions-table td[data-label]::before { content: attr(data-label); display: block; color: var(--sp-muted); font-size: .7rem; margin-bottom: .2rem; }
  .sp-submissions-table .sp-btn { width: 100%; }
  .sp-article { padding: 1.3rem; }
  .sp-form .sp-btn { width: 100%; }
  .sp-footer span { flex-basis: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

.sp-card .sp-actions { flex-wrap:wrap; gap:.75rem; }
.sp-card .sp-actions a { font-size:.9rem; }
.sp-review pre, .sp-table pre { white-space:pre-wrap; overflow-wrap:anywhere; }

/* Public Spotlight archives */
.sp-archive-nav { display: flex; gap: .65rem 1.3rem; flex-wrap: wrap; margin: 1.4rem 0 1.8rem; font-size: .91rem; font-weight: 650; }
.sp-archive-nav a { color: #315875; }
.sp-archive-filters { padding: 1rem; margin: 1rem 0 .75rem; background: #fff; border: 1px solid var(--sp-border); border-radius: var(--sp-radius); }
.sp-archive-field { min-width: 0; }
.sp-archive-field-wide { grid-column: 1 / -1; }
.sp-archive-field label { display: block; margin: 0 0 .3rem; font-size: .78rem; font-weight: 700; color: var(--sp-muted); }
.sp-archive-field input, .sp-archive-field select { width: 100%; max-width: 100%; min-width: 0; min-height: 44px; padding: .65rem .7rem; border: 1px solid #ccd1d3; border-radius: 8px; color: var(--sp-ink); background: #fcfcfa; font: .9rem system-ui, sans-serif; }
.sp-archive-buttons { display: flex; gap: .55rem; flex-wrap: wrap; grid-column: 1 / -1; }
.sp-archive-count { margin: 1rem 0 1.15rem; }
.sp-archive-more { margin-top: 1.4rem; }
.sp-pagination { display: flex; justify-content: center; align-items: center; gap: .9rem; flex-wrap: wrap; margin: 2rem 0; font-size: .9rem; }
.sp-pagination a { display: inline-flex; min-height: 42px; align-items: center; border: 1px solid var(--sp-border); border-radius: 8px; background: #fff; padding: .5rem .9rem; text-decoration: none; }
.sp-pagination span { color: var(--sp-muted); }

/* Rights notice is available on demand but secondary to the single checkbox. */
.sp-rights-notice { margin: .6rem 0 .9rem; padding: .65rem .8rem; border: 1px solid var(--sp-border); border-radius: 8px; background: #fafaf8; font-size: .81rem; color: var(--sp-muted); }
.sp-rights-notice summary { cursor: pointer; }
.sp-rights-notice[open] { padding: .9rem 1.15rem; }
.sp-rights-notice p { margin: .65rem 0; }
.sp-rights-notice li { margin: .35rem 0; }


/* Compact discovery and editorial workspaces. Native details/forms need no JavaScript. */
.sp-compact { padding-top: 1rem; }
.sp-compact .sp-crumbs, .sp-compact .sp-workspace-nav { margin-bottom: 1rem; }
.sp-compact h1 { font-size: clamp(1.8rem, 3.4vw, 2.55rem); margin-bottom: .65rem; }
.sp-compact .sp-lead { margin: .5rem 0; font-size: 1rem; }
.sp-compact .sp-archive-nav { margin: .75rem 0 1rem; font-size: .85rem; }
.sp-search-row, .sp-admin-search { display: flex; align-items: end; flex-wrap: wrap; gap: .75rem; }
.sp-search-input { flex: 1 1 230px; }
.sp-search-row > .sp-archive-field:not(.sp-search-input) { flex: 0 1 165px; }
.sp-search-row .sp-btn { min-height: 44px; }
.sp-advanced-filters { margin-top: .65rem; border-top: 1px solid var(--sp-border); }
.sp-advanced-filters summary { padding: .65rem 0 0; cursor: pointer; font-size: .84rem; font-weight: 650; width: fit-content; min-height: 36px; }
.sp-filter-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; align-items: end; padding-top: .75rem; }
.sp-filter-grid .sp-btn { justify-self: start; }
.sp-active-filters { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }
.sp-active-filters a { display: inline-flex; align-items: center; gap: .6rem; padding: .35rem .65rem; border: 1px solid #ded9cc; border-radius: 6px; background: #fff; font-size: .78rem; text-decoration: none; overflow-wrap: anywhere; }
.sp-active-filters .sp-clear-filters { border: 0; background: transparent; text-decoration: underline; }
.sp-admin-search { background: #fff; border: 1px solid var(--sp-border); border-radius: 12px; padding: 1rem; margin: 1rem 0; }
.sp-queue-summary { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; margin: .8rem 0; color: var(--sp-muted); font-size: .8rem; }
.sp-queue-summary strong { color: var(--sp-ink); font-size: 1rem; margin-right: .25rem; }
.sp-compact .sp-actions { margin: 1rem 0; }
.sp-card { padding: 1.2rem; }
.sp-card h2 a { color: inherit; text-decoration: none; }
.sp-card h2 a:hover { text-decoration: underline; }
.sp-card .sp-actions { margin: .8rem 0 0; padding-top: .8rem; border-top: 1px solid var(--sp-border); }
.sp-card > .sp-meta { margin-top: auto; }
.sp-card .sp-actions a { font-size: .8rem; }
.sp-card .sp-actions .sp-btn { margin-left: auto; padding: .45rem .7rem; }
.sp-optional { font-weight: 400; color: var(--sp-muted); }
.sp-research, .sp-requests { margin: 1.2rem 0; }
.sp-skip { position: absolute; left: 1rem; top: -100px; z-index: 10000; padding: .75rem; background: #fff; }
.sp-skip:focus { top: .5rem; }
.sp-article p { max-width: 68ch; }
@media (max-width: 760px) {
  .sp-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sp-admin-search > .sp-archive-field:not(.sp-search-input) { flex: 1 1 120px; }
}
@media (max-width: 480px) {
  .sp-search-input { flex-basis: 100%; }
  .sp-search-row > .sp-archive-field:not(.sp-search-input) { flex: 1; }
  .sp-archive-filters, .sp-admin-search { padding: .8rem; }
  .sp-compact .sp-lead { line-height: 1.55; }
  .sp-admin-search .sp-btn { flex: 1; }
  .sp-filter-grid { grid-template-columns: minmax(0,1fr); }
}

.sp-publication-score { background: var(--sp-ink); color: #fff; font-size: .85rem; padding: .4rem .8rem; }
/* Concise story cards: one teaser and one compact footer. */
.sp-story-card { padding: 1rem; }
.sp-story-card .sp-card-cover { display: block; margin-bottom: .8rem; }
.sp-story-card .sp-card-image { aspect-ratio: 16 / 9; height: auto; margin: 0; }
.sp-story-card .sp-kicker { margin: 0 0 .4rem; font-size: .65rem; }
.sp-story-card h2 { margin: 0 0 .65rem; font-size: 1.15rem; line-height: 1.35; }
.sp-story-card .sp-card-teaser { margin: 0 0 .85rem; font-size: .86rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sp-story-card .sp-card-footer { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; margin-top: auto; padding-top: .65rem; border-top: 1px solid var(--sp-border); }
.sp-story-card .sp-card-footer .sp-meta { margin: 0; padding: 0; font-size: .72rem; }
.sp-story-card .sp-actions { flex: 1; justify-content: flex-end; flex-wrap: nowrap; gap: .75rem; margin: 0; padding: 0; border: 0; }
.sp-story-card .sp-actions a { white-space: nowrap; }
.sp-story-card .sp-actions .sp-btn { margin: 0; min-height: 44px; padding: .4rem .65rem; font-size: .76rem; }
.sp-article img[data-cover-title] { aspect-ratio: 16 / 9; height: auto; }

/* Native inline composer and full original submission, including queued items. */
.sp-submit-body { margin-top: .65rem; padding: clamp(1rem, 3vw, 1.4rem); background: #fff; border: 1px solid var(--sp-border); border-radius: 12px; }
.sp-submit-form { padding: 0; border: 0; box-shadow: none; }
.sp-submit-form > .sp-note:first-of-type { margin-top: 0; }
.sp-submit-form label { margin-top: .8rem; font-size: .84rem; }
.sp-submit-form textarea { min-height: 104px; padding: .65rem .8rem; font-size: .91rem; line-height: 1.55; }
.sp-submit-form textarea.sp-links { min-height: 68px; }
.sp-submit-form .sp-note { font-size: .76rem; margin: .4rem 0 .65rem; }
.sp-submit-form .sp-check { font-size: .78rem; line-height: 1.5; }
.sp-submit-form .sp-rights-notice { padding: 0; border: 0; background: transparent; font-size: .75rem; }
.sp-image-options { margin: .75rem 0; font-size: .8rem; }
.sp-image-options summary { cursor: pointer; width: fit-content; padding: .4rem 0; }
.sp-image-options input { margin-top: .4rem; }
.sp-upload-previews { display: grid; grid-template-columns: repeat(2, minmax(0, 160px)); gap: .75rem; }
.sp-upload-previews:empty { display: none; }
.sp-upload-previews figure { margin: .5rem 0 0; min-width: 0; }
.sp-upload-previews img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; border: 1px solid var(--sp-border); border-radius: 8px; }
.sp-upload-previews figcaption { font-size: .7rem; color: var(--sp-muted); overflow-wrap: anywhere; margin-top: .3rem; }
.sp-original-submission { margin: 1rem 0 1.5rem; }
.sp-original-submission summary { padding: .2rem 0; }
.sp-original-submission .sp-submitted-text { white-space: pre-wrap; overflow-wrap: anywhere; font-size: .93rem; line-height: 1.7; }
.sp-original-submission .sp-submitted-links { overflow-wrap: anywhere; padding-left: 1.2rem; }
.sp-original-submission h3 { margin-top: 1.3rem; }
.sp-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
