/* ═══════════════════════════════════════════════════
   ORODEX v3 — Design System
   ═══════════════════════════════════════════════════ */

/* --- Design Tokens (theme-agnostic) --- */
:root {
  /* --- Pass 1 (2026-06-09): vocabulary tokens, not yet applied --- */

  /* Spacing — 4px scale */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;

  /* Type scale */
  --text-label-sm: 9px;   /* tiny uppercase labels, table headers */
  --text-label: 10px;     /* standard uppercase labels */
  --text-ui: 11px;        /* .tiny, buttons, captions */
  --text-body: 13px;      /* inputs, body text */
  --text-md: 16px;        /* larger inputs, emphasis */
  --text-lg: 20px;        /* sub-headings */
  --text-value: 28px;     /* main result display */
  --text-display: 32px;   /* hero 18K display */

  /* Font stacks */
  --font-body: 'DM Sans',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  --font-label: 'Jost',sans-serif;
  --font-display: 'Cormorant Garamond',Georgia,serif;
  --font-mono: 'JetBrains Mono',monospace;

  /* Brand colors (literals lifted from .ce-* / .cat-* / .ig-* hardcodes) */
  --brand-forest: #2C3E2D;
  --brand-forest-hover: #3a4d3a;
  --brand-forest-dark: #1a2b1b;
  --brand-forest-muted: #5a6b5b;
  --brand-ivory: #F5F0E8;
  --brand-gold: #C9A96E;
  --brand-gold-hover: #b8924f;

  /* Radius — fill the 4px gap */
  --radius-xs: 4px;

  /* Shadow — forest-tinted (lifted from .ce-card:hover hardcode) */
  --shadow-forest: 0 3px 12px rgba(44,62,45,.18);
}

/* --- Theme Variables --- */
[data-theme="dark"] {
  --bg: #0a0a0b;
  --bg-elevated: #111113;
  --card: #141416;
  --card-hover: #1a1a1d;
  --ink: #e8e6e1;
  --ink-strong: #f5f4f1;
  --muted: #737373;
  --muted-light: #525252;
  --line: #222225;
  --line-hover: #333338;
  --gold: #c9a44a;
  --gold-dim: #a68938;
  --gold-light: rgba(201,164,74,.10);
  --gold-glow: rgba(201,164,74,.20);
  --gold-text: #dbb85c;
  --green: #22c55e;
  --green-bg: rgba(34,197,94,.08);
  --green-border: rgba(34,197,94,.20);
  --green-text: #4ade80;
  --red: #ef4444;
  --red-bg: rgba(239,68,68,.08);
  --amber: #f59e0b;
  --surface-glass: rgba(255,255,255,.03);
  --shadow-sm: 0 1px 3px rgba(0,0,0,.3);
  --shadow-md: 0 4px 16px rgba(0,0,0,.4);
  --shadow-lg: 0 12px 40px rgba(0,0,0,.5);
  --shadow-gold: 0 4px 20px rgba(201,164,74,.12);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-pill: 999px;
}

[data-theme="light"] {
  --bg: #f7f6f3;
  --bg-elevated: #fafaf8;
  --card: #ffffff;
  --card-hover: #fafaf8;
  --ink: #1a1a1a;
  --ink-strong: #0a0a0a;
  --muted: #808080;
  --muted-light: #b0b0b0;
  --line: #e5e5e5;
  --line-hover: #d4d4d4;
  --gold: #a07928;
  --gold-dim: #8b6914;
  --gold-light: rgba(160,121,40,.10);
  --gold-glow: rgba(160,121,40,.18);
  --gold-text: #8b6914;
  --green: #16a34a;
  --green-bg: rgba(22,163,74,.06);
  --green-border: rgba(22,163,74,.25);
  --green-text: #166534;
  --red: #dc2626;
  --red-bg: rgba(220,38,38,.06);
  --amber: #d97706;
  --surface-glass: rgba(0,0,0,.02);
  --shadow-sm: 0 1px 3px rgba(0,0,0,.06);
  --shadow-md: 0 4px 16px rgba(0,0,0,.08);
  --shadow-lg: 0 12px 40px rgba(0,0,0,.10);
  --shadow-gold: 0 4px 20px rgba(160,121,40,.10);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-pill: 999px;
}

/* --- Animations --- */
@keyframes fadeIn { from { opacity:0; transform:translateY(8px) } to { opacity:1; transform:translateY(0) } }
@keyframes fadeInUp { from { opacity:0; transform:translateY(16px) } to { opacity:1; transform:translateY(0) } }
@keyframes slideIn { from { opacity:0; transform:translateX(-8px) } to { opacity:1; transform:translateX(0) } }
@keyframes livePulse { 0%,100% { box-shadow:0 0 0 0 rgba(34,197,94,.35) } 50% { box-shadow:0 0 0 6px rgba(34,197,94,0) } }
@keyframes shimmer { 0% { background-position:-200% 0 } 100% { background-position:200% 0 } }
@keyframes toastIn { from { opacity:0; transform:translateX(-50%) translateY(20px) scale(.95) } to { opacity:1; transform:translateX(-50%) translateY(0) scale(1) } }
@keyframes toastOut { from { opacity:1; transform:translateX(-50%) translateY(0) } to { opacity:0; transform:translateX(-50%) translateY(20px) } }
@keyframes goldShine { 0% { background-position:200% center } 50% { background-position:0% center } 100% { background-position:200% center } }
@keyframes slotRoll { 0% { transform:translateY(0); opacity:1 } 30% { transform:translateY(-6px); opacity:.7; filter:blur(1px) } 70% { transform:translateY(3px); opacity:.85 } 100% { transform:translateY(0); opacity:1; filter:blur(0) } }
@keyframes orxBump { 0% { transform:scale(1) } 35% { transform:scale(1.02) } 100% { transform:scale(1) } }
@keyframes orxPulse { 0% { box-shadow:0 0 0 4px rgba(201,164,74,.15) } 50% { box-shadow:0 0 0 7px rgba(201,164,74,.25) } 100% { box-shadow:0 0 0 4px rgba(201,164,74,.15) } }
@keyframes borderPulse { 0%,100% { box-shadow:0 0 0 3px var(--gold-light) } 50% { box-shadow:0 0 0 5px var(--gold-glow) } }
@keyframes valueFlash { 0% { filter:brightness(1) } 30% { filter:brightness(1.15) } 100% { filter:brightness(1) } }

/* --- Reset & Base --- */
*,*::before,*::after { box-sizing:border-box; margin:0 }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100% }
body {
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  line-height:1.5;
  transition:background .3s ease,color .3s ease;
}
::selection { background:var(--gold-light); color:var(--ink-strong) }
:focus-visible { outline:2px solid var(--gold); outline-offset:2px }

/* --- Layout --- */
.wrap { max-width:980px; margin:0 auto; padding:10px 12px 14px }
.card {
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);
  overflow:hidden;
  transition:background .3s ease,border-color .3s ease;
}

