:root {
  --radius: 0.625rem;
  --font: "DM Sans", system-ui, sans-serif;
  --line-min: 1.45;
  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --touch-min: 44px;
}

/* Semantic tokens; applied per theme on <html data-theme="…"> */
[data-theme='dark'] {
  color-scheme: dark;
  --bg: #0f1216;
  --card: #171b22;
  --text: #e8ecf1;
  --muted: #9aa8b8;
  --accent: #5eead4;
  --accent-dim: #2dd4bf;
  --accent-on-accent: #042f2e;
  --border: #2a313d;
  --success: #4ade80;
  --danger: #f87171;
  --warning: #fbbf24;
  --listed: #38bdf8;
  --sold: #4ade80;
  --draft: #94a3b8;
  --archived: #64748b;
  --shadow-modal: 0 20px 40px color-mix(in srgb, #000 38%, transparent);
  --shadow-bulk: 0 -6px 28px rgba(0, 0, 0, 0.35);
  --fab-shadow: 0 8px 28px color-mix(in srgb, #000 42%, transparent);
}

[data-theme='light'] {
  color-scheme: light;
  --bg: #eef1f5;
  --card: #ffffff;
  --text: #0f172a;
  --muted: #5c6674;
  --accent: #0d9488;
  --accent-dim: #14b8a6;
  --accent-on-accent: #042f2e;
  --border: #dce3ec;
  --success: #15803d;
  --danger: #b91c1c;
  --warning: #b45309;
  --listed: #0369a1;
  --sold: #15803d;
  --draft: #475569;
  --archived: #64748b;
  --shadow-modal: 0 24px 48px color-mix(in srgb, #0f172a 14%, transparent);
  --shadow-bulk: 0 -6px 24px color-mix(in srgb, #0f172a 10%, transparent);
  --fab-shadow: 0 6px 22px color-mix(in srgb, #0f172a 12%, transparent);
}

[data-theme='oled'] {
  color-scheme: dark;
  --bg: #000000;
  --card: #0a0c10;
  --text: #e8ecf1;
  --muted: #8a97a8;
  --accent: #5eead4;
  --accent-dim: #2dd4bf;
  --accent-on-accent: #042f2e;
  --border: #1a222c;
  --success: #4ade80;
  --danger: #f87171;
  --warning: #fbbf24;
  --listed: #38bdf8;
  --sold: #4ade80;
  --draft: #94a3b8;
  --archived: #64748b;
  --shadow-modal: 0 24px 48px rgba(0, 0, 0, 0.75);
  --shadow-bulk: 0 -6px 28px rgba(0, 0, 0, 0.55);
  --fab-shadow: 0 6px 24px rgba(0, 0, 0, 0.65);
}

/* GitHub-style dark (slate + blue accent) */
[data-theme='midnight'] {
  color-scheme: dark;
  --bg: #0d1117;
  --card: #161b22;
  --text: #e6edf3;
  --muted: #8b949e;
  --accent: #58a6ff;
  --accent-dim: #388bfd;
  --accent-on-accent: #0d1117;
  --border: #30363d;
  --success: #3fb950;
  --danger: #f85149;
  --warning: #d29922;
  --listed: #58a6ff;
  --sold: #3fb950;
  --draft: #8b949e;
  --archived: #6e7681;
  --shadow-modal: 0 20px 48px rgba(1, 4, 9, 0.65);
  --shadow-bulk: 0 -6px 28px rgba(1, 4, 9, 0.45);
  --fab-shadow: 0 8px 28px rgba(1, 4, 9, 0.55);
}

/* Enterprise / ServiceNow-style deep blue chrome */
[data-theme='ocean'] {
  color-scheme: dark;
  --bg: #0f1724;
  --card: #162536;
  --text: #e8f0fa;
  --muted: #94adc9;
  --accent: #3d8bfd;
  --accent-dim: #60a5fa;
  --accent-on-accent: #0c1522;
  --border: #2a4a6e;
  --success: #4ade80;
  --danger: #fb7185;
  --warning: #fbbf24;
  --listed: #38bdf8;
  --sold: #4ade80;
  --draft: #94a3b8;
  --archived: #64748b;
  --shadow-modal: 0 22px 44px rgba(0, 20, 48, 0.55);
  --shadow-bulk: 0 -6px 26px rgba(0, 15, 40, 0.4);
  --fab-shadow: 0 8px 26px rgba(0, 25, 55, 0.5);
}

/* Forest — cool green tint */
[data-theme='forest'] {
  color-scheme: dark;
  --bg: #0b1210;
  --card: #131f1a;
  --text: #e6f5ee;
  --muted: #8fb3a1;
  --accent: #34d399;
  --accent-dim: #10b981;
  --accent-on-accent: #052e16;
  --border: #1f3d2e;
  --success: #4ade80;
  --danger: #f87171;
  --warning: #fbbf24;
  --listed: #5eead4;
  --sold: #4ade80;
  --draft: #94a3b8;
  --archived: #64748b;
  --shadow-modal: 0 20px 44px rgba(0, 18, 12, 0.55);
  --shadow-bulk: 0 -6px 26px rgba(0, 12, 8, 0.42);
  --fab-shadow: 0 8px 26px rgba(0, 20, 14, 0.48);
}

/* Dusk — violet / indigo */
[data-theme='dusk'] {
  color-scheme: dark;
  --bg: #13101a;
  --card: #1c1628;
  --text: #f0e9fc;
  --muted: #b4a3c9;
  --accent: #a78bfa;
  --accent-dim: #8b5cf6;
  --accent-on-accent: #1e1033;
  --border: #362f4d;
  --success: #6ee7b7;
  --danger: #fb7185;
  --warning: #fcd34d;
  --listed: #93c5fd;
  --sold: #6ee7b7;
  --draft: #a8a3b3;
  --archived: #7c7191;
  --shadow-modal: 0 22px 48px rgba(12, 6, 24, 0.55);
  --shadow-bulk: 0 -6px 26px rgba(10, 5, 22, 0.38);
  --fab-shadow: 0 8px 28px rgba(18, 8, 35, 0.48);
}

/* Warm light “paper” */
[data-theme='paper'] {
  color-scheme: light;
  --bg: #f2ede4;
  --card: #fffef9;
  --text: #1c1917;
  --muted: #57534e;
  --accent: #0f766e;
  --accent-dim: #14b8a6;
  --accent-on-accent: #f0fdfa;
  --border: #ddd6cb;
  --success: #15803d;
  --danger: #b91c1c;
  --warning: #b45309;
  --listed: #0369a1;
  --sold: #15803d;
  --draft: #57534e;
  --archived: #78716c;
  --shadow-modal: 0 22px 44px color-mix(in srgb, #292524 12%, transparent);
  --shadow-bulk: 0 -6px 22px color-mix(in srgb, #292524 8%, transparent);
  --fab-shadow: 0 6px 22px color-mix(in srgb, #292524 10%, transparent);
}

/* min-width only on real nodes — applying it to *::before breaks Font Awesome (icons use ::before glyphs). */
* {
  box-sizing: border-box;
  min-width: 0;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}

/* Do not transition `color` on pseudos — Font Awesome (and similar) render glyphs in ::before; animating
   color there has caused missing icons after navigation/refresh in some browsers. */
*::before,
*::after {
  box-sizing: border-box;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
}

/* Keep Font Awesome glyphs visible in flex/grid (global min-width:0 can collapse icon <i> cells). */
.fa-solid,
.fa-regular,
.fa-brands,
.fa-classic,
svg.svg-inline--fa {
  min-width: auto;
  flex-shrink: 0;
}

[hidden] {
  display: none !important;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
  }
}

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  line-height: 1.5;
}

/* Simulates larger accessibility text (e.g. browser zoom / dynamic type). Add class to <html> for QA. */
html.debug-scale {
  font-size: 125%;
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  font-family: var(--font);
  font-size: clamp(0.875rem, 0.35vw + 0.85rem, 1.0625rem);
  background: var(--bg);
  color: var(--text);
  line-height: max(1.55, var(--line-min));
  display: flex;
  flex-direction: column;
  overflow-wrap: break-word;
  word-break: break-word;
  padding-bottom: env(safe-area-inset-bottom, 0);
}

a {
  color: var(--accent);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}

.main {
  flex: 1;
  padding: 1.25rem 0 2.5rem;
}

.main--fab {
  padding-bottom: calc(7.5rem + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 769px) {
  .main--fab {
    padding-bottom: calc(5.75rem + env(safe-area-inset-bottom, 0px));
  }
}

.container {
  width: min(68.75rem, 100% - 2rem);
  margin-inline: auto;
  min-width: 0;
}

.stack {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.stack--tight {
  gap: 0.75rem;
}

.page-head h1 {
  margin: 0 0 0.25rem;
  font-size: clamp(1.5rem, 4vw, 1.85rem);
  font-weight: 700;
  letter-spacing: -0.02em;
}

.page-head h1:has(.icon-heading) {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.h2 {
  margin: 0;
  font-size: clamp(0.9rem, 1.2vw, 1rem);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  line-height: var(--line-min);
}

.h2:has(.icon-heading) {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.muted {
  color: var(--muted);
  margin: 0;
}

.row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.row--spread {
  justify-content: space-between;
}
.row--wrap {
  flex-wrap: wrap;
}
.row--tight {
  gap: 0.5rem;
}

.site-header {
  background: var(--card);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 30;
}

.site-header__bar {
  display: grid;
  grid-template-columns: minmax(0, auto) minmax(0, 1fr) minmax(0, auto);
  align-items: center;
  gap: 0.75rem 1.25rem;
  padding: 0.6rem 0;
  min-height: 3.35rem;
}

.site-header__logo {
  flex-shrink: 0;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.03em;
  font-size: 1.05rem;
  text-decoration: none;
  white-space: nowrap;
}

.site-header__logo-inner {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.site-header__logo-text {
  letter-spacing: -0.03em;
}

.brand-logo {
  display: block;
  flex-shrink: 0;
  width: 28px;
  height: auto;
}

/* Line-art mark: white on dark themes, dark on light themes */
html:not([data-theme='light']):not([data-theme='paper']) .brand-logo--mono {
  filter: brightness(0) invert(1);
}

.site-header__logo:hover {
  text-decoration: none;
  color: var(--accent);
}

.site-header__logo:hover .brand-logo--mono {
  opacity: 0.92;
}

.site-header__nav {
  display: flex;
  justify-content: center;
  min-width: 0;
}

.site-header__nav-scroll {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0.1rem 0;
  mask-image: linear-gradient(to right, transparent, #000 0.5rem, #000 calc(100% - 0.5rem), transparent);
}

.site-header__nav-scroll::-webkit-scrollbar {
  display: none;
}

.site-header__tab {
  flex-shrink: 0;
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.95rem;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--muted);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.12s ease, background 0.12s ease;
}

.site-header__tab-icon {
  font-size: 0.88em;
  opacity: 0.92;
}

.site-header__tab:hover {
  color: var(--text);
  text-decoration: none;
  background: color-mix(in srgb, var(--accent) 6%, transparent);
}

.site-header__tab--active {
  color: var(--text);
  font-weight: 600;
}

.site-header__tab--active::after {
  content: '';
  position: absolute;
  left: 0.5rem;
  right: 0.5rem;
  bottom: 0.05rem;
  height: 2px;
  border-radius: 2px;
  background: var(--accent);
}

.site-header__end {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: clamp(0.75rem, 2.2vw, 1.25rem);
  row-gap: 0.5rem;
  min-width: 0;
}

.site-header__install {
  flex-shrink: 0;
  gap: 0.4em;
  padding: 0.45em 1em;
  min-height: 2.5em;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  border-radius: 999px;
  border-color: color-mix(in srgb, var(--border) 70%, var(--accent) 18%);
  background: color-mix(in srgb, var(--card) 88%, var(--bg));
  box-shadow: 0 1px 0 color-mix(in srgb, var(--border) 35%, transparent);
}

.site-header__install:hover {
  border-color: color-mix(in srgb, var(--accent) 42%, var(--border));
  background: color-mix(in srgb, var(--card) 72%, var(--accent) 8%);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--border) 25%, transparent);
}

.site-header__install:focus-visible {
  outline-offset: 3px;
}

.site-header__install .fa-download {
  font-size: 0.85em;
  opacity: 0.9;
}

/* User menu + avatar */
.user-menu {
  position: relative;
  flex-shrink: 0;
}

.user-avatar {
  position: relative;
  overflow: hidden;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--accent) 14%, var(--card));
  color: var(--accent-dim);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  cursor: pointer;
  display: inline-grid;
  place-items: center;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.user-avatar > * {
  grid-area: 1 / 1;
}

.user-avatar:hover {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--border));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}

.user-avatar:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent);
  outline-offset: 2px;
}

.user-avatar--photo .user-avatar__default {
  display: none;
  pointer-events: none;
}

.user-avatar--default .user-avatar__img {
  display: none;
}

.user-avatar__img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

.user-avatar__default {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  z-index: 0;
  min-width: auto;
}

.user-avatar__default .fa-solid {
  font-weight: 900;
}

.user-avatar__default .fa-user {
  font-size: 1.05rem;
  opacity: 0.92;
  color: var(--accent-dim);
}

.user-menu__panel {
  position: absolute;
  top: calc(100% + 0.45rem);
  right: 0;
  min-width: 13.5rem;
  max-width: min(17rem, calc(100vw - 1.5rem));
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-modal);
  padding: 0.4rem 0;
  z-index: 120;
  animation: user-menu-in 0.16s ease;
}

@keyframes user-menu-in {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.user-menu__head {
  padding: 0.55rem 1rem 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  align-items: flex-start;
}

.user-menu__name {
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--text);
  max-width: 100%;
  line-height: var(--line-min);
  overflow-wrap: anywhere;
}

.user-menu__role {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.user-menu__impersonation {
  margin-top: 0.15rem;
  font-size: 0.65rem;
}

.user-menu__sep {
  height: 1px;
  margin: 0.35rem 0;
  background: var(--border);
}

.user-menu__item {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 0.52rem 1rem;
  margin: 0;
  border: none;
  background: none;
  font: inherit;
  font-size: 0.9rem;
  text-align: left;
  color: var(--text);
  text-decoration: none;
  cursor: pointer;
  transition: background 0.1s ease;
}

a.user-menu__item:hover,
button.user-menu__item:hover {
  background: color-mix(in srgb, var(--accent) 8%, transparent);
  text-decoration: none;
}

.user-menu__item:focus-visible {
  outline: none;
  background: color-mix(in srgb, var(--accent) 10%, transparent);
}

.user-menu__item--button {
  color: var(--text);
}

.user-menu__item--disabled {
  opacity: 0.55;
  cursor: default;
  pointer-events: none;
}

.user-menu__item--danger {
  color: var(--danger);
}

.user-menu__item--danger:hover {
  background: color-mix(in srgb, var(--danger) 10%, transparent);
}

.user-menu__logout {
  margin: 0;
  padding: 0;
}

.user-menu__logout .user-menu__item--danger {
  border-radius: 0;
}

.impersonation-badge {
  vertical-align: middle;
  margin-left: 0.25rem;
}

.impersonation-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  background: color-mix(in srgb, var(--warning) 42%, var(--card));
  color: var(--text);
  border-bottom: 2px solid var(--warning);
  box-shadow: 0 4px 20px color-mix(in srgb, #000 25%, transparent);
}

.impersonation-banner__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  padding: 0.55rem 0;
  min-height: 2.75rem;
}

.impersonation-banner__text {
  font-size: 0.9rem;
  font-weight: 600;
}

.impersonation-banner__form {
  margin: 0;
}

.body--impersonating {
  padding-top: 3.1rem;
}

.theme-toggle {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  padding: 0;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--text);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.theme-toggle:hover {
  border-color: var(--muted);
  background: color-mix(in srgb, var(--accent) 8%, var(--card));
}

.theme-toggle:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent);
  outline-offset: 2px;
}

.settings-feedback {
  margin: 0;
  padding: 0.55rem 0.85rem;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 600;
}

.settings-feedback--ok {
  background: color-mix(in srgb, var(--success) 14%, var(--card));
  border: 1px solid color-mix(in srgb, var(--success) 32%, var(--border));
  color: var(--text);
}

.settings-theme-footer {
  min-height: 1.5rem;
}

.settings-theme-status {
  margin: 0;
  font-size: 0.875rem;
  color: var(--muted);
  opacity: 0;
  transform: translateY(-2px);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease;
}

.settings-theme-status.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.settings-theme-status--error {
  color: var(--danger);
}

.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;
}

