/* The portal reuses the parent site's editorial-light tokens, without a new theme. */
[hidden] { display: none !important; }
.rail__admin { display: block; border: 1px solid var(--rule-strong); padding: var(--space-sm); font-weight: 700; text-align: center; }
.rail__admin:hover { background: var(--cu-wash); }
.admin-shell { padding-block: var(--space-2xl); }
.admin-heading { margin-bottom: var(--space-lg); }
.admin-heading h1 { font-family: var(--font-serif); font-size: clamp(2.5rem, 5vw, 4.5rem); font-weight: 400; line-height: 1.05; margin-block: var(--space-xs) var(--space-md); }
.admin-heading p:not(.silk), .admin-note { color: var(--ink-mute); }
.admin-status { min-height: 1.75rem; padding-block: var(--space-sm); margin-bottom: var(--space-lg); border-block: 1px solid var(--rule); overflow-wrap: anywhere; }
.admin-status--error { font-weight: 650; color: var(--cu-deep); }
.admin-login { max-width: 32rem; margin-block: var(--space-xl); }
.admin-login h2, .admin-detail h2 { font-family: var(--font-serif); font-size: var(--display-sm); font-weight: 400; }
.admin-login form { display: grid; gap: var(--space-sm); margin-top: var(--space-lg); }
.admin-login .btn { justify-self: start; }
.admin-page input, .admin-page select { max-width: 100%; min-width: 0; min-height: 44px; border: 1px solid var(--rule-strong); border-radius: 0; padding: var(--space-sm); background: var(--paper-raised); color: var(--ink); font: inherit; }
.admin-page select { appearance: none; padding-right: var(--space-lg); }
.admin-page label { font-weight: 600; font-size: var(--text-base); }
.admin-page button, .rail__admin { transition: background .2s ease, color .2s ease; }
.admin-page button { min-height: 44px; cursor: pointer; }
.admin-page button:disabled { opacity: .55; cursor: not-allowed; }
.admin-page button:disabled:hover { transform: none; }
.admin-page :is(button, input, select, a, [tabindex]):focus-visible, .rail__admin:focus-visible { outline: 2px solid var(--cu-ink); outline-offset: 3px; }
.admin-text-button { font: inherit; color: var(--cu-ink); background: transparent; padding: var(--space-xs) var(--space-sm); border: 1px solid var(--rule-mid); text-decoration: underline; text-underline-offset: .2em; }
.admin-text-button:hover { background: var(--cu-wash); }
.admin-text-button:active { background: var(--paper-sunk); }
.admin-toolbar, .admin-session, .admin-data-heading, .admin-confirm-actions { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); flex-wrap: wrap; }
.admin-toolbar { margin-bottom: var(--space-lg); }
.admin-toolbar label { display: flex; gap: var(--space-sm); align-items: center; }
.admin-session { color: var(--ink-mute); font-size: var(--text-sm); }
.admin-session span { overflow-wrap: anywhere; }
.admin-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-block: 1px solid var(--rule-strong); margin-block: var(--space-xl); }
.admin-stats > div { padding: var(--space-md) var(--space-sm); border-right: 1px solid var(--rule); }
.admin-stats > div:last-child { border-right: 0; }
.admin-stats dt { font-size: var(--text-sm); color: var(--ink-mute); }
.admin-stats dd { margin: var(--space-xs) 0 0; font-family: var(--font-serif); font-size: var(--display); line-height: 1; }
.admin-data-heading { margin-block: var(--space-lg) var(--space-sm); }
.admin-data-heading h2 { font-size: var(--display-sm); font-family: var(--font-serif); font-weight: 400; overflow-wrap: anywhere; }
.admin-note, #code-help { font-size: var(--text-sm); line-height: 1.6; }
.admin-search { margin-block: var(--space-lg); }
.admin-search > div { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin-top: var(--space-xs); }
.admin-search input { flex: 1 1 15rem; }
.admin-table-wrap { max-width: 100%; overflow-x: auto; border-block: 1px solid var(--rule-mid); }
.admin-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); text-align: left; }
.admin-table caption { text-align: left; color: var(--ink-mute); padding: var(--space-sm); }
.admin-table :is(th, td) { padding: var(--space-sm); border-bottom: 1px solid var(--rule); vertical-align: middle; }
.admin-table th { color: var(--ink-mute); font-weight: 600; white-space: nowrap; }
.admin-table td:not(:first-child) { min-width: 7rem; }
.admin-table .is-selected { background: var(--cu-wash); }
.admin-downloads { margin-bottom: var(--space-xl); }
.admin-gift { margin-bottom: var(--space-xl); padding-bottom: var(--space-lg); border-bottom: 1px solid var(--rule-mid); }
.admin-gift .admin-search { margin-block: var(--space-md) 0; }
.admin-downloads .admin-data-heading { margin-top: 0; }
.admin-table--counts :is(td, tfoot th) { font-variant-numeric: tabular-nums; }
.admin-table.admin-table--counts td { text-align: right; min-width: 0; }
.admin-table--counts :is(th, td) { padding-inline: var(--space-sm); }
.admin-table--counts th { white-space: normal; }
.admin-downloads > div > .admin-note { margin-top: var(--space-md); }
.admin-table--counts thead th:not(:first-child) { text-align: right; }
.admin-table--counts tbody th, .admin-table--counts tfoot th { color: var(--ink); font-weight: 600; text-align: left; }
.admin-table--counts small { color: var(--ink-mute); font-family: var(--font-mono); font-size: var(--text-2xs); font-weight: 400; }
.admin-table--counts tfoot :is(th, td) { border-top: 1px solid var(--rule-strong); border-bottom: 0; font-weight: 650; }
.admin-table--counts + .admin-table-wrap, .admin-table-wrap + .admin-table-wrap { margin-top: var(--space-md); }
.admin-buyer { font: inherit; text-align: left; color: var(--ink); background: transparent; border: 0; padding: var(--space-xs) 0; text-decoration: underline; text-underline-offset: .2em; }
.admin-buyer:hover { color: var(--cu-ink); }
.admin-buyer small { display: block; font-family: var(--font-mono); font-size: var(--text-2xs); color: var(--ink-mute); padding-top: var(--space-xs); text-decoration: none; }
.admin-detail { margin-top: var(--space-xl); padding-block: var(--space-lg); border-top: 2px solid var(--cu); scroll-margin-top: 5rem; }
.admin-detail h3 { margin-block: var(--space-xl) var(--space-sm); font: 600 var(--text-lg)/1.4 var(--font-sans); }
.admin-detail > p { margin-block: var(--space-sm); }
.admin-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-md); margin-block: var(--space-lg); }
.admin-facts dt { color: var(--ink-mute); font-size: var(--text-sm); }
.admin-facts dd { margin: var(--space-xs) 0 0; overflow-wrap: anywhere; }
.admin-email-list { list-style: none; padding: 0; margin-block: var(--space-md); }
.admin-email-list li { display: flex; flex-wrap: wrap; gap: var(--space-sm) var(--space-md); padding-block: var(--space-sm); border-bottom: 1px solid var(--rule); font-size: var(--text-sm); }
.admin-email-list strong { font-weight: 600; }
.admin-outbound { color: var(--cu-ink); text-decoration: underline; }
.admin-empty { padding: var(--space-xl) 0; }
.admin-confirm { margin: auto; width: min(32rem, calc(100% - 2rem)); border: 1px solid var(--rule-strong); background: var(--paper-raised); color: var(--ink); padding: var(--space-xl); }
.admin-confirm::backdrop { background: rgba(28,25,23,.55); }
.admin-confirm h2 { font-family: var(--font-serif); font-size: var(--display-sm); font-weight: 400; }
.admin-confirm p { margin-block: var(--space-lg); }
@media (max-width: 45rem) {
  .admin-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-stats > div { border-bottom: 1px solid var(--rule); }
  .admin-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-session { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .admin-page *, .rail__admin { transition: none !important; } }
