:root {
  color-scheme: light;
  --bg: #f7f4ee;
  --ink: #231f1b;
  --muted: #70695f;
  --line: #d8d0c3;
  --paper: #fffdf8;
  --accent: #9d2f2f;
  --accent-2: #2f6f67;
  --gold: #b98428;
  --forecast-high: var(--accent);
  --forecast-soon: #8a641f;
  --forecast-watch: var(--accent-2);
  --forecast-canvas: #eee7da;
  --forecast-rail: #ded4c5;
  --shadow: 0 14px 36px rgba(45, 32, 20, 0.08);
}

.blog-application-section {
  border-top: 4px solid var(--accent, #59636f);
}

.blog-application-form,
.blog-application-history {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
}

.blog-slug-input {
  display: flex;
  align-items: center;
  gap: .35rem;
  padding: .2rem .65rem;
  border: 1px solid var(--line, #cfd3d8);
  border-radius: .55rem;
  background: #fff;
}

.blog-slug-input input {
  min-width: 8rem;
  border: 0;
  padding-inline: .2rem;
}

.blog-application-card {
  padding: 1rem;
  border: 1px solid var(--line, #cfd3d8);
  border-radius: .7rem;
  background: #f7f8f9;
}

.blog-application-card p {
  margin: .35rem 0;
}

@media (max-width: 640px) {
  .blog-slug-input {
    align-items: stretch;
    flex-wrap: wrap;
  }

  .blog-slug-input input {
    flex: 1 1 10rem;
  }
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  background:
    linear-gradient(180deg, rgba(157, 47, 47, 0.08), transparent 260px),
    var(--bg);
  color: var(--ink);
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Hiragino Sans",
    "Yu Gothic",
    Meiryo,
    sans-serif;
  line-height: 1.6;
}

.site-header,
main,
footer {
  width: min(1180px, calc(100% - 32px));
  margin-inline: auto;
}

.site-header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 28px 0 18px;
}

.site-header-main {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  width: 100%;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  flex: 0 0 56px;
  border-radius: 14px;
  box-shadow: 0 8px 22px rgba(45, 32, 20, 0.1);
  overflow: hidden;
}

.brand-mark img {
  display: block;
  width: 100%;
  height: 100%;
}

.kicker {
  margin: 0 0 2px;
  color: var(--accent-2);
  font-size: 13px;
  font-weight: 700;
}

.alpha-badge {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  margin-left: 8px;
  padding: 1px 7px;
  border: 1px solid rgba(157, 47, 47, 0.28);
  border-radius: 999px;
  background: rgba(157, 47, 47, 0.07);
  color: var(--accent);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.03em;
  vertical-align: 1px;
}

.header-account {
  display: flex;
  justify-content: flex-end;
  width: min(360px, 100%);
}

.header-account-panel {
  display: grid;
  gap: 10px;
  width: 100%;
}

.header-account-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
}

.account-link,
.account-button {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.9);
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.mini-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 6px;
  min-height: 30px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.9);
  color: var(--accent-2);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
  cursor: pointer;
}

.command-preview {
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.84);
  color: var(--ink);
  font-family: "SFMono-Regular", Consolas, monospace;
  font-size: 12px;
  line-height: 1.6;
  white-space: pre-wrap;
  word-break: break-word;
}

.command-copy-button {
  margin-top: 12px;
}

.account-button {
  cursor: pointer;
}

.account-name {
  font-size: 13px;
  font-weight: 800;
  color: var(--accent-2);
  text-decoration: none;
}

.account-name:hover,
.account-name:focus-visible {
  text-decoration: underline;
}

.header-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(18rem, .95fr);
  gap: 8px;
  align-items: end;
}

.header-search-label {
  gap: 4px;
  text-align: left;
}

.header-search-input {
  min-height: 38px;
}

.header-search-button {
  min-height: 38px;
  padding: 0 16px;
  border: 1px solid rgba(47, 111, 103, 0.28);
  background: rgba(47, 111, 103, 0.12);
  color: var(--accent-2);
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

h1 {
  margin: 0;
  font-size: clamp(24px, 4vw, 38px);
  letter-spacing: 0;
  line-height: 1.2;
}

.subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 16px;
}

.subnav a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.82);
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.subnav a:hover {
  border-color: rgba(47, 111, 103, 0.45);
}

.site-global-nav {
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}

.reference-sort-heading {
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--accent) 35%, transparent);
  text-underline-offset: .22rem;
  cursor: pointer;
}

.site-global-nav a {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  border-color: transparent;
  background: transparent;
}

.ui-icon {
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.header-search-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

.site-global-nav a:hover,
.site-global-nav a:focus-visible,
.site-global-nav a[aria-current="page"] {
  border-color: var(--accent);
  background: var(--paper);
  color: var(--accent-2);
}

.site-global-nav .site-global-nav-my-page {
  margin-left: auto;
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}

.site-global-nav .site-global-nav-my-page:hover,
.site-global-nav .site-global-nav-my-page:focus-visible,
.site-global-nav .site-global-nav-my-page[aria-current="page"] {
  border-color: var(--accent-2);
  background: var(--accent-2);
  color: #fff;
}

.page-subnav {
  gap: 7px;
  margin-top: -4px;
}

.page-subnav a {
  min-height: 34px;
  padding-inline: 11px;
  color: var(--muted);
  font-size: 12px;
}

@media (max-width: 640px) {
  .site-global-nav {
    flex-wrap: nowrap;
    width: calc(100% + 24px);
    margin-inline: -12px;
    padding-inline: 12px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }
  .site-global-nav::-webkit-scrollbar { display: none; }
  .site-global-nav a { flex: 0 0 auto; white-space: nowrap; }
  body[data-page="search"] .header-search-form { display: none; }
  .site-global-nav {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .site-global-nav a {
    flex: 0 0 auto;
  }

  .site-global-nav .site-global-nav-my-page {
    margin-left: 0;
  }
}

.portal-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, 0.8fr);
  gap: 18px;
  margin-bottom: 18px;
}

body[data-page="home"] .portal-hero {
  grid-template-columns: 1fr;
  margin-bottom: 24px;
}

body[data-page="home"] .portal-hero-main {
  padding: 22px 24px;
}

.portal-help p {
  margin: 8px 0 12px;
}

body[data-page="home"] .db-guide-card {
  display: flex;
  min-height: 170px;
  flex-direction: column;
}

body[data-page="home"] .db-guide-card .inline-link {
  margin-top: auto;
}

.home-community-highlight {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(1rem, 3vw, 2.5rem);
  align-items: center;
  margin: 1.25rem 0;
  padding: clamp(1.35rem, 3vw, 2.25rem);
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--accent-2) 32%, var(--line));
  background:
    radial-gradient(circle at 92% 12%, color-mix(in srgb, var(--accent) 14%, transparent) 0 4.5rem, transparent 4.6rem),
    linear-gradient(135deg, color-mix(in srgb, var(--accent-2) 9%, var(--paper)), var(--paper) 62%);
  box-shadow: var(--shadow);
}

.home-community-highlight::before {
  content: "";
  position: absolute;
  inset-block: 0;
  left: 0;
  width: 5px;
  background: linear-gradient(var(--accent-2), var(--accent));
}

.home-community-copy {
  position: relative;
  max-width: 52rem;
  z-index: 1;
}

.home-community-copy h2 {
  max-width: 22em;
  margin: .15rem 0 .7rem;
  font-size: clamp(1.65rem, 3.2vw, 2.55rem);
  line-height: 1.35;
  letter-spacing: -.025em;
}

.home-community-copy > p:last-child {
  max-width: 48rem;
  margin: 0;
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.8;
}

.home-community-actions {
  position: relative;
  display: flex;
  width: fit-content;
  margin-top: 1.1rem;
  gap: .7rem;
  align-items: center;
  text-align: center;
}

.home-community-actions .primary-button {
  min-height: 46px;
  padding-inline: 1.25rem;
  text-decoration: none;
}

.home-community-actions .inline-link {
  font-size: .82rem;
}

.home-community-visual {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  border: 1px solid color-mix(in srgb, var(--accent-2) 34%, var(--line));
  border-radius: 2px;
  background: #d8d0c4;
  box-shadow: 0 16px 34px rgb(32 35 38 / 14%);
}

.home-community-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 35%);
}

.home-community-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 64% center;
}

@media (min-width: 641px) {
  .home-community-highlight {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
  }

  .home-community-visual {
    grid-row: 1;
    aspect-ratio: 1729 / 910;
    border: 0;
    box-shadow: none;
  }

  .home-community-visual img {
    object-position: center;
  }

  .home-community-copy {
    display: flex;
    grid-row: 2;
    width: 100%;
    max-width: none;
    padding: .85rem 1rem;
    justify-content: flex-end;
  }

  .home-community-copy > .portal-kicker,
  .home-community-copy > h2,
  .home-community-copy > p {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .home-community-actions {
    margin-top: 0;
  }
}

.archive-database {
  margin: 8px 0 20px;
}

.archive-database > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
  border: 1px solid var(--line);
  background: var(--paper);
  box-shadow: var(--shadow);
  cursor: pointer;
  list-style: none;
}

.archive-database > summary::-webkit-details-marker {
  display: none;
}

.archive-database > summary span:first-child {
  display: grid;
  gap: 2px;
}

.archive-database > summary strong {
  font-size: 17px;
}

.archive-database > summary small {
  color: var(--muted);
}

.archive-toggle-label {
  flex: 0 0 auto;
  color: var(--accent-2);
  font-size: 13px;
  font-weight: 800;
}

.archive-database[open] .archive-toggle-label::before {
  content: "検索条件を閉じる";
}

.archive-database[open] .archive-toggle-label {
  font-size: 0;
}

.archive-database[open] .archive-toggle-label::before {
  font-size: 13px;
}

.archive-database[open] > summary {
  margin-bottom: 14px;
}

.portal-hero-main,
.portal-hero-side,
.portal-card,
.db-guide-card,
.section-intro {
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.86);
  box-shadow: var(--shadow);
}

.portal-hero-main,
.portal-hero-side {
  padding: 20px 22px;
}

.portal-kicker {
  margin: 0 0 6px;
  color: var(--accent-2);
  font-size: 12px;
  font-weight: 800;
}

.portal-hero h2,
.portal-card h2,
.db-guide-head h2 {
  margin: 0;
  font-size: 22px;
  line-height: 1.35;
}

.portal-hero-main p,
.portal-card p,
.db-guide-head p,
.db-guide-card p,
.section-intro p {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.8;
}

.portal-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.portal-primary-link,
.portal-secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 16px;
  font-size: 13px;
  font-weight: 800;
  text-align: center;
  text-decoration: none;
}

.portal-primary-link {
  border: 1px solid rgba(47, 111, 103, 0.45);
  background: var(--accent-2);
  color: #fff;
}

.portal-secondary-link {
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.96);
  color: var(--ink);
}

.portal-hero-side strong,
.section-intro strong,
.db-guide-head strong {
  display: block;
  font-size: 13px;
}

.portal-hero-side ul {
  margin: 12px 0 0;
  padding-left: 18px;
}

.portal-hero-side li + li {
  margin-top: 8px;
}

.portal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.portal-card,
.db-guide-card,
.section-intro {
  padding: 18px 20px;
}

.portal-card-badge,
.db-state {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid rgba(47, 111, 103, 0.22);
  background: rgba(47, 111, 103, 0.08);
  color: var(--accent-2);
  font-size: 11px;
  font-weight: 800;
}

.portal-card h2,
.db-guide-card h3 {
  margin-top: 10px;
  margin-bottom: 0;
}

.db-guide {
  display: grid;
  gap: 18px;
  margin-bottom: 18px;
}

.db-guide-head {
  margin-bottom: 12px;
}

.db-guide-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.forecast-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  align-items: stretch;
  gap: 0;
  min-height: 260px;
  margin-bottom: 28px;
  overflow: hidden;
  border: 1px solid #cfc4b3;
  background: linear-gradient(125deg, #fffaf1 0 56%, var(--forecast-canvas) 56% 100%);
  box-shadow: var(--shadow);
}

.forecast-hero-copy {
  position: relative;
  z-index: 2;
  max-width: 780px;
  padding: 32px;
}

.forecast-hero h2,
.forecast-controls h2 {
  margin: 0;
  line-height: 1.25;
}

.forecast-hero h2 {
  max-width: 640px;
  font-size: clamp(29px, 4vw, 46px);
  letter-spacing: -.035em;
}

.forecast-hero p,
.forecast-controls p,
.forecast-notice p {
  margin: 8px 0 0;
  color: var(--muted);
}

.forecast-hero-copy .portal-secondary-link {
  margin-top: 22px;
}

.forecast-calendar-art {
  position: relative;
  min-height: 260px;
  overflow: hidden;
}

.forecast-art-sun {
  position: absolute;
  top: 42px;
  right: 48px;
  width: 112px;
  height: 112px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 18px rgba(157, 47, 47, .08);
}

.forecast-art-orbit {
  position: absolute;
  border: 1px solid rgba(47, 111, 103, .35);
  border-radius: 50%;
  transform: rotate(-14deg);
}

.forecast-art-orbit-one { inset: 24px 22px 34px 38px; }
.forecast-art-orbit-two { inset: 58px -20px 0 92px; }

.forecast-art-card {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 92px;
  height: 92px;
  border: 1px solid rgba(35, 31, 27, .16);
  background: rgba(255, 253, 248, .94);
  box-shadow: 0 12px 30px rgba(45, 32, 20, .13);
  transform: rotate(-3deg);
}

.forecast-art-card b { font-size: 34px; line-height: 1; }
.forecast-art-card small { color: var(--muted); font-size: 11px; font-weight: 800; }
.forecast-art-card-current { left: 34px; bottom: 42px; }
.forecast-art-card-next { right: 34px; bottom: 18px; transform: rotate(4deg); }
.forecast-art-card-next b { color: var(--accent-2); }

.forecast-art-label {
  position: absolute;
  left: 30px;
  top: 26px;
  color: rgba(35, 31, 27, .38);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
}

.forecast-notice {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 12px 0 18px;
  padding: 10px 14px;
  border: 1px solid color-mix(in srgb, var(--forecast-high) 22%, var(--line));
  background: color-mix(in srgb, var(--forecast-high) 4%, var(--paper));
}

.official-event-section {
  margin-bottom: 22px;
}

.official-event-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}

.official-event-heading h2 {
  margin: 2px 0 0;
  font-size: 22px;
}

.official-event-heading > strong { white-space: nowrap; }

.official-event-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.official-event-card {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  column-gap: 14px;
  min-width: 0;
  padding: 15px;
  border: 1px solid var(--line);
  background: var(--paper);
  box-shadow: var(--shadow);
}

.official-event-visual {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 116px;
  padding: 10px 6px;
  color: var(--accent-2);
  background: color-mix(in srgb, var(--accent-2) 8%, var(--paper));
}

.official-event-symbol {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-family: serif;
  font-size: 20px;
  font-weight: 800;
}

.official-event-remaining {
  display: grid;
  justify-items: center;
  line-height: 1;
}

.official-event-remaining strong { font-size: 25px; }
.official-event-remaining small { margin-top: 4px; color: var(--muted); font-size: 9px; font-weight: 800; }
.official-event-copy { min-width: 0; }

.official-event-meta,
.search-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
}