/* Profile (full page, Stripe-adjacent minimal layout) */
.profile-page {
  padding: 1.25rem 0 2.5rem;
}

.profile-page__inner {
  width: min(100%, 37.5rem);
  margin-inline: auto;
  padding-inline: max(1rem, env(safe-area-inset-left, 0));
  padding-right: max(1rem, env(safe-area-inset-right, 0));
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.profile-page__title {
  margin: 0;
  font-size: clamp(1.35rem, 3vw, 1.6rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: var(--line-min);
}

.profile-page__title:has(.icon-heading) {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.profile-page__subtitle {
  margin: -0.35rem 0 0;
  font-size: 0.95rem;
  line-height: var(--line-min);
}

.profile-account-security.profile-card.card--pad {
  padding: 1.2rem 1.35rem;
}

.profile-account-dl {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
}

.profile-account-dl__row {
  display: grid;
  grid-template-columns: minmax(5rem, 7rem) 1fr;
  gap: 0.75rem 1rem;
  align-items: start;
}

@media (max-width: 520px) {
  .profile-account-dl__row {
    grid-template-columns: 1fr;
  }
}

.profile-account-dl dt {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.profile-account-dl__dd {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.profile-account-dl__dd--stack {
  flex-direction: column;
  align-items: flex-start;
}

.profile-account-dl__action {
  flex-shrink: 0;
  white-space: nowrap;
}

#profile-account-email-display {
  font-weight: 600;
  overflow-wrap: anywhere;
}

.profile-loading {
  margin: 0;
  padding: 2rem 0;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--muted);
  font-size: 0.9rem;
}

.profile-loading--spinner .profile-reveal {
  vertical-align: middle;
}

.profile-spinner {
  width: 1.35rem;
  height: 1.35rem;
  border: 2px solid color-mix(in srgb, var(--border) 80%, transparent);
  border-top-color: var(--accent-dim);
  border-radius: 50%;
  animation: profile-spin 0.7s linear infinite;
  flex-shrink: 0;
}

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

@media (prefers-reduced-motion: reduce) {
  .profile-spinner {
    animation: none;
    border-top-color: var(--accent-dim);
    opacity: 0.85;
  }
}

.profile-content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.profile-content > .profile-card.card--pad {
  padding: 1.2rem 1.35rem;
}

.profile-content .profile-form.stack--tight {
  gap: 1.125rem;
}

.profile-content .field {
  gap: 0.55rem;
}

.profile-content .field .muted.small {
  margin-top: 0.15rem;
}

.profile-card__header {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 0;
}

.profile-avatar--hero {
  flex-shrink: 0;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1;
  background: linear-gradient(145deg, var(--accent-dim), var(--accent));
  color: var(--accent-on-accent);
  border: none;
  box-shadow: 0 1px 0 color-mix(in srgb, var(--border) 55%, transparent);
}

.profile-card__header-text {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.45rem;
}

.profile-card__display-name {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 600;
  line-height: var(--line-min);
  letter-spacing: -0.02em;
  overflow-wrap: anywhere;
}

.profile-role-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2em 0.55em;
  border-radius: 0.25rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.3;
  text-transform: uppercase;
  background: color-mix(in srgb, var(--muted) 18%, var(--card));
  color: var(--muted);
  border: 1px solid var(--border);
}

.profile-role-badge[data-role='admin'] {
  background: color-mix(in srgb, var(--accent) 14%, var(--card));
  color: var(--accent-dim);
  border-color: color-mix(in srgb, var(--accent) 28%, var(--border));
}

.profile-card__divider {
  height: 1px;
  margin: 1.15rem 0 1rem;
  background: var(--border);
  border: none;
}

.profile-form {
  min-width: 0;
}

.profile-name-input {
  max-width: 100%;
}

.profile-unsaved {
  margin: 0.65rem 0 0;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--warning);
  line-height: var(--line-min);
}

.profile-actions {
  margin-top: 1.1rem;
  padding-top: 0.35rem;
}

.profile-readonly {
  margin: 0;
  padding: 0.55rem 0.65rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--bg) 40%, var(--card));
  font-weight: 600;
  line-height: var(--line-min);
  text-transform: capitalize;
}

.profile-readonly--inline {
  display: inline-block;
  min-width: 0;
}

.profile-toast {
  position: fixed;
  bottom: max(1.25rem, env(safe-area-inset-bottom, 0));
  left: 50%;
  transform: translateX(-50%) translateY(0.75rem);
  max-width: min(36rem, calc(100vw - 2rem));
  margin: 0;
  padding: 0.65rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: var(--line-min);
  box-shadow: var(--shadow-modal);
  z-index: 300;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.25s ease,
    transform 0.25s ease;
}

.profile-toast--success {
  background: color-mix(in srgb, var(--success) 16%, var(--card));
  border: 1px solid color-mix(in srgb, var(--success) 35%, var(--border));
  color: var(--text);
}

.profile-toast--error {
  background: color-mix(in srgb, var(--danger) 12%, var(--card));
  border: 1px solid color-mix(in srgb, var(--danger) 40%, var(--border));
  color: var(--text);
}

.profile-toast.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

.profile-section-title {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: var(--line-min);
}

.profile-section-title:has(.icon-heading) {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.profile-section-lead {
  margin: 0 0 1.25rem;
}

.profile-card__display-name--tight {
  margin: 0;
}

.profile-avatar-block {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.profile-avatar-interactive {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 0;
}

.profile-avatar-dropzone--active {
  outline: 2px dashed color-mix(in srgb, var(--accent) 45%, var(--border));
  outline-offset: 4px;
  border-radius: var(--radius);
}

.profile-avatar--btn {
  position: relative;
  cursor: pointer;
  padding: 0;
  border: none;
  background: transparent;
  flex-shrink: 0;
  overflow: hidden;
}

.profile-avatar--btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent);
  outline-offset: 3px;
}

.profile-avatar-block .profile-avatar--hero {
  width: 7rem;
  height: 7rem;
  font-size: 1.25rem;
}

.profile-avatar__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--accent-on-accent);
  background: color-mix(in srgb, var(--bg) 42%, transparent);
  opacity: 0;
  transition: opacity 0.18s ease;
  pointer-events: none;
  text-align: center;
  padding: 0.35rem;
  line-height: 1.2;
}

.profile-avatar--btn:hover .profile-avatar__overlay,
.profile-avatar--btn:focus-visible .profile-avatar__overlay {
  opacity: 1;
}

.profile-avatar__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.profile-avatar__default {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  min-width: auto;
}

.profile-avatar__default .fa-solid {
  font-weight: 900;
}

.profile-avatar__default .fa-user {
  font-size: clamp(1.75rem, 5vw, 2.35rem);
  opacity: 0.92;
  color: var(--accent-on-accent);
}

.profile-avatar--has-image .profile-avatar__default {
  visibility: hidden;
}

.profile-avatar-block__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.45rem;
  min-width: 0;
}

.profile-avatar-pending__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.35rem;
}

.profile-avatar-footer {
  margin-top: 0.5rem;
}

.profile-avatar-error {
  margin: 0;
}

.profile-add-platform {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.profile-add-platform .profile-name-input {
  flex: 1 1 12rem;
  min-width: 0;
}

.profile-stats {
  margin: 0.35rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.profile-stats__row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border);
}

.profile-stats__row:first-child {
  padding-top: 0.35rem;
}

