:root {
  color-scheme: dark;
  --bg: #020b0d;
  --surface: #0c2225;
  --surface-2: #173236;
  --line: #294347;
  --text: #f2eee5;
  --muted: #9cacaa;
  --blue: #c77d4b;
  --blue-soft: #35251e;
  --amber: #d2ab62;
  --green: #83ba96;
  --red: #ff6b74;
  --violet: #d4b984;
  --radius: 10px;
  --shadow: 0 28px 72px rgba(0, 0, 0, .42);
  font-family: "Avenir Next", Manrope, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  background:
    radial-gradient(circle at 82% -12%, rgba(199, 125, 75, .12), transparent 38rem),
    radial-gradient(circle at 8% 44%, rgba(74, 126, 113, .11), transparent 28rem),
    var(--bg);
  color: var(--text);
  line-height: 1.55;
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
img { display: block; max-width: 100%; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.muted { color: var(--muted); }

.site-header {
  position: sticky;
  z-index: 20;
  top: 0;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 30px;
  min-height: 76px;
  padding: 12px clamp(18px, 4vw, 58px);
  border-bottom: 1px solid rgba(210, 171, 98, .22);
  background: rgba(2, 11, 13, .92);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .24);
  backdrop-filter: blur(18px);
}
.brand { display: inline-flex; min-width: 0; align-items: center; gap: 11px; font-weight: 800; letter-spacing: -.02em; }
.brand > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.brand-mark, .auth-mark {
  display: block;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  object-fit: contain;
  filter: drop-shadow(0 6px 12px rgba(0, 0, 0, .34)) drop-shadow(0 0 10px rgba(210, 171, 98, .12));
}
.brand-mark { transition: transform .2s ease, filter .2s ease; }
.brand:hover .brand-mark {
  transform: rotate(-4deg) scale(1.04);
  filter: drop-shadow(0 8px 14px rgba(0, 0, 0, .4)) drop-shadow(0 0 14px rgba(210, 171, 98, .2));
}
.site-header nav { display: flex; align-self: stretch; justify-content: center; gap: 34px; }
.site-header nav a {
  position: relative;
  display: flex;
  align-items: center;
  padding: 0;
  color: var(--muted);
  font-size: .86rem;
  font-weight: 650;
}
.site-header nav a::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  background: transparent;
  content: "";
}
.site-header nav a:hover, .site-header nav a.active { color: var(--text); }
.site-header nav a.active::after {
  background: linear-gradient(90deg, transparent, var(--blue), transparent);
}
.menu-toggle { display: none; border: 0; background: transparent; padding: 8px; }
.menu-toggle span { display: block; width: 23px; height: 2px; margin: 4px; background: var(--text); }
.primary-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 15px;
  border: 1px solid var(--blue);
  border-radius: 5px;
  color: #0a1719;
  background: var(--blue);
  font-size: .88rem;
  font-weight: 800;
}
.primary-action.subdued {
  border-color: rgba(210, 171, 98, .42);
  color: #e8cc91;
  background: transparent;
}

.page-shell { width: min(1500px, calc(100% - 36px)); min-height: calc(100vh - 150px); margin: 0 auto; padding: 40px 0 72px; }
.hero, .admin-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 40px;
  margin-bottom: 32px;
}
.eyebrow {
  margin: 0 0 7px;
  color: var(--blue);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; font-weight: 500; }
h1 { max-width: 900px; margin-bottom: 10px; font-size: clamp(2.1rem, 5vw, 4.25rem); line-height: 1.02; letter-spacing: -.055em; }
h2 { margin-bottom: 0; font-size: clamp(1.35rem, 2vw, 1.85rem); letter-spacing: -.025em; }
h3 { line-height: 1.22; letter-spacing: -.018em; }
.hero-copy, .admin-heading p { max-width: 650px; margin: 0; color: var(--muted); font-size: 1.02rem; }