.official-event-meta {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.official-event-card h3 {
  margin: 8px 0 0;
  font-size: 17px;
  line-height: 1.45;
}

.official-event-card h3 a {
  color: var(--ink);
  text-decoration: none;
}

.official-event-period {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.official-event-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 8px;
}

.official-event-tags a {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 2px 8px;
  border: 1px solid color-mix(in srgb, var(--accent-2) 30%, var(--line));
  border-radius: 999px;
  background: var(--paper);
  color: var(--accent-2);
  font-size: 10px;
  font-weight: 800;
  text-decoration: none;
}

.official-event-tags a:hover,
.official-event-tags a:focus-visible {
  border-color: var(--accent-2);
  text-decoration: underline;
}

.official-event-links {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 13px;
}

.official-event-links a {
  color: var(--accent-2);
  font-size: 13px;
  font-weight: 800;
}

.official-event-recurrence {
  grid-column: 2;
  margin-top: 13px;
  padding: 11px 12px;
  background: color-mix(in srgb, var(--accent-2) 7%, var(--paper));
}

.official-event-recurrence strong {
  color: var(--accent-2);
  font-size: 12px;
}

.official-event-recurrence p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.official-event-next-cycle {
  color: var(--ink) !important;
  font-weight: 800;
}

.official-event-progress {
  position: relative;
  height: 6px;
  margin-top: 12px;
  overflow: hidden;
  border-radius: 99px;
  background: var(--forecast-rail);
}

.official-event-progress span {
  display: block;
  width: var(--event-progress);
  height: 100%;
  border-radius: inherit;
  background: var(--accent-2);
}

.official-event-progress-announced span { width: 14%; background: #3f537e; }
.official-event-progress-exchange span { background: var(--gold); }

.event-state-badge {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 0 8px;
  border: 1px solid currentColor;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}

.event-state-active { background: rgba(47, 111, 103, .08); color: var(--accent-2); }
.event-state-exchange { background: rgba(185, 132, 40, .09); color: #80601f; }
.event-state-announced { background: rgba(63, 83, 126, .08); color: #3f537e; }
.event-state-ended { background: rgba(112, 105, 95, .08); color: #686158; }

.forecast-notice strong {
  color: var(--forecast-high);
}

.forecast-signal-board {
  display: grid;
  grid-template-columns: minmax(260px, 1.25fr) minmax(240px, .9fr);
  gap: 18px 24px;
  padding: 22px 24px;
  border: 1px solid #cfc4b3;
  background: linear-gradient(120deg, #26211d, #393127);
  color: #fffaf1;
  box-shadow: var(--shadow);
}

.forecast-signal-intro {
  display: flex;
  align-items: center;
  gap: 16px;
}

.forecast-signal-intro h2 { margin: 2px 0 0; font-size: 27px; }
.forecast-signal-intro p:last-child { margin: 5px 0 0; color: #cfc4b3; font-size: 13px; }
.forecast-signal-intro .portal-kicker { color: #d9b36c; }

.forecast-signal-mark {
  display: grid;
  flex: 0 0 64px;
  place-items: center;
  width: 64px;
  height: 64px;
  border: 1px solid rgba(255, 250, 241, .45);
  border-radius: 50%;
  color: #fffaf1;
  font-family: serif;
  font-size: 27px;
}

.forecast-signal-counts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.forecast-signal-counts > div {
  display: grid;
  place-items: center;
  align-content: center;
  min-height: 80px;
  border: 1px solid rgba(255, 250, 241, .18);
  background: rgba(255, 255, 255, .04);
}

.forecast-signal-counts strong { font-size: 28px; line-height: 1; }
.forecast-signal-counts span { margin-top: 7px; font-size: 10px; font-weight: 800; }
.forecast-signal-high strong { color: #df8989; }
.forecast-signal-soon strong { color: #d9b36c; }
.forecast-signal-watch strong { color: #82b7af; }

.forecast-overview {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: rgba(255, 250, 241, .18);
}

.forecast-overview > div {
  display: grid;
  gap: 3px;
  padding: 10px 13px;
  background: #302922;
}

.forecast-overview span {
  color: #bdb2a2;
  font-size: 12px;
}

.forecast-overview strong {
  color: #fffaf1;
  font-size: 15px;
}

.forecast-controls {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin: 24px 0 12px;
}

.forecast-controls h2 {
  font-size: 22px;
}

.forecast-controls p {
  font-size: 13px;
}

.forecast-filter-group {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}

.forecast-filter {
  min-height: 40px;
  padding: 0 13px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.forecast-filter.is-active {
  border-color: var(--accent-2);
  background: var(--accent-2);
  color: #fff;
}

.forecast-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.forecast-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  padding: 17px;
  border: 1px solid var(--line);
  border-top: 5px solid currentColor;
  background: var(--paper);
  box-shadow: var(--shadow);
}

.forecast-card.forecast-confidence-high { color: var(--forecast-high); }
.forecast-card.forecast-confidence-soon { color: var(--forecast-soon); }
.forecast-card.forecast-confidence-watch { color: var(--forecast-watch); }
.forecast-card > * { color: var(--ink); }

.forecast-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.forecast-card h3 {
  margin: 8px 0 0;
  font-size: 19px;
  line-height: 1.45;
}

.forecast-confidence {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid currentColor;
  font-size: 11px;
  font-weight: 800;
}

.forecast-confidence-high {
  background: color-mix(in srgb, var(--forecast-high) 8%, var(--paper));
  color: var(--forecast-high);
}

.forecast-confidence-soon {
  background: color-mix(in srgb, var(--forecast-soon) 9%, var(--paper));
  color: var(--forecast-soon);
}

.forecast-confidence-watch {
  background: color-mix(in srgb, var(--forecast-watch) 8%, var(--paper));
  color: var(--forecast-watch);
}

.forecast-score-gauge {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 66px;
  height: 66px;
  border-radius: 50%;
  background: conic-gradient(currentColor var(--forecast-score), var(--forecast-rail) 0);
}

.forecast-score-gauge > span {
  display: grid;
  place-items: center;
  align-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--paper);
}

.forecast-score-gauge strong {
  color: var(--ink);
  font-size: 22px;
  line-height: 1;
}

.forecast-score-gauge small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 8px;
  font-weight: 800;
}

.forecast-window {
  display: grid;
  gap: 10px;
  margin-top: 16px;
  padding: 12px 13px 14px;
  background: color-mix(in srgb, currentColor 6%, var(--paper));
}

.forecast-window span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.forecast-window strong {
  display: block;
  margin-top: 2px;
  color: var(--ink);
  font-size: 17px;
}

.forecast-range-track {
  position: relative;
  height: 9px;
}

.forecast-range-line {
  position: absolute;
  inset: 3px 0;
  border-radius: 99px;
  background: currentColor;
  opacity: .33;
}

.forecast-range-marker {
  position: absolute;
  top: 0;
  left: var(--expected-position);
  width: 9px;
  height: 9px;
  border: 2px solid var(--paper);
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 1px currentColor;
  transform: translateX(-50%);
}

.forecast-timing-note {
  margin: 12px 0;
  color: var(--muted);
  font-size: 13px;
}

.forecast-fact-check {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 12px;
  padding: 9px 11px;
  border-left: 3px solid var(--accent-2);
  background: color-mix(in srgb, var(--accent-2) 8%, var(--paper));
}

.forecast-fact-check span {
  flex: 0 0 auto;
  padding: 1px 7px;
  border: 1px solid color-mix(in srgb, var(--accent-2) 42%, var(--line));
  border-radius: 999px;
  color: var(--accent-2);
  font-size: 10px;
  font-weight: 800;
}

.forecast-fact-check p {
  margin: 0;
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
}

.forecast-history-tags {
  margin: 0 0 12px;
  padding: 11px 12px;
  border: 1px solid color-mix(in srgb, var(--accent-2) 24%, var(--line));
  background: color-mix(in srgb, var(--accent-2) 4%, var(--paper));
}

.forecast-history-tags > strong {
  display: block;
  color: var(--ink);
  font-size: 11px;
}

.forecast-history-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 7px;
}

.forecast-history-tag {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--accent-2) 34%, var(--line));
  border-radius: 999px;
  background: var(--paper);
  color: var(--accent-2);
  font-size: 11px;
  font-weight: 800;
  text-decoration: none;
}

.forecast-history-tag span {
  padding: 4px 7px 4px 9px;
}

.forecast-history-tag small {
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  padding: 4px 8px 4px 6px;
  background: color-mix(in srgb, var(--accent-2) 8%, var(--paper));
  color: var(--muted);
  font-size: 9px;
  font-weight: 800;
}

.forecast-history-tag:hover,
.forecast-history-tag:focus-visible {
  border-color: var(--accent-2);
  text-decoration: underline;
}

.forecast-history-tags p {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.55;
}

@media (max-width: 520px) {
  .forecast-fact-check {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }
}

.forecast-evidence {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  background: var(--line);
  border: 1px solid var(--line);
}

.forecast-evidence > div {
  min-width: 0;
  padding: 10px 11px;
  background: var(--paper);
}

.forecast-evidence dt {
  color: var(--muted);
  font-size: 11px;
}

.forecast-evidence dd {
  margin: 2px 0 0;
  font-size: 13px;
  font-weight: 700;
}

.forecast-history {
  margin-top: 13px;
  border-top: 1px solid var(--line);
}

.forecast-history summary,
.forecast-method summary {
  padding: 12px 0 0;
  color: var(--accent-2);
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.forecast-history ol {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
  padding-left: 22px;
}

.forecast-history li {
  padding-left: 3px;
}

.forecast-history time {
  display: block;
  color: var(--muted);
  font-size: 11px;
}

.forecast-history a {
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
}

.forecast-previous-date {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 11px;
}

.forecast-empty,
.forecast-method {
  grid-column: 1 / -1;
  padding: 18px;
  border: 1px solid var(--line);
  background: var(--paper);
}

.forecast-method {
  margin-top: 18px;
}

.forecast-method summary {
  padding: 0;
  font-size: 14px;
}

.forecast-method > div {
  max-width: 850px;
  margin-top: 12px;
  color: var(--muted);
  font-size: 13px;
}

.forecast-method li + li {
  margin-top: 6px;
}

.site-introduction {
  display: grid;
  gap: 1rem;
  margin: 1.25rem 0;
  padding: clamp(1.1rem, 2vw, 1.6rem);
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--paper) 88%, var(--bg));
}
.site-introduction-lead { max-width: 58rem; }
.site-introduction h2 { margin: .2rem 0 .65rem; font-size: clamp(1.35rem, 2.5vw, 1.8rem); }
.site-introduction-lead > p:last-child,
.site-introduction-points p,
.site-introduction-note { margin: 0; color: var(--muted); }
.site-introduction-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.site-introduction-points article { padding: .9rem; border-left: 3px solid var(--accent); background: var(--paper); }
.site-introduction-points strong { display: block; margin-bottom: .35rem; }
.site-introduction-points p { font-size: .84rem; line-height: 1.65; }
.site-introduction-note { font-size: .78rem; line-height: 1.65; }
.site-introduction-actions { display: flex; flex-wrap: wrap; gap: .65rem 1rem; }
.site-introduction-actions a { color: var(--accent-2); font-size: .84rem; font-weight: 800; }
.site-introduction-actions .primary-button { color: #fff; text-decoration: none; }

.about-hero,
.about-section {
  max-width: 70rem;
  margin-inline: auto;
}
.about-hero {
  padding: clamp(1.25rem, 3vw, 2.4rem);
  border: 1px solid var(--line);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--accent) 8%, var(--paper)), var(--paper) 62%),
    var(--paper);
}
.about-hero h2 { max-width: 50rem; margin: .35rem 0 .8rem; font-size: clamp(1.55rem, 3.4vw, 2.45rem); line-height: 1.35; }
.about-hero > p:last-of-type { max-width: 54rem; color: var(--muted); line-height: 1.9; }
.about-hero-actions,
.about-final-actions { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; margin-top: 1.1rem; }
.about-hero-actions .primary-button,
.about-final-actions .primary-button { justify-content: center; color: #fff; text-decoration: none; }
.about-hero-actions .secondary-link,
.about-final-actions .secondary-link { color: var(--accent-2); font-weight: 800; }
.about-section { margin-top: 1rem; }
.about-feature-grid,
.about-comparison { display: grid; gap: .75rem; }
.about-feature-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.about-feature-grid article,
.about-comparison article { padding: 1rem; border: 1px solid var(--line); background: var(--paper); }
.about-feature-grid article > span { color: var(--accent); font-size: .72rem; font-weight: 900; letter-spacing: .12em; }
.about-feature-grid h3,
.about-comparison h3 { margin: .35rem 0 .45rem; }
.about-feature-grid p,
.about-comparison p { margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.75; }
.about-comparison { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.about-comparison article { border-top: 3px solid var(--accent); }
.about-comparison a { display: inline-block; margin-top: .8rem; color: var(--accent-2); font-weight: 800; }
.about-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 0; padding: 0; counter-reset: about-step; list-style: none; }
.about-flow li { position: relative; min-height: 10rem; padding: 2.5rem 1rem 1rem; border: 1px solid var(--line); background: var(--paper); counter-increment: about-step; }
.about-flow li::before { content: counter(about-step, decimal-leading-zero); position: absolute; top: .8rem; color: var(--accent); font-size: .72rem; font-weight: 900; letter-spacing: .1em; }
.about-flow strong { display: block; margin-bottom: .4rem; }
.about-flow span { color: var(--muted); font-size: .84rem; line-height: 1.7; }

.blog-support-callout {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--accent) 45%, var(--line));
  background: linear-gradient(135deg, var(--paper), color-mix(in srgb, var(--accent) 7%, var(--paper)));
}

.blog-support-icon {
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border: 1px solid var(--accent);
  color: var(--accent);
  font-family: serif;
  font-size: 1.35rem;
  font-weight: 800;
}

.blog-support-callout h3 { margin: 0 0 .35rem; font-size: 1.05rem; }
.blog-support-callout p { margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.65; }
.blog-support-callout code { color: var(--ink); font-size: .82rem; }
.blog-support-actions { display: grid; gap: .55rem; justify-items: center; min-width: 12.5rem; }
.blog-support-actions .primary-button { justify-content: center; text-decoration: none; }
.blog-support-actions .inline-link { font-size: .8rem; }

.db-state-live {
  border-color: rgba(47, 111, 103, 0.22);
  background: rgba(47, 111, 103, 0.08);
  color: var(--accent-2);
}

.db-state-plan {
  border-color: rgba(112, 105, 95, 0.22);
  background: rgba(112, 105, 95, 0.1);
  color: #5b5348;
}

.section-intro {
  margin-top: 14px;
}

.summary-band {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--line);
  box-shadow: var(--shadow);
}

.summary-band > div {
  min-width: 0;
  padding: 18px 20px;
  background: var(--paper);
}

.metric-value {
  display: block;
  font-size: 28px;
  font-weight: 800;
  line-height: 1.1;
}

.metric-value[data-state="ok"] {
  color: var(--accent-2);
}

.metric-value[data-state="ng"] {
  color: #8f3b32;
}

.metric-label {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 13px;
}

.toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 160px 140px 170px 180px 170px 140px auto;
  gap: 12px;
  align-items: end;
  margin-top: 18px;
  padding: 16px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.82);
}

.toolbar-actions {
  display: flex;
  align-items: end;
}

.secondary-button {
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.96);
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
  margin-top: 12px;
  padding: 12px 16px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.72);
  color: var(--muted);
  font-size: 13px;
}

.active-filters strong {
  color: var(--ink);
  font-size: 13px;
}

.policy-note {
  margin-top: 14px;
  padding: 14px 16px;
  border-left: 4px solid var(--accent-2);
  background: rgba(255, 253, 248, 0.82);
  color: var(--ink);
}

.policy-note strong {
  display: block;
  margin-bottom: 4px;
  font-size: 13px;
}

.policy-note p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.detail-policy-note {
  margin-top: 18px;
}

.source-note {
  margin-top: 12px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.72);
}

.source-note strong {
  display: block;
  margin-bottom: 4px;
  font-size: 13px;
}