.profile-stats__row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.profile-stats dt {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--muted);
}

.profile-stats dd {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

input[readonly]:not([type='checkbox']):not([type='radio']) {
  cursor: default;
  background: color-mix(in srgb, var(--bg) 35%, var(--card));
  color: var(--muted);
}

.logout-form {
  margin: 0;
}

.login-page-body {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}

.login-page {
  width: min(400px, 100%);
}

.login-page__card {
  gap: 1.25rem;
}

.login-page__brand {
  text-align: center;
}

.login-page__brand-logo {
  display: block;
  margin: 0 auto 0.65rem;
  max-width: min(160px, 55vw);
  width: auto;
  height: auto;
}

.login-page__logo {
  font-size: 1.35rem;
  display: inline-block;
}

.login-page__tagline {
  margin: 0.35rem 0 0;
}

.login-page__forgot {
  margin: 0.5rem 0 0;
  text-align: center;
}

.login-page__forgot a {
  color: var(--accent);
}

.login-inline-error {
  margin: 0;
}

.field--invalid input,
.field--invalid select,
.field--invalid textarea {
  border-color: var(--danger);
}

.btn--block {
  width: 100%;
  justify-content: center;
}

.logo {
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.03em;
}
.logo:hover {
  text-decoration: none;
  color: var(--accent);
}

.nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  align-items: center;
}

.nav__link {
  color: var(--muted);
  font-size: 0.95rem;
  padding: 0.35rem 0;
}
.nav__link:hover {
  color: var(--text);
  text-decoration: none;
}
.nav__link--active {
  color: var(--accent);
  font-weight: 600;
}
.nav__link--cta {
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  color: var(--accent-dim);
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  font-weight: 600;
}
.nav__link--cta:hover {
  text-decoration: none;
  background: color-mix(in srgb, var(--accent) 28%, transparent);
}

.site-footer {
  border-top: 1px solid var(--border);
  padding: 1rem 0;
  margin-top: auto;
}
.site-footer__inner {
  text-align: center;
}
.site-footer p {
  margin: 0;
  font-size: 0.85rem;
}

.card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
.card--pad {
  padding: 1rem 1.15rem;
}
.card--flush {
  padding: 0;
  overflow: hidden;
}

.grid {
  display: grid;
  gap: 0.75rem;
}
.grid--stats {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.625rem), 1fr));
}

.stat {
  padding: 1rem 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.stat__label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}
.stat__value {
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.stat--profit .stat__value {
  color: var(--success);
}

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

.chip {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  color: var(--accent);
  font-size: 0.9rem;
  font-weight: 600;
}
.chip:hover {
  text-decoration: none;
  background: color-mix(in srgb, var(--accent) 22%, transparent);
}
.chip--ghost {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--muted);
}

.table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
}

.table th,
.table td {
  padding: 0.65rem 0.85rem;
  text-align: left;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}

.table th {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  background: color-mix(in srgb, var(--bg) 40%, var(--card));
}

.table tbody tr:hover {
  background: color-mix(in srgb, var(--accent) 6%, transparent);
}

.table__row-interactive {
  cursor: pointer;
}

.table__row-interactive:hover {
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}

.table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.actions {
  white-space: nowrap;
  text-align: right;
}
.actions .inline-form {
  display: inline;
}

.table .inline-form {
  display: inline;
  margin: 0;
}

.badge {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.badge--draft {
  background: color-mix(in srgb, var(--draft) 22%, transparent);
  color: var(--draft);
}
.badge--listed {
  background: color-mix(in srgb, var(--listed) 22%, transparent);
  color: var(--listed);
}
.badge--sold {
  background: color-mix(in srgb, var(--sold) 22%, transparent);
  color: var(--sold);
}
.badge--archived {
  background: color-mix(in srgb, var(--archived) 22%, transparent);
  color: var(--archived);
}
.badge--warning {
  background: color-mix(in srgb, var(--warning) 28%, transparent);
  color: color-mix(in srgb, var(--warning) 85%, var(--text));
}

.badge-btn {
  font: inherit;
  border: none;
  cursor: pointer;
  padding: 0.25em 0.65em;
  border-radius: 0.375rem;
  min-height: 2.25em;
  min-width: 2.5em;
  transition: transform 0.12s ease, filter 0.12s ease;
}

.badge-btn:hover {
  filter: brightness(1.12);
  transform: translateY(-1px);
}

.badge-btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 55%, transparent);
  outline-offset: 2px;
}

/* Keep status pill above row hit targets / card stacking so clicks reach the button */
.table-inv .cell-status {
  position: relative;
  z-index: 1;
}
.table-inv .cell-status .badge-btn {
  position: relative;
  z-index: 2;
}

.profit--pos {
  color: color-mix(in srgb, var(--success) 72%, var(--text));
  font-weight: 600;
}

.profit--neg {
  color: color-mix(in srgb, var(--danger) 72%, var(--text));
  font-weight: 600;
}

.profit--muted.profit--pos {
  color: color-mix(in srgb, var(--success) 55%, var(--muted));
}
.profit--muted.profit--neg {
  color: color-mix(in srgb, var(--danger) 55%, var(--muted));
}

.btn--xs {
  padding: 0.45em 0.75em;
  font-size: 0.875rem;
  min-height: 2.5em;
  border-radius: 0.5rem;
}

.quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
  margin-bottom: 0.35rem;
}

.row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
  align-items: center;
}

.nav__link--hide-mobile {
  /* toggled in media query */
}

@media (max-width: 768px) {
  .nav__link--hide-mobile {
    display: none;
  }
}

.fab-global {
  position: fixed;
  bottom: calc(5rem + env(safe-area-inset-bottom, 0px));
  right: calc(1rem + env(safe-area-inset-right, 0px));
  z-index: 55;
  width: min(3.5rem, 14vw);
  height: min(3.5rem, 14vw);
  min-width: var(--touch-min);
  min-height: var(--touch-min);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.55rem;
  font-weight: 500;
  line-height: 1;
  background: linear-gradient(155deg, color-mix(in srgb, var(--success) 88%, var(--card)), var(--accent-dim));
  color: var(--accent-on-accent);
  box-shadow: var(--fab-shadow);
  text-decoration: none;
  border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent);
  transition: transform 0.14s ease, filter 0.14s ease, box-shadow 0.14s ease;
}

.fab-global:hover {
  text-decoration: none;
  filter: brightness(1.05);
  transform: scale(1.03);
}

.fab-global:active {
  transform: scale(0.94);
  filter: brightness(0.98);
}

.fab-global:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 50%, transparent);
  outline-offset: 3px;
}

@media (min-width: 769px) {
  .fab-global {
    bottom: calc(1.35rem + env(safe-area-inset-bottom, 0px));
  }
}

.fab-global__icon {
  display: block;
  margin-top: -0.08em;
  font-weight: 400;
}

.modal-root {
  position: fixed;
  inset: 0;
  z-index: 210;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(0.75rem, env(safe-area-inset-top, 0))
    max(0.75rem, env(safe-area-inset-right, 0))
    max(0.75rem, env(safe-area-inset-bottom, 0))
    max(0.75rem, env(safe-area-inset-left, 0));
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.modal-root[hidden] {
  display: none !important;
}

.modal-root__backdrop {
  position: absolute;
  inset: 0;
  /* No backdrop-filter: it can prevent native <select> popovers from opening in some browsers. */
  background: color-mix(in srgb, var(--bg) 72%, transparent);
}

.modal__panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(95vw, 31.25rem);
  max-height: 90vh;
  min-height: 0;
  overflow: hidden;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.25rem 1.5rem;
  gap: 1rem;
  box-shadow: var(--shadow-modal);
}

.modal__panel--wide {
  width: min(95vw, 38rem);
  position: relative;
}

.modal__title {
  flex-shrink: 0;
  margin: 0;
  padding-right: 2.75rem;
  font-size: clamp(1.05rem, 2.5vw, 1.2rem);
  line-height: var(--line-min);
}

.modal__form--flex {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  gap: 0.75rem;
}

.modal__scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 0.2rem;
  -webkit-overflow-scrolling: touch;
}

.modal__scroll--detail {
  flex: 1 1 auto;
}

.modal__actions {
  margin-top: 0;
}

.modal__actions--footer {
  flex-shrink: 0;
  margin-top: auto;
  padding-top: 0.25rem;
  gap: 0.5rem;
}

.modal__close {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  border: none;
  background: transparent;
  color: var(--muted);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  padding: 0.35rem;
  border-radius: 0.35rem;
  flex-shrink: 0;
}

.modal__close:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent);
  outline-offset: 2px;
}

.detail-modal__body {
  font-size: clamp(0.875rem, 1.5vw, 0.95rem);
  line-height: max(1.45, var(--line-min));
  overflow-x: hidden;
}

.detail-modal__grid {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.detail-modal__thumb img {
  width: 100%;
  max-height: min(12.5rem, 35vh);
  object-fit: cover;
  border-radius: 0.5rem;
  border: 1px solid var(--border);
}

.detail-modal__dl {
  margin: 0.5rem 0 0;
  display: grid;
  gap: 0.45rem;
}

.detail-modal__dl > div {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.detail-modal__dl dt {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
}

.detail-modal__dl dd {
  margin: 0;
  font-weight: 600;
  text-align: right;
}

.detail-modal__dates.small {
  font-size: 0.82rem;
  margin-top: 0.75rem;
}

.detail-modal__notes {
  margin-top: 0.75rem;
}

.detail-modal__notes .notes {
  margin-top: 0.35rem;
  max-height: min(10rem, 28vh);
  overflow: auto;
  overflow-wrap: break-word;
}

@media (max-width: 768px) {
  .table-inv thead {
    display: none;
  }

  .table-inv tbody tr.inv-row {
    display: block;
    margin-bottom: 1rem;
    padding: 0.5rem 0.65rem 0.75rem;
    border-bottom: 1px solid var(--border);
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--card) 88%, var(--bg));
  }

  .table-inv tbody tr.inv-row:hover {
    background: color-mix(in srgb, var(--accent) 10%, var(--card));
  }

  .table-inv td {
    display: grid;
    grid-template-columns: minmax(108px, 36%) 1fr;
    gap: 0.35rem 0.65rem;
    align-items: center;
    padding: 0.5rem 0;
    border: none;
    border-bottom: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
    text-align: left;
  }

  .table-inv td:last-child {
    border-bottom: none;
  }

  .table-inv td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

  .table-inv td.actions-head,
  .table-inv th.actions-head {
    display: none;
  }

  .table-inv .actions {
    grid-template-columns: 1fr;
  }

  .table-inv .actions::before {
    content: 'Actions';
  }

  .table-inv .num {
    text-align: left;
  }

  .table-inv-wrap {
    padding: 0.35rem 0.5rem 0.75rem;
    overflow: visible;
  }
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35em;
  padding: 0.6em 1em;
  border-radius: 0.5rem;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text);
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  line-height: var(--line-min);
  cursor: pointer;
  text-decoration: none;
  min-height: 2.75em;
}
.btn:hover {
  text-decoration: none;
  border-color: var(--muted);
}
.btn--primary {
  background: linear-gradient(145deg, var(--accent-dim), #14b8a6);
  border: none;
  color: var(--accent-on-accent);
}
.btn--primary:hover {
  filter: brightness(1.06);
}
.btn--secondary {
  background: var(--card);
}
.btn--ghost {
  background: transparent;
}
.btn--danger {
  background: color-mix(in srgb, var(--danger) 15%, transparent);
  border-color: color-mix(in srgb, var(--danger) 35%, transparent);
  color: var(--danger);
}
.btn--warning {
  background: color-mix(in srgb, var(--warning) 22%, transparent);
  border-color: color-mix(in srgb, var(--warning) 45%, transparent);
  color: color-mix(in srgb, var(--warning) 90%, var(--text));
  font-weight: 600;
}
.btn--warning:hover {
  filter: brightness(1.08);
}

.link {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
  color: var(--accent);
}
.link--danger {
  color: var(--danger);
}

.filter-form .filter-grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12.5rem), 1fr));
}