.collector-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(410px, .88fr) minmax(540px, 1.12fr);
  gap: clamp(25px, 4vw, 72px);
  min-height: 535px;
  margin-bottom: 28px;
  padding: clamp(38px, 5vw, 74px);
  overflow: hidden;
  border: 1px solid rgba(210, 171, 98, .18);
  border-radius: 13px;
  background:
    radial-gradient(ellipse at 77% 93%, rgba(199, 125, 75, .18), transparent 37%),
    radial-gradient(circle at 76% 38%, rgba(69, 108, 103, .22), transparent 34%),
    linear-gradient(115deg, rgba(2, 12, 14, .99), rgba(6, 29, 31, .95) 53%, rgba(3, 18, 20, .98));
  box-shadow: 0 36px 90px rgba(0, 0, 0, .27);
}
.collector-hero::after {
  position: absolute;
  right: -14%;
  bottom: -45%;
  width: 72%;
  aspect-ratio: 1;
  border: 1px solid rgba(210, 171, 98, .08);
  border-radius: 50%;
  box-shadow:
    0 0 0 50px rgba(210, 171, 98, .025),
    0 0 0 105px rgba(210, 171, 98, .018);
  content: "";
}
.collector-hero-copy,
.featured-coin {
  position: relative;
  z-index: 1;
}
.collector-hero-copy {
  align-self: center;
}
.collector-hero h1 {
  max-width: 720px;
  margin-bottom: 21px;
  font-size: clamp(3.15rem, 4.5vw, 4.8rem);
  font-weight: 450;
  line-height: .98;
}
.collector-hero .hero-copy {
  max-width: 37rem;
  line-height: 1.68;
}
.hero-stats {
  display: flex;
  margin: 28px 0 27px;
}
.hero-stats div {
  min-width: 116px;
  padding: 0 21px;
  border-right: 1px solid rgba(156, 172, 170, .27);
}
.hero-stats div:first-child { padding-left: 0; }
.hero-stats div:last-child { border-right: 0; }
.hero-stats strong,
.hero-stats span { display: block; }
.hero-stats strong {
  color: #e59b66;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1;
}
.hero-stats span {
  margin-top: 6px;
  color: var(--muted);
  font-size: .72rem;
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 15px;
}
.hero-admin-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 46px;
  padding: 0 16px;
  border: 1px solid var(--blue);
  border-radius: 5px;
  color: #e8cc91;
  background: rgba(5, 20, 22, .62);
  font-size: .83rem;
  font-weight: 800;
}
.hero-admin-link:hover { border-color: #e59b66; background: rgba(199, 125, 75, .12); }
.hero-completion { color: var(--muted); font-size: .72rem; }
.hero-completion strong { color: var(--text); font-size: .9rem; }
.featured-coin {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 116px;
  grid-template-rows: auto 1fr;
  gap: 12px 24px;
  align-self: center;
  min-width: 0;
}
.featured-title {
  grid-column: 1 / -1;
  justify-self: center;
  text-align: center;
}
.featured-title span,
.featured-title strong { display: block; }
.featured-title span {
  color: #e59b66;
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.featured-title strong {
  margin-top: 7px;
  color: var(--text);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.45rem, 2.15vw, 2.15rem);
  font-weight: 400;
}
.featured-sides {
  display: grid;
  grid-template-columns: repeat(2, minmax(190px, 1fr));
  align-items: end;
  gap: 15px;
  min-width: 0;
}
.featured-sides > a {
  display: block;
  min-width: 0;
  text-align: center;
}
.featured-sides > a > span:first-child {
  display: block;
  margin-bottom: 7px;
  color: #a9b5b2;
  font-size: .69rem;
}
.hero-coin-shell {
  position: relative;
  display: grid;
  width: min(100%, 285px);
  aspect-ratio: 1;
  margin: 0 auto;
  overflow: hidden;
  place-items: center;
  border-radius: 50%;
  background: radial-gradient(circle at 42% 34%, #293438, #0b1719 68%, #02090a);
  box-shadow:
    0 28px 44px rgba(0, 0, 0, .44),
    0 0 0 1px rgba(229, 155, 102, .13);
}
.hero-coin-shell::after {
  position: absolute;
  z-index: 3;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background:
    radial-gradient(circle at 35% 28%, rgba(255, 255, 255, .17), transparent 18%),
    linear-gradient(135deg, transparent 43%, rgba(0, 0, 0, .14) 72%, transparent);
  content: "";
  mix-blend-mode: overlay;
}
.hero-coin-shell b {
  color: rgba(210, 171, 98, .35);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(4.2rem, 8vw, 7rem);
  font-weight: 400;
}
.hero-coin-shell img {
  position: absolute;
  z-index: 2;
  inset: -3%;
  width: 106%;
  height: 106%;
  max-width: none;
  object-fit: cover;
  border-radius: 50%;
  filter: saturate(.9) contrast(1.08) brightness(.92);
  transition: transform .22s ease, filter .22s ease;
}
.featured-sides a:hover .hero-coin-shell img {
  filter: saturate(.98) contrast(1.1) brightness(1);
  transform: scale(1.025);
}
.featured-sides > a:first-child .hero-coin-shell { transform: rotate(-2deg); }
.featured-sides > a:last-child .hero-coin-shell { transform: rotate(1.5deg); }
.featured-facts {
  display: flex;
  flex-direction: column;
  align-self: end;
  margin: 0 0 14px;
}
.featured-facts div { padding: 12px 0; border-bottom: 1px solid rgba(156, 172, 170, .22); }
.featured-facts dt { color: var(--muted); font-size: .59rem; letter-spacing: .09em; text-transform: uppercase; }
.featured-facts dd { margin: 4px 0 0; color: var(--text); font-size: .79rem; font-weight: 750; }
.view-switch {
  display: inline-flex;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: rgba(4, 18, 20, .72);
}
.view-switch a {
  padding: 8px 12px;
  border-radius: 8px;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
}
.view-switch a:hover { color: var(--text); }
.view-switch a.active { color: #07181a; background: var(--blue); }
.completion-card {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 18px;
  padding: 15px 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(11, 35, 36, .76);
}
.completion-card > div:last-child { display: grid; }
.completion-card strong { font-size: 1.2rem; }
.completion-card span { color: var(--muted); font-size: .78rem; }
.completion-ring {
  position: relative;
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
}
.completion-ring svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.completion-ring circle { fill: none; stroke-width: 4; }
.completion-ring .ring-track { stroke: var(--line); }
.completion-ring .ring-value { stroke: var(--green); stroke-linecap: round; }
.completion-ring span { z-index: 1; display: grid; text-align: center; font-size: .59rem; }
.completion-ring strong { color: var(--text); font-size: .95rem; }

.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 22px; }
.stats-grid article {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 19px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: linear-gradient(145deg, rgba(18, 49, 51, .82), rgba(8, 28, 29, .94));
}
.stats-grid article div { display: grid; }
.stats-grid strong { font-size: 1.35rem; line-height: 1.1; }
.stats-grid article div span { color: var(--muted); font-size: .76rem; }
.stat-icon { display: grid; place-items: center; width: 37px; height: 37px; border-radius: 11px; }
.stat-icon.blue { color: var(--blue); background: var(--blue-soft); }
.stat-icon.amber { color: var(--amber); background: rgba(244, 187, 80, .12); }
.stat-icon.violet { color: var(--violet); background: rgba(177, 140, 255, .12); }
.stat-icon.green { color: var(--green); background: rgba(72, 207, 154, .12); }

.filter-panel {
  display: grid;
  grid-template-columns: minmax(250px, 1fr) repeat(3, minmax(130px, 180px)) auto auto;
  gap: 10px;
  align-items: center;
  margin-bottom: 38px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: var(--surface);
}
input, select, textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 10px;
  outline: 0;
  color: var(--text);
  background: #071d1f;
}
input, select { min-height: 44px; padding: 0 13px; }
textarea { min-height: 120px; padding: 12px 13px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(73, 149, 255, .12); }
.search-field { position: relative; }
.search-field > span:not(.sr-only) { position: absolute; top: 9px; left: 14px; color: var(--muted); font-size: 1.2rem; }
.search-field input { padding-left: 40px; }
.filter-button, .primary-button, .outline-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border-radius: 10px;
  font-size: .86rem;
  font-weight: 800;
}
.filter-button, .primary-button { border: 1px solid var(--blue); color: #10201e; background: var(--blue); }
.outline-button { border: 1px solid var(--line); color: var(--text); background: var(--surface); }
.outline-button:hover { border-color: var(--blue); }
.wide { width: 100%; margin-top: 10px; }
.reset-link, .text-link { color: var(--blue); font-size: .82rem; font-weight: 700; }

.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin: 0 0 18px; }
.coin-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 17px; }
.coin-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: linear-gradient(155deg, rgba(16, 39, 43, .98), rgba(7, 25, 27, .98));
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.coin-card:hover { transform: translateY(-4px); border-color: #6c6652; box-shadow: var(--shadow); }
.coin-photo, .detail-photo {
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at center, rgba(202, 146, 85, .15), transparent 52%),
    linear-gradient(145deg, #17393a, #071b1d);
}
.coin-photo { aspect-ratio: 1.16 / 1; }
.coin-denomination {
  --coin-card-size: 54%;
  --coin-detail-size: 66%;
  --coin-preview-size: 62%;
  --coin-set-size: 62px;
  --coin-variety-size: 28px;
}
.coin-denomination-1 { --coin-card-size: 40.4%; --coin-detail-size: 44.2%; --coin-preview-size: 44.2%; --coin-set-size: 48px; --coin-variety-size: 21.5px; }
.coin-denomination-2 { --coin-card-size: 46.6%; --coin-detail-size: 51%; --coin-preview-size: 51%; --coin-set-size: 55.3px; --coin-variety-size: 24.8px; }
.coin-denomination-5 { --coin-card-size: 52.8%; --coin-detail-size: 57.8%; --coin-preview-size: 57.8%; --coin-set-size: 62.7px; --coin-variety-size: 28.1px; }
.coin-denomination-10 { --coin-card-size: 49.1%; --coin-detail-size: 53.7%; --coin-preview-size: 53.7%; --coin-set-size: 58.3px; --coin-variety-size: 26.1px; }
.coin-denomination-20 { --coin-card-size: 55.3%; --coin-detail-size: 60.5%; --coin-preview-size: 60.5%; --coin-set-size: 65.7px; --coin-variety-size: 29.4px; }
.coin-denomination-50 { --coin-card-size: 60.3%; --coin-detail-size: 65.9%; --coin-preview-size: 65.9%; --coin-set-size: 71.6px; --coin-variety-size: 32px; }
.coin-denomination-100 { --coin-card-size: 57.8%; --coin-detail-size: 63.2%; --coin-preview-size: 63.2%; --coin-set-size: 68.6px; --coin-variety-size: 30.7px; }
.coin-denomination-200 { --coin-card-size: 64%; --coin-detail-size: 70%; --coin-preview-size: 70%; --coin-set-size: 76px; --coin-variety-size: 34px; }
.coin-photo img {
  z-index: 1;
  width: var(--coin-card-size);
  height: var(--coin-card-size);
  object-fit: contain;
  filter: drop-shadow(0 15px 14px rgba(0, 0, 0, .42));
  transition: transform .25s ease;
}
.coin-card:hover .coin-photo img { transform: scale(1.035) rotate(-1deg); }
.coin-placeholder {
  position: absolute;
  display: grid;
  place-items: center;
  width: var(--coin-card-size);
  aspect-ratio: 1;
  overflow: hidden;
  border: 3px double rgba(255, 235, 190, .38);
  border-radius: 50%;
  color: rgba(57, 33, 15, .76);
  background: radial-gradient(circle at 34% 28%, #f2bd8d, #b65f31 58%, #6e2f1b);
  box-shadow: inset 0 0 13px rgba(255, 255, 255, .18), 0 14px 22px rgba(0, 0, 0, .32);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.15rem, 2.4vw, 2.25rem);
  font-weight: 700;
  line-height: 1;
  text-shadow: 0 1px rgba(255, 255, 255, .22);
}
.coin-placeholder::before {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background:
    radial-gradient(circle at 33% 25%, rgba(255, 255, 255, .26), transparent 19%),
    repeating-radial-gradient(circle at center, transparent 0 8px, rgba(0, 0, 0, .035) 9px 10px);
  content: "";
}
.coin-denomination-10 .coin-placeholder,
.coin-denomination-20 .coin-placeholder,
.coin-denomination-50 .coin-placeholder {
  color: rgba(74, 50, 8, .8);
  background: radial-gradient(circle at 34% 27%, #f4dc85, #caa439 58%, #7e6215);
}
.coin-denomination-100 .coin-placeholder {
  color: rgba(43, 46, 48, .82);
  background:
    radial-gradient(circle at center, #eef1ef 0 35%, #aab5b6 45%, transparent 46%),
    radial-gradient(circle at 34% 27%, #f3d97d, #c39a31 60%, #745a16);
}
.coin-denomination-200 .coin-placeholder {
  color: rgba(76, 50, 7, .84);
  border-color: rgba(238, 243, 239, .42);
  background:
    radial-gradient(circle at center, #f0d673 0 35%, #b88e26 45%, transparent 46%),
    radial-gradient(circle at 34% 27%, #eef2ef, #aeb9ba 58%, #687579);
}
.status-badge, .special-badge {
  position: absolute;
  z-index: 2;
  padding: 5px 8px;
  border-radius: 999px;
  backdrop-filter: blur(8px);
  font-size: .62rem;
  font-weight: 850;
}
.status-badge { top: 10px; left: 10px; }
.status-badge.owned { color: #9cf2d0; background: rgba(9, 71, 51, .82); }
.status-badge.missing { color: #ffd891; background: rgba(96, 59, 10, .85); }
.special-badge { right: 10px; bottom: 10px; color: #e4d7ff; background: rgba(69, 43, 109, .86); }
.coin-card-body { padding: 15px; }
.coin-meta { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 7px; color: var(--muted); font-size: .7rem; }
.coin-card h3 { min-height: 2.45em; margin-bottom: 7px; font-size: .95rem; }
.coin-card h3 a:hover { color: var(--blue); }
.coin-subline { min-height: 2.2em; margin-bottom: 0; color: var(--muted); font-size: .72rem; }
.card-action { margin: 12px -15px -15px; border-top: 1px solid var(--line); }
.card-action button { width: 100%; padding: 10px; border: 0; color: var(--blue); background: transparent; font-size: .72rem; font-weight: 800; }
.year-set-list { display: grid; gap: 15px; }
.year-set-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: linear-gradient(155deg, rgba(16, 39, 43, .98), rgba(7, 25, 27, .98));
}
.year-set-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 15px 18px;
  border-bottom: 1px solid var(--line);
  background: rgba(10, 31, 33, .76);
}
.year-set-header > div { display: flex; align-items: baseline; gap: 12px; }
.year-set-country { color: var(--muted); font-size: .78rem; font-weight: 750; }
.year-set-header h3 { margin: 0; font-size: 1.45rem; }
.year-set-completion {
  padding: 5px 9px;
  border-radius: 999px;
  color: #9cf2d0;
  background: rgba(9, 71, 51, .58);
  font-size: .66rem;
  font-weight: 850;
}
.year-set-scroll { overflow-x: auto; scrollbar-color: #46605f transparent; }
.year-set-scroll:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
.year-set-denominations {
  display: grid;
  grid-template-columns: repeat(8, minmax(112px, 1fr));
  min-width: 920px;
}
.set-denomination {
  min-width: 0;
  padding: 12px 10px 14px;
  border-right: 1px solid var(--line);
  text-align: center;
}
.set-denomination:last-child { border-right: 0; }
.set-denomination h4 {
  margin: 0 0 8px;
  color: var(--muted);
  font-size: .65rem;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.set-primary-coin { display: grid; justify-items: center; gap: 7px; min-height: 132px; }
a.set-primary-coin:hover .set-coin-title { color: var(--blue); }
.set-coin-visual {
  position: relative;
  display: grid;
  place-items: center;
  width: 82px;
  height: 82px;
}
.set-coin-visual .coin-placeholder { width: var(--coin-set-size); font-size: clamp(.72rem, 1.15vw, 1.15rem); }
.set-coin-visual img {
  position: absolute;
  z-index: 1;
  width: var(--coin-set-size);
  height: var(--coin-set-size);
  object-fit: contain;
  filter: drop-shadow(0 8px 8px rgba(0, 0, 0, .42));
}
.set-coin-title {
  display: -webkit-box;
  overflow: hidden;
  color: var(--text);
  font-size: .67rem;
  font-weight: 750;
  line-height: 1.25;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.set-coin-meta { color: var(--muted); font-size: .6rem; }
.set-coin-empty { opacity: .52; }
.set-varieties { display: grid; gap: 6px; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--line); text-align: left; }
.set-varieties-label { color: var(--amber); font-size: .58rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.set-variety {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  padding: 5px;
  border-radius: 8px;
  background: rgba(5, 20, 22, .58);
}
.set-variety:hover { background: rgba(24, 56, 58, .72); }
.set-variety-visual { position: relative; display: grid; place-items: center; width: 34px; height: 34px; }
.set-variety-visual .coin-placeholder { width: var(--coin-variety-size); border-width: 1px; font-size: .5rem; box-shadow: 0 5px 8px rgba(0, 0, 0, .28); }
.set-variety-visual img { position: absolute; z-index: 1; width: var(--coin-variety-size); height: var(--coin-variety-size); object-fit: contain; }
.set-variety > span:last-child { display: grid; min-width: 0; }
.set-variety strong { overflow: hidden; font-size: .59rem; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.set-variety small { overflow: hidden; color: var(--muted); font-size: .54rem; text-overflow: ellipsis; white-space: nowrap; }
.section-count-note { margin: 5px 0 0; color: var(--muted); font-size: .7rem; }
.special-country-list { display: grid; gap: 18px; }
.special-country-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: linear-gradient(155deg, rgba(16, 39, 43, .98), rgba(7, 25, 27, .98));
}
.special-country-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 17px 20px;
  border-bottom: 1px solid var(--line);
  background: rgba(10, 31, 33, .78);
}
.special-country-header > div:first-child { display: flex; align-items: center; gap: 13px; }
.special-country-header .eyebrow { margin-bottom: 3px; }
.special-country-header h3 { margin: 0; font-size: 1.45rem; }
.special-country-flag { font-size: 1.7rem; line-height: 1; }
.special-country-summary { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.special-country-summary span {
  padding: 5px 9px;
  border: 1px solid rgba(156, 172, 170, .18);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(4, 18, 20, .56);
  font-size: .65rem;
  font-weight: 800;
}
.special-country-summary span:last-child { color: #9cf2d0; border-color: rgba(72, 207, 154, .22); }
.special-country-years { display: grid; }
.special-country-year {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 16px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
}
.special-country-year:last-child { border-bottom: 0; }
.special-country-year > header { padding-top: 4px; }
.special-country-year h4 { margin: 0; font-size: 1.2rem; }
.special-country-year > header span { color: var(--muted); font-size: .61rem; }
.special-country-coins { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 9px; }
.special-country-coin {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 9px;
  border: 1px solid rgba(156, 172, 170, .12);
  border-radius: 10px;
  background: rgba(5, 20, 22, .58);
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.special-country-coin:hover { transform: translateY(-2px); border-color: rgba(91, 190, 194, .5); background: rgba(24, 56, 58, .72); }
.special-country-visual { position: relative; display: grid; place-items: center; width: 66px; height: 66px; }
.special-country-visual .coin-placeholder {
  width: 56px;
  border-width: 2px;
  font-size: .78rem;
  box-shadow: inset 0 0 9px rgba(255, 255, 255, .14), 0 7px 10px rgba(0, 0, 0, .3);
}
.special-country-visual img {
  position: absolute;
  z-index: 1;
  width: 56px;
  height: 56px;
  object-fit: contain;
  filter: drop-shadow(0 7px 7px rgba(0, 0, 0, .42));
}
.special-country-status {
  position: absolute;
  z-index: 2;
  right: 1px;
  bottom: 1px;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 50%;
  font-size: .62rem;
  font-weight: 900;
  backdrop-filter: blur(7px);
}
.special-country-status.owned { color: #9cf2d0; background: rgba(9, 71, 51, .88); }
.special-country-status.missing { color: #ffd891; background: rgba(96, 59, 10, .9); }
.special-country-coin-copy { display: grid; min-width: 0; gap: 3px; }
.special-country-coin-copy strong {
  display: -webkit-box;
  overflow: hidden;
  font-size: .68rem;
  line-height: 1.25;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.special-country-coin:hover .special-country-coin-copy strong { color: var(--blue); }
.special-country-coin-copy small { overflow: hidden; color: var(--muted); font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }
.empty-state {
  display: grid;
  place-items: center;
  min-height: 330px;
  padding: 40px;
  border: 1px dashed #49605d;
  border-radius: var(--radius);
  text-align: center;
  background: rgba(11, 35, 36, .52);
}
.empty-state > span { display: grid; place-items: center; width: 70px; height: 70px; margin-bottom: 18px; border-radius: 50%; color: var(--amber); background: rgba(244, 187, 80, .1); font-size: 2rem; font-weight: 800; }
.empty-state p { max-width: 620px; color: var(--muted); }
.empty-state.large { min-height: 60vh; }
.pagination { display: flex; justify-content: center; align-items: center; gap: 18px; margin-top: 32px; }
.pagination a { color: var(--blue); font-weight: 800; }
.pagination span { color: var(--muted); font-size: .85rem; }

.panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(145deg, rgba(18, 49, 51, .9), rgba(8, 27, 29, .97));
}
.admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 30px; }
.admin-panel { padding: 26px; }
.panel-heading { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.panel-icon { display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 42px; border-radius: 12px; color: var(--blue); background: var(--blue-soft); font-size: 1.3rem; }
.admin-panel > p, .form-section > p { color: var(--muted); }
.stacked-form { display: grid; gap: 14px; }
label { display: grid; gap: 6px; }
label > span { color: #e7dfd1; font-size: .78rem; font-weight: 750; }
label small { color: var(--muted); font-size: .7rem; }
.drop-zone {
  position: relative;
  place-items: center;
  min-height: 155px;
  padding: 22px;
  border: 1px dashed #667264;
  border-radius: 13px;
  text-align: center;
  background: rgba(6, 24, 25, .58);
  cursor: pointer;
}
.drop-zone input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.drop-zone > span:not(.drop-symbol) { color: var(--muted); font-size: .75rem; }
.drop-symbol { color: var(--blue); font-size: 1.65rem; }
.compact-file {
  position: relative;
  gap: 3px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: rgba(6, 24, 25, .58);
  cursor: pointer;
}
.compact-file span { color: var(--muted); font-size: .72rem; }
.compact-file input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.transfer-status { min-height: 1.3em; margin: 0; color: var(--muted); font-size: .74rem; }
.transfer-status[data-state="working"] { color: var(--blue); }
.transfer-status[data-state="success"] { color: var(--green); }
.transfer-status[data-state="error"] { color: #ff9da3; }
.inline-note, .inline-warning {
  margin-top: 15px;
  padding: 11px 13px;
  border-radius: 10px;
  font-size: .75rem;
}
.inline-note { border: 1px solid rgba(202, 146, 85, .3); color: #e2c08d; background: rgba(202, 146, 85, .09); }
.inline-warning { border: 1px solid rgba(244, 187, 80, .25); color: #f4cf88; background: rgba(244, 187, 80, .08); }
.cache-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 18px 0 0;
}
.cache-facts div { padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: rgba(6, 24, 25, .58); }
.cache-facts dt { color: var(--muted); font-size: .65rem; }
.cache-facts dd { margin: 4px 0 0; color: var(--text); font-size: .92rem; font-weight: 850; }
.year-form { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 10px; margin-top: 20px; }
.export-list { display: grid; gap: 9px; }
.export-list a, .export-list button {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  width: 100%;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 11px;
  color: var(--text);
  text-align: left;
  background: rgba(6, 24, 25, .58);
}
.export-list a:hover, .export-list button:hover { border-color: var(--blue); }
.export-list span { display: grid; }
.export-list small { color: var(--muted); font-size: .7rem; }
.export-list b { color: var(--blue); font-size: .75rem; }
.import-history { margin-top: 18px; padding: 26px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .77rem; }
th, td { padding: 12px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; }

.auth-shell { display: grid; place-items: center; min-height: 68vh; }
.auth-card { width: min(440px, 100%); padding: 36px; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); box-shadow: var(--shadow); }
.auth-mark { width: 64px; height: 64px; margin-bottom: 25px; }
.auth-card h1 { font-size: 2.3rem; }
.auth-card > p:not(.eyebrow) { color: var(--muted); }

.editor-grid { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 20px; align-items: start; }
.editor-main { display: grid; gap: 18px; }
.editor-side { position: sticky; top: 94px; display: grid; gap: 2px; }
.form-section { display: grid; gap: 17px; padding: 26px; }
.form-grid { display: grid; gap: 14px; }
.form-grid.two { grid-template-columns: repeat(2, 1fr); }
.form-grid.three { grid-template-columns: repeat(3, 1fr); }
.form-grid.four { grid-template-columns: repeat(4, 1fr); }
.span-two { grid-column: span 2; }
.image-editor { display: grid; gap: 16px; padding: 20px; }
.image-preview { position: relative; display: grid; place-items: center; overflow: hidden; aspect-ratio: 1; border-radius: 14px; background: #071d1f; }
.image-preview .coin-placeholder { width: var(--coin-preview-size); font-size: clamp(1.6rem, 4vw, 3.2rem); }
.image-preview img { position: absolute; z-index: 1; width: var(--coin-preview-size); height: var(--coin-preview-size); object-fit: contain; }
.danger-zone { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 22px; padding: 20px; border: 1px solid rgba(255, 107, 116, .28); border-radius: 14px; background: rgba(255, 107, 116, .05); }
.danger-zone div { display: grid; }
.danger-zone span { color: var(--muted); font-size: .75rem; }
.danger-zone button { padding: 10px 15px; border: 1px solid rgba(255, 107, 116, .5); border-radius: 9px; color: #ff9da3; background: transparent; font-weight: 800; }

.breadcrumbs { display: flex; gap: 9px; margin-bottom: 22px; color: var(--muted); font-size: .78rem; }
.breadcrumbs a:hover { color: var(--blue); }
.detail-layout { display: grid; grid-template-columns: minmax(380px, .95fr) minmax(400px, 1.05fr); gap: clamp(35px, 5vw, 76px); align-items: center; }
.detail-visuals { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.detail-side { min-width: 0; }
.side-label { display: block; margin-bottom: 8px; color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.detail-photo { min-height: 390px; border: 1px solid var(--line); border-radius: 20px; }
.detail-photo img { z-index: 1; width: var(--coin-detail-size); height: var(--coin-detail-size); object-fit: contain; filter: drop-shadow(0 22px 18px rgba(0, 0, 0, .44)); }
.detail-photo .coin-placeholder { width: var(--coin-detail-size); font-size: clamp(2rem, 5vw, 4.5rem); }
.detail-status { top: 38px; left: 14px; padding: 7px 11px; font-size: .72rem; }
.detail-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-bottom: 16px; color: var(--muted); font-size: .78rem; font-weight: 750; }
.special-chip { padding: 5px 8px; border-radius: 999px; color: #e4d7ff; background: rgba(177, 140, 255, .13); }
.detail-content h1 { font-size: clamp(2.25rem, 5vw, 4rem); }
.detail-lead { max-width: 760px; margin-bottom: 28px; color: #bdc8c0; font-size: 1.04rem; }
.coin-facts { display: grid; grid-template-columns: repeat(2, 1fr); margin: 0 0 30px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.coin-facts div { padding: 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.coin-facts dt { color: var(--muted); font-size: .67rem; text-transform: uppercase; letter-spacing: .06em; }
.coin-facts dd { margin: 3px 0 0; font-weight: 750; overflow-wrap: anywhere; }
.detail-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.source-note { margin: -12px 0 24px; color: var(--muted); font-size: .75rem; }
.form-divider { display: flex; align-items: center; gap: 10px; margin: 18px 0 10px; color: var(--muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
.form-divider::before, .form-divider::after { content: ""; height: 1px; flex: 1; background: var(--line); }
.numista-form { grid-template-columns: 130px 1fr; }
button:disabled { cursor: not-allowed; opacity: .45; }

.flash-stack { position: fixed; z-index: 50; top: 88px; right: 22px; display: grid; gap: 8px; width: min(420px, calc(100% - 44px)); }
.flash { display: flex; justify-content: space-between; gap: 15px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 11px; background: #163436; box-shadow: var(--shadow); font-size: .83rem; }
.flash.success { border-color: rgba(72, 207, 154, .4); }
.flash.error { border-color: rgba(255, 107, 116, .5); }
.flash button { border: 0; color: var(--muted); background: transparent; font-size: 1.2rem; }

footer { display: flex; justify-content: flex-start; gap: 20px; padding: 25px clamp(18px, 4vw, 64px); border-top: 1px solid var(--line); color: var(--muted); font-size: .75rem; }
.footer-brand { display: inline-flex; align-items: center; gap: 9px; }
.footer-brand img { width: 22px; height: 22px; opacity: .78; }
footer a { color: var(--blue); }

@media (max-width: 1180px) {
  .collector-hero { grid-template-columns: minmax(360px, .9fr) minmax(470px, 1.1fr); padding: 44px; }
  .featured-sides { grid-template-columns: repeat(2, minmax(165px, 1fr)); }
  .coin-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .filter-panel { grid-template-columns: 1fr repeat(2, minmax(130px, 180px)); }
  .filter-panel label:nth-of-type(4) { grid-column: 1 / 2; }
}
@media (max-width: 900px) {
  .site-header { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
  .brand > span:last-child { max-width: min(62vw, 360px); }
  .menu-toggle { display: block; justify-self: end; }
  .site-header nav {
    position: absolute;
    top: 74px;
    right: 18px;
    left: 18px;
    display: none;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #0b2324;
    box-shadow: var(--shadow);
  }
  .site-header nav.open { display: grid; }
  .primary-action { display: none; }
  .hero, .admin-heading { align-items: start; flex-direction: column; gap: 22px; }
  .collector-hero { grid-template-columns: 1fr; }
  .collector-hero-copy { text-align: center; }
  .collector-hero .hero-copy { margin-inline: auto; }
  .hero-stats, .hero-actions { justify-content: center; }
  .featured-coin { width: min(670px, 100%); margin: 0 auto; }
  .completion-card { width: 100%; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .coin-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .admin-grid { grid-template-columns: 1fr; }
  .editor-grid, .detail-layout { grid-template-columns: 1fr; }
  .editor-side { position: static; }
  .detail-photo { min-height: 360px; }
}
@media (max-width: 680px) {
  .page-shell { width: min(100% - 24px, 1460px); padding-top: 30px; }
  .site-header { padding-inline: 13px; }
  .brand { gap: 8px; font-size: .88rem; }
  .brand-mark { width: 35px; height: 35px; }
  .brand > span:last-child { display: block; max-width: calc(100vw - 105px); }
  h1 { font-size: 2.45rem; }
  .collector-hero { min-height: auto; padding: 32px 20px; }
  .collector-hero h1 { font-size: clamp(2.55rem, 13vw, 3.6rem); }
  .hero-stats { justify-content: space-between; width: 100%; }
  .hero-stats div { min-width: 0; flex: 1; padding: 0 10px; }
  .hero-stats strong { font-size: 1.7rem; }
  .featured-coin { grid-template-columns: 1fr; }
  .featured-title, .featured-sides { grid-column: 1; }
  .featured-sides { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .featured-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 5px 0 0; }
  .featured-facts div { padding: 10px 7px; text-align: center; }
  .view-switch { justify-self: end; }
  .filter-panel { grid-template-columns: 1fr 1fr; }
  .filter-panel .search-field { grid-column: 1 / -1; }
  .filter-panel label:nth-of-type(4) { grid-column: auto; }
  .coin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
  .coin-card-body { padding: 12px; }
  .coin-card h3 { font-size: .85rem; }
  .year-set-header { padding: 13px 14px; }
  .year-set-header h3 { font-size: 1.25rem; }
  .special-country-header { align-items: flex-start; padding: 14px; }
  .special-country-year { grid-template-columns: 72px minmax(0, 1fr); padding: 14px; }
  .special-country-coins { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .year-form, .form-grid.two, .form-grid.three, .form-grid.four { grid-template-columns: 1fr; }
  .cache-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .span-two { grid-column: auto; }
  .detail-visuals { grid-template-columns: 1fr; }
  .detail-photo { min-height: 390px; }
  .coin-facts { grid-template-columns: 1fr; }
  .danger-zone, footer { flex-direction: column; align-items: stretch; }
}
@media (max-width: 430px) {
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-admin-link { justify-content: center; }
  .featured-sides { gap: 8px; }
  .stats-grid { grid-template-columns: 1fr; }
  .coin-grid { grid-template-columns: 1fr; }
  .coin-photo { aspect-ratio: 1.5 / 1; }
  .view-switch { justify-self: stretch; }
  .view-switch a { flex: 1; text-align: center; }
  .special-country-header { align-items: stretch; flex-direction: column; }
  .special-country-summary { justify-content: flex-start; }
  .special-country-year { grid-template-columns: 1fr; gap: 9px; }
  .special-country-year > header { display: flex; align-items: baseline; justify-content: space-between; padding-top: 0; }
  .special-country-coins { grid-template-columns: 1fr; }
  .filter-panel { grid-template-columns: 1fr; }
  .filter-panel .search-field { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition: none !important; }
}

/* Detailed API/import history */
.table-action-link, .import-coin-link {
  color: var(--blue);
  font-weight: 800;
}
.table-action-link:hover, .import-coin-link:hover { text-decoration: underline; }
.compact-admin-heading { margin-bottom: 18px; }
.admin-hero-actions { display: flex; align-items: center; gap: 10px; }
.import-log-summary, .import-log-panel { padding: 26px; }
.import-log-summary { margin-bottom: 18px; }
.import-log-facts { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.import-log-table { min-width: 1080px; }
.import-log-table td:nth-child(2) { min-width: 230px; }
.import-log-table td:nth-child(5) { min-width: 220px; }
.import-status {
  display: inline-flex;
  align-items: center;
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: .67rem;
  font-weight: 850;
  white-space: nowrap;
}
.import-status-created { color: #9cf2d0; border-color: rgba(72, 207, 154, .35); background: rgba(72, 207, 154, .09); }
.import-status-updated { color: #9ed9ff; border-color: rgba(87, 177, 235, .35); background: rgba(87, 177, 235, .09); }
.import-status-unchanged { color: var(--muted); background: rgba(255, 255, 255, .025); }
.import-status-skipped { color: #f4cf88; border-color: rgba(244, 187, 80, .3); background: rgba(244, 187, 80, .08); }
.import-status-error { color: #ff9da3; border-color: rgba(255, 107, 116, .38); background: rgba(255, 107, 116, .08); }
.import-log-meta { display: block; margin-top: 4px; color: var(--muted); font-size: .67rem; }
.changed-field-list { color: #c8d4cd; line-height: 1.55; }

@media (max-width: 900px) {
  .import-log-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .compact-admin-heading { align-items: stretch; }
  .admin-hero-actions { width: 100%; }
  .admin-hero-actions .outline-button { width: 100%; text-align: center; }
  .import-log-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.numista-progress {
  display: grid;
  gap: 0.55rem;
  margin-top: 1rem;
}

.numista-progress progress {
  width: 100%;
  min-height: 0.8rem;
}

.numista-progress span {
  color: var(--muted);
  font-size: 0.92rem;
}

/* v36 catalogue navigation and explorer views */
.site-header { grid-template-columns: auto minmax(0, 1fr) auto; }
.site-header nav { gap: clamp(14px, 2vw, 30px); }
.text-link { color: var(--blue); font-size: .78rem; font-weight: 800; }
.text-link:hover { text-decoration: underline; }
.inline-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.empty-state.compact { min-height: 240px; padding: 34px; }
.empty-state.compact h2 { margin-bottom: 8px; }

.catalog-home-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, .72fr);
  gap: clamp(30px, 6vw, 90px);
  min-height: 520px;
  padding: clamp(38px, 5vw, 76px);
  overflow: hidden;
  border: 1px solid rgba(210, 171, 98, .2);
  border-radius: 15px;
  background:
    radial-gradient(circle at 82% 28%, rgba(84, 137, 124, .22), transparent 25rem),
    radial-gradient(circle at 20% 100%, rgba(199, 125, 75, .13), transparent 30rem),
    linear-gradient(118deg, rgba(3, 14, 16, .99), rgba(7, 32, 34, .96) 62%, rgba(3, 18, 20, .99));
  box-shadow: 0 38px 96px rgba(0, 0, 0, .3);
}
.catalog-home-hero::after {
  position: absolute;
  right: -10%; bottom: -52%;
  width: 62%; aspect-ratio: 1;
  border: 1px solid rgba(210, 171, 98, .08);
  border-radius: 50%;
  box-shadow: 0 0 0 60px rgba(210,171,98,.025), 0 0 0 125px rgba(210,171,98,.015);
  content: "";
}
.catalog-home-copy, .home-featured-coin { position: relative; z-index: 1; }
.catalog-home-copy { align-self: center; }
.catalog-home-copy h1 { max-width: 760px; font-size: clamp(3.2rem, 6.2vw, 6.25rem); }
.catalog-home-copy .hero-copy { max-width: 44rem; }
.home-metrics { margin-bottom: 0; }
.home-featured-coin {
  align-self: center;
  min-width: 0;
  padding: 28px;
  border: 1px solid rgba(156, 172, 170, .2);
  border-radius: 14px;
  background: rgba(2, 13, 15, .52);
  text-align: center;
  backdrop-filter: blur(10px);
}
.home-featured-coin h2 { max-width: 430px; margin: 0 auto 22px; }
.home-coin-pair { position: relative; display: flex; justify-content: center; align-items: center; min-height: 260px; }
.home-coin {
  position: relative;
  display: grid;
  width: min(245px, 68%);
  aspect-ratio: 1;
  overflow: hidden;
  place-items: center;
  border-radius: 50%;
  filter: drop-shadow(0 25px 24px rgba(0,0,0,.5));
}
.home-coin.secondary { position: absolute; right: 0; bottom: 3%; width: min(135px, 40%); }
.home-coin img, .catalog-main-coin img, .catalog-reverse-coin img, .design-side img,
.common-side-coin img, .explorer-coin img, .timeline-coin img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: contain;
  border-radius: 50%;
}

.country-strip-wrap {
  margin: 18px 0 34px;
  border: 1px solid rgba(156, 172, 170, .18);
  border-radius: 10px;
  background: rgba(5, 23, 25, .78);
  box-shadow: 0 16px 45px rgba(0,0,0,.18);
}
.country-strip-heading { display: flex; justify-content: space-between; align-items: center; padding: 9px 14px 3px; color: var(--muted); font-size: .63rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.country-strip { display: flex; gap: 4px; padding: 6px 10px 10px; overflow-x: auto; scrollbar-width: thin; }
.country-flag-link {
  display: grid;
  flex: 0 0 47px;
  min-height: 48px;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--muted);
  background: rgba(255,255,255,.015);
}
.country-flag-link span { font-size: 1.35rem; line-height: 1; }
.country-flag-link small { margin-top: -4px; font-size: .54rem; font-weight: 850; letter-spacing: .08em; }
.country-flag-link:hover, .country-flag-link.active { border-color: rgba(210,171,98,.45); color: var(--text); background: rgba(199,125,75,.1); }

.home-route-grid { display: grid; grid-template-columns: minmax(250px, 1.25fr) repeat(3, minmax(180px, 1fr)); gap: 14px; margin-bottom: 18px; }
.home-route-intro, .home-route-card { min-height: 220px; padding: 28px; border: 1px solid var(--line); border-radius: 12px; background: rgba(8, 29, 31, .76); }
.home-route-intro p:last-child, .home-route-card p { color: var(--muted); }
.home-route-card { display: flex; flex-direction: column; transition: transform .18s ease, border-color .18s ease; }
.home-route-card:hover { border-color: rgba(210,171,98,.55); transform: translateY(-3px); }
.home-route-card strong { margin-top: auto; font-family: Georgia, serif; font-size: 1.5rem; font-weight: 500; }
.home-route-card p { margin: 8px 0 0; font-size: .82rem; }
.home-secondary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.home-secondary-panel { padding: 28px; }
.home-secondary-panel p { color: var(--muted); }

.country-page-hero {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 35px;
  margin-bottom: 16px;
  padding: 30px 34px;
  border: 1px solid rgba(210,171,98,.18);
  border-radius: 13px;
  background: linear-gradient(115deg, rgba(8,31,33,.96), rgba(3,17,19,.94));
}
.country-page-identity { display: flex; align-items: center; gap: 24px; }
.country-page-identity h1 { margin: 0; font-size: clamp(2.4rem, 5vw, 4.6rem); }
.country-page-identity p:last-child { margin: 6px 0 0; color: var(--muted); }
.country-page-flag { display: grid; width: 96px; aspect-ratio: 1; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: rgba(255,255,255,.035); font-size: 3.2rem; box-shadow: inset 0 0 30px rgba(255,255,255,.025); }
.country-page-flag.small { width: 52px; font-size: 1.75rem; }
.country-completion-card { width: min(280px, 100%); }
.country-completion-card strong, .country-completion-card span, .country-completion-card small { display: block; }
.country-completion-card strong { color: var(--blue); font-family: Georgia, serif; font-size: 2.7rem; font-weight: 400; }
.country-completion-card span { font-size: .75rem; font-weight: 800; }
.country-completion-card small { margin-top: 7px; color: var(--muted); }
.country-completion-card > div { height: 6px; margin-top: 10px; overflow: hidden; border-radius: 999px; background: #183336; }
.country-completion-card i { display: block; height: 100%; background: linear-gradient(90deg, var(--blue), var(--amber)); }
.catalog-subnav { display: flex; gap: 6px; margin-bottom: 26px; padding: 5px; overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; background: rgba(4,18,20,.75); }
.catalog-subnav a { flex: 0 0 auto; padding: 9px 15px; border-radius: 7px; color: var(--muted); font-size: .74rem; font-weight: 800; }
.catalog-subnav a:hover, .catalog-subnav a.active { color: var(--text); background: rgba(199,125,75,.12); }
.country-overview-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(320px, .6fr); gap: 16px; margin-bottom: 34px; }
.country-story-panel, .country-year-panel { padding: 30px; }
.country-story-panel > p { color: #bcc8c4; }
.country-fact-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 26px 0; background: var(--line); }
.country-fact-grid div { padding: 15px; background: #0b2426; }
.country-fact-grid dt { color: var(--muted); font-size: .63rem; text-transform: uppercase; }
.country-fact-grid dd { margin: 4px 0 0; font-weight: 800; }
.year-chip-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(58px, 1fr)); gap: 6px; margin-top: 20px; }
.year-chip-grid a { padding: 8px 5px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); text-align: center; font-size: .7rem; font-weight: 800; }
.year-chip-grid a:hover { border-color: var(--blue); color: var(--text); }
.country-design-section, .country-common-section { margin-top: 36px; }
.country-design-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.country-design-card { padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: rgba(8,28,30,.72); }
.country-design-card > header { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.country-design-card > header span { color: var(--muted); font-size: .7rem; }
.country-design-card > header a { color: var(--blue); font-size: .68rem; font-weight: 800; }
.country-design-card > p { margin: 18px 0 0; color: var(--muted); font-size: .84rem; }
.design-pair-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); gap: 10px; }
.design-pair { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px; align-items: center; padding: 9px; border: 1px solid rgba(156,172,170,.15); border-radius: 9px; background: rgba(0,0,0,.1); }
.design-pair strong { grid-column: 1 / -1; color: var(--muted); font-size: .62rem; text-align: center; }
.design-side { position: relative; display: grid; width: 100%; aspect-ratio: 1; overflow: hidden; place-items: center; border-radius: 50%; }
.common-side-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.common-side-grid article { display: flex; align-items: center; gap: 18px; padding: 22px; border: 1px solid var(--line); border-radius: 11px; background: rgba(8,28,30,.72); }
.common-side-grid p { margin: 5px 0 0; color: var(--muted); font-size: .78rem; }
.common-side-coin { position: relative; display: grid; flex: 0 0 92px; aspect-ratio: 1; overflow: hidden; place-items: center; border-radius: 50%; }

.page-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin: 26px 0 24px; }
.page-heading p:last-child { max-width: 720px; margin-bottom: 0; color: var(--muted); }
.split-heading { align-items: center; }
.catalog-count { min-width: 130px; text-align: right; }
.catalog-count strong, .catalog-count span { display: block; }
.catalog-count strong { color: var(--blue); font-family: Georgia, serif; font-size: 2.6rem; font-weight: 400; }
.catalog-count span { color: var(--muted); font-size: .7rem; }
.explorer-toolbar { margin-bottom: 15px; }
.denomination-picker, .year-picker { display: flex; flex-wrap: wrap; gap: 5px; }
.denomination-picker a, .year-picker a { min-width: 44px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); background: rgba(4,18,20,.7); text-align: center; font-size: .7rem; font-weight: 850; }
.denomination-picker a:hover, .denomination-picker a.active, .year-picker a:hover, .year-picker a.active { border-color: var(--blue); color: var(--text); background: rgba(199,125,75,.12); }
.compact-picker { max-width: 600px; justify-content: flex-end; }
.summary-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.summary-chips > * { padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .65rem; font-weight: 800; }
.explorer-filter-line { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)) auto auto; gap: 9px; align-items: end; margin-bottom: 24px; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: rgba(6,23,25,.72); }
.explorer-filter-line label { display: grid; gap: 4px; color: var(--muted); font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.explorer-filter-line select, .explorer-filter-line input { width: 100%; min-height: 38px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 6px; color: var(--text); background: #0b2426; }
.explorer-filter-line .wide-filter { min-width: 240px; }
.catalog-coin-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.catalog-coin-card { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: rgba(8,28,30,.78); transition: transform .18s ease, border-color .18s ease; }
.catalog-coin-card:hover { border-color: rgba(210,171,98,.42); transform: translateY(-3px); }
.catalog-coin-card.missing { opacity: .78; }
.catalog-coin-visual { position: relative; display: grid; min-height: 235px; place-items: center; overflow: hidden; background: radial-gradient(circle at center, rgba(60,92,88,.18), transparent 60%); }
.catalog-main-coin { position: relative; display: grid; width: var(--coin-card-size, 172px); aspect-ratio: 1; overflow: hidden; place-items: center; border-radius: 50%; filter: drop-shadow(0 20px 18px rgba(0,0,0,.46)); }
.catalog-reverse-coin { position: absolute; right: 12px; bottom: 12px; display: grid; width: 70px; aspect-ratio: 1; overflow: hidden; place-items: center; border: 2px solid rgba(5,20,22,.85); border-radius: 50%; filter: drop-shadow(0 9px 9px rgba(0,0,0,.5)); }
.collection-badge { position: absolute; top: 12px; left: 12px; padding: 5px 8px; border: 1px solid var(--line); border-radius: 999px; background: rgba(3,15,17,.82); font-size: .61rem; font-weight: 850; }
.collection-badge.owned { color: #9ce5bd; border-color: rgba(72,207,154,.3); }
.collection-badge.missing { color: #f0bd86; border-color: rgba(229,155,102,.35); }
.catalog-coin-body { padding: 15px; }
.catalog-coin-kicker { display: flex; flex-wrap: wrap; gap: 4px 9px; color: var(--blue); font-size: .6rem; font-weight: 850; text-transform: uppercase; }
.catalog-coin-body h3 { margin: 8px 0; font-size: 1.12rem; }
.catalog-coin-body > p { display: -webkit-box; overflow: hidden; color: var(--muted); font-size: .75rem; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.catalog-coin-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 15px 0 0; background: var(--line); }
.catalog-coin-facts div { min-width: 0; padding: 9px; background: #0a2224; }
.catalog-coin-facts dt { color: var(--muted); font-size: .54rem; text-transform: uppercase; }
.catalog-coin-facts dd { margin: 3px 0 0; overflow: hidden; font-size: .68rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.catalogue-table-shell { margin-top: 8px; }
.coin-detail-table { width: 100%; min-width: 1220px; border-collapse: collapse; font-size: .7rem; }
.coin-detail-table th { padding: 10px; border-bottom: 1px solid var(--line); color: var(--muted); text-align: left; font-size: .58rem; text-transform: uppercase; }
.coin-detail-table td { padding: 10px; border-bottom: 1px solid rgba(41,67,71,.55); vertical-align: top; }
.coin-detail-table tbody tr:hover { background: rgba(199,125,75,.055); }
.table-coin-link { color: var(--text); font-weight: 800; }
.table-country { white-space: nowrap; }
.table-status { display: inline-flex; padding: 4px 7px; border-radius: 999px; font-size: .58rem; font-weight: 850; }
.table-status.owned { color: #9ce5bd; background: rgba(72,207,154,.09); }
.table-status.missing { color: #f0bd86; background: rgba(229,155,102,.09); }

.country-set-stack, .year-grouped-tables, .value-country-stack { display: grid; gap: 16px; }
.explorer-set-card, .year-country-table, .value-country-card { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: rgba(8,28,30,.76); }
.explorer-set-header, .year-country-table > header, .value-country-card > header { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 17px 20px; border-bottom: 1px solid var(--line); }
.explorer-set-header h2 { margin: 2px 0 0; font-size: 1.7rem; }
.explorer-set-header > span { color: var(--muted); font-size: .68rem; font-weight: 800; }
.explorer-country-name { color: var(--blue); font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.explorer-set-scroll { overflow-x: auto; }
.explorer-denomination-row { display: grid; grid-template-columns: repeat(8, minmax(120px, 1fr)); min-width: 1040px; }
.explorer-denomination { min-width: 0; padding: 14px 10px; border-right: 1px solid rgba(41,67,71,.55); text-align: center; }
.explorer-denomination:last-child { border-right: 0; }
.explorer-denomination h3 { margin-bottom: 8px; color: var(--muted); font-family: inherit; font-size: .64rem; font-weight: 850; }
.explorer-coin { position: relative; display: grid; width: var(--coin-set-size); max-width: 92px; aspect-ratio: 1; margin: 0 auto; overflow: hidden; place-items: center; border-radius: 50%; filter: drop-shadow(0 12px 10px rgba(0,0,0,.4)); }
.explorer-coin.empty { opacity: .35; }
.explorer-denomination > strong { display: block; margin-top: 8px; color: var(--muted); font-size: .56rem; }
.explorer-varieties { display: flex; flex-wrap: wrap; justify-content: center; gap: 3px; margin-top: 7px; }
.explorer-varieties a { padding: 3px 5px; border-radius: 5px; color: var(--blue); background: rgba(199,125,75,.08); font-size: .52rem; font-weight: 800; }
.year-country-table > header > div, .value-country-card > header > div { display: flex; align-items: center; gap: 13px; }
.year-country-table > header h2, .value-country-card > header h2 { margin: 0; }
.year-country-table > header a, .value-country-card > header a { color: var(--blue); font-size: .68rem; font-weight: 800; }
.value-country-card > header p { margin: 3px 0 0; color: var(--muted); font-size: .68rem; }
.value-year-timeline { display: flex; gap: 1px; padding: 1px; overflow-x: auto; background: rgba(41,67,71,.55); }
.value-year-group { flex: 1 0 150px; min-width: 150px; padding: 12px; background: #092123; }
.value-year-group h3 { margin-bottom: 10px; color: var(--muted); font-size: .9rem; }
.value-year-coins { display: flex; flex-wrap: wrap; gap: 6px; }
.timeline-coin { display: grid; justify-items: center; }
.timeline-coin > span { position: relative; display: grid; width: 52px; aspect-ratio: 1; overflow: hidden; place-items: center; border-radius: 50%; }
.timeline-coin.missing { opacity: .42; }
.timeline-coin small { margin-top: 3px; color: var(--muted); font-size: .5rem; font-weight: 800; }

/* Dense administration workspace */
.admin-page-shell { width: min(1760px, calc(100% - 24px)); padding-top: 18px; }
.admin-workspace { display: grid; grid-template-columns: 220px minmax(0, 1fr); min-height: calc(100vh - 135px); overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: rgba(4,17,19,.88); box-shadow: var(--shadow); }
.admin-workspace-sidebar { display: flex; flex-direction: column; min-width: 0; padding: 18px 13px; border-right: 1px solid var(--line); background: #061719; }
.admin-workspace-brand { display: flex; align-items: center; gap: 10px; padding: 7px; }
.admin-workspace-brand span, .admin-workspace-brand strong, .admin-workspace-brand small { display: block; }
.admin-workspace-brand small { color: var(--muted); font-size: .6rem; }
.admin-workspace-sidebar nav { display: grid; gap: 3px; margin: 28px 0; }
.admin-workspace-sidebar nav a { padding: 9px 11px; border-radius: 6px; color: var(--muted); font-size: .72rem; font-weight: 750; }
.admin-workspace-sidebar nav a:hover, .admin-workspace-sidebar nav a.active { color: var(--text); background: rgba(199,125,75,.12); }
.admin-workspace-user { display: flex; align-items: center; gap: 9px; margin-top: auto; padding: 11px 7px; border-top: 1px solid var(--line); }
.admin-workspace-user > span { display: grid; width: 34px; aspect-ratio: 1; place-items: center; border-radius: 50%; color: #071719; background: var(--blue); font-size: .64rem; font-weight: 900; }
.admin-workspace-user strong, .admin-workspace-user small { display: block; }
.admin-workspace-user small { color: var(--muted); font-size: .58rem; }
.admin-logout { width: 100%; padding: 8px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); background: transparent; font-size: .65rem; }
.admin-workspace-main { min-width: 0; padding: 20px; }
.admin-workspace-topbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 15px; }
.admin-workspace-topbar h1 { margin: 0; font-size: 2rem; }
.admin-top-actions { display: flex; gap: 8px; }
.admin-kpi-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.admin-kpi-row article { padding: 14px 16px; border: 1px solid var(--line); border-radius: 8px; background: #092123; }
.admin-kpi-row span, .admin-kpi-row strong, .admin-kpi-row small { display: block; }
.admin-kpi-row span { color: var(--muted); font-size: .58rem; text-transform: uppercase; }
.admin-kpi-row strong { margin: 3px 0; color: var(--text); font-family: Georgia, serif; font-size: 1.7rem; font-weight: 500; }
.admin-kpi-row small { color: var(--muted); font-size: .58rem; }
.admin-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(270px, .7fr); gap: 10px; }
.admin-dense-panel { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: 8px; background: #092123; }
.admin-catalog-preview { grid-row: span 2; }
.admin-country-coverage { grid-column: 1 / -1; }
.admin-panel-title { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 12px; }
.admin-panel-title h2 { font-size: 1.15rem; }
.admin-panel-title > a, .admin-panel-title > button { color: var(--blue); font-size: .64rem; font-weight: 800; }
.admin-table-wrap { overflow-x: auto; }
.admin-dense-table { width: 100%; min-width: 820px; border-collapse: collapse; font-size: .65rem; }
.admin-dense-table.full { min-width: 1280px; }
.admin-dense-table th { padding: 8px; border-bottom: 1px solid var(--line); color: var(--muted); text-align: left; font-size: .54rem; text-transform: uppercase; }
.admin-dense-table td { padding: 8px; border-bottom: 1px solid rgba(41,67,71,.55); vertical-align: middle; }
.admin-dense-table td small { display: block; color: var(--muted); font-size: .52rem; }
.admin-dense-table tbody tr:hover { background: rgba(199,125,75,.05); }
.image-pair-status { display: inline-grid; width: 19px; aspect-ratio: 1; margin-right: 2px; place-items: center; border-radius: 4px; font-size: .5rem; font-weight: 900; }
.image-pair-status.yes { color: #9ce5bd; background: rgba(72,207,154,.12); }
.image-pair-status.no { color: #e29a72; background: rgba(229,155,102,.1); }
.quality-score { display: inline-flex; padding: 4px 6px; border-radius: 999px; font-size: .54rem; font-weight: 900; }
.quality-score.good { color: #9ce5bd; background: rgba(72,207,154,.1); }
.quality-score.mid { color: #f2cf83; background: rgba(210,171,98,.1); }
.quality-score.low { color: #ff9da3; background: rgba(255,107,116,.1); }
.admin-quality-list { display: grid; gap: 1px; margin: 0; padding: 0; list-style: none; background: var(--line); }
.admin-quality-list li { display: grid; grid-template-columns: 55px 1fr; align-items: center; padding: 11px; background: #0a2426; }
.admin-quality-list strong { color: var(--blue); font-family: Georgia, serif; font-size: 1.3rem; font-weight: 500; }
.admin-quality-list span { color: var(--muted); font-size: .68rem; }
.admin-job-list { display: grid; gap: 5px; }
.admin-job-list a { display: flex; justify-content: space-between; gap: 12px; padding: 10px; border: 1px solid rgba(41,67,71,.65); border-radius: 6px; }
.admin-job-list strong, .admin-job-list small { display: block; }
.admin-job-list small { color: var(--muted); font-size: .55rem; }
.admin-job-list b { color: var(--blue); font-size: .6rem; white-space: nowrap; }
.admin-country-mini-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 5px; }
.admin-country-mini-grid a { display: grid; padding: 7px; border: 1px solid var(--line); border-radius: 6px; place-items: center; }
.admin-country-mini-grid span { font-size: 1.2rem; }
.admin-country-mini-grid strong { font-size: .58rem; }
.admin-country-mini-grid small { color: var(--muted); font-size: .5rem; }
.admin-filter-bar { display: grid; grid-template-columns: minmax(240px, 1.5fr) repeat(3, minmax(120px, .5fr)) auto; gap: 7px; margin-bottom: 12px; }
.admin-filter-bar input, .admin-filter-bar select { min-height: 36px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 6px; color: var(--text); background: #06191b; font-size: .66rem; }
.countries-admin-grid { grid-template-columns: minmax(300px, .65fr) minmax(0, 1.35fr); }
.admin-country-list { display: grid; gap: 4px; max-height: 740px; overflow-y: auto; }
.admin-country-list a { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 9px; padding: 9px; border: 1px solid rgba(41,67,71,.65); border-radius: 6px; }
.admin-country-list a > span { font-size: 1.25rem; }
.admin-country-list strong, .admin-country-list small { display: block; }
.admin-country-list small { color: var(--muted); font-size: .54rem; }
.admin-country-list b { color: var(--muted); font-size: .6rem; }
.admin-empty-note { color: var(--muted); font-size: .76rem; }
.admin-import-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.admin-import-history-panel { grid-column: 1 / -1; }
.quality-task-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.quality-task-grid a { padding: 20px; border: 1px solid var(--line); border-radius: 7px; background: rgba(0,0,0,.08); }
.quality-task-grid strong, .quality-task-grid span, .quality-task-grid small { display: block; }
.quality-task-grid strong { color: var(--blue); font-family: Georgia, serif; font-size: 2rem; font-weight: 500; }
.quality-task-grid span { margin-top: 4px; font-weight: 800; }
.quality-task-grid small { margin-top: 10px; color: var(--muted); }
.large-quality-score { color: var(--blue); font-family: Georgia, serif; font-size: 2.4rem; font-weight: 500; }
.dense-cache-facts { max-width: 900px; }
.export-list { display: grid; gap: 7px; }
.export-list a { padding: 14px; border: 1px solid var(--line); border-radius: 7px; }
.export-list strong, .export-list span { display: block; }
.export-list span { margin-top: 3px; color: var(--muted); font-size: .65rem; }
.country-profile-editor { align-items: start; }
.country-form-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin: 18px 0; background: var(--line); }
.country-form-stats div { padding: 10px; background: #0a2426; }
.country-form-stats dt { color: var(--muted); font-size: .55rem; text-transform: uppercase; }
.country-form-stats dd { margin: 3px 0 0; font-weight: 800; }
.denomination-checkboxes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; margin: 18px 0 0; padding: 16px; border: 1px solid var(--line); border-radius: 8px; }
.denomination-checkboxes legend { padding: 0 7px; color: var(--muted); font-size: .65rem; font-weight: 800; }
.denomination-checkboxes label { display: flex; align-items: center; gap: 7px; padding: 7px; border: 1px solid rgba(41,67,71,.6); border-radius: 6px; }
.primary-button.small { padding: 7px 10px; font-size: .65rem; }

@media (max-width: 1280px) {
  .catalog-coin-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-route-grid { grid-template-columns: repeat(3, 1fr); }
  .home-route-intro { grid-column: 1 / -1; min-height: auto; }
  .common-side-grid { grid-template-columns: 1fr; }
  .admin-country-mini-grid { grid-template-columns: repeat(6, 1fr); }
}
@media (max-width: 1050px) {
  .catalog-home-hero { grid-template-columns: 1fr; }
  .home-featured-coin { width: min(620px, 100%); margin: 0 auto; }
  .country-design-grid { grid-template-columns: 1fr; }
  .country-overview-grid { grid-template-columns: 1fr; }
  .explorer-filter-line { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-workspace { grid-template-columns: 175px minmax(0,1fr); }
  .admin-kpi-row { grid-template-columns: repeat(2, 1fr); }
  .admin-dashboard-grid, .countries-admin-grid { grid-template-columns: 1fr; }
  .admin-catalog-preview { grid-row: auto; }
  .admin-country-coverage { grid-column: auto; }
  .admin-import-grid { grid-template-columns: 1fr; }
  .admin-import-history-panel { grid-column: auto; }
}
@media (max-width: 780px) {
  .catalog-home-hero { padding: 32px 22px; }
  .catalog-home-copy h1 { font-size: clamp(3rem, 14vw, 4.6rem); }
  .home-route-grid, .home-secondary-grid { grid-template-columns: 1fr; }
  .home-route-intro { grid-column: auto; }
  .country-page-hero, .page-heading { align-items: flex-start; flex-direction: column; }
  .country-page-identity { align-items: flex-start; }
  .country-page-flag { width: 70px; font-size: 2.3rem; }
  .country-completion-card { width: 100%; }
  .country-fact-grid { grid-template-columns: repeat(2, 1fr); }
  .catalog-coin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-count { text-align: left; }
  .compact-picker { justify-content: flex-start; }
  .admin-workspace { display: block; }
  .admin-workspace-sidebar { border-right: 0; border-bottom: 1px solid var(--line); }
  .admin-workspace-sidebar nav { display: flex; margin: 12px 0; overflow-x: auto; }
  .admin-workspace-sidebar nav a { flex: 0 0 auto; }
  .admin-workspace-user, .admin-workspace-sidebar form { display: none; }
  .admin-workspace-topbar { align-items: flex-start; flex-direction: column; }
  .admin-filter-bar { grid-template-columns: 1fr 1fr; }
  .quality-task-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .catalog-coin-grid { grid-template-columns: 1fr; }
  .country-page-identity { flex-direction: column; }
  .country-fact-grid, .explorer-filter-line, .admin-kpi-row, .quality-task-grid, .denomination-checkboxes { grid-template-columns: 1fr; }
  .design-pair-grid { grid-template-columns: repeat(2, 1fr); }
  .admin-workspace-main { padding: 12px; }
  .admin-top-actions { width: 100%; }
  .admin-top-actions > * { flex: 1; text-align: center; }
  .admin-filter-bar { grid-template-columns: 1fr; }
}

/* v37 visual refinements */
.coin-placeholder {
  isolation: isolate;
  border: 0;
  color: rgba(43, 27, 14, .86);
  background:
    radial-gradient(circle at 35% 25%, rgba(255,255,255,.34), transparent 18%),
    radial-gradient(circle at 35% 27%, #efb97f 0, #bd7044 57%, #6a351f 100%);
  box-shadow:
    inset 0 0 0 2px rgba(255, 239, 204, .34),
    inset 0 0 0 5px rgba(78, 39, 20, .17),
    inset 0 -12px 22px rgba(63, 25, 9, .22),
    0 14px 24px rgba(0, 0, 0, .34);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.45rem;
  font-weight: 800;
  letter-spacing: -.06em;
  text-shadow: 0 1px rgba(255,255,255,.24);
}
.coin-placeholder::before {
  inset: 7%;
  z-index: -1;
  border: 1px solid rgba(255, 238, 197, .22);
  background: none;
}
.coin-placeholder::after {
  position: absolute;
  inset: 3%;
  z-index: -1;
  border: 1px dashed rgba(94, 54, 30, .2);
  border-radius: inherit;
  content: "";
}
.coin-denomination-10 .coin-placeholder,
.coin-denomination-20 .coin-placeholder,
.coin-denomination-50 .coin-placeholder {
  color: rgba(66, 48, 10, .88);
  background:
    radial-gradient(circle at 35% 25%, rgba(255,255,255,.36), transparent 18%),
    radial-gradient(circle at 35% 27%, #f3db91 0, #c8a242 58%, #725516 100%);
  box-shadow: inset 0 0 0 2px rgba(255,244,194,.38), inset 0 0 0 5px rgba(102,75,19,.15), inset 0 -12px 22px rgba(70,48,6,.2), 0 14px 24px rgba(0,0,0,.34);
}
.coin-denomination-100 .coin-placeholder {
  color: rgba(48, 51, 50, .9);
  background:
    radial-gradient(circle at 35% 25%, rgba(255,255,255,.4), transparent 15%),
    radial-gradient(circle at center, #edf0ec 0 37%, #aeb7b5 43%, transparent 44%),
    radial-gradient(circle at 35% 27%, #efd679 0, #c49b35 62%, #705414 100%);
  box-shadow: inset 0 0 0 2px rgba(255,245,200,.36), inset 0 0 0 5px rgba(87,67,21,.15), inset 0 -12px 22px rgba(55,40,8,.2), 0 14px 24px rgba(0,0,0,.34);
}
.coin-denomination-200 .coin-placeholder {
  color: rgba(73, 50, 8, .9);
  background:
    radial-gradient(circle at 35% 25%, rgba(255,255,255,.42), transparent 15%),
    radial-gradient(circle at center, #ecd06d 0 37%, #b78b27 43%, transparent 44%),
    radial-gradient(circle at 35% 27%, #eef0ec 0, #aeb7b5 60%, #657173 100%);
  box-shadow: inset 0 0 0 2px rgba(245,248,244,.4), inset 0 0 0 5px rgba(69,77,77,.16), inset 0 -12px 22px rgba(45,52,52,.2), 0 14px 24px rgba(0,0,0,.34);
}
.home-coin .coin-placeholder { font-size: clamp(1.6rem, 4vw, 3.25rem); }
.home-coin.secondary .coin-placeholder { font-size: clamp(.9rem, 2vw, 1.55rem); }
.catalog-main-coin .coin-placeholder { font-size: clamp(1.15rem, 2.2vw, 2.1rem); }
.catalog-reverse-coin .coin-placeholder { font-size: .82rem; }
.design-side .coin-placeholder { font-size: clamp(.48rem, 1vw, .78rem); }
.common-side-coin .coin-placeholder { font-size: 1rem; }
.special-country-visual .coin-placeholder { font-size: .72rem; }
.set-coin-visual .coin-placeholder { font-size: .61rem; }
.set-variety-visual .coin-placeholder { font-size: .34rem; }
.timeline-coin .coin-placeholder { font-size: .52rem; }
.explorer-coin .coin-placeholder { font-size: .64rem; }
.image-preview .coin-placeholder { font-size: clamp(1.45rem, 4vw, 3rem); }
.detail-photo .coin-placeholder { font-size: clamp(2rem, 5vw, 4.25rem); }

.home-brand-watermark {
  position: absolute;
  right: -36px;
  top: -38px;
  width: 190px;
  opacity: .075;
  pointer-events: none;
  transform: rotate(10deg);
}

.rare-coin-star {
  display: inline-grid;
  place-items: center;
  color: #f2c866;
  font-size: 1rem;
  line-height: 1;
  text-shadow: 0 2px 7px rgba(0,0,0,.6);
}
.rare-coin-star.compact { display: inline; font-size: .72em; vertical-align: .08em; }
.rare-coin-star.detail { font-size: .62em; vertical-align: .12em; }
.rare-coin-star.on-card {
  position: absolute;
  z-index: 4;
  top: 12px;
  right: 12px;
  width: 27px;
  aspect-ratio: 1;
  border: 1px solid rgba(242,200,102,.45);
  border-radius: 50%;
  background: rgba(3,15,17,.82);
}
.rare-coin-star.on-coin {
  position: absolute;
  z-index: 4;
  right: -2px;
  top: -2px;
  width: 18px;
  aspect-ratio: 1;
  border: 1px solid rgba(242,200,102,.45);
  border-radius: 50%;
  background: #092123;
  font-size: .56rem;
}

.checkbox-card {
  display: flex !important;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: rgba(0,0,0,.08);
}
.checkbox-card input { width: auto !important; }
.checkbox-card span, .checkbox-card strong, .checkbox-card small { display: block; }
.checkbox-card small { color: var(--muted); font-size: .62rem; }

.explorer-mint-grid {
  display: grid;
  grid-template-columns: 78px repeat(8, minmax(96px, 1fr));
  min-width: 940px;
  background: rgba(41,67,71,.55);
  gap: 1px;
}
.explorer-mint-corner, .explorer-mint-heading,
.explorer-mint-label, .explorer-mint-cell { background: #092123; }
.explorer-mint-corner, .explorer-mint-heading {
  padding: 9px 6px;
  color: var(--muted);
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-align: center;
  text-transform: uppercase;
}
.explorer-mint-label {
  display: grid;
  align-content: center;
  min-height: 94px;
  padding: 9px;
  text-align: center;
}
.explorer-mint-label strong { color: var(--blue); font-size: .7rem; }
.explorer-mint-label small { overflow: hidden; color: var(--muted); font-size: .48rem; text-overflow: ellipsis; white-space: nowrap; }
.explorer-mint-cell {
  display: flex;
  min-height: 94px;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 8px 4px;
}
.explorer-mint-coin {
  position: relative;
  display: grid;
  width: var(--coin-set-size);
  aspect-ratio: 1;
  place-items: center;
  border-radius: 50%;
  filter: drop-shadow(0 8px 7px rgba(0,0,0,.4));
}
.explorer-mint-coin .coin-placeholder { width: 100%; font-size: .58rem; }
.explorer-mint-coin img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }
.explorer-mint-coin.empty { opacity: .22; filter: none; }

.admin-job-list a { min-width: 0; align-items: center; }
.admin-job-list a > span { min-width: 0; overflow: hidden; }
.admin-job-list strong, .admin-job-list small {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.admin-job-list b { flex: 0 0 auto; }

.admin-home-settings { max-width: 1280px; }
.settings-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.settings-form-grid section { min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: 7px; background: rgba(0,0,0,.08); }
.settings-form-grid h3 { margin-bottom: 12px; font-size: 1rem; }
.settings-form-grid label { display: grid; gap: 4px; margin-top: 9px; color: var(--muted); font-size: .62rem; font-weight: 800; }
.settings-form-grid input, .settings-form-grid textarea { width: 100%; padding: 8px 9px; border: 1px solid var(--line); border-radius: 6px; color: var(--text); background: #06191b; resize: vertical; }
.admin-home-settings .form-actions { display: flex; justify-content: flex-end; margin-top: 14px; }

@media (max-width: 780px) {
  .settings-form-grid { grid-template-columns: 1fr; }
  .explorer-mint-grid { grid-template-columns: 62px repeat(8, minmax(82px, 1fr)); min-width: 760px; }
  .explorer-mint-label, .explorer-mint-cell { min-height: 82px; }
}

/* Scale nominal labels with the physical placeholder diameter instead of the viewport. */
.coin-denomination { --coin-set-label-size: .58rem; --coin-variety-label-size: .31rem; --coin-fixed-label-size: .58rem; }
.coin-denomination-1 { --coin-set-label-size: .43rem; --coin-variety-label-size: .23rem; --coin-fixed-label-size: .43rem; }
.coin-denomination-2 { --coin-set-label-size: .47rem; --coin-variety-label-size: .26rem; --coin-fixed-label-size: .47rem; }
.coin-denomination-5 { --coin-set-label-size: .51rem; --coin-variety-label-size: .28rem; --coin-fixed-label-size: .51rem; }
.coin-denomination-10 { --coin-set-label-size: .47rem; --coin-variety-label-size: .25rem; --coin-fixed-label-size: .47rem; }
.coin-denomination-20 { --coin-set-label-size: .53rem; --coin-variety-label-size: .28rem; --coin-fixed-label-size: .53rem; }
.coin-denomination-50 { --coin-set-label-size: .57rem; --coin-variety-label-size: .31rem; --coin-fixed-label-size: .57rem; }
.coin-denomination-100 { --coin-set-label-size: .61rem; --coin-variety-label-size: .33rem; --coin-fixed-label-size: .61rem; }
.coin-denomination-200 { --coin-set-label-size: .67rem; --coin-variety-label-size: .37rem; --coin-fixed-label-size: .67rem; }
.set-coin-visual .coin-placeholder,
.explorer-coin .coin-placeholder,
.explorer-mint-coin .coin-placeholder { font-size: var(--coin-set-label-size); }
.set-variety-visual .coin-placeholder { font-size: var(--coin-variety-label-size); }
.timeline-coin .coin-placeholder,
.special-country-visual .coin-placeholder { font-size: var(--coin-fixed-label-size); }
.coin-placeholder::before,
.coin-placeholder::after { z-index: 0; pointer-events: none; }
.explorer-mint-cell { flex-wrap: wrap; }
.admin-job-list strong,
.admin-job-list small { white-space: normal; }

/* v38 catalogue availability, complete year navigation and local-image inventory. */
.admin-panel-title > a.primary-button,
.admin-panel-title > button.primary-button,
.primary-button.small {
  min-height: 32px;
  padding: 7px 11px;
  color: #10201e;
  line-height: 1.15;
  white-space: nowrap;
}
.admin-panel-title > a.primary-button:hover,
.admin-panel-title > button.primary-button:hover { color: #10201e; }

.explorer-toolbar-stacked {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 14px;
}
.availability-toggle {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 3px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(3, 15, 17, .72);
}
.availability-toggle a {
  padding: 7px 11px;
  border-radius: 999px;
  color: var(--muted);
  font-size: .64rem;
  font-weight: 850;
  line-height: 1.1;
  white-space: nowrap;
}
.availability-toggle a:hover { color: var(--text); }
.availability-toggle a.active {
  color: #10201e;
  background: var(--blue);
  box-shadow: 0 4px 14px rgba(0, 0, 0, .24);
}
.year-picker-all {
  max-width: min(100%, 760px);
  max-height: 164px;
  overflow: auto;
  padding: 3px;
  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
}
.explorer-filtered-empty {
  display: grid;
  width: var(--coin-set-size);
  aspect-ratio: 1;
  place-items: center;
  color: rgba(156, 172, 170, .42);
  font-size: 1rem;
}

.admin-kpi-row > .admin-kpi-link {
  display: block;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #092123;
  transition: border-color .16s ease, transform .16s ease;
}
.admin-kpi-row > .admin-kpi-link:hover {
  border-color: var(--blue);
  transform: translateY(-1px);
}
.cache-facts dd a { color: var(--blue); font-size: .72rem; }
.admin-local-images-panel { overflow: hidden; }
.admin-local-image-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin-top: 15px;
}
.admin-local-image-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(2, 13, 15, .34);
}
.admin-local-image-card > header,
.admin-local-image-card > footer {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px;
}
.admin-local-image-card > header { border-bottom: 1px solid rgba(41, 67, 71, .58); }
.admin-local-image-card > header div { min-width: 0; }
.admin-local-image-card > header strong,
.admin-local-image-card > header small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-local-image-card > header strong { font-size: .68rem; }
.admin-local-image-card > header small { margin-top: 3px; color: var(--muted); font-size: .53rem; }
.admin-local-image-card > header > a,
.admin-local-image-card > footer a { color: var(--blue); font-size: .56rem; font-weight: 850; white-space: nowrap; }
.admin-local-image-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.admin-local-image-pair section {
  display: grid;
  min-width: 0;
  min-height: 180px;
  align-content: start;
  justify-items: center;
  gap: 6px;
  padding: 9px;
  background: #071b1d;
}
.admin-local-image-pair section > span { color: var(--muted); font-size: .52rem; font-weight: 850; text-transform: uppercase; }
.admin-local-image-pair section > a { display: grid; width: 100%; min-height: 112px; place-items: center; }
.admin-local-image-pair img {
  display: block;
  width: 112px;
  height: 112px;
  max-width: 100%;
  object-fit: contain;
  filter: drop-shadow(0 8px 8px rgba(0,0,0,.42));
}
.admin-local-image-pair small {
  width: 100%;
  overflow: hidden;
  color: var(--muted);
  font-size: .49rem;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-local-image-pair b { color: #9ce5bd; font-size: .5rem; }
.admin-local-image-pair .missing-image b { color: #ff9da3; }
.broken-image-mark {
  display: grid;
  width: 80px;
  height: 80px;
  place-items: center;
  border: 1px dashed rgba(255, 107, 116, .55);
  border-radius: 50%;
  color: #ff9da3;
  font-size: 1.35rem;
}
.broken-image-mark.neutral { border-color: var(--line); color: var(--muted); }
.admin-local-image-card > footer { border-top: 1px solid rgba(41, 67, 71, .58); color: var(--muted); font-size: .52rem; }

@media (max-width: 1180px) {
  .admin-local-image-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 780px) {
  .availability-toggle { width: 100%; border-radius: 9px; }
  .availability-toggle a { flex: 1 1 180px; text-align: center; }
  .year-picker-all { max-width: 100%; max-height: 210px; }
  .admin-local-image-grid { grid-template-columns: 1fr; }
}

/* v39 exact raster branding and catalogue/collection separation. */
.admin-workspace-brand img,
.footer-brand img,
.home-brand-watermark {
  object-fit: contain;
}

.availability-control {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.availability-control-label {
  color: var(--muted);
  font-size: .52rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.availability-control > small {
  max-width: 650px;
  color: var(--muted);
  font-size: .54rem;
  line-height: 1.35;
}
.catalog-collection-summary {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 5px;
}
.catalog-collection-summary > span,
.empty-state-counts > span {
  display: inline-flex;
  gap: 4px;
  align-items: baseline;
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(3, 15, 17, .62);
  font-size: .58rem;
  font-weight: 750;
}
.catalog-collection-summary strong { color: var(--text); font-size: .72rem; }
.catalog-collection-summary .owned-count-chip { border-color: rgba(72, 207, 154, .24); }
.catalog-collection-summary .missing-count-chip { border-color: rgba(229, 155, 102, .26); }
.catalog-aware-empty { border-style: dashed; }
.empty-state-counts { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; margin-top: 12px; }

.set-catalog-status {
  display: grid;
  justify-items: end;
  gap: 3px;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 800;
  text-align: right;
}
.set-catalog-status small { font-size: .56rem; font-weight: 700; }
.set-state-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  padding: 8px 20px;
  border-bottom: 1px solid rgba(41, 67, 71, .55);
  color: var(--muted);
  background: rgba(3, 15, 17, .42);
  font-size: .54rem;
  font-weight: 750;
}
.set-state-legend .legend-owned { color: #9ce5bd; }
.set-state-legend .legend-missing { color: #f0bd86; }
.set-state-legend .legend-unissued { color: #7f9290; }
.explorer-mint-coin.owned { box-shadow: 0 0 0 2px rgba(72, 207, 154, .28); }
.explorer-mint-coin.missing {
  opacity: .68;
  box-shadow: 0 0 0 2px rgba(229, 155, 102, .28);
  filter: grayscale(.2) drop-shadow(0 8px 7px rgba(0,0,0,.34));
}
.set-collection-marker {
  position: absolute;
  z-index: 4;
  right: -2px;
  bottom: -2px;
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border: 2px solid #092123;
  border-radius: 50%;
  color: #10201e;
  background: #9ce5bd;
  font-size: .58rem;
  font-weight: 950;
}
.explorer-mint-coin.missing .set-collection-marker {
  color: #20150f;
  background: #f0bd86;
}
.explorer-catalog-absent,
.explorer-filtered-empty {
  display: grid;
  width: var(--coin-set-size);
  aspect-ratio: 1;
  place-items: center;
  border-radius: 50%;
}
.explorer-catalog-absent {
  border: 1px dashed rgba(127, 146, 144, .28);
  color: rgba(127, 146, 144, .52);
  background: repeating-linear-gradient(135deg, rgba(127,146,144,.035) 0 4px, transparent 4px 8px);
  font-size: .9rem;
}
.explorer-filtered-empty {
  color: rgba(156, 172, 170, .42);
  background: rgba(156,172,170,.025);
  font-size: 1rem;
}

@media (max-width: 780px) {
  .availability-control { width: 100%; }
  .availability-control > small { max-width: none; }
  .catalog-collection-summary { width: 100%; }
  .set-catalog-status { justify-items: start; text-align: left; }
  .explorer-set-header { align-items: flex-start; flex-direction: column; }
}
.set-filter-message {
  padding: 9px 20px;
  border-bottom: 1px solid rgba(41, 67, 71, .55);
  color: var(--muted);
  background: rgba(3, 15, 17, .42);
  font-size: .62rem;
  font-weight: 750;
}
.set-filter-message.complete { color: #9ce5bd; }
.set-filter-message.none-owned { color: #f0bd86; }

/* v41: separated catalogue / collection administration */
.compact-catalogue-wrap { overflow-x: auto; }
.compact-catalogue-table { width: 100%; table-layout: fixed; min-width: 0; font-size: .78rem; }
.compact-catalogue-table th,
.compact-catalogue-table td { padding: .5rem .45rem; vertical-align: middle; }
.compact-catalogue-table th:nth-child(1) { width: 5%; }
.compact-catalogue-table th:nth-child(2) { width: 25%; }
.compact-catalogue-table th:nth-child(3) { width: 10%; }
.compact-catalogue-table th:nth-child(4) { width: 12%; }
.compact-catalogue-table th:nth-child(5) { width: 7%; }
.compact-catalogue-table th:nth-child(6) { width: 15%; }
.compact-catalogue-table th:nth-child(7) { width: 8%; }
.compact-catalogue-table th:nth-child(8) { width: 8%; }
.compact-catalogue-table th:nth-child(9) { width: 10%; }
.compact-catalogue-table td small { display: block; margin-top: .12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.catalogue-title-cell { min-width: 0; }
.catalogue-title-cell > a { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.collection-grid-panel { min-width: 0; }
.admin-panel-intro { margin: -.25rem 0 1rem; color: var(--muted); }
.collection-grid-legend { display: flex; gap: .8rem; align-items: center; font-size: .78rem; color: var(--muted); }
.collection-grid-legend .owned { color: var(--success, #76b58a); }
.collection-grid-filter { grid-template-columns: minmax(160px, 1fr) 110px auto auto; }
.collection-grid-status { min-height: 1.2rem; margin: .45rem 0; font-size: .78rem; color: var(--muted); }
.collection-grid-wrap { max-width: 100%; overflow: auto; }
.collection-check-grid { width: 100%; min-width: 900px; border-collapse: collapse; table-layout: fixed; font-size: .76rem; }
.collection-check-grid th,
.collection-check-grid td { border-bottom: 1px solid var(--line); padding: .34rem .24rem; text-align: center; }
.collection-check-grid thead th { position: sticky; top: 0; z-index: 2; background: var(--panel, #17191d); }
.collection-check-grid th:first-child { width: 78px; text-align: left; }
.collection-check-grid th:nth-child(2) { width: 54px; }
.collection-check-grid th:nth-child(3) { width: 58px; }
.collection-check-grid tbody tr.continuation { background: rgba(255,255,255,.018); }
.collection-cell-buttons { display: flex; justify-content: center; gap: .18rem; flex-wrap: wrap; }
.collection-check-grid form { display: inline-flex; margin: 0; }
.collection-check { width: 1.65rem; height: 1.65rem; display: inline-grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255,255,255,.22); background: transparent; color: var(--muted); padding: 0; line-height: 1; cursor: pointer; font-weight: 800; }
.collection-check:hover,
.collection-check:focus-visible { border-color: var(--accent); color: #fff; outline: none; }
.collection-check.owned { background: rgba(91, 166, 111, .2); border-color: rgba(111, 195, 133, .75); color: #a9e6b8; }
.collection-check.commemorative { border-radius: .42rem; }
.collection-check.busy { opacity: .45; pointer-events: none; }
.rights-warning { padding: .75rem; border: 1px solid rgba(241, 190, 87, .28); border-radius: .65rem; background: rgba(241, 190, 87, .06); }
.export-list.compact a { padding: .72rem .8rem; }

@media (max-width: 1050px) {
  .compact-catalogue-table { min-width: 850px; }
  .collection-grid-filter { grid-template-columns: 1fr 110px; }
}

/* v42: three fixed commemorative columns; excess issues stay inside SON 3. */
.collection-cell-buttons.commemorative-stack { align-items: center; justify-content: center; flex-wrap: wrap; max-width: 66px; margin: 0 auto; }
.collection-cell-buttons.commemorative-stack .collection-check { width: 24px; height: 24px; min-width: 24px; }

/* v43: nominal timeline rare marker stays visible without a circular badge. */
.timeline-coin > span { overflow: visible; }
.timeline-coin .rare-coin-star.on-coin {
  right: 0;
  top: -3px;
  width: auto;
  aspect-ratio: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: .72rem;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.8));
}
.admin-year-filter { width: 7.2rem; }
.collection-toggle-form { display: inline-flex; align-items: center; gap: .5rem; margin-top: .75rem; color: var(--muted); font-size: .68rem; font-weight: 800; }
.collection-toggle-form.compact { margin: 0 0 0 .35rem; vertical-align: middle; }
.collection-toggle-form.compact .collection-check { width: 1.35rem; height: 1.35rem; font-size: .7rem; }
.catalog-coin-body .collection-toggle-form { margin-top: 1rem; }
.detail-actions .collection-toggle-form { margin: 0; padding: .35rem .7rem; border: 1px solid var(--line); border-radius: .55rem; }

/* v45: public collection states, flags, admin bulk editing and completeness views. */
.numista-progress[hidden],
[data-ecb-national-status][hidden],
[data-opennumismat-status][hidden] { display: none !important; }

.coin-flags {
  display: inline-flex;
  align-items: center;
  gap: .18rem;
  color: #f2c866;
  line-height: 1;
  white-space: nowrap;
  vertical-align: .08em;
}
.coin-flags .rare-coin-star,
.coin-flags .uncirculated-coin-mark {
  display: inline-grid;
  place-items: center;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.8));
  text-shadow: none;
}
.coin-flags .uncirculated-coin-mark { color: #b8e4e8; font-size: .92em; font-weight: 900; }
.coin-flags.compact { margin-right: .28rem; font-size: .72rem; }
.coin-flags.detail { margin-right: .45rem; font-size: 1.15rem; }
.coin-flags.on-card,
.coin-flags.on-coin {
  position: absolute;
  z-index: 8;
  top: 8px;
  right: 8px;
  padding: .18rem .26rem;
  font-size: .72rem;
  pointer-events: none;
}
.coin-flags.on-coin { top: -4px; right: -4px; font-size: .62rem; }
.hero-coin-shell .coin-flags.on-coin { top: 0; right: 0; }

.catalog-coin-card.missing,
.timeline-coin.missing,
.explorer-mint-coin.missing,
.missing-series-coin.missing,
.set-primary-coin.missing,
.set-variety.missing {
  opacity: .34;
  filter: grayscale(.48) saturate(.42) brightness(.62);
  transition: opacity .18s ease, filter .18s ease;
}
.catalog-coin-card.missing:hover,
.timeline-coin.missing:hover,
.explorer-mint-coin.missing:hover,
.missing-series-coin.missing:hover { opacity: .68; filter: grayscale(.15) saturate(.75) brightness(.82); }

.uniform-year-control,
.year-picker a,
select[name="year"],
select[name="from_year"],
select[name="to_year"],
input[name="from_year"],
input[name="to_year"],
input[name="year"],
input[name="grid_year"],
input[name="edit_year"] {
  inline-size: 8rem;
  min-inline-size: 8rem;
  max-inline-size: 8rem;
  box-sizing: border-box;
}
.year-picker a { display: inline-grid; place-items: center; }

.value-country-stack {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 470px), 720px));
  align-items: start;
  justify-content: start;
  gap: 18px;
}
.value-country-card { width: 100%; max-width: 720px; }

.home-route-grid-simple { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-route-grid-simple .home-route-card { min-height: 180px; }
.home-collector-hero { margin-bottom: 0; }
.compact-summary-stats { display: flex; flex-wrap: wrap; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.compact-summary-stats div { min-width: 110px; padding: 14px 18px; background: rgba(8,28,30,.92); }
.compact-summary-stats dt { color: var(--muted); font-size: .62rem; }
.compact-summary-stats dd { margin: 3px 0 0; font-size: 1.35rem; font-weight: 900; }

.country-selector-body { display: grid; gap: 14px; }
.country-strip-wrap.with-europe-map .country-selector-body { grid-template-columns: minmax(0, 1fr) 290px; align-items: center; }
.europe-map-card { padding: 10px; border-left: 1px solid var(--line); }
.europe-map-card small { display: block; color: var(--muted); font-size: .58rem; line-height: 1.35; text-align: center; }
.europe-map { display: block; width: 100%; height: auto; max-height: 220px; }
.country-flag-link.map-highlight { border-color: var(--accent); background: rgba(199,125,75,.16); transform: translateY(-2px); }

.missing-overview-grid { display: grid; grid-template-columns: minmax(260px,.65fr) repeat(3,minmax(280px,1fr)); gap: 14px; margin: 18px 0 34px; align-items: stretch; }
.completion-donut-card,
.completion-breakdown-card { border: 1px solid var(--line); border-radius: 12px; background: rgba(8,28,30,.78); padding: 18px; }
.completion-donut-card { display: grid; place-items: center; gap: 18px; }
.completion-donut { --completion:0; width: 180px; aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; align-content: center; background: radial-gradient(circle at center, #092123 0 56%, transparent 57%), conic-gradient(var(--accent) calc(var(--completion) * 1%), rgba(55,83,87,.42) 0); box-shadow: inset 0 0 0 1px rgba(255,255,255,.06); }
.completion-donut strong { font-size: 2.3rem; }
.completion-donut span { color: var(--muted); font-size: .65rem; }
.completion-donut-card dl { width: 100%; display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); }
.completion-donut-card dl div { padding: 10px; background: #092123; text-align: center; }
.completion-donut-card dt { color: var(--muted); font-size: .58rem; }
.completion-donut-card dd { margin: 3px 0 0; font-weight: 900; }
.completion-breakdown-card { min-width: 0; }
.completion-breakdown-card header { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; margin-bottom: 12px; }
.completion-breakdown-card h2 { margin: 0; font-size: 1rem; }
.completion-breakdown-card header span { color: var(--muted); font-size: .56rem; }
.completion-bar-list { display: grid; gap: 8px; max-height: 420px; overflow: auto; padding-right: 5px; }
.completion-bar-row { display: grid; grid-template-columns: minmax(90px,1fr) minmax(70px,1.3fr) 38px; gap: 8px; align-items: center; }
.completion-bar-row > div:first-child { min-width: 0; display: flex; justify-content: space-between; gap: 6px; }
.completion-bar-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .62rem; }
.completion-bar-row span, .completion-bar-row b { color: var(--muted); font-size: .55rem; }
.completion-bar { height: 7px; border-radius: 99px; background: rgba(71,100,104,.38); overflow: hidden; }
.completion-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--accent),#e7b378); }
.missing-series-list { display: grid; gap: 16px; }
.missing-series-card { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: rgba(8,28,30,.76); }
.missing-series-card > header { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 15px 18px; border-bottom: 1px solid var(--line); }
.missing-series-card > header > div { display: flex; align-items: center; gap: 12px; }
.missing-series-card h2 { margin: 0; font-size: 1rem; }
.missing-series-card p { margin: 3px 0 0; color: var(--muted); font-size: .6rem; }
.missing-series-card > header a { color: var(--accent); font-size: .62rem; font-weight: 850; }
.missing-series-scroll { overflow-x: auto; }
.missing-series-grid { display: grid; grid-template-columns: 72px repeat(8, minmax(74px,1fr)) repeat(3,minmax(82px,1fr)); min-width: 1040px; gap: 1px; background: var(--line); }
.missing-series-grid > * { background: #092123; }
.missing-series-corner,.missing-series-colhead,.missing-series-mint { padding: 9px; font-size: .56rem; color: var(--muted); text-align: center; }
.missing-series-mint { display: grid; place-content: center; }
.missing-series-mint strong { color: var(--text); }
.missing-series-cell { min-height: 92px; padding: 7px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px; }
.missing-series-coin { position: relative; width: 58px; aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; overflow: visible; }
.missing-series-coin img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.missing-series-coin > b { position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%); font-size: .54rem; z-index: 9; }
.missing-series-coin.son { width: 52px; }
.catalogue-absent { color: rgba(174,195,198,.35); }

.year-admin-layout { display: grid; gap: 18px; }
.year-create-options { display: flex; flex-wrap: wrap; align-items: end; gap: 18px; margin: 14px 0; }
.year-create-grid-wrap { max-height: 470px; overflow: auto; }
.year-create-grid { width: 100%; min-width: 900px; border-collapse: collapse; font-size: .62rem; }
.year-create-grid th,.year-create-grid td { padding: 7px; border-bottom: 1px solid rgba(41,67,71,.55); text-align: center; }
.year-create-grid th:first-child { position: sticky; left: 0; z-index: 2; background: #092123; text-align: left; min-width: 180px; }
.matrix-choice { display: inline-grid; place-items: center; cursor: pointer; }
.matrix-choice input { position: absolute; opacity: 0; }
.matrix-choice span { width: 25px; height: 25px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 5px; color: transparent; }
.matrix-choice input:checked + span { color: #b8ebc4; border-color: #6fc083; background: rgba(84,161,104,.18); }
.son-count { width: 50px !important; min-width: 50px !important; }
.bulk-editor-filter { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 14px 0; }
.bulk-editor-filter fieldset { flex: 1 1 100%; border: 1px solid var(--line); padding: 10px; border-radius: 8px; }
.bulk-country-picker { display: flex; flex-wrap: wrap; gap: 5px; }
.bulk-country-picker label { display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px; border: 1px solid var(--line); border-radius: 5px; font-size: .56rem; }
.bulk-copy-toolbar { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 9px; border: 1px solid var(--line); background: #092123; }
.bulk-copy-toolbar span { color: var(--muted); font-size: .58rem; }
.bulk-copy-toolbar button { border: 1px solid var(--line); background: rgba(199,125,75,.08); color: var(--text); border-radius: 5px; padding: 5px 8px; font-size: .56rem; cursor: pointer; }
.bulk-editor-scroll { overflow: auto; max-height: 70vh; border: 1px solid var(--line); }
.bulk-editor-table { border-collapse: collapse; min-width: 2400px; font-size: .56rem; }
.bulk-editor-table th,.bulk-editor-table td { padding: 5px; border-right: 1px solid rgba(41,67,71,.45); border-bottom: 1px solid rgba(41,67,71,.45); vertical-align: top; }
.bulk-editor-table thead th { position: sticky; top: 0; z-index: 4; background: #0b2729; }
.bulk-editor-table tbody th { position: sticky; left: 0; z-index: 3; min-width: 160px; background: #092123; }
.bulk-editor-table input,.bulk-editor-table textarea { min-width: 110px; width: 100%; padding: 5px; font-size: .56rem; }
.bulk-editor-table textarea { min-width: 220px; resize: vertical; }
.bulk-editor-table td:nth-child(2) label { display: block; white-space: nowrap; }
.bulk-value-copied { outline: 2px solid var(--accent); }

.compact-catalogue-wrap { overflow-x: visible; }
.compact-catalogue-table { width: 100%; min-width: 0 !important; table-layout: fixed; font-size: .56rem; }
.compact-catalogue-table th,.compact-catalogue-table td { padding: 6px 5px; overflow: hidden; text-overflow: ellipsis; }
.compact-catalogue-table th:nth-child(1) { width: 4.5%; }
.compact-catalogue-table th:nth-child(2) { width: 27%; }
.compact-catalogue-table th:nth-child(3) { width: 9%; }
.compact-catalogue-table th:nth-child(4) { width: 10%; }
.compact-catalogue-table th:nth-child(5) { width: 6%; }
.compact-catalogue-table th:nth-child(6) { width: 17%; }
.compact-catalogue-table th:nth-child(7) { width: 7%; }
.compact-catalogue-table th:nth-child(8) { width: 8%; }
.compact-catalogue-table th:nth-child(9) { width: 11.5%; }
.compact-catalogue-table .catalogue-title-cell a { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 1250px) {
  .missing-overview-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .country-strip-wrap.with-europe-map .country-selector-body { grid-template-columns: 1fr; }
  .europe-map-card { border-left: 0; border-top: 1px solid var(--line); }
  .europe-map { max-height: 190px; }
}
@media (max-width: 900px) {
  .home-route-grid-simple { grid-template-columns: 1fr; }
  .missing-overview-grid { grid-template-columns: 1fr; }
  .completion-breakdown-card { max-height: none; }
  .compact-catalogue-wrap { overflow-x: auto; }
  .compact-catalogue-table { min-width: 850px !important; table-layout: auto; }
  .value-country-stack { grid-template-columns: 1fr; }
  .value-country-card { max-width: 100%; }
}
.year-picker a { inline-size: 4.7rem; min-inline-size: 4.7rem; max-inline-size: 4.7rem; }
.bulk-toolbar-spacer { flex: 1 1 auto; }
.bulk-year-picker,
.bulk-denomination-picker { display: flex; flex-wrap: wrap; gap: 5px; max-height: 132px; overflow: auto; }
.bulk-year-picker label,
.bulk-denomination-picker label { display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px; border: 1px solid var(--line); border-radius: 5px; font-size: .56rem; }
.bulk-editor-filter legend small { color: var(--muted); font-weight: 500; }
.bulk-editor-table { min-width: 2820px; }
.bulk-editor-table tr.has-data-conflict > * { background-color: rgba(194, 94, 73, .09); }
.bulk-editor-table tr.has-data-conflict > th:first-child::after { content: "Datenkonflikt"; display: block; margin-top: 4px; color: #efb09f; font-size: .5rem; }

/* v46: collected interface corrections. */

/* CSP-safe completeness graphics: native progress and SVG replace blocked inline styles. */
.completion-donut {
  position: relative;
  width: 180px;
  background: none;
  box-shadow: none;
}
.completion-donut svg { display: block; width: 100%; height: 100%; transform: rotate(-90deg); }
.completion-donut circle { fill: none; stroke-width: 30; }
.completion-donut-track { stroke: rgba(55,83,87,.42); }
.completion-donut-value { stroke: #d9a154; stroke-linecap: round; }
.completion-donut-label { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; }
.completion-donut-label strong,
.completion-donut-label span { display: block; }
.completion-bar,
.country-completion-card progress {
  width: 100%;
  height: 7px;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  appearance: none;
  background: rgba(71,100,104,.38);
}
.completion-bar::-webkit-progress-bar,
.country-completion-card progress::-webkit-progress-bar { border-radius: inherit; background: rgba(71,100,104,.38); }
.completion-bar::-webkit-progress-value,
.country-completion-card progress::-webkit-progress-value { border-radius: inherit; background: linear-gradient(90deg,var(--accent),#e7b378); }
.completion-bar::-moz-progress-bar,
.country-completion-card progress::-moz-progress-bar { border-radius: inherit; background: linear-gradient(90deg,var(--accent),#e7b378); }
.country-completion-card progress { display: block; margin-top: 10px; background: #183336; }
.country-completion-card progress::-webkit-progress-bar { background: #183336; }
.country-completion-card progress::-webkit-progress-value,
.country-completion-card progress::-moz-progress-bar { background: linear-gradient(90deg, var(--blue), var(--amber)); }

/* Missing state: the coin is strongly subdued; the surrounding information remains readable. */
.catalog-coin-card.missing { opacity: .92; filter: none; }
.catalog-coin-card.missing .catalog-main-coin,
.catalog-coin-card.missing .catalog-reverse-coin {
  opacity: .32;
  filter: grayscale(.48) saturate(.42) brightness(.62) drop-shadow(0 16px 14px rgba(0,0,0,.42));
  transition: opacity .18s ease, filter .18s ease;
}
.catalog-coin-card.missing .catalog-coin-body { opacity: .78; }
.catalog-coin-card.missing .collection-badge,
.catalog-coin-card.missing .coin-flags { opacity: 1; filter: none; }
.catalog-coin-card.missing:hover { opacity: 1; filter: none; }
.catalog-coin-card.missing:hover .catalog-main-coin,
.catalog-coin-card.missing:hover .catalog-reverse-coin { opacity: .5; filter: grayscale(.2) saturate(.7) brightness(.76) drop-shadow(0 16px 14px rgba(0,0,0,.42)); }
.timeline-coin.missing { opacity: .82; filter: none; }
.timeline-coin.missing > span { opacity: .34; filter: grayscale(.45) saturate(.45) brightness(.65); }
.timeline-coin.missing:hover { opacity: 1; filter: none; }
.timeline-coin.missing:hover > span { opacity: .56; filter: grayscale(.18) saturate(.75) brightness(.8); }

/* Commemorative cards keep 2-euro imagery at a consistent coin-sized maximum. */
.commemorative-grid .catalog-coin-visual { min-height: 205px; }
.commemorative-grid .catalog-main-coin { width: min(52%, 150px); max-width: 150px; }
.commemorative-grid .catalog-reverse-coin { width: 62px; right: 14px; bottom: 14px; }

/* The country selector uses two compact rows without horizontal scrolling. */
.country-strip {
  display: grid;
  grid-template-columns: repeat(13, minmax(0, 1fr));
  gap: 4px;
  overflow: visible;
  scrollbar-width: none;
}
.country-flag-link { width: 100%; min-width: 0; min-height: 46px; }
.country-flag-link span { font-size: clamp(1rem, 1.8vw, 1.28rem); }
.country-flag-link small { font-size: .48rem; }

/* Natural Earth country geometry, bundled locally and rendered as accessible SVG paths. */
.country-strip-wrap.with-europe-map .country-selector-body { grid-template-columns: minmax(0, 1fr) 330px; align-items: stretch; }
.europe-map-card { display: grid; align-content: center; padding: 8px 12px; overflow: hidden; }
.europe-map { width: 100%; max-height: 235px; }
.europe-map-country { vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.europe-map-country.background-country { fill: rgba(49,76,80,.34); stroke: rgba(140,163,166,.28); stroke-width: .7; }
.europe-map-country.euro-issuer { fill: rgba(91,124,128,.78); stroke: rgba(222,233,232,.58); stroke-width: .9; transition: fill .15s ease, stroke .15s ease, opacity .15s ease; }
.europe-map-marker { fill: rgba(91,124,128,.92); stroke: #e5efed; stroke-width: 1.4; vector-effect: non-scaling-stroke; transition: fill .15s ease, stroke .15s ease, transform .15s ease; transform-box: fill-box; transform-origin: center; }
.europe-map-link:hover .euro-issuer,
.europe-map-link:focus .euro-issuer,
.europe-map-link.map-highlight .euro-issuer,
.europe-map-link.active .euro-issuer,
.europe-map-link:hover .europe-map-marker,
.europe-map-link:focus .europe-map-marker,
.europe-map-link.map-highlight .europe-map-marker,
.europe-map-link.active .europe-map-marker { fill: var(--accent); stroke: #fff1de; }
.europe-map-link:hover .europe-map-marker,
.europe-map-link:focus .europe-map-marker,
.europe-map-link.map-highlight .europe-map-marker { transform: scale(1.28); }
.europe-map-link:focus { outline: none; }
.europe-map-card small { margin-top: 3px; }

/* Compact custom checkboxes in the year editor; the matrix keeps its own square control. */
.year-admin-layout input[type="checkbox"],
.bulk-editor-table input[type="checkbox"] {
  width: 15px !important;
  min-width: 15px !important;
  max-width: 15px !important;
  height: 15px !important;
  min-height: 15px !important;
  padding: 0 !important;
  border: 1px solid #557276;
  border-radius: 4px;
  appearance: none;
  background: #071d1f;
  vertical-align: middle;
  cursor: pointer;
}
.year-admin-layout input[type="checkbox"]:checked,
.bulk-editor-table input[type="checkbox"]:checked { border-color: #79ba8a; background: #79ba8a; box-shadow: inset 0 0 0 3px #0b292b; }
.year-admin-layout input[type="checkbox"]:focus-visible,
.bulk-editor-table input[type="checkbox"]:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.bulk-editor-table td:nth-child(2) label { display: flex; align-items: center; gap: 4px; min-height: 21px; }

/* One full-width country row in the denomination explorer. */
.value-country-stack { grid-template-columns: minmax(0, 1fr); }
.value-country-card { width: 100%; max-width: none; }

/* Slim illustrated banners inside the homepage route cards. */
.home-route-grid-simple .home-route-card { min-height: 180px; padding: 0; overflow: hidden; }
.home-route-banner { display: block; flex: 0 0 12px; height: 12px; overflow: hidden; border-bottom: 1px solid rgba(210,171,98,.22); }
.home-route-banner img { display: block; width: 100%; height: 100%; object-fit: cover; }
.home-route-content { display: flex; flex: 1; flex-direction: column; padding: 25px 28px 28px; }
.home-route-content strong { margin-top: auto; }
.home-route-copy { margin-top: 8px; color: var(--muted); font-size: .82rem; }

/* Coin detail images are clipped to the actual round coin format. */
.detail-photo img { border-radius: 50%; clip-path: circle(50% at 50% 50%); }

#jahrgangsauswahl,
#jahrgangsfilter { scroll-margin-top: 92px; }

@media (max-width: 1250px) {
  .country-strip-wrap.with-europe-map .country-selector-body { grid-template-columns: 1fr; }
  .europe-map-card { border-left: 0; border-top: 1px solid var(--line); }
}
@media (max-width: 620px) {
  .country-strip { grid-template-columns: repeat(13, minmax(0, 1fr)); gap: 2px; padding-inline: 5px; }
  .country-flag-link { min-height: 41px; border-radius: 5px; }
  .country-flag-link span { font-size: .94rem; }
  .country-flag-link small { font-size: .42rem; letter-spacing: 0; }
  .commemorative-grid .catalog-main-coin { width: min(48%, 142px); }
}

.matrix-choice input[type="checkbox"] { position: absolute; width: 1px !important; min-width: 1px !important; height: 1px !important; min-height: 1px !important; opacity: 0; }
.year-admin-layout .matrix-choice span {
  width: 17px;
  height: 17px;
  border-radius: 4px;
  font-size: .62rem;
  line-height: 1;
}

/* v47: compact controls, deterministic quality graphics and provenance-aware catalogue UI. */

/* The navigation cards use a calm metallic surface instead of illustrations. */
.home-route-banner {
  flex-basis: 18px;
  height: 18px;
  border-bottom-color: rgba(255, 224, 155, .28);
  background:
    linear-gradient(90deg, rgba(255,255,255,.12), transparent 28%, rgba(76,37,13,.16) 74%, rgba(255,255,255,.08)),
    linear-gradient(135deg, #8f5b22, #d2a34e 42%, #a66a29 72%, #e0b665);
  box-shadow: inset 0 1px rgba(255,255,255,.2), inset 0 -1px rgba(55,28,10,.28);
}
.home-route-banner img { display: none; }

/* Sondermünzen retain one horizontally scrollable country line at every width. */
.country-strip-wrap.single-line .country-strip {
  display: flex;
  grid-template-columns: none;
  flex-wrap: nowrap;
  gap: 4px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}
.country-strip-wrap.single-line .country-flag-link {
  flex: 0 0 47px;
  width: 47px;
  min-width: 47px;
  scroll-snap-align: start;
}

/* The selected country is visibly different from the copper hover state. */
.europe-map-link.active .euro-issuer,
.europe-map-link.active .europe-map-marker {
  fill: #d7a84f;
  stroke: #fff0bd;
  stroke-width: 1.8;
  filter: drop-shadow(0 0 4px rgba(224, 174, 83, .58));
}
.europe-map-link.map-highlight:not(.active) .euro-issuer,
.europe-map-link.map-highlight:not(.active) .europe-map-marker,
.europe-map-link:hover:not(.active) .euro-issuer,
.europe-map-link:hover:not(.active) .europe-map-marker,
.europe-map-link:focus:not(.active) .euro-issuer,
.europe-map-link:focus:not(.active) .europe-map-marker {
  fill: #b86f3f;
  stroke: #ffe0ca;
}
.europe-map-link.active .europe-map-marker { transform: scale(1.18); }

/* One compact catalogue/collection status pill, always kept on one line. */
.catalog-collection-summary {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  scrollbar-width: none;
}
.catalog-collection-summary::-webkit-scrollbar { display: none; }
.catalog-collection-summary > .catalog-summary-chip {
  display: inline-flex;
  white-space: nowrap;
  padding-inline: 9px;
  font-size: .57rem;
  line-height: 1.25;
}

/* Short labels keep the ownership selector in a single mobile row. */
.availability-toggle { flex-wrap: nowrap; }
.availability-toggle a { flex: 0 1 auto; text-align: center; }

/* Explicit SVG fills avoid browser-dependent native progress rendering. */
.completion-bar { display: block; width: 100%; height: 8px; overflow: visible; }
.completion-bar-track { fill: rgba(71,100,104,.42); }
.completion-bar-value { fill: #d9a154; }

/* Completion cards remain compact; long breakdowns scroll inside their card. */
.missing-overview-grid { grid-auto-rows: 298px; }
.completion-donut-card,
.completion-breakdown-card {
  height: 298px;
  min-height: 0;
  padding: 13px;
  overflow: hidden;
}
.completion-donut-card { gap: 10px; align-content: center; }
.completion-donut { width: 132px; }
.completion-donut strong { font-size: 1.8rem; }
.completion-donut-card dl div { padding: 8px 5px; }
.completion-breakdown-card { display: flex; flex-direction: column; }
.completion-breakdown-card header { flex: 0 0 auto; margin-bottom: 9px; }
.completion-bar-list {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.completion-bar-row { grid-template-columns: minmax(82px,1fr) minmax(64px,1.2fr) 34px; gap: 6px; }

/* Round clipping is applied directly to the raster, leaving no square image box. */
.detail-photo img {
  display: block;
  border-radius: 50%;
  clip-path: circle(49.5% at 50% 50%);
  background: transparent;
}

.quality-finding-summary { display: flex; flex-wrap: wrap; gap: 7px; margin: 14px 0; }
.quality-finding-summary span { padding: 6px 9px; border: 1px solid var(--line); border-radius: 999px; font-size: .62rem; font-weight: 850; }
.quality-finding-summary .error { color: #ffaaa3; border-color: rgba(255,107,116,.38); }
.quality-finding-summary .warning { color: #efbf83; border-color: rgba(229,155,102,.38); }
.quality-finding-summary .information { color: #a9cbd0; border-color: rgba(137,184,194,.32); }
.quality-finding-list { display: grid; gap: 7px; max-height: 520px; overflow: auto; }
.quality-finding-row { display: grid; grid-template-columns: 82px minmax(0,1fr) auto; gap: 10px; align-items: start; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: rgba(5,21,23,.58); }
.quality-finding-row > span { font-size: .56rem; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.quality-finding-row.error > span { color: #ffaaa3; }
.quality-finding-row.warning > span { color: #efbf83; }
.quality-finding-row.information > span { color: #a9cbd0; }
.quality-finding-row p { margin: 0; font-size: .68rem; }
.quality-finding-row small { display: block; margin-top: 3px; color: var(--muted); font-size: .57rem; }
.quality-finding-row a { color: var(--accent); font-size: .6rem; font-weight: 850; white-space: nowrap; }

@media (max-width: 900px) {
  .missing-overview-grid { grid-auto-rows: 276px; }
  .completion-donut-card,
  .completion-breakdown-card { height: 276px; }
}

@media (max-width: 780px) {
  .availability-control { width: 100%; }
  .availability-toggle { width: 100%; flex-wrap: nowrap; border-radius: 9px; }
  .availability-toggle a { flex: 1 1 0; min-width: 0; padding: 7px 5px; font-size: .6rem; }
  .catalog-collection-summary > .catalog-summary-chip { font-size: .54rem; }
}

@media (max-width: 620px) {
  .country-strip-wrap.single-line .country-strip { display: flex; padding-inline: 5px; }
  .country-strip-wrap.single-line .country-flag-link { flex-basis: 43px; width: 43px; min-width: 43px; }
  .missing-overview-grid { grid-auto-rows: 260px; }
  .completion-donut-card,
  .completion-breakdown-card { height: 260px; padding: 11px; }
  .completion-donut { width: 118px; }
  .quality-finding-row { grid-template-columns: 66px minmax(0,1fr); }
  .quality-finding-row a { grid-column: 2; }
}

/* v48: grouped issues, complete design sets, persistent filter position. */
.completion-donut svg { transform: none; }
.completion-donut-value { vector-effect: non-scaling-stroke; }

.missing-series-card > header .missing-series-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}
.missing-status-legend { display: inline-flex; gap: 5px; }
.missing-status-legend i,
.missing-series-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 18px;
  padding: 2px 6px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: .48rem;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}
.missing-status-legend .owned,
.missing-series-status.owned { color: #9ce5bd; border-color: rgba(72,207,154,.32); background: rgba(20,84,61,.28); }
.missing-status-legend .missing,
.missing-series-status.missing { color: #f0bd86; border-color: rgba(229,155,102,.36); background: rgba(108,65,19,.26); }
.missing-series-cell { min-height: 108px; }
.missing-series-coin,
.missing-series-coin.son {
  display: grid;
  width: 68px;
  aspect-ratio: auto;
  justify-items: center;
  gap: 5px;
  overflow: visible;
  border-radius: 0;
}
.missing-series-visual {
  position: relative;
  display: grid;
  width: 58px;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 50%;
}
.missing-series-coin.son .missing-series-visual { width: 52px; }
.missing-series-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }
.missing-series-coin > b { display: none; }
.missing-series-coin.missing { opacity: 1; filter: none; }
.missing-series-coin.missing .missing-series-visual { opacity: .34; filter: grayscale(.48) saturate(.42) brightness(.62); }
.missing-series-coin.missing:hover { opacity: 1; filter: none; }
.missing-series-coin.missing:hover .missing-series-visual { opacity: .68; filter: grayscale(.15) saturate(.75) brightness(.82); }

.country-design-grid { grid-template-columns: 1fr; }
.design-set-scroll { overflow-x: auto; padding-bottom: 5px; scrollbar-width: thin; }
.design-set-row {
  display: grid;
  grid-template-columns: repeat(8, minmax(76px, 1fr));
  gap: 8px;
  min-width: 720px;
}
.design-set-coin { display: grid; min-width: 0; justify-items: center; gap: 6px; padding: 8px 5px; border: 1px solid rgba(156,172,170,.14); border-radius: 9px; background: rgba(0,0,0,.1); }
.design-set-coin:hover { border-color: rgba(210,171,98,.44); background: rgba(199,125,75,.08); }
.design-set-coin.unavailable { opacity: .3; }
.design-set-visual { position: relative; display: grid; width: min(72px, 100%); aspect-ratio: 1; place-items: center; border-radius: 50%; }
.design-set-visual > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; border-radius: 50%; filter: drop-shadow(0 8px 8px rgba(0,0,0,.36)); }
.design-set-reverse { position: absolute; z-index: 2; right: -2px; bottom: -2px; display: grid; width: 34%; aspect-ratio: 1; overflow: hidden; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; background: #092123; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.design-set-reverse img { width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }
.design-set-coin > strong { color: var(--muted); font-size: .58rem; }
.country-all-year-sets { display: grid; gap: 18px; }
.year-chip-all,
.year-picker-all-link { color: var(--accent) !important; border-color: rgba(210,171,98,.35) !important; }

.commemorative-group-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.catalog-coin-card.partly-owned { border-color: rgba(210,171,98,.3); }
.collection-badge.partial { color: #f1d49b; border-color: rgba(210,171,98,.38); }
.commemorative-group-facts { grid-template-columns: repeat(3, minmax(0,1fr)); }
.commemorative-variant-panel { margin-top: 13px; border-top: 1px solid var(--line); padding-top: 12px; }
.commemorative-variant-panel > header { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.commemorative-variant-panel > header strong { font-size: .68rem; }
.commemorative-variant-panel > header span { color: var(--muted); font-size: .53rem; }
.commemorative-variant-list { display: grid; gap: 5px; max-height: 190px; overflow-y: auto; padding-right: 3px; }
.commemorative-variant-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 7px; padding: 7px; border: 1px solid rgba(156,172,170,.13); border-radius: 8px; background: rgba(4,18,20,.5); }
.commemorative-variant-row > a { display: grid; min-width: 0; }
.commemorative-variant-row > a strong { overflow: hidden; font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.commemorative-variant-row > a small { color: var(--muted); font-size: .52rem; }
.variant-owned-state { font-size: .52rem; font-weight: 850; }
.commemorative-variant-row.owned .variant-owned-state { color: #9ce5bd; }
.commemorative-variant-row.missing .variant-owned-state { color: #f0bd86; }
.commemorative-variant-row .collection-toggle-form.compact { margin: 0; }
.commemorative-table-variants { display: grid; gap: 5px; min-width: 300px; }
.commemorative-table-variants > div { display: grid; grid-template-columns: minmax(110px,1fr) auto auto; align-items: center; gap: 8px; padding: 5px 0; border-bottom: 1px solid rgba(156,172,170,.12); }
.commemorative-table-variants > div:last-child { border-bottom: 0; }
.commemorative-table-variants a { display: grid; }
.commemorative-table-variants small { color: var(--muted); font-size: .55rem; }

@media (max-width: 1100px) {
  .commemorative-group-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .missing-series-card > header { align-items: flex-start; }
  .missing-series-card > header .missing-series-header-actions { align-items: flex-end; flex-direction: column-reverse; gap: 6px; }
  .commemorative-group-grid { grid-template-columns: 1fr; }
}

/* v49: geprüfte Katalogveröffentlichung und EURik-Konfliktprüfung */
.catalogue-candidate-panel,
.catalogue-backup-panel,
.admin-eurik-conflicts { grid-column: 1 / -1; }
.catalogue-candidate-list,
.eurik-conflict-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.catalogue-candidate-card,
.eurik-conflict-card { padding: 14px; border: 1px solid var(--line); border-radius: 9px; background: rgba(3, 18, 20, .52); }
.catalogue-candidate-card.ready { border-color: rgba(97, 188, 139, .35); }
.catalogue-candidate-card.blocked { border-color: rgba(231, 129, 116, .38); }
.catalogue-candidate-card > header,
.eurik-conflict-card > header,
.catalogue-backup-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.catalogue-candidate-card > header span,
.catalogue-backup-row > span,
.eurik-conflict-source { display: grid; min-width: 0; gap: 3px; }
.catalogue-candidate-card > header small,
.catalogue-backup-row small,
.eurik-conflict-source small { color: var(--muted); font-size: .54rem; overflow-wrap: anywhere; }
.catalogue-candidate-card > header b { padding: 4px 7px; border: 1px solid currentColor; border-radius: 999px; color: #9ce5bd; font-size: .52rem; text-transform: uppercase; }
.catalogue-candidate-card.blocked > header b { color: #f2a49a; }
.candidate-diff { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
.candidate-diff span { padding: 5px 7px; border: 1px solid rgba(156, 172, 170, .16); border-radius: 999px; color: var(--muted); background: rgba(0, 0, 0, .12); font-size: .55rem; }
.candidate-errors { margin: 10px 0; padding: 10px 10px 10px 27px; border: 1px solid rgba(231, 129, 116, .28); border-radius: 7px; color: #f2b2aa; background: rgba(100, 27, 20, .17); font-size: .62rem; }
.candidate-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.candidate-actions form { margin: 0; }
.catalogue-backup-row { padding: 10px 0; border-bottom: 1px solid rgba(156, 172, 170, .13); }
.catalogue-backup-row:last-child { border-bottom: 0; }
.eurik-conflict-card { display: grid; gap: 12px; }
.eurik-conflict-card > header strong { font-size: .72rem; }
.eurik-conflict-source { padding: 9px; border: 1px solid rgba(156, 172, 170, .14); border-radius: 7px; background: rgba(0, 0, 0, .11); }
.eurik-conflict-card form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px; }
.eurik-conflict-card select { width: 100%; min-height: 38px; }

@media (max-width: 900px) {
  .catalogue-candidate-list,
  .eurik-conflict-list { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .catalogue-candidate-card > header,
  .eurik-conflict-card > header,
  .catalogue-backup-row { align-items: flex-start; flex-direction: column; }
  .eurik-conflict-card form { grid-template-columns: 1fr; }
}

/* v50: feldbezogener Importschutz und Konfliktprüfung */
.field-lock-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin-top: 10px;
}
.compact-check {
  display: inline-flex;
  align-items: flex-start;
  gap: 7px;
  min-width: 0;
  color: var(--muted);
  font-size: .59rem;
  line-height: 1.35;
}
.compact-check input {
  flex: 0 0 auto;
  margin-top: 1px;
}
.field-conflict-review { border-color: rgba(210, 171, 98, .30); }
.field-conflict-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.field-conflict-card {
  display: grid;
  gap: 9px;
  padding: 12px;
  border: 1px solid rgba(210, 171, 98, .24);
  border-radius: 9px;
  background: rgba(3, 18, 20, .58);
}
.field-conflict-card > header { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.field-conflict-card > header span { display: grid; gap: 2px; min-width: 0; }
.field-conflict-card > header small { color: var(--muted); font-size: .52rem; overflow-wrap: anywhere; }
.field-conflict-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.field-conflict-values p {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 8px;
  border: 1px solid rgba(156, 172, 170, .13);
  border-radius: 7px;
  background: rgba(0, 0, 0, .12);
  overflow-wrap: anywhere;
}
.field-conflict-values small { color: var(--muted); font-size: .5rem; text-transform: uppercase; letter-spacing: .05em; }
.field-conflict-values span { font-size: .62rem; }
.inline-note.warning {
  border-color: rgba(210, 171, 98, .34);
  color: #f1d49b;
  background: rgba(104, 74, 22, .18);
}
.catalogue-candidate-card.review-required { border-color: rgba(210, 171, 98, .38); }
.catalogue-candidate-card.review-required > header b { color: #f1d49b; }

@media (max-width: 900px) {
  .field-lock-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .field-conflict-list { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .field-lock-grid,
  .field-conflict-values { grid-template-columns: 1fr; }
  .candidate-actions { align-items: stretch; flex-direction: column; }
  .candidate-actions > * { width: 100%; }
}

/* v51: zentraler Katalog-Komplettierer */
.catalogue-completion-workspace { grid-template-columns: 1fr; }
.catalogue-completer-panel { padding: 20px; }
.completion-safety-badge {
  align-self: flex-start;
  padding: 6px 9px;
  border: 1px solid rgba(97,188,139,.32);
  border-radius: 999px;
  color: #9ce5bd;
  background: rgba(40,103,72,.15);
  font-size: .55rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.catalogue-completer-form { display: grid; gap: 14px; margin-top: 16px; }
.completion-section {
  min-width: 0;
  margin: 0;
  padding: 14px;
  border: 1px solid rgba(156,172,170,.16);
  border-radius: 11px;
  background: rgba(3,18,20,.36);
}
.completion-section legend {
  padding: 0 7px;
  color: var(--text);
  font-size: .68rem;
  font-weight: 900;
}
.completion-scope-options,
.completion-card-grid,
.completion-source-grid { display: grid; gap: 8px; }
.completion-scope-options { grid-template-columns: repeat(2, minmax(0,1fr)); margin-bottom: 12px; }
.completion-card-grid { grid-template-columns: repeat(5, minmax(0,1fr)); }
.completion-source-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.completion-choice {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(156,172,170,.16);
  border-radius: 9px;
  background: rgba(0,0,0,.10);
  cursor: pointer;
}
.completion-choice:hover { border-color: rgba(217,161,84,.36); }
.completion-choice:has(input:checked) {
  border-color: rgba(217,161,84,.55);
  background: rgba(126,84,25,.16);
  box-shadow: inset 0 0 0 1px rgba(217,161,84,.08);
}
.completion-choice.prominent:has(input:checked) { border-color: rgba(97,188,139,.48); background: rgba(40,103,72,.12); }
.completion-choice.disabled { opacity: .48; cursor: not-allowed; }
.completion-choice input { flex: 0 0 auto; margin-top: 2px; }
.completion-choice span { display: grid; gap: 3px; min-width: 0; }
.completion-choice strong { font-size: .66rem; line-height: 1.3; }
.completion-choice small { color: var(--muted); font-size: .54rem; line-height: 1.4; }
.completion-filter-grid {
  display: grid;
  grid-template-columns: minmax(150px,1.2fr) minmax(170px,1.3fr) repeat(3,minmax(105px,.7fr));
  gap: 8px;
}
.completion-filter-grid label { display: grid; gap: 5px; min-width: 0; }
.completion-filter-grid label > span { color: var(--muted); font-size: .55rem; font-weight: 800; }
.completion-rights { margin-top: 10px; }
.completion-preview {
  display: grid;
  grid-template-columns: 1.4fr repeat(2,1fr);
  gap: 8px;
}
.completion-preview > div {
  display: grid;
  gap: 3px;
  padding: 13px;
  border: 1px solid rgba(156,172,170,.16);
  border-radius: 10px;
  background: rgba(8,28,30,.72);
}
.completion-preview span { color: var(--muted); font-size: .54rem; text-transform: uppercase; letter-spacing: .05em; }
.completion-preview strong { font-size: 1.45rem; }
.completion-preview small { color: var(--muted); font-size: .54rem; }
.completion-actions { display: flex; justify-content: flex-end; gap: 8px; }
.completion-progress {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid rgba(217,161,84,.28);
  border-radius: 10px;
  background: rgba(126,84,25,.10);
}
.completion-progress progress { width: 100%; height: 8px; }
.completion-progress > strong { font-size: .64rem; }
.completion-source-status { display: grid; gap: 5px; }
.completion-source-status span {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 8px;
  border-radius: 7px;
  background: rgba(0,0,0,.12);
  color: var(--muted);
  font-size: .55rem;
}
.completion-source-status span.done { color: #9ce5bd; }
.completion-source-status span.error { color: #f2a49a; }
.completion-advanced-panel { padding: 0; overflow: hidden; }
.completion-advanced-panel > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 17px;
  cursor: pointer;
  list-style: none;
}
.completion-advanced-panel > summary::-webkit-details-marker { display: none; }
.completion-advanced-panel > summary span { display: grid; gap: 3px; }
.completion-advanced-panel > summary strong { font-size: .72rem; }
.completion-advanced-panel > summary small { color: var(--muted); font-size: .55rem; }
.completion-advanced-panel > summary::after { content: '+'; font-size: 1.2rem; color: var(--accent); }
.completion-advanced-panel[open] > summary::after { content: '−'; }
.completion-advanced-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 14px;
  padding: 0 17px 17px;
  border-top: 1px solid rgba(156,172,170,.12);
}
.completion-advanced-grid > section { min-width: 0; padding-top: 15px; }

@media (max-width: 1100px) {
  .completion-card-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .completion-filter-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .completion-scope-options,
  .completion-source-grid,
  .completion-preview,
  .completion-advanced-grid { grid-template-columns: 1fr; }
  .completion-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .completion-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 520px) {
  .catalogue-completer-panel { padding: 13px; }
  .completion-card-grid,
  .completion-filter-grid { grid-template-columns: 1fr; }
  .completion-actions { align-items: stretch; flex-direction: column; }
  .completion-actions button { width: 100%; }
}

/* v52: mobile navigation, reliable progress ring and compact explorer controls. */
.site-header nav .mobile-login-link { display: none; }

.completion-donut-value {
  transform-origin: 180px 180px;
  transition: stroke-dasharray .25s ease;
}

.value-summary-strip {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
  align-items: center;
  gap: 5px;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  scrollbar-width: none;
}
.value-summary-strip::-webkit-scrollbar { display: none; }
.value-summary-strip .summary-chips,
.value-summary-strip .catalog-collection-summary {
  display: inline-flex;
  flex: 0 0 auto;
  width: auto;
  flex-wrap: nowrap;
  overflow: visible;
  white-space: nowrap;
}
.value-summary-strip .summary-chips > *,
.value-summary-strip .catalog-summary-chip { flex: 0 0 auto; }

@media (max-width: 900px) {
  .site-header nav .mobile-login-link {
    display: flex;
    margin-top: 4px;
    padding: 10px 12px;
    border: 1px solid rgba(210, 171, 98, .42);
    border-radius: 8px;
    color: #e8cc91;
    justify-content: center;
  }
}

@media (max-width: 620px) {
  .explorer-filter-line.commemorative-filter-line {
    grid-template-columns: 72px minmax(0, 1fr) 68px;
    gap: 6px;
    padding: 8px;
    align-items: end;
  }
  .commemorative-filter-line .wide-filter {
    min-width: 0;
  }
  .commemorative-filter-line select,
  .commemorative-filter-line input {
    min-width: 0;
    min-height: 34px;
    padding: 6px 7px;
    font-size: .68rem;
  }
  .commemorative-filter-line .filter-button {
    min-height: 34px;
    padding: 6px 7px;
    font-size: .62rem;
  }
  .commemorative-filter-line .reset-link {
    grid-column: 1 / -1;
    justify-self: end;
    font-size: .62rem;
  }

  .explorer-filter-line.value-filter-line {
    grid-template-columns: minmax(74px, 1fr) 58px 58px 66px;
    gap: 5px;
    padding: 8px;
    align-items: end;
  }
  .value-filter-line label { min-width: 0; }
  .value-filter-line select {
    min-width: 0;
    min-height: 34px;
    padding: 5px 4px;
    font-size: .62rem;
    text-overflow: ellipsis;
  }
  .value-filter-line .filter-button {
    min-height: 34px;
    padding: 6px 5px;
    font-size: .6rem;
  }

  .value-summary-toolbar { align-items: stretch; }
  .value-summary-strip { order: -1; width: 100%; }
  .value-summary-strip .summary-chips { gap: 5px; }
  .value-summary-strip .summary-chips > *,
  .value-summary-strip .catalog-summary-chip {
    padding: 5px 7px;
    font-size: .52rem;
  }
}

@media (max-width: 360px) {
  .explorer-filter-line.commemorative-filter-line {
    grid-template-columns: 64px minmax(0, 1fr) 62px;
    gap: 4px;
    padding: 7px;
  }
  .explorer-filter-line.value-filter-line {
    grid-template-columns: minmax(64px, 1fr) 53px 53px 59px;
    gap: 4px;
    padding: 7px;
  }
  .value-filter-line .filter-button,
  .commemorative-filter-line .filter-button { font-size: .56rem; }
}

@media (max-width: 620px) {
  .value-filter-line select {
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap;
  }
}

@media (max-width: 620px) {
  .explorer-filter-line.value-filter-line { overflow: hidden; }
}

@media (max-width: 620px) {
  .value-filter-line label:nth-of-type(2) select,
  .value-filter-line label:nth-of-type(3) select {
    appearance: none;
    background-image: none;
  }
}


/* v53: robust mobile completion controls and explicit SVG donut progress. */
.completion-choice > input[type="radio"],
.completion-choice > input[type="checkbox"] {
  flex: 0 0 18px;
  width: 18px;
  min-width: 18px;
  max-width: 18px;
  height: 18px;
  min-height: 18px;
  max-height: 18px;
  margin: 1px 0 0;
  padding: 0;
  border-radius: 3px;
  accent-color: #d9a154;
  box-shadow: none;
}
.completion-choice > input[type="radio"] { border-radius: 50%; }
.completion-choice > span {
  flex: 1 1 auto;
  width: auto;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.completion-donut-value {
  vector-effect: none;
  transition: stroke-dashoffset .25s ease;
}

@media (max-width: 760px) {
  .completion-card-grid { grid-template-columns: 1fr; }
  .completion-choice {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: start;
    width: 100%;
    overflow: hidden;
  }
  .completion-choice > input[type="radio"],
  .completion-choice > input[type="checkbox"] { grid-column: 1; }
  .completion-choice > span { grid-column: 2; }
}

@media (max-width: 520px) {
  .catalogue-completer-panel .admin-panel-title {
    align-items: flex-start;
    gap: 9px;
  }
  .completion-section { padding: 11px; }
  .completion-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .completion-filter-grid label:nth-child(1),
  .completion-filter-grid label:nth-child(2),
  .completion-filter-grid label:nth-child(5) { grid-column: 1 / -1; }
}

/* v54: source credentials, OpenNumismat confirmation card and print checklist. */
.collection-grid-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .75rem;
  flex-wrap: wrap;
}

.completion-source-card {
  display: grid;
  grid-template-rows: max-content max-content;
  align-content: start;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(156,172,170,.16);
  border-radius: 9px;
  background: rgba(0,0,0,.10);
}
.completion-source-card:has(> .completion-choice input:checked) {
  border-color: rgba(217,161,84,.55);
  background: rgba(126,84,25,.16);
  box-shadow: inset 0 0 0 1px rgba(217,161,84,.08);
}
.completion-source-card.disabled { opacity: .58; }
.completion-source-card > .completion-choice {
  min-height: 0;
  height: auto;
  align-self: start;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.completion-source-card > .completion-choice:has(input:checked) {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}
.completion-source-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 11px 10px;
  border-top: 1px solid rgba(156,172,170,.13);
  color: var(--muted);
  font-size: .53rem;
  line-height: 1.35;
}
.completion-source-meta code {
  color: var(--text);
  font-size: .55rem;
  letter-spacing: .04em;
}
.completion-source-meta.configured { color: #9bc8a8; }
.completion-source-meta.missing { color: #d9b079; }
.completion-source-meta a { flex: 0 0 auto; font-weight: 800; }
.completion-source-card .completion-rights {
  position: relative;
  z-index: 1;
  align-self: start;
  margin: 0 10px 10px;
  padding: 9px;
  border-radius: 7px;
  font-size: .54rem;
  line-height: 1.35;
}
.completion-source-card .completion-rights[hidden] { display: none; }

.integration-settings-panel { margin-top: 16px; }
.integration-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-size: .58rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.integration-status.configured { border-color: rgba(111,195,133,.45); color: #a9e6b8; background: rgba(91,166,111,.10); }
.integration-status.missing { border-color: rgba(217,161,84,.38); color: #e3bb83; background: rgba(126,84,25,.10); }
.integration-key-grid {
  display: grid;
  grid-template-columns: minmax(220px,.8fr) minmax(280px,1.2fr);
  gap: 12px;
  margin-top: 12px;
}
.integration-key-grid > label,
.integration-current-key {
  display: grid;
  align-content: start;
  gap: 6px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: rgba(0,0,0,.10);
}
.integration-key-grid span,
.integration-key-grid label > span { color: var(--muted); font-size: .58rem; font-weight: 800; }
.integration-current-key strong { overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .86rem; letter-spacing: .06em; }
.integration-key-grid small { color: var(--muted); font-size: .55rem; line-height: 1.45; }
.integration-remove-key { margin-top: 12px; }

@media (max-width: 760px) {
  .collection-grid-tools { align-items: flex-end; flex-direction: column; gap: .45rem; }
  .completion-source-meta { align-items: flex-start; flex-direction: column; }
  .integration-key-grid { grid-template-columns: 1fr; }
}

.checkbox-row {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-width: 0;
}
.checkbox-row > input[type="checkbox"] {
  flex: 0 0 18px;
  width: 18px;
  min-width: 18px;
  max-width: 18px;
  height: 18px;
  min-height: 18px;
  max-height: 18px;
  margin: 1px 0 0;
  padding: 0;
  accent-color: #d9a154;
}
.checkbox-row > span { min-width: 0; overflow-wrap: anywhere; }


/* v55: durable importer recovery and always-visible OpenNumismat rights acknowledgement. */
.completion-source-card .completion-rights.inactive {
  opacity: .48;
  filter: grayscale(.35);
}
.completion-source-card .completion-rights.inactive input { cursor: not-allowed; }
.catalogue-candidate-card.interrupted,
.catalogue-candidate-card.staging,
.catalogue-candidate-card.preparing {
  border-color: rgba(217,161,84,.45);
  background: rgba(126,84,25,.10);
}
.catalogue-candidate-card.interrupted > header b,
.catalogue-candidate-card.staging > header b,
.catalogue-candidate-card.preparing > header b { color: #e3bb83; }
.candidate-diff.stage-progress { grid-template-columns: repeat(3,minmax(0,1fr)); }
@media (max-width: 620px) {
  .candidate-diff.stage-progress { grid-template-columns: 1fr; }
}