.source-note p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.excluded-guidance {
  margin-top: 18px;
}

.excluded-guidance-links {
  margin: 10px 0 0;
  padding-left: 18px;
}

.excluded-guidance-links li + li {
  margin-top: 6px;
}

.excluded-guidance-links li::marker {
  color: var(--accent-2);
}

.detail-source-note {
  margin-top: 12px;
}

.inline-link {
  color: var(--accent);
  font-weight: 700;
  text-decoration: none;
}

.inline-link:hover {
  text-decoration: underline;
}

label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

input,
select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink);
  font: inherit;
  font-size: 14px;
  letter-spacing: 0;
}

input {
  padding: 0 12px;
}

select {
  padding: 0 36px 0 10px;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23464b50' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}

input:focus,
select:focus {
  outline: 2px solid rgba(47, 111, 103, 0.35);
  outline-offset: 1px;
}

.table-wrap {
  margin-top: 18px;
  overflow: auto;
  border: 1px solid var(--line);
  background: var(--paper);
  box-shadow: var(--shadow);
}

.contribution-mobile-list {
  display: none;
}

table {
  width: 100%;
  min-width: 920px;
  border-collapse: collapse;
  font-size: 14px;
}

th,
td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  text-align: left;
}

th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #efe7d8;
  color: #4a3e31;
  font-size: 12px;
  letter-spacing: 0;
}

tbody tr:hover {
  background: #fbf4e8;
}

.date-cell,
.period-cell {
  white-space: nowrap;
  color: #3d372f;
}

.related-period-cell {
  display: grid;
  gap: 6px;
  min-width: 220px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  white-space: normal;
}

.period-status-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 24px;
  padding: 0 8px;
  border: 1px solid rgba(47, 111, 103, 0.22);
  background: rgba(47, 111, 103, 0.08);
  color: var(--accent-2);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.period-status-badge-muted {
  border-color: rgba(112, 105, 95, 0.22);
  background: rgba(112, 105, 95, 0.1);
  color: #5b5348;
}

.kind-pill {
  display: inline-block;
  min-width: 116px;
  padding: 3px 8px;
  border-left: 3px solid var(--gold);
  background: #f6efe1;
  color: #514535;
  font-size: 12px;
  font-weight: 700;
}

.event-title {
  display: block;
  max-width: 520px;
  font-weight: 700;
  line-height: 1.5;
}

.event-title-link {
  color: var(--ink);
  text-decoration: none;
}

.event-title-link:hover .event-title {
  color: var(--accent);
  text-decoration: underline;
}

.event-summary {
  display: block;
  max-width: 620px;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
}

.excluded-helper-text {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

a.official-link {
  color: var(--accent);
  font-weight: 800;
  text-decoration: none;
}

a.official-link:hover {
  text-decoration: underline;
}

.empty-row td {
  padding: 28px 14px;
  color: var(--muted);
  text-align: center;
}

.health-status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border: 1px solid var(--line);
  font-size: 12px;
  font-weight: 800;
}

.health-status-pill-ok {
  border-color: rgba(47, 111, 103, 0.24);
  background: rgba(47, 111, 103, 0.08);
  color: var(--accent-2);
}

.health-status-pill-ng {
  border-color: rgba(143, 59, 50, 0.28);
  background: rgba(143, 59, 50, 0.08);
  color: #8f3b32;
}

.health-row-ng {
  background: rgba(143, 59, 50, 0.04);
}

.detail-card,
.search-results {
  margin-top: 18px;
}

.search-results-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 1rem 0 .75rem;
}
.search-results-form {
  display: grid;
  grid-template-columns: minmax(16rem, 38rem) max-content;
  flex: 1;
  gap: .55rem;
  justify-content: start;
}
.search-results-form input { min-height: 46px; border-radius: 999px; padding-inline: 1.15rem; }
.search-results-form button { border-radius: 999px; }
.search-advanced { margin-bottom: .75rem; }
.search-advanced > summary { width: fit-content; color: var(--accent-2); font-size: .82rem; font-weight: 700; cursor: pointer; }
.search-advanced[open] > summary { margin-bottom: .75rem; }
.search-card { border: 0; border-bottom: 1px solid var(--line); box-shadow: none; background: transparent; }
.search-card-title { color: #174ea6; font-size: 1.15rem; font-weight: 700; }
.search-card-meta { margin-top: .2rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 640px) {
  .about-feature-grid,
  .about-comparison,
  .about-flow { grid-template-columns: 1fr; }
  .about-flow li { min-height: 0; }
  .about-hero-actions,
  .about-final-actions { align-items: stretch; }
  .about-hero-actions > *,
  .about-final-actions > * { width: 100%; text-align: center; }
  .site-introduction { margin-block: 1rem; padding: 1rem; }
  .site-introduction-points { grid-template-columns: 1fr; gap: .55rem; }
  .site-introduction-points article { padding: .75rem .8rem; }
  .home-community-highlight {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
  }
  .home-community-copy {
    display: flex;
    grid-row: 2;
    width: 100%;
    max-width: none;
    padding: .85rem 1rem;
  }
  .home-community-copy > .portal-kicker,
  .home-community-copy > h2,
  .home-community-copy > p {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .home-community-actions { width: 100%; }
  .home-community-actions .primary-button { width: 100%; }
  .home-community-actions { flex-direction: column; align-items: stretch; }
  .home-community-visual {
    grid-row: 1;
    aspect-ratio: 1729 / 910;
    border: 0;
    box-shadow: none;
  }
  .home-community-visual img { object-position: center; }
  .blog-support-callout { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
  .blog-support-actions { grid-column: 1 / -1; width: 100%; }
  .blog-support-actions .primary-button { width: 100%; }
  .search-results-header { align-items: stretch; flex-direction: column; }
  .search-results-form { grid-template-columns: minmax(0, 1fr) auto; }
}

.detail-card {
  padding: 20px;
  border: 1px solid var(--line);
  background: var(--paper);
  box-shadow: var(--shadow);
}

.detail-meta-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.detail-meta-grid > div,
.search-card,
.search-hero {
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.84);
}

.detail-meta-grid > div {
  padding: 14px 16px;
}

.detail-label {
  display: block;
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.detail-section {
  margin-top: 18px;
}

.detail-section:first-child {
  margin-top: 0;
}

.detail-callouts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.detail-focus-card {
  margin-top: 16px;
  padding: 16px 18px;
  border: 1px solid rgba(47, 111, 103, 0.24);
  background: linear-gradient(135deg, rgba(47, 111, 103, 0.08), rgba(255, 253, 248, 0.96));
}

.detail-focus-card strong {
  display: block;
  margin-top: 8px;
  font-size: 16px;
}

.detail-focus-card p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.detail-focus-badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 10px;
  border: 1px solid rgba(47, 111, 103, 0.24);
  background: rgba(47, 111, 103, 0.12);
  color: var(--accent-2);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.detail-focus-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.detail-callout {
  padding: 14px 16px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.84);
}

.detail-callout p {
  margin: 0;
  color: var(--ink);
  font-size: 14px;
}

.detail-content-signals {
  margin-top: 16px;
  padding: 13px 16px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--accent-2) 5%, var(--paper));
}

.detail-content-signals > strong {
  font-size: 12px;
}

.detail-content-signals > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.event-tag-chip {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 3px 10px;
  border: 1px solid color-mix(in srgb, var(--accent-2) 34%, var(--line));
  border-radius: 999px;
  background: var(--paper);
  color: var(--accent-2);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
}

.event-tag-chip:hover,
.event-tag-chip:focus-visible {
  border-color: var(--accent-2);
  background: color-mix(in srgb, var(--accent-2) 8%, var(--paper));
  text-decoration: underline;
}

.event-tag-chip-small {
  min-height: 26px;
  padding: 2px 8px;
  font-size: 11px;
}

.detail-content-signals p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 11px;
}

.detail-item-tags {
  margin-top: 12px;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.detail-item-tags summary {
  color: var(--accent-2);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.detail-item-tags ul {
  display: grid;
  gap: 8px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.detail-item-tags li {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) minmax(180px, 1.5fr);
  gap: 10px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px dashed var(--line);
}

.detail-item-tags li > div,
.event-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.detail-item-name {
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

@media (max-width: 640px) {
  .detail-item-tags li {
    grid-template-columns: 1fr;
    gap: 6px;
  }
}

.detail-key-points {
  margin-top: 16px;
  padding: 14px 16px;
  border-left: 4px solid var(--gold);
  background: rgba(255, 253, 248, 0.84);
}

.detail-key-points strong {
  display: block;
  margin-bottom: 8px;
  font-size: 13px;
}

.detail-key-points ul {
  margin: 0;
  padding-left: 18px;
}

.detail-key-points li + li {
  margin-top: 6px;
}

.detail-jump-links,
.detail-related-actions {
  margin-top: 16px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.78);
}
.review-contribute-button { margin-top: .7rem; }

.detail-jump-links strong,
.detail-related-actions strong {
  display: block;
  margin-bottom: 8px;
  font-size: 13px;
}

.detail-jump-link-row,
.detail-related-action-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.detail-jump-link {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(47, 111, 103, 0.2);
  background: rgba(47, 111, 103, 0.08);
  color: var(--accent-2);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

.detail-jump-link:hover {
  border-color: rgba(47, 111, 103, 0.45);
  color: var(--accent);
}

.review-chat-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.88fr) minmax(0, 1.32fr);
  gap: 18px;
  margin-top: 18px;
}

.review-thread-list-card,
.review-thread-card {
  min-width: 0;
}

.thread-list {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.thread-list-item {
  display: grid;
  gap: 6px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.82);
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}

.thread-list-item strong {
  font-size: 14px;
}

.thread-list-item span,
.thread-list-item small,
.thread-meta,
.thread-status {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.thread-list-item.is-active {
  border-color: rgba(47, 111, 103, 0.38);
  background: rgba(47, 111, 103, 0.08);
}

.thread-messages {
  display: grid;
  gap: 12px;
  max-height: 540px;
  margin-top: 18px;
  padding-right: 4px;
  overflow: auto;
}

.thread-message {
  padding: 14px 16px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.86);
}

.thread-message-assistant {
  border-left: 4px solid var(--accent-2);
}

.thread-message-user {
  border-left: 4px solid var(--gold);
}

.thread-message-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-bottom: 8px;
}

.thread-message-meta strong {
  font-size: 13px;
}

.thread-message-meta span {
  color: var(--muted);
  font-size: 12px;
}

.thread-message-body p {
  margin: 0;
  white-space: pre-wrap;
}

.thread-message-body p + p {
  margin-top: 8px;
}

.thread-composer-card {
  margin-top: 18px;
  padding: 16px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.82);
}

.thread-composer-label {
  display: grid;
  gap: 6px;
}

.review-image-tools { margin-top: 12px; }
.review-image-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.review-image-help { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.review-image-preview-list { display: grid; gap: 10px; margin-top: 10px; }
.review-image-preview {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  margin-top: 10px;
  padding: 10px;
  border: 1px solid var(--line);
  background: var(--paper);
}
.review-image-preview img { width: 88px; height: 88px; object-fit: cover; border-radius: 8px; }
.review-image-preview-body { min-width: 0; }
.review-image-preview-heading { display: flex; align-items: start; justify-content: space-between; gap: 10px; }
.review-image-preview-heading strong { overflow-wrap: anywhere; }
.review-image-preview p { margin: 4px 0 0; font-size: 13px; }
.review-image-file-meta,
.review-image-card-status { color: var(--muted); }
.review-image-report-label { display: grid; gap: 4px; margin-top: 9px; color: var(--ink); font-size: 13px; font-weight: 700; }
.review-image-report-label input { min-height: 38px; padding: 7px 9px; border: 1px solid var(--line); background: #fff; color: var(--ink); font: inherit; font-weight: 400; }
.review-image-match-list,
.thread-message-db-matches { display: grid; gap: 5px; margin: 8px 0 0; padding: 0; list-style: none; }
.review-image-match-list li,
.thread-message-db-matches li { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; font-size: 13px; }
.review-image-match-list li > span,
.thread-message-db-matches li > span {
  padding: 2px 7px;
  border: 1px solid rgba(47, 111, 103, .3);
  border-radius: 999px;
  background: rgba(47, 111, 103, .08);
  color: var(--accent);
  font-size: 11px;
  font-weight: 800;
}
.review-image-match-list li[data-match-state="candidate"] > span {
  border-color: rgba(163, 112, 42, .35);
  background: rgba(163, 112, 42, .1);
  color: #79521f;
}
.review-image-no-match,
.thread-message-no-match { color: #79521f; }
.review-image-preview details { margin-top: 8px; }
.review-image-preview details p { max-height: 10rem; overflow: auto; white-space: pre-wrap; }
.review-image-login { margin: 10px 0 0; }
.thread-message-attachments { display: grid; gap: 8px; margin-top: 10px; }
.thread-message-attachment { margin-top: 10px; padding: 10px; border: 1px solid var(--line); background: rgba(255,255,255,.6); }
.thread-message-attachments .thread-message-attachment { margin-top: 0; }
.thread-message-image-link { display: inline-block; margin-left: 10px; font-size: 12px; }
.thread-message-attachment details { margin-top: 6px; }
.thread-message-attachment summary { cursor: pointer; color: var(--accent); }
.thread-message-attachment p { margin-top: 8px; max-height: 12rem; overflow: auto; white-space: pre-wrap; }
.thread-message-report-text { color: var(--ink); }
.thread-message-contribution { color: var(--accent); font-weight: 800; }

textarea {
  width: 100%;
  min-height: 130px;
  padding: 12px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink);
  font: inherit;
  font-size: 14px;
  resize: vertical;
}

textarea:focus {
  outline: 2px solid rgba(47, 111, 103, 0.35);
  outline-offset: 1px;
}

.thread-composer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: space-between;
  align-items: center;
  margin-top: 12px;
}

.thread-activity-card {
  margin-top: 18px;
  padding: 0;
  box-shadow: none;
}

.thread-activity-list {
  margin: 12px 0 0;
  padding-left: 18px;
}

.thread-activity-list li + li {
  margin-top: 6px;
}

.detail-body-blocks {
  display: grid;
  gap: 10px;
}

.detail-body-blocks p {
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  line-height: 1.8;
}

.detail-more-block {
  margin-top: 4px;
  padding-top: 6px;
  border-top: 1px dashed rgba(112, 105, 95, 0.35);
}

.detail-more-block summary {
  cursor: pointer;
  color: var(--accent-2);
  font-size: 13px;
  font-weight: 700;
  list-style: none;
}

.detail-more-block summary::-webkit-details-marker {
  display: none;
}

.detail-more-block[open] summary {
  margin-bottom: 10px;
}

.detail-subsection {
  display: grid;
  gap: 8px;
  padding: 12px 14px;
  border-left: 3px solid rgba(47, 111, 103, 0.35);
  background: rgba(255, 253, 248, 0.68);
}

.detail-subsection h3 {
  margin: 0;
  color: #4a3e31;
  font-size: 14px;
}

.detail-schedule-list {
  display: grid;
  grid-template-columns: minmax(120px, 210px) minmax(0, 1fr);
  gap: 8px 14px;
  margin: 0;
}

.detail-schedule-list dt,
.detail-schedule-list dd {
  margin: 0;
  line-height: 1.8;
}

.detail-schedule-list dt {
  color: #4a3e31;
  font-size: 13px;
  font-weight: 700;
}

.detail-schedule-list dd {
  color: var(--ink);
  font-size: 13px;
  word-break: break-word;
}

.detail-neighbors {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.detail-neighbor {
  display: grid;
  gap: 4px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.84);
  color: var(--ink);
  text-decoration: none;
}

.detail-neighbor:hover,
.detail-related-list a:hover {
  color: var(--accent);
  text-decoration: underline;
}

.detail-neighbor strong {
  font-size: 14px;
  line-height: 1.5;
}

.detail-neighbor small {
  color: var(--muted);
  font-size: 12px;
}

.detail-neighbor-empty {
  color: var(--muted);
}

.detail-related-list {
  margin: 0;
  padding-left: 18px;
}

.detail-related-list li + li {
  margin-top: 10px;
}

.detail-related-list a {
  color: var(--ink);
  font-weight: 700;
  text-decoration: none;
}

.detail-related-list span {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 12px;
}

.detail-section h2,
.search-hero h2 {
  margin: 0 0 8px;
  font-size: 18px;
}

.section-eyebrow {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  align-items: center;
  gap: .45rem;
  margin: 0 0 .45rem;
  padding: .32rem .62rem;
  border-left: 3px solid var(--accent-2);
  background: color-mix(in srgb, var(--accent-2) 8%, var(--paper));
  color: var(--accent-2);
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: .025em;
}

.section-eyebrow::before {
  content: "";
  flex: 0 0 auto;
  width: .42rem;
  height: .42rem;
  background: var(--accent);
  transform: rotate(45deg);
}

.editorial-page .detail-section + .detail-section {
  margin-top: clamp(1.25rem, 3vw, 2rem);
  padding-top: clamp(1.1rem, 2.5vw, 1.6rem);
  border-top: 1px solid color-mix(in srgb, var(--accent-2) 18%, var(--line));
}

.editorial-page .detail-section h2,
.editorial-page .search-hero h2 {
  position: relative;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 .9rem;
  padding-bottom: .7rem;
  color: var(--ink);
  font-size: clamp(1.22rem, 2.2vw, 1.55rem);
  line-height: 1.4;
  letter-spacing: -.015em;
  text-wrap: balance;
}

.editorial-page .detail-section h2::after,
.editorial-page .search-hero h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: min(19rem, 76vw);
  height: .55rem;
  background: url("images/heading-brush-divider.webp?v=20260716-1") left center / 100% 100% no-repeat;
  opacity: .68;
  pointer-events: none;
}