/* --- Topbar --- */
.topbar { padding:12px 16px 10px; border-bottom:1px solid var(--line) }
.brand { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; flex-wrap:wrap }
.logo { display:flex; flex-direction:column; gap:0 }
.logo .odeon {
  font-weight:800; letter-spacing:.28em; font-size:20px; text-transform:uppercase;
  background:linear-gradient(90deg,var(--ink-strong) 0%,var(--ink-strong) 35%,var(--gold) 50%,var(--ink-strong) 65%,var(--ink-strong) 100%);
  background-size:300% auto;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:goldShine 8s ease-in-out infinite; cursor:default;
}
.logo .odeon:hover { animation-duration:2.5s }
.logo .collection {
  font-weight:600; letter-spacing:.04em; font-size:10px; color:var(--muted);
  transition:letter-spacing .25s ease,opacity .25s ease; opacity:.7;
}
.logo:hover .collection { letter-spacing:.08em; opacity:1 }

.meta { text-align:right; font-size:12px; color:var(--muted); line-height:1.5 }
.meta b { color:var(--ink-strong); font-weight:700; transition:color .15s }
.meta b:hover { color:var(--gold-text) }

/* Theme toggle */
.theme-toggle {
  appearance:none; border:1px solid var(--line); background:var(--surface-glass);
  width:36px; height:36px; border-radius:var(--radius-sm); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  font-size:16px; transition:all .2s ease; color:var(--muted);
  flex-shrink:0;
}
.theme-toggle:hover { border-color:var(--gold); color:var(--gold-text); background:var(--gold-light) }

/* World clock ticker */
.clock-ticker {
  display:flex; gap:0; margin-top:8px; border:1px solid var(--line); border-radius:var(--radius-md);
  overflow-x:auto; -webkit-overflow-scrolling:touch; background:var(--bg);
}
.clock-ticker::-webkit-scrollbar { height:0 }
.clock-city {
  flex:1; min-width:0; padding:5px 8px; text-align:center;
  border-right:1px solid var(--line); transition:background .15s;
}
.clock-city:last-child { border-right:none }
.clock-city:hover { background:var(--surface-glass) }
.clock-city .city-name { font-size:9px; font-weight:700; color:var(--muted); letter-spacing:.06em; text-transform:uppercase }
.clock-city .city-time {
  font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:600;
  color:var(--ink); margin-top:1px; font-variant-numeric:tabular-nums;
}
.clock-city .city-weather { font-size:9px; color:var(--muted); margin-top:0 }

/* Diagnostics */
.diag-toggle {
  appearance:none; border:1px solid var(--line); background:var(--surface-glass);
  padding:4px 10px; border-radius:var(--radius-pill); font-size:10px; color:var(--muted);
  cursor:pointer; font-weight:600; transition:all .15s; font-family:inherit;
}
.diag-toggle:hover { border-color:var(--line-hover); color:var(--ink) }
.diag-body {
  margin-top:8px; padding:10px 12px; border:1px solid var(--line); border-radius:var(--radius-md);
  background:var(--bg); font-size:11px; color:var(--muted); display:none; font-family:'JetBrains Mono',monospace;
}
.diag-body.show { display:block; animation:fadeIn .2s ease-out }

/* Market status */
.market-line { font-size:11px; font-weight:650; letter-spacing:.02em }
.market-line.open { color:var(--green-text); display:inline-flex; align-items:center; gap:6px }
.market-line.open::before {
  content:''; width:6px; height:6px; background:var(--green); border-radius:50%;
  animation:livePulse 2s ease-in-out infinite;
}
.market-line.closed { color:var(--red) }

/* Sparkline */
#sparklineWrap { border-top:1px solid var(--line); padding-top:10px }
#sparklineWrap svg { display:block }

/* 24h change badge */
#spotChangeBadge { font-size:11px; font-weight:700; padding:2px 7px; border-radius:var(--radius-pill); letter-spacing:.02em }
#spotChangeBadge.up { background:var(--green-bg); color:var(--green-text); border:1px solid var(--green-border) }
#spotChangeBadge.dn { background:#fef2f2; color:var(--red); border:1px solid #fecaca }
@media (prefers-color-scheme:dark){ #spotChangeBadge.dn { background:#450a0a; border-color:#7f1d1d } }

/* Live indicator */
.live-indicator {
  display:inline-flex; align-items:center; gap:5px; padding:3px 8px;
  background:var(--green-bg); border:1px solid var(--green-border); border-radius:var(--radius-pill);
  font-size:9px; font-weight:700; color:var(--green-text); text-transform:uppercase; letter-spacing:.05em;
}
.live-indicator::before {
  content:''; width:5px; height:5px; background:var(--green); border-radius:50%;
  animation:livePulse 2s ease-in-out infinite;
}
.live-dot {
  display:inline-block; width:6px; height:6px; background:var(--green); border-radius:50%;
  margin-right:4px; animation:livePulse 2s ease-in-out infinite;
}

/* --- Tabs --- */
.tabs {
  display:flex; flex-wrap:wrap; gap:10px 0; align-items:center;
  padding:8px 0; margin:8px 16px 0; border-bottom:1px solid var(--line);
}
.tab-group {
  display:inline-flex; align-items:center; gap:8px;
  padding:0 14px;
}
.tab-group:first-child { padding-left:0 }
.tab-group:not(:last-child) { border-right:1px solid var(--line) }
.tab-group-label {
  font-family:'Jost',sans-serif; font-size:10px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--brand-gold);
}
.tab-group-tabs { display:inline-flex; align-items:center; gap:4px; }

.tabbtn {
  appearance:none; border:0; background:transparent;
  color:var(--brand-forest);
  padding:7px 12px;
  font-size:11px; font-weight:600; letter-spacing:.02em;
  font-family:inherit;
  cursor:pointer; white-space:nowrap;
  display:inline-flex; align-items:center; gap:6px;
  border-radius:var(--radius-sm);
  transition:background .15s, color .15s;
}
.tabbtn:hover { background:rgba(44,62,45,.06) }
.tabbtn.active {
  background:var(--brand-forest);
  color:var(--brand-ivory);
}
.tab-icon { width:14px; height:14px; flex-shrink:0 }

.tabhint { margin:0 16px; padding:5px 0; font-size:10px; color:var(--muted) }

/* --- Body / Panels --- */
.body { padding:12px 16px 16px }
.panel {
  border:1px solid var(--line); border-radius:var(--radius-lg); padding:14px;
  background:var(--card); animation:fadeInUp .35s ease-out; transition:background .3s,border-color .3s;
}
.panel h2 {
  margin:0 0 10px; font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted); display:flex; align-items:center; gap:8px;
}
.panel h2::after { content:''; flex:1; height:1px; background:var(--line) }

/* --- Forms --- */
.grid { display:grid; gap:8px }
.grid.cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)) }
.grid.cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)) }
@media (max-width:760px) { .grid.cols-2,.grid.cols-3 { grid-template-columns:1fr } }

label { display:block; font-size:10px; color:var(--muted); margin-bottom:4px; font-weight:500 }
input,select,textarea {
  width:100%; padding:8px 10px; border-radius:var(--radius-sm);
  border:1px solid var(--line); font-size:13px; font-family:inherit;
  background:var(--bg); color:var(--ink); transition:all .15s;
  font-variant-numeric:tabular-nums;
}
textarea { min-height:72px; resize:vertical }
input:hover,select:hover { border-color:var(--line-hover) }
input:focus,select:focus,textarea:focus {
  outline:none; border-color:var(--gold);
  box-shadow:0 0 0 3px var(--gold-light);
}
input::placeholder { color:var(--muted-light) }

