:root {
  color-scheme: light;
  --ink: #17191d;
  --ink-soft: #30343a;
  --muted: #70757d;
  --line: #e2e5e9;
  --canvas: #f4f5f7;
  --surface: #ffffff;
  --surface-soft: #f8f9fa;
  --accent: #ad252c;
  --accent-dark: #8e171f;
  --accent-soft: #f8e9ea;
  --gold: #b99a5d;
  --sidebar: #111318;
  --sidebar-soft: #1c1f26;
  --shadow-sm: 0 6px 18px rgb(22 27 34 / 6%);
  --shadow-lg: 0 28px 80px rgb(7 10 14 / 22%);
  --radius-sm: 8px;
  --radius: 14px;
  --radius-lg: 22px;
  font-family: Inter, "Hiragino Sans", "Yu Gothic", system-ui, -apple-system, sans-serif;
}

* { box-sizing: border-box; }
html { max-width: 100%; overflow-x: hidden; scroll-behavior: smooth; }
html.no-smooth-scroll { scroll-behavior: auto; }
body { max-width: 100%; margin: 0; overflow-x: hidden; color: var(--ink); background: var(--canvas); -webkit-font-smoothing: antialiased; }
[hidden] { display: none !important; }
button, input, select { font: inherit; }
button, a { touch-action: manipulation; }
button { color: inherit; }
img { max-width: 100%; }
a { color: inherit; }
svg { display: block; }
:focus-visible { outline: 3px solid rgb(173 37 44 / 28%); outline-offset: 3px; }

.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 1000; padding: .75rem 1rem; border-radius: 8px; color: white; background: var(--accent); text-decoration: none; }
.skip-link:focus { top: 1rem; }
body:not(.authenticated) .skip-app, body.authenticated .skip-lp { display: none; }

.toast { position: fixed; top: 1rem; left: 50%; z-index: 1000; width: max-content; max-width: calc(100vw - 2rem); transform: translateX(-50%); padding: .85rem 1.15rem; border: 1px solid rgb(255 255 255 / 15%); border-radius: 999px; color: white; background: rgb(24 27 32 / 94%); box-shadow: 0 12px 34px rgb(0 0 0 / 25%); font-size: .84rem; backdrop-filter: blur(14px); }
.toast[data-kind="error"] { background: rgb(129 24 31 / 96%); }
.toast[data-kind="success"] { background: rgb(37 82 63 / 96%); }

.logo { display: inline-flex; align-items: center; gap: .72rem; text-decoration: none; }
.logo-symbol { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: .65rem; font-weight: 800; letter-spacing: -.03em; }
.logo b { display: block; font-size: 1.3rem; line-height: 1; letter-spacing: -.025em; }
.logo small { display: block; margin-top: .28rem; font-size: .57rem; font-weight: 600; letter-spacing: .16em; opacity: .62; }
.logo-light { color: white; }
.logo-dark { color: white; }
.logo-dialog { color: var(--ink); }