.editorial-page .detail-section h3 {
  margin: 0 0 .7rem;
  padding-left: .7rem;
  border-left: 3px solid color-mix(in srgb, var(--accent) 70%, var(--line));
  font-size: clamp(1.02rem, 1.8vw, 1.2rem);
  line-height: 1.45;
}

@media (max-width: 640px) {
  .section-eyebrow {
    margin-bottom: .65rem;
    font-size: .75rem;
  }

  .editorial-page .detail-section h2,
  .editorial-page .search-hero h2 {
    margin-bottom: 1.05rem;
    font-size: 1.18rem;
  }

  .editorial-page .detail-section h2::after,
  .editorial-page .search-hero h2::after {
    width: min(15rem, 72vw);
  }
}

.detail-section p,
.search-card-summary,
.search-hero p {
  margin: 0;
}

.search-hero {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: end;
  padding: 18px 20px;
}

.search-results {
  display: grid;
  gap: 12px;
}

.mobile-results {
  display: none;
  margin-top: 18px;
  gap: 12px;
}

.mobile-event-card {
  padding: 16px 18px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.84);
}

.mobile-event-meta {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.mobile-event-title {
  display: inline-block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 17px;
  font-weight: 800;
  line-height: 1.5;
  text-decoration: none;
}

.mobile-event-title:hover,
.mobile-event-links a:hover {
  color: var(--accent);
  text-decoration: underline;
}

.mobile-event-period {
  margin: 8px 0 0;
  color: #4a3e31;
  font-size: 12px;
  font-weight: 700;
}

.mobile-event-summary {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.mobile-event-reward {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}

.mobile-event-links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 10px;
}

.mobile-event-links a {
  color: var(--accent-2);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.search-card {
  padding: 16px 18px;
}

.search-card-meta {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.search-card-title {
  display: inline-block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 18px;
  font-weight: 800;
  text-decoration: none;
}

.search-card-title:hover,
.search-card-links a:hover {
  color: var(--accent);
  text-decoration: underline;
}

.search-card-summary {
  margin-top: 6px;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.6;
}

.search-card-tags {
  margin-top: 9px;
}

.search-card-period {
  margin: 8px 0 0;
  color: #4a3e31;
  font-size: 12px;
  font-weight: 700;
}

.search-card-reward {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}

.mobile-event-reward .period-status-badge,
.search-card-reward .period-status-badge {
  margin-left: 6px;
  vertical-align: middle;
}

.search-card-links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 10px;
}

.search-card-links a {
  color: var(--accent-2);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.search-empty {
  padding: 28px 14px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--muted);
  text-align: center;
}

.empty-guidance strong {
  display: block;
  color: var(--ink);
  font-size: 15px;
}

.empty-guidance p {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.7;
}

.empty-guidance-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 9px;
  max-width: 760px;
  margin: 16px auto 0;
}

.empty-guidance-links a {
  display: grid;
  justify-items: center;
  gap: 7px;
  min-height: 94px;
  padding: 12px 8px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--paper) 90%, var(--bg));
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.empty-guidance-mark {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--accent-2);
  border-radius: 50%;
  color: var(--accent-2);
  font-family: serif;
  font-size: 18px;
}

.empty-guidance-links a:hover {
  border-color: var(--accent-2);
  color: var(--accent-2);
  transform: translateY(-2px);
}

.visual-flow-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 1rem 0 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--line);
  list-style: none;
}

.visual-flow-strip li {
  position: relative;
  display: grid;
  justify-items: center;
  align-content: center;
  min-height: 128px;
  padding: 14px 10px;
  background: var(--paper);
  text-align: center;
}

.visual-flow-strip li > span {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin-bottom: 9px;
  border: 1px solid var(--accent-2);
  border-radius: 50%;
  color: var(--accent-2);
  font-family: serif;
  font-size: 19px;
  font-weight: 800;
}