.row { display:flex; gap:8px; align-items:center }
.row > * { flex:1 }
@media (max-width:760px) { .row { flex-direction:column; align-items:stretch } .row > * { width:100% } }
.row > select { min-width:110px }

/* --- Buttons --- */
.btn {
  appearance:none; border:1px solid var(--line); background:var(--bg-elevated);
  color:var(--ink); padding:7px 12px; border-radius:var(--radius-sm);
  font-weight:600; font-size:11px; cursor:pointer; transition:all .15s;
  font-family:inherit; white-space:nowrap; display:inline-flex; align-items:center;
  justify-content:center; gap:5px;
}
.btn:hover { border-color:var(--line-hover); background:var(--card-hover); transform:translateY(-1px); box-shadow:var(--shadow-sm) }
.btn:active { transform:translateY(0); box-shadow:none }

.btn.primary {
  background:var(--ink-strong); border-color:var(--ink-strong); color:var(--bg);
}
.btn.primary:hover { opacity:.9 }

.btn.gold {
  background:var(--gold-light); border-color:var(--gold-dim);
  color:var(--gold-text); font-weight:700;
}
.btn.gold:hover { background:var(--gold-glow); box-shadow:var(--shadow-gold) }

.btn.tiny { padding:4px 8px; font-size:10px }

/* --- Results --- */
.divider { height:1px; background:var(--line); margin:10px 0 }
.result {
  margin-top:10px; border-radius:var(--radius-md); border:1px solid var(--line);
  background:var(--bg-elevated); padding:12px; position:relative; overflow:hidden;
  transition:all .2s;
}
.result::before {
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg,transparent,var(--gold-dim),transparent); opacity:0; transition:opacity .3s;
}
.result:hover { border-color:var(--line-hover) }
.result:hover::before { opacity:.6 }
.sub {
  font-size:9px; color:var(--muted); text-transform:uppercase;
  letter-spacing:.08em; font-weight:600;
}
.value {
  font-family:'JetBrains Mono','DM Sans',monospace;
  font-size:28px; font-weight:700; letter-spacing:-.02em;
  margin:4px 0 2px; display:inline-block; position:relative;
  color:var(--ink-strong); font-variant-numeric:tabular-nums;
  transition:color .15s;
}
.value:hover { color:var(--gold-text) }
.value.sm { font-size:18px }
.value.updating { animation:valueFlash .4s ease }
.value.slot-update { animation:slotRoll .35s ease forwards }

.tiny { font-size:11px }
.muted { color:var(--muted) }
.hidden { display:none !important }

/* --- Signature line --- */
.sigline {
  margin-top:8px; padding:10px 12px; border-radius:var(--radius-sm);
  border:1px solid var(--line); background:var(--bg);
  font-size:11px; line-height:1.5; color:var(--ink); font-weight:600;
}
.sigline:hover { border-color:var(--gold-dim) }

/* --- Required badge --- */
.req {
  display:inline-flex; align-items:center; padding:3px 8px;
  border-radius:var(--radius-pill); border:1px solid var(--gold-dim);
  background:var(--gold-light); font-size:10px; color:var(--gold-text); font-weight:700;
}

/* --- Table --- */
table { width:100%; border-collapse:collapse; font-size:12px }
th,td { padding:7px 8px; border-top:1px solid var(--line); text-align:left; vertical-align:top }
th {
  font-size:9px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted); font-weight:600; background:var(--bg);
}
tbody tr { transition:background .1s }
tbody tr:hover { background:var(--surface-glass) }
.right { text-align:right }

/* --- KPI pills --- */
.kpi { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px }
.kpi .pill {
  border:1px solid var(--line); background:var(--bg-elevated);
  border-radius:var(--radius-pill); padding:5px 10px; font-size:11px;
  font-variant-numeric:tabular-nums; transition:all .15s;
}
.kpi .pill:hover { border-color:var(--line-hover) }
.kpi .pill strong { font-family:'JetBrains Mono',monospace; font-weight:600 }

/* --- Toast --- */
#toast {
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%);
  background:var(--ink-strong); color:var(--bg); padding:10px 18px;
  border-radius:var(--radius-md); font-size:12px; font-weight:600;
  display:none; z-index:1000; box-shadow:var(--shadow-lg);
  border:1px solid rgba(255,255,255,.1);
}
#toast.show { display:block; animation:toastIn .3s cubic-bezier(.34,1.56,.64,1) forwards }
#toast.hide { animation:toastOut .25s ease-out forwards }

/* --- Shimmer loading --- */
.loading {
  background:linear-gradient(90deg,var(--line) 25%,var(--line-hover) 50%,var(--line) 75%);
  background-size:200% 100%; animation:shimmer 1.5s ease-in-out infinite;
  border-radius:var(--radius-sm);
}

/* --- ORODEX Hero Index --- */
.hero-spark-row { display:flex; gap:10px; margin-top:10px; align-items:stretch }
@media(max-width:540px){ .hero-spark-row { flex-direction:column } }
.orodex-hero {
  padding:12px 14px;
  border:1px solid var(--line); border-radius:var(--radius-md);
  background:var(--bg-elevated); transition:all .2s;
}
.orodex-hero:hover { border-color:var(--line-hover); box-shadow:var(--shadow-sm) }
.orx-top { display:flex; align-items:center; justify-content:space-between; gap:8px }
.orx-title { font-weight:800; letter-spacing:.18em; font-size:10px; color:var(--muted) }
.orx-pill {
  border:1px solid var(--green-border); background:var(--green-bg);
  color:var(--green-text); font-size:9px; padding:3px 7px;
  border-radius:var(--radius-pill); letter-spacing:.08em; font-weight:600;
}
.orx-sub { margin-top:2px; font-size:11px; color:var(--muted) }
.orx-main { margin-top:8px; display:flex; align-items:baseline; justify-content:space-between; gap:10px }
.orx-value {
  font-family:'JetBrains Mono',monospace; font-variant-numeric:tabular-nums;
  font-size:32px; font-weight:700; line-height:1; letter-spacing:-.03em; color:var(--ink-strong);
}
.orx-unit { font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums; text-align:right }
.orx-band { margin-top:8px; padding-top:8px; border-top:1px solid var(--line) }
.orx-band-row { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:6px }
.orx-bar { position:relative; height:6px; border-radius:var(--radius-pill); background:var(--line); overflow:hidden }
.orx-fill { position:absolute; inset:0; background:linear-gradient(90deg,rgba(34,197,94,.20),rgba(201,164,74,.15)) }
.orx-marker {
  position:absolute; top:50%; transform:translate(-50%,-50%);
  width:3px; height:14px; background:var(--ink-strong); border-radius:var(--radius-pill);
  box-shadow:0 0 0 3px var(--gold-light); transition:left 400ms cubic-bezier(.2,.9,.2,1);
}
.orx-foot { margin-top:6px; display:flex; justify-content:space-between; gap:8px; align-items:center }
.orx-note { font-size:10px; color:var(--muted); font-weight:650 }
.orx-bump { animation:orxBump 260ms ease-out }
.orx-pulse { animation:orxPulse 420ms ease-out }