.field--inline {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 12.5rem;
}

.profit-chart-card--dashboard.card--pad {
  padding: 0.65rem 1rem 0.85rem;
}

@media (min-width: 640px) {
  .profit-chart-card--dashboard.card--pad {
    padding: 0.75rem 1.15rem 1rem;
  }
}

.profit-chart-card__top {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

@media (min-width: 560px) {
  .profit-chart-card__top {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.45rem;
  }
}

.profit-chart-card__intro {
  min-width: 0;
  flex: 1 1 auto;
}

.profit-chart-card__title {
  margin: 0;
  font-size: clamp(1.05rem, 2.8vw, 1.2rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: var(--line-min);
}

.profit-chart-card__sub {
  margin: 0.2rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.35;
}

.profit-chart-card__toolbar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.5rem;
  flex-shrink: 0;
  width: 100%;
  margin: 0;
}

@media (min-width: 560px) {
  .profit-chart-card__toolbar {
    width: auto;
    max-width: 12.5rem;
    align-items: flex-end;
  }
}

.profit-chart-card__range-wrap {
  width: 100%;
}

@media (min-width: 560px) {
  .profit-chart-card__range-wrap {
    width: 100%;
  }
}

.profit-chart-card__range-select {
  width: 100%;
  min-height: 2.5rem;
  padding: 0.45rem 0.6rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--text);
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
}

.profit-chart-card__custom {
  align-items: flex-end;
  width: 100%;
  padding-top: 0.15rem;
}

.profit-chart-card__date-field {
  min-width: 0;
  flex: 1 1 8rem;
}

.profit-chart-card__date-field input[type='date'] {
  min-height: 2.5rem;
  width: 100%;
}

.profit-chart-card__apply {
  flex-shrink: 0;
}

.profit-chart__frame {
  margin-top: 0.35rem;
  padding: 1rem;
  border-radius: calc(var(--radius) + 2px);
  background: color-mix(in srgb, var(--muted) 7%, var(--card));
  border: 1px solid color-mix(in srgb, var(--border) 72%, transparent);
}

.profit-chart__frame--empty {
  min-height: 11rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 1rem;
}

.profit-chart-card__period {
  margin: 0 0 0.6rem;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: var(--line-min);
  letter-spacing: -0.02em;
}

.profit-chart-card__period--pos {
  color: var(--accent);
}

.profit-chart-card__period--neg {
  color: var(--danger);
}

.profit-chart-card__period-suffix {
  margin-left: 0.4rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0;
}

.profit-chart__empty {
  text-align: center;
  max-width: 18rem;
  margin: 0 auto;
}

.profit-chart__empty-title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 700;
}

.profit-chart__empty-text {
  margin: 0;
  line-height: 1.45;
}

.filter-actions {
  margin-top: 0.75rem;
}

.field {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-width: 0;
}
.field__label {
  font-size: clamp(0.8rem, 1.2vw, 0.875rem);
  font-weight: 600;
  color: var(--muted);
  line-height: var(--line-min);
}
.field--full {
  grid-column: 1 / -1;
}

.req {
  color: var(--danger);
}

input,
select,
textarea {
  font: inherit;
  color: var(--text);
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  padding: 0.55em 0.65em;
  width: 100%;
  max-width: 100%;
  min-height: 2.5rem;
  line-height: var(--line-min);
}
input:focus,
select:focus,
textarea:focus {
  outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent);
  outline-offset: 1px;
}

input[type='checkbox'],
input[type='radio'] {
  width: auto;
  min-width: auto;
  min-height: auto;
  padding: 0;
}

input[type='file'] {
  min-height: auto;
  padding: 0.35em 0;
}

.field__error {
  font-size: 0.8rem;
  color: var(--danger);
}

.field-mount {
  min-width: 0;
}

.creatable-select__control {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  width: 100%;
  min-width: 0;
}

.creatable-select__input-row {
  position: relative;
  display: flex;
  align-items: stretch;
  min-width: 0;
}

.creatable-select__input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 2.75rem;
  font-size: max(1rem, 0.95em);
}

.creatable-select__clear {
  position: absolute;
  right: 0.35rem;
  top: 50%;
  transform: translateY(-50%);
  width: 2.75rem;
  height: 2.75rem;
  border: none;
  border-radius: 0.35rem;
  padding: 0;
  margin: 0;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  color: var(--muted);
  background: color-mix(in srgb, var(--card) 85%, transparent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.creatable-select__input-row.is-has-clear .creatable-select__toggle {
  right: 3.25rem;
}

.creatable-select__input-row.is-has-clear .creatable-select__input {
  padding-right: 8.25rem;
}

.creatable-select__toggle {
  position: absolute;
  right: 0.35rem;
  top: 50%;
  transform: translateY(-50%);
  width: 2.75rem;
  height: 2.75rem;
  border: none;
  border-radius: 0.35rem;
  padding: 0;
  margin: 0;
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
  color: var(--muted);
  background: color-mix(in srgb, var(--card) 85%, transparent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.money-input {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  overflow: hidden;
}
.money-input__prefix {
  padding: 0 0.75rem;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  user-select: none;
}
.money-input__field {
  border: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding-left: 0.5rem !important;
}
.money-input__field:focus {
  outline: none;
}

.money-input__preview {
  display: block;
  margin-top: 0.25rem;
  min-height: 1.25em;
  font-variant-numeric: tabular-nums;
  word-break: break-word;
}

.ship-section {
  margin-top: var(--space-2);
}
.ship-section__summary,
.detail-ship__summary {
  cursor: pointer;
  list-style: none;
  font-weight: 650;
}
.ship-section__summary::-webkit-details-marker,
.detail-ship__summary::-webkit-details-marker {
  display: none;
}
.ship-section__summary::after,
.detail-ship__summary::after {
  content: '▾';
  float: right;
  color: var(--muted);
  transform: translateY(1px);
}
details[open] > .ship-section__summary::after,
details[open] > .detail-ship__summary::after {
  content: '▴';
}
.ship-section__grid,
.detail-ship__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2);
  margin-top: var(--space-2);
}
@media (min-width: 820px) {
  .ship-section__grid,
  .detail-ship__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.tip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1;
}

.creatable-select__toggle:hover {
  color: var(--text);
  background: color-mix(in srgb, var(--accent) 10%, var(--card));
}

.creatable-select__toggle:active {
  transform: translateY(-50%) scale(0.96);
}

.creatable-select__clear:hover {
  color: var(--text);
  background: color-mix(in srgb, var(--accent) 12%, var(--card));
}

.creatable-select__input-row .creatable-select__input {
  padding-right: 5.6rem;
}

.creatable-select__list {
  list-style: none;
  margin: 0;
  padding: 0.25rem 0;
  overflow-y: auto;
  overflow-x: hidden;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-modal);
  max-height: 12.5rem;
}

.creatable-select__empty {
  margin: 0;
  padding: 0.75rem 0.85rem;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: var(--line-min);
  cursor: default;
}

.creatable-select__option {
  margin: 0;
  padding: 0.65rem 0.85rem;
  min-height: 2.75rem;
  cursor: pointer;
  line-height: var(--line-min);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.creatable-select__option:hover {
  background: color-mix(in srgb, var(--accent) 12%, transparent);
}

.creatable-select__option.is-active {
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  outline: none;
}

.creatable-select__option--recent {
  font-weight: 500;
}

.creatable-select__option--create {
  color: var(--accent);
  font-weight: 600;
}

.creatable-select__plus {
  font-size: 1.15em;
  opacity: 0.9;
}

.form-grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.625rem), 1fr));
}

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

@media (min-width: 36rem) {
  .narrow-form .form-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
  }
}

.form-actions {
  margin-top: 0.5rem;
}

.empty {
  text-align: center;
  padding: 2rem 1rem;
}

.centered {
  text-align: center;
  align-items: center;
  padding: 2rem 0;
}

.offline-fallback {
  text-align: center;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  padding: 2rem 0;
}

.offline-fallback__logo {
  display: block;
  margin: 0 auto 0.75rem;
  max-width: min(96px, 40vw);
  height: auto;
}

.offline-fallback__icon {
  color: var(--muted);
  margin-bottom: 0.25rem;
}

.offline-fallback__title {
  margin: 0 0 0.5rem;
  font-size: 1.5rem;
}

/* Full-page style notices (404, error) — matches offline / brand tone */
.status-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 26rem;
  margin-inline: auto;
  margin-top: clamp(1rem, 4vh, 2.5rem);
  margin-bottom: 2rem;
  padding: 2rem 1.5rem 2.25rem;
  box-shadow: 0 2px 24px color-mix(in srgb, #000 18%, transparent);
}
.status-page__logo {
  display: block;
  margin: 0 auto 1rem;
  width: 4.5rem;
  height: auto;
}
.status-page__code {
  margin: 0 0 0.35rem;
  font-size: clamp(3rem, 14vw, 4.5rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.06em;
  font-variant-numeric: tabular-nums;
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--accent) 88%, var(--text)),
    color-mix(in srgb, var(--accent) 42%, var(--muted))
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.status-page__icon {
  font-size: 2.35rem;
  line-height: 1;
  margin-bottom: 0.65rem;
  opacity: 0.92;
}
.status-page--error .status-page__icon {
  color: color-mix(in srgb, var(--danger) 72%, var(--muted));
}
.status-page__title {
  margin: 0 0 0.5rem;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.status-page__lead {
  margin: 0 0 1.35rem;
  font-size: 0.95rem;
  line-height: 1.45;
  max-width: 22rem;
}
.status-page__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem 0.65rem;
}
.status-page__retry-form {
  margin: 0;
  display: inline-flex;
}

.crumb {
  font-size: 0.85rem;
  margin-bottom: 0.35rem;
}

.detail-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.625rem), 1fr));
}

.detail-meta {
  display: grid;
  gap: 0.5rem;
  font-size: 0.95rem;
}
.detail-k {
  color: var(--muted);
  display: inline-block;
  min-width: 5.5rem;
}

.dl {
  margin: 0;
  display: grid;
  gap: 0.65rem;
}
.dl > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.dl dt {
  margin: 0;
  color: var(--muted);
  font-size: 0.85rem;
}
.dl dd {
  margin: 0;
  font-weight: 600;
  text-align: right;
}
.profit-line dd {
  color: var(--success);
}

.thumb-link {
  display: block;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--border);
}
.thumb {
  width: 100%;
  max-height: 220px;
  object-fit: cover;
  display: block;
  vertical-align: middle;
}

.notes {
  margin: 0;
  font-family: inherit;
  font-size: 0.95rem;
  white-space: pre-wrap;
  word-break: break-word;
  color: var(--text);
}

@media (max-width: 520px) {
  .site-header__bar {
    gap: 0.5rem 0.75rem;
  }

  .site-header__nav-scroll {
    justify-content: flex-start;
  }
}

@media (min-width: 769px) {
  .table:not(.table-inv) th:last-child,
  .table:not(.table-inv) td:last-child {
    position: sticky;
    right: 0;
    background: var(--card);
  }
}

.page-head__actions {
  align-items: center;
  justify-content: flex-end;
}

.data-toolbar {
  flex-wrap: wrap;
}

.inv-export-csv-btn {
  position: relative;
  min-width: 5.75rem;
}

.inv-export-csv-btn.is-busy {
  cursor: wait;
}

.inv-export-csv-btn .inv-export-csv-btn__label,
.inv-export-csv-btn .inv-export-csv-btn__spinner {
  transition: opacity 0.18s ease;
}

.th-thumb,
.table-inv .th-thumb {
  width: 56px;
}

.cell-thumb {
  width: 56px;
  vertical-align: middle;
}

.table-thumb {
  width: 50px;
  height: 50px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid var(--border);
  display: block;
}

.table-thumb--empty {
  display: inline-block;
  width: 50px;
  height: 50px;
  border-radius: 6px;
  background: color-mix(in srgb, var(--border) 50%, transparent);
}