.visual-flow-strip li:nth-child(2) > span { border-color: var(--gold); color: #80601f; }
.visual-flow-strip li:nth-child(3) > span { border-color: var(--accent); color: var(--accent); }
.visual-flow-strip strong { font-size: .88rem; }
.visual-flow-strip small { margin-top: 4px; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.request-flow-strip { margin: 0 0 1rem; }

.shortcut-panel {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.shortcut-panel > div {
  padding: 14px 16px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.82);
}

.shortcut-panel strong {
  display: block;
  margin-bottom: 8px;
  font-size: 13px;
}

.shortcut-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.chip-button {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid var(--line);
  background: rgba(255, 253, 248, 0.96);
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.chip-button:hover {
  border-color: rgba(47, 111, 103, 0.45);
  color: var(--accent);
}

.chip-button-muted {
  color: var(--muted);
}

body[data-density="compact"] .summary-band > div {
  padding: 14px 16px;
}

body[data-density="compact"] .metric-value {
  font-size: 24px;
}

body[data-density="compact"] .toolbar {
  gap: 10px;
  padding: 14px;
}

body[data-density="compact"] th,
body[data-density="compact"] td {
  padding: 9px 12px;
}

body[data-density="compact"] table {
  font-size: 13px;
}

body[data-density="compact"] .related-period-cell,
body[data-density="compact"] .event-summary,
body[data-density="compact"] .excluded-helper-text {
  font-size: 11px;
  line-height: 1.45;
}

body[data-density="compact"] .kind-pill {
  min-width: 104px;
  padding: 2px 7px;
}

body[data-density="compact"] .mobile-event-card {
  gap: 8px;
  padding: 13px 14px;
}

body[data-density="compact"] .search-card {
  padding: 14px 14px 15px;
}

body[data-density="compact"] .search-card-meta {
  font-size: 11px;
  line-height: 1.55;
}

body[data-density="compact"] .search-card-title {
  margin-top: 3px;
  font-size: 16px;
  line-height: 1.45;
}

body[data-density="compact"] .search-card-summary {
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.6;
}

body[data-density="compact"] .search-card-period,
body[data-density="compact"] .search-card-reward,
body[data-density="compact"] .search-card-links a {
  font-size: 12px;
  line-height: 1.55;
}

.auth-form {
  display: grid;
  gap: 12px;
  max-width: 420px;
}

.primary-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  border: 1px solid rgba(47, 111, 103, 0.45);
  background: var(--accent-2);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
  cursor: pointer;
}

.primary-button.is-thinking {
  cursor: wait;
  opacity: 0.82;
}

.primary-button.is-thinking::before {
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  margin-right: 0.55em;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-top-color: #fff;
  border-radius: 50%;
  content: "";
  vertical-align: -0.08em;
  animation: review-thinking-spin 0.8s linear infinite;
}

@keyframes review-thinking-spin {
  to { transform: rotate(360deg); }
}

.auth-status {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 13px;
}

footer {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 0 34px;
  color: var(--muted);
  font-size: 12px;
}

@media (max-width: 980px) {
  .toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .shortcut-panel,
  .portal-grid,
  .db-guide-list {
    grid-template-columns: 1fr;
  }

  .portal-hero {
    grid-template-columns: 1fr;
  }

  .forecast-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .official-event-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  body[data-page="home"] {
    overflow-x: hidden;
  }

  body[data-page="home"] .site-header,
  body[data-page="home"] main,
  body[data-page="home"] footer {
    width: calc(100% - 24px);
  }

  body[data-page="home"] .site-header {
    gap: 10px;
    padding-top: 18px;
  }

  body[data-page="home"] .site-header-main {
    min-width: 0;
    width: auto;
    flex: 1 1 auto;
  }

  body[data-page="home"] .site-header-main > div:first-child {
    min-width: 0;
  }

  body[data-page="home"] .brand-mark {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    font-size: 25px;
  }

  body[data-page="home"] h1 {
    max-width: 100%;
    font-size: 21px;
    overflow-wrap: anywhere;
  }

  body[data-page="home"] .header-search-form {
    grid-template-columns: minmax(0, 1fr) 72px;
  }

  body[data-page="home"] .subnav {
    flex-wrap: nowrap;
    margin-inline: -12px;
    padding: 0 12px 6px;
    overflow-x: auto;
    scrollbar-width: none;
  }

  body[data-page="home"] .subnav a {
    flex: 0 0 auto;
  }

  body[data-page="home"] .portal-hero-main,
  body[data-page="home"] .portal-hero-side {
    padding: 16px;
  }

  body[data-page="home"] .portal-hero h2 {
    font-size: 21px;
    line-height: 1.45;
  }

  body[data-page="home"] .portal-hero-actions {
    display: grid;
  }

  body[data-page="home"] .portal-primary-link,
  body[data-page="home"] .portal-secondary-link {
    justify-content: center;
    width: 100%;
  }

  body[data-page="home"] .db-guide {
    margin-top: 8px;
  }

  body[data-page="home"] .db-guide-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  body[data-page="home"] .db-guide-card {
    min-width: 0;
    min-height: 136px;
    padding: 12px;
  }

  body[data-page="home"] .db-guide-card h3 {
    font-size: 16px;
  }

  body[data-page="home"] .db-guide-card p,
  body[data-page="home"] .db-guide-card a {
    font-size: 12px;
  }

  body[data-page="home"] .archive-database > summary {
    align-items: flex-start;
    padding: 14px;
  }

  body[data-page="home"] .archive-toggle-label {
    font-size: 11px;
  }

  .toolbar {
    grid-template-columns: 1fr;
  }

  body[data-page="forecast"] .site-header,
  body[data-page="forecast"] main,
  body[data-page="forecast"] footer {
    width: calc(100% - 24px);
  }

  body[data-page="forecast"] .site-header {
    gap: 10px;
    padding-top: 18px;
  }

  body[data-page="forecast"] .brand-mark {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    font-size: 25px;
  }

  body[data-page="forecast"] h1 {
    font-size: 21px;
  }

  .forecast-hero,
  .forecast-controls {
    display: grid;
    align-items: stretch;
  }

  .forecast-hero {
    grid-template-columns: 1fr;
    padding: 0;
    background: var(--paper);
  }

  .forecast-hero-copy { padding: 20px 18px; }

  .forecast-calendar-art {
    min-height: 190px;
    background: var(--forecast-canvas);
  }

  .official-event-heading {
    align-items: flex-start;
  }

  .forecast-hero h2 {
    font-size: 20px;
  }

  .forecast-overview {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .forecast-signal-board {
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .forecast-signal-counts { grid-column: 1; }

  .forecast-notice {
    display: grid;
    gap: 2px;
  }

  .forecast-filter-group {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .forecast-card {
    padding: 15px;
  }

  .forecast-card h3 {
    font-size: 17px;
  }

  .forecast-window {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  .forecast-window strong {
    font-size: 16px;
  }

  .forecast-evidence {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .forecast-list { grid-template-columns: 1fr; }

  .official-event-card {
    grid-template-columns: 62px minmax(0, 1fr);
    column-gap: 11px;
    padding: 12px;
  }

  .official-event-links,
  .official-event-recurrence { grid-column: 1 / -1; }

  .official-event-visual { min-height: 106px; }

  .forecast-art-sun {
    top: 34px;
    right: 46px;
    width: 86px;
    height: 86px;
  }

  .forecast-art-card {
    width: 76px;
    height: 76px;
  }

  .forecast-art-card b { font-size: 27px; }
  .forecast-art-card-current { left: 28px; bottom: 24px; }
  .forecast-art-card-next { right: 24px; bottom: 14px; }

  .toolbar-actions {
    align-items: stretch;
  }

  .secondary-button {
    width: 100%;
  }

  .summary-band {
    grid-template-columns: 1fr;
  }

  .search-hero {
    padding: 16px;
  }

  .portal-hero-main,
  .portal-hero-side,
  .portal-card,
  .db-guide-card,
  .section-intro {
    padding: 16px;
  }

  .search-results {
    gap: 10px;
  }

  .search-card {
    padding: 14px 14px 15px;
  }

  .search-card-meta {
    font-size: 11px;
    line-height: 1.6;
  }

  .search-card-title {
    margin-top: 2px;
    font-size: 16px;
    line-height: 1.55;
  }

  .search-card-summary {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    margin-top: 7px;
    font-size: 13px;
    line-height: 1.7;
  }

  .search-card-period {
    margin-top: 7px;
    font-size: 11px;
    line-height: 1.6;
  }

  .search-card-links {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-top: 12px;
  }

  .search-card-links a {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
  }

  .empty-guidance-links {
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }

  .detail-meta-grid,
  .detail-focus-links,
  .detail-callouts,
  .detail-neighbors,
  .review-chat-layout {
    grid-template-columns: 1fr;
  }

  footer {
    flex-direction: column;
  }

  .table-wrap {
    display: none;
  }

  .contribution-mobile-list {
    display: grid;
    gap: 10px;
    margin-top: 14px;
  }

  .contribution-mobile-card,
  .contribution-mobile-empty {
    margin: 0;
    padding: 14px;
    border: 1px solid var(--line);
    background: var(--paper);
    box-shadow: var(--shadow);
  }

  .contribution-mobile-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
  }

  .contribution-mobile-heading > div {
    display: grid;
    gap: 3px;
  }

  .contribution-mobile-kind,
  .contribution-mobile-date {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
  }

  .contribution-mobile-amount {
    flex: 0 0 auto;
    color: var(--brand-deep);
    font-size: 18px;
  }

  .contribution-mobile-target {
    margin: 12px 0 0;
    font-weight: 800;
  }

  .contribution-mobile-note {
    margin: 5px 0 10px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.65;
  }

  .mobile-results {
    display: grid;
  }

  .thread-composer-actions {
    align-items: stretch;
  }

  .header-search-form {
    grid-template-columns: 1fr;
  }

  .header-search-button,
  .primary-button {
    width: 100%;
  }
}

code {
  font-family: "SFMono-Regular", Consolas, monospace;
}

@media (max-width: 840px) {
  .site-header {
    align-items: flex-start;
  }

  .site-header-main {
    display: grid;
  }

  .header-account {
    width: 100%;
  }

  .header-account-row {
    justify-content: flex-start;
  }

  .summary-band,
  .toolbar {
    grid-template-columns: 1fr;
  }

  .detail-meta-grid {
    grid-template-columns: 1fr;
  }

  .detail-callouts {
    grid-template-columns: 1fr;
  }

  .review-chat-layout {
    grid-template-columns: 1fr;
  }

  .search-hero {
    display: grid;
  }

  footer {
    display: grid;
  }
}

@media (max-width: 640px) {
  .site-header,
  main,
  footer {
    width: calc(100% - 24px);
  }

  .site-header,
  body[data-page="home"] .site-header,
  body[data-page="forecast"] .site-header {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 10px 12px;
    align-items: start;
    padding: 18px 0 14px;
  }

  .brand-mark,
  body[data-page="home"] .brand-mark,
  body[data-page="forecast"] .brand-mark {
    grid-column: 1;
    grid-row: 1;
    width: 48px;
    height: 48px;
    min-width: 0;
    flex-basis: 48px;
  }

  .site-header-main,
  body[data-page="home"] .site-header-main {
    display: contents;
  }

  .site-header-main > div:first-child,
  body[data-page="home"] .site-header-main > div:first-child {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    align-self: center;
  }

  .site-header h1,
  body[data-page="home"] .site-header h1 {
    max-width: 100%;
    font-size: clamp(20px, 5.6vw, 22px);
    overflow-wrap: anywhere;
  }

  .header-account {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    min-width: 0;
  }

  .header-account-panel {
    gap: 8px;
  }

  .header-account-row {
    min-height: 42px;
    justify-content: flex-end;
  }

  .account-link,
  .account-button {
    min-height: 42px;
  }

  .header-search-form,
  body[data-page="home"] .header-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 78px;
    gap: 8px;
    width: 100%;
  }

  .header-search-label {
    display: grid;
    min-width: 0;
  }

  .header-search-input {
    width: 100%;
    min-width: 0;
    min-height: 42px;
  }

  .header-search-button {
    width: 100%;
    min-height: 42px;
    padding-inline: 10px;
  }

  body[data-page="search"] .header-search-form {
    display: none;
  }
}

.reference-table-wrap {
  margin-top: 1rem;
  max-height: 68vh;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-color: #8d9694 #eef0ee;
  scrollbar-gutter: stable both-edges;
  border: 1px solid #d7dbe0;
  border-radius: 10px;
  background: #fff;
}

.reference-table-wrap:not(.is-at-end) {
  box-shadow: inset -16px 0 14px -14px rgba(32, 35, 38, .48);
}

.reference-table-wrap:focus-visible {
  outline: 3px solid rgba(47, 111, 103, .36);
  outline-offset: 2px;
}

.reference-table-wrap::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

.reference-table-wrap::-webkit-scrollbar-thumb {
  border: 3px solid #eef0ee;
  border-radius: 999px;
  background: #77817f;
}

.reference-table-wrap::-webkit-scrollbar-track {
  background: #eef0ee;
}

.reference-display-controls {
  display: grid;
  grid-template-columns: auto minmax(12rem, 18rem);
  align-items: end;
  gap: 10px 14px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid #d7dbe0;
  border-radius: 10px;
  background: #fff;
}

.reference-view-field,
.reference-display-controls label {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.reference-view-field > span,
.reference-display-controls label > span {
  color: #5d6470;
  font-size: .75rem;
  font-weight: 700;
}

.reference-view-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid #aeb6b4;
  border-radius: 8px;
  background: #f4f5f3;
}

.reference-view-switch button {
  min-width: 7rem;
  min-height: 44px;
  padding: 8px 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #3e464b;
  font: inherit;
  font-weight: 800;
}

.reference-view-switch button + button {
  border-left: 1px solid #aeb6b4;
}

.reference-view-switch button[aria-pressed="true"] {
  background: var(--accent-2);
  color: #fff;
}

.reference-display-controls select {
  min-height: 44px;
}

.reference-table-hint {
  grid-column: 1 / -1;
  margin: 0;
  color: #5d6470;
  font-size: .78rem;
  line-height: 1.55;
}

.reference-comparison-table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: auto;
}

.reference-table-wrap thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  background: #ecebe8;
}

.reference-table-wrap th,
.reference-table-wrap td {
  padding: 10px 12px;
  vertical-align: top;
}

.reference-table-wrap [data-column-type="number"] {
  min-width: 4.5rem;
  white-space: nowrap;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.reference-table-wrap [data-column-type="date"] {
  min-width: 7.4rem;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.reference-table-wrap [data-column-key="factors"],
.reference-table-wrap [data-column-key="notes"] {
  max-width: 16rem;
  min-width: 11rem;
  white-space: normal;
}

.reference-identity-cell {
  position: sticky;
  left: 0;
  z-index: 2;
  min-width: 9rem;
  max-width: 12rem;
  background: #fff;
  box-shadow: 1px 0 0 #c8cdcb, 10px 0 12px -12px rgba(32, 35, 38, .7);
  overflow-wrap: anywhere;
  font-weight: 800;
}

.reference-table-wrap thead .reference-identity-cell {
  z-index: 5;
  background: #e3e5e1;
}

.reference-table-wrap tbody tr:nth-child(even) {
  background: #f8f7f5;
}

.reference-table-wrap tbody tr:nth-child(even) .reference-identity-cell {
  background: #f8f7f5;
}

.reference-date-legend {
  margin: .65rem 0 0;
  padding: .65rem .8rem;
  border-left: 3px solid var(--accent-2);
  background: rgba(47, 111, 103, .07);
  color: #4f5960;
  font-size: .8rem;
  line-height: 1.65;
}

.date-official { color: var(--accent-2); font-weight: 700; }
.date-user-record { color: #665f55; }

.reference-cards {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
}

.reference-cards[hidden],
.reference-table-wrap[hidden],
.reference-display-controls [hidden],
.reference-table-hint[hidden] {
  display: none !important;
}

.reference-card {
  background: #fff;
  border: 1px solid #d7dbe0;
  border-radius: 10px;
  padding: 14px;
  box-shadow: 0 3px 12px rgba(32, 35, 38, 0.06);
}

.reference-card h3 {
  margin: 3px 0 12px;
  font-size: 17px;
  line-height: 1.5;
}

.reference-card-meta {
  color: #5d6470;
  font-size: 0.85rem;
}

.reference-card-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 14px;
  margin: 0;
}

.reference-card-facts div {
  min-width: 0;
}

.reference-card-facts dt {
  color: #737981;
  font-size: 11px;
}

.reference-card-facts dd {
  margin: 2px 0 0;
  overflow-wrap: anywhere;
  font-size: 14px;
  font-weight: 600;
}

.reference-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin-top: 12px;
}

.reference-stats span {
  display: grid;
  padding: 6px;
  border-radius: 6px;
  background: #f1f0ed;
  text-align: center;
}

.reference-stats small {
  color: #6b7077;
  font-size: 10px;
}

.reference-stats b {
  font-size: 13px;
}

.reference-card-note {
  margin: 12px 0 0;
  padding-top: 10px;
  border-top: 1px solid #e3e4e5;
  color: #4d535a;
  font-size: 13px;
}

.reference-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 20px 0 4px;
}

.reference-pager button {
  min-width: 88px;
  min-height: 42px;
  border: 1px solid #b9bdc2;
  border-radius: 8px;
  background: #fff;
  color: #202326;
  font-weight: 700;
}

.reference-pager button:disabled {
  opacity: 0.4;
}

.nomenclature-search-form {
  display: grid;
  grid-template-columns: minmax(220px, 2fr) minmax(150px, 1fr) minmax(150px, 1fr) auto;
  align-items: end;
  gap: 1rem;
}

.nomenclature-search-form .nomenclature-query {
  grid-column: auto;
}

.nomenclature-search-form label,
.nomenclature-search-form label span {
  display: grid;
  gap: .35rem;
}

.nomenclature-examples {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .8rem;
  color: var(--muted);
  font-size: .85rem;
}

.nomenclature-examples button {
  padding: .35rem .7rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  cursor: pointer;
}

.nomenclature-status {
  margin: 1rem 0 .5rem;
}

.nomenclature-results {
  display: grid;
  gap: .75rem;
}

.nomenclature-result-card {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: var(--paper);
}

.nomenclature-result-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.nomenclature-result-heading h3 {
  margin: 0;
}

.status-badge {
  flex: 0 0 auto;
  padding: .25rem .55rem;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 700;
}

.status-badge.current { background: #e4f1ed; color: #245f55; }
.status-badge.historical { background: #eceef0; color: #646a72; }

.nomenclature-result-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem 1rem;
  margin: .85rem 0 0;
}

.nomenclature-result-facts dt { color: var(--muted); font-size: .75rem; }
.nomenclature-result-facts dd { margin: .15rem 0 0; overflow-wrap: anywhere; }

.nomenclature-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  margin-top: 1rem;
}

.members-search {
  display: grid;
  grid-template-columns: minmax(15rem, 1.5fr) repeat(3, minmax(9rem, 1fr)) auto;
  align-items: end;
  gap: .8rem;
  margin-bottom: .5rem;
}

.members-search label,
.members-search label span { display: grid; gap: .35rem; }

.members-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.member-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: .75rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: .8rem;
  background: var(--paper);
  box-shadow: var(--shadow);
}

.registration-funnel-card,
.registration-exception-section {
  margin-top: 24px;
  padding: 24px;
  border: 1px solid var(--line);
  background: var(--paper);
  box-shadow: var(--shadow);
}

.registration-funnel-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
}

.registration-funnel-heading h2,
.registration-exception-section h2 { margin: 0 0 8px; }
.registration-funnel-heading p { max-width: 760px; margin: 0; color: var(--muted); }

.registration-funnel-toolbar {
  display: grid;
  grid-template-columns: auto minmax(88px, auto) auto;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.registration-funnel-toolbar label { font-weight: 700; }
.registration-funnel-toolbar select,
.registration-funnel-toolbar button { min-height: 44px; }

.registration-funnel-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  margin-top: 16px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--line);
}

.registration-funnel-metrics > div {
  min-width: 0;
  padding: 16px;
  background: var(--bg);
}

.registration-funnel-metrics strong {
  display: block;
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1;
}

.registration-funnel-metrics span {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-size: .78rem;
}

.registration-funnel-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  gap: 28px;
  margin-top: 24px;
}

.registration-funnel-grid h3 { margin: 0 0 12px; font-size: 1rem; }
.registration-funnel-grid h3:not(:first-child) { margin-top: 24px; }
.registration-funnel-stages,
.registration-funnel-errors { margin: 0; padding: 0; list-style: none; }
.registration-funnel-stages { display: grid; gap: 12px; }
.registration-funnel-stages li > span:first-child { display: flex; justify-content: space-between; gap: 12px; font-size: .82rem; }
.registration-funnel-bar { display: block; height: 8px; margin-top: 6px; overflow: hidden; border-radius: 999px; background: var(--bg); }
.registration-funnel-bar i { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.registration-funnel-signals { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; margin: 0; font-size: .82rem; }
.registration-funnel-signals dt { color: var(--muted); }
.registration-funnel-signals dd { margin: 0; font-weight: 800; }
.registration-funnel-errors { display: grid; gap: 6px; color: var(--muted); font-size: .82rem; }

@media (max-width: 760px) {
  .registration-funnel-card,
  .registration-exception-section { padding: 16px; }
  .registration-funnel-heading { display: grid; align-items: start; }
  .registration-funnel-toolbar { grid-template-columns: auto minmax(0, 1fr) auto; width: 100%; }
  .registration-funnel-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .registration-funnel-metrics > div:last-child { grid-column: 1 / -1; }
  .registration-funnel-grid { grid-template-columns: 1fr; gap: 24px; }
}

.member-card-heading { display: flex; align-items: center; gap: .75rem; }
.member-card-heading img { width: 84px; height: 84px; flex: 0 0 84px; border-radius: 50%; object-fit: cover; }
.member-card-heading .member-private-avatar-image {
  border: 1px solid #cfd4d8;
  background: #f4efe4;
}

/* 鎮魂符構成シミュレーター */
.chinkonfu-hero,
.tool-panel,
.tool-notes {
  border: 1px solid var(--line);
  background: var(--paper);
  box-shadow: var(--shadow);
}

.chinkonfu-hero {
  margin-top: 18px;
  padding: clamp(1.1rem, 2.5vw, 1.8rem);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--accent) 7%, var(--paper)), var(--paper) 62%),
    var(--paper);
}

.chinkonfu-hero h2 { max-width: 54rem; margin: .25rem 0 .55rem; font-size: clamp(1.4rem, 3vw, 2.1rem); line-height: 1.4; }
.chinkonfu-hero > p { max-width: 56rem; margin: 0; color: var(--muted); }
.chinkonfu-privacy { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin-top: 1rem; padding: .75rem .9rem; border-left: 3px solid var(--accent-2); background: color-mix(in srgb, var(--accent-2) 7%, var(--paper)); font-size: .82rem; }
.chinkonfu-privacy span { color: var(--muted); }
.chinkonfu-lead { margin: 1rem 0 0; padding: .75rem .9rem; border-left: 3px solid var(--accent-2); background: color-mix(in srgb, var(--accent-2) 7%, var(--paper)); color: var(--muted); font-size: .84rem; }
.chinkonfu-lead strong { margin-left: .35rem; color: var(--ink); }

.chinkonfu-input-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.tool-panel { margin-top: 1rem; padding: clamp(1rem, 2vw, 1.35rem); }
.chinkonfu-input-grid .tool-panel { margin-top: 0; }
.tool-panel-heading,
.tool-panel-heading-main { display: flex; gap: .75rem; align-items: flex-start; }
.tool-panel-heading-split { justify-content: space-between; }
.tool-panel-heading h2 { margin: 0; font-size: 1.15rem; }
.tool-panel-heading p { margin: .2rem 0 0; color: var(--muted); font-size: .82rem; }
.tool-step-number { display: grid; width: 2rem; height: 2rem; flex: 0 0 2rem; place-items: center; border: 1px solid color-mix(in srgb, var(--accent) 55%, var(--line)); color: var(--accent); font-size: .82rem; font-weight: 900; }

.chinkonfu-form { display: grid; gap: .85rem; margin-top: 1rem; }
.chinkonfu-name-field,
.image-file-field,
.priority-field,
.image-draft-heading label { display: grid; gap: .35rem; font-size: .8rem; font-weight: 800; }
.chinkonfu-name-field input,
.image-draft-heading input { min-height: 44px; }
.soul-input-grid,
.target-input-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; }
.soul-input { display: grid; gap: .25rem; min-width: 0; color: var(--muted); font-size: .74rem; font-weight: 800; }
.soul-input input { width: 100%; min-height: 42px; padding-inline: .55rem; text-align: right; }
.tool-actions,
.optimizer-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }
.tool-actions .primary-button,
.tool-actions .secondary-button,
.optimizer-actions .primary-button,
.optimizer-actions .secondary-button { padding-inline: 1rem; }

.image-login-gate { display: grid; gap: .8rem; margin-top: 1rem; padding: 1rem; border: 1px dashed var(--line); background: var(--bg); }
.image-login-gate p { margin: 0; color: var(--muted); font-size: .84rem; }
.image-login-gate > small { color: var(--muted); font-size: .68rem; line-height: 1.6; }
.image-login-gate .primary-button { width: fit-content; padding-inline: 1rem; text-decoration: none; }