/* --- Bench card (signed pieces) --- */
.bench-card {
  margin-top:10px; padding:12px; border:1px solid var(--line);
  border-radius:var(--radius-md); background:var(--bg); transition:all .2s;
}
.bench-card:hover { border-color:var(--line-hover) }
.bench-header { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:8px }
.bench-maison { font-size:13px; font-weight:700; color:var(--ink-strong) }
.bench-conf {
  font-size:10px; font-weight:600; padding:3px 8px;
  border-radius:var(--radius-pill); letter-spacing:.04em;
}
.bench-conf.high { background:var(--green-bg); color:var(--green-text); border:1px solid var(--green-border) }
.bench-conf.med { background:rgba(245,158,11,.08); color:var(--amber); border:1px solid rgba(245,158,11,.2) }
.bench-conf.low { background:var(--red-bg); color:var(--red); border:1px solid rgba(239,68,68,.2) }
.bench-stats { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:10px }
.bench-stat-label { font-size:9px; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; font-weight:500 }
.bench-stat-value { font-family:'JetBrains Mono',monospace; font-size:16px; font-weight:700; margin-top:1px; font-variant-numeric:tabular-nums }
.bench-bar-wrap { position:relative; height:6px; border-radius:var(--radius-pill); background:var(--line); margin:6px 0 }
.bench-bar-fill { position:absolute; top:0; bottom:0; border-radius:var(--radius-pill); background:linear-gradient(90deg,var(--green-bg),var(--gold-light)) }
.bench-bar-marker { position:absolute; top:50%; width:3px; height:14px; background:var(--ink-strong); border-radius:2px; transform:translate(-50%,-50%); box-shadow:0 0 0 3px var(--gold-light) }
.bench-bar-labels { display:flex; justify-content:space-between; font-size:9px; color:var(--muted); font-family:'JetBrains Mono',monospace }
.bench-signal { margin-top:6px; padding:6px 10px; border-radius:var(--radius-sm); font-size:11px; font-weight:600 }
.bench-signal.far-low,.bench-signal.far-high { background:var(--red-bg); color:var(--red) }
.bench-signal.low,.bench-signal.high { background:rgba(245,158,11,.08); color:var(--amber) }
.bench-signal.match { background:var(--green-bg); color:var(--green-text) }
.bench-note { margin-top:8px; font-size:10px; color:var(--muted); line-height:1.45 }

/* --- Session bar --- */

/* --- Diagnostics log --- */
.diaglog { border:1px solid var(--line); background:var(--card); border-radius:var(--radius-lg); padding:12px; min-height:120px; white-space:pre-wrap; font-family:'JetBrains Mono',monospace; font-size:12px }

/* --- Contact --- */
.contact { margin:10px 16px 4px; font-size:10px; color:var(--muted) }
.contact a { color:var(--ink); text-decoration:none; font-weight:600; margin-left:4px; transition:color .15s }
.contact a:hover { color:var(--gold-text) }
.contact .dot { margin:0 8px; opacity:.4 }

/* --- Keyboard shortcuts hint --- */
.kbd-hint {
  position:fixed; bottom:24px; right:24px; z-index:900;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:8px 12px; font-size:11px; color:var(--muted); opacity:0;
  transform:translateY(8px); transition:all .25s ease; pointer-events:none;
  box-shadow:var(--shadow-md); font-family:'JetBrains Mono',monospace;
}
.kbd-hint.show { opacity:1; transform:translateY(0); pointer-events:auto }
.kbd-hint kbd {
  display:inline-block; padding:1px 5px; border:1px solid var(--line);
  border-radius:4px; background:var(--bg); font-size:10px; margin:0 2px;
}