.button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: .7rem 1rem; border: 1px solid transparent; border-radius: var(--radius-sm); text-decoration: none; font-size: .78rem; font-weight: 750; cursor: pointer; transition: transform .18s ease, background .18s ease, border-color .18s ease, opacity .18s ease; }
.button:hover:not(:disabled) { transform: translateY(-1px); }
.button:disabled, .button.disabled, .disabled { opacity: .42; cursor: not-allowed; }
.button-accent { color: white; background: var(--accent); border-color: var(--accent); }
.button-accent:hover:not(:disabled) { background: var(--accent-dark); border-color: var(--accent-dark); }
.button-quiet { color: white; background: rgb(255 255 255 / 8%); border-color: rgb(255 255 255 / 22%); backdrop-filter: blur(12px); }
.button-quiet:hover { background: rgb(255 255 255 / 14%); }
.button-secondary { color: var(--ink-soft); background: white; border-color: var(--line); }
.button-secondary:hover { border-color: #b7bbc2; }
.button-dark { color: white; background: var(--ink); border-color: var(--ink); }
.button-wide { width: 100%; }

/* Logged-out landing page */
.landing { width: 100%; max-width: 100vw; min-height: 100svh; background: #eeece6; }
.lp-hero { position: relative; min-height: 100svh; overflow: hidden; color: white; background: #080a0d; isolation: isolate; }
.lp-backdrop { position: absolute; inset: 0; z-index: -2; background-image: linear-gradient(90deg, rgb(5 7 10 / 92%) 0%, rgb(5 7 10 / 72%) 42%, rgb(5 7 10 / 24%) 72%, rgb(5 7 10 / 56%) 100%), linear-gradient(0deg, rgb(5 7 10 / 88%) 0%, transparent 38%), url("../assets/hero-commemorative-coins.png"); background-position: center, center, center 46%; background-size: cover; filter: saturate(.7) contrast(1.08); transform: scale(1.015); }
.lp-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(circle at 50% 52%, transparent 0 20%, rgb(4 6 8 / 22%) 58%, rgb(4 6 8 / 62%) 100%); pointer-events: none; }
.lp-header { position: fixed; inset: 0 0 auto; z-index: 40; width: 100%; max-width: 100vw; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1.5rem; padding: 1rem clamp(1.25rem, 4vw, 4.5rem); border-bottom: 1px solid rgb(255 255 255 / 10%); background: rgb(8 10 13 / 88%); box-shadow: 0 8px 28px rgb(0 0 0 / 12%); backdrop-filter: blur(16px); }
.lp-tabs { width: 100%; min-width: 0; display: flex; align-items: center; justify-content: center; gap: .25rem; }
.lp-tabs a { min-width: 0; min-height: 40px; display: inline-flex; align-items: center; padding: .55rem .85rem; border-radius: 8px; color: rgb(255 255 255 / 70%); font-size: .68rem; font-weight: 750; text-decoration: none; white-space: nowrap; transition: color .18s ease, background .18s ease; }
.lp-tabs a:hover, .lp-tabs a:focus-visible, .lp-tabs a[aria-current="location"] { color: white; background: rgb(255 255 255 / 10%); }
.lp-tabs .external-tab { gap: .32rem; color: #d9c28f; }
.lp-actions { display: flex; align-items: center; gap: .7rem; }
.lp-content { min-height: 100svh; display: flex; max-width: 1200px; margin: 0 auto; align-items: center; justify-content: center; flex-direction: column; padding: 8rem 1.5rem 7rem; text-align: center; }
.lp-hero-brand { display: inline-flex; align-items: center; gap: .8rem; margin-bottom: .8rem; color: #f3eee3; font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em; text-shadow: 0 4px 22px rgb(0 0 0 / 42%); }
.lp-hero-brand img { width: 52px; height: 52px; filter: drop-shadow(0 8px 18px rgb(0 0 0 / 34%)); }
.lp-kicker { margin: 0 0 1.2rem; color: #d7bd85; font-size: .7rem; font-weight: 800; letter-spacing: .22em; }
.lp-content h1 { margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(2rem, 5vw, 4.4rem); font-weight: 500; line-height: 1.3; letter-spacing: .065em; white-space: nowrap; text-shadow: 0 5px 30px rgb(0 0 0 / 36%); }
.lp-lead { margin: 1.5rem 0 2.25rem; color: rgb(255 255 255 / 78%); font-size: clamp(.92rem, 1.5vw, 1.12rem); line-height: 2; }
.lp-register-cta { width: 200px; min-height: 56px; justify-content: center; border-radius: 9px; box-shadow: 0 18px 40px rgb(0 0 0 / 28%); font-size: .88rem; }
.catalog-search svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.lp-footer { position: absolute; inset: auto clamp(1.25rem, 4vw, 4.5rem) 1.5rem; display: flex; justify-content: space-between; color: rgb(255 255 255 / 42%); font-size: .65rem; letter-spacing: .05em; }

.product-tour { padding: 3.25rem clamp(1rem, 5vw, 5.5rem); scroll-margin-top: 84px; background: #f6f4ee; }
.product-tour-heading { max-width: 760px; margin: 0 auto 1.6rem; text-align: center; }.product-tour-heading h2 { margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.8rem, 4vw, 3rem); font-weight: 600; }.product-tour-heading > p:last-child { color: var(--muted); font-size: .72rem; line-height: 1.9; }
.product-tour-flow { max-width: 850px; display: flex; align-items: center; justify-content: center; gap: .8rem; margin: 0 auto 1.5rem; padding: .75rem 1rem; border: 1px solid #d9d4c7; border-radius: 999px; background: white; }.product-tour-flow span { display: flex; align-items: center; gap: .45rem; font-size: .66rem; font-weight: 750; }.product-tour-flow b { color: var(--accent); font-size: .54rem; }.product-tour-flow i { color: #a3a098; font-style: normal; }
.product-tour-grid { max-width: 1250px; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: auto; }.product-tour-grid > article { min-width: 0; display: grid; grid-template-columns: minmax(0, .9fr) minmax(220px, 1.1fr); align-items: center; gap: 1rem; padding: 1.15rem; overflow: hidden; border: 1px solid #dcd8ce; border-radius: 16px; background: rgb(255 255 255 / 78%); box-shadow: var(--shadow-sm); }.tour-copy { min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: .65rem; }.tour-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; color: white; background: var(--ink); font-weight: 850; }.tour-copy h3 { margin: .15rem 0 .45rem; font-size: .82rem; }.tour-copy p { margin: 0; color: var(--muted); font-size: .61rem; line-height: 1.75; }
.tour-screen { min-height: 125px; padding: .85rem; border: 1px solid #dfe2e6; border-radius: 12px; background: #f4f5f7; box-shadow: 0 10px 30px rgb(17 21 26 / 9%); }.tour-search { display: block; padding: .55rem .7rem; border: 1px solid #d1d5da; border-radius: 7px; color: #4f545b; background: white; font-size: .58rem; }.tour-search-screen > div { display: flex; align-items: center; gap: .7rem; margin-top: .65rem; }.tour-search-screen img { width: 84px; height: 52px; object-fit: contain; border-radius: 5px; background: white; }.tour-screen b { display: block; font-size: .62rem; }.tour-screen small { display: block; margin-top: .25rem; color: var(--muted); font-size: .51rem; }.tour-register-screen { display: grid; align-content: center; gap: .6rem; }.tour-register-screen button { min-height: 40px; border: 1px solid #d5d8dc; border-radius: 8px; background: white; font-size: .62rem; font-weight: 750; pointer-events: none; }.tour-register-screen button:last-child { color: #8a6720; border-color: #ddc997; background: #fffaf0; }.tour-dashboard-screen { display: grid; align-content: center; gap: .7rem; }.tour-dashboard-screen > div { display: grid; grid-template-columns: 70px minmax(0, 1fr) 32px; align-items: center; gap: .45rem; font-size: .55rem; }.tour-dashboard-screen progress { width: 100%; height: 8px; accent-color: var(--accent); }.tour-community-screen { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-content: center; gap: .65rem; }.tour-avatar { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: white; background: #526f82; font-size: .55rem; font-weight: 800; }.tour-community-screen p { margin: .4rem 0; color: var(--ink-soft); font-size: .58rem; line-height: 1.6; }.product-tour > .button { width: 220px; min-height: 52px; display: flex; margin: 1.5rem auto 0; }

.public-catalog { padding: 1.35rem clamp(1rem, 4vw, 4.5rem) 3.25rem; scroll-margin-top: 84px; color: var(--ink); background: linear-gradient(180deg, #eeece6, #f6f5f1); }
.public-catalog-heading { display: flex; max-width: 1500px; align-items: end; justify-content: space-between; gap: 1.5rem; margin: 0 auto 1.5rem; }
.public-catalog-heading h2 { margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 600; letter-spacing: .04em; }
.public-catalog-heading p { margin: .6rem 0 0; color: var(--muted); font-size: .72rem; line-height: 1.8; }
.public-catalog-heading > p { white-space: nowrap; }
.public-catalog .controls, .public-catalog .table-wrap, .public-catalog .pagination, .public-register-cta, .public-catalog > .empty { max-width: 1500px; margin-right: auto; margin-left: auto; }
.public-table-wrap table { min-width: 1080px; }
.public-table-wrap th, .public-table-wrap td { padding: .5rem .55rem; }
.public-table-wrap .coin-thumbnail { width: 84px; height: 50px; padding: 3px; }
.public-table-wrap .coin-thumbnail-cell, .public-table-wrap .thumbnail-heading { width: 92px; }
.public-table-wrap .coin-meta { max-width: 420px; margin-top: .16rem; line-height: 1.3; }
.public-table-wrap .coin-title-stack { gap: .22rem; }
.public-table-wrap .market-search-actions { min-width: 250px; display: flex; gap: .35rem; }
.public-table-wrap .market-search-actions a { flex: 1; min-height: 30px; padding-inline: .42rem; }
.official-info-button { padding: 0; border: 0; color: var(--accent); background: transparent; font-size: .65rem; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.market-search-actions { display: grid; gap: .35rem; min-width: 145px; }
.market-search-actions a { display: inline-flex; min-height: 31px; align-items: center; justify-content: center; padding: .35rem .5rem; border: 1px solid #d5d8dc; border-radius: 6px; color: #4e6571; background: white; font-size: .55rem; font-weight: 750; text-decoration: none; white-space: nowrap; }
.market-search-actions a:hover { border-color: #aeb5bc; background: #f7f8f9; }
.pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .35rem; margin-top: 1.15rem; }
.pagination button { min-width: 38px; min-height: 38px; padding: .45rem .65rem; border: 1px solid #d4d6d8; border-radius: 7px; color: #555b62; background: rgb(255 255 255 / 72%); font-size: .62rem; cursor: pointer; }
.pagination button[aria-current="page"] { color: white; border-color: var(--accent); background: var(--accent); font-weight: 800; }
.pagination button:disabled { opacity: .38; cursor: default; }.pagination span { color: var(--muted); font-size: .7rem; }
.public-register-cta { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: 1rem; padding: 1.2rem 1.35rem; border: 1px solid #d9d5ca; border-radius: var(--radius); background: rgb(255 255 255 / 72%); }
.public-register-cta b { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 1rem; }
.public-register-cta p { margin: .35rem 0 0; color: var(--muted); font-size: .66rem; line-height: 1.6; }

.public-news { padding: 1.35rem clamp(1rem, 4vw, 4.5rem) 3.25rem; scroll-margin-top: 84px; background: #e7e4dc; }
.public-news-heading, .public-news-list, .public-news > .mint-source-link, .public-news > .pagination { max-width: 1500px; margin-right: auto; margin-left: auto; }
.public-news-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.4rem; }
.public-news-heading h2 { margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(2rem, 4vw, 3rem); }
.public-news-heading p { margin: .55rem 0 0; color: var(--muted); font-size: .68rem; line-height: 1.7; }
.public-news-heading > p { white-space: nowrap; }
.public-news-list { columns: 2; column-gap: .7rem; }
.public-news-card { width: 100%; display: inline-block; margin: 0 0 .7rem; overflow: hidden; break-inside: avoid; border: 1px solid #d6d2c8; border-radius: 10px; background: rgb(255 255 255 / 72%); }
.public-news-card summary { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.15rem; cursor: pointer; list-style: none; }
.public-news-card summary::-webkit-details-marker { display: none; }
.public-news-card summary > span { min-width: 0; display: grid; gap: .35rem; }.public-news-card summary time { color: var(--accent); font-size: .55rem; font-weight: 800; }.public-news-card summary b { font-size: .72rem; line-height: 1.55; }.public-news-card summary i { color: var(--accent); font-size: 1rem; font-style: normal; }
.public-news-card[open] summary i { transform: rotate(45deg); }
.public-news-body { padding: 0 1.15rem 1.15rem; border-top: 1px solid #dedad1; }.public-news-body > p { color: var(--muted); font-size: .63rem; line-height: 1.75; }.public-news-body dl { margin: .75rem 0; background: white; }.public-news-body > a:not(.button) { color: #4e6571; font-size: .6rem; text-underline-offset: 3px; }
.public-news-items { display: grid; gap: .35rem; margin-bottom: .8rem; }.public-news-items p { display: flex; justify-content: space-between; gap: 1rem; margin: 0; padding: .55rem .65rem; border-radius: 6px; background: white; font-size: .57rem; }.public-news-items span { color: var(--muted); white-space: nowrap; }
.mint-source-link { width: fit-content; display: flex; margin-top: 1rem; color: #4e6571; font-size: .65rem; font-weight: 750; text-underline-offset: 3px; }
.public-news-source { margin-top: -.45rem; margin-bottom: 1.1rem; }
.original-news-button { width: fit-content; min-height: 36px; padding: .5rem .72rem; color: white !important; font-size: .58rem !important; text-decoration: none; }

.public-reference-section { padding: 1.35rem clamp(1rem, 4vw, 4.5rem) 3.25rem; scroll-margin-top: 84px; background: #f6f5f1; }
#public-coin-sets { background: #e4e9e5; }
.public-circulation { background: #ece9e1; }
.public-reference-heading, .public-reference-section > .controls, .public-reference-section > .table-wrap, .public-reference-section > .pagination, .public-reference-section > .panel, .public-reference-section > .empty { max-width: 1500px; margin-right: auto; margin-left: auto; }
.public-reference-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; }
.public-reference-heading h2 { margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(2rem, 4vw, 3rem); }
.public-reference-heading p { margin: .55rem 0 0; color: var(--muted); font-size: .68rem; line-height: 1.7; }
.public-reference-heading > p { white-space: nowrap; }
.public-reference-section .public-register-cta { max-width: 1500px; }
.public-circulation-chart-panel { margin-top: 1rem; }
#public-coin-sets .reference-table-wrap th, #public-coin-sets .reference-table-wrap td { padding: .58rem .7rem; }

/* Public contact */
.contact-section { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(360px, 1.28fr); gap: clamp(2rem, 6vw, 6rem); padding: 3.5rem clamp(1rem, 7vw, 8rem); scroll-margin-top: 84px; color: #eceef1; background: #17191d; }
.contact-copy h2 { margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(2rem, 4vw, 3.2rem); }.contact-copy > p:last-child { max-width: 560px; margin-top: 1rem; color: #adb2ba; font-size: .7rem; line-height: 1.9; }
.contact-form { display: grid; gap: .85rem; padding: 1.5rem; border: 1px solid rgb(255 255 255 / 12%); border-radius: var(--radius); background: rgb(255 255 255 / 5%); }
.contact-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }.contact-form label { display: grid; gap: .38rem; color: #d9dce1; font-size: .62rem; font-weight: 750; }.contact-form input, .contact-form textarea { width: 100%; min-height: 46px; padding: .75rem; color: #17191d; border: 1px solid #c9ccd1; border-radius: 8px; background: white; resize: vertical; }.contact-form textarea { min-height: 130px; }.contact-form .button { width: fit-content; min-width: 180px; }.contact-privacy-note { margin: 0; color: #9da3ac; font-size: .55rem; line-height: 1.6; }.contact-form .field-error[data-kind="success"] { color: #9fd0ad; }.contact-honeypot { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.member-contact-form { max-width: 820px; color: var(--ink); border-color: var(--line); background: white; box-shadow: var(--shadow-sm); }.member-contact-form label { color: var(--ink-soft); }.member-contact-form .contact-privacy-note { color: var(--muted); }.member-contact-form .field-error[data-kind="success"] { color: #2d7051; }

/* Logged-in application shell */
.app-shell { min-height: 100svh; display: block; background: var(--canvas); }
.app-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 30; width: 240px; height: 100svh; display: flex; flex-direction: column; padding: 1.05rem 1rem .9rem; color: #dadde3; background: var(--sidebar); }
.app-sidebar .logo { padding: 0 .65rem 1rem; }
.app-nav { min-height: 0; display: grid; align-content: start; gap: .12rem; overflow-y: visible; }
.app-nav a { display: flex; align-items: center; gap: .75rem; min-height: 42px; padding: .55rem .72rem; border-radius: 10px; color: #979da8; text-decoration: none; font-size: .75rem; font-weight: 680; transition: color .16s ease, background .16s ease; }
.app-nav a:hover { color: white; background: rgb(255 255 255 / 5%); }
.app-nav a.active { color: white; background: var(--sidebar-soft); box-shadow: inset 3px 0 var(--accent); }
.app-nav .app-external-link { margin-top: .2rem; border-top: 1px solid rgb(255 255 255 / 8%); border-radius: 0 0 10px 10px; color: #c4ad7c; font-size: .67rem; }
.app-nav svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linejoin: round; }
.nav-notifications { display: flex; align-items: center; gap: .25rem; margin-left: auto; }
.nav-badge, .thread-badge, .message-state { min-width: 20px; min-height: 20px; display: inline-flex; align-items: center; justify-content: center; padding: 0 .34rem; border-radius: 999px; color: white; font-size: .52rem; font-weight: 850; line-height: 1; }
.unread-badge { color: white; background: #526f82; }
.mention-badge { color: white; background: var(--accent); }
.reply-badge { color: white; background: #93681f; }
.sidebar-account { display: grid; margin-top: auto; padding: .65rem .55rem 0; border-top: 1px solid rgb(255 255 255 / 10%); }
.sidebar-profile { min-width: 0; display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; gap: .7rem; padding: .25rem; border-radius: 8px; color: inherit; text-decoration: none; }
.sidebar-profile:hover, .sidebar-profile:focus-visible { background: rgb(255 255 255 / 6%); }
.sidebar-account .account-copy b { color: white; }.sidebar-account .account-copy small { color: #858b96; }.sidebar-account .account-copy b em { color: #f4c4c7; background: rgb(173 37 44 / 25%); }
.sidebar-account .button { width: 100%; min-height: 36px; margin-top: .4rem; color: #d6d9de; border-color: rgb(255 255 255 / 12%); background: rgb(255 255 255 / 5%); white-space: nowrap; }
.app-stage { min-width: 0; margin-left: 240px; }
.account-area { display: flex; align-items: center; gap: .7rem; }
.account-area.sidebar-account { display: grid; align-items: stretch; gap: 0; }
.account-avatar, .message-avatar { display: grid; flex: 0 0 auto; place-items: center; border-radius: 50%; color: white; font-weight: 800; }
.account-avatar { width: 38px; height: 38px; overflow: hidden; font-size: .78rem; }
.account-avatar img, .message-avatar img, .avatar-preview img { width: 100%; height: 100%; display: block; object-fit: cover; }
.account-copy { display: grid; line-height: 1.2; }
.account-copy b { font-size: .76rem; }
.account-copy b em { margin-left: .4rem; padding: .16rem .35rem; border-radius: 999px; color: #8a2026; background: #f8e9ea; font-size: .5rem; font-style: normal; vertical-align: .1rem; }
.account-copy small { max-width: 180px; margin-top: .25rem; overflow: hidden; color: var(--muted); font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.avatar-tone-0 { background: #8b5761; }.avatar-tone-1 { background: #536f82; }.avatar-tone-2 { background: #7b6748; }.avatar-tone-3 { background: #557469; }.avatar-tone-4 { background: #705d82; }.avatar-tone-5 { background: #946343; }
.app-main { width: min(1500px, 100%); margin: 0 auto; padding: 2rem clamp(1.25rem, 3vw, 3rem) 3rem; }
.app-view { animation: view-in .22s ease both; }
@keyframes view-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.view-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; }
.view-heading h2 { margin: 0; font-size: clamp(1.5rem, 2.5vw, 2.05rem); letter-spacing: -.035em; }
.view-heading > p { margin: 0; color: var(--muted); font-size: .7rem; }
.eyebrow { margin: 0 0 .5rem; color: var(--accent); font-size: .6rem; font-weight: 850; letter-spacing: .16em; }
.divider-dot { margin: 0 .55rem; color: #c0c4ca; }

/* Dashboard */
.metric-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }
.metric-card { min-height: 150px; display: flex; flex-direction: column; padding: 1.35rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); }
.metric-card > span { color: var(--muted); font-size: .68rem; font-weight: 750; }
.metric-card > strong { margin-top: .6rem; font-size: 2.45rem; line-height: 1; letter-spacing: -.055em; }
.metric-card strong small { margin-left: .2rem; font-size: .75rem; font-weight: 700; letter-spacing: 0; }
.metric-card p { margin: auto 0 0; color: var(--muted); font-size: .68rem; }
.metric-breakdown { display: grid; gap: .28rem; margin-top: auto; padding-top: .65rem; color: var(--muted); font-size: .57rem; }
.metric-breakdown span { display: flex; justify-content: space-between; gap: .5rem; }
.metric-breakdown b { color: var(--ink-soft); font-weight: 800; white-space: nowrap; }
.metric-primary { color: white; border-color: var(--ink); background: var(--ink); }
.metric-primary > span, .metric-primary p { color: rgb(255 255 255 / 63%); }
.metric-primary .metric-breakdown { color: rgb(255 255 255 / 60%); }.metric-primary .metric-breakdown b { color: white; }
.metric-progress { width: 100%; height: 5px; margin: .9rem 0 .7rem; overflow: hidden; appearance: none; border: 0; border-radius: 999px; background: rgb(255 255 255 / 13%); }
.metric-progress::-webkit-progress-bar { border-radius: inherit; background: rgb(255 255 255 / 13%); }
.metric-progress::-webkit-progress-value { border-radius: inherit; background: var(--accent); }
.metric-progress::-moz-progress-bar { border-radius: inherit; background: var(--accent); }
.metric-progress-breakdown { display: grid; gap: .55rem; margin-top: .8rem; }
.metric-progress-row { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; align-items: center; gap: .55rem; color: rgb(255 255 255 / 67%); font-size: .55rem; }
.metric-progress-row span { font-weight: 750; white-space: nowrap; }
.metric-progress-row b { color: white; font-size: .56rem; white-space: nowrap; }
.metric-progress-row progress { width: 100%; height: 8px; overflow: hidden; appearance: none; border: 0; border-radius: 999px; background: rgb(255 255 255 / 14%); }
.metric-progress-row progress::-webkit-progress-bar { border-radius: inherit; background: rgb(255 255 255 / 14%); }
.metric-progress-row progress::-webkit-progress-value { border-radius: inherit; background: linear-gradient(90deg, var(--accent), #d85a60); }
.metric-progress-row progress::-moz-progress-bar { border-radius: inherit; background: linear-gradient(90deg, var(--accent), #d85a60); }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .75fr); gap: 1rem; align-items: start; }
.dashboard-ownership-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; margin-bottom: 1rem; }
.dashboard-value-market-grid { grid-template-columns: minmax(0, 1.25fr) minmax(360px, .75fr); align-items: stretch; margin-bottom: 1rem; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.35rem; border-bottom: 1px solid var(--line); }
.panel-heading h3 { margin: 0; font-size: 1rem; }
.panel-heading > a { color: var(--accent); font-size: .68rem; font-weight: 750; text-decoration: none; }
.panel-heading > small { color: var(--muted); font-size: .6rem; }
.progress-list { padding: .25rem 1.35rem .7rem; }
.progress-item { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 1rem; align-items: center; padding: 1.05rem 0; border-bottom: 1px solid var(--line); }
.progress-item:last-child { border-bottom: 0; }
.progress-coin { width: 64px; height: 48px; display: grid; overflow: hidden; place-items: center; border: 1px solid #d1d3d6; border-radius: 8px; background: white; box-shadow: 0 4px 12px rgb(30 33 38 / 10%); }
.progress-coin img { width: 100%; height: 100%; object-fit: contain; }
.progress-label { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.progress-label > div { display: grid; gap: .18rem; }
.progress-label b { font-size: .78rem; }
.progress-label span { color: var(--muted); font-size: .62rem; }
.progress-label > strong { font-size: .86rem; white-space: nowrap; }
.progress-label strong small { color: var(--muted); font-size: .62rem; font-weight: 600; }
.progress-track { width: 100%; height: 9px; display: block; margin-top: .7rem; overflow: hidden; appearance: none; border: 0; border-radius: 999px; background: #e4e6e9; }
.progress-track::-webkit-progress-bar { border-radius: inherit; background: #e4e6e9; }
.progress-track::-webkit-progress-value { border-radius: inherit; background: linear-gradient(90deg, var(--accent), #cc5056); }
.progress-track::-moz-progress-bar { border-radius: inherit; background: linear-gradient(90deg, var(--accent), #cc5056); }
.progress-content > p { margin: .45rem 0 0; color: var(--muted); font-size: .6rem; }
.market-list { padding: .6rem 1.35rem; }
.market-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) 82px; gap: .75rem; align-items: center; padding: .95rem 0; border-bottom: 1px solid var(--line); }
.market-row:last-child { border-bottom: 0; }
.market-symbol { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: #6d571f; background: #f2e9ce; font-family: Georgia, serif; font-size: .72rem; font-weight: 700; }
.silver-market .market-symbol { color: #526069; background: #e6eaec; }
.copper-market .market-symbol { color: #754733; background: #f0ded5; }
.market-row > div { display: grid; gap: .2rem; }
.market-row small { color: var(--muted); font-size: .56rem; font-weight: 750; }
.market-row strong { font-size: .86rem; }
.market-row svg { width: 82px; fill: none; stroke: var(--gold); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.silver-market svg { stroke: #89969e; }.copper-market svg { stroke: #a46b52; }
.data-note { margin: 0; padding: .85rem 1.35rem 1.1rem; color: var(--muted); font-size: .58rem; line-height: 1.6; }
.dashboard-quantity { margin-bottom: 0; }
.quantity-chart { display: grid; gap: .8rem; padding: 1.2rem 1.35rem 1.35rem; }
.quantity-row { display: grid; grid-template-columns: 72px minmax(0, 1fr) 54px; align-items: center; gap: .8rem; }
.quantity-row > b { font-size: .68rem; white-space: nowrap; }
.quantity-row > strong { font-size: .8rem; text-align: right; }
.quantity-row > strong small { margin-left: .15rem; color: var(--muted); font-size: .56rem; }
.quantity-row progress { width: 100%; height: 18px; overflow: hidden; appearance: none; border: 0; border-radius: 4px; background: #e2e4e7; }
.quantity-row progress::-webkit-progress-bar { border-radius: inherit; background: #e2e4e7; }
.quantity-row progress::-webkit-progress-value { border-radius: inherit; background: linear-gradient(90deg, #751c22, var(--accent)); }
.quantity-row progress::-moz-progress-bar { border-radius: inherit; background: linear-gradient(90deg, #751c22, var(--accent)); }
.purchase-summary-panel { margin-bottom: 0; }
.purchase-summary { display: grid; grid-template-columns: minmax(250px, .75fr) minmax(0, 1.6fr); gap: 1rem; padding: 1.1rem 1.35rem 1.3rem; }
.purchase-total { display: grid; align-content: center; padding: 1rem; border-radius: 10px; color: white; background: var(--ink); }
.purchase-total > span, .purchase-breakdown span { font-size: .57rem; font-weight: 750; }.purchase-total strong { margin-top: .35rem; font-size: 1.65rem; }.purchase-total small { margin-top: .45rem; color: rgb(255 255 255 / 58%); font-size: .5rem; line-height: 1.55; }
.purchase-breakdown { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.purchase-breakdown article { min-width: 0; display: grid; align-content: center; padding: .85rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); }
.purchase-breakdown strong { margin-top: .3rem; font-size: .92rem; }.purchase-breakdown small { margin-top: .35rem; color: var(--muted); font-size: .5rem; line-height: 1.5; }
.coin-set-category-panel { margin-bottom: 0; }
.coin-set-category-row { grid-template-columns: 112px minmax(0, 1fr) 82px; }
.coin-set-category-row > strong { display: grid; }.coin-set-category-row > strong span { margin-top: .15rem; color: var(--muted); font-size: .48rem; font-weight: 600; }
.owned-coins { max-height: 620px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 1rem; overflow-y: auto; padding: .45rem 1.35rem .8rem; }
.owned-coins > button { min-width: 0; display: grid; grid-template-columns: 82px minmax(0, 1fr) auto; align-items: center; gap: .7rem; padding: .8rem 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; text-align: left; cursor: pointer; }
.owned-coins > button:hover b { color: var(--accent); }
.owned-coin-image { width: 82px; height: 54px; display: grid; overflow: hidden; place-items: center; border: 1px solid #d2d5d9; border-radius: 7px; background: white; }
.owned-coin-image img { width: 100%; height: 100%; object-fit: contain; }
.owned-coins > button > span:nth-child(2) { min-width: 0; display: grid; gap: .22rem; }.owned-coins b { overflow: hidden; font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }.owned-coins small { color: var(--muted); font-size: .55rem; }.owned-coins > button > strong { font-size: .78rem; white-space: nowrap; }.owned-coins > button > strong small { margin-left: .15rem; color: var(--muted); font-size: .52rem; }
.owned-coins-empty { grid-column: 1 / -1; padding: 2.5rem 1rem; text-align: center; }.owned-coins-empty b { font-size: .78rem; }.owned-coins-empty p { margin: .45rem 0 .8rem; color: var(--muted); font-size: .62rem; }.owned-coins-empty a { color: var(--accent); font-size: .62rem; }
.year-coin-progress-panel { margin: 1rem 0; }
.year-coin-progress { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .8rem; padding: 1.15rem 1.35rem 1.35rem; }
.year-coin-progress article { min-width: 0; display: grid; justify-items: center; gap: .35rem; }
.year-coin-progress article > b { font-size: .7rem; }.year-coin-progress article > small { color: var(--muted); font-size: .56rem; font-weight: 700; }
.year-coin-donut { position: relative; width: 92px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; }
.year-coin-donut svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }.year-coin-donut circle { fill: none; stroke-width: 5; }.year-coin-donut-track { stroke: #e4e6e9; }.year-coin-donut-value { stroke: var(--accent); stroke-linecap: round; }
.year-coin-donut > span { position: relative; width: 68px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: white; box-shadow: inset 0 0 0 1px var(--line); }
.year-coin-donut strong { font-size: 1.05rem; }.year-coin-donut strong small { margin-left: .08rem; color: var(--muted); font-size: .5rem; }
.dashboard-collection-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; align-items: start; }
.dashboard-collection-grid .owned-coins, .dashboard-collection-grid .favorite-items { max-height: 470px; grid-template-columns: 1fr; overflow-y: auto; }
.dashboard-collection-grid .favorite-panel { margin-top: 0; }

/* Mint news archive */
.news-heading { align-items: flex-start; }
.news-heading-description { max-width: 720px; margin-top: .8rem; }
.news-heading-description b { font-size: .72rem; }
.news-heading-description p { margin: .3rem 0 0; color: var(--muted); font-size: .64rem; line-height: 1.7; }
.news-source-link { margin: -.25rem 0 1rem; }
.news-list { display: grid; gap: 1rem; }
.news-card { scroll-margin-top: 104px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow-sm); }
.news-card > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.45rem; list-style: none; cursor: pointer; }
.news-card > summary::-webkit-details-marker { display: none; }
.news-card > summary:hover { background: #fafafb; }
.news-card > summary:focus-visible { outline: 3px solid rgb(139 30 30 / 18%); outline-offset: -3px; }
.news-card > summary > i { flex: 0 0 auto; color: var(--accent); font-size: 1.1rem; font-style: normal; transition: transform .2s ease; }
.news-card[open] > summary > i { transform: rotate(45deg); }
.news-card-summary-copy { min-width: 0; display: block; }
.news-card-summary-copy time { color: var(--accent); font-size: .6rem; font-weight: 800; letter-spacing: .08em; }
.news-card-summary-copy h3 { margin: .38rem 0 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 1.05rem; line-height: 1.5; }
.news-card-body { border-top: 1px solid var(--line); }
.news-summary-text { max-width: 920px; margin: 0; padding: 1rem 1.45rem; color: var(--muted); font-size: .68rem; line-height: 1.75; }
.news-facts { grid-template-columns: 1fr 1fr; margin: 0 1.45rem 1rem; }
.news-facts div { border-bottom: 0; }
.news-items { display: grid; gap: .65rem; padding: 0 1.45rem 1.25rem; }
.news-items > section { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(280px, .75fr) auto; align-items: center; gap: 1rem; padding: .9rem 1rem; border: 1px solid #e4e2dc; border-radius: 10px; background: #f8f7f3; }
.news-items > section > div b { font-size: .72rem; }
.news-items > section > div p { margin: .3rem 0 0; color: var(--muted); font-size: .57rem; }
.news-items dl { grid-template-columns: 1fr 1fr; margin: 0; border: 0; }
.news-items dl div { padding: .2rem .75rem; border: 0; border-left: 1px solid #dedbd2; }
.news-items button { padding: .55rem .7rem; border: 1px solid #d4d0c7; border-radius: 7px; color: var(--ink-soft); background: white; font-size: .6rem; font-weight: 750; cursor: pointer; }
.news-card-footer { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; padding: .7rem 1.45rem; background: #f3f4f5; }
.news-card-footer a { white-space: nowrap; }
.news-category { display: inline-flex; margin-right: .55rem; padding: .18rem .38rem; border-radius: 999px; color: #56646d; background: #e8edef; font-size: .5rem; font-weight: 800; }

/* Catalog */
.catalog-toolbar { display: flex; align-items: end; gap: .7rem; margin-bottom: 1rem; }
.bulk-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem; margin: -.35rem 0 .75rem; }.bulk-actions > span { margin-right: auto; color: var(--muted); font-size: .62rem; }.bulk-actions .button { min-height: 38px; padding: .5rem .75rem; font-size: .62rem; }
.controls { display: grid; grid-template-columns: minmax(260px, 1fr) repeat(3, minmax(120px, 160px)) auto; align-items: end; gap: .7rem; flex: 1; margin: 0; padding: .9rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); }
.public-controls { grid-template-columns: minmax(300px, 1fr) repeat(2, minmax(150px, 190px)) auto; }
.controls > label { min-width: 0; display: grid; gap: .35rem; color: var(--muted); font-size: .6rem; font-weight: 750; }
.catalog-search { min-width: 0; }
.search-field { position: relative; display: flex; align-items: center; }
.search-field svg { position: absolute; left: .85rem; width: 18px; color: #848991; pointer-events: none; }
input, select { color: var(--ink); background: var(--surface); border: 1px solid #d7dade; border-radius: 8px; }
.controls input, .controls select { width: 100%; height: 46px; min-height: 46px; padding: .65rem .75rem; outline: none; }
.controls input { width: 100%; padding-left: 2.7rem; background: var(--surface-soft); }
.controls input:focus, .controls select:focus { border-color: #9ca1a8; box-shadow: 0 0 0 3px rgb(23 25 29 / 5%); }
.controls > .button { height: 46px; min-height: 46px; }
.view-switch { flex: 0 0 auto; display: grid; grid-template-columns: 1fr 1fr; padding: 4px; border: 1px solid var(--line); border-radius: 10px; background: white; box-shadow: var(--shadow-sm); }
.view-switch button { min-height: 38px; padding: .5rem .7rem; border: 0; border-radius: 7px; color: var(--muted); background: transparent; font-size: .6rem; font-weight: 750; cursor: pointer; }.view-switch button.active { color: white; background: var(--ink); }
.table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); }
table { width: 100%; min-width: 1280px; border-collapse: collapse; }
th, td { padding: .9rem .8rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; font-size: .72rem; }
th { position: sticky; top: 0; z-index: 1; color: var(--muted); background: #f2f3f5; font-size: .6rem; font-weight: 750; letter-spacing: .02em; }
tbody tr { transition: background .15s ease; }
tbody tr:hover { background: #fafafb; }
tbody tr:last-child td { border-bottom: 0; }
.thumbnail-heading, .coin-thumbnail-cell { width: 108px; text-align: center; }
.coin-thumbnail { display: grid; width: 112px; height: 72px; margin: 0 auto; padding: 4px; overflow: visible; place-items: center; border: 1px solid #c8cbd0; border-radius: 8px; background: white; box-shadow: 0 4px 11px rgb(32 36 42 / 10%); cursor: pointer; }
#catalog-table-view .coin-thumbnail { width: 92px; height: 64px; }
.coin-thumbnail img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.coin-name-cell { min-width: 210px; max-width: 360px; }
.sort, .coin-link { padding: 0; border: 0; background: transparent; cursor: pointer; }
.sort { color: var(--ink-soft); font-size: .62rem; font-weight: 780; }
.coin-link { color: var(--ink); font-size: .78rem; font-weight: 780; line-height: 1.5; text-align: left; }
.coin-link:hover { color: var(--accent); }
.coin-title-line { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .42rem; }
.coin-title-stack { min-width: 0; display: grid; justify-items: start; gap: .35rem; }
.award-badge { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .22rem; padding: .2rem .42rem; border: 1px solid #d7bd7a; border-radius: 999px; color: #725515; background: #fbf5e5; font-size: .5rem; font-weight: 850; white-space: nowrap; }
.coin-meta, .coin-link + small, td > small { display: block; margin-top: .26rem; color: var(--muted); font-size: .6rem; line-height: 1.45; }
.era-year { display: block; font-size: .8rem; white-space: nowrap; }
.western-year { font-size: .57rem; }
.denomination { display: inline-flex; padding: .32rem .52rem; border-radius: 999px; color: white; background: #51565e; font-size: .6rem; font-weight: 750; white-space: nowrap; }
.denomination.copper { background: #895d4f; }.denomination.brass { background: #8b7943; }.denomination.silver { background: #68767d; }.denomination.indigo { background: #4e6977; }.denomination.gold { background: #826d3e; }.denomination.umber { background: #625449; }.denomination.crimson { background: #7a4a54; }
.market-links { display: flex; gap: .65rem; margin-top: .35rem; }
.market-links a { color: #526b78; font-size: .58rem; text-underline-offset: 3px; }
.ownership-heading, .ownership-cell { width: 126px; min-width: 126px; }
#catalog-table-view table { min-width: 1080px; }
#catalog-table-view th:first-child, #catalog-table-view td:first-child { position: sticky; left: 0; z-index: 2; background: white; box-shadow: 8px 0 14px rgb(22 27 34 / 4%); }
#catalog-table-view th:first-child { z-index: 3; background: #f2f3f5; }
.owned-check { display: flex; align-items: center; gap: .45rem; font-size: .62rem; }
.owned-check input { width: 24px; height: 24px; margin: 0; accent-color: var(--accent); }
.quantity { display: flex; align-items: center; gap: .45rem; margin-top: .4rem; font-size: .62rem; }
.quantity input { width: 64px; min-height: 38px; padding: 8px; }
.field-error { display: block; margin: .35rem 0 0; color: var(--accent); font-size: .6rem; }
.empty { padding: 3rem; border: 1px dashed #cdd0d5; border-radius: var(--radius); color: var(--muted); background: white; text-align: center; }

.coin-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.coin-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow-sm); }
.coin-card-image { width: 100%; height: 170px; display: grid; overflow: hidden; place-items: center; padding: 1rem; border: 0; border-bottom: 1px solid var(--line); background: linear-gradient(145deg,#f5f3ed,#fff); cursor: pointer; }.coin-card-image img { width: 100%; height: 100%; object-fit: contain; transition: transform .2s ease; }.coin-card-image:hover img { transform: scale(1.04); }
.coin-card-copy { padding: 1rem; }.coin-card-meta { display: flex; align-items: center; justify-content: space-between; gap: .6rem; color: var(--muted); font-size: .55rem; }.coin-card-title { width: 100%; margin-top: .7rem; padding: 0; border: 0; background: transparent; font-size: .8rem; font-weight: 800; line-height: 1.55; text-align: left; cursor: pointer; }.coin-card-title:hover { color: var(--accent); }.coin-card-copy > p { margin: .35rem 0 0; color: var(--muted); font-size: .58rem; }
.coin-card-copy dl { display: grid; grid-template-columns: 1fr 1fr; margin: .8rem 0; }.coin-card-copy dl div { min-width: 0; padding: .65rem .7rem; border-bottom: 0; }.coin-card-copy dl div + div { border-left: 1px solid var(--line); }.coin-card-copy dl dd { font-size: .68rem; white-space: nowrap; }
.coin-card-copy .coin-title-line { align-items: flex-start; margin-top: .7rem; }.coin-card-copy .coin-card-title { width: auto; flex: 1; margin-top: 0; }
.card-ownership { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .45rem .8rem; padding-top: .2rem; }.card-ownership .quantity { justify-content: end; margin-top: 0; }.card-ownership .field-error { grid-column: 1 / -1; }

/* Official reference databases */
.reference-controls { grid-template-columns: minmax(260px, 1fr) repeat(2, minmax(130px, 180px)) auto; margin-bottom: 1rem; }
.year-coin-controls { grid-template-columns: repeat(2, minmax(150px, 210px)) auto; justify-content: start; margin-bottom: .75rem; }
.year-coin-legend { display: flex; flex-wrap: wrap; gap: .75rem 1.2rem; margin: 0 0 .75rem; color: var(--muted); font-size: .58rem; }
.year-coin-legend span { display: inline-flex; align-items: center; gap: .35rem; }.year-coin-legend i { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; font-style: normal; }
.year-coin-owned-sample { border: 4px solid #a98653; background: #e8dac1; }.year-coin-empty-sample { border: 2px solid #a6abb2; background: white; }
.year-coin-table { min-width: 720px; table-layout: fixed; }.year-coin-table th, .year-coin-table td { padding: .5rem; text-align: center; }.year-coin-table thead th:first-child { width: 150px; }.year-coin-table tbody th { position: static; color: var(--ink); background: white; text-align: left; }.year-coin-table tbody th b, .year-coin-table tbody th small { display: block; }.year-coin-table tbody th small { margin-top: .2rem; color: var(--muted); font-size: .54rem; }
.year-coin-toggle { width: 72px; height: 48px; display: grid; margin: 0 auto; overflow: hidden; place-items: center; border: 1px solid transparent; border-radius: 999px; background: transparent; cursor: pointer; transition: transform .15s ease, border-color .15s ease, background .15s ease; }
.year-coin-toggle:hover { transform: translateY(-1px); }.year-coin-toggle:focus-visible { outline: 3px solid rgb(139 30 30 / 20%); outline-offset: 2px; }
.year-coin-toggle.missing { width: 42px; height: 42px; border: 2px solid #aeb3ba; color: transparent; background: white; }.year-coin-toggle.missing span { width: 20px; height: 20px; border: 2px solid #aeb3ba; border-radius: 50%; }
.year-coin-toggle.owned { border-color: #c9b287; background: #fffdf7; box-shadow: 0 3px 10px rgb(38 31 19 / 10%); }.year-coin-toggle img { width: 100%; height: 100%; display: block; object-fit: contain; }
.year-coin-unminted { color: #a8adb4; background: #f6f7f8; }.year-coin-unminted span { font-size: .85rem; }
.year-coin-image-note { padding-left: 0; }
.reference-table-wrap table { min-width: 1050px; }.reference-table-wrap td > b { line-height: 1.55; }.reference-table-wrap td > small { max-width: 500px; line-height: 1.55; }
#coin-set-rows td:nth-child(4), #public-coin-set-rows td:nth-child(3) { min-width: 250px; }
.mintage-cell { white-space: nowrap; font-variant-numeric: tabular-nums; }
.compact-year-heading, .compact-year { width: 100px; max-width: 100px; }
.compact-year b, .compact-year small { white-space: nowrap; }
.set-sort { padding: 0; border: 0; color: var(--ink-soft); background: transparent; font-size: .6rem; font-weight: 780; cursor: pointer; }
.reference-type { display: inline-flex; padding: .3rem .48rem; border-radius: 999px; color: #415864; background: #e9eff2; font-size: .53rem; font-weight: 800; white-space: nowrap; }.reference-type.type-proof { color: #62521f; background: #f4edda; }.reference-type.type-other { color: #68515e; background: #f1e8ed; }.reference-type.type-event { color: #4d624e; background: #e9f0e8; }
.table-source-link { display: inline-flex; align-items: center; gap: .28rem; color: #4e6875; font-size: .58rem; font-weight: 750; white-space: nowrap; text-underline-offset: 3px; }
.foreign-coin-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.foreign-coin-card { min-width: 0; display: grid; grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow-sm); }
.foreign-coin-images { display: grid; grid-template-columns: 1fr 1fr; place-items: center; gap: .4rem; padding: 1rem; background: linear-gradient(145deg,#eeeae0,#f8f7f3); }.foreign-coin-images figure { margin: 0; text-align: center; }.foreign-coin-images img { width: 100%; aspect-ratio: 1; display: block; object-fit: contain; filter: drop-shadow(0 7px 8px rgb(26 28 30 / 17%)); }.foreign-coin-images figcaption { margin-top: .35rem; color: var(--muted); font-size: .5rem; }
.foreign-coin-copy { min-width: 0; padding: 1rem; }.reference-card-meta { display: flex; flex-wrap: wrap; gap: .35rem; }.reference-card-meta span { padding: .25rem .42rem; border-radius: 999px; color: #52646e; background: #edf1f3; font-size: .5rem; font-weight: 800; }.foreign-coin-copy h3 { margin: .6rem 0 0; font-size: .82rem; line-height: 1.55; }.foreign-coin-copy dl { margin: .7rem 0; grid-template-columns: 1fr; }.foreign-coin-copy dl div { display: flex; justify-content: space-between; gap: .8rem; padding: .55rem .65rem; border-right: 0; }.foreign-coin-copy dd { margin: 0; text-align: right; }
.reference-card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .8rem; margin-top: .7rem; padding-top: .7rem; border-top: 1px solid var(--line); }
.reference-card-actions .quantity { margin-top: 0; }.reference-card-actions .field-error { flex-basis: 100%; }.reference-card-actions > a { margin-left: auto; color: #4e6875; font-size: .58rem; font-weight: 750; text-underline-offset: 3px; }
.circulation-latest { margin-bottom: 1rem; }.circulation-latest .panel-heading label { display: flex; align-items: center; gap: .6rem; color: var(--muted); font-size: .58rem; font-weight: 750; }.circulation-latest select { min-height: 40px; padding: .55rem .7rem; }
.circulation-summary { display: grid; grid-template-columns: repeat(6, 1fr); gap: .65rem; padding: 1rem 1.25rem; }.circulation-summary article { min-width: 0; padding: .9rem; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-soft); }.circulation-summary span { display: block; color: var(--muted); font-size: .58rem; font-weight: 750; }.circulation-summary strong { display: block; margin-top: .4rem; overflow: hidden; font-size: clamp(.8rem, 1.4vw, 1.12rem); text-overflow: ellipsis; white-space: nowrap; }.circulation-summary strong small { margin-left: .18rem; color: var(--muted); font-size: .5rem; }
.circulation-source-link { margin-top: .55rem; }
.circulation-chart-panel { margin-bottom: 1rem; }
.circulation-chart-heading { align-items: flex-end; }
.circulation-series-controls { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem; }
.circulation-series-controls button { min-height: 34px; padding: .4rem .62rem; border: 1px solid #d7dade; border-radius: 999px; color: var(--muted); background: white; font-size: .56rem; font-weight: 750; cursor: pointer; }
.circulation-series-controls button:hover { border-color: #aeb3ba; color: var(--ink); }
.circulation-series-controls button.active { color: white; border-color: var(--accent); background: var(--accent); }
.circulation-chart { overflow: hidden; padding: .45rem 1rem 0; }
.circulation-chart svg { width: 100%; height: auto; display: block; }
.circulation-grid line { stroke: #e0e2e5; stroke-width: 1; }
.circulation-grid text, .circulation-axis-unit, .circulation-year-label { fill: #858b93; font-size: 10px; }
.circulation-bar-group rect { fill: #718994; transition: opacity .15s ease, fill .15s ease; }
.circulation-bar-group rect:hover { fill: var(--accent); }
.circulation-bar-group.selected rect { fill: #b28b42; }
.circulation-table-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 1.35rem 0 .65rem; }
.circulation-table-heading h3 { margin: 0; font-size: .86rem; }
.circulation-table-heading span { color: var(--muted); font-size: .58rem; font-weight: 750; }
.circulation-table-wrap table { min-width: 900px; table-layout: fixed; }
.circulation-table-wrap th:first-child, .circulation-table-wrap td:first-child { width: 176px; }
.circulation-table-wrap th:nth-child(2), .circulation-table-wrap td:nth-child(2) { width: 76px; }
.circulation-table-wrap th:nth-child(n+3):nth-child(-n+8), .circulation-table-wrap td:nth-child(n+3):nth-child(-n+8) { width: 72px; padding-inline: .5rem; }
.circulation-table-wrap th:last-child, .circulation-table-wrap td:last-child { width: 104px; }
.circulation-table-wrap td:not(:first-child) { font-variant-numeric: tabular-nums; text-align: right; }.circulation-table-wrap .selected-year { background: #fbf5e8; }.circulation-table-wrap .selected-year:hover { background: #f8efd9; }

/* My page */
.mypage-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-items: start; }
.settings-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow-sm); }.settings-card > header { display: flex; align-items: center; gap: .8rem; padding: 1.2rem 1.3rem; border-bottom: 1px solid var(--line); }.settings-card > header > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: white; background: var(--accent); font-size: .55rem; font-weight: 850; }.settings-card h3 { margin: 0; font-size: .9rem; }.settings-card header p { margin: .25rem 0 0; color: var(--muted); font-size: .58rem; }
.settings-card form { display: grid; gap: .85rem; padding: 1.25rem 1.3rem; }.settings-card form label { display: grid; gap: .38rem; color: var(--ink-soft); font-size: .62rem; font-weight: 750; }.settings-card input, .settings-card select, .settings-card textarea { width: 100%; min-height: 44px; padding: .7rem .75rem; border: 1px solid #d7dade; border-radius: 8px; font: inherit; font-size: .7rem; resize: vertical; }.settings-card button { justify-self: start; }.settings-card hr { margin: 0 1.3rem; border: 0; border-top: 1px solid var(--line); }.setting-note { margin: -.2rem 0 0; color: var(--muted); font-size: .56rem; line-height: 1.6; }
.account-summary { margin: 1.2rem 1.3rem 0; }.account-summary div { border-bottom: 0; }.account-summary dd { font-weight: 750; }
.account-readonly-note { margin: .6rem 1.3rem 1.2rem; color: var(--muted); font-size: .57rem; }
.account-recovery-warning, .auth-recovery-warning { padding: .7rem .8rem; border-left: 3px solid var(--accent); background: #f8f2ef; color: #5a3d37; line-height: 1.7; }
.avatar-setting { display: grid; grid-template-columns: 86px minmax(0, 1fr); align-items: center; gap: 1rem; padding: .85rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); }
.avatar-preview { width: 86px; height: 86px; display: grid; overflow: hidden; place-items: center; border: 3px solid white; border-radius: 50%; color: white; box-shadow: 0 4px 16px rgb(20 24 30 / 15%); font-size: 1.35rem; font-weight: 850; }
.avatar-setting > div { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .65rem; }
.avatar-file { position: relative; display: inline-flex !important; width: auto; min-height: 38px; align-items: center; justify-content: center; padding: .55rem .75rem; overflow: hidden; border: 1px solid #cdd1d6; border-radius: 8px; color: var(--ink) !important; background: white; cursor: pointer; }
.avatar-file input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.avatar-setting small { flex-basis: 100%; color: var(--muted); font-size: .52rem; font-weight: 500; line-height: 1.5; }
.avatar-setting .avatar-status:not(:empty) { color: #496a55; font-weight: 750; }
.text-button { padding: .45rem .2rem; border: 0; color: #7d4649; background: transparent; font-size: .56rem; cursor: pointer; }
.account-danger-zone { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; margin: 0 1.3rem 1.3rem; padding: 1rem; border: 1px solid #e4c8ca; border-radius: 10px; background: #fff8f8; }.account-danger-zone b { font-size: .68rem; }.account-danger-zone p { margin: .25rem 0 0; color: #7c6668; font-size: .55rem; line-height: 1.55; }
.button-danger { color: white; border-color: #972a31; background: #972a31; }.button-danger:hover { background: #7e2026; }.danger-dialog { border-top: 5px solid #972a31; }

/* Administration */
.admin-intro { margin: .55rem 0 0; color: var(--muted); font-size: .64rem; line-height: 1.65; }
.admin-users-table table { min-width: 920px; }
.admin-user-copy { display: grid; gap: .18rem; }.admin-user-copy b { font-size: .72rem; }.admin-user-copy small { color: var(--muted); font-size: .56rem; }
.admin-status { display: inline-flex; width: fit-content; align-items: center; gap: .35rem; padding: .28rem .48rem; border-radius: 999px; color: #43614e; background: #e8f2eb; font-size: .54rem; font-weight: 800; }
.admin-status.disabled { color: #852a31; background: #f8e5e7; opacity: 1; cursor: default; }
.admin-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.admin-actions button { min-height: 34px; padding: .42rem .6rem; border: 1px solid #cfd3d8; border-radius: 7px; color: var(--ink-soft); background: white; font-size: .55rem; font-weight: 750; cursor: pointer; }
.admin-actions .admin-delete { color: #92262d; border-color: #e2bfc2; background: #fff7f7; }
.admin-contact-panel { margin-top: 1.25rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow-sm); }.admin-contact-panel .panel-heading { padding: 0 0 1rem; border-bottom: 1px solid var(--line); }.admin-contact-rows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: 1rem; }.admin-contact-card { min-width: 0; padding: 1rem; border: 1px solid #e2c7c9; border-radius: 10px; background: #fffafa; }.admin-contact-card.resolved { border-color: var(--line); background: var(--surface-soft); }.admin-contact-card header, .admin-contact-card footer { display: flex; align-items: center; justify-content: space-between; gap: .7rem; }.admin-contact-card time { color: var(--muted); font-size: .55rem; }.admin-contact-card h4 { margin: .8rem 0 .35rem; font-size: .72rem; }.admin-contact-card > p { max-height: 7em; overflow: auto; color: var(--ink-soft); font-size: .62rem; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }.admin-contact-card footer { align-items: end; margin-top: .8rem; }.admin-contact-card footer > span { min-width: 0; display: grid; gap: .18rem; }.admin-contact-card footer b, .admin-contact-card footer a { min-width: 0; overflow: hidden; font-size: .55rem; text-overflow: ellipsis; white-space: nowrap; }.admin-contact-card footer a { color: #526b78; }.admin-contact-card footer button { min-height: 34px; padding: .42rem .6rem; border: 1px solid #cfd3d8; border-radius: 7px; background: white; font-size: .55rem; cursor: pointer; }

/* Community */
.community-view { min-height: calc(100svh - 5rem); }
.community-layout { height: calc(100svh - 5rem); min-height: 600px; display: grid; grid-template-columns: minmax(240px, 25%) minmax(0, 75%); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); }
.topics-panel { min-width: 0; min-height: 0; display: flex; flex-direction: column; border-right: 1px solid var(--line); background: #f4f5f7; }
.topics-heading { padding: 1.25rem 1.1rem .8rem; }
.topics-heading h2 { margin: 0; font-size: 1.25rem; }
.topics-heading > p:last-child { margin: .45rem 0 0; color: var(--muted); font-size: .66rem; }
.community-create-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; margin-top: 1rem; }
.community-create-actions button, .community-create-actions a { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: .5rem .55rem; border: 1px solid #d9dce0; border-radius: 8px; color: var(--ink-soft); background: white; font-size: .59rem; font-weight: 800; text-align: center; text-decoration: none; cursor: pointer; }
.community-create-actions button:first-child { color: white; border-color: var(--accent); background: var(--accent); }
.community-create-actions a { color: #6d551e; border-color: #cdbd93; background: #f7f0de; }
.community-create-actions button:hover, .community-create-actions a:hover { border-color: #afb4bb; }
.status-control { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .28rem .5rem; margin-top: .75rem; padding: .65rem .75rem; border: 1px solid #dfe2e5; border-radius: 8px; color: var(--muted); background: white; font-size: .55rem; font-weight: 750; }
.status-control strong { display: inline-flex; align-items: center; gap: .35rem; color: var(--ink); font-size: .62rem; }.status-control strong .status-dot { position: static; width: 9px; height: 9px; border: 0; }.status-control small { grid-column: 1 / -1; color: #92979e; font-size: .5rem; font-weight: 500; }
.mypage-status { margin: 1rem 1.3rem 0; background: var(--surface-soft); }
.topic-list { min-height: 0; display: grid; align-content: start; gap: .22rem; overflow-y: auto; padding: .3rem .7rem 1rem; }
.no-threads { padding: 1.5rem .65rem; color: #9ca1a9; font-size: .57rem; text-align: center; }
.topic-list button { width: 100%; display: flex; align-items: center; gap: .7rem; padding: .7rem .65rem; border: 0; border-radius: 8px; color: #646a73; background: transparent; text-align: left; cursor: pointer; }
.topic-list button:hover { background: #e9ebee; }
.topic-list button.active { color: var(--ink); background: white; box-shadow: 0 3px 12px rgb(24 28 34 / 6%); }
.topic-icon { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border-radius: 8px; color: #7c8189; background: #e2e4e8; font-weight: 800; }
.topic-list button.active .topic-icon { color: white; background: var(--accent); }
.thread-copy { min-width: 0; display: grid; flex: 1; gap: .2rem; }
.thread-badges { display: flex; flex: 0 0 auto; align-items: center; gap: .2rem; }
.topic-list b { overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.topic-list small { color: #969ba3; font-size: .56rem; }
.community-guideline { margin: .8rem 0 0; padding: .8rem; border: 1px solid #e0e2e6; border-radius: 10px; background: rgb(255 255 255 / 62%); }
.community-guideline b { font-size: .65rem; }
.community-guideline p { margin: .4rem 0 0; color: var(--muted); font-size: .57rem; line-height: 1.7; }
.chat-panel { min-width: 0; min-height: 0; display: flex; flex-direction: column; background: white; }
.chat-header { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1.1rem; border-bottom: 1px solid var(--line); }
.channel-heading { min-width: 210px; display: flex; align-items: center; gap: .7rem; }
.topic-hash { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 9px; color: var(--accent); background: var(--accent-soft); font-weight: 850; }
.channel-type { display: inline-flex; margin-bottom: .18rem; padding: .15rem .34rem; border-radius: 4px; color: #7f3035; background: #f7e6e7; font-size: .48rem; font-weight: 850; letter-spacing: .04em; }
.chat-header h3 { margin: 0; font-size: .86rem; }
.chat-header p { margin: .25rem 0 0; color: var(--muted); font-size: .6rem; }
.chat-header-tools { min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: .55rem; }
.message-search { min-width: 210px; display: grid; grid-template-columns: minmax(120px, 1fr) auto auto; align-items: center; overflow: hidden; border: 1px solid #d8dbe0; border-radius: 8px; background: #f7f8f9; }
.message-search input { min-width: 0; min-height: 36px; padding: .5rem .6rem; border: 0; outline: 0; background: transparent; font-size: .6rem; }
.message-search button { min-height: 36px; padding: 0 .55rem; border: 0; border-left: 1px solid #dfe2e6; color: #5d646d; background: transparent; font-size: .55rem; font-weight: 750; cursor: pointer; }
.message-search button:hover { background: white; }
.danger-link { padding: .45rem .55rem; border: 1px solid #e1bfc1; border-radius: 7px; color: #92252b; background: #fff7f7; font-size: .55rem; font-weight: 750; white-space: nowrap; cursor: pointer; }
.topic-count { color: var(--muted); font-size: .6rem; white-space: nowrap; }
.load-older { align-self: center; margin: .65rem 0 0; padding: .45rem .75rem; border: 1px solid #d9dce0; border-radius: 999px; color: #666d75; background: white; font-size: .56rem; cursor: pointer; }
.messages { position: relative; min-height: 0; flex: 1; overflow-y: auto; margin: 0; padding: 1rem 1.35rem; list-style: none; scroll-behavior: smooth; }
.message-item { position: relative; display: grid; grid-template-columns: 52px 38px minmax(0, 1fr) auto; align-items: start; gap: .7rem; margin: 0 -.5rem; padding: .78rem .75rem; border-left: 3px solid transparent; border-radius: 8px; }
.message-item:hover, .message-item:focus-within { z-index: 50; background: #fafafb; }
.message-item.unread { border-left-color: #526f82; background: #f5f9fb; }
.message-item.mentioned { border-left-color: var(--accent); background: #fff7f7; }
.message-item.replied { border-left-color: #93681f; background: #fbf7ed; }
.message-item.reply-highlight { animation: reply-highlight 1.6s ease; }
@keyframes reply-highlight { 0%,45% { box-shadow: inset 0 0 0 2px #41678d; } 100% { box-shadow: none; } }
.message-number { padding-top: .28rem; color: #989da5; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .55rem; font-weight: 700; }
.user-avatar-wrap { position: relative; display: inline-flex; border-radius: 50%; outline: 0; }
.message-avatar { position: relative; width: 38px; height: 38px; overflow: visible; font-size: .72rem; }.message-avatar img { overflow: hidden; border-radius: 50%; }
.status-dot { position: absolute; right: -1px; bottom: -1px; width: 11px; height: 11px; border: 2px solid white; border-radius: 50%; background: #a8adb5; }
.status-online { background: #49a874; }.status-offline { background: #a8adb5; }
.profile-card { position: absolute; top: 46px; left: 0; z-index: 100; width: 270px; display: none; padding: .85rem; border: 1px solid #d6d9de; border-radius: 10px; color: var(--ink); background: white; box-shadow: 0 14px 40px rgb(18 22 27 / 18%); opacity: 1; }
.message-item:nth-last-child(-n+2) .profile-card { top: auto; bottom: 46px; }
.user-avatar-wrap:hover .profile-card, .user-avatar-wrap:focus .profile-card, .user-avatar-wrap:focus-within .profile-card { display: grid; gap: .45rem; }
.profile-card > b { font-size: .7rem; }.profile-card > b em { margin-left: .35rem; color: var(--accent); font-size: .5rem; font-style: normal; }
.profile-card > span { display: flex; align-items: center; gap: .35rem; color: var(--muted); font-size: .55rem; }
.profile-card > span .status-dot { position: static; width: 8px; height: 8px; border: 0; }
.profile-card dl { grid-template-columns: 1fr 1fr; margin: .1rem 0 0; border: 0; border-radius: 0; }
.profile-card dl div { padding: .55rem; border: 0; background: #f4f5f7; }
.profile-card dl div:first-child { margin-right: .3rem; }
.profile-card dt { font-size: .48rem; }.profile-card dd { margin-top: .2rem; font-size: .68rem; font-weight: 800; }
.profile-card .profile-bio { display: block; padding-top: .45rem; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: .53rem; line-height: 1.65; }
.profile-card .profile-bio-empty { color: var(--muted); }
.message-body { min-width: 0; flex: 1; }
.message-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.message-meta b { font-size: .72rem; }
.message-meta time { color: #a0a4ab; font-size: .56rem; }
.message-body p { margin: .3rem 0 0; color: var(--ink-soft); font-size: .74rem; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-label { padding: .13rem .3rem; border-radius: 999px; color: #8a2026; background: #f4dfe1; font-size: .48rem; font-weight: 850; }
.message-state { min-width: auto; min-height: 17px; padding-inline: .3rem; font-size: .46rem; }
.message-mentions { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin-top: .38rem; }
.message-mentions span { color: var(--muted); font-size: .5rem; }.message-mentions b { color: var(--accent); font-size: .58rem; }
.message-item.deleted .message-number, .message-item.deleted .message-body { opacity: .72; }.message-body .tombstone { color: #878c94; font-style: italic; }
.message-actions { display: flex; flex-direction: column; align-items: stretch; gap: .3rem; }
.message-actions button { opacity: 0; padding: .3rem .42rem; border: 1px solid #dddfe3; border-radius: 6px; background: white; font-size: .52rem; white-space: nowrap; cursor: pointer; }
.message-actions .message-like.active { color: #97222b; border-color: #e4b9bd; background: #faecee; }
.message-delete { color: #7c5457; }
.message-reply { color: #41678d; }
.message-item:hover .message-actions button, .message-actions button:focus-visible { opacity: 1; }
.messages-empty { display: grid; min-height: 100%; place-content: center; justify-items: center; color: var(--muted); text-align: center; }
.messages-empty > span { display: grid; width: 52px; height: 52px; place-items: center; margin-bottom: .8rem; border-radius: 14px; color: var(--accent); background: var(--accent-soft); font-size: 1.4rem; font-weight: 850; }
.messages-empty b { color: var(--ink); font-size: .85rem; }
.messages-empty p { max-width: 340px; margin: .45rem 0 0; font-size: .65rem; line-height: 1.7; }
.message-form { position: sticky; bottom: 0; z-index: 2; display: grid; gap: .4rem; padding: .55rem 1.25rem 1.2rem; background: linear-gradient(transparent, white 14%); }
.mention-control { display: grid; justify-items: end; gap: .28rem; justify-self: end; color: var(--muted); font-size: .55rem; font-weight: 750; }.mention-picker { display: flex; align-items: center; justify-content: flex-end; gap: .45rem; }.mention-control small { display: block; color: #969ba3; font-size: .48rem; font-weight: 500; text-align: right; }
.mention-control select { min-height: 32px; max-width: 190px; padding: .35rem .5rem; font-size: .58rem; }
.selected-mentions { max-width: min(640px, 100%); display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .3rem; }
.selected-mentions:empty { display: none; }
.selected-mentions button { min-height: 28px; padding: .3rem .5rem; border: 1px solid #e2bfc1; border-radius: 999px; color: #842128; background: #fff5f5; font-size: .52rem; font-weight: 800; cursor: pointer; }
.reply-preview { display: flex; align-items: center; justify-content: space-between; gap: .8rem; justify-self: stretch; padding: .55rem .7rem; border-left: 3px solid #41678d; border-radius: 7px; color: #385873; background: #eef4f8; }.reply-preview[hidden] { display: none; }.reply-preview > div { min-width: 0; display: grid; gap: .15rem; }.reply-preview span { font-size: .48rem; font-weight: 850; }.reply-preview b { overflow: hidden; font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }.reply-preview button { width: 28px; height: 28px; flex: 0 0 auto; border: 0; border-radius: 50%; color: #385873; background: rgb(255 255 255 / 70%); cursor: pointer; }
.reply-context { max-width: 620px; display: grid; gap: .18rem; margin-top: .4rem; padding: .45rem .6rem; border-left: 3px solid #9ab1c4; border-radius: 0 6px 6px 0; color: #526d83; background: #f2f6f8; text-decoration: none; }.reply-context span { font-size: .52rem; font-weight: 800; }.reply-context q { overflow: hidden; color: #697681; font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }.reply-context q::before, .reply-context q::after { content: none; }
.message-composer { display: grid; grid-template-columns: minmax(0, 1fr) 42px; align-items: center; padding: .35rem; border: 1px solid #d8dbe0; border-radius: 14px; background: #f6f7f8; box-shadow: 0 8px 24px rgb(21 25 31 / 7%); }
.message-composer:focus-within { border-color: #aeb3ba; box-shadow: 0 0 0 3px rgb(23 25 29 / 5%); }
.message-composer input { min-width: 0; min-height: 42px; padding: .6rem .75rem; border: 0; outline: 0; background: transparent; font-size: .74rem; }
.message-composer button { display: grid; width: 38px; height: 38px; place-items: center; border: 0; border-radius: 10px; color: white; background: var(--accent); cursor: pointer; }
.message-composer button:disabled { opacity: .42; cursor: not-allowed; }
.message-composer svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.community-modal { width: min(520px, calc(100% - 2rem)); }
.community-modal h2 { margin: 0; padding-right: 2rem; font-size: 1.35rem; }
.community-modal > p:not(.eyebrow) { margin: .6rem 0 1.3rem; color: var(--muted); font-size: .68rem; line-height: 1.7; }
.community-modal form { display: grid; gap: .85rem; }
.community-modal form label { display: grid; gap: .35rem; font-size: .63rem; font-weight: 750; }
.community-modal input, .community-modal textarea, .community-modal select { width: 100%; min-height: 44px; padding: .7rem .75rem; border: 1px solid #d7dade; border-radius: 8px; font: inherit; font-size: .7rem; resize: vertical; }

/* Dialogs and public search */
.modal { width: min(680px, calc(100% - 2rem)); max-height: min(90svh, 900px); overflow: auto; padding: 1.8rem; border: 0; border-radius: var(--radius-lg); color: var(--ink); background: white; box-shadow: var(--shadow-lg); }
.modal::backdrop { background: rgb(5 7 10 / 76%); backdrop-filter: blur(6px); }
.dialog-close { position: absolute; top: 1rem; right: 1rem; z-index: 2; display: grid; width: 36px; height: 36px; place-items: center; border: 0; border-radius: 50%; color: #646970; background: #f0f1f3; font-size: 1.2rem; cursor: pointer; }
.search-results-modal { width: min(820px, calc(100% - 2rem)); }
.search-results-modal h2 { margin: 0 0 1.2rem; font-size: 1.45rem; }
.lp-result-list { display: grid; gap: .5rem; }
.lp-result-card { width: 100%; display: grid; grid-template-columns: 92px minmax(0, 1fr) auto 24px; align-items: center; gap: .85rem; padding: .7rem; border: 1px solid transparent; border-radius: 12px; background: #f7f8f9; text-align: left; cursor: pointer; }
.lp-result-card:hover { border-color: #d8dbe0; background: white; box-shadow: var(--shadow-sm); }
.lp-result-image { width: 88px; height: 56px; display: grid; overflow: hidden; place-items: center; border: 1px solid #d9dce0; border-radius: 8px; background: white; }
.lp-result-image img { width: 100%; height: 100%; object-fit: contain; }
.lp-result-card > span:nth-child(2) { min-width: 0; display: grid; gap: .25rem; }
.lp-result-card b { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.lp-result-card small { color: var(--muted); font-size: .6rem; }
.result-denomination { padding: .32rem .5rem; border-radius: 999px; color: #5e636a; background: #e9ebee; font-size: .6rem; font-weight: 750; }
.result-arrow { color: var(--accent); font-size: 1rem; }
.lp-results-empty { padding: 3.5rem 1rem; border: 1px dashed #d6d9de; border-radius: 12px; text-align: center; }
.lp-results-empty b { font-size: .85rem; }.lp-results-empty p { margin: .5rem 0 0; color: var(--muted); font-size: .68rem; }
.search-results-cta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.1rem; padding: 1rem; border-radius: 12px; background: #f4f5f7; }
.search-results-cta p { margin: 0; color: var(--muted); font-size: .65rem; }
.detail-modal { width: min(760px, calc(100% - 2rem)); }
.detail-heading { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); gap: 1.3rem; align-items: center; padding-right: 2rem; }
.detail-heading h2 { margin: 0; font-size: clamp(1.3rem, 3vw, 1.85rem); line-height: 1.45; }
.detail-image { margin: 0; text-align: center; }
.detail-image img { width: 100%; max-height: 180px; display: block; object-fit: contain; border: 1px solid #c9ccd1; border-radius: 10px; background: white; box-shadow: 0 9px 24px rgb(25 29 35 / 12%); }
.detail-image figcaption { margin-top: .45rem; color: var(--muted); font-size: .55rem; }
.lead { margin: .7rem 0 0; color: var(--muted); font-size: .7rem; line-height: 1.8; }
dl { display: grid; grid-template-columns: 1fr 1fr; margin: 1.4rem 0 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
dl div { min-width: 0; padding: .8rem 1rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
dl div:nth-child(2n) { border-right: 0; }.detail-modal .detail-facts div:nth-last-child(-n+2) { border-bottom: 0; }.detail-modal .detail-facts div:nth-last-child(2):nth-child(even) { border-bottom: 1px solid var(--line); }
dt { color: var(--muted); font-size: .57rem; font-weight: 750; }dd { margin: .3rem 0 0; font-size: .73rem; }dd small { display: block; margin-top: .2rem; color: var(--muted); font-size: .58rem; }
.official-info { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; margin-top: .8rem; }
.official-info > div { padding: .9rem 1rem; border-radius: 10px; background: #f4f5f7; }
.official-info span { color: var(--accent); font-size: .55rem; font-weight: 800; letter-spacing: .08em; }
.official-info h3 { margin: .35rem 0 .6rem; font-size: .76rem; }
.official-info a { color: #536c78; font-size: .62rem; text-underline-offset: 3px; }
.official-info-button { color: #536c78; font-weight: 500; }
.award-history, .set-price-history { margin-top: .9rem; padding: 1rem; border: 1px solid #ded6bf; border-radius: 12px; background: #fbf8ef; }
.award-history-heading { display: flex; align-items: center; gap: .7rem; }.award-seal { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #fff8dd; background: #8a6720; box-shadow: inset 0 0 0 4px #b89549; }.award-history h3, .set-price-history h3 { margin: 0; font-size: .9rem; }.award-history .eyebrow, .set-price-history .eyebrow { margin-bottom: .28rem; color: #84651f; }
.award-history-list { display: grid; gap: .5rem; margin-top: .8rem; }.award-history-list article { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; padding: .7rem .8rem; border-radius: 8px; background: white; }.award-history-list time { color: #84651f; font-size: .62rem; font-weight: 850; }.award-history-list b { font-size: .68rem; }.award-history-list p { margin: .2rem 0 0; color: var(--muted); font-size: .55rem; }.award-history-list a, .award-source { color: #536c78; font-size: .55rem; font-weight: 750; text-underline-offset: 3px; }.award-source { display: inline-flex; margin-top: .7rem; }
.set-price-history { border-color: var(--line); background: #f7f8f9; }.set-price-history > div:first-child > p:last-child { margin: .35rem 0 0; color: var(--muted); font-size: .57rem; line-height: 1.55; }.set-price-list { display: grid; gap: .42rem; margin-top: .8rem; }.set-price-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto 20px; align-items: center; gap: .7rem; padding: .7rem .75rem; border: 1px solid var(--line); border-radius: 8px; background: white; }.set-price-list b { display: block; font-size: .64rem; }.set-price-list small { display: block; margin-top: .2rem; color: var(--muted); font-size: .53rem; }.set-price-list strong { font-size: .7rem; white-space: nowrap; }.set-price-list a { color: #536c78; text-decoration: none; }
.detail-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.detail-ownership { display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: center; gap: .55rem .8rem; margin: 1rem 0; padding: .85rem 1rem; border: 1px solid #d9dce0; border-radius: 9px; background: #f7f8f9; }
.detail-ownership .quantity { margin-top: 0; }.detail-ownership .field-error { margin: 0; }
.catalog-source-links { display: flex; flex-wrap: wrap; gap: .45rem .9rem; margin-top: .7rem; }.catalog-source-links a { color: #536c78; font-size: .58rem; font-weight: 750; text-underline-offset: 3px; }
.owned-set-placeholder { color: #765f35; background: #eee5d2; font-size: .55rem; font-weight: 850; letter-spacing: .08em; }
.set-thumbnail-heading, .set-thumbnail-cell { width: 84px; text-align: center; }
.coin-set-thumbnail { width: 72px; height: 50px; display: grid; margin: 0 auto; overflow: hidden; place-items: center; border: 1px solid #d2d5d9; border-radius: 7px; background: white; }
.coin-set-thumbnail img { display: block; width: 100%; height: 100%; object-fit: contain; }
.coin-set-thumbnail-fallback { color: #765f35; background: #eee5d2; font-size: .5rem; font-weight: 850; letter-spacing: .08em; }
.favorite-panel { margin-top: 1rem; }.favorite-items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; padding: 0 1rem 1rem; }.favorite-items article { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; border: 1px solid var(--line); border-radius: 9px; background: #fafafa; }.favorite-items article > button:first-child { min-width: 0; display: grid; grid-template-columns: 26px minmax(0, 1fr); align-items: center; gap: .45rem; padding: .75rem; border: 0; background: transparent; text-align: left; cursor: pointer; }.favorite-items article > button:first-child > span:first-child { color: #9a762c; font-size: 1rem; }.favorite-items b, .favorite-items small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.favorite-items b { font-size: .65rem; }.favorite-items small { margin-top: .25rem; color: var(--muted); font-size: .52rem; }.favorite-remove { margin-right: .6rem; padding: .35rem; border: 0; color: var(--muted); background: transparent; font-size: .53rem; text-decoration: underline; cursor: pointer; }
.collection-controls { display: grid; grid-template-columns: auto auto; align-items: center; gap: .4rem; }.collection-controls .favorite-toggle { grid-column: 1 / -1; min-height: 30px; padding: .3rem .45rem; border: 1px solid #d9d4c7; border-radius: 6px; color: #76602d; background: #fffaf0; font-size: .52rem; font-weight: 750; cursor: pointer; }.collection-controls .favorite-toggle[aria-pressed="true"] { color: #6f5319; border-color: #cdb674; background: #f5ead1; }.collection-controls .field-error { grid-column: 1 / -1; }
.settings-contact-link { display: inline-flex; margin: .8rem 0; color: #526b78; font-size: .62rem; font-weight: 750; text-underline-offset: 3px; }.account-security-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .5rem; margin-top: .8rem; }.account-security-actions .button { width: 100%; min-height: 42px; margin: 0; font-size: .62rem; }
.mfa-setup-panel > p, .mfa-recovery-panel > p, .mfa-start-form > p { color: var(--muted); font-size: .65rem; line-height: 1.7; }.mfa-setup-panel > img { width: 220px; height: 220px; display: block; margin: 1rem auto; border: 10px solid white; background: white; }.mfa-setup-panel details { margin: .8rem 0; padding: .7rem; border: 1px solid var(--line); border-radius: 8px; }.mfa-setup-panel summary { font-size: .62rem; font-weight: 750; cursor: pointer; }.mfa-setup-panel code { display: block; overflow-wrap: anywhere; padding: .65rem; border-radius: 6px; background: #f2f3f5; font-size: .65rem; user-select: all; }.mfa-recovery-panel pre { padding: 1rem; border-radius: 8px; background: #f2f3f5; font: 700 .75rem/1.8 ui-monospace, monospace; text-align: center; }.auth-forgot-password { margin: -.25rem auto 0; }
.auth-modal { width: min(500px, calc(100% - 2rem)); padding: 2rem; }
.auth-modal .logo { margin-bottom: 1.6rem; }
.auth-modal h2 { margin: 0; font-size: 1.55rem; }
.auth-lead { margin: .55rem 0 0; color: var(--muted); font-size: .7rem; line-height: 1.7; }
.auth-tabs { display: flex; margin: 1.5rem 0 1rem; border-bottom: 1px solid var(--line); }
.auth-tabs button { flex: 1; padding: .7rem; border: 0; border-bottom: 2px solid transparent; color: var(--muted); background: none; font-size: .72rem; cursor: pointer; }
.auth-tabs button.active { border-color: var(--accent); color: var(--ink); font-weight: 800; }
.auth-tabs + form { display: grid; gap: .85rem; }
.auth-tabs + form label { display: grid; gap: .35rem; font-size: .65rem; font-weight: 750; }
.auth-tabs + form input { min-height: 46px; padding: .75rem; }
.auth-turnstile { min-height: 65px; display: flex; justify-content: center; align-items: center; }
.auth-recovery-warning { margin: 0; font-size: .58rem; }
.auth-tabs + form label small { color: var(--muted); font-size: .56rem; font-weight: 500; }
.social-divider { margin: 1.55rem 0 1rem; border-top: 1px solid var(--line); text-align: center; }
.social-divider span { position: relative; top: -.7rem; padding: 0 .7rem; color: var(--muted); background: white; font-size: .6rem; }
.social-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.social { color: var(--ink-soft); background: white; border-color: var(--line); }
.oauth-note { display: block; margin-top: .75rem; color: var(--muted); font-size: .55rem; line-height: 1.6; }
.auth-contact-link { display: block; width: fit-content; margin: 1rem auto 0; color: #526b78; font-size: .62rem; font-weight: 750; text-underline-offset: 3px; }

@media (max-width: 1120px) {
  .product-tour-grid { grid-template-columns: 1fr; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .owned-coins { grid-template-columns: 1fr 1fr; }
  .market-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; }
  .market-row { grid-template-columns: 38px minmax(0, 1fr); border: 0; }
  .market-row svg { grid-column: 1 / -1; width: 100%; height: 36px; }
  .coin-card-grid { grid-template-columns: 1fr 1fr; }
  .foreign-coin-grid { grid-template-columns: 1fr; }
  .circulation-summary { grid-template-columns: repeat(3, 1fr); }
  .year-coin-progress { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 901px) and (max-height: 700px) {
  .app-sidebar { overflow-y: auto; }
  .app-nav { flex: 0 0 auto; overflow-y: visible; }
  .sidebar-account { margin-top: .6rem; }
}

@media (max-width: 900px) {
  .lp-header { grid-template-columns: auto auto; gap: .6rem 1rem; }
  .public-catalog, .public-news, .public-reference-section { scroll-margin-top: 122px; }
  .lp-tabs { grid-column: 1 / -1; grid-row: 2; }
  .lp-content { padding-top: 10.5rem; }
  .app-shell { display: block; }
  .app-sidebar { position: fixed; inset: 0 0 auto; width: auto; height: 70px; flex-direction: row; align-items: center; overflow-x: auto; overscroll-behavior-inline: contain; padding: .7rem 1rem; border-bottom: 1px solid rgb(255 255 255 / 8%); scrollbar-width: thin; }
  .app-stage { margin-left: 0; padding-top: 70px; }
  .app-sidebar .logo { padding: 0; }
  .app-sidebar .logo-symbol { width: 36px; height: 36px; }
  .app-sidebar .logo small { display: none; }
  .app-nav { flex: 0 0 auto; display: flex; gap: .25rem; margin-left: auto; overflow: visible; }
  .app-nav a { min-height: 42px; padding: .6rem .7rem; }
  .app-nav a.active { box-shadow: inset 0 -3px var(--accent); }
  .app-nav svg { width: 18px; height: 18px; }
  .app-nav .app-external-link { margin-top: 0; border-top: 0; border-radius: 10px; }
  .account-area.sidebar-account { display: flex; flex: 0 0 auto; margin: 0 0 0 .45rem; padding: 0; border: 0; }
  .sidebar-profile { display: flex; padding: 0; }
  .sidebar-account .account-copy { display: none; }
  .sidebar-account .button { width: auto; min-height: 36px; margin: 0 0 0 .35rem; padding: .45rem .55rem; }
  .community-view, .community-layout { min-height: 620px; height: calc(100svh - 108px); }
}

@media (max-width: 760px) {
  .desktop-break { display: none; }
  .metric-grid { grid-template-columns: 1fr 1fr; }
  .metric-primary { grid-column: 1 / -1; }
  .market-list { grid-template-columns: 1fr; gap: 0; }
  .market-row { grid-template-columns: 38px minmax(0, 1fr) 100px; border-bottom: 1px solid var(--line); }
  .market-row svg { grid-column: auto; width: 100px; }
  .controls { display: grid; grid-template-columns: 1fr 1fr; }
  .catalog-search { min-width: 0; grid-column: 1 / -1; }
  .catalog-toolbar { align-items: stretch; flex-direction: column; }
  .view-switch { align-self: flex-end; }
  .community-view, .community-layout { height: auto; min-height: 0; }
  .community-layout { grid-template-columns: 1fr; overflow: visible; }
  .topics-panel { border-right: 0; border-bottom: 1px solid var(--line); }
  .topics-heading { padding-bottom: .5rem; }
  .topic-list { max-height: 230px; display: grid; overflow: auto; padding-bottom: .8rem; }
  .topic-list button { min-width: 0; }
  .chat-panel { height: 68svh; min-height: 520px; }
  .chat-header { align-items: stretch; flex-direction: column; }
  .chat-header-tools { justify-content: stretch; }
  .message-search { flex: 1; }
  .public-catalog-heading { display: block; }
  .public-catalog-heading > p { margin-top: 1rem; }
  .public-news-heading, .public-reference-heading { display: block; }.public-news-heading > p, .public-reference-heading > p { margin-top: 1rem; }.public-news-list { columns: 1; }
  .public-register-cta { align-items: stretch; flex-direction: column; }
  .owned-coins { grid-template-columns: 1fr; }
  .favorite-items { grid-template-columns: 1fr 1fr; }
  .dashboard-collection-grid { grid-template-columns: 1fr; }
  .purchase-summary { grid-template-columns: 1fr; }
  .mypage-grid { grid-template-columns: 1fr; }
  .news-items > section { grid-template-columns: 1fr; }
  .news-items dl div:first-child { border-left: 0; }
  .foreign-coin-card { grid-template-columns: 1fr; }
  .contact-section { grid-template-columns: 1fr; }
  .admin-contact-rows { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .lp-header { padding: .75rem 1rem; }
  .public-catalog, .public-news, .public-reference-section { scroll-margin-top: 168px; }
  .logo-symbol { width: 36px; height: 36px; }
  .logo b { font-size: 1.1rem; }
  .logo small { display: none; }
  .lp-actions { gap: .4rem; }
  .lp-actions .button { min-height: 40px; padding: .58rem .72rem; font-size: .68rem; }
  .lp-tabs { display: flex; justify-content: flex-start; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
  .lp-tabs a { width: auto; flex: 0 0 auto; justify-content: center; padding-inline: .65rem; font-size: .55rem; line-height: 1.35; text-align: center; white-space: nowrap; }
  .lp-content { width: 100%; max-width: 100vw; align-items: flex-start; padding: 10.5rem 1.15rem 6rem; text-align: left; }
  .lp-content > * { max-width: 100%; }
  .lp-hero-brand { margin-bottom: 1rem; font-size: 1.05rem; }
  .lp-hero-brand img { width: 44px; height: 44px; }
  .lp-kicker { font-size: .56rem; line-height: 1.6; }
  .lp-content h1 { width: 100%; font-size: clamp(1.12rem, 5.6vw, 2.85rem); line-height: 1.36; letter-spacing: .03em; white-space: nowrap; }
  .lp-lead { width: 100%; margin-top: 1.15rem; font-size: .82rem; overflow-wrap: anywhere; }
  .lp-footer { left: 1rem; right: 1rem; }
  .product-tour { padding: 2.25rem 1rem; scroll-margin-top: 168px; }.product-tour-flow { align-items: stretch; flex-direction: column; border-radius: 12px; }.product-tour-flow i { display: none; }.product-tour-flow span { justify-content: center; }.product-tour-grid > article { grid-template-columns: 1fr; }.tour-screen { min-height: 110px; }
  .public-catalog { padding: 1.1rem 1rem 2.75rem; }
  .public-news { padding: 1.1rem 1rem 2.75rem; }
  .public-reference-section { padding: 1.1rem 1rem 2.75rem; }
  .contact-section { padding: 2.5rem 1rem; scroll-margin-top: 168px; }.contact-form-grid { grid-template-columns: 1fr; }.contact-form { padding: 1rem; }
  .app-sidebar { overflow-x: auto; }
  .app-sidebar > .logo span:last-child { display: none; }
  .app-nav a { padding-inline: .65rem; }
  .app-nav a > span:not(.nav-notifications) { display: none; }
  .app-nav .nav-notifications { position: absolute; top: 2px; right: 0; display: flex; }
  .app-nav a { position: relative; }
  .account-copy { display: none; }
  .account-area { gap: .45rem; }
  .account-area .button { min-height: 38px; padding: .5rem .65rem; font-size: .64rem; }
  .app-main { padding: 1.3rem 1rem 2rem; }
  .view-heading { display: block; }
  .view-heading > p { margin-top: .5rem; }
  .metric-grid { grid-template-columns: 1fr; }
  .metric-primary { grid-column: auto; }
  .metric-card { min-height: 132px; }
  .progress-list { padding-inline: 1rem; }
  .progress-item { grid-template-columns: 54px minmax(0, 1fr); gap: .75rem; }
  .progress-coin { width: 54px; height: 42px; }
  .market-row { grid-template-columns: 34px minmax(0, 1fr) 82px; }
  .market-symbol { width: 34px; height: 34px; }
  .market-row svg { width: 82px; }
  .controls { grid-template-columns: 1fr; }
  .catalog-search { grid-column: auto; }
  .controls > label:not(.catalog-search) { min-width: 0; }
  .controls .button { width: 100%; }
  .bulk-actions { align-items: stretch; flex-direction: column; }.bulk-actions > span { margin: 0; }.bulk-actions .button { width: 100%; }
  .view-switch { width: 100%; }
  .coin-card-grid { grid-template-columns: 1fr; }
  .owned-coins { padding-inline: 1rem; }
  .favorite-items { grid-template-columns: 1fr; }
  .year-coin-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-inline: 1rem; }
  .year-coin-donut { width: 82px; }.year-coin-donut > span { width: 60px; }
  .news-card-footer { align-items: flex-start; }
  .community-view, .community-layout { min-height: 0; }
  .chat-panel { min-height: 480px; }
  .chat-header { padding-inline: .9rem; }
  .chat-header p { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .topic-count { display: none; }
  .messages { padding-inline: .8rem; }
  .message-form { padding-inline: .75rem; }
  .message-item { grid-template-columns: 42px 34px minmax(0, 1fr); gap: .5rem; }
  .message-avatar { width: 34px; height: 34px; }
  .message-actions { grid-column: 3; flex-direction: row; justify-self: start; }
  .message-actions button { opacity: 1; }
  .message-search { min-width: 0; }
  .danger-link { flex: 0 0 auto; }
  .modal { padding: 1.4rem; }
  .search-results-modal h2 { padding-right: 2rem; font-size: 1.18rem; }
  .lp-result-card { grid-template-columns: 70px minmax(0, 1fr) 20px; }
  .lp-result-image { width: 68px; height: 46px; }
  .result-denomination { display: none; }
  .search-results-cta { align-items: stretch; flex-direction: column; }
  .detail-heading { grid-template-columns: 1fr; padding-right: 1.6rem; }
  .detail-image { display: block; }
  dl, .official-info { grid-template-columns: 1fr; }
  dl div, dl div:nth-child(2n) { border-right: 0; border-bottom: 1px solid var(--line); }
  .detail-modal .detail-facts div:nth-last-child(2) { border-bottom: 1px solid var(--line); }
  .detail-modal .detail-facts div:last-child { border-bottom: 0; }
  .social-buttons { grid-template-columns: 1fr; }
  .quantity-row { grid-template-columns: 58px minmax(0, 1fr) 48px; gap: .55rem; }
  .coin-set-category-row { grid-template-columns: 92px minmax(0, 1fr) 72px; }
  .purchase-breakdown { grid-template-columns: 1fr; }
  .account-danger-zone { grid-template-columns: 1fr; }.account-danger-zone .button { justify-self: stretch; }
  .news-facts { grid-template-columns: 1fr; }
  .news-facts div:first-child { border-right: 0; border-bottom: 1px solid var(--line); }
  .circulation-summary { grid-template-columns: 1fr 1fr; }
  .circulation-latest .panel-heading { align-items: flex-start; flex-direction: column; }
  .award-history-list article { grid-template-columns: auto minmax(0, 1fr); }.award-history-list article a { grid-column: 2; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