.form-status:not(:empty)[data-feedback-state],
.auth-status:not(:empty)[data-feedback-state] {
  display: block;
  margin-top: .6rem;
  padding: .65rem .75rem;
  border-left: 3px solid var(--line);
  background: var(--bg);
  color: var(--ink);
  line-height: 1.6;
}
.form-status[data-feedback-state="success"],
.auth-status[data-feedback-state="success"] { border-left-color: var(--accent-2); background: color-mix(in srgb, var(--accent-2) 7%, var(--paper)); }
.form-status[data-feedback-state="warning"],
.auth-status[data-feedback-state="warning"] { border-left-color: var(--accent); background: color-mix(in srgb, var(--accent) 7%, var(--paper)); }
.form-status[data-feedback-state="error"],
.auth-status[data-feedback-state="error"] { border-left-color: #9f2f2f; background: color-mix(in srgb, #9f2f2f 7%, var(--paper)); }
.image-file-field { margin-top: 1rem; }
.image-file-field input { min-height: 46px; padding: .55rem; border: 1px solid var(--line); background: #fff; }
.image-file-field small { color: var(--muted); font-weight: 400; }
.image-draft-list { display: grid; gap: .7rem; margin: .8rem 0; }
.image-draft-card { padding: .85rem; border: 1px solid var(--line); background: var(--bg); }
.image-draft-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; align-items: end; }
.image-draft-values { margin-top: .75rem; }
.image-draft-card details { margin-top: .65rem; font-size: .75rem; }
.image-draft-card summary { color: var(--accent-2); cursor: pointer; font-weight: 800; }
.image-draft-card pre { max-height: 10rem; overflow: auto; padding: .65rem; background: var(--paper); white-space: pre-wrap; overflow-wrap: anywhere; }

.inventory-list { display: grid; gap: .6rem; margin-top: 1rem; }
.inventory-item { display: grid; grid-template-columns: minmax(10rem, .8fr) minmax(0, 2fr) auto; gap: .8rem; align-items: center; padding: .8rem; border: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 84%, var(--bg)); }
.inventory-item-heading { display: flex; gap: .6rem; align-items: center; min-width: 0; }
.inventory-index { display: grid; width: 1.75rem; height: 1.75rem; flex: 0 0 1.75rem; place-items: center; background: var(--ink); color: #fff; font-size: .72rem; font-weight: 900; }
.inventory-item h3 { margin: 0; overflow-wrap: anywhere; font-size: .92rem; }
.duplicate-note { color: var(--accent); font-size: .68rem; }
.inventory-souls { display: flex; flex-wrap: wrap; gap: .35rem; }
.inventory-souls span { display: inline-flex; gap: .3rem; padding: .18rem .45rem; border: 1px solid var(--line); background: #fff; font-size: .74rem; }
.inventory-actions { display: flex; gap: .35rem; }
.priority-field { max-width: 16rem; margin-top: .85rem; }
.priority-field select { min-height: 44px; }
.optimizer-actions { margin-top: 1rem; }

.result-summary { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: .9rem 1rem; border-left: 4px solid var(--accent-2); background: color-mix(in srgb, var(--accent-2) 8%, var(--paper)); }
.result-summary.is-unachieved { border-left-color: var(--accent); background: color-mix(in srgb, var(--accent) 7%, var(--paper)); }
.result-summary span { color: var(--muted); font-size: .8rem; }
.candidate-list { display: grid; gap: 1rem; margin-top: 1rem; }
.candidate-card { padding: 1rem; border: 1px solid var(--line); background: var(--paper); }
.candidate-card-primary { border-top: 4px solid var(--accent-2); }
.candidate-heading { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.candidate-heading h3 { margin: 0; font-size: 1.05rem; }
.candidate-heading small { margin-left: auto; color: var(--muted); }
.result-badge { display: inline-flex; min-height: 24px; align-items: center; padding: 0 .55rem; font-size: .7rem; font-weight: 900; }
.result-badge.is-achieved { background: color-mix(in srgb, var(--accent-2) 13%, #fff); color: var(--accent-2); }
.result-badge.is-unachieved { background: color-mix(in srgb, var(--accent) 12%, #fff); color: var(--accent); }
.selected-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; margin: .8rem 0; padding: 0; list-style: none; }
.selected-items li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0 .5rem; padding: .55rem; border: 1px solid var(--line); background: var(--bg); }
.selected-items li > span { grid-row: 1 / span 2; color: var(--accent); font-weight: 900; }
.selected-items strong { font-size: .82rem; }
.selected-items small { color: var(--muted); font-size: .68rem; overflow-wrap: anywhere; }
.result-table-wrap { overflow-x: auto; }
.soul-result-table { width: 100%; min-width: 48rem; border-collapse: collapse; font-size: .78rem; }
.soul-result-table th,
.soul-result-table td { padding: .5rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.soul-result-table tbody th { white-space: nowrap; }
.soul-result-table tr.is-met { background: color-mix(in srgb, var(--accent-2) 6%, var(--paper)); }
.soul-result-table tr.is-short { background: color-mix(in srgb, var(--accent) 6%, var(--paper)); }
.soul-result-table td small { display: block; margin-top: .15rem; color: var(--muted); font-size: .66rem; }
.replacement-details { margin-top: .8rem; }
.replacement-details summary { color: var(--accent-2); cursor: pointer; font-size: .82rem; font-weight: 900; }
.replacement-details ul { display: grid; gap: .35rem; margin: .6rem 0 0; padding: 0; list-style: none; }
.replacement-details li { display: grid; grid-template-columns: minmax(8rem, .7fr) minmax(0, 2fr); gap: .6rem; padding: .45rem .55rem; background: var(--bg); font-size: .75rem; }
.replacement-details span { color: var(--muted); }
.tool-notes { margin-top: 1rem; padding: .85rem 1rem; }
.tool-notes summary { cursor: pointer; color: var(--accent-2); font-weight: 900; }
.tool-notes p { margin-bottom: 0; color: var(--muted); font-size: .8rem; }

.image-login-gate[hidden],
#imageReaderPanel[hidden],
.result-panel[hidden],
#cancelOptimize[hidden] { display: none !important; }

.image-import { margin: 1rem 0; border: 1px solid var(--line); background: var(--bg); }
.image-import > summary { min-height: 46px; padding: .75rem .9rem; color: var(--accent-2); cursor: pointer; font-size: .84rem; font-weight: 900; }
.image-import > summary span { margin-left: .45rem; color: var(--muted); font-size: .7rem; font-weight: 700; }
.image-import[open] > summary { border-bottom: 1px solid var(--line); }
.image-import .image-login-gate,
.image-import #imageReaderPanel { margin: 0; padding: 1rem; border: 0; }

.entry-method-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0; }
.entry-method-card { min-width: 0; padding: 1rem; border: 1px solid var(--line); background: var(--bg); }
.entry-method-card.is-primary { border-top: 4px solid var(--accent-2); background: color-mix(in srgb, var(--accent-2) 5%, var(--paper)); }
.entry-method-heading,
.entry-method-heading > div { display: flex; align-items: center; justify-content: space-between; gap: .55rem; }
.entry-method-heading h3 { margin: 0; font-size: 1rem; }
.entry-method-number { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border: 1px solid var(--line); color: var(--accent); font-size: .72rem; font-weight: 900; }
.entry-method-heading > small { color: var(--muted); font-size: .68rem; font-weight: 800; }
.entry-method-card.is-primary .entry-method-heading > small { color: var(--accent-2); }
.entry-method-card > p { margin: .65rem 0; color: var(--muted); font-size: .78rem; }
.entry-method-card .image-login-gate { margin-top: .65rem; padding: .75rem; }
.entry-method-card .image-file-field { margin-top: .65rem; }
.image-read-issues { margin: .75rem 0 0; padding: .7rem .8rem .7rem 1.8rem; border-left: 4px solid #a05a4d; background: #fff5f2; color: #6d2f27; font-size: .78rem; }
.image-read-issues li + li { margin-top: .35rem; }
.entry-method-card .secondary-button { min-height: 44px; }
.talisman-cards-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 1.1rem 0 .65rem; padding-top: 1rem; border-top: 1px solid var(--line); scroll-margin-top: 1rem; }
.talisman-cards-heading h3 { margin: 0; font-size: 1rem; }
.talisman-cards-heading p { margin: 0; color: var(--muted); font-size: .72rem; }

.talisman-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.talisman-input-card { min-width: 0; padding: .85rem; border: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 88%, var(--bg)); }
.talisman-input-card.is-started { border-left: 3px solid var(--accent); }
.talisman-input-card.is-complete { border-left: 3px solid var(--accent-2); }
.talisman-input-card.has-warning { border-color: var(--accent); }
.talisman-card-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.talisman-card-heading h3 { margin: 0; font-size: .94rem; }
.talisman-card-heading > span { color: var(--muted); font-size: .68rem; font-weight: 800; }
.talisman-input-card.is-complete .talisman-card-heading > span { color: var(--accent-2); }
.talisman-souls { display: grid; gap: .4rem; margin-top: .65rem; }
.talisman-soul-row { display: grid; grid-template-columns: 4.2rem minmax(0, 1fr) minmax(6.5rem, .42fr); gap: .5rem; align-items: center; }
.soul-order { color: var(--ink); font-size: .72rem; font-weight: 900; }
.talisman-soul-row select,
.talisman-soul-row input { width: 100%; min-height: 42px; padding: .45rem .55rem; }
.soul-value-field { position: relative; display: block; }
.soul-value-field input { padding-right: 1.7rem; text-align: right; }
.soul-value-field b { position: absolute; top: 50%; right: .55rem; translate: 0 -50%; color: var(--muted); font-size: .72rem; }
.talisman-card-warning { display: block; margin-top: .55rem; color: var(--accent); font-size: .66rem; font-weight: 800; }
.talisman-card-warning[hidden] { display: none; }

.target-card { display: grid; gap: .3rem; color: var(--ink); font-size: .76rem; font-weight: 900; }
.target-card select { width: 100%; min-height: 44px; padding: .45rem .55rem; font-size: .76rem; }
.optimizer-options { max-width: 22rem; margin-top: .8rem; }
.optimizer-options summary { min-height: 42px; padding-block: .55rem; color: var(--accent-2); cursor: pointer; font-size: .78rem; font-weight: 900; }
.optimizer-options .priority-field { margin-top: .35rem; }
.content-credit { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: .85rem 1rem; border-left: 3px solid var(--accent-2); background: color-mix(in srgb, var(--accent-2) 7%, var(--paper)); }
.content-credit > div { display: grid; gap: .15rem; flex: 0 0 auto; }
.content-credit span { color: var(--muted); font-size: .7rem; font-weight: 800; }
.content-credit strong { font-size: .9rem; }
.content-credit p { max-width: 52rem; margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.7; }
.replacement-impossible { display: block; color: var(--accent); font-size: .76rem; }
.replacement-impossible + small { display: block; margin-top: .15rem; color: var(--muted); font-size: .68rem; }
.excluded-items { margin: -.15rem 0 .8rem; padding: .55rem .7rem; background: var(--bg); color: var(--muted); font-size: .75rem; }
.excluded-items strong { color: var(--ink); }

@media (max-width: 820px) {
  .chinkonfu-input-grid { grid-template-columns: 1fr; }
  .soul-input-grid,
  .target-input-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .inventory-item { grid-template-columns: minmax(0, 1fr) auto; }
  .inventory-souls { grid-column: 1 / -1; grid-row: 2; }
}

@media (max-width: 640px) {
  .chinkonfu-hero,
  .tool-panel { padding: 1rem; }
  .chinkonfu-privacy { display: grid; }
  .chinkonfu-lead strong { display: block; margin: .2rem 0 0; }
  .tool-panel-heading-split { align-items: stretch; flex-direction: column; }
  .tool-panel-heading-split > .secondary-button { width: 100%; }
  .tool-actions,
  .optimizer-actions { align-items: stretch; flex-direction: column; }
  .tool-actions > *,
  .optimizer-actions > * { width: 100%; }
  .image-login-gate .primary-button { width: 100%; }
  .inventory-item { grid-template-columns: minmax(0, 1fr); }
  .inventory-souls { grid-column: auto; grid-row: auto; }
  .inventory-actions { width: 100%; }
  .inventory-actions button { flex: 1; }
  .selected-items { grid-template-columns: 1fr; }
  .result-summary { align-items: flex-start; flex-direction: column; }
  .replacement-details li { grid-template-columns: 1fr; gap: .15rem; }
  .image-draft-heading { grid-template-columns: 1fr; align-items: stretch; }
  .talisman-card-grid { grid-template-columns: 1fr; }
  .entry-method-grid { grid-template-columns: 1fr; }
  .entry-method-card.is-primary { border-top-width: 3px; }
  .talisman-cards-heading { align-items: flex-start; flex-direction: column; gap: .25rem; }
  .talisman-soul-row { grid-template-columns: 3.5rem minmax(0, 1fr) minmax(5.8rem, .44fr); gap: .35rem; }
  .target-input-grid { grid-template-columns: 1fr; }
  .optimizer-options { max-width: none; }
  .content-credit { align-items: flex-start; flex-direction: column; }
  .result-table-wrap { overflow: visible; }
  .soul-result-table { min-width: 0; }
  .soul-result-table thead { display: none; }
  .soul-result-table,
  .soul-result-table tbody { display: block; }
  .soul-result-table tr { display: grid; grid-template-columns: minmax(4.2rem, auto) repeat(3, minmax(0, 1fr)); padding: .55rem; border-bottom: 1px solid var(--line); }
  .soul-result-table th,
  .soul-result-table td { padding: .2rem; border: 0; }
  .soul-result-table td { text-align: right; }
  .soul-result-table td:nth-child(2)::before { content: "合計 "; color: var(--muted); font-size: .62rem; }
  .soul-result-table td:nth-child(3)::before { content: "目標 "; color: var(--muted); font-size: .62rem; }
  .soul-result-table td:nth-child(4)::before { content: "差 "; color: var(--muted); font-size: .62rem; }
  .soul-result-table td:nth-child(5) { grid-column: 1 / -1; margin-top: .25rem; padding-top: .4rem; border-top: 1px dashed var(--line); text-align: left; }
}
.member-private-avatar {
  display: grid;
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  place-items: center;
  border: 1px solid #cfd4d8;
  border-radius: 50%;
  background: #eef0f1;
  color: #606970;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 1.35rem;
  font-weight: 700;
}
.member-card-heading h2 { margin: 0; font-size: 1.05rem; overflow-wrap: anywhere; }
.member-character-count { color: var(--muted); font-size: .8rem; }
.member-card-private {
  justify-content: center;
  min-height: 116px;
  border-style: dashed;
  background: #f7f7f5;
  box-shadow: none;
}
.member-contribution {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
  padding: .65rem .8rem;
  border: 1px solid #dfc171;
  border-radius: .75rem;
  background: linear-gradient(135deg, #fffdf4 0%, #fff5cf 100%);
  box-shadow: 0 3px 10px rgba(157, 119, 31, .1);
  color: #695b37;
  font-size: .82rem;
  font-weight: 700;
}
.member-contribution strong {
  color: #805b00;
  font-size: 1.45rem;
  line-height: 1;
  letter-spacing: -.02em;
}
.member-contribution-badges { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: -.4rem; }
.badge-guide {
  margin: .25rem 0 1rem;
  border: 1px solid #d8dde1;
  border-radius: 12px;
  background: #fbfcfc;
}
.badge-guide summary {
  padding: .7rem .9rem;
  color: #46515a;
  font-weight: 700;
  cursor: pointer;
}
.badge-guide-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: .55rem .9rem;
  padding: 0 .9rem .9rem;
}
.badge-guide-list p {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin: 0;
  color: #59636b;
  font-size: .84rem;
}
.badge-guide-list p > span:last-child { line-height: 1.4; }
.member-contribution-badges span {
  padding: .18rem .45rem;
  border-radius: 999px;
  background: var(--paper-soft);
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
}
.member-bio, .member-character-names { margin: 0; overflow-wrap: anywhere; }
.member-play-meta { margin: 0; color: var(--accent-2); font-size: .85rem; font-weight: 700; }
.member-filter-chip {
  min-height: 30px;
  padding: .25rem .65rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--bg);
  color: var(--ink);
  font: inherit;
  font-size: .8rem;
  font-weight: 700;
  line-height: 1.25;
  cursor: pointer;
}
.member-filter-chip:hover,
.member-filter-chip:focus-visible {
  border-color: var(--accent-2);
  background: color-mix(in srgb, var(--accent-2) 8%, var(--paper));
  color: var(--accent-2);
}
.member-filter-chip:focus-visible { outline: 2px solid color-mix(in srgb, var(--accent-2) 45%, transparent); outline-offset: 2px; }
.member-filter-chip[aria-pressed="true"] {
  border-color: var(--accent-2);
  background: var(--accent-2);
  color: #fff;
}
.member-filter-chip-server {
  min-height: 26px;
  padding: .15rem .5rem;
  border-color: color-mix(in srgb, var(--accent-2) 40%, var(--line));
  background: color-mix(in srgb, var(--accent-2) 7%, var(--paper));
  color: var(--accent-2);
  font-size: .78rem;
}

.privacy-consent-summary,
.privacy-data-management,
.privacy-policy { display: grid; gap: .75rem; }

.privacy-consent-summary {
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  background: var(--paper-soft);
}

.privacy-consent-summary h3,
.privacy-consent-summary p { margin: 0; }

#xLoginLink[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
#xLoginLink[hidden] { display: none; }

.privacy-delete-details {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.privacy-delete-details summary {
  color: #8b2f2f;
  font-weight: 800;
  cursor: pointer;
}

.danger-button { border-color: #8b2f2f; color: #8b2f2f; }

.profile-blog-latest { display: grid; gap: .75rem; }
.profile-blog-latest h3,
.profile-blog-name { margin: 0; }
.profile-blog-name { color: var(--muted); font-size: .85rem; }
.profile-blog-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.profile-blog-card {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr);
  gap: .6rem;
  min-height: 4rem;
  padding: .3rem;
  border: 1px solid var(--line);
  border-radius: .65rem;
  overflow: hidden;
  background: var(--paper);
  color: inherit;
  text-decoration: none;
}
.profile-blog-card:hover,
.profile-blog-card:focus-visible { border-color: var(--accent); }
.profile-blog-card img { display: block; width: 6.5rem; height: 3.66rem; object-fit: cover; border-radius: .4rem; background: var(--line); }
.profile-blog-card > span { display: grid; gap: .2rem; padding: .2rem .35rem .2rem 0; align-content: center; min-width: 0; }
.profile-blog-card strong {
  display: -webkit-box;
  overflow: hidden;
  color: var(--accent-2);
  font-size: .84rem;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.profile-blog-card small { color: var(--muted); font-size: .74rem; font-variant-numeric: tabular-nums; }
.profile-blog-card-no-image { grid-template-columns: minmax(0, 1fr); }
.profile-blog-card-no-image > span { padding-left: .45rem; }
.member-character-names { color: var(--muted); font-size: .85rem; }
.member-profile-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: auto;
  text-align: center;
}
.members-privacy-note { margin-top: 1.25rem; }

@media (max-width: 900px) { .members-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (max-width: 640px) {
  .member-card-heading img { width: 72px; height: 72px; flex-basis: 72px; }
  .profile-blog-list { grid-template-columns: 1fr; }
  .profile-blog-card { grid-template-columns: 6rem minmax(0, 1fr); }
  .profile-blog-card img { width: 6rem; height: 3.38rem; }
  .profile-blog-card-no-image { grid-template-columns: minmax(0, 1fr); }
  .nomenclature-search-form { grid-template-columns: 1fr; }
  .nomenclature-result-facts { grid-template-columns: 1fr; }
  .nomenclature-result-heading { align-items: flex-start; }
  .members-search, .members-grid { grid-template-columns: 1fr; }
}

.ocr-preview-image {
  display: block;
  max-width: 100%;
  border-radius: 12px;
  margin: 0 0 1rem;
  border: 1px solid #d7dbe0;
}
.ocr-preview-image[hidden] { display: none; }

.reference-cards-always {
  display: grid;
}

.analysis-panel {
  background: #f4f6f8;
  border: 1px solid #d7dbe0;
  border-radius: 14px;
  padding: 1rem 1.1rem;
  color: #2b3139;
}

.analysis-panel p {
  margin: 0.45rem 0;
}

.analysis-panel strong {
  color: #1d2733;
}

@media (max-width: 640px) {
  body[data-reference-slug] main {
    padding-inline: 0;
  }

  body[data-reference-slug] .search-hero {
    margin-top: 10px;
    padding: 14px;
  }

  body[data-reference-slug] .search-hero p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }

  body[data-reference-slug] .summary-band {
    display: none;
  }

  body[data-reference-slug] .toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    position: sticky;
    top: 0;
    z-index: 8;
    margin-top: 10px;
    padding: 12px;
    border: 1px solid #d7dbe0;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 5px 16px rgba(32, 35, 38, 0.08);
  }

  body[data-reference-slug] .toolbar .search-field { grid-column: 1 / -1; }
  body[data-reference-slug] .toolbar label { min-width: 0; }
  body[data-reference-slug] .toolbar label > span { font-size: .75rem; }

  body[data-reference-slug] .toolbar input,
  body[data-reference-slug] .toolbar select {
    min-height: 44px;
  }

  .reference-display-controls {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    padding: 10px 12px;
  }

  .reference-view-switch button {
    min-width: 0;
    padding-inline: 8px;
  }

  .reference-table-wrap {
    display: block;
    max-height: 62dvh;
    margin-top: 10px;
  }

  .reference-table-wrap[hidden] {
    display: none;
  }

  .reference-comparison-table {
    font-size: 12px;
  }

  .reference-table-wrap th,
  .reference-table-wrap td {
    padding: 8px 10px;
  }

  .reference-table-wrap [data-column-type="number"] {
    min-width: 4rem;
  }

  .reference-identity-cell {
    min-width: 8.5rem;
    max-width: 9.5rem;
  }

  .reference-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.profile-card,
.nearby-players,
.profile-editor,
.profile-history {
  max-width: 900px;
  margin: 0 auto 1rem;
  padding: 1.25rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--paper);
}

.privacy-data-management[hidden],
.privacy-recovery[hidden] { display: none !important; }

.nearby-players { margin-top: 1rem; }
.nearby-players-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.nearby-players-heading h2 { margin: .1rem 0 0; }
.nearby-players-note { margin: .65rem 0 1rem; color: var(--muted); }
.nearby-player-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.nearby-player-card { display: flex; align-items: center; gap: .7rem; min-width: 0; padding: .75rem; border: 1px solid var(--line); background: var(--surface-soft); color: var(--ink); text-decoration: none; }
.nearby-player-card:hover { border-color: var(--accent); }
.nearby-player-card img { width: 48px; height: 48px; flex: 0 0 auto; border-radius: 50%; object-fit: cover; }
.nearby-player-card > span { display: grid; gap: .15rem; min-width: 0; }
.nearby-player-card strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nearby-player-card small { color: var(--muted); }

.history-hero { margin-bottom: 1.2rem; }
.public-history-list { display: grid; gap: 1.4rem; max-width: 900px; margin: 0 auto; }
.public-history-day { position: relative; display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: .75rem 0; }
.public-history-day::before { position: absolute; top: 2.6rem; bottom: -.8rem; left: 22px; width: 1px; background: var(--line); content: ""; }
.public-history-day > h2 { grid-column: 1 / -1; margin: 0; font-size: 1rem; color: var(--muted); }
.public-history-card { position: relative; grid-column: 2; padding: 1.15rem 1.25rem; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); box-shadow: 0 8px 24px rgba(45, 32, 20, .05); }
.public-history-marker { position: absolute; top: 1rem; left: -46px; z-index: 1; display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--accent-2); border-radius: 50%; background: var(--bg); color: var(--accent-2); font-family: serif; font-size: .78rem; font-weight: 800; }
.public-history-card h3 { margin: 0 0 .45rem; font-size: 1.12rem; }
.public-history-card p { margin: 0; color: var(--muted); }
.public-history-card ul { margin: .8rem 0 0; padding-left: 1.25rem; }
.public-history-card li + li { margin-top: .25rem; }
.public-history-links { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .9rem; }
.public-history-links a { padding: .45rem .7rem; border: 1px solid var(--line); background: var(--surface-soft); text-decoration: none; }

@media (max-width: 640px) {
  .nearby-players-heading { align-items: start; }
  .nearby-player-list { grid-template-columns: 1fr; }
}

body[data-page="contributions"] .summary-band {
  border: 1px solid #3a332b;
  background: #3a332b;
}

body[data-page="contributions"] .summary-band > div {
  display: grid;
  align-content: center;
  min-height: 116px;
  background: #2d2822;
}

body[data-page="contributions"] .summary-band .metric-value { color: #fffaf1; }
body[data-page="contributions"] .summary-band .metric-label { color: #c8bdad; }

@media (max-width: 640px) {
  .visual-flow-strip li {
    min-height: 112px;
    padding: 12px 6px;
  }

  .visual-flow-strip li > span {
    width: 40px;
    height: 40px;
    font-size: 17px;
  }

  .visual-flow-strip strong { font-size: .78rem; }
  .visual-flow-strip small { font-size: .62rem; }

  body[data-page="contributions"] .summary-band {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body[data-page="contributions"] .summary-band > div {
    min-height: 104px;
    padding: 12px 8px;
    text-align: center;
  }

  body[data-page="contributions"] .summary-band .metric-value { font-size: 1.5rem; }
  body[data-page="contributions"] .summary-band .metric-label { font-size: .65rem; }

  .public-history-list { gap: 1.1rem; }
  .public-history-day { grid-template-columns: 38px minmax(0, 1fr); }
  .public-history-day::before { left: 18px; }
  .public-history-marker { left: -38px; width: 30px; height: 30px; }
}

.profile-heading {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.profile-avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
}

.profile-handle,
.profile-private-note {
  color: var(--muted);
}

.profile-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .6rem;
  margin: 1rem 0;
}

.profile-metrics div {
  padding: .8rem;
  border-radius: 10px;
  background: var(--bg);
  text-align: center;
}

.profile-metrics strong,
.profile-metrics span {
  display: block;
}

.profile-metric-confidence {
  display: block;
  margin-top: .2rem;
  color: var(--muted);
  font-size: 11px;
}

.profile-view-stats {
  margin-top: .8rem;
  padding: .9rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: var(--paper-soft);
}
.profile-view-stats h3,
.profile-view-stats .profile-metrics,
.profile-view-note { margin-top: 0; }
.profile-view-note { margin-bottom: 0; color: var(--muted); font-size: .8rem; }

.profile-currency-note {
  margin: .65rem 0;
  color: var(--muted);
  font-size: .8rem;
  line-height: 1.6;
}

.profile-user-id {
  margin: 0.2rem 0 0;
  color: var(--text-muted);
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
}

.profile-referral-box {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: var(--surface-soft);
}

.profile-referral-box h3,
.profile-referral-box p { margin-top: 0; }

#referralLinkResult:not([hidden]) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.5rem;
  align-items: center;
  margin-top: 0.75rem;
}

#referralLinkResult small { grid-column: 1 / -1; }

.referral-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.x-share-button {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #fff;
  background: #111;
  border-color: #111;
}

.x-share-button:hover { background: #333; }

.x-share-icon {
  display: inline-grid;
  width: 1.2rem;
  height: 1.2rem;
  place-items: center;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1;
}

.registration-guide {
  margin-top: 1rem;
}

.registration-criteria {
  display: grid;
  gap: 0.65rem;
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}

.registration-criteria li {
  display: grid;
  gap: 0.2rem;
  padding: 0.8rem 0.9rem;
  border-left: 3px solid var(--accent);
  background: var(--surface-soft);
}

.registration-criteria span,
.registration-alpha-note {
  color: var(--text-muted);
  font-size: 0.9rem;
}

.registration-note {
  margin: 0 1rem 1rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--line);
  border-radius: 0.65rem;
}

.registration-note h3,
.registration-note p,
.registration-alpha-note { margin-top: 0; }

.auth-invite-recovery {
  display: grid;
  gap: 0.75rem;
  margin: 0.85rem 0 0;
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
  background: color-mix(in srgb, var(--accent) 6%, var(--paper));
}

.auth-invite-recovery[hidden] { display: none; }

.auth-invite-recovery .primary-button { justify-content: center; }

.registration-post-step {
  display: grid;
  gap: 0.75rem;
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 0.65rem;
  background: var(--surface-soft);
}

.registration-post-step[hidden] { display: none; }
.registration-post-step p { margin: 0; }
.registration-post-step .primary-button { justify-content: center; }
.registration-post-step input { width: 100%; }

.registration-alpha-note { margin: 0 1rem 1rem; }

.public-profile-invite {
  display: grid;
  gap: 0.85rem;
  margin-top: 1.5rem;
  padding: clamp(1.15rem, 4vw, 1.75rem);
  border: 2px solid var(--accent);
  border-radius: 0.9rem;
  background: linear-gradient(145deg, var(--surface-soft), var(--paper));
  box-shadow: 0 12px 30px rgb(42 48 57 / 10%);
  text-align: center;
}

.public-profile-invite h3,
.public-profile-invite p {
  margin: 0;
}

.public-profile-invite h3 {
  font-size: clamp(1.2rem, 4vw, 1.45rem);
}

.public-profile-invite .public-profile-invite-points {
  max-width: 40rem;
  margin-inline: auto;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.6;
}

.public-profile-invite-benefits {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem 1rem;
  max-width: 42rem;
  margin: 0.2rem auto;
  padding: 0;
  color: var(--text-muted);
  font-size: 0.9rem;
  list-style: none;
  text-align: left;
}

.public-profile-invite-benefits li::before {
  content: "✓";
  margin-right: 0.4rem;
  color: var(--accent-2);
  font-weight: 800;
}

.public-profile-invite-actions {
  display: grid;
  justify-items: center;
  gap: 0.65rem;
}

.public-profile-share-actions {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.public-profile-invite-button {
  min-width: min(100%, 22rem);
  padding: 0.85rem 1.5rem;
  justify-content: center;
  font-size: 1rem;
  box-shadow: 0 8px 20px rgb(42 48 57 / 16%);
}

@media (max-width: 640px) {
  .public-profile-invite-benefits {
    grid-template-columns: 1fr;
  }

  .public-profile-invite-button {
    width: 100%;
  }

  .public-profile-share-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }
}

.request-chat-start {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 1rem 0;
}

.thread-list-heading {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: center;
}

.thread-list-heading h2 { margin: 0; }

.profile-youtube-latest { margin-top: 1.25rem; }
.profile-youtube-latest h3 { margin: 0 0 0.65rem; }
.profile-youtube-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; }
.profile-youtube-card { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 0.6rem; min-height: 4rem; padding: 0.3rem; color: inherit; text-decoration: none; border: 1px solid var(--line); border-radius: 0.65rem; overflow: hidden; background: var(--paper); transition: border-color 160ms ease, background 160ms ease; }
.profile-youtube-card:hover { border-color: var(--accent); background: var(--bg); }
.profile-youtube-card img { display: block; width: 6.5rem; height: 3.66rem; object-fit: cover; border-radius: 0.4rem; background: var(--line); }
.profile-youtube-card > span { display: grid; gap: 0.2rem; padding: 0.2rem 0.35rem 0.2rem 0; align-content: center; min-width: 0; }
.profile-youtube-card strong { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 0.84rem; line-height: 1.45; }
.profile-youtube-card small { color: var(--muted); font-size: 0.74rem; font-variant-numeric: tabular-nums; }
@media (max-width: 640px) {
  .profile-youtube-grid { grid-template-columns: 1fr; }
  .profile-youtube-card { grid-template-columns: 6rem minmax(0, 1fr); }
  .profile-youtube-card img { width: 6rem; height: 3.38rem; }
}

.profile-cover-image,
.profile-cover-preview {
  display: block;
  width: 100%;
  aspect-ratio: 5 / 2;
  object-fit: cover;
  border-radius: 0.75rem;
  background: var(--line);
}

.profile-avatar-settings { margin-top: 14px; }
.profile-avatar-preview { width: 96px; height: 96px; object-fit: cover; border-radius: 50%; border: 1px solid var(--line); }
.profile-avatar-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 10px; }