/* --- Print --- */
#printHeader { display:none; padding:10px 0 14px; border-bottom:1px solid #ccc; margin-bottom:12px }
#printHeader .ph-title { font-weight:900; letter-spacing:.12em; font-size:18px; color:#000 }
#printHeader .ph-sub { margin-top:4px; font-size:11px; color:#666; line-height:1.35 }
@media print {
  html { --bg:#fff; --card:#fff; --ink:#000; --muted:#666; --line:#ddd; --bg-elevated:#f5f5f5 }
  #printHeader { display:block }
  body { background:#fff }
  .wrap { width:100%; padding:0 }
  .card { box-shadow:none; border:none }
  .tabbtn,.btn,.theme-toggle,.kbd-hint,.clock-ticker { display:none !important }
  #toast { display:none !important }
  *,*::before,*::after { animation:none !important; transition:none !important }
}

/* --- Gold panel layout (desktop) --- */
@media (min-width:700px) {
  #panel-gold .specs-row { display:flex; gap:8px; align-items:flex-end }
  #panel-gold .specs-row > div { flex:0 0 auto }
  #panel-gold .specs-row .weight { flex:1 1 130px }
  #panel-gold .specs-row .unit { flex:0 0 80px }
  #panel-gold .specs-row .purity { flex:0 0 100px }
  #panel-gold .specs-row .custom { flex:0 0 130px }
}
#panel-gold .divider { margin:10px 0 }
#panel-gold .result .value { font-size:24px }
#panel-gold .result .value.sm { font-size:16px }

/* Auction */
#auctionBreakdown { white-space:pre-wrap; font-family:'JetBrains Mono',monospace }

/* Scrollbar */
::-webkit-scrollbar { width:6px; height:6px }
::-webkit-scrollbar-track { background:transparent }
::-webkit-scrollbar-thumb { background:var(--muted-light); border-radius:var(--radius-pill) }
::-webkit-scrollbar-thumb:hover { background:var(--muted) }

/* --- Responsive --- */
@media (max-width:768px) {
  .wrap { padding:6px }
  .topbar { padding:10px 10px 8px }
  .brand { flex-direction:column; gap:6px }
  .logo .odeon { font-size:15px }
  .meta { text-align:left; font-size:10px }
  .tabs { margin:6px 10px 0 }
  .tabbtn { font-size:10px; padding:6px 10px 8px }
  .body { padding:8px 10px 12px }
  .panel { padding:10px }
  .grid { gap:6px }
  label { font-size:9px }
  input,select,textarea { padding:7px 8px; font-size:12px }
  .result { padding:10px }
  .value { font-size:20px }
  .value.sm { font-size:14px }
  .btn { padding:6px 8px; font-size:10px }
  .sub { font-size:8px }
  .panel h2 { font-size:10px }
  .clock-city { padding:4px 4px }
  .clock-city .city-time { font-size:11px }
  .clock-city .city-name { font-size:7px }
  .orodex-hero { max-width:100% }
  .orx-value { font-size:24px }
}
@media (max-width:480px) {
  .wrap { padding:4px }
  .topbar { padding:8px 8px 6px }
  .logo .odeon { font-size:13px; letter-spacing:.14em }
  .tabs { margin:4px 8px 0 }
  .tabbtn { font-size:9px; padding:5px 8px 7px }
  .body { padding:6px 8px 10px }
  .value { font-size:18px }
  .btn { padding:5px 7px; font-size:9px }
}

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

/* Comps */
.comps-modal-overlay { position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;padding:16px }
.comps-modal-overlay.open { display:flex }
.comps-modal-inner { background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(560px,100%);max-height:85vh;overflow-y:auto;padding:20px }
.comps-vs.up { color:var(--green-text) }
.comps-vs.dn { color:var(--red) }
.comps-img { width:100%;max-height:220px;object-fit:contain;border-radius:var(--radius-md);margin:10px 0;background:var(--bg) }
.comps-shimmer { height:12px;border-radius:6px;margin-bottom:8px }

/* Auth overlay */
.auth-overlay { position:fixed;inset:0;z-index:9999;background:var(--bg);display:flex;align-items:center;justify-content:center }
.auth-card { text-align:center;padding:44px 32px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(340px,90vw);box-shadow:var(--shadow-md) }
.auth-logo { font-size:22px;font-weight:900;letter-spacing:.18em;color:var(--gold-text) }
.auth-tagline { font-size:11px;color:var(--muted);margin-top:3px;margin-bottom:30px }
.auth-input { width:100%;padding:11px 14px;font-size:15px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--ink);box-sizing:border-box;text-align:center;letter-spacing:.12em;margin-bottom:10px;transition:border-color .15s }
.auth-input:focus { outline:none;border-color:var(--gold) }
.auth-btn { width:100%;padding:11px;font-size:13px;font-weight:700;background:var(--ink-strong);color:var(--bg);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .15s }
.auth-btn:hover { opacity:.82 }
.auth-error { font-size:12px;color:var(--red);margin-top:10px;min-height:16px }
@keyframes authShake { 0%,100%{transform:translateX(0)} 20%{transform:translateX(-9px)} 40%{transform:translateX(9px)} 60%{transform:translateX(-6px)} 80%{transform:translateX(6px)} }
.auth-shake { animation:authShake .4s ease-out }

/* Legal */
.legal { font-size:11px; line-height:1.55; color:var(--muted); opacity:.9 }
.coming-soon { margin-top:12px; font-size:12px; color:var(--muted); opacity:.85 }

/* ─── Catalogue (Upcoming) cards ─────────────────────────────────────────── */
#upcomingGrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:18px; }
.cat-card { background:#f8f6f0; border:1px solid #e2dbd0; border-radius:10px; overflow:hidden;
  box-shadow:0 2px 8px rgba(0,0,0,.07); display:flex; flex-direction:column;
  transition:box-shadow .18s,transform .18s; }
.cat-card:hover { box-shadow:0 6px 20px rgba(0,0,0,.13); transform:translateY(-2px); }
.cat-card-img-wrap { width:100%; aspect-ratio:4/3; overflow:hidden; background:#e8e2d6; position:relative; }
.cat-card-img-wrap img { width:100%; height:100%; object-fit:cover; display:block; }
.cat-card-img-wrap .cat-no-img { width:100%; height:100%; display:flex; align-items:center;
  justify-content:center; font-size:36px; color:#b8a898; background:linear-gradient(135deg,#ede8df,#ddd6c8); }
.cat-card-body { padding:13px 15px 15px; flex:1; display:flex; flex-direction:column; }
.cat-maison { font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
  color:#b08a3c; margin-bottom:4px; }
.cat-title { font-family:Georgia,serif; font-size:13.5px; font-weight:700; line-height:1.38;
  color:#1a1408; margin-bottom:7px; }
.cat-meta { font-size:11px; color:#7a7060; line-height:1.4; margin-bottom:3px; }
.cat-date { font-size:12px; font-weight:700; color:var(--brand-forest); margin-bottom:6px; }
.cat-est { font-size:13px; font-weight:700; color:#1a1408; margin-bottom:8px;
  font-variant-numeric:tabular-nums; }
.cat-desc { font-size:11px; line-height:1.52; color:#524840; flex:1; margin-bottom:10px;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.cat-desc.open { display:block; -webkit-line-clamp:unset; }
.cat-footer { display:flex; gap:7px; margin-top:auto; }
.cat-btn { flex:1; padding:7px 10px; font-size:11.5px; font-weight:700; border-radius:5px;
  border:none; cursor:pointer; text-decoration:none; text-align:center; display:block;
  transition:opacity .15s; }
.cat-btn-view { background:var(--brand-forest); color:var(--brand-ivory); }
.cat-btn-view:hover { opacity:.84; }
.cat-btn-more { background:transparent; border:1px solid #c8bfad !important;
  color:#7a7060; border-radius:5px; padding:7px 10px; font-size:11px; cursor:pointer;
  white-space:nowrap; }
.cat-btn-more:hover { background:#ede8df; }
@media(max-width:500px){ #upcomingGrid { grid-template-columns:1fr; } }

/* ─── Intel view toggle ───────────────────────────────────────────────────── */
.view-toggle { display:flex; gap:4px; }
.view-btn { background:none; border:1px solid var(--line); border-radius:var(--radius-sm); padding:5px 9px; cursor:pointer; color:var(--muted); font-size:15px; line-height:1; transition:all .15s; }
.view-btn:hover { border-color:var(--line-hover); color:var(--ink); }
.view-btn.active { background:var(--gold-light); border-color:var(--gold-dim); color:var(--gold-text); }

/* ─── Intel gallery ──────────────────────────────────────────────────────── */
#compsGallery { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
@media(max-width:860px){ #compsGallery { grid-template-columns:repeat(3,1fr); } }
@media(max-width:580px){ #compsGallery { grid-template-columns:repeat(2,1fr); } }
.ig-card { background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; cursor:pointer; transition:box-shadow .18s,transform .18s; display:flex; flex-direction:column; }
.ig-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.ig-img-wrap { width:100%; background:var(--bg-elevated); overflow:hidden; }
.ig-img-wrap img { width:100%; aspect-ratio:1/1; object-fit:cover; display:block; }
.ig-placeholder { aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; font-size:26px; color:var(--muted-light); background:var(--bg-elevated); }
.ig-body { padding:9px 11px 11px; display:flex; flex-direction:column; gap:3px; flex:1; }
.ig-maison { font-size:8.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-text); }
.ig-title { font-size:11px; font-weight:600; line-height:1.35; color:var(--ink-strong); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ig-meta { font-size:9.5px; color:var(--muted); }
.ig-price { font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:700; color:var(--ink-strong); font-variant-numeric:tabular-nums; margin-top:3px; }
.ig-vs { font-size:9.5px; font-weight:600; }
.ig-vs.up { color:var(--green-text); }
.ig-vs.dn { color:var(--red); }

/* ─── Sort bar (Upcoming) ─────────────────────────────────────────────────── */
.sort-bar { display:flex; flex-wrap:wrap; gap:5px; align-items:center; margin-bottom:12px; }
.sort-bar-label { font-size:10px; color:var(--muted); margin-right:2px; }
.sort-pill { background:none; border:1px solid var(--line); border-radius:var(--radius-pill); padding:3px 11px; font-size:10px; font-weight:600; cursor:pointer; color:var(--muted); white-space:nowrap; transition:all .15s; user-select:none; font-family:inherit; }
.sort-pill:hover { border-color:var(--line-hover); color:var(--ink); }
.sort-pill.active { background:var(--gold-light); border-color:var(--gold-dim); color:var(--gold-text); }

/* ─── Comp Engine ─────────────────────────────────────────── */
.ce-filter-box {
  background:var(--brand-ivory); border:1.5px solid var(--brand-forest); border-radius:10px;
  padding:18px 20px 14px; margin-bottom:14px;
}
.ce-grid {
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px 20px; margin-bottom:12px;
}
.ce-label { display:flex; flex-direction:column; gap:4px; }
.ce-label-txt {
  font-family:'Jost',sans-serif; font-size:11px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--brand-forest);
}
.ce-select, .ce-refine-input {
  font-family:'Cormorant Garamond',Georgia,serif; font-size:16px;
  border:1px solid var(--brand-forest); border-radius:6px; padding:6px 10px;
  background:#fff; color:#1a1a1a; width:100%;
}
.ce-refine-row { display:flex; gap:12px; align-items:flex-end; }
.ce-refine-row .ce-label { flex:1; }
.ce-run-btn {
  font-family:'Jost',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:.07em; text-transform:uppercase;
  background:#C9A96E; color:#fff; border:none; border-radius:6px;
  padding:10px 20px; cursor:pointer; white-space:nowrap;
  transition:background .15s, opacity .15s; flex-shrink:0;
}
.ce-run-btn:hover { background:#b8924f; }
.ce-run-btn:disabled { opacity:.5; cursor:not-allowed; }
.ce-error { color:#dc2626; font-size:13px; margin-top:8px; display:none; }
.ce-filter-toggle { background:none; border:none; padding:0; cursor:pointer; font-family:'Jost',sans-serif; font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:#C9A96E; line-height:1; }
.ce-filter-toggle:hover { color:#b8924f; }
.ce-section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.ce-section-header h2 { margin:0; }
.ce-filter-box.collapsed { display:none; }
.ce-pills-wrap { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.ce-pill {
  font-family:'Jost',sans-serif; font-size:11px; padding:4px 12px;
  border:1px solid var(--brand-forest); border-radius:999px; background:var(--brand-ivory);
  color:var(--brand-forest); cursor:pointer; transition:all .15s;
}
.ce-pill:hover { background:#C9A96E; color:#fff; border-color:#C9A96E; }
.ce-report-cols {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:14px;
  width:100%; max-width:100%; overflow:hidden;
}
.ce-col {
  background:var(--brand-ivory); border:1.5px solid var(--brand-forest); border-radius:10px; padding:16px;
  display:flex; flex-direction:column; gap:0;
  min-width:0; overflow:hidden; word-wrap:break-word;
}
.ce-col-head {
  font-family:'Cormorant Garamond',Georgia,serif; font-size:17px; font-weight:600;
  color:var(--brand-forest); margin-bottom:12px; padding-bottom:8px;
  border-bottom:1px solid rgba(44,62,45,.2);
}
.ce-stat-grid { display:flex; flex-direction:column; gap:5px; margin-bottom:12px; }
.ce-stat-row { display:flex; justify-content:space-between; align-items:baseline; gap:8px; font-size:13px; }
.ce-stat-l { font-family:'Jost',sans-serif; font-size:10px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#5a6b5b; white-space:nowrap; }
.ce-stat-v { font-family:'Jost',sans-serif; font-weight:600; color:#1a1a1a; text-align:right; }
.ce-gold { color:#8b6914; font-weight:700; }
.ce-median-row { padding:3px 6px; background:rgba(201,169,110,.18); border-radius:4px; }
.ce-muted { color:#888; font-weight:400; }
.ce-mini-table-head {
  font-family:'Jost',sans-serif; font-size:10px; font-weight:700;
  letter-spacing:.07em; text-transform:uppercase; color:var(--brand-forest); margin:10px 0 4px;
}
.ce-mini-table { width:100%; border-collapse:collapse; font-size:11px; table-layout:fixed; }
.ce-mini-table td, .ce-mini-table th { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ce-mini-table th { text-align:left; font-family:'Jost',sans-serif; font-size:10px; font-weight:600; color:#888; padding:2px 4px; border-bottom:1px solid rgba(44,62,45,.2); }
.ce-mini-table td { padding:3px 4px; border-bottom:1px solid rgba(44,62,45,.07); vertical-align:top; }
.ce-house-list { list-style:none; padding:0; margin:4px 0 10px; font-size:13px; }
.ce-house-list li { padding:2px 0; }
.ce-bullet { color:#C9A96E; margin-right:5px; }
.ce-link { display:block; margin-top:auto; padding-top:12px; font-size:11px; color:var(--brand-forest); text-decoration:underline; cursor:pointer; font-family:'Jost',sans-serif; }
.ce-link:hover { color:#C9A96E; }
.ce-empty { font-size:13px; color:#888; font-style:italic; margin:8px 0; line-height:1.5; }
.ce-loading { text-align:center; padding:40px; color:#888; font-family:'Jost',sans-serif; }
.ce-rec-block { margin-bottom:12px; }
.ce-rec-label { font-family:'Jost',sans-serif; font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:#5a6b5b; margin-bottom:2px; }
.ce-rec-value { font-family:'Cormorant Garamond',Georgia,serif; font-size:20px; font-weight:600; color:var(--brand-forest); }
.ce-conf-badge {
  display:inline-block; padding:4px 14px; border-radius:999px;
  font-family:'Jost',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:.07em; text-transform:uppercase; margin:6px 0 10px;
}
.ce-why { font-size:12px; color:#5a6b5b; line-height:1.55; }
.ce-expand-section { margin-bottom:12px; }
.ce-expand { border:1.5px solid var(--brand-forest); border-radius:8px; margin-bottom:8px; overflow:hidden; background:var(--brand-ivory); }
.ce-expand summary { font-family:'Jost',sans-serif; font-size:12px; font-weight:600; letter-spacing:.04em; color:var(--brand-forest); padding:10px 14px; cursor:pointer; list-style:none; }
.ce-expand summary::marker, .ce-expand summary::-webkit-details-marker { display:none; }
.ce-expand summary::before { content:'▶ '; font-size:10px; margin-right:4px; transition:transform .2s; display:inline-block; }
.ce-expand[open] summary::before { transform:rotate(90deg); }
.ce-expand-body { padding:12px; background:#fff; }
.ce-save-row { display:flex; gap:10px; margin-bottom:8px; }
.ce-save-btn {
  font-family:'Jost',sans-serif; font-size:12px; font-weight:600;
  padding:8px 16px; border:1.5px solid var(--brand-forest); border-radius:6px;
  cursor:pointer; background:var(--brand-forest); color:#fff; transition:all .15s;
}
.ce-save-btn:hover { background:#1a2b1b; }
.ce-save-btn.ce-sec { background:var(--brand-ivory); color:var(--brand-forest); }
.ce-save-btn.ce-sec:hover { background:#e8e0d0; }
@media(max-width:1279px){
  .ce-report-cols { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:900px){
  .ce-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:767px){
  .ce-grid { grid-template-columns:1fr; }
  .ce-report-cols { grid-template-columns:1fr !important; }
  .ce-col { padding:10px 12px; }
  .ce-refine-row { flex-direction:column; }
  .ce-run-btn { width:100%; }
}
.ce-thumb { width:36px; height:36px; object-fit:cover; border-radius:4px; background:#e8e0d0; flex-shrink:0; display:block; }
.ce-thumb-cell { width:42px; padding:2px 4px 2px 0 !important; }
.ce-mini-table tr.ce-clickable { cursor:pointer; }
.ce-mini-table tr.ce-clickable:hover td { background:rgba(44,62,45,.06); }
/* Odeon record modal */
.ce-modal-overlay { position:fixed;inset:0;z-index:9500;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;padding:16px; }
.ce-modal-overlay.open { display:flex; }
.ce-modal-inner { background:var(--brand-ivory);border:1.5px solid var(--brand-forest);border-radius:12px;width:min(620px,100%);max-height:88vh;overflow-y:auto;padding:0; }
.ce-modal-header { display:flex;justify-content:space-between;align-items:center;padding:16px 20px 12px;border-bottom:1px solid rgba(44,62,45,.2); }
.ce-modal-title { font-family:'Cormorant Garamond',Georgia,serif;font-size:18px;font-weight:600;color:var(--brand-forest);line-height:1.3; }
.ce-modal-close { background:none;border:1px solid var(--brand-forest);border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:14px;color:var(--brand-forest);display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.ce-modal-close:hover { background:var(--brand-forest);color:#fff; }
.ce-modal-body { padding:16px 20px 20px;display:flex;flex-direction:column;gap:14px; }
.ce-modal-img { width:100%;max-height:280px;object-fit:contain;border-radius:8px;background:#e8e0d0; }
.ce-modal-grid { display:grid;grid-template-columns:1fr 1fr;gap:8px 20px; }
.ce-modal-field { display:flex;flex-direction:column;gap:2px; }
.ce-modal-label { font-family:'Jost',sans-serif;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#5a6b5b; }
.ce-modal-value { font-family:'Jost',sans-serif;font-size:14px;font-weight:500;color:#1a1a1a; }
.ce-modal-desc { font-size:13px;color:#444;line-height:1.55;border-top:1px solid rgba(44,62,45,.15);padding-top:12px; }
.ce-archive-divider { border-top:1px dashed rgba(44,62,45,.3); margin:10px 0 8px; }
.ce-archive-head { font-family:'Jost',sans-serif; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#888; margin-bottom:4px; }
.ce-instock-count { font-family:'Cormorant Garamond',Georgia,serif; font-size:22px; font-weight:600; color:var(--brand-forest); line-height:1; margin-bottom:6px; }
.ce-view-all-tabs { display:flex; gap:0; border-bottom:1.5px solid var(--brand-forest); margin-bottom:10px; }
.ce-view-all-tab { font-family:'Jost',sans-serif; font-size:11px; font-weight:600; letter-spacing:.04em; padding:7px 12px; cursor:pointer; background:none; border:none; color:#5a6b5b; border-bottom:3px solid transparent; margin-bottom:-2px; white-space:nowrap; }
.ce-view-all-tab.active { color:var(--brand-forest); border-bottom-color:var(--brand-forest); }
.ce-view-all-toolbar { display:flex; gap:6px; align-items:center; justify-content:flex-end; margin-bottom:8px; }
.ce-vt-btn { font-family:'Jost',sans-serif; font-size:10px; font-weight:600; letter-spacing:.05em; padding:4px 10px; border:1px solid var(--brand-forest); border-radius:4px; cursor:pointer; background:none; color:var(--brand-forest); }
.ce-vt-btn.active { background:var(--brand-forest); color:#fff; }
.ce-pager { display:flex; gap:8px; align-items:center; justify-content:center; margin-top:10px; font-family:'Jost',sans-serif; font-size:12px; color:#5a6b5b; }
.ce-pager button { font-family:'Jost',sans-serif; font-size:11px; padding:4px 12px; border:1px solid var(--brand-forest); border-radius:4px; cursor:pointer; background:none; color:var(--brand-forest); }
.ce-pager button:disabled { opacity:.35; cursor:not-allowed; }
.ce-card-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
@media(max-width:900px){ .ce-card-grid { grid-template-columns:repeat(3,1fr); } }
@media(max-width:580px){ .ce-card-grid { grid-template-columns:repeat(2,1fr); } }
.ce-card { background:#fff; border:1px solid rgba(44,62,45,.18); border-radius:8px; overflow:hidden; cursor:pointer; transition:box-shadow .15s; }
.ce-card:hover { box-shadow:0 3px 12px rgba(44,62,45,.18); }
.ce-card-img { width:100%; aspect-ratio:1/1; object-fit:cover; background:#e8e0d0; display:block; }
.ce-card-no-img { width:100%; aspect-ratio:1/1; background:#e8e0d0; display:flex; align-items:center; justify-content:center; color:#aaa; font-size:28px; }
.ce-card-body { padding:8px 10px; }
.ce-card-title { font-family:'Jost',sans-serif; font-size:10px; font-weight:600; color:var(--brand-forest); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ce-card-sub { font-family:'Jost',sans-serif; font-size:10px; color:#888; margin-top:1px; }
.ce-card-price { font-family:'Jost',sans-serif; font-size:12px; font-weight:700; color:var(--brand-forest); margin-top:2px; }
.ce-sort-th { cursor:pointer; user-select:none; }
.ce-sort-th:hover { color:var(--brand-forest); }
.ce-comp-modal-link { display:inline-block; margin-top:10px; padding:8px 16px; background:#C9A96E; color:#fff; border-radius:6px; font-family:'Jost',sans-serif; font-size:11px; font-weight:700; text-decoration:none; letter-spacing:.05em; text-transform:uppercase; }
.ce-comp-modal-link:hover { background:#b8924f; }

.ce-trend-up { color:#16a34a; font-weight:700; }
.ce-trend-down { color:#dc2626; font-weight:700; }
.ce-trend-flat { color:#888; font-weight:700; }
.ce-carat-row { display:none; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.ce-carat-input { font-family:'Cormorant Garamond',Georgia,serif; font-size:15px; border:1px solid var(--brand-forest); border-radius:6px; padding:5px 8px; background:#fff; width:80px; }
.ce-cross-section { padding:12px; background:#fff; }
.ce-cross-group { margin-bottom:14px; }
.ce-cross-head { font-family:'Jost',sans-serif; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--brand-forest); margin-bottom:6px; }

/* --- Bid Calc --- */
.bc-single { border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; }
.bc-single-header { display:flex; justify-content:space-between; align-items:center; padding:10px 14px; background:var(--gold-light); border-bottom:1px solid var(--line); flex-wrap:wrap; gap:4px; }
.bc-single-name { font-family:'Cormorant Garamond',Georgia,serif; font-size:17px; font-weight:700; color:var(--ink-strong); }
.bc-single-target { font-size:11px; color:var(--muted); }
.bc-breakdown { padding:12px 14px; display:flex; flex-direction:column; gap:7px; }
.bc-breakdown-row { display:flex; justify-content:space-between; align-items:center; font-size:13px; gap:12px; }
.bc-breakdown-total { border-top:1px solid var(--line); padding-top:9px; margin-top:2px; font-weight:700; color:var(--ink-strong); }
.bc-val { font-family:'JetBrains Mono',monospace; font-size:13px; white-space:nowrap; }
.bc-meta { display:flex; gap:12px; flex-wrap:wrap; padding:8px 14px 12px; font-size:11px; color:var(--muted); border-top:1px solid var(--line); }
.bc-usd-note { font-size:10px; color:var(--muted); font-family:'Jost',sans-serif; font-weight:400; }
.bc-hero-bid { font-family:'Cormorant Garamond',Georgia,serif; font-size:28px; font-weight:700; color:var(--gold-text); line-height:1.1; }
.bc-hero-sub { font-size:11px; color:var(--muted); margin-top:3px; font-family:'JetBrains Mono',monospace; }
.bc-hero-box { border:1px solid var(--line); border-radius:var(--radius-sm); padding:16px 18px; margin:4px 0 14px; background:var(--gold-light); }
.bc-hero-label { font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }

/* ═══ Watchlist thumbnails ═══ */
.wl-thumb-cell { width:44px; padding:6px 8px 6px 10px; }
.wl-thumb { width:44px; height:44px; object-fit:cover; border-radius:4px; display:block; background:#e0ddd6; }
.wl-thumb-empty { background:#e0ddd6; }

/* ═══ Signed layer collapse toggle (Metals panel) ═══ */
.signed-toggle {
  display:flex; align-items:center; gap:12px; width:100%;
  background:var(--brand-forest); color:var(--brand-ivory);
  border:0; border-radius:4px;
  padding:12px 16px;
  margin:24px 0 0;
  cursor:pointer; text-align:left;
  font-family:'Jost',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:1px; text-transform:uppercase;
  transition:background .15s;
}
.signed-toggle:hover { background:#3a4d3a; }
.signed-toggle[aria-expanded="true"] { border-radius:4px 4px 0 0; }
.signed-toggle-caret { display:inline-block; font-size:13px; line-height:1; flex-shrink:0; }
.signed-toggle-label { flex:1; }
.signed-toggle-hint { font-weight:500; opacity:.75; text-transform:lowercase; letter-spacing:.5px; font-size:11px; }
.signed-layer.collapsed { display:none; }
.signed-layer { padding-top:4px; }

/* ═══ Auction forward/reverse mode toggle ═══ */
.auc-mode-toggle { display:inline-flex; border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; margin-bottom:14px; background:var(--bg); }
.auc-mode-btn { padding:9px 18px; font-family:'Jost',sans-serif; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; border:0; background:transparent; color:var(--muted); cursor:pointer; transition:background .15s,color .15s; }
.auc-mode-btn:not(:last-child) { border-right:1px solid var(--line); }
.auc-mode-btn:hover:not(.active) { background:var(--bg-elevated); color:var(--ink); }
.auc-mode-btn.active { background:var(--brand-forest); color:var(--brand-ivory); }

/* ═══ Inventory tabs — Live Stock + Sold ═══ */
.inv-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.inv-search{flex:1;min-width:200px}
.inv-sel{min-width:120px}
.inv-summary{display:flex;gap:20px;font-size:var(--text-body);color:var(--brand-forest-muted);margin-bottom:12px}
.inv-summary strong{color:var(--ink-strong)}
.inv-table-wrap{overflow-x:auto}
.inv-table{width:100%;border-collapse:collapse;font-size:var(--text-body)}
.inv-table th{text-align:left;font-size:var(--text-label);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 10px;border-bottom:1px solid var(--line)}
.inv-table td{padding:6px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.inv-table .num{text-align:right;font-family:var(--font-mono)}
.inv-title{max-width:280px}
.inv-thumb{width:40px;height:40px;object-fit:cover;border-radius:var(--radius-xs);border:1px solid var(--line)}
.inv-thumb-empty{background:var(--card-hover)}
.inv-badge{font-size:var(--text-label);padding:2px 8px;border-radius:var(--radius-pill);border:1px solid var(--line)}
.inv-Published{color:var(--brand-forest);border-color:var(--brand-forest)}
.inv-Finalized{color:var(--brand-gold);border-color:var(--brand-gold)}
.inv-OnMemo{color:#b8924f}
.inv-Draft{color:var(--muted)}
.inv-pos{color:var(--green-text)}
.inv-mid{color:var(--amber)}
.inv-neg{color:var(--red)}
.inv-more{margin-top:12px}
.inv-table tbody tr:hover{background:var(--card-hover)}
/* Detail modal */
.inv-modal{position:fixed;inset:0;z-index:1000;display:none}
.inv-modal.open{display:block}
.inv-modal-backdrop{position:absolute;inset:0;background:rgba(10,10,11,.6)}
.inv-modal-card{position:relative;max-width:640px;margin:6vh auto;max-height:88vh;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:24px}
.inv-modal-x{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer}
.inv-modal-card h3{font-family:var(--font-display);font-size:var(--text-lg);margin:0 32px 16px 0}
.inv-modal-hero{width:100%;max-height:320px;object-fit:contain;border-radius:var(--radius-xs);background:var(--bg-elevated);margin-bottom:12px}
.inv-modal-gallery{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.inv-modal-gallery img{width:56px;height:56px;object-fit:cover;border-radius:var(--radius-xs);border:1px solid var(--line)}
.inv-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;margin-bottom:12px}
.inv-modal-field{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid var(--line)}
.inv-modal-label{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.inv-modal-value{font-size:var(--text-body);text-align:right}
.inv-modal-desc{font-size:var(--text-body);line-height:1.5;color:var(--ink);margin-top:8px}
.inv-modal-tags{font-size:var(--text-label);color:var(--muted);margin-top:10px;font-style:italic}

/* Database tab */
.db-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.db-search{flex:1;min-width:280px}
.db-summary{display:flex;gap:16px;font-size:var(--text-body);color:var(--brand-forest-muted);margin-bottom:10px}
.db-summary strong{color:var(--ink-strong)}
.db-check{width:16px;height:16px;cursor:pointer}
/* Compare tray */
.db-tray{position:sticky;bottom:0;margin-top:12px}
.db-tray.open{background:var(--card);border-top:2px solid var(--brand-gold);padding:10px 12px;border-radius:8px 8px 0 0;box-shadow:0 -4px 16px rgba(0,0,0,.15)}
.db-tray-inner{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.db-tray-label{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.05em;color:var(--brand-gold);font-weight:600}
.db-chips{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.db-chip{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-label);background:var(--card-hover);border:1px solid var(--line);border-radius:var(--radius-pill);padding:2px 4px 2px 10px}
.db-chip button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px}
/* Compare view */
.db-cmp{display:flex;gap:12px;overflow-x:auto}
.db-cmp-col{min-width:180px;flex:1}
.db-cmp-col img,.db-cmp-noimg{width:100%;height:150px;object-fit:contain;background:var(--bg-elevated);border-radius:var(--radius-xs);margin-bottom:8px}
.db-cmp-title{font-family:var(--font-display);font-size:var(--text-body);margin-bottom:8px;min-height:2.6em}
.db-cmp-col dl{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;font-size:var(--text-label);margin:0}
.db-cmp-col dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.db-cmp-col dd{margin:0;text-align:right}
.inv-modal-card:has(.db-cmp){max-width:900px}

/* Clickable gallery thumbnails — swap the hero image */
.inv-modal-gallery img{cursor:pointer;transition:border-color .15s,opacity .15s;opacity:.7}
.inv-modal-gallery img:hover{opacity:1}
.inv-gal-thumb.active{border-color:var(--brand-gold);opacity:1}
.inv-modal-hero{cursor:default}

/* Compare brain — difference highlighting, comp rows, synthesis */
.db-cmp-actions{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.db-cmp-diff{color:var(--brand-gold);font-weight:600}
.db-cmp-same{color:var(--muted)}
.db-cmp-comp-dt{color:var(--brand-forest);border-top:1px solid var(--line);padding-top:4px;margin-top:2px}
.db-cmp-comp,.db-cmp-vscomp{border-top:1px solid var(--line);padding-top:4px;margin-top:2px;font-family:var(--font-mono)}
.db-cmp-synth{margin-top:16px;padding:14px 16px;background:var(--card-hover);border-left:3px solid var(--brand-gold);border-radius:4px;font-size:var(--text-body);line-height:1.55}