.thumb--hidden {
  display: none !important;
}

.thumb-placeholder {
  min-height: 4rem;
  border: 1px dashed var(--border);
  border-radius: 8px;
  margin-bottom: 0.5rem;
}

.small {
  font-size: 0.88rem;
}

.import-result {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  padding: 0.75rem;
  font-size: clamp(0.8rem, 1.2vw, 0.875rem);
  max-height: min(14rem, 38vh);
  overflow: auto;
  white-space: pre-wrap;
  margin: 0;
  overflow-wrap: break-word;
}

.import-result--modal {
  margin-top: 0.35rem;
}

/* Import CSV modal: layout, drop zone, responsive actions */
.modal-root--import .modal-root__backdrop--blur {
  background: color-mix(in srgb, var(--bg) 58%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.import-modal__panel {
  width: min(calc(100vw - 1.5rem), 28rem);
  max-width: 28rem;
  padding: 1rem;
  gap: 1.25rem;
}

@media (min-width: 640px) {
  .import-modal__panel {
    padding: 2rem;
    gap: 1.5rem;
  }
}

.import-modal__section--header {
  flex-shrink: 0;
}

.import-modal__header-lead {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.import-modal__header-row {
  align-items: flex-start;
  gap: 0.75rem;
}

.import-modal__title {
  margin: 0;
  font-size: clamp(1.35rem, 3.5vw, 1.6rem);
  font-weight: 700;
  line-height: var(--line-min);
  letter-spacing: -0.02em;
}

.import-modal__subtitle {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--muted);
}

/* Templates dropdown (secondary) */
.import-modal__templates-wrap {
  position: relative;
  flex-shrink: 0;
  width: 100%;
}

@media (min-width: 480px) {
  .import-modal__templates-wrap {
    width: auto;
    margin-left: auto;
  }
}

.import-modal__templates-trigger {
  width: 100%;
  justify-content: center;
  gap: 0.35em;
}

@media (min-width: 480px) {
  .import-modal__templates-trigger {
    width: auto;
    justify-content: center;
  }
}

.import-modal__templates-chevron {
  font-size: 0.7em;
  opacity: 0.85;
  transition: transform 0.15s ease;
}

.import-modal__templates-chevron.is-open {
  transform: rotate(180deg);
}

.import-modal__templates-menu {
  position: absolute;
  z-index: 20;
  right: 0;
  left: 0;
  top: calc(100% + 0.35rem);
  display: flex;
  flex-direction: column;
  padding: 0.35rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--card);
  box-shadow: 0 10px 28px color-mix(in srgb, var(--bg) 40%, #000 50%);
}

@media (min-width: 480px) {
  .import-modal__templates-menu {
    left: auto;
    min-width: 15rem;
  }
}

.import-modal__templates-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  margin: 0;
  padding: 0.55rem 0.65rem;
  border: none;
  border-radius: calc(var(--radius) - 2px);
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.import-modal__templates-item:hover {
  background: color-mix(in srgb, var(--accent) 10%, transparent);
}

/* Primary upload + secondary schema (overrides base dropzone) */
.csv-upload__dropzone.import-modal__upload-zone {
  min-height: 9.5rem;
  padding: 1.75rem 1.25rem;
  border-width: 1.5px;
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent);
  transition:
    border-color 0.2s ease,
    background 0.2s ease,
    box-shadow 0.2s ease;
}

@media (min-width: 640px) {
  .csv-upload__dropzone.import-modal__upload-zone {
    min-height: 10.5rem;
    padding: 2rem 1.5rem;
  }
}

.csv-upload__dropzone.import-modal__upload-zone:hover {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
}

.csv-upload__dropzone--has-file {
  border-style: solid;
  border-color: color-mix(in srgb, var(--accent-dim) 55%, var(--border));
  background: color-mix(in srgb, var(--accent) 11%, var(--card));
  animation: import-upload-pulse 0.45s ease;
}

@keyframes import-upload-pulse {
  0% {
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent) 28%, transparent);
  }
  100% {
    box-shadow: 0 0 0 0 transparent;
  }
}

.import-modal__upload-label {
  gap: 0.65rem;
}

.import-modal__upload-cta {
  pointer-events: none;
  font-size: 1rem;
  min-height: 3rem;
  padding: 0.65em 1.25em;
}

.import-modal__upload-hint {
  max-width: 20rem;
  font-size: 0.875rem;
}

.import-modal__picked-file {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  margin-top: 0.15rem;
  padding: 0.35rem 0.65rem;
  border-radius: 0.4rem;
  background: color-mix(in srgb, var(--accent) 14%, transparent);
  color: var(--accent-dim);
  font-weight: 600;
}

.import-modal__picked-icon {
  color: var(--accent);
  font-size: 0.95em;
}

.import-modal__parse-status {
  margin: 0;
  justify-content: center;
}

.import-modal__secondary {
  margin-top: 0.25rem;
}

.import-modal__schema {
  border: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--card) 96%, var(--muted) 4%);
  overflow: hidden;
}

.import-modal__schema-summary {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.55rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--muted);
  list-style: none;
}

.import-modal__schema-summary::-webkit-details-marker {
  display: none;
}

.import-modal__schema-q {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--muted) 45%, var(--border));
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
}

.import-modal__schema-body {
  padding: 0 0.85rem 0.85rem;
  border-top: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
}

.import-modal__schema-heading {
  margin: 0.65rem 0 0.25rem;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.import-modal__schema-heading:first-child {
  margin-top: 0.5rem;
}

.import-modal__schema-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--muted) 88%, var(--text) 12%);
}

.import-modal__schema-list li {
  margin: 0.1rem 0;
}

.import-modal__schema-note {
  margin: 0.65rem 0 0;
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--muted);
}

.import-modal__footer-bar {
  gap: 0.75rem;
  padding-top: 0.85rem;
  margin-top: 0;
  border-top: 1px solid color-mix(in srgb, var(--border) 65%, transparent);
}

.import-modal__footer-btn {
  min-height: 2.75rem;
}

@media (max-width: 479px) {
  .import-modal__footer-bar {
    flex-direction: column;
    align-items: stretch;
  }
  .import-modal__footer-bar .import-modal__footer-btn {
    width: 100%;
    justify-content: center;
  }
}

.import-modal__form {
  gap: 1rem;
}

@media (min-width: 640px) {
  .import-modal__form {
    gap: 1.5rem;
  }
}

.import-modal__scroll {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media (min-width: 640px) {
  .import-modal__scroll {
    gap: 1.5rem;
  }
}

.csv-upload__input:focus {
  outline: none;
}

.csv-upload__input:focus-visible + .csv-upload__dropzone {
  outline: 2px solid color-mix(in srgb, var(--accent) 50%, transparent);
  outline-offset: 2px;
}

.csv-upload__dropzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 3rem;
  padding: 1rem 1rem;
  border: 1px dashed color-mix(in srgb, var(--accent) 35%, var(--border));
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--accent) 6%, var(--card));
  cursor: pointer;
  text-align: center;
  transition:
    border-color 0.15s ease,
    background 0.15s ease;
}

@media (min-width: 640px) {
  .csv-upload__dropzone {
    min-height: 3.25rem;
    padding: 1.25rem 1rem;
  }
}

.csv-upload__dropzone:hover {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--border));
  background: color-mix(in srgb, var(--accent) 10%, var(--card));
}

.csv-upload__dropzone--active {
  border-color: var(--accent-dim);
  border-style: solid;
  background: color-mix(in srgb, var(--accent) 14%, var(--card));
}

.csv-upload__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35em;
  padding: 0.55em 1.05em;
  border-radius: 0.5rem;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--text);
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: var(--line-min);
  min-height: 2.75rem;
  pointer-events: none;
}

.csv-upload__hint {
  font-size: 0.8125rem;
  color: var(--muted);
  line-height: 1.4;
  max-width: 18rem;
}

.csv-upload__file {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--accent-dim);
  word-break: break-all;
}

.import-modal__error {
  margin: 0;
}

.import-modal__actions {
  margin-top: 0;
}

@media (max-width: 480px) {
  .import-modal__actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .import-modal__actions .btn {
    width: 100%;
    min-height: 2.75rem;
  }

  .import-modal__btn-cancel {
    order: 1;
  }

  .import-modal__btn-submit {
    order: 2;
  }
}

.import-modal__btn-submit:disabled {
  opacity: 0.72;
  cursor: not-allowed;
  filter: none;
}

/* Import CSV React flow: preview table, scroll, sticky actions */
.import-modal__panel--react {
  width: min(calc(100vw - 1rem), 42rem);
  max-width: 42rem;
  max-height: min(90vh, 44rem);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.import-modal__form--react {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.import-modal__scroll--react {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.import-modal__body {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding-right: 0.1rem;
}

.import-csv-preview__drop.is-busy {
  opacity: 0.75;
  pointer-events: none;
}

.import-csv-drop-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  cursor: pointer;
  margin: 0;
}

.import-csv-preview__spinner {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--muted);
}

.import-csv-preview__fname {
  display: block;
  text-align: center;
}

.import-csv-preview__lead {
  margin: 0;
}

.import-csv-preview__table-title {
  margin: 0.25rem 0 0.35rem;
  font-size: 0.9375rem;
  font-weight: 700;
}

.import-csv-preview__table-scroll {
  max-height: min(36vh, 16rem);
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  -webkit-overflow-scrolling: touch;
}

.import-csv-preview__table {
  width: 100%;
  min-width: 42rem;
  border-collapse: collapse;
  font-size: 0.78rem;
  line-height: 1.3;
}

.import-csv-preview__table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 0.45rem 0.5rem;
  text-align: right;
  background: color-mix(in srgb, var(--card) 92%, var(--muted) 8%);
  border-bottom: 1px solid var(--border);
  color: var(--muted);
  font-weight: 600;
  white-space: nowrap;
}

.import-csv-preview__table thead th:first-child,
.import-csv-preview__table tbody td:first-child {
  text-align: left;
}

.import-csv-preview__table tbody td {
  padding: 0.4rem 0.5rem;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
  vertical-align: top;
  white-space: nowrap;
}

.import-csv-preview__cell-title {
  white-space: normal;
  max-width: 9rem;
  word-break: break-word;
}

.import-csv-preview__warn.is-dimmed {
  opacity: 0.72;
}

.import-csv-preview__warn {
  margin-top: 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: var(--radius);
  border: 1px solid color-mix(in srgb, var(--warning) 45%, var(--border));
  background: color-mix(in srgb, var(--warning) 12%, var(--card));
  font-size: 0.8125rem;
}

.import-csv-preview__warn-title {
  margin: 0 0 0.35rem;
  font-weight: 600;
}

.import-csv-preview__errlist {
  margin: 0;
  padding-left: 1.15rem;
  color: color-mix(in srgb, var(--text) 85%, var(--muted));
  line-height: 1.45;
}

.import-csv-preview__dl {
  margin-top: 0.5rem;
}

.import-csv-preview__actions {
  margin-top: 0.85rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--border);
  position: sticky;
  bottom: 0;
  background: linear-gradient(to top, var(--card) 70%, transparent);
  flex-shrink: 0;
}

.import-modal__actions--sticky {
  flex-shrink: 0;
  padding-top: 0.75rem;
  margin-top: auto;
  border-top: 1px solid var(--border);
  background: var(--card);
}

@media (max-width: 480px) {
  .import-csv-preview__table {
    font-size: 0.72rem;
  }

  .import-csv-preview__table thead th,
  .import-csv-preview__table tbody td {
    padding: 0.35rem 0.4rem;
  }

  .import-csv-preview__actions .btn {
    width: 100%;
    min-height: 2.75rem;
  }

  .import-csv-preview__actions .import-modal__btn-cancel {
    order: 1;
  }

  .import-csv-preview__actions .import-modal__btn-submit {
    order: 2;
  }
}

.detail-upload-block {
  margin: 0 0 0.75rem;
}