.profile-cover-image { margin-bottom: 1rem; }
.profile-cover-preview { max-width: 42rem; margin: 0.75rem 0; }
.profile-cover-select { display: inline-flex; justify-content: center; cursor: pointer; }

.profile-started-settings {
  display: grid;
  gap: .7rem;
}

.profile-started-settings > label:not(.profile-toggle) {
  display: grid;
  gap: .35rem;
  max-width: 18rem;
}

.profile-started-at {
  margin: .65rem 0 0;
  color: var(--accent-2);
  font-weight: 700;
}
#characterManagerNavLink[hidden] { display: none; }

@media (max-width: 640px) {
  #referralLinkResult:not([hidden]) { grid-template-columns: 1fr; }
  #referralLinkResult small { grid-column: auto; }
  .referral-actions { display: grid; grid-template-columns: 1fr 1fr; }
}

.profile-alpha-note {
  margin: -.35rem 0 1rem;
  color: var(--muted);
  font-size: 12px;
}

.profile-evaluation-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: -.35rem 0 1rem;
}
.profile-badge-heading {
  margin: 1rem 0 .45rem;
  font-size: .94rem;
  color: #46515a;
}
.profile-earned-badge {
  display: flex;
  align-items: center;
  gap: .45rem;
  color: #667078;
  font-size: .78rem;
}
.profile-next-badges {
  margin-top: .8rem;
  padding: .65rem .8rem;
  border: 1px solid #d9dee2;
  border-radius: 12px;
  background: #fbfcfc;
}
.profile-next-badges summary {
  color: #46515a;
  font-size: .88rem;
  font-weight: 700;
  cursor: pointer;
}
.profile-next-badges p {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: .6rem 0 0;
  color: #667078;
  font-size: .8rem;
}

.profile-evaluation-badges span {
  padding: .3rem .55rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--bg);
  color: var(--accent-2);
  font-size: 12px;
  font-weight: 800;
}

.profile-evaluation-detail {
  margin: 0 0 1rem;
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg);
}

.profile-evaluation-detail summary {
  cursor: pointer;
  font-weight: 800;
}

.profile-evaluation-detail p {
  margin: .55rem 0 0;
  color: var(--muted);
  font-size: 13px;
}

.member-contribution-badges .contribution-badge,
.profile-evaluation-badges .contribution-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  min-height: 1.65rem;
  padding: .26rem .62rem;
  border: 1px solid #c9d1d8;
  border-radius: 999px;
  background: linear-gradient(145deg, #fff, #f0f3f5);
  box-shadow: inset 0 1px 0 #fff, 0 2px 5px rgba(52,65,75,.08);
  color: #46515a;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: .01em;
}

.contribution-badge::before {
  color: currentColor;
  font-size: .82rem;
  line-height: 1;
}

.contribution-badge.badge--initial {
  border-color: #daa871;
  background: linear-gradient(145deg, #fff8eb, #f5d8b2);
  color: #74481f;
}
.contribution-badge.badge--initial::before { content: "●"; }

.contribution-badge.badge--first {
  border-color: #a8d8c0;
  background: linear-gradient(145deg, #f4fff9, #dff4e9);
  color: #28664a;
}
.contribution-badge.badge--first::before { content: "✓"; color: #25845a; }
.contribution-badge.badge--ongoing,
.contribution-badge.badge--wide,
.contribution-badge.badge--guide {
  border-color: #b9cee2;
  background: linear-gradient(145deg, #f7fbff, #e4eff8);
  color: #365f80;
}
.contribution-badge.badge--ongoing::before,
.contribution-badge.badge--wide::before { content: "✦"; color: #476582; }
.contribution-badge.badge--guide::before { content: "↗"; color: #476582; }

.contribution-badge.badge--founder {
  border-color: #d6aa31;
  background: linear-gradient(135deg, #fffdf1 0%, #fff1ac 52%, #f5ce61 100%);
  box-shadow: inset 0 1px 0 #fff, 0 3px 8px rgba(181,132,20,.14);
  color: #694700;
}
.contribution-badge.badge--founder::before { content: "♛"; font-size: .95rem; }

.contribution-badge.badge--legacy {
  border-color: #d5b46a;
  background: linear-gradient(135deg, #fffdf4, #f7e7b8 58%, #e5c77d);
  box-shadow: inset 0 1px 0 #fff, 0 3px 8px rgba(128,91,24,.12);
  color: #684d17;
}
.contribution-badge.badge--legacy::before { content: "◆"; font-size: .76rem; }

@media (max-width: 640px) {
  .member-contribution-badges .contribution-badge,
  .profile-evaluation-badges .contribution-badge {
    white-space: normal;
    text-align: left;
  }
}

.profile-evaluation-settings {
  display: grid;
  gap: .65rem;
  margin: 0;
  padding: 1rem;
  border: 1px solid var(--line);
}

.profile-evaluation-settings p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.profile-tags,
.specialty-options {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.profile-tags span,
.specialty-option {
  padding: .35rem .65rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--bg);
}

.specialty-option {
  display: inline-grid;
  grid-template-columns: 18px auto;
  align-items: center;
  gap: .4rem;
}

.specialty-option input[type="checkbox"] {
  width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 0;
  padding: 0;
}

.profile-editor form {
  display: grid;
  gap: 1rem;
}

.profile-editor textarea {
  width: 100%;
  box-sizing: border-box;
}

.profile-toggle {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  justify-content: start;
  gap: .5rem;
  width: fit-content;
  color: var(--ink);
  font-size: 14px;
}

.profile-toggle input[type="checkbox"] {
  width: 18px;
  min-height: 18px;
  height: 18px;
  margin: 0;
  padding: 0;
}

.profile-link-fields {
  display: grid;
  gap: .8rem;
  margin: 0;
  padding: 1rem;
  border: 1px solid var(--line);
}

.profile-public-links {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: 1rem;
}

.profile-public-links a {
  padding: .45rem .7rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--accent-2);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.profile-public-links a:hover,
.profile-public-links a:focus-visible {
  text-decoration: underline;
}

.profile-public-link {
  display: grid;
  gap: .55rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg);
}

.profile-public-link[hidden] {
  display: none;
}

.profile-public-link > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .5rem;
  align-items: center;
}

.profile-public-link .mini-button {
  margin: 0;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .profile-public-link > div {
    grid-template-columns: 1fr;
  }
}

.profile-history-item {
  padding: .8rem 0;
  border-top: 1px solid var(--border);
}

.character-slots {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.game-accounts {
  display: grid;
  gap: 1rem;
}

.game-account {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper);
  overflow: hidden;
}

.game-account-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: .8rem 1rem;
  cursor: pointer;
  background: var(--bg);
}

.game-account-summary-count {
  color: var(--muted);
  font-size: .85rem;
}

.game-account-content {
  display: grid;
  gap: .8rem;
  padding: 1rem;
}

.game-account-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.game-account-heading h3 {
  margin: 0;
}

.character-manager-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1rem;
}

.character-eiketsu-manager {
  display: grid;
  gap: 1rem;
}

.character-eiketsu-manager[hidden] {
  display: none;
}

.character-eiketsu-manager h2,
.character-eiketsu-manager p {
  margin-top: 0;
}

.character-eiketsu-character,
.character-eiketsu-review > label {
  display: grid;
  gap: .35rem;
}

.character-eiketsu-character {
  max-width: 520px;
  font-weight: 700;
}

.character-eiketsu-import {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .7rem;
  padding: .8rem;
  border: 1px dashed var(--line);
  border-radius: 10px;
  background: var(--bg);
  color: var(--muted);
  font-size: .9rem;
}

.character-eiketsu-import .mini-button {
  color: var(--ink);
  cursor: pointer;
}

.character-eiketsu-review {
  display: grid;
  gap: .8rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper);
}

.character-eiketsu-review-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
}

.character-eiketsu-capture-rows {
  display: grid;
  gap: .55rem;
}

.character-eiketsu-capture-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.7fr) minmax(90px, .55fr) minmax(110px, .65fr) auto;
  align-items: end;
  gap: .55rem;
  padding: .7rem;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--bg);
}

.character-eiketsu-capture-row label {
  display: grid;
  gap: .25rem;
}

.character-eiketsu-capture-row input {
  width: 100%;
}

.character-eiketsu-confirm {
  grid-column: 1 / -1;
  display: flex !important;
  align-items: flex-start;
  gap: .55rem !important;
  padding: .75rem;
  border-left: 4px solid #c08a18;
  border-radius: 6px;
  background: #fff7df;
  color: #493813;
  font-weight: 700;
}

.character-eiketsu-confirm input {
  width: auto;
  margin-top: .2rem;
}

.character-eiketsu-review .primary-button {
  grid-column: 1 / -1;
  justify-self: start;
}

.character-eiketsu-records {
  display: grid;
  gap: .65rem;
}

.character-eiketsu-records h3,
.character-eiketsu-records p {
  margin-bottom: 0;
}

.character-eiketsu-record {
  display: grid;
  gap: .45rem;
  padding: .85rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg);
}

.character-eiketsu-record-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
}

.character-eiketsu-stone-name {
  color: var(--muted);
  font-size: .9rem;
}

.character-eiketsu-progression {
  display: grid;
  grid-template-columns: repeat(2, minmax(90px, 140px));
  gap: .35rem;
  margin: 0;
}

.character-eiketsu-progression-item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .45rem;
  align-items: baseline;
}

.character-eiketsu-progression > *,
.character-eiketsu-progression-item > * {
  margin: 0;
}

.character-eiketsu-progression dt {
  color: var(--muted);
  font-size: .75rem;
}

.character-eiketsu-progression dd {
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

body[data-character-manager] .character-slot {
  grid-template-columns: 96px minmax(230px, 1.55fr) minmax(110px, .9fr) minmax(110px, .9fr) minmax(130px, 1fr) auto;
  align-items: end;
}

body[data-character-manager] .character-slots {
  grid-template-columns: 1fr;
}

.registered-characters {
  display: grid;
  gap: .65rem;
}

body[data-character-manager] .character-slot-heading {
  grid-column: 1 / -1;
}

.character-slot-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}

body[data-character-manager] .character-clear {
  align-self: end;
  white-space: nowrap;
}

.character-slot {
  display: grid;
  gap: .65rem;
  padding: .9rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg);
}

.character-slot label,
.character-slot label span {
  display: grid;
  gap: .25rem;
}

.character-slot input {
  width: 100%;
}

.character-slot label,
.character-slot select {
  min-width: 0;
  width: 100%;
}

.character-slot .character-primary {
  display: flex;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: .4rem;
}

.character-slot .character-primary input {
  width: auto;
}

.character-slot .character-name-field {
  display: grid;
  gap: .35rem;
}

.character-name-heading {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-weight: 700;
}

.character-name-parts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem;
}

.character-name-preview {
  min-height: 2.5em;
  margin: 0;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.45;
}

.character-legacy-name {
  margin: 0;
  padding: .45rem .55rem;
  border-left: 3px solid var(--accent);
  border-radius: 4px;
  background: var(--paper);
  color: var(--ink);
  font-size: .86rem;
  font-weight: 700;
}

.character-image-field {
  display: grid;
  align-content: end;
  justify-items: center;
  gap: .35rem;
}

.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;
}

.character-image-preview,
.character-image-empty {
  width: 82px;
  height: 82px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
}

.character-image-preview {
  display: block;
  object-fit: cover;
}

.character-image-preview[hidden],
.character-image-empty[hidden] {
  display: none;
}

.character-image-empty {
  display: grid;
  place-items: center;
  color: var(--muted);
  font-size: .8rem;
}

.character-image-editor {
  width: min(92vw, 560px);
  max-height: 92vh;
  padding: 0;
  border: 0;
  border-radius: 14px;
  box-shadow: 0 24px 80px rgb(25 29 35 / 28%);
}

.character-image-editor::backdrop {
  background: rgb(25 29 35 / 62%);
}

.character-image-editor-inner {
  display: grid;
  gap: 1rem;
  padding: 1.2rem;
}

.character-image-editor h2,
.character-image-editor p {
  margin: 0 0 .35rem;
}

.character-image-editor canvas {
  width: min(100%, 420px);
  height: auto;
  justify-self: center;
  border-radius: 12px;
  background: #d8dadd;
  cursor: move;
  touch-action: none;
}

.profile-cover-editor {
  width: min(94vw, 760px);
}

.profile-cover-editor canvas {
  width: min(100%, 640px);
  aspect-ratio: 8 / 5;
}

.character-image-editor-actions {
  display: flex;
  justify-content: flex-end;
  gap: .75rem;
}

.character-primary-help {
  margin-top: -.5rem;
  color: var(--muted);
  font-size: .9rem;
}

.character-clear {
  justify-self: start;
}

.profile-characters {
  margin-top: 1rem;
}

.profile-character {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .65rem 0;
  border-top: 1px solid var(--line);
}

.profile-character img {
  width: 64px;
  height: 64px;
  flex: 0 0 64px;
  border-radius: 10px;
  object-fit: cover;
}

.profile-character > div {
  display: grid;
  flex: 1;
  gap: .2rem;
}

@media (max-width: 640px) {
  .profile-metrics {
    grid-template-columns: 1fr;
  }

  .character-slots {
    grid-template-columns: 1fr;
  }

  body[data-character-manager] .character-slot {
    grid-template-columns: 82px minmax(0, 1fr);
  }

  body[data-character-manager] .character-name-field,
  body[data-character-manager] .character-slot > label,
  body[data-character-manager] .character-clear {
    grid-column: 1 / -1;
  }

  body[data-character-manager] .character-image-field {
    grid-row: span 2;
  }

  body[data-character-manager] .character-slot-heading {
    grid-column: auto;
  }

  .character-eiketsu-review {
    grid-template-columns: 1fr;
  }

  .character-eiketsu-review-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .character-eiketsu-capture-row {
    grid-template-columns: minmax(0, 1fr) repeat(2, minmax(88px, .55fr));
  }

  .character-eiketsu-capture-row > label:first-child,
  .character-eiketsu-capture-row > button {
    grid-column: 1 / -1;
  }
}
.public-history-details {
  margin-top: .7rem;
  border-top: 1px solid var(--line);
  padding-top: .6rem;
}

.public-history-details summary,
.public-history-archive > summary {
  cursor: pointer;
  color: var(--accent-2);
  font-weight: 800;
}

.public-history-details ul { margin: .65rem 0 0; }

.public-history-archive {
  margin-top: 1.2rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper-soft);
}

.public-history-archive > div { margin-top: 1rem; }