.image-upload-block {
  margin-top: 0.25rem;
}

.image-upload-preview-wrap {
  margin: 0.35rem 0;
}

.form-image-preview {
  max-width: 200px;
  max-height: 200px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid var(--border);
}

.form-image-preview--hidden {
  display: none !important;
}

.image-file-input {
  padding: 0.4rem 0;
  border: none;
  background: transparent;
}

@media (max-width: 768px) {
  .table-inv .cell-thumb::before {
    align-self: center;
  }
}

/* Icons & link polish */
.icon-muted {
  color: var(--muted);
  font-size: 0.92em;
}
.icon-heading {
  color: var(--muted);
  font-size: 0.85em;
  vertical-align: 0.05em;
}
.nav__link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.nav__icon {
  opacity: 0.88;
}
.stat__icon {
  color: var(--muted);
  margin-right: 0.25rem;
  font-size: 0.9em;
}
.link--icon {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.bulk-mobile-select {
  margin-bottom: 0;
}

.inventory-list-block {
  min-width: 0;
}
.bulk-select-all-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.9rem;
  color: var(--muted);
}
.th-select,
.cell-select {
  width: 2.5rem;
  text-align: center;
  vertical-align: middle;
}
.cell-select input[type="checkbox"] {
  width: 1.05rem;
  height: 1.05rem;
  accent-color: var(--accent);
  cursor: pointer;
}

.bulk-toolbar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 50;
  background: color-mix(in srgb, var(--card) 94%, var(--accent) 6%);
  border-top: 1px solid var(--border);
  padding: 0.55rem 0 max(0.55rem, env(safe-area-inset-bottom, 0px));
  box-shadow: var(--shadow-bulk);
}
.bulk-toolbar__inner {
  width: min(1100px, 100% - 1.5rem);
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.75rem;
  align-items: center;
}
.bulk-toolbar__count {
  font-weight: 700;
  color: var(--accent);
  min-width: 1.25rem;
}
.bulk-toolbar__label {
  font-size: 0.82rem;
  margin-right: 0.25rem;
}
.bulk-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  flex: 1 1 auto;
  justify-content: flex-end;
}
.btn--toolbar {
  font-size: 0.78rem;
  padding: 0.38rem 0.6rem;
  gap: 0.25rem;
}
body.bulk-toolbar-active .main {
  padding-bottom: 6rem;
}
body.bulk-toolbar-active .fab-global {
  bottom: calc(6.5rem + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 769px) {
  body.bulk-toolbar-active .fab-global {
    bottom: calc(5.75rem + env(safe-area-inset-bottom, 0px));
  }
}

.bulk-page-feedback {
  width: min(1100px, 100% - 2rem);
  margin: 0 auto 0.75rem;
  padding: 0.55rem 0.85rem;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 600;
}
.bulk-page-feedback--ok {
  background: color-mix(in srgb, var(--sold) 18%, var(--card));
  border: 1px solid color-mix(in srgb, var(--sold) 35%, var(--border));
  color: var(--text);
}
.bulk-page-feedback--err {
  background: color-mix(in srgb, var(--danger) 15%, var(--card));
  border: 1px solid color-mix(in srgb, var(--danger) 40%, var(--border));
  color: var(--danger);
}

.quick-actions .btn--xs {
  transition: border-color 0.15s ease, background 0.15s ease;
}
.quick-actions .btn--xs:hover {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 10%, var(--card));
}

/* Wrap long strings in prose (SKU, URLs, notes) */
.text {
  overflow-wrap: break-word;
  word-break: break-word;
}

/* —— UX refinement: spacing scale (8 / 16 / 24 / 32) —— */
.stack--roomy {
  gap: 1.5rem;
}

@media (min-width: 640px) {
  .stack--roomy {
    gap: 2rem;
  }
}

.empty-state {
  text-align: center;
  padding: 2rem 1.5rem;
  max-width: 28rem;
  margin-inline: auto;
}
.empty-state__title {
  margin: 0 0 0.5rem;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.empty-state__text {
  margin: 0 0 1.25rem;
}

.filter-actions--reactive {
  margin-top: 1rem;
  align-items: center;
}
.filter-saved-filters-note {
  font-size: 0.82rem;
  opacity: 0.85;
}
.btn--sm {
  font-size: 0.875rem;
  min-height: 2.25rem;
  padding: 0.45em 0.75em;
}
.link--small {
  font-size: 0.85rem;
}

/* Sticky table header + scroll region (desktop) */
@media (min-width: 769px) {
  .table-inv-wrap {
    max-height: min(70vh, 50rem);
    overflow: auto;
  }
  .table-inv thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    background: color-mix(in srgb, var(--card) 92%, var(--bg));
    box-shadow: 0 1px 0 var(--border);
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
  }
}

.table-inv th,
.table-inv td {
  padding: 0.75rem 1rem;
}

.table-inv-tbody--lazy .inv-row {
  content-visibility: auto;
  contain-intrinsic-size: 52px;
}

/* Status / platform inline selects */
.cell-status-select,
.cell-platform-select {
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  max-width: 100%;
  min-height: 2.25rem;
  padding: 0.35rem 0.5rem;
  border-radius: 0.5rem;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--bg) 30%, var(--card));
  color: var(--text);
  cursor: pointer;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}
.cell-status-select:hover,
.cell-platform-select:hover {
  border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
}
.cell-status-select:focus,
.cell-platform-select:focus {
  outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent);
  outline-offset: 1px;
}

.status-select--draft {
  border-color: color-mix(in srgb, var(--draft) 40%, var(--border));
}
.status-select--listed {
  border-color: color-mix(in srgb, var(--listed) 45%, var(--border));
}
.status-select--sold {
  border-color: color-mix(in srgb, var(--sold) 45%, var(--border));
}
.status-select--archived {
  border-color: color-mix(in srgb, var(--archived) 40%, var(--border));
}

.cell-title__input {
  font: inherit;
  font-size: 0.92rem;
  font-weight: 500;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0.35rem 0.45rem;
  border-radius: 0.4rem;
  border: 1px solid var(--accent-dim);
  background: var(--card);
  color: var(--text);
}

.quick-actions--pills {
  gap: 0.35rem;
}

.pill-toggle {
  font: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.35em 0.75em;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  transition:
    background 0.12s ease,
    color 0.12s ease,
    border-color 0.12s ease;
}
.pill-toggle:hover {
  border-color: var(--muted);
  color: var(--text);
}
.pill-toggle.is-active {
  background: color-mix(in srgb, var(--accent) 18%, var(--card));
  border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
  color: var(--accent-dim);
}
.pill-toggle--listed.is-active {
  background: color-mix(in srgb, var(--listed) 20%, var(--card));
  border-color: color-mix(in srgb, var(--listed) 45%, var(--border));
  color: var(--listed);
}
.pill-toggle--sold.is-active {
  background: color-mix(in srgb, var(--sold) 20%, var(--card));
  border-color: color-mix(in srgb, var(--sold) 45%, var(--border));
  color: var(--sold);
}

/* Detail modal sections */
.detail-modal__section {
  padding-bottom: 1.25rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
}
.detail-modal__section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.detail-modal__section-label {
  display: block;
  margin: 0 0 0.75rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
}
.detail-modal__lede {
  margin: 0.35rem 0 0;
  font-size: 0.95rem;
}
.detail-modal__copy-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.75rem 0 1rem;
}

/* Drag–drop image */
.image-drop-zone {
  border: 1px dashed color-mix(in srgb, var(--border) 85%, var(--muted));
  border-radius: var(--radius);
  padding: 1rem;
  text-align: center;
  background: color-mix(in srgb, var(--bg) 25%, var(--card));
  transition:
    border-color 0.2s ease,
    background 0.2s ease;
}
.image-drop-zone--form {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.image-drop-zone.is-dragover {
  border-color: var(--accent-dim);
  background: color-mix(in srgb, var(--accent) 8%, var(--card));
}
.image-drop-zone__label {
  cursor: pointer;
  font-size: 0.9rem;
  color: var(--muted);
}

.field-sold-price--hot label .field__label {
  color: var(--sold);
  font-weight: 700;
}
.field-sold-price--dim {
  opacity: 0.72;
}
.field-sold-price--dim label .field__label {
  color: var(--muted);
}

/* Dashboard profit chart (bars) */
.profit-chart {
  display: flex;
  align-items: flex-end;
  gap: clamp(0.2rem, 1.5vw, 0.45rem);
  min-height: 0;
  padding: 0.25rem 0 0.1rem;
}
.profit-chart__col {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
}
.profit-chart__bar-wrap {
  position: relative;
  width: 100%;
  height: 13.75rem;
}
.profit-chart__bar {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  display: block;
  width: 100%;
  max-width: 1.85rem;
  min-height: 2px;
  /* Inline height is N%; % resolves against this wrap's height (not as a flex item — see dashboard.ejs). */
  border-radius: 5px 5px 2px 2px;
  background: linear-gradient(180deg, var(--accent-dim), var(--accent));
  transition:
    box-shadow 0.2s ease,
    filter 0.2s ease;
}
.profit-chart__bar--pos {
  box-shadow: 0 0 14px color-mix(in srgb, var(--accent) 38%, transparent);
}
.profit-chart__bar--zero {
  opacity: 0.35;
  filter: grayscale(0.25);
}
.profit-chart__bar--neg {
  background: linear-gradient(180deg, color-mix(in srgb, var(--danger) 75%, var(--card)), var(--danger));
  box-shadow: 0 0 12px color-mix(in srgb, var(--danger) 28%, transparent);
}
.profit-chart__label {
  font-size: 0.625rem;
  font-weight: 600;
  color: color-mix(in srgb, var(--muted) 88%, var(--text) 12%);
  opacity: 0.88;
  text-align: center;
  line-height: 1.25;
  padding: 0 1px;
  word-break: break-word;
  max-width: 100%;
}

@media (max-width: 480px) {
  .profit-chart__bar-wrap {
    height: 11.5rem;
  }
  .profit-chart__col:nth-child(even) .profit-chart__label {
    visibility: hidden;
    height: 0.5rem;
    overflow: hidden;
  }
}

.stat__icon--listed {
  color: var(--listed);
}
.stat__icon--sold {
  color: var(--sold);
}

.stat--accent-slate {
  border-left: 3px solid var(--muted);
}
.stat--accent-blue {
  border-left: 3px solid var(--listed);
}
.stat--accent-green {
  border-left: 3px solid var(--sold);
}
.stat--accent-teal {
  border-left: 3px solid var(--accent-dim);
}

/* Toasts (global) */
.resell-toast-host {
  position: fixed;
  bottom: max(1rem, env(safe-area-inset-bottom, 0));
  left: 50%;
  transform: translateX(-50%);
  z-index: 400;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  pointer-events: none;
  width: min(24rem, calc(100vw - 2rem));
}
.resell-toast {
  margin: 0;
  padding: 0.65rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: var(--line-min);
  box-shadow: var(--shadow-modal);
  opacity: 0;
  transform: translateY(8px);
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--text);
}
.resell-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.resell-toast--success {
  background: color-mix(in srgb, var(--success) 14%, var(--card));
  border-color: color-mix(in srgb, var(--success) 35%, var(--border));
}
.resell-toast--error {
  background: color-mix(in srgb, var(--danger) 12%, var(--card));
  border-color: color-mix(in srgb, var(--danger) 40%, var(--border));
  color: var(--text);
}
.resell-toast--info {
  background: color-mix(in srgb, var(--muted) 10%, var(--card));
}

/* Theme: readability */
[data-theme='dark'] {
  --text: #eef2f7;
  --muted: #a1aec0;
}
[data-theme='light'] {
  --muted: #4b5568;
}
[data-theme='midnight'] {
  --text: #f0f3f6;
  --muted: #9da7b2;
}
[data-theme='paper'] {
  --muted: #525049;
}

/* Badge refinement */
.badge--draft {
  background: color-mix(in srgb, var(--draft) 14%, transparent);
  color: var(--draft);
  border: 1px solid color-mix(in srgb, var(--draft) 35%, var(--border));
}
.badge--listed {
  background: color-mix(in srgb, var(--listed) 14%, transparent);
  color: var(--listed);
  border: 1px solid color-mix(in srgb, var(--listed) 35%, var(--border));
}
.badge--sold {
  background: color-mix(in srgb, var(--sold) 14%, transparent);
  color: var(--sold);
  border: 1px solid color-mix(in srgb, var(--sold) 35%, var(--border));
}

/* —— Mobile-first inventory (cards, sheets, filters) —— */
.u-btn-reset {
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  color: inherit;
  text-align: inherit;
  cursor: pointer;
  width: 100%;
}

.inventory-page__inner {
  padding-bottom: env(safe-area-inset-bottom, 0);
}

.inventory-page__title {
  margin: 0 0 var(--space-1);
  font-size: clamp(1.35rem, 4.2vw, 1.65rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: var(--line-min);
}

.inventory-page__sub {
  margin: 0 0 var(--space-2);
  font-size: 0.9375rem;
  line-height: max(1.5, var(--line-min));
}

.inventory-page__head {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.inventory-page__toolbar {
  align-self: flex-start;
}

.inv-filter-bar {
  position: sticky;
  top: 0;
  z-index: 25;
  margin: 0 calc(-1 * max(0px, (100vw - 100%) / 2 - 0.25rem)) var(--space-2);
  padding: var(--space-1) max(0.75rem, env(safe-area-inset-left, 0))
    var(--space-1) max(0.75rem, env(safe-area-inset-right, 0));
  background: color-mix(in srgb, var(--bg) 82%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid color-mix(in srgb, var(--border) 55%, transparent);
}

.inv-filter-bar__scroll {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.5rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 2px;
}

.inv-filter-bar__scroll::-webkit-scrollbar {
  display: none;
}

.inv-chip {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: var(--touch-min);
  padding: 0 1rem;
  border-radius: 999px;
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--muted);
  background: color-mix(in srgb, var(--card) 86%, var(--bg));
  border: 1px solid color-mix(in srgb, var(--border) 65%, transparent);
  transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

.inv-chip:hover {
  color: var(--text);
  text-decoration: none;
  border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
}

.inv-chip.is-active {
  color: var(--accent-dim);
  background: color-mix(in srgb, var(--accent) 12%, var(--card));
  border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
}

.inv-chip--icon {
  min-width: var(--touch-min);
  padding: 0;
  font-size: 1rem;
  color: var(--text);
}

.modal-root--sheet {
  align-items: flex-end;
  justify-content: center;
  padding: 0;
}

.modal-root--sheet .modal__panel--sheet {
  width: 100%;
  max-width: 100%;
  max-height: min(92vh, 100dvh - env(safe-area-inset-top, 0));
  margin: 0;
  border-radius: var(--radius) var(--radius) 0 0;
  padding-bottom: max(1rem, env(safe-area-inset-bottom, 0));
  animation: sheet-up 0.22s ease;
}

.modal__panel--detail-sheet {
  max-height: min(94vh, 100dvh);
}

.modal__panel--compact {
  max-width: 100%;
}

@keyframes sheet-up {
  from {
    transform: translateY(18px);
    opacity: 0.92;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.bottom-sheet__grab {
  width: 2.5rem;
  height: 4px;
  margin: 0.35rem auto 0.75rem;
  border-radius: 99px;
  background: color-mix(in srgb, var(--muted) 45%, transparent);
}

.detail-sheet__title {
  padding-right: 2.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.detail-sheet__footer {
  padding-bottom: max(0.25rem, env(safe-area-inset-bottom, 0));
}

.detail-modal__dl--compact {
  margin-top: 0.75rem;
}

.detail-sheet__profit {
  margin: 0.75rem 0 0;
}

.inv-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.inv-list--lazy .item-card {
  content-visibility: auto;
  contain-intrinsic-size: 120px;
}

@keyframes inv-card-reveal {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.inv-list .item-card {
  animation: inv-card-reveal 0.34s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(min(var(--inv-stagger, 0), 10) * 38ms);
}

@keyframes import-step-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.import-modal__step-wrap {
  animation: import-step-in 0.28s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.import-csv-preview__table-scroll.is-import-busy {
  position: relative;
  pointer-events: none;
}

.import-csv-preview__import-blocking {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  padding: 1rem;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text);
  background: color-mix(in srgb, var(--card) 72%, transparent);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-radius: var(--radius);
  animation: import-step-in 0.22s ease-out both;
}

.import-csv-preview__import-blocking .fa-spinner {
  color: var(--accent);
}

.resell-bulk-overlay {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: color-mix(in srgb, var(--bg) 45%, transparent);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity 0.22s ease;
  pointer-events: none;
}

.resell-bulk-overlay.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.resell-bulk-overlay__panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1.35rem 1.75rem;
  border-radius: calc(var(--radius) + 4px);
  background: color-mix(in srgb, var(--card) 94%, var(--bg));
  border: 1px solid color-mix(in srgb, var(--border) 55%, transparent);
  box-shadow: 0 12px 40px color-mix(in srgb, #000 22%, transparent);
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--text);
  transform: translateY(6px) scale(0.98);
  transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
}

.resell-bulk-overlay.is-visible .resell-bulk-overlay__panel {
  transform: translateY(0) scale(1);
}

.resell-bulk-overlay__spinner {
  font-size: 1.75rem;
  color: var(--accent);
  line-height: 1;
}

@media (prefers-reduced-motion: reduce) {
  .inv-list .item-card {
    animation: none;
  }

  .import-modal__step-wrap,
  .import-csv-preview__import-blocking {
    animation: none;
  }

  .resell-bulk-overlay__panel {
    transition: none;
  }
}

body.resell-bulk-working {
  cursor: wait;
}

/* —— Inventory list pagination (client-side; /items + dashboard Recent) —— */
.inv-pagination-root {
  gap: var(--space-2);
}

.inv-pagination-root.stack--tight {
  gap: 0.95rem;
}

.inv-pagination-toolbar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
  padding: 0.1rem 0 0;
  outline: none;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.inv-pagination-toolbar__info {
  margin: 0;
  line-height: 1.35;
  min-width: 0;
}

.inv-pagination-toolbar__size {
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

@media (min-width: 640px) {
  .inv-pagination-toolbar {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    justify-content: flex-start;
  }

  .inv-pagination-toolbar__info {
    display: flex;
    align-items: center;
    flex: 0 1 auto;
    min-height: var(--touch-min);
  }

  .inv-pagination-toolbar__size {
    width: auto;
    max-width: none;
  }
}

.inv-page-size {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.4rem;
  width: 100%;
  max-width: 100%;
  min-width: min(100%, 12rem);
  flex-shrink: 0;
  box-sizing: border-box;
}

@media (min-width: 640px) {
  .inv-page-size {
    flex-direction: row;
    align-items: center;
    flex-wrap: nowrap;
    width: auto;
    max-width: none;
    min-width: 0;
    gap: 0.6rem;
  }
}

.inv-page-size__label {
  margin: 0;
  padding: 0;
  white-space: nowrap;
  flex-shrink: 0;
  overflow: visible;
  line-height: 1.2;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.inv-page-size__label-icon {
  opacity: 0.88;
  font-size: 0.9em;
}

@media (min-width: 640px) {
  .inv-page-size__label {
    min-height: var(--touch-min);
  }
}

.inv-page-size__select {
  flex-shrink: 0;
  box-sizing: border-box;
  width: auto;
  min-width: 4.75rem;
  max-width: 100%;
  height: var(--touch-min);
  min-height: var(--touch-min);
  padding: 0 2rem 0 0.75rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--border) 55%, transparent);
  background: color-mix(in srgb, var(--card) 88%, var(--bg));
  color: color-mix(in srgb, var(--fg) 82%, var(--muted));
  font: inherit;
  font-size: 0.875rem;
  cursor: pointer;
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%),
    linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position: calc(100% - 1rem) calc(50% - 0.15rem), calc(100% - 0.65rem) calc(50% - 0.15rem);
  background-size: 0.35rem 0.35rem, 0.35rem 0.35rem;
  background-repeat: no-repeat;
}

.inv-page-size__select:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 65%, transparent);
  outline-offset: 2px;
}

.inv-pagination-footer {
  margin-top: var(--space-1);
}

.inv-pagination-nav {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.85rem;
  padding: 0.25rem 0 0.5rem;
}

.inv-pagination-nav__main {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
}

@media (min-width: 640px) {
  .inv-pagination-nav__main {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 0.75rem 1.25rem;
  }
}

.inv-pagination-nav__status {
  text-align: center;
  order: 0;
  min-height: var(--touch-min);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 640px) {
  .inv-pagination-nav__status {
    order: unset;
  }
}

.inv-pagination-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: var(--touch-min);
  padding: 0 1.1rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
  background: color-mix(in srgb, var(--card) 90%, var(--bg));
  color: color-mix(in srgb, var(--fg) 88%, var(--muted));
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
}

.inv-pagination-btn:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--border) 72%, transparent);
  background: color-mix(in srgb, var(--card) 96%, var(--bg));
}

.inv-pagination-btn:disabled {
  opacity: 0.38;
  cursor: not-allowed;
}

.inv-pagination-nav__pages {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.45rem;
}

.inv-pagination-page {
  min-width: var(--touch-min);
  min-height: var(--touch-min);
  padding: 0 0.5rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--border) 45%, transparent);
  background: transparent;
  color: color-mix(in srgb, var(--fg) 75%, var(--muted));
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.15s ease;
}

.inv-pagination-page:active:not(:disabled) {
  transform: scale(0.96);
}

.inv-pagination-page.is-active {
  border-color: color-mix(in srgb, var(--accent) 55%, transparent);
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  color: var(--fg);
}

.inv-pagination-nav__jump {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.5rem;
}

@media (min-width: 640px) {
  .inv-pagination-nav__jump {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.65rem;
  }
}

.inv-pagination-nav__jump-label {
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

.inv-pagination-nav__jump-icon {
  opacity: 0.85;
}

.inv-pagination-nav__jump-input {
  min-height: var(--touch-min);
  width: 100%;
  max-width: 8rem;
  margin: 0 auto;
  padding: 0 0.65rem;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
  background: color-mix(in srgb, var(--card) 88%, var(--bg));
  color: var(--fg);
  font: inherit;
  font-size: 0.9375rem;
  text-align: center;
}

@media (min-width: 640px) {
  .inv-pagination-nav__jump-input {
    margin: 0;
    width: 4.5rem;
  }
}

.item-card {
  position: relative;
  border-radius: calc(var(--radius) + 2px);
  background: color-mix(in srgb, var(--card) 92%, var(--bg));
  box-shadow: 0 2px 16px color-mix(in srgb, #000 18%, transparent);
  border: 1px solid color-mix(in srgb, var(--border) 45%, transparent);
  overflow: hidden;
  touch-action: pan-y;
  transition: border-color 0.2s ease, box-shadow 0.22s ease, transform 0.2s ease;
}

@media (hover: hover) and (pointer: fine) {
  .item-card:hover {
    border-color: color-mix(in srgb, var(--border) 65%, var(--accent) 12%);
    box-shadow: 0 6px 22px color-mix(in srgb, #000 14%, transparent);
  }
}

.item-card__swipe-inner {
  display: flex;
  align-items: stretch;
  gap: 0;
  min-height: 4.75rem;
}

.item-card__bulk {
  display: flex;
  align-items: center;
  padding-left: 0.35rem;
  width: 0;
  overflow: hidden;
  opacity: 0;
  transition: width 0.18s ease, opacity 0.18s ease;
}

.inventory-page--select .item-card__bulk {
  width: 2.25rem;
  opacity: 1;
}

.item-card__cb {
  width: 1.15rem;
  height: 1.15rem;
  accent-color: var(--accent);
}

.item-card__main {
  flex: 1 1 auto;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  min-width: 0;
  padding: 0.75rem 0.85rem 0.5rem 0.5rem;
  text-align: left;
}

.item-card__thumb {
  flex-shrink: 0;
}

.item-card__img {
  width: 3.5rem;
  height: 3.5rem;
  object-fit: cover;
  border-radius: 10px;
  display: block;
  background: color-mix(in srgb, var(--border) 35%, transparent);
}

.item-card__img--placeholder {
  display: block;
}

.item-card__body {
  flex: 1 1 auto;
  min-width: 0;
}

.item-card__title {
  margin: 0 0 0.2rem;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: max(1.35, var(--line-min));
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.item-card__meta {
  margin: 0 0 0.35rem;
  font-size: 0.875rem;
  line-height: max(1.4, var(--line-min));
}

.item-card__profit {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.item-card__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  padding: 0 0.75rem 0.75rem 0.5rem;
}

.status-segment {
  display: inline-flex;
  border-radius: 10px;
  padding: 3px;
  background: color-mix(in srgb, var(--bg) 55%, var(--card));
  border: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
}

.status-segment__btn {
  min-height: 2.5rem;
  min-width: 4.25rem;
  padding: 0 0.75rem;
  border: none;
  border-radius: 8px;
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
  transition: background 0.12s ease, color 0.12s ease;
}

.status-segment__btn.is-active {
  color: var(--text);
  background: color-mix(in srgb, var(--accent) 16%, var(--card));
  box-shadow: 0 1px 3px color-mix(in srgb, #000 12%, transparent);
}

.status-segment__btn[aria-pressed='true'] {
  color: var(--listed);
}

.status-segment__btn.is-active[aria-pressed='true'] {
  color: var(--listed);
}

.item-card__sold-pill {
  min-height: var(--touch-min);
  padding: 0 0.85rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--border) 65%, transparent);
  background: color-mix(in srgb, var(--sold) 12%, var(--card));
  color: color-mix(in srgb, var(--sold) 85%, var(--text));
  font: inherit;
  font-size: 0.875rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  transition: filter 0.12s ease, transform 0.12s ease;
}

.item-card__sold-pill--ghost {
  background: transparent;
  color: var(--muted);
}

.item-card__sold-pill:active {
  transform: scale(0.97);
}

.item-card__menu {
  position: relative;
  margin-left: auto;
}

.item-card__menu-sum {
  list-style: none;
  min-width: var(--touch-min);
  min-height: var(--touch-min);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  cursor: pointer;
  color: var(--muted);
  font-size: 1.25rem;
  letter-spacing: 0.08em;
}

.item-card__menu-sum::-webkit-details-marker {
  display: none;
}

.item-card__menu[open] .item-card__menu-sum {
  background: color-mix(in srgb, var(--accent) 8%, var(--card));
  color: var(--text);
}

.item-card__menu-panel {
  position: absolute;
  right: 0;
  bottom: calc(100% + 4px);
  min-width: 10.5rem;
  padding: 0.35rem 0;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: var(--shadow-modal);
  z-index: 40;
}

.item-card__menu-item {
  display: block;
  width: 100%;
  padding: 0.65rem 1rem;
  border: none;
  background: none;
  font: inherit;
  font-size: 0.9375rem;
  text-align: left;
  color: var(--text);
  cursor: pointer;
}

.item-card__menu-item:hover {
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}

.item-card__menu-item--danger {
  color: var(--danger);
}

.item-card__menu-form {
  margin: 0;
}

.bulk-mobile-select--slim {
  padding: 0.65rem 0.85rem;
}

.empty-state--hero {
  padding: var(--space-3) var(--space-2);
}

.empty-state__icon {
  font-size: 2rem;
  color: var(--muted);
  margin-bottom: var(--space-2);
  opacity: 0.85;
}

.btn--min-touch {
  min-height: var(--touch-min);
}

.dashboard-head__sub {
  margin: -0.15rem 0 0;
  font-size: 0.9375rem;
}

.dashboard-stat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

@media (min-width: 640px) {
  .dashboard-stat-grid {
    gap: var(--space-2);
  }
}

.dashboard-stat-card {
  padding: var(--space-2) 1.1rem;
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--card) 93%, var(--bg));
  border: 1px solid color-mix(in srgb, var(--border) 42%, transparent);
  box-shadow: 0 2px 12px color-mix(in srgb, #000 12%, transparent);
}

.dashboard-stat-card__label {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.35rem;
}

.dashboard-stat-card__value {
  font-size: clamp(1.2rem, 4.5vw, 1.45rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  line-height: var(--line-min);
}

.dashboard-stat-card__value--profit {
  color: color-mix(in srgb, var(--success) 65%, var(--text));
}

.dashboard-analytics__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  cursor: pointer;
  font-weight: 600;
  font-size: 1rem;
  padding: 0.25rem 0;
  list-style: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.dashboard-analytics__summary-text {
  text-align: left;
  flex: 1;
  min-width: 0;
}

.dashboard-analytics__chevron {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: color-mix(in srgb, var(--muted) 90%, var(--text));
  font-size: 0.85rem;
  transition: transform 0.2s ease, color 0.15s ease;
}

.dashboard-analytics[open] .dashboard-analytics__chevron {
  transform: rotate(180deg);
  color: var(--accent);
}

.dashboard-analytics__summary::-webkit-details-marker,
.dashboard-analytics__summary::marker {
  display: none;
}

.dashboard-analytics__body {
  margin-top: var(--space-2);
  padding-top: var(--space-2);
  border-top: 1px solid color-mix(in srgb, var(--border) 55%, transparent);
}

.profit-chart-card--dashboard .profit-chart__bar--pos {
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent-dim) 80%, var(--card)), var(--accent));
}

@media (min-width: 769px) {
  .inventory-page__head {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }

  .inv-filter-bar {
    margin-left: 0;
    margin-right: 0;
    border-radius: var(--radius);
  }
}

.login-page__oauth-divider {
  text-align: center;
  margin: 0.75rem 0 0.25rem;
}

.admin-pw-rules {
  list-style: none;
  padding-left: 0;
  margin: 0.35rem 0 0;
  display: grid;
  gap: 0.2rem;
  font-size: 0.875rem;
}

.admin-pw-rules li.is-met {
  color: var(--success);
}

/* ——— Admin Users page ——— */
.admin-users-page {
  padding-inline: clamp(1rem, 2.5vw, 1.5rem);
  padding-block: clamp(1rem, 2vw, 1.5rem) 2rem;
  min-width: 0;
}

.admin-users-page.stack {
  gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

.admin-users-page-head {
  gap: 1rem 1.25rem;
  align-items: flex-start;
}

.admin-users-page-head .page-head__actions {
  flex-shrink: 0;
}

.admin-users-table-card {
  padding: clamp(1rem, 2.5vw, 1.5rem);
  gap: clamp(1rem, 2vw, 1.5rem);
  min-width: 0;
}

.admin-users-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 1rem 1.25rem;
  min-width: 0;
}

.admin-users-table-card__title {
  margin: 0;
  flex: 1 1 auto;
  min-width: min(100%, 12rem);
}

.admin-users-toolbar__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem 1rem;
  flex: 1 1 min(100%, 22rem);
  justify-content: flex-end;
  min-width: 0;
}

.admin-users-toolbar__search {
  flex: 1 1 min(100%, 18rem);
  min-width: 0;
  margin: 0;
}

.admin-users-toolbar__filter {
  flex: 1 1 min(100%, 10rem);
  min-width: min(100%, 9rem);
  max-width: min(100%, 16rem);
  margin: 0;
}

.admin-users-toolbar__controls input,
.admin-users-toolbar__controls select {
  min-height: 2.5em;
  padding-block: 0.5em;
  padding-inline: 0.65em;
}

@media (max-width: 52rem) {
  .admin-users-toolbar__controls {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
  }

  .admin-users-toolbar__search,
  .admin-users-toolbar__filter {
    flex: 1 1 auto;
    max-width: none;
  }
}

.admin-users-table-wrap {
  margin-top: 0.35rem;
  min-width: 0;
}

.table--admin-users {
  min-width: 0;
}

.table--admin-users tbody td {
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
  vertical-align: middle;
}

.admin-users-cell-email {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.admin-users-email-text {
  display: inline-block;
  max-width: 100%;
}

.admin-users-col--narrow {
  width: 1%;
  white-space: nowrap;
  text-align: center;
}

.admin-users-col--date {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.admin-users-col--actions {
  width: 1%;
  white-space: nowrap;
  text-align: right;
}

.admin-users-actions-cell {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.35rem;
  min-width: 0;
}

@media (max-width: 64rem) and (min-width: 48.0625rem) {
  .table--admin-users .admin-users-col--created,
  .table--admin-users thead .admin-users-col--created {
    display: none;
  }
}

@media (max-width: 52.5rem) and (min-width: 48.0625rem) {
  .table--admin-users .admin-users-col--last-login,
  .table--admin-users thead .admin-users-col--last-login {
    display: none;
  }
}

.admin-actions-dropdown {
  position: relative;
  flex: 0 0 auto;
}

.admin-users-actions-menu-toggle {
  padding: 0.5em 0.65em;
  min-width: max(2.75em, 2.75rem);
  min-height: max(2.75em, 2.75rem);
}

.admin-actions-dropdown__menu {
  position: absolute;
  right: 0;
  top: calc(100% + 0.2rem);
  z-index: 50;
  min-width: min(100vw - 2rem, 12.5em);
  padding: 0.25rem 0;
  margin: 0;
  list-style: none;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-modal);
}

.admin-actions-dropdown__form {
  margin: 0;
}

.admin-actions-dropdown__item {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.55em 0.9em;
  min-height: 2.75em;
  border: none;
  background: transparent;
  font: inherit;
  font-size: inherit;
  text-align: left;
  color: var(--text);
  cursor: pointer;
  text-decoration: none;
  line-height: var(--line-min);
}

.admin-actions-dropdown__item:hover,
.admin-actions-dropdown__item:focus-visible {
  background: color-mix(in srgb, var(--accent) 10%, transparent);
}

.admin-users-empty {
  margin: 0.75rem 0 0;
  padding: 0.65em 0;
  text-align: center;
}

@media (max-width: 48rem) {
  .admin-users-table-wrap {
    overflow-x: visible;
  }

  .table--admin-users {
    display: block;
    width: 100%;
  }

  .table--admin-users thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .table--admin-users tbody {
    display: block;
  }

  .table--admin-users tbody tr.admin-users-row {
    display: block;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1rem 1.1rem;
    margin-bottom: 1rem;
    background: var(--card);
    box-shadow: 0 1px 0 color-mix(in srgb, var(--border) 40%, transparent);
  }

  .table--admin-users tbody tr.admin-users-row:last-child {
    margin-bottom: 0;
  }

  .table--admin-users tbody td {
    display: grid;
    grid-template-columns: minmax(min(38%, 7.5rem), 40%) 1fr;
    gap: 0.35rem 0.85rem;
    padding: 0.55rem 0;
    border: none;
    border-bottom: 1px solid color-mix(in srgb, var(--border) 55%, transparent);
    align-items: start;
    text-align: left;
    vertical-align: top;
    white-space: normal;
  }

  .table--admin-users tbody td:last-child {
    border-bottom: none;
    padding-bottom: 0;
    padding-top: 0.75rem;
  }

  .table--admin-users tbody td::before {
    content: attr(data-label);
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--muted);
    font-weight: 600;
    line-height: 1.4;
    padding-top: 0.2em;
  }

  .table--admin-users .admin-users-col--actions {
    width: auto;
  }

  .table--admin-users .admin-users-actions-cell {
    justify-content: flex-end;
    width: 100%;
  }

  .table--admin-users .admin-users-col--date {
    text-align: left;
    white-space: normal;
  }

  .table--admin-users .admin-users-col--narrow {
    width: auto;
    text-align: left;
    white-space: normal;
  }
}

@media (max-width: 40rem) {
  .admin-users-col--date,
  .admin-users-col--narrow {
    font-size: 0.92em;
  }
}
