/* THE SYSTEM · extracted main stylesheet · cache-friendly external file */
/* ════════════════════════════════════════════
   THEME ENGINE — toggle via [data-theme] on <html>
   ════════════════════════════════════════════ */

/* ════════════════════════════════════════════
   THEME SYSTEM — 10 full-palette themes
   Default: Paper (white bg + black text, Apple Health style)
   ════════════════════════════════════════════ */
:root,
[data-theme="paper"],
[data-theme="ivory"],
[data-theme="mint"],
[data-theme="rose"],
[data-theme="solo"] {
  --bg-deepest: #ffffff;
  --bg: #ffffff;
  --bg-card: #ffffff;
  --bg-elevated: #f7f7f8;
  --bg-hover: #f0f0f2;
  --border: rgba(0, 0, 0, 0.08);
  --border-strong: rgba(0, 0, 0, 0.18);
  --text: #111418;
  --text-soft: #4a4f57;
  --text-muted: #888d94;
  --accent: #111418;
  --accent-bright: #000000;
  --accent-glow: transparent;
  --magic: #6b6f78;
  --gold: #8a6d1f;
  --warning: #b75c1c;
  --danger: #c0392b;
  --positive: #2e7d4f;
  --shadow-glow: none;
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.05);
  --font-display: -apple-system, BlinkMacSystemFont, 'Inter', system-ui, sans-serif;
  --font-body: -apple-system, BlinkMacSystemFont, 'Inter', system-ui, sans-serif;
  --font-mono: 'SF Mono', 'JetBrains Mono', ui-monospace, monospace;
  --bg-pattern: none;
}

/* Hunter Dark — dark navy + blue (matches old landing palette) */
[data-theme="hunter-dark"] {
  --bg-deepest: #0a0e1a;
  --bg: #0a0e1a;
  --bg-card: #161e36;
  --bg-elevated: #1c264a;
  --bg-hover: #232e58;
  --border: rgba(255, 255, 255, 0.06);
  --border-strong: rgba(255, 255, 255, 0.14);
  --text: #e8ecf5;
  --text-soft: #a3aec4;
  --text-muted: #6b7896;
  --accent: #4a9eff;
  --accent-bright: #7bbaff;
  --accent-glow: rgba(74, 158, 255, 0.45);
  --magic: #b566ff;
  --gold: #ffcc44;
  --warning: #ffb84a;
  --danger: #ff5a6a;
  --positive: #4ae66e;
  --shadow-glow: 0 0 32px rgba(74, 158, 255, 0.25);
  --shadow-card: 0 4px 12px rgba(0, 0, 0, 0.4), 0 1px 0 rgba(255, 255, 255, 0.04) inset;
  --bg-pattern:
    radial-gradient(ellipse at 50% 0%, rgba(74, 158, 255, 0.08), transparent 60%),
    radial-gradient(ellipse at 80% 60%, rgba(181, 102, 255, 0.05), transparent 50%);
}

/* Monarch — dark + purple */
[data-theme="monarch"] {
  --bg-deepest: #0e0a1a;
  --bg: #0e0a1a;
  --bg-card: #1c1633;
  --bg-elevated: #251d44;
  --bg-hover: #2e2554;
  --border: rgba(255, 255, 255, 0.07);
  --border-strong: rgba(255, 255, 255, 0.15);
  --text: #f0e8ff;
  --text-soft: #b8a8d4;
  --text-muted: #7c6a92;
  --accent: #b566ff;
  --accent-bright: #d09bff;
  --accent-glow: rgba(181, 102, 255, 0.45);
  --magic: #4a9eff;
  --shadow-glow: 0 0 32px rgba(181, 102, 255, 0.25);
  --shadow-card: 0 4px 12px rgba(0, 0, 0, 0.45), 0 1px 0 rgba(255, 255, 255, 0.04) inset;
  --bg-pattern: radial-gradient(ellipse at 50% 0%, rgba(181, 102, 255, 0.1), transparent 60%);
}

/* Phoenix — dark + red/orange */
[data-theme="phoenix"] {
  --bg-deepest: #1a0a0e;
  --bg: #1a0a0e;
  --bg-card: #2e1620;
  --bg-elevated: #3d1c29;
  --bg-hover: #4a2433;
  --border: rgba(255, 255, 255, 0.07);
  --border-strong: rgba(255, 255, 255, 0.15);
  --text: #ffe8ec;
  --text-soft: #d4a8b0;
  --text-muted: #927078;
  --accent: #ff5a6a;
  --accent-bright: #ff8896;
  --accent-glow: rgba(255, 90, 106, 0.45);
  --magic: #ff8844;
  --shadow-glow: 0 0 32px rgba(255, 90, 106, 0.25);
  --shadow-card: 0 4px 12px rgba(0, 0, 0, 0.45), 0 1px 0 rgba(255, 255, 255, 0.04) inset;
  --bg-pattern: radial-gradient(ellipse at 50% 0%, rgba(255, 90, 106, 0.1), transparent 60%);
}

/* Crystal — dark + cyan/teal */
[data-theme="crystal"] {
  --bg-deepest: #0a1a1c;
  --bg: #0a1a1c;
  --bg-card: #162e30;
  --bg-elevated: #1c3d40;
  --bg-hover: #234a4e;
  --border: rgba(255, 255, 255, 0.07);
  --border-strong: rgba(255, 255, 255, 0.15);
  --text: #e8fafa;
  --text-soft: #a8d0d4;
  --text-muted: #708c92;
  --accent: #2dd4bf;
  --accent-bright: #6ee7d3;
  --accent-glow: rgba(45, 212, 191, 0.45);
  --magic: #4a9eff;
  --shadow-glow: 0 0 32px rgba(45, 212, 191, 0.25);
  --shadow-card: 0 4px 12px rgba(0, 0, 0, 0.45), 0 1px 0 rgba(255, 255, 255, 0.04) inset;
  --bg-pattern: radial-gradient(ellipse at 50% 0%, rgba(45, 212, 191, 0.1), transparent 60%);
}

/* Solar — dark + gold */
[data-theme="solar"] {
  --bg-deepest: #1a160a;
  --bg: #1a160a;
  --bg-card: #2e2616;
  --bg-elevated: #3d321c;
  --bg-hover: #4a3e24;
  --border: rgba(255, 255, 255, 0.07);
  --border-strong: rgba(255, 255, 255, 0.15);
  --text: #fff4e0;
  --text-soft: #d4c0a0;
  --text-muted: #928060;
  --accent: #ffb84a;
  --accent-bright: #ffd07a;
  --accent-glow: rgba(255, 184, 74, 0.45);
  --magic: #ff8844;
  --shadow-glow: 0 0 32px rgba(255, 184, 74, 0.25);
  --shadow-card: 0 4px 12px rgba(0, 0, 0, 0.45), 0 1px 0 rgba(255, 255, 255, 0.04) inset;
  --bg-pattern: radial-gradient(ellipse at 50% 0%, rgba(255, 184, 74, 0.1), transparent 60%);
}

/* Steel — dark + cool grey (monochrome dark) */
[data-theme="steel"] {
  --bg-deepest: #0f1115;
  --bg: #0f1115;
  --bg-card: #1a1d24;
  --bg-elevated: #232730;
  --bg-hover: #2d323c;
  --border: rgba(255, 255, 255, 0.07);
  --border-strong: rgba(255, 255, 255, 0.15);
  --text: #e4e7ed;
  --text-soft: #a8b0bc;
  --text-muted: #6c7480;
  --accent: #94a3b8;
  --accent-bright: #cbd5e1;
  --accent-glow: rgba(148, 163, 184, 0.35);
  --magic: #94a3b8;
  --shadow-glow: 0 0 32px rgba(148, 163, 184, 0.2);
  --shadow-card: 0 4px 12px rgba(0, 0, 0, 0.45), 0 1px 0 rgba(255, 255, 255, 0.04) inset;
  --bg-pattern: none;
}

/* Paper — defined at :root above (default theme) */

/* Ivory — light + warm gold */
[data-theme="ivory"] {
  --bg-deepest: #fffbf2;
  --bg: #fffbf2;
  --bg-card: #faf3e0;
  --bg-elevated: #f2ead0;
  --bg-hover: #ebe0b8;
  --border: rgba(0, 0, 0, 0.08);
  --border-strong: rgba(0, 0, 0, 0.18);
  --text: #2a2418;
  --text-soft: #5a4f38;
  --text-muted: #8a7e60;
  --accent: #b8860b;
  --accent-bright: #d4a017;
  --accent-glow: rgba(184, 134, 11, 0.2);
  --magic: #8a6d1f;
  --shadow-glow: none;
  --shadow-card: 0 1px 2px rgba(74, 58, 26, 0.05), 0 4px 12px rgba(74, 58, 26, 0.06);
  --bg-pattern: none;
}

/* Mint — light + green */
[data-theme="mint"] {
  --bg-deepest: #f5fdf9;
  --bg: #f5fdf9;
  --bg-card: #e6f7ee;
  --bg-elevated: #d4ecdf;
  --bg-hover: #c0e0cd;
  --border: rgba(0, 0, 0, 0.08);
  --border-strong: rgba(0, 0, 0, 0.16);
  --text: #1a3024;
  --text-soft: #3d5a48;
  --text-muted: #6b8475;
  --accent: #18a957;
  --accent-bright: #22cc6a;
  --accent-glow: rgba(34, 204, 106, 0.25);
  --magic: #18a957;
  --shadow-glow: none;
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.05);
  --bg-pattern: none;
}

/* Rose — light + pink */
[data-theme="rose"] {
  --bg-deepest: #fff5f8;
  --bg: #fff5f8;
  --bg-card: #fce8ed;
  --bg-elevated: #f7d4dd;
  --bg-hover: #f1c0cc;
  --border: rgba(0, 0, 0, 0.08);
  --border-strong: rgba(0, 0, 0, 0.16);
  --text: #3a1a24;
  --text-soft: #5a3a48;
  --text-muted: #8a6b75;
  --accent: #d63864;
  --accent-bright: #ec4f7d;
  --accent-glow: rgba(214, 56, 100, 0.25);
  --magic: #d63864;
  --shadow-glow: none;
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.05);
  --bg-pattern: none;
}

/* Compat alias — [data-theme="solo"] now maps to PAPER (was the legacy dark navy).
   This neutralizes old user records that have colorTheme="solo" stored. */
[data-theme="solo"] {
  --bg-deepest: #ffffff;
  --bg: #ffffff;
  --bg-card: #ffffff;
  --bg-elevated: #f7f7f8;
  --bg-hover: #f0f0f2;
  --border: rgba(0, 0, 0, 0.08);
  --border-strong: rgba(0, 0, 0, 0.18);
  --text: #111418;
  --text-soft: #4a4f57;
  --text-muted: #888d94;
  --accent: #111418;
  --accent-bright: #000000;
  --accent-glow: transparent;
  --magic: #6b6f78;
  --gold: #8a6d1f;
  --shadow-glow: none;
  --bg-pattern: none;
}


/* ════════════════════════════════════════════
   NEUTRALIZED CARD SURFACES — flat, no glow
   ════════════════════════════════════════════ */
.glass {
  background: #ffffff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 1px solid var(--border);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03), 0 4px 12px rgba(0, 0, 0, 0.04);
}
.glass-strong {
  background: #ffffff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 1px solid var(--border-strong);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04), 0 8px 24px rgba(0, 0, 0, 0.06);
}

/* Electric arcs disabled — no glow theme */
@keyframes arc-flicker { 0%, 100% { opacity: 0; } 50% { opacity: 0; } }
.quest-corners { display: none !important; }
.qc { display: none !important; }
@keyframes electric-arc { 0%, 100% { opacity: 0; } 50% { opacity: 0; } }
.quest-arcs { display: none !important; }
.quest-arcs::before, .quest-arcs::after { display: none !important; }

/* ════════════════════════════════════════════
   ICON SYSTEM (SVG sprite — no emojis)
   ════════════════════════════════════════════ */
.ico {
  display: inline-block;
  width: 1em; height: 1em;
  vertical-align: -0.15em;
  fill: currentColor;
  flex-shrink: 0;
}
.ico-lg { width: 1.5em; height: 1.5em; }
.ico-xl { width: 2.5em; height: 2.5em; }
.ico-stroke {
  fill: none; stroke: currentColor; stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
}
@keyframes pulse-glow { 0%, 100% { filter: none; } 50% { filter: none; } }
.ico-glow { animation: none; }

/* ════════════════════════════════════════════
   RANK BADGE
   ════════════════════════════════════════════ */
.rank-badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 28px; height: 28px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  border-radius: 6px;
  padding: 0 0.45rem;
  background: var(--rank-color, #111418);
  color: #ffffff;
  text-shadow: none;
  box-shadow: none;
  border: 1px solid var(--rank-color-dark, transparent);
}
.rank-E { --rank-color: #6b7280; --rank-color-dark: #4b5563; }
.rank-D { --rank-color: #15803d; --rank-color-dark: #166534; }
.rank-C { --rank-color: #1d4ed8; --rank-color-dark: #1e40af; }
.rank-B { --rank-color: #7c3aed; --rank-color-dark: #6d28d9; }
.rank-A { --rank-color: #c2410c; --rank-color-dark: #9a3412; }
.rank-S { --rank-color: #b45309; --rank-color-dark: #92400e; }
.rank-NAT { --rank-color: #be185d; --rank-color-dark: #9d174d; }
.rank-MON { --rank-color: #111418; --rank-color-dark: #000000; }

/* ════════════════════════════════════════════
   BASE
   ════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { min-height: 100%; }
html {
  scroll-behavior: smooth;
  /* Respect user font-size preferences (don't force size adjustment) */
  -webkit-text-size-adjust: auto;
  text-size-adjust: auto;
  /* `manipulation` allows pinch-zoom but eliminates the 300 ms tap delay */
  touch-action: manipulation;
  -ms-touch-action: manipulation;
}
body {
  font-family: var(--font-body);
  background: var(--bg);
  background-image: var(--bg-pattern);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  font-size: 17px;
  line-height: 1.4;
  touch-action: manipulation;
  -webkit-user-select: none;
  user-select: none;
  overscroll-behavior-y: contain;       /* keep nice web-app feel without blocking zoom */
  -webkit-tap-highlight-color: transparent;
  min-height: 100vh;
  min-height: 100dvh;                   /* dynamic viewport height — handles browser chrome */
  overflow-x: hidden;                   /* never horizontal-scroll the whole page */
  padding-bottom: env(safe-area-inset-bottom);
}
/* Allow text selection in fields, modals, and content areas */
input, textarea, select, [contenteditable], .modal-card, .day-detail-list, .empty,
#mxInstr, .quest-warning, .legend, p {
  -webkit-user-select: text;
  user-select: text;
}
/* Make sure long content (URLs, exercise names, etc.) wraps instead of overflowing */
* { word-wrap: break-word; overflow-wrap: break-word; }
img, svg { max-width: 100%; }

a { color: var(--accent); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--accent-bright); }
button {
  font-family: inherit; cursor: pointer; border: none; background: none; color: inherit;
}
input, textarea, select {
  font-family: inherit;
  background: var(--bg-deepest);
  border: 1px solid var(--border);
  color: var(--text);
  padding: 0.85rem 1rem;
  border-radius: 4px;
  width: 100%;
  font-size: 1rem;
  transition: border 0.2s, box-shadow 0.2s;
}
input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 2px var(--accent-glow);
}

h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
h1 { letter-spacing: 0.18em; }
body { font-weight: 400; letter-spacing: 0.01em; }

/* ════════════════════════════════════════════
   AUTH SCREEN
   ════════════════════════════════════════════ */
.auth-screen {
  position: fixed; inset: 0;
  background: var(--bg);
  background-image: var(--bg-pattern);
  display: flex; align-items: center; justify-content: center;
  padding: 1.5rem;
  z-index: 100;
}
.auth-screen.hidden { display: none; }
.auth-card {
  width: 100%; max-width: 440px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 2.5rem 2rem;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 4px 8px rgba(0, 0, 0, 0.04),
    0 12px 24px rgba(0, 0, 0, 0.06),
    0 24px 48px rgba(0, 0, 0, 0.08),
    0 48px 96px rgba(0, 0, 0, 0.1),
    0 96px 180px rgba(0, 0, 0, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
  position: relative;
  transform: perspective(1400px) rotateX(1deg);
  transform-origin: center top;
}
.auth-card::before {
  /* aurora pulse removed for paper-themed simple design */
  content: none;
}
@keyframes aurora-pulse {
  0%, 100% { opacity: 0.4; filter: blur(12px); }
  50% { opacity: 0.65; filter: blur(16px); }
}
.system-logo {
  text-align: center;
  margin-bottom: 1.5rem;
}
.system-logo .glyph {
  font-size: 3rem;
  filter: drop-shadow(0 0 12px var(--accent-glow));
  margin-bottom: 0.5rem;
}
.system-logo h1 {
  font-size: clamp(1.6rem, 5vw, 2.2rem);
  color: var(--accent-bright);
  text-shadow: 0 0 20px var(--accent-glow);
  letter-spacing: 0.2em;
}
.system-logo .sub {
  color: var(--text-muted);
  font-size: 0.85rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  margin-top: 0.5rem;
  font-family: var(--font-mono);
}

.auth-tabs {
  display: flex; gap: 0.5rem; margin-bottom: 1.5rem;
  background: transparent;
  padding: 0;
  border: 0;
}
.auth-tab {
  flex: 1; padding: 0.85rem 1rem;
  font-family: var(--font-display);
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--text);
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg-elevated);
  transition: all 0.2s ease;
  cursor: pointer;
  position: relative;
}
.auth-tab:hover {
  border-color: var(--border-strong);
  background: var(--bg-hover);
}
.auth-tab:active { transform: translateY(0); filter: brightness(0.97); }
.auth-tab.active {
  background: var(--accent);
  color: #ffffff;
  border-color: var(--accent);
}
.auth-tab.active::before { content: none; }
@keyframes auth-tab-shine {
  0%, 60% { left: -100%; }
  100% { left: 150%; }
}

.auth-form { display: flex; flex-direction: column; gap: 0.85rem; }
.auth-form.hidden { display: none; }

/* ════════════════════════════════════════════
   ROLE PICKER (signup — Athlete vs Trainer)
   ════════════════════════════════════════════ */
.role-picker { margin-bottom: 0.25rem; }
.role-picker-label {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin-bottom: 0.6rem;
  text-align: center;
}
.role-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
}
.role-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.45rem;
  padding: 1rem 0.75rem;
  background: var(--bg-card, #fff);
  border: 1.5px solid var(--border, rgba(0,0,0,0.1));
  border-radius: 12px;
  cursor: pointer;
  transition: border-color 0.12s ease, background 0.12s ease, transform 0.08s ease;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.role-card:hover { border-color: var(--text-soft, #4a4f57); }
.role-card:active { transform: scale(0.98); }
.role-card input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.role-card .role-ico {
  width: 28px;
  height: 28px;
  color: var(--text-soft, #4a4f57);
  transition: color 0.12s ease;
}
.role-card .role-name {
  font-weight: 700;
  font-size: 0.98rem;
  letter-spacing: 0.01em;
  color: var(--text, #111418);
}
.role-card .role-desc {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  color: var(--text-muted);
  letter-spacing: 0.04em;
  line-height: 1.35;
}
/* Selected state — bold border + accent color + tick badge */
.role-card:has(input[type="radio"]:checked) {
  border-color: var(--text, #111418);
  border-width: 2px;
  padding: calc(1rem - 0.5px) calc(0.75rem - 0.5px);
  background: var(--bg-card, #fff);
  box-shadow: 0 1px 2px rgba(0,0,0,0.04), 0 4px 14px rgba(0,0,0,0.06);
}
.role-card:has(input[type="radio"]:checked) .role-ico,
.role-card:has(input[type="radio"]:checked) .role-name {
  color: var(--text, #111418);
}
.role-card:has(input[type="radio"]:checked)::after {
  content: '';
  position: absolute;
  top: 8px;
  right: 8px;
  width: 14px;
  height: 14px;
  background: var(--text, #111418);
  border-radius: 50%;
  background-image:
    linear-gradient(45deg, transparent 45%, #fff 45%, #fff 55%, transparent 55%),
    linear-gradient(-45deg, transparent 45%, #fff 45%, #fff 55%, transparent 55%);
  background-size: 8px 2px;
  background-position: center;
  background-repeat: no-repeat;
}
.role-card:has(input[type="radio"]:checked)::after {
  background: var(--text, #111418) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 8l2.5 2.5L12 5'/></svg>") center / 70% no-repeat;
  background-color: var(--text, #111418);
}
/* Keyboard focus visible for accessibility */
.role-card:has(input[type="radio"]:focus-visible) {
  outline: 2px solid var(--text, #111418);
  outline-offset: 2px;
}
.role-trainer-hint {
  font-size: 0.78rem;
  color: var(--text-soft);
  margin-top: 0.65rem;
  padding: 0.65rem 0.8rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  line-height: 1.45;
}
.role-trainer-hint[hidden] { display: none; }

/* ════════════════════════════════════════════
   APP SHELL
   ════════════════════════════════════════════ */
.app { display: flex; flex-direction: column; min-height: 100vh; }
.app.hidden { display: none; }

/* Top status bar — frosted glass */
.status-bar {
  position: sticky; top: 0; z-index: 50;
  background:
    linear-gradient(180deg, rgba(10, 14, 26, 0.85), rgba(10, 14, 26, 0.65)),
    rgba(110, 195, 255, 0.02);
  backdrop-filter: blur(28px) saturate(180%);
  -webkit-backdrop-filter: blur(28px) saturate(180%);
  border-bottom: 1px solid rgba(110, 195, 255, 0.12);
  padding: 0.75rem 1rem;
  padding-top: calc(0.75rem + env(safe-area-inset-top));
  display: flex; justify-content: space-between; align-items: center;
  gap: 0.75rem;
  box-shadow:
    inset 0 -1px 0 rgba(110, 195, 255, 0.08),
    0 4px 24px rgba(0, 0, 0, 0.5);
}
.status-left { display: flex; align-items: center; gap: 0.85rem; }
.player-glyph {
  width: 38px; height: 38px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 25%, rgba(255, 255, 255, 0.4), transparent 50%),
    linear-gradient(135deg, var(--accent-bright), var(--accent) 50%, var(--magic));
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 900;
  color: var(--bg-deepest);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.5),
    inset 0 -2px 4px rgba(0, 0, 0, 0.2),
    0 0 18px var(--accent-glow),
    0 0 0 1px rgba(110, 195, 255, 0.4);
  font-size: 0.95rem;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
  overflow: hidden;
  background-size: cover;
  background-position: center;
}
.player-glyph.has-image { color: transparent; text-shadow: none; }
.player-glyph img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.global-rank-inline {
  display: inline-block;
  margin-left: 0.45rem;
  padding: 0.05rem 0.4rem;
  background: linear-gradient(135deg, rgba(184, 146, 74, 0.22), rgba(120, 80, 40, 0.08));
  border: 1px solid rgba(184, 146, 74, 0.4);
  border-radius: 999px;
  color: var(--gold);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  font-weight: 700;
  text-shadow: 0 0 8px rgba(184, 146, 74, 0.4);
}
.global-rank-inline:empty { display: none; }
.player-info .name {
  font-family: var(--font-display);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1;
  margin-bottom: 0.2rem;
}
.player-info .lvl {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--accent-bright);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.player-info .lvl .num { color: var(--gold); font-weight: 700; }

.status-right { display: flex; align-items: center; gap: 0.5rem; }
.streak-badge {
  display: inline-flex; align-items: center; gap: 0.3rem;
  padding: 0.35rem 0.7rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-family: var(--font-mono);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--warning);
}
.icon-btn {
  width: 36px; height: 36px;
  border: 1px solid var(--border);
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.05rem;
  color: var(--text-soft);
  transition: all 0.2s;
}
.icon-btn:hover { color: var(--accent); border-color: var(--accent); }

/* XP bar under status */
.xp-bar-wrap {
  background: rgba(10, 14, 26, 0.92);
  border-bottom: 1px solid var(--border);
  padding: 0 1rem 0.4rem;
}
.xp-bar {
  height: 5px;
  background: var(--bg-deepest);
  border-radius: 999px;
  overflow: hidden;
  position: relative;
}
.xp-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), var(--magic));
  border-radius: 999px;
  width: 0%;
  transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow: 0 0 10px var(--accent-glow);
}
.xp-bar-text {
  display: flex; justify-content: space-between;
  margin-top: 0.3rem;
  font-family: var(--font-mono);
  font-size: 0.65rem;
  color: var(--text-muted);
  letter-spacing: 0.1em;
}

/* Main content area */
main {
  flex: 1;
  padding: 1.25rem 1rem 6rem;
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
}

/* Bottom tab nav — frosted glass with light catching top edge */
.tab-bar {
  position: fixed; bottom: 0; left: 0; right: 0;
  background:
    linear-gradient(0deg, rgba(10, 14, 26, 0.92), rgba(10, 14, 26, 0.78)),
    rgba(110, 195, 255, 0.02);
  backdrop-filter: blur(28px) saturate(180%);
  -webkit-backdrop-filter: blur(28px) saturate(180%);
  border-top: 1px solid rgba(110, 195, 255, 0.16);
  display: flex; justify-content: space-around;
  padding: 0.5rem 0.25rem;
  padding-bottom: calc(0.5rem + env(safe-area-inset-bottom));
  z-index: 40;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 -8px 32px rgba(0, 0, 0, 0.5);
}
.tab-btn {
  flex: 1; max-width: 90px;
  display: flex; flex-direction: column; align-items: center;
  gap: 0.2rem;
  padding: 0.45rem 0.3rem;
  color: var(--text-muted);
  border-radius: 6px;
  transition: all 0.2s;
}
.tab-btn .icon { font-size: 1.3rem; line-height: 1; }
.tab-btn .label {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.tab-btn.active { color: var(--accent); }
.tab-btn.active .icon { filter: drop-shadow(0 0 8px var(--accent-glow)); }

/* Sections (one per tab) */
.section { display: none; }
.section.active { display: block; animation: fadeIn 0.3s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(0.4rem); } to { opacity: 1; transform: translateY(0); } }

.section-head {
  margin-bottom: 1.25rem;
  display: flex; justify-content: space-between; align-items: center;
}
.section-head h2 {
  font-size: 1.5rem;
  color: var(--accent-bright);
  text-shadow: 0 0 8px var(--accent-glow);
  letter-spacing: 0.08em;
}
.section-head .meta {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.15em;
}

/* ── Cards (3D glass surface — darker blue depth) ─────────────────── */
.card {
  background:
    linear-gradient(135deg, rgba(60, 120, 220, 0.09) 0%, rgba(20, 40, 80, 0.03) 50%, rgba(110, 80, 200, 0.06) 100%),
    linear-gradient(180deg, rgba(28, 48, 92, 0.32) 0%, rgba(8, 14, 30, 0.58) 100%),
    rgba(6, 12, 26, 0.5);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: 1px solid rgba(120, 180, 255, 0.16);
  border-radius: 12px;
  padding: 1.15rem;
  margin-bottom: 0.85rem;
  position: relative;
  box-shadow:
    inset 0 1.5px 0 rgba(180, 220, 255, 0.18),     /* top edge — light catching */
    inset 0 -1.5px 0 rgba(0, 0, 0, 0.5),           /* bottom edge — depth */
    inset 1px 0 0 rgba(140, 190, 255, 0.06),
    inset -1px 0 0 rgba(0, 0, 0, 0.3),
    inset 0 0 20px rgba(20, 40, 80, 0.2),          /* internal vignette */
    0 1px 2px rgba(0, 0, 0, 0.3),
    0 4px 14px rgba(0, 0, 0, 0.4),
    0 14px 40px rgba(0, 0, 0, 0.5),
    0 0 0 1px rgba(74, 158, 255, 0.06),
    0 0 26px rgba(74, 158, 255, 0.08);
  transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 280ms cubic-bezier(0.22, 1, 0.36, 1),
              border-color 280ms ease;
  transform: translateZ(0);
}
.card:hover {
  transform: translateY(-2px);
  border-color: rgba(140, 200, 255, 0.26);
  box-shadow:
    inset 0 1.5px 0 rgba(200, 230, 255, 0.26),
    inset 0 -1.5px 0 rgba(0, 0, 0, 0.55),
    inset 1px 0 0 rgba(160, 200, 255, 0.1),
    inset -1px 0 0 rgba(0, 0, 0, 0.35),
    inset 0 0 24px rgba(74, 158, 255, 0.08),
    0 2px 4px rgba(0, 0, 0, 0.35),
    0 8px 22px rgba(0, 0, 0, 0.45),
    0 22px 56px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(74, 158, 255, 0.12),
    0 0 40px rgba(74, 158, 255, 0.18);
}
.card.glow {
  border-color: rgba(74, 158, 255, 0.42);
  box-shadow:
    inset 0 1.5px 0 rgba(200, 230, 255, 0.24),
    inset 0 -1.5px 0 rgba(0, 0, 0, 0.55),
    inset 0 0 28px rgba(74, 158, 255, 0.1),
    0 2px 4px rgba(0, 0, 0, 0.4),
    0 12px 32px rgba(0, 0, 0, 0.5),
    0 24px 60px rgba(0, 0, 0, 0.6),
    0 0 0 1px rgba(74, 158, 255, 0.22),
    0 0 44px rgba(74, 158, 255, 0.22);
}

/* QUEST WINDOW — the centerpiece, full Solo Leveling 3D system-window treatment */
.quest-window {
  position: relative;
  background:
    linear-gradient(135deg, rgba(80, 150, 240, 0.16) 0%, rgba(30, 50, 100, 0.04) 45%, rgba(140, 90, 220, 0.1) 100%),
    linear-gradient(180deg, rgba(38, 60, 115, 0.4) 0%, rgba(8, 14, 30, 0.7) 100%),
    rgba(6, 12, 26, 0.6);
  backdrop-filter: blur(36px) saturate(200%);
  -webkit-backdrop-filter: blur(36px) saturate(200%);
  border: 1px solid rgba(140, 200, 255, 0.34);
  border-radius: 14px;
  padding: 1.4rem 1.2rem 1.2rem;
  margin-bottom: 1.25rem;
  overflow: hidden;
  box-shadow:
    inset 0 2px 0 rgba(200, 230, 255, 0.28),       /* bright top — light catching */
    inset 0 -2px 0 rgba(0, 0, 0, 0.6),
    inset 1.5px 0 0 rgba(160, 200, 255, 0.12),
    inset -1.5px 0 0 rgba(0, 0, 0, 0.4),
    inset 0 0 50px rgba(74, 158, 255, 0.07),
    0 2px 4px rgba(0, 0, 0, 0.4),
    0 12px 36px rgba(0, 0, 0, 0.55),
    0 28px 72px rgba(0, 0, 0, 0.65),
    0 0 0 1px rgba(120, 180, 255, 0.2),
    0 0 60px rgba(74, 158, 255, 0.24);
}
.quest-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 0.6rem;
  position: relative; z-index: 3;
}
.quest-title-row { display: flex; align-items: center; gap: 0.6rem; }
.quest-window h3 {
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: 0.14em;
  color: var(--text);
  text-transform: uppercase;
  text-shadow: 0 0 12px var(--accent-glow);
}
.quest-pct {
  font-family: var(--font-mono);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--accent-bright);
  background: rgba(74, 158, 255, 0.12);
  border: 1px solid rgba(74, 158, 255, 0.4);
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  letter-spacing: 0.05em;
  text-shadow: 0 0 8px var(--accent-glow);
}
.quest-warning {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.6rem 0.85rem;
  margin-bottom: 0.85rem;
  background: rgba(255, 51, 85, 0.08);
  border: 1px solid rgba(255, 51, 85, 0.25);
  border-radius: 6px;
  font-size: 0.78rem;
  color: var(--text-soft);
  font-family: var(--font-mono);
  letter-spacing: 0.04em;
  position: relative; z-index: 3;
}
.quest-warning .ico { color: var(--danger); flex-shrink: 0; }
.quest-warning strong { color: var(--danger); letter-spacing: 0.1em; }

.quest-cleared {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  background: linear-gradient(90deg, rgba(74,158,255,0.12), rgba(255,204,68,0.18), rgba(74,158,255,0.12));
  border: 1px solid rgba(255, 204, 68, 0.4);
  border-radius: 6px;
  font-family: var(--font-display);
  letter-spacing: 0.18em;
  color: var(--gold);
  text-transform: uppercase;
  font-size: 0.85rem;
  font-weight: 700;
  text-align: center;
  display: flex; align-items: center; justify-content: center; gap: 0.6rem;
  text-shadow: 0 0 12px rgba(255, 204, 68, 0.6);
  position: relative; z-index: 3;
  animation: quest-glow 2s ease-in-out infinite;
}
@keyframes quest-glow {
  0%, 100% { box-shadow: 0 0 16px rgba(255, 204, 68, 0.2), inset 0 0 16px rgba(255, 204, 68, 0.1); }
  50% { box-shadow: 0 0 32px rgba(255, 204, 68, 0.5), inset 0 0 24px rgba(255, 204, 68, 0.18); }
}
.card .head {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 0.75rem;
}
.card h3 { font-size: 1.1rem; color: var(--text); letter-spacing: 0.04em; }
.card .badge {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  padding: 0.15rem 0.6rem;
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  color: var(--accent);
  letter-spacing: 0.1em;
}


.lb-tabs { display: flex; gap: 0.4rem; background: rgba(15, 22, 40, 0.6); padding: 0.25rem; border-radius: 8px; border: 1px solid rgba(110, 195, 255, 0.12); box-shadow: inset 0 2px 4px rgba(0,0,0,0.3); }
.lb-tab { flex: 1; padding: 0.55rem; font-family: var(--font-display); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted); border-radius: 6px; font-weight: 600; background: none; border: none; cursor: pointer; transition: all 0.2s; }
.lb-tab.active { background: linear-gradient(135deg, var(--accent-bright), var(--accent)); color: var(--bg-deepest); text-shadow: 0 1px 0 rgba(255,255,255,0.3); box-shadow: inset 0 1px 0 rgba(255,255,255,0.4), 0 2px 8px rgba(74,158,255,0.4); }
.lb-row { display: grid; grid-template-columns: 44px 1fr auto auto; gap: 0.7rem; align-items: center; padding: 0.7rem 0.5rem; border-bottom: 1px solid rgba(110, 195, 255, 0.08); }
.lb-row.you { background: linear-gradient(90deg, rgba(74, 158, 255, 0.15), transparent 60%); border-left: 2px solid var(--accent); }
.lb-rank { font-family: var(--font-display); font-size: 0.78rem; font-weight: 800; text-align: center; color: var(--text-muted); letter-spacing: 0.05em; }
.lb-rank.gold { color: #ffcc44; }
.lb-rank.silver { color: #c0c8d8; }
.lb-rank.bronze { color: #cd7f32; }
.lb-name .h { font-family: var(--font-display); font-size: 0.92rem; color: var(--text); text-transform: uppercase; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb-name .u { font-family: var(--font-mono); font-size: 0.7rem; color: var(--text-muted); }
.lb-stat { font-family: var(--font-mono); font-size: 0.82rem; font-weight: 600; color: var(--accent-bright); text-shadow: 0 0 6px var(--accent-glow); white-space: nowrap; }

/* ── DASHBOARD ─────────────────────────────── */
.greet {
  font-family: var(--font-display);
  font-size: 1.4rem;
  margin-bottom: 0.25rem;
  color: var(--text);
}
.greet .accent { color: var(--accent-bright); }
.greet-sub {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  margin-bottom: 1.25rem;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.stat-tile {
  background:
    linear-gradient(180deg, rgba(110, 195, 255, 0.05), rgba(15, 22, 40, 0.3)),
    rgba(15, 22, 40, 0.5);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border: 1px solid rgba(110, 195, 255, 0.14);
  border-radius: 8px;
  padding: 0.85rem 0.4rem;
  text-align: center;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 3px 12px rgba(0, 0, 0, 0.3);
  transition: all 0.25s;
}
.stat-tile:hover {
  border-color: rgba(110, 195, 255, 0.32);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    0 6px 20px rgba(74, 158, 255, 0.2),
    0 0 0 1px rgba(74, 158, 255, 0.1);
}
.stat-tile .key {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  color: var(--text-muted);
  letter-spacing: 0.18em;
  margin-bottom: 0.3rem;
}
.stat-tile .val {
  font-family: var(--font-display);
  font-size: 1.5rem;
  color: var(--accent-bright);
  font-weight: 700;
  line-height: 1;
}

/* Today's quick actions */
.quick-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
  margin-bottom: 1rem;
}
.quick {
  background:
    linear-gradient(135deg, rgba(110, 195, 255, 0.06), rgba(15, 22, 40, 0.3)),
    rgba(15, 22, 40, 0.5);
  backdrop-filter: blur(16px) saturate(150%);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  border: 1px solid rgba(110, 195, 255, 0.14);
  border-radius: 10px;
  padding: 1.1rem;
  display: flex; flex-direction: column; gap: 0.35rem;
  transition: all 0.25s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 4px 16px rgba(0, 0, 0, 0.35);
  position: relative;
  overflow: hidden;
}
.quick::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
}
.quick:active { transform: scale(0.97); }
.quick:hover {
  border-color: rgba(110, 195, 255, 0.4);
  transform: translateY(-3px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    0 10px 28px rgba(74, 158, 255, 0.25),
    0 0 0 1px rgba(74, 158, 255, 0.15);
}
.quick .ico { font-size: 1.4rem; line-height: 1; margin-bottom: 0.2rem; }
.quick .lbl {
  font-family: var(--font-display);
  font-size: 0.95rem;
  color: var(--text);
}
.quick .sub {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

/* ── GLASS BUTTONS ─────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 0.5rem;
  padding: 0.85rem 1.4rem;
  font-family: var(--font-display);
  font-size: 0.82rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  border-radius: 8px;
  border: 1px solid var(--accent);
  background: var(--accent);
  color: #ffffff;
  transition: all 0.2s ease;
  position: relative;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.06),
    0 4px 12px rgba(0, 0, 0, 0.08);
  text-shadow: none;
}
.btn::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 50%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
  transform: skewX(-20deg);
  transition: left 0.6s ease;
}
.btn:hover {
  filter: brightness(1.04);
  transform: translateY(-1px);
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.08),
    0 8px 20px rgba(0, 0, 0, 0.1);
}
.btn:active { transform: translateY(0); filter: brightness(0.97); }
.btn.ghost {
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border-strong);
  text-shadow: none;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.btn.ghost:hover {
  background: var(--bg-hover);
  border-color: var(--accent);
  color: var(--text);
}
.btn.full { width: 100%; }
.btn.sm { padding: 0.55rem 1rem; font-size: 0.7rem; letter-spacing: 0.12em; }

/* ── EXERCISES TAB ─────────────────────────── */
.search-bar {
  position: sticky; top: 0; z-index: 10;
  background: var(--bg);
  padding-bottom: 0.85rem;
  margin-bottom: 0.85rem;
}
.cat-pills {
  display: flex; gap: 0.5rem; overflow-x: auto;
  /* Top + bottom padding gives the lifted/glow state room to render without clipping */
  padding: 0.85rem 0.25rem 1.1rem;
  margin: -0.5rem -0.25rem -0.5rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.cat-pills::-webkit-scrollbar { display: none; }
.cat-pill {
  flex-shrink: 0;
  padding: 0.65rem 1.25rem;
  background:
    linear-gradient(180deg, rgba(110, 195, 255, 0.16) 0%, rgba(74, 158, 255, 0.05) 50%, rgba(15, 22, 40, 0.55) 100%),
    rgba(15, 22, 40, 0.6);
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  border: 1px solid rgba(110, 195, 255, 0.22);
  border-radius: 999px;
  font-family: var(--font-display);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--text-soft);
  white-space: nowrap;
  transition: all 0.25s cubic-bezier(0.22, 1, 0.36, 1);
  cursor: pointer;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    inset 0 -1px 0 rgba(0, 0, 0, 0.3),
    0 4px 12px rgba(0, 0, 0, 0.35),
    0 0 0 1px rgba(74, 158, 255, 0.06);
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4);
}
.cat-pill:hover {
  transform: translateY(-2px);
  border-color: rgba(110, 195, 255, 0.5);
  color: var(--accent-bright);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    inset 0 -1px 0 rgba(0, 0, 0, 0.3),
    0 8px 22px rgba(74, 158, 255, 0.32),
    0 0 0 1px rgba(74, 158, 255, 0.22),
    0 0 18px rgba(74, 158, 255, 0.22);
}
.cat-pill:active { transform: translateY(0); }
.cat-pill.active {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.35) 0%, var(--accent-bright) 30%, var(--accent) 100%);
  color: var(--bg-deepest);
  border-color: var(--accent-bright);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.45);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.65),
    inset 0 -2px 5px rgba(0, 0, 0, 0.22),
    0 4px 16px rgba(74, 158, 255, 0.55),
    0 0 28px rgba(74, 158, 255, 0.35);
  font-weight: 700;
}

.exercise-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 0.6rem;
}
.ex-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.2s;
  display: flex; flex-direction: column;
}
.ex-card:hover { border-color: var(--accent); transform: translateY(-2px); }
.ex-card img {
  width: 100%; aspect-ratio: 1; object-fit: cover;
  background: var(--bg-deepest);
}
.ex-card .body {
  padding: 0.6rem; flex: 1;
}
.ex-card .name {
  font-size: 0.85rem;
  color: var(--text);
  font-weight: 600;
  margin-bottom: 0.2rem;
  line-height: 1.2;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ex-card .meta {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

/* ── EXERCISE DETAIL MODAL ─────────────────── */
.modal {
  position: fixed; inset: 0;
  background: rgba(0, 0, 0, 0.85);
  z-index: 200;
  display: none;
  align-items: flex-end;
  padding: 0;
}
.modal.open { display: flex; }
@media (min-width: 600px) {
  .modal { align-items: center; padding: 1.5rem; }
}
.modal-card {
  background: var(--bg-card);
  border: 1px solid var(--border-strong);
  border-radius: 12px 12px 0 0;
  width: 100%;
  max-width: 600px;
  max-height: 90vh;
  max-height: 90dvh;          /* dynamic viewport — accounts for browser chrome at zoom */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0 auto;
  padding: 1.5rem;
  padding-bottom: max(1.5rem, env(safe-area-inset-bottom));
}
@media (min-width: 600px) { .modal-card { border-radius: 12px; } }
.modal-head {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: 1rem;
}
.modal-head h3 { font-size: 1.4rem; color: var(--accent-bright); }
.close-btn {
  background: none; color: var(--text-muted); font-size: 1.6rem; line-height: 1;
}
.modal img.demo {
  width: 100%; max-height: 320px; object-fit: contain;
  background: var(--bg-deepest);
  border-radius: 6px;
  margin-bottom: 1rem;
}
.exercise-tags {
  display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 1rem;
}
.exercise-tags .tag {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  padding: 0.2rem 0.6rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 4px;
  color: var(--text-soft);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

/* ════════ LIBRARY BROWSER (Plans + Meals) ════════ */
.lib-filters {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.lib-filters select {
  width: 100%;
  padding: 0.55rem 0.7rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-size: 0.85rem;
  font-family: var(--font-body);
  cursor: pointer;
}
.lib-count {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-bottom: 0.5rem;
  padding: 0.3rem 0;
  border-bottom: 1px solid var(--border);
}
.lib-list {
  overflow-y: auto;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.25rem 0;
  -webkit-overflow-scrolling: touch;
}
.lib-card {
  padding: 0.85rem 0.95rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 10px;
  cursor: pointer;
  transition: transform 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.lib-card:hover {
  border-color: var(--accent);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.lib-card:active { transform: translateY(0); }
.lib-card-name {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.01em;
}
.lib-card-meta {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
}
.lib-card-meta span { white-space: nowrap; }
.lib-meta {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-bottom: 0.85rem;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid var(--border);
}
.lib-meta .badge {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  padding: 0.22rem 0.55rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 4px;
  color: var(--text-soft);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.lib-week {
  margin-bottom: 0.85rem;
  padding: 0.7rem 0.85rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.lib-week-title {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--accent-bright);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-bottom: 0.45rem;
}
.lib-day {
  font-size: 0.82rem;
  color: var(--text-soft);
  margin: 0.3rem 0;
  line-height: 1.45;
}
.lib-day-name {
  font-weight: 700;
  color: var(--text);
  margin-right: 0.4rem;
}
.lib-exercise {
  font-family: var(--font-mono);
  font-size: 0.74rem;
  color: var(--text-muted);
  margin-left: 0.6rem;
  display: block;
  padding: 0.15rem 0;
}
.meal-macros {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.4rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid var(--border);
}
.meal-macros .macro {
  text-align: center;
  padding: 0.5rem 0.3rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.meal-macros .macro-num {
  display: block;
  font-family: var(--font-mono);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--accent-bright);
  font-variant-numeric: tabular-nums;
}
.meal-macros .macro-label {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.6rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-top: 0.15rem;
}
.lib-recipe {
  margin-bottom: 0.85rem;
  padding: 0.8rem 0.9rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.lib-recipe-title {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 0.3rem;
}
.lib-recipe-meta {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: 0.5rem;
}
.lib-recipe-section {
  font-size: 0.72rem;
  color: var(--accent-bright);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin: 0.55rem 0 0.25rem;
}
.lib-recipe-section + p,
.lib-recipe-section + ul {
  font-size: 0.83rem;
  color: var(--text-soft);
  line-height: 1.55;
  margin: 0;
  padding-left: 1.1rem;
}
.lib-recipe ul { list-style: disc; }
.lib-recipe ol {
  font-size: 0.83rem;
  color: var(--text-soft);
  line-height: 1.55;
  padding-left: 1.3rem;
}
.lib-empty {
  text-align: center;
  padding: 2rem 1rem;
  color: var(--text-muted);
  font-size: 0.88rem;
}
@media (min-width: 480px) {
  .lib-filters { grid-template-columns: repeat(4, 1fr); }
}

/* ════════ COACH ANALYTICS ════════ */
.coach-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
}
.coach-stat {
  text-align: center;
  padding: 0.7rem 0.4rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 10px;
}
.coach-stat-num {
  display: block;
  font-family: var(--font-mono);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--accent-bright);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.coach-stat-label {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.6rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-top: 0.3rem;
}
.coach-risk-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.55rem 0.7rem;
  margin-top: 0.4rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-left: 3px solid var(--warning, #f59e0b);
  border-radius: 8px;
  font-size: 0.85rem;
  cursor: pointer;
}
.coach-risk-row:hover { border-color: var(--accent); }
.coach-risk-name { font-weight: 600; color: var(--text); }
.coach-risk-reason {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
@media (max-width: 420px) {
  .coach-stat-grid { grid-template-columns: repeat(2, 1fr); }
}

.set-logger { margin-top: 1rem; }
.set-logger h4 {
  font-size: 0.85rem;
  color: var(--accent-bright);
  letter-spacing: 0.18em;
  margin-bottom: 0.75rem;
}
.set-row {
  display: grid;
  grid-template-columns: 40px 1fr 1fr 32px;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
  align-items: center;
}
.set-row .num {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--text-muted);
  text-align: center;
}
.set-row input { padding: 0.55rem 0.7rem; font-size: 0.95rem; text-align: center; }
.set-row .rm-btn {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 4px;
  width: 32px; height: 36px;
  color: var(--danger);
  font-size: 1rem;
}

/* ── TASKS / QUESTS ────────────────────────── */
.task-list { display: flex; flex-direction: column; gap: 0.5rem; }
.task {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.85rem;
  align-items: center;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.85rem 1rem;
  transition: all 0.2s;
}
.task:hover { border-color: var(--border-strong); }
.task.done { opacity: 0.55; }
.task.done .title { text-decoration: line-through; color: var(--text-muted); }
.task .check {
  width: 24px; height: 24px;
  border-radius: 6px;
  border: 2px solid var(--border-strong);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  flex-shrink: 0;
}
.task.done .check { background: var(--positive); border-color: var(--positive); }
.task.done .check::after { content: '✓'; color: var(--bg-deepest); font-weight: 700; font-size: 0.9rem; }
.task .body { min-width: 0; }
.task .title {
  font-size: 1rem;
  color: var(--text);
  font-weight: 500;
  margin-bottom: 0.15rem;
}
.task .sub {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--text-muted);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.task .xp-tag {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--gold);
  background: rgba(255, 204, 68, 0.1);
  border: 1px solid rgba(255, 204, 68, 0.4);
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.add-task-bar {
  display: flex; gap: 0.5rem; margin-bottom: 1rem;
}
.add-task-bar input { flex: 1; }

/* ── NUTRITION TAB ─────────────────────────── */
.upload-zone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  box-sizing: border-box;
  border: 2px dashed var(--border-strong);
  border-radius: 12px;
  padding: 2.25rem 1rem;
  margin: 0 0 1rem;
  text-align: center;
  background: var(--bg-card);
  transition: all 0.2s;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.upload-zone:hover, .upload-zone:active { border-color: var(--accent); background: var(--bg-elevated); }
.upload-zone .ico { width: 2.4rem; height: 2.4rem; flex-shrink: 0; }
.upload-zone .label {
  font-family: var(--font-display);
  letter-spacing: 0.1em;
  color: var(--text);
  font-size: 0.95rem;
  margin: 0;
}
.upload-zone .sub {
  color: var(--text-muted);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin: 0;
}
.upload-zone input[type="file"] {
  position: absolute;
  width: 1px; height: 1px;
  opacity: 0; pointer-events: none;
}

.macro-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
  margin: 1rem 0;
}
.macro {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 0.85rem 0.5rem;
  text-align: center;
}
.macro .key {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--text-muted);
  letter-spacing: 0.15em;
  margin-bottom: 0.3rem;
}
.macro .val {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--accent-bright);
  font-weight: 700;
}

/* ── PLAN / CALENDAR ───────────────────────── */
.plan-empty {
  text-align: center;
  padding: 2.5rem 1.25rem;
  border: 1px dashed var(--border-strong);
  border-radius: 14px;
  background: var(--bg-card);
}
.plan-empty > .ico { width: 3rem; height: 3rem; color: var(--accent-bright); margin: 0 auto 0.75rem; display: block; }
.plan-empty h3 { font-family: var(--font-display); font-size: 1.2rem; margin-bottom: 0.4rem; }
.plan-empty p { color: var(--text-soft); font-size: 0.9rem; line-height: 1.55; margin-bottom: 1.25rem; max-width: 38ch; margin-left: auto; margin-right: auto; }

/* ═══ PLAN CTA buttons — icon left, title + sub stacked, centered group ═══ */
.plan-empty-actions {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin-top: 0.5rem;
  max-width: 420px;
  margin-left: auto;
  margin-right: auto;
}
.plan-cta {
  /* Override default btn flex so we can fully control inner layout */
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 0.95rem 1rem !important;
  min-height: 64px;
  text-align: left;
  line-height: 1.3;
}
.plan-cta-inner {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  width: 100%;
  justify-content: flex-start;
  max-width: 320px;
}
.plan-cta-inner .ico {
  flex-shrink: 0;
  width: 1.45rem;
  height: 1.45rem;
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.plan-cta-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  text-align: left;
}
.plan-cta-title {
  display: block;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.01em;
}
.plan-cta-sub {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  opacity: 0.7;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 500;
}
.plan-cta.ghost .plan-cta-sub { color: var(--text-muted); }
.plan-cta:not(.ghost) .plan-cta-sub { color: rgba(255,255,255,0.7); }
[data-theme="paper"] .plan-cta:not(.ghost) .plan-cta-sub,
[data-theme="solo"] .plan-cta:not(.ghost) .plan-cta-sub,
[data-theme="ivory"] .plan-cta:not(.ghost) .plan-cta-sub,
[data-theme="mint"] .plan-cta:not(.ghost) .plan-cta-sub,
[data-theme="rose"] .plan-cta:not(.ghost) .plan-cta-sub { color: rgba(255,255,255,0.75); }

@media (min-width: 600px) {
  .plan-cta { min-height: 72px; padding: 1.05rem 1.25rem !important; }
  .plan-cta-title { font-size: 1rem; }
  .plan-cta-inner { gap: 1rem; }
  .plan-cta-inner .ico { width: 1.6rem; height: 1.6rem; }
}

.plan-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 0.5rem; margin-bottom: 0.85rem;
}
.plan-header h2 {
  font-family: var(--font-display);
  font-size: 1.3rem;
  letter-spacing: 0.04em;
}
.plan-header .plan-meta {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  text-align: right;
}

.plan-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 0.4rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.4rem;
  margin-bottom: 0.6rem;
}
.plan-nav-btn {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-soft);
  width: 36px; height: 36px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: all 0.15s;
}
.plan-nav-btn:hover { border-color: var(--accent); color: var(--accent-bright); }
.plan-month-label {
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: 0.04em;
  color: var(--text);
  flex: 1; text-align: center;
}
.plan-view-toggle { display: flex; gap: 0.25rem; }
.plan-view-toggle button {
  background: transparent; border: 1px solid var(--border);
  color: var(--text-muted);
  font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase;
  padding: 0.4rem 0.6rem; border-radius: 6px; cursor: pointer;
}
.plan-view-toggle button.active { background: var(--accent); color: var(--bg-deepest); border-color: var(--accent); }

.cal-grid {
  display: grid; grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 8px;
}
.cal-dow {
  text-align: center;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
  padding: 0.35rem 0;
}
.cal-cell {
  position: relative;
  aspect-ratio: 1 / 1.05;
  border: 1px solid rgba(140, 200, 255, 0.06);
  border-radius: 7px;
  background: rgba(8, 14, 30, 0.5);
  padding: 0.3rem 0.35rem;
  display: flex; flex-direction: column; justify-content: space-between;
  font-family: var(--font-mono);
  cursor: pointer;
  overflow: hidden;
  transition: border-color 0.15s, background 0.15s;
}
.cal-cell:hover { border-color: rgba(140, 200, 255, 0.4); }
.cal-cell.outside { opacity: 0.3; cursor: default; }
.cal-cell.today { border-color: var(--accent-bright); box-shadow: inset 0 0 0 1px var(--accent-bright); }
.cal-cell .num {
  font-size: 0.78rem; font-weight: 700;
  color: var(--text-soft);
  letter-spacing: 0.02em;
}
.cal-cell.today .num { color: var(--accent-bright); }
.cal-cell .badge {
  font-size: 0.55rem;
  letter-spacing: 0.04em;
  text-align: left;
  text-transform: uppercase;
  line-height: 1.1;
  color: var(--text-muted);
  word-break: break-word;
  font-weight: 600;
}
.cal-cell.workout {
  background: linear-gradient(180deg, rgba(74, 158, 255, 0.18), rgba(74, 158, 255, 0.04));
  border-color: rgba(74, 158, 255, 0.4);
}
.cal-cell.workout .badge { color: var(--accent-bright); }
.cal-cell.rest {
  background: rgba(110, 195, 255, 0.04);
}
.cal-cell.rest .badge { color: var(--text-muted); }
.cal-cell.done {
  background: linear-gradient(180deg, rgba(80, 230, 130, 0.2), rgba(80, 230, 130, 0.04));
  border-color: rgba(80, 230, 130, 0.5);
}
.cal-cell.done .badge { color: rgba(80, 230, 130, 0.95); }
.cal-cell.done::after {
  content: '✓';
  position: absolute; top: 4px; right: 6px;
  font-size: 0.85rem; font-weight: 700;
  color: rgba(80, 230, 130, 0.95);
  text-shadow: 0 0 8px rgba(80, 230, 130, 0.45);
}

/* Week strip view */
.week-strip {
  display: grid; grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  margin-bottom: 0.85rem;
}
.week-strip .day {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.7rem 0.4rem 0.6rem;
  text-align: center;
  cursor: pointer;
  transition: all 0.15s;
  position: relative;
}
.week-strip .day:hover { border-color: var(--accent); }
.week-strip .day .dow {
  font-family: var(--font-mono); font-size: 0.6rem;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 0.25rem;
}
.week-strip .day .num {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--text);
  line-height: 1;
  margin-bottom: 0.4rem;
}
.week-strip .day .lbl {
  font-family: var(--font-mono); font-size: 0.55rem;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--text-muted);
}
.week-strip .day.workout { background: linear-gradient(180deg, rgba(74, 158, 255, 0.2), rgba(74, 158, 255, 0.05)); border-color: rgba(74, 158, 255, 0.4); }
.week-strip .day.workout .lbl { color: var(--accent-bright); }
.week-strip .day.done { background: linear-gradient(180deg, rgba(80, 230, 130, 0.22), rgba(80, 230, 130, 0.05)); border-color: rgba(80, 230, 130, 0.5); }
.week-strip .day.done .lbl { color: rgba(80, 230, 130, 0.95); }
.week-strip .day.today {
  outline: 2px solid var(--accent-bright);
  outline-offset: -2px;
}

/* Day detail modal */
.day-detail-list {
  display: flex; flex-direction: column;
  gap: 0.5rem;
  max-height: 50vh;
  overflow-y: auto;
  padding: 0.25rem;
  margin-bottom: 1rem;
}
.day-detail-ex {
  display: flex; align-items: center; gap: 0.75rem;
  padding: 0.65rem 0.75rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.day-detail-ex .num {
  flex: 0 0 28px;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--text-muted);
  text-align: center;
  letter-spacing: 0.05em;
}
.day-detail-ex .body { flex: 1; min-width: 0; }
.day-detail-ex .name {
  font-family: var(--font-display);
  font-size: 0.92rem;
  letter-spacing: 0.02em;
  margin-bottom: 0.15rem;
}
.day-detail-ex .meta {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}

/* Plan wizard */
.wizard-step { display: none; }
.wizard-step.active { display: block; }
.wizard-step h3 {
  font-family: var(--font-display);
  font-size: 1.05rem;
  letter-spacing: 0.04em;
  margin-bottom: 0.4rem;
}
.wizard-step p {
  color: var(--text-soft);
  font-size: 0.86rem;
  line-height: 1.5;
  margin-bottom: 1rem;
}
.wizard-step .opts {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.wizard-step .opt {
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg-card);
  padding: 0.85rem 0.6rem;
  text-align: center;
  cursor: pointer;
  transition: all 0.15s;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: var(--text);
  text-transform: capitalize;
}
.wizard-step .opt:hover { border-color: var(--accent); }
.wizard-step .opt.selected {
  border-color: var(--accent-bright);
  background: linear-gradient(180deg, rgba(74, 158, 255, 0.18), rgba(74, 158, 255, 0.04));
  color: var(--accent-bright);
}
.wizard-step .opt small { display: block; margin-top: 0.2rem; font-size: 0.7em; color: var(--text-muted); letter-spacing: 0.05em; }
.wizard-progress {
  display: flex; gap: 4px; margin-bottom: 1.1rem;
}
.wizard-progress .dot {
  flex: 1; height: 3px;
  background: var(--border);
  border-radius: 2px;
  transition: background 0.2s;
}
.wizard-progress .dot.active { background: var(--accent-bright); }
.wizard-actions {
  display: flex; gap: 0.5rem;
  margin-top: 0.75rem;
}
.wizard-actions .btn { flex: 1; }

/* Dashboard 7-day strip variant — compact */
.dashboard-week-strip {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1rem 0.85rem 0.85rem;
  margin-bottom: 1rem;
}
.dashboard-week-strip .head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 0.85rem;
}
.dashboard-week-strip .head h3 {
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: 0.04em;
  display: flex; align-items: center; gap: 0.5rem;
}
.dashboard-week-strip .head h3 .ico { color: var(--accent-bright); width: 1.1em; height: 1.1em; }
.dashboard-week-strip .head a {
  font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--accent); text-decoration: none;
}

/* ── PROFILE / STATS ───────────────────────── */
.profile-card {
  background: linear-gradient(135deg, var(--bg-card), var(--bg-elevated));
  border: 1px solid var(--border-strong);
  border-radius: 12px;
  padding: 2rem 1.5rem;
  text-align: center;
  margin-bottom: 1rem;
  position: relative;
  overflow: hidden;
}
.profile-card::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 0%, var(--accent-glow), transparent 50%);
  opacity: 0.4;
}
.profile-card > * { position: relative; }
.profile-card .avatar {
  width: 80px; height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), var(--magic));
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-size: 2rem; font-weight: 900;
  color: var(--bg-deepest);
  margin: 0 auto 1rem;
  box-shadow: 0 0 30px var(--accent-glow);
}
.profile-card .name {
  font-family: var(--font-display);
  font-size: 1.4rem;
  margin-bottom: 0.25rem;
}
.profile-card .lvl {
  font-family: var(--font-mono);
  font-size: 0.85rem;
  color: var(--accent-bright);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 0.75rem;
}
.profile-card .lvl .num { color: var(--gold); font-weight: 700; font-size: 1.1rem; }

/* ── HUNTER CARD ─────────────────────────── */
.hunter-card {
  position: relative;
  background:
    radial-gradient(ellipse at 50% -20%, rgba(110, 195, 255, 0.18), transparent 60%),
    linear-gradient(180deg, rgba(20, 32, 60, 0.85) 0%, rgba(8, 14, 30, 0.95) 100%),
    var(--bg-deepest);
  border: 1px solid rgba(140, 200, 255, 0.35);
  border-radius: 16px;
  padding: 1.85rem 1.25rem 1.5rem;
  margin: 0 0 1rem;
  overflow: hidden;
  box-shadow:
    inset 0 2px 0 rgba(200, 230, 255, 0.18),
    inset 0 -2px 0 rgba(0, 0, 0, 0.55),
    0 18px 48px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(120, 180, 255, 0.18),
    0 0 60px rgba(74, 158, 255, 0.18);
  text-align: center;
}
.hunter-card .corners {
  position: absolute; inset: 0; pointer-events: none;
}
.hunter-card .hc { position: absolute; width: 16px; height: 16px; border: 2px solid rgba(140, 200, 255, 0.7); }
.hunter-card .hc.tl { top: 10px; left: 10px; border-right: 0; border-bottom: 0; }
.hunter-card .hc.tr { top: 10px; right: 10px; border-left: 0; border-bottom: 0; }
.hunter-card .hc.bl { bottom: 10px; left: 10px; border-right: 0; border-top: 0; }
.hunter-card .hc.br { bottom: 10px; right: 10px; border-left: 0; border-top: 0; }
.hunter-card > * { position: relative; }

.hc-avatar-wrap {
  position: relative;
  width: 110px; height: 110px;
  margin: 0 auto 0.85rem;
}
.hc-avatar-ring {
  position: absolute; inset: -5px;
  border-radius: 50%;
  background: conic-gradient(from 0deg, var(--accent-bright), var(--magic, #8a5cdc), var(--gold), var(--accent-bright));
  filter: blur(0.5px);
  z-index: 0;
}
.hc-avatar {
  position: relative; z-index: 1;
  width: 100%; height: 100%;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), var(--magic, #8a5cdc));
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-size: 2.4rem; font-weight: 900;
  color: #050810;
  border: 3px solid rgba(8, 14, 30, 0.95);
  overflow: hidden;
  box-shadow: 0 0 40px rgba(110, 195, 255, 0.5);
}
.hc-avatar img { width: 100%; height: 100%; object-fit: cover; }

.hc-name {
  font-family: var(--font-display);
  font-size: 1.45rem; font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(220, 240, 255, 0.98);
  margin: 0.1rem 0 0.15rem;
  text-shadow: 0 0 18px rgba(110, 195, 255, 0.35);
}
.hc-handle {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--text-muted);
  letter-spacing: 0.12em;
  margin-bottom: 0.85rem;
}
.hc-rank-badge {
  display: inline-flex; align-items: center; gap: 0.45rem;
  padding: 0.35rem 0.85rem;
  border: 1px solid rgba(184, 146, 74, 0.55);
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(184, 146, 74, 0.18), rgba(120, 80, 40, 0.08));
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  color: var(--gold);
  margin-bottom: 0.85rem;
  text-transform: uppercase;
  text-shadow: 0 0 12px rgba(184, 146, 74, 0.4);
}
.hc-rank-badge .ico { width: 0.95em; height: 0.95em; }
.hc-row {
  display: flex; justify-content: center; gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0.85rem;
}
.hc-chip {
  display: inline-flex; align-items: center; gap: 0.4rem;
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
  border: 1px solid rgba(140, 200, 255, 0.18);
  background: rgba(20, 32, 60, 0.55);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: var(--text-soft);
}
.hc-chip .ico { width: 0.9em; height: 0.9em; }
.hc-chip strong { color: var(--accent-bright); font-weight: 700; }

.hc-xp-bar-wrap {
  margin: 0.5rem 0 0.4rem;
  text-align: left;
}
.hc-xp-bar {
  position: relative;
  height: 8px;
  border-radius: 4px;
  background: rgba(8, 14, 30, 0.7);
  border: 1px solid rgba(140, 200, 255, 0.18);
  overflow: hidden;
}
.hc-xp-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent-bright), var(--magic, #8a5cdc));
  border-radius: 3px;
  transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow: 0 0 10px var(--accent-glow);
}
.hc-xp-meta {
  display: flex; justify-content: space-between;
  margin-top: 0.3rem;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--text-muted);
  letter-spacing: 0.08em;
}
.hc-monthly {
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px solid rgba(140, 200, 255, 0.12);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  color: var(--text-soft);
}
.hc-monthly strong { color: var(--gold); }
.hc-perk {
  margin-top: 0.85rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--border-strong);
  background: var(--bg-elevated);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 0.75rem;
  text-align: left;
}
.hc-perk .info { flex: 1; min-width: 0; }
.hc-perk .info strong {
  display: block;
  font-family: var(--font-display);
  color: var(--gold);
  font-size: 0.88rem;
  letter-spacing: 0.06em;
  margin-bottom: 0.15rem;
}
.hc-perk .info span {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--text-muted);
  letter-spacing: 0.06em;
}

.theme-switcher {
  display: flex; gap: 0.5rem;
  background: var(--bg-deepest);
  padding: 0.25rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  margin-top: 1rem;
}
.theme-btn {
  flex: 1; padding: 0.7rem;
  font-family: var(--font-display);
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--text-muted);
  border-radius: 6px;
  font-weight: 600;
}
.theme-btn.active { background: var(--accent); color: var(--bg-deepest); }

/* ── TOAST / NOTIFICATION ───────────────────── */
.toast {
  position: fixed;
  bottom: 5.5rem; left: 50%;
  transform: translateX(-50%) translateY(2rem);
  background: var(--bg-card);
  border: 1px solid var(--accent);
  color: var(--text);
  padding: 0.85rem 1.25rem;
  border-radius: 999px;
  font-family: var(--font-display);
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  opacity: 0;
  transition: all 0.4s;
  z-index: 1000;
  box-shadow: var(--shadow-glow);
  pointer-events: none;
  white-space: nowrap;
}
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.toast.xp { border-color: var(--gold); color: var(--gold); }
.toast.levelup {
  border-color: var(--magic);
  color: var(--magic);
  font-size: 1.1rem;
  padding: 1.25rem 2rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  text-shadow: 0 0 12px var(--magic);
}

/* ════════════════════════════════════════════
   TUTORIAL OVERLAY
   ════════════════════════════════════════════ */
.tutorial {
  position: fixed; inset: 0;
  background: rgba(5, 8, 16, 0.95);
  backdrop-filter: blur(8px);
  z-index: 300;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.tutorial.show { display: flex; animation: fadeIn 0.4s ease; }
.tutorial-card {
  width: 100%; max-width: 480px;
  background: var(--bg-card);
  border: 1px solid var(--border-strong);
  border-radius: 12px;
  padding: 2rem 1.5rem 1.25rem;
  box-shadow: var(--shadow-glow);
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
}
.tutorial-step { display: none; min-height: 280px; }
.tutorial-step.active { display: block; animation: fadeIn 0.3s ease; }
.tutorial-step h2, .tutorial-step h3 {
  font-family: var(--font-display);
  letter-spacing: 0.1em;
  margin-bottom: 0.85rem;
  color: var(--text);
}
.tutorial-step h2 { font-size: 1.6rem; }
.tutorial-step h3 { font-size: 1.15rem; color: var(--accent-bright); }
.tutorial-step p {
  color: var(--text-soft);
  font-size: 0.95rem;
  line-height: 1.55;
}
.tut-icon {
  text-align: center;
  margin-bottom: 1rem;
}
.tutorial-progress {
  margin-top: 1.5rem;
  border-top: 1px solid var(--border);
  padding-top: 1rem;
}
.tutorial-dots {
  display: flex; gap: 0.4rem; justify-content: center;
  margin-bottom: 1rem;
}
.tut-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  transition: all 0.2s;
}
.tut-dot.active { background: var(--accent); box-shadow: 0 0 8px var(--accent-glow); width: 22px; border-radius: 4px; }
.tutorial-actions { display: flex; gap: 0.5rem; justify-content: space-between; }
.tutorial-actions .btn { flex: 1; }
.tut-skip {
  position: absolute; top: 0.75rem; right: 1rem;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--text-muted);
  background: none; border: none; cursor: pointer;
  padding: 0.3rem 0.6rem;
}
.tut-skip:hover { color: var(--text); }

/* ════════════════════════════════════════════
   DAILY DRILLS CHECKLIST
   ════════════════════════════════════════════ */
.drill {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  gap: 0.85rem;
  align-items: center;
  padding: 0.9rem;
  background:
    linear-gradient(135deg, rgba(110, 195, 255, 0.04), rgba(20, 28, 50, 0.4)),
    rgba(15, 22, 40, 0.5);
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  border: 1px solid rgba(110, 195, 255, 0.1);
  border-radius: 10px;
  margin-bottom: 0.55rem;
  transition: all 0.25s cubic-bezier(0.22, 1, 0.36, 1);
  position: relative;
  overflow: hidden;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.04),
    0 4px 16px rgba(0, 0, 0, 0.3);
}
.drill::before {
  content: '';
  position: absolute; left: 0; top: 0; bottom: 0;
  width: var(--progress, 0%);
  background: linear-gradient(90deg, rgba(74,158,255,0.18), rgba(74,158,255,0.04));
  transition: width 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 0;
}
.drill > * { position: relative; z-index: 1; }
.drill.complete {
  background: linear-gradient(90deg, rgba(74,158,255,0.15), var(--bg-elevated));
  border-color: var(--accent);
}
.drill.complete .drill-name { color: var(--accent-bright); }
.drill.complete::before { width: 100% !important; background: linear-gradient(90deg, rgba(74,158,255,0.25), rgba(181,102,255,0.15)); }
.drill .drill-icon {
  width: 48px; height: 48px;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(circle at 30% 20%, rgba(110, 195, 255, 0.25), rgba(74, 158, 255, 0.05) 60%),
    rgba(15, 25, 50, 0.6);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(110, 195, 255, 0.25);
  border-radius: 10px;
  color: var(--accent-bright);
  font-size: 1.4rem;
  line-height: 1;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    0 2px 8px rgba(74, 158, 255, 0.2);
  transition: all 0.3s;
}
.drill .drill-icon svg, .drill .drill-icon .ico {
  width: 24px; height: 24px;
  margin: 0;
  display: block;
}
.drill.complete .drill-icon {
  background: linear-gradient(135deg, var(--accent-bright), var(--accent));
  border-color: var(--accent-bright);
  color: var(--bg-deepest);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    0 0 16px rgba(74, 158, 255, 0.6),
    0 0 32px rgba(74, 158, 255, 0.3);
  animation: complete-pulse 1.4s ease-in-out infinite;
}
@keyframes complete-pulse {
  0%, 100% { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 16px rgba(74, 158, 255, 0.6), 0 0 32px rgba(74, 158, 255, 0.3); }
  50% { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 22px rgba(74, 158, 255, 0.8), 0 0 44px rgba(74, 158, 255, 0.45); }
}
.drill.complete .drill-icon { background: var(--accent); color: var(--bg-deepest); }
.drill .drill-info { min-width: 0; }
.drill .drill-name {
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text);
}
.drill .drill-progress {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-top: 0.15rem;
  letter-spacing: 0.05em;
}
.drill .drill-progress .num { color: var(--accent-bright); font-weight: 600; }
.drill .drill-progress .target { color: var(--text-soft); }
.drill .drill-actions { display: flex; gap: 0.4rem; }
.drill .drill-btn {
  width: 38px; height: 38px;
  background:
    linear-gradient(135deg, rgba(110, 195, 255, 0.15), rgba(74, 158, 255, 0.05)),
    rgba(15, 22, 40, 0.7);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(110, 195, 255, 0.25);
  border-radius: 8px;
  color: var(--text);
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem;
  transition: all 0.18s cubic-bezier(0.22, 1, 0.36, 1);
  font-family: var(--font-display);
  font-weight: 700;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    0 2px 6px rgba(0, 0, 0, 0.3);
}
.drill .drill-btn:hover { border-color: var(--accent); color: var(--accent); }
.drill .drill-btn:active { transform: scale(0.92); }
.drill .drill-btn.add {
  background: linear-gradient(135deg, var(--accent-bright), var(--accent));
  color: var(--bg-deepest);
  border-color: var(--accent-bright);
  font-weight: 800;
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  width: auto; padding: 0 0.65rem;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    0 2px 8px rgba(74, 158, 255, 0.4),
    0 0 16px rgba(74, 158, 255, 0.25);
}
.drill .drill-btn.add:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.5),
    0 4px 14px rgba(74, 158, 255, 0.5),
    0 0 24px rgba(74, 158, 255, 0.4);
}
.drill .drill-btn.add:active { transform: translateY(0); }

/* Daily Quest card wrapper */
.daily-quest-card { padding: 0.5rem 0.5rem 0.5rem; margin-bottom: 1.75rem; }
.daily-quest-card #drillsChecklist { display: flex; flex-direction: column; gap: 0.5rem; }
.quest-clear-banner {
  margin-top: 0.85rem;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(74, 230, 110, 0.4);
  background: linear-gradient(90deg, rgba(74,230,110,0.18), rgba(74,230,110,0.06));
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center; gap: 0.6rem;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--positive, #4ae66e);
  font-weight: 600;
}
.quest-clear-banner.hidden { display: none; }

/* ═══════ REFERRAL CARD ═══════ */
.ref-stats {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem;
  margin-bottom: 0.95rem;
}
.ref-stat {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.7rem 0.6rem;
  text-align: center;
}
.ref-stat-val {
  font-family: var(--font-mono);
  font-size: 1.65rem; font-weight: 700;
  color: var(--accent); line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}
.ref-stat-key {
  font-family: var(--font-mono);
  font-size: 0.66rem; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--text-muted);
  margin-top: 0.45rem;
}
.ref-link-wrap {
  display: flex; gap: 0.4rem; align-items: stretch;
}
.ref-link-wrap input[type="text"] {
  flex: 1; min-width: 0;
  background: var(--bg);
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  padding: 0.6rem 0.7rem;
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--text);
  letter-spacing: 0.02em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ref-link-wrap input[type="text"]:focus { outline: 2px solid var(--accent); outline-offset: -1px; }
.ref-link-wrap button { white-space: nowrap; }
.ref-invited-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.4rem 0; font-size: 0.85rem;
  border-bottom: 1px solid var(--border);
}
.ref-invited-row:last-child { border-bottom: none; }
.ref-invited-row .name { color: var(--text); }
.ref-invited-row .meta { color: var(--text-muted); font-family: var(--font-mono); font-size: 0.72rem; }


/* ═══════ PROGRESS TAB ═══════ */
.progress-tiles {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
  margin-bottom: 1.75rem;
}
@media (max-width: 480px) {
  .progress-tiles { grid-template-columns: repeat(2, 1fr); }
}
.ptile {
  background: var(--bg-card, rgba(255,255,255,0.04));
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 0.85rem 0.7rem;
  text-align: center;
}
.ptile-key {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 0.4rem;
}
.ptile-val {
  font-family: var(--font-mono);
  font-size: 1.55rem;
  font-weight: 700;
  color: var(--accent-bright);
  line-height: 1;
  margin-bottom: 0.25rem;
  font-variant-numeric: tabular-nums;
}
.ptile-sub {
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.05em;
  color: var(--text-muted);
  text-transform: lowercase;
}
.chart-card { padding: 1.1rem 1rem 1.2rem; margin-bottom: 1.1rem; }
.chart-head {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 0.95rem;
}
.chart-head h3 {
  font-size: 1.05rem;
  color: var(--accent-bright);
  letter-spacing: 0.04em;
}
.chart-meta {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  text-transform: uppercase;
}
.chart-svg-wrap { width: 100%; height: 160px; position: relative; }
.chart-svg-wrap svg { width: 100%; height: 100%; display: block; overflow: visible; }
.chart-empty {
  text-align: center;
  padding: 1.5rem 0.5rem;
  color: var(--text-muted);
  font-size: 0.85rem;
  font-style: italic;
}
.chart-empty.hidden { display: none; }

/* Weight + calorie line chart styling */
.line-chart .axis-y text,
.line-chart .axis-x text {
  font-family: var(--font-mono);
  font-size: 9px;
  fill: var(--text-muted);
  letter-spacing: 0.08em;
}
.line-chart .grid line {
  stroke: rgba(255,255,255,0.06);
  stroke-dasharray: 2 4;
}
.line-chart .data-line {
  fill: none;
  stroke: var(--accent-bright);
  stroke-width: 2;
  filter: drop-shadow(0 0 4px rgba(74,158,255,0.45));
}
.line-chart .data-area {
  fill: url(#chartGrad);
  opacity: 0.5;
}
.line-chart .data-pt {
  fill: var(--accent-bright);
  stroke: var(--bg-deepest);
  stroke-width: 1.5;
}

/* Heatmap (GitHub-style consistency grid) */
.heatmap-wrap {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 4px;
  margin-bottom: 0.85rem;
}
.heatmap-col { display: grid; grid-template-rows: repeat(7, 1fr); gap: 4px; }
.hm-cell {
  aspect-ratio: 1;
  border-radius: 2px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.02);
  display: inline-block;
  width: 12px; height: 12px;
}
.hm-cell.hm-0 { background: rgba(255,255,255,0.05); }
.hm-cell.hm-1 { background: rgba(74,158,255,0.25); }
.hm-cell.hm-2 { background: rgba(74,158,255,0.5); }
.hm-cell.hm-3 { background: rgba(74,158,255,0.75); }
.hm-cell.hm-4 { background: var(--accent-bright); box-shadow: 0 0 6px rgba(74,158,255,0.5); }
.heatmap-legend {
  display: flex; align-items: center; gap: 5px;
  font-family: var(--font-mono); font-size: 0.62rem;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--text-muted); justify-content: flex-end;
}

/* Daily Quest grid (smaller cells for 30-day) */
.quest-grid {
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  gap: 5px;
}
.qcell {
  aspect-ratio: 1;
  border-radius: 4px;
  background: rgba(255,255,255,0.05);
  position: relative;
  font-size: 9px;
  font-family: var(--font-mono);
  color: var(--text-muted);
  display: flex; align-items: center; justify-content: center;
}
.qcell.q-25 { background: rgba(74,158,255,0.2); color: rgba(255,255,255,0.6); }
.qcell.q-50 { background: rgba(74,158,255,0.4); color: rgba(255,255,255,0.85); }
.qcell.q-75 { background: rgba(74,158,255,0.65); color: white; }
.qcell.q-100 { background: var(--accent-bright); color: var(--bg-deepest); font-weight: 700; box-shadow: 0 0 6px rgba(74,158,255,0.5); }

/* Volume by muscle group (horizontal bars) */
.volume-wrap { display: flex; flex-direction: column; gap: 0.55rem; }
.vol-row { display: grid; grid-template-columns: 80px 1fr 38px; gap: 0.55rem; align-items: center; }
.vol-label {
  font-family: var(--font-mono); font-size: 0.7rem;
  letter-spacing: 0.05em; color: var(--text-muted);
  text-transform: uppercase;
}
.vol-bar-track {
  height: 8px; background: rgba(255,255,255,0.06);
  border-radius: 999px; overflow: hidden;
}
.vol-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), var(--accent-bright));
  border-radius: 999px;
  transition: width 0.4s ease;
}
.vol-num {
  font-family: var(--font-mono); font-size: 0.78rem;
  color: var(--accent-bright); text-align: right;
  font-variant-numeric: tabular-nums;
}

/* PR list */
.pr-list { display: flex; flex-direction: column; gap: 0.5rem; }
.pr-item {
  display: grid; grid-template-columns: 1fr auto auto; gap: 0.7rem;
  padding: 0.65rem 0.85rem;
  background: rgba(255,255,255,0.03);
  border-left: 2px solid var(--accent);
  border-radius: 0 6px 6px 0;
  align-items: center;
}
.pr-name { font-size: 0.92rem; color: var(--text); }
.pr-val { font-family: var(--font-mono); color: var(--accent-bright); font-weight: 600; font-size: 0.9rem; }
.pr-date { font-family: var(--font-mono); font-size: 0.68rem; color: var(--text-muted); }

/* ═══════ CLASSIC MODE — neutral terminology + softer palette ═══════ */
body.classic {
  --accent: #5b8a9a;
  --accent-bright: #82b3c4;
  --accent-glow: rgba(130, 179, 196, 0.4);
}
body.classic .hunter-card,
body.classic .quest-clear-banner,
body.classic .rank-badge { /* soften rank/hunter framing in classic */
  filter: saturate(0.7);
}
body.classic .term-quest::before,
body.classic .term-arsenal::before,
body.classic .term-fuel::before,
body.classic .term-status::before {
  content: attr(data-classic);
}
body.classic .term-quest > .label-default,
body.classic .term-arsenal > .label-default,
body.classic .term-fuel > .label-default,
body.classic .term-status > .label-default {
  display: none;
}


/* Form fields (onboarding/profile) */
.form-field { margin-bottom: 0.85rem; }
.form-field label {
  display: block;
  font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.15em;
  text-transform: uppercase; color: var(--text-muted); margin-bottom: 0.4rem;
}
.form-field .hint {
  font-family: var(--font-mono); font-size: 0.68rem; color: var(--text-muted);
  margin-top: 0.3rem; letter-spacing: 0.05em;
}
.avatar-upload {
  display: block; cursor: pointer;
}
.avatar-upload input { display: none; }
.avatar-preview {
  width: 100%; min-height: 80px;
  background: linear-gradient(135deg, rgba(110, 195, 255, 0.08), rgba(15, 22, 40, 0.3));
  backdrop-filter: blur(8px);
  border: 2px dashed rgba(110, 195, 255, 0.25);
  border-radius: 8px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 0.4rem;
  color: var(--text-muted);
  font-family: var(--font-mono); font-size: 0.75rem;
  letter-spacing: 0.1em; text-transform: uppercase;
  background-size: cover; background-position: center;
  transition: all 0.2s;
}
.avatar-preview.has-image { border-style: solid; border-color: var(--accent); }
.avatar-preview.has-image span, .avatar-preview.has-image svg { display: none; }
.avatar-preview.small { min-height: 64px; padding: 0; }
.avatar-upload:hover .avatar-preview { border-color: var(--accent-bright); }

/* Color theme grid */
.color-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.4rem;
}
.color-swatch {
  aspect-ratio: 1; border-radius: 8px; cursor: pointer;
  border: 2px solid transparent;
  transition: all 0.2s;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 2px 8px rgba(0, 0, 0, 0.4);
}
.color-swatch:hover { transform: scale(1.08); }
.color-swatch.active { border-color: white; box-shadow: 0 0 14px currentColor; }

/* ── EMPTY STATES ──────────────────────────── */
.empty {
  text-align: center;
  padding: 3rem 1rem;
  color: var(--text-muted);
  font-style: italic;
}

/* ── UTIL ──────────────────────────────────── */
.hidden { display: none !important; }
.row { display: flex; gap: 0.75rem; align-items: center; }
.spacer { flex: 1; }

/* Allow selection / typing where it matters */
input, textarea, [contenteditable], .selectable {
  -webkit-user-select: text;
  user-select: text;
}

/* ── TOGGLE SWITCH (Solo Leveling style) ──── */
.toggle-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 0.85rem;
  padding: 0.55rem 0;
  cursor: pointer;
  user-select: none;
}
.toggle-row > span:first-child {
  flex: 1;
  font-size: 0.92rem;
  line-height: 1.35;
}
.toggle-hint {
  color: var(--text-muted);
  font-size: 0.78rem;
  font-weight: 400;
}
.toggle-row input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.toggle-slider {
  position: relative;
  width: 44px; height: 24px;
  flex-shrink: 0;
  background: rgba(8, 14, 30, 0.7);
  border: 1px solid rgba(120, 180, 255, 0.18);
  border-radius: 999px;
  transition: all 220ms cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow:
    inset 0 1px 2px rgba(0, 0, 0, 0.6),
    inset 0 -1px 0 rgba(180, 220, 255, 0.06);
}
.toggle-slider::before {
  content: '';
  position: absolute;
  top: 2px; left: 2px;
  width: 18px; height: 18px;
  background: linear-gradient(180deg, rgba(160, 200, 255, 0.95) 0%, rgba(110, 160, 220, 1) 100%);
  border-radius: 50%;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    inset 0 -1px 0 rgba(0, 0, 0, 0.2),
    0 2px 6px rgba(0, 0, 0, 0.45);
  transition: all 220ms cubic-bezier(0.22, 1, 0.36, 1);
}
.toggle-row input:checked + .toggle-slider {
  background: linear-gradient(180deg, rgba(74, 158, 255, 0.5) 0%, rgba(50, 120, 220, 0.7) 100%);
  border-color: rgba(140, 200, 255, 0.5);
  box-shadow:
    inset 0 1px 2px rgba(0, 0, 0, 0.4),
    inset 0 -1px 0 rgba(200, 230, 255, 0.18),
    0 0 12px rgba(74, 158, 255, 0.4);
}
.toggle-row input:checked + .toggle-slider::before {
  left: 22px;
  background: linear-gradient(180deg, rgba(220, 240, 255, 1) 0%, rgba(160, 210, 255, 1) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.6),
    inset 0 -1px 0 rgba(0, 0, 0, 0.15),
    0 2px 8px rgba(74, 158, 255, 0.5),
    0 0 8px rgba(160, 210, 255, 0.6);
}

/* ── PIN BYPASS MODAL ──────────────────── */
.pin-overlay {
  position: fixed; inset: 0;
  background: radial-gradient(ellipse at center, rgba(20, 30, 60, 0.7) 0%, rgba(0, 0, 0, 0.92) 100%);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  display: none;
  align-items: center; justify-content: center;
  z-index: 9999;
  padding: 1.5rem;
  animation: pin-fade 220ms ease-out;
}
.pin-overlay.show { display: flex; }
@keyframes pin-fade { from { opacity: 0; } to { opacity: 1; } }

.pin-modal {
  position: relative;
  width: 100%; max-width: 400px;
  box-sizing: border-box;
  background:
    linear-gradient(135deg, rgba(80, 150, 240, 0.18) 0%, rgba(30, 50, 100, 0.06) 45%, rgba(140, 90, 220, 0.14) 100%),
    linear-gradient(180deg, rgba(40, 65, 120, 0.5) 0%, rgba(8, 14, 30, 0.85) 100%),
    rgba(6, 12, 26, 0.7);
  backdrop-filter: blur(40px) saturate(220%);
  -webkit-backdrop-filter: blur(40px) saturate(220%);
  border: 1px solid rgba(140, 200, 255, 0.4);
  border-radius: 16px;
  padding: 1.85rem 1.25rem 1.4rem;
  box-shadow:
    inset 0 2px 0 rgba(200, 230, 255, 0.32),
    inset 0 -2px 0 rgba(0, 0, 0, 0.65),
    inset 1.5px 0 0 rgba(160, 200, 255, 0.16),
    inset -1.5px 0 0 rgba(0, 0, 0, 0.45),
    inset 0 0 60px rgba(74, 158, 255, 0.1),
    0 4px 8px rgba(0, 0, 0, 0.5),
    0 18px 48px rgba(0, 0, 0, 0.6),
    0 36px 90px rgba(0, 0, 0, 0.7),
    0 0 0 1px rgba(120, 180, 255, 0.24),
    0 0 80px rgba(74, 158, 255, 0.3);
  animation: pin-slide-up 320ms cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes pin-slide-up {
  from { transform: translateY(20px) scale(0.96); opacity: 0; }
  to   { transform: translateY(0) scale(1); opacity: 1; }
}
.pin-modal.shake {
  animation: pin-shake 380ms cubic-bezier(0.36, 0.07, 0.19, 0.97);
}
@keyframes pin-shake {
  10%, 90% { transform: translateX(-2px); }
  20%, 80% { transform: translateX(4px); }
  30%, 50%, 70% { transform: translateX(-8px); }
  40%, 60% { transform: translateX(8px); }
}
.pin-modal.success {
  border-color: rgba(74, 230, 130, 0.6);
  box-shadow:
    inset 0 2px 0 rgba(220, 255, 230, 0.4),
    inset 0 -2px 0 rgba(0, 0, 0, 0.65),
    inset 0 0 60px rgba(74, 230, 130, 0.18),
    0 0 100px rgba(74, 230, 130, 0.5),
    0 0 0 1px rgba(74, 230, 130, 0.4);
  transition: box-shadow 320ms ease, border-color 320ms ease;
}

/* Corner brackets — Solo Leveling system window */
.pin-corners { position: absolute; inset: 0; pointer-events: none; }
.pc {
  position: absolute; width: 14px; height: 14px;
  border: 2px solid rgba(140, 200, 255, 0.7);
}
.pc.tl { top: 8px; left: 8px; border-right: 0; border-bottom: 0; }
.pc.tr { top: 8px; right: 8px; border-left: 0; border-bottom: 0; }
.pc.bl { bottom: 8px; left: 8px; border-right: 0; border-top: 0; }
.pc.br { bottom: 8px; right: 8px; border-left: 0; border-top: 0; }

.pin-header { text-align: center; margin-bottom: 1.5rem; }
.pin-icon {
  width: 48px; height: 48px;
  margin: 0 auto 0.85rem;
  display: flex; align-items: center; justify-content: center;
  color: rgba(160, 210, 255, 0.95);
  filter: drop-shadow(0 0 8px rgba(74, 158, 255, 0.6));
}
.pin-icon svg { width: 100%; height: 100%; }
.pin-header h2 {
  font-family: 'Orbitron', 'Chakra Petch', sans-serif;
  font-size: 1.1rem;
  letter-spacing: 0.18em;
  color: rgba(200, 230, 255, 0.95);
  margin: 0 0 0.35rem;
  text-shadow: 0 0 16px rgba(74, 158, 255, 0.5);
}
.pin-header p {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(140, 180, 220, 0.7);
  margin: 0;
}

.pin-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.35rem;
  margin-bottom: 1rem;
  width: 100%;
}
.pin-cell {
  width: 100%;
  min-width: 0;                                          /* lets grid shrink */
  height: clamp(48px, 13vw, 64px);                       /* explicit height — no aspect ratio clipping */
  font-family: 'Orbitron', 'JetBrains Mono', monospace;
  font-size: clamp(1.1rem, 5vw, 1.5rem);                 /* scales w/ viewport */
  font-weight: 700;
  text-align: center;
  padding: 0 2px;                                        /* tiny side breathing room */
  line-height: 1;
  box-sizing: border-box;
  -webkit-text-fill-color: rgba(200, 230, 255, 1);       /* iOS render fix */
  color: rgba(200, 230, 255, 1);
  background:
    linear-gradient(180deg, rgba(28, 48, 92, 0.42) 0%, rgba(8, 14, 30, 0.7) 100%);
  border: 1px solid rgba(120, 180, 255, 0.22);
  border-radius: 8px;
  outline: none;
  box-shadow:
    inset 0 2px 4px rgba(0, 0, 0, 0.55),
    inset 0 -1px 0 rgba(180, 220, 255, 0.08),
    0 0 0 1px rgba(74, 158, 255, 0.05);
  transition: border-color 200ms ease, background 200ms ease, box-shadow 200ms ease, transform 150ms ease;
  caret-color: rgba(160, 210, 255, 1);
  -webkit-appearance: none;
  appearance: none;
}
.pin-cell:focus {
  border-color: rgba(140, 200, 255, 0.65);
  background:
    linear-gradient(180deg, rgba(40, 70, 130, 0.55) 0%, rgba(12, 22, 48, 0.85) 100%);
  box-shadow:
    inset 0 2px 4px rgba(0, 0, 0, 0.6),
    inset 0 -1px 0 rgba(200, 230, 255, 0.18),
    0 0 0 1px rgba(74, 158, 255, 0.5),
    0 0 16px rgba(74, 158, 255, 0.35);
  transform: translateY(-1px);
}
.pin-cell.filled {
  border-color: rgba(140, 200, 255, 0.5);
  background:
    linear-gradient(180deg, rgba(50, 90, 160, 0.55) 0%, rgba(14, 26, 56, 0.8) 100%);
}

.pin-status {
  text-align: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(140, 180, 220, 0.65);
  padding: 0.65rem 0;
  margin-bottom: 0.75rem;
  border-top: 1px solid rgba(120, 180, 255, 0.1);
  border-bottom: 1px solid rgba(120, 180, 255, 0.1);
  transition: color 200ms ease;
}
.pin-status.error  { color: rgba(255, 80, 100, 0.95); text-shadow: 0 0 8px rgba(255, 50, 80, 0.5); }
.pin-status.success{ color: rgba(80, 230, 130, 0.95); text-shadow: 0 0 8px rgba(50, 220, 110, 0.5); }
.pin-status.busy   { color: rgba(160, 210, 255, 0.95); }

.pin-cancel {
  width: 100%;
  padding: 0.65rem;
  background: transparent;
  border: 1px solid rgba(120, 180, 255, 0.18);
  border-radius: 8px;
  color: rgba(140, 180, 220, 0.7);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 200ms ease;
}
.pin-cancel:hover {
  border-color: rgba(255, 100, 120, 0.4);
  color: rgba(255, 140, 160, 0.9);
  background: rgba(255, 60, 80, 0.06);
}

/* ════════════════════════════════════════════
   PAPER / LIGHT THEME OVERRIDES
   Only apply when [data-theme] is one of the light variants.
   The dark-theme defaults handle themselves via CSS variables.
   ════════════════════════════════════════════ */
[data-theme="paper"] *,
[data-theme="solo"] *,
[data-theme="ivory"] *,
[data-theme="mint"] *,
[data-theme="rose"] * {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
[data-theme="paper"],
[data-theme="solo"],
[data-theme="ivory"],
[data-theme="mint"],
[data-theme="rose"] {
  --shadow-glow: none;
  --bg-pattern: none;
}
[data-theme="paper"] body,
[data-theme="solo"] body,
[data-theme="ivory"] body,
[data-theme="mint"] body,
[data-theme="rose"] body {
  background: var(--bg);
  background-image: none;
}

/* ───── Light-theme surface overrides — paper + depth ─────
   Force white surface AND layered 3D shadows (matching landing). */
[data-theme="paper"] .card,
[data-theme="ivory"] .card,
[data-theme="mint"] .card,
[data-theme="rose"] .card,
[data-theme="solo"] .card,
[data-theme="paper"] .card.glow,
[data-theme="ivory"] .card.glow,
[data-theme="mint"] .card.glow,
[data-theme="rose"] .card.glow,
[data-theme="solo"] .card.glow,
[data-theme="paper"] .drill,
[data-theme="ivory"] .drill,
[data-theme="mint"] .drill,
[data-theme="rose"] .drill,
[data-theme="solo"] .drill,
[data-theme="paper"] .quick,
[data-theme="ivory"] .quick,
[data-theme="mint"] .quick,
[data-theme="rose"] .quick,
[data-theme="solo"] .quick,
[data-theme="paper"] .hunter-card,
[data-theme="ivory"] .hunter-card,
[data-theme="mint"] .hunter-card,
[data-theme="rose"] .hunter-card,
[data-theme="solo"] .hunter-card,
[data-theme="paper"] .modal-card,
[data-theme="ivory"] .modal-card,
[data-theme="mint"] .modal-card,
[data-theme="rose"] .modal-card,
[data-theme="solo"] .modal-card,
[data-theme="paper"] .stat-tile,
[data-theme="ivory"] .stat-tile,
[data-theme="mint"] .stat-tile,
[data-theme="rose"] .stat-tile,
[data-theme="solo"] .stat-tile {
  background: var(--bg-card) !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid var(--border) !important;
  color: var(--text);
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 4px 8px rgba(0, 0, 0, 0.04),
    0 12px 24px rgba(0, 0, 0, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.8) !important;
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease, border-color .3s ease !important;
}
/* Hover lift on the interactive ones */
[data-theme="paper"] .drill:hover,
[data-theme="ivory"] .drill:hover,
[data-theme="mint"] .drill:hover,
[data-theme="rose"] .drill:hover,
[data-theme="solo"] .drill:hover,
[data-theme="paper"] .quick:hover,
[data-theme="ivory"] .quick:hover,
[data-theme="mint"] .quick:hover,
[data-theme="rose"] .quick:hover,
[data-theme="solo"] .quick:hover {
  transform: translateY(-4px) !important;
  border-color: var(--border-strong) !important;
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.04),
    0 8px 16px rgba(0, 0, 0, 0.06),
    0 20px 40px rgba(0, 0, 0, 0.08),
    0 40px 70px rgba(0, 0, 0, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.9) !important;
}
/* Glow cards (Daily Quest container etc) — deeper resting shadow */
[data-theme="paper"] .card.glow,
[data-theme="ivory"] .card.glow,
[data-theme="mint"] .card.glow,
[data-theme="rose"] .card.glow,
[data-theme="solo"] .card.glow {
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 6px 12px rgba(0, 0, 0, 0.05),
    0 18px 36px rgba(0, 0, 0, 0.07),
    0 36px 72px rgba(0, 0, 0, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.85) !important;
}
/* Modal card — strong floating elevation */
[data-theme="paper"] .modal-card,
[data-theme="ivory"] .modal-card,
[data-theme="mint"] .modal-card,
[data-theme="rose"] .modal-card,
[data-theme="solo"] .modal-card {
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.06),
    0 12px 24px rgba(0, 0, 0, 0.1),
    0 32px 60px rgba(0, 0, 0, 0.12),
    0 64px 120px rgba(0, 0, 0, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.9) !important;
}
[data-theme="paper"] .drill .drill-name,
[data-theme="ivory"] .drill .drill-name,
[data-theme="mint"] .drill .drill-name,
[data-theme="rose"] .drill .drill-name,
[data-theme="solo"] .drill .drill-name { color: var(--text) !important; }
[data-theme="paper"] .drill .drill-progress .num,
[data-theme="ivory"] .drill .drill-progress .num,
[data-theme="mint"] .drill .drill-progress .num,
[data-theme="rose"] .drill .drill-progress .num,
[data-theme="solo"] .drill .drill-progress .num { color: var(--accent) !important; }
[data-theme="paper"] .drill .drill-progress .target,
[data-theme="ivory"] .drill .drill-progress .target,
[data-theme="mint"] .drill .drill-progress .target,
[data-theme="rose"] .drill .drill-progress .target,
[data-theme="solo"] .drill .drill-progress .target { color: var(--text-muted) !important; }
[data-theme="paper"] .drill .drill-icon,
[data-theme="ivory"] .drill .drill-icon,
[data-theme="mint"] .drill .drill-icon,
[data-theme="rose"] .drill .drill-icon,
[data-theme="solo"] .drill .drill-icon {
  background: var(--bg-elevated) !important;
  border: 1px solid var(--border) !important;
  color: var(--accent) !important;
}
[data-theme="paper"] .drill .drill-btn,
[data-theme="ivory"] .drill .drill-btn,
[data-theme="mint"] .drill .drill-btn,
[data-theme="rose"] .drill .drill-btn,
[data-theme="solo"] .drill .drill-btn {
  background: var(--bg-elevated) !important;
  border: 1px solid var(--border-strong) !important;
  color: var(--text) !important;
}
[data-theme="paper"] .drill .drill-btn.add,
[data-theme="ivory"] .drill .drill-btn.add,
[data-theme="mint"] .drill .drill-btn.add,
[data-theme="rose"] .drill .drill-btn.add,
[data-theme="solo"] .drill .drill-btn.add {
  background: var(--accent) !important;
  color: #ffffff !important;
  border-color: var(--accent) !important;
  box-shadow: none !important;
}
[data-theme="paper"] .stat-tile,
[data-theme="ivory"] .stat-tile,
[data-theme="mint"] .stat-tile,
[data-theme="rose"] .stat-tile,
[data-theme="solo"] .stat-tile { background: var(--bg-elevated) !important; border: 1px solid var(--border) !important; }
[data-theme="paper"] .stat-tile .val,
[data-theme="ivory"] .stat-tile .val,
[data-theme="mint"] .stat-tile .val,
[data-theme="rose"] .stat-tile .val,
[data-theme="solo"] .stat-tile .val { color: var(--text) !important; text-shadow: none !important; }
[data-theme="paper"] .stat-tile .key,
[data-theme="ivory"] .stat-tile .key,
[data-theme="mint"] .stat-tile .key,
[data-theme="rose"] .stat-tile .key,
[data-theme="solo"] .stat-tile .key { color: var(--text-muted) !important; }
[data-theme="paper"] .section-head h2,
[data-theme="ivory"] .section-head h2,
[data-theme="mint"] .section-head h2,
[data-theme="rose"] .section-head h2,
[data-theme="solo"] .section-head h2 { color: var(--text) !important; text-shadow: none !important; }
[data-theme="paper"] .status-bar,
[data-theme="ivory"] .status-bar,
[data-theme="mint"] .status-bar,
[data-theme="rose"] .status-bar,
[data-theme="solo"] .status-bar,
[data-theme="paper"] .tab-bar,
[data-theme="ivory"] .tab-bar,
[data-theme="mint"] .tab-bar,
[data-theme="rose"] .tab-bar,
[data-theme="solo"] .tab-bar {
  background: rgba(255,255,255,0.92) !important;
  backdrop-filter: blur(20px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(160%) !important;
  border-color: var(--border) !important;
}
/* ── 3D BUTTONS — light catches the top edge, weight pulls the bottom ── */
[data-theme="paper"] .btn,
[data-theme="ivory"] .btn,
[data-theme="mint"] .btn,
[data-theme="rose"] .btn,
[data-theme="solo"] .btn,
[data-theme="paper"] .btn.primary,
[data-theme="ivory"] .btn.primary,
[data-theme="mint"] .btn.primary,
[data-theme="rose"] .btn.primary,
[data-theme="solo"] .btn.primary {
  background:
    linear-gradient(180deg, #2a2a2e 0%, #0a0a0c 50%, #000000 100%) !important;
  color: #ffffff !important;
  border: 1px solid #000000 !important;
  border-top-color: #3a3a3e !important;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    inset 0 -1px 0 rgba(0, 0, 0, 0.4),
    inset 0 0 0 1px rgba(255, 255, 255, 0.04),
    0 1px 1px rgba(0, 0, 0, 0.06),
    0 2px 4px rgba(0, 0, 0, 0.08),
    0 6px 12px rgba(0, 0, 0, 0.16),
    0 12px 24px rgba(0, 0, 0, 0.18),
    0 24px 36px rgba(0, 0, 0, 0.1) !important;
  transition: transform .18s cubic-bezier(.2,.7,.2,1), box-shadow .18s ease, filter .18s ease !important;
  cursor: pointer;
  position: relative;
}
[data-theme="paper"] .btn:hover,
[data-theme="ivory"] .btn:hover,
[data-theme="mint"] .btn:hover,
[data-theme="rose"] .btn:hover,
[data-theme="solo"] .btn:hover {
  transform: translateY(-3px) !important;
  filter: brightness(1.08) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    inset 0 -1px 0 rgba(0, 0, 0, 0.4),
    inset 0 0 0 1px rgba(255, 255, 255, 0.06),
    0 2px 2px rgba(0, 0, 0, 0.08),
    0 6px 10px rgba(0, 0, 0, 0.12),
    0 12px 24px rgba(0, 0, 0, 0.18),
    0 24px 40px rgba(0, 0, 0, 0.22),
    0 40px 60px rgba(0, 0, 0, 0.12) !important;
}
[data-theme="paper"] .btn:active,
[data-theme="ivory"] .btn:active,
[data-theme="mint"] .btn:active,
[data-theme="rose"] .btn:active,
[data-theme="solo"] .btn:active {
  transform: translateY(1px) !important;
  filter: brightness(0.9) !important;
  box-shadow:
    inset 0 2px 4px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(0, 0, 0, 0.2),
    inset 0 -1px 0 rgba(255, 255, 255, 0.06),
    0 1px 1px rgba(0, 0, 0, 0.1),
    0 2px 4px rgba(0, 0, 0, 0.08) !important;
}
[data-theme="paper"] .btn::before,
[data-theme="ivory"] .btn::before,
[data-theme="mint"] .btn::before,
[data-theme="rose"] .btn::before,
[data-theme="solo"] .btn::before { display: none !important; }

/* Ghost buttons — embossed paper, subtle inset highlight */
[data-theme="paper"] .btn.ghost,
[data-theme="ivory"] .btn.ghost,
[data-theme="mint"] .btn.ghost,
[data-theme="rose"] .btn.ghost,
[data-theme="solo"] .btn.ghost {
  background:
    linear-gradient(180deg, #ffffff 0%, #f4f4f5 100%) !important;
  color: var(--text) !important;
  border: 1px solid #d0d0d4 !important;
  border-top-color: #e8e8ec !important;
  border-bottom-color: #b8b8bc !important;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    inset 0 -1px 0 rgba(0, 0, 0, 0.05),
    0 1px 1px rgba(0, 0, 0, 0.04),
    0 2px 4px rgba(0, 0, 0, 0.06),
    0 4px 8px rgba(0, 0, 0, 0.06) !important;
}
[data-theme="paper"] .btn.ghost:hover,
[data-theme="ivory"] .btn.ghost:hover,
[data-theme="mint"] .btn.ghost:hover,
[data-theme="rose"] .btn.ghost:hover,
[data-theme="solo"] .btn.ghost:hover {
  transform: translateY(-2px) !important;
  background:
    linear-gradient(180deg, #ffffff 0%, #ececef 100%) !important;
  border-color: var(--text) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 1),
    0 2px 3px rgba(0, 0, 0, 0.06),
    0 6px 12px rgba(0, 0, 0, 0.1),
    0 12px 22px rgba(0, 0, 0, 0.08) !important;
}
[data-theme="paper"] .btn.ghost:active,
[data-theme="ivory"] .btn.ghost:active,
[data-theme="mint"] .btn.ghost:active,
[data-theme="rose"] .btn.ghost:active,
[data-theme="solo"] .btn.ghost:active {
  transform: translateY(1px) !important;
  background: #f0f0f3 !important;
  box-shadow:
    inset 0 2px 3px rgba(0, 0, 0, 0.08),
    inset 0 1px 0 rgba(0, 0, 0, 0.04) !important;
}

/* Drill +/- buttons — same 3D treatment */
[data-theme="paper"] .drill .drill-btn,
[data-theme="ivory"] .drill .drill-btn,
[data-theme="mint"] .drill .drill-btn,
[data-theme="rose"] .drill .drill-btn,
[data-theme="solo"] .drill .drill-btn {
  background:
    linear-gradient(180deg, #ffffff 0%, #f0f0f3 100%) !important;
  border: 1px solid #c8c8cc !important;
  border-top-color: #e0e0e4 !important;
  border-bottom-color: #b0b0b4 !important;
  color: var(--text) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    inset 0 -1px 0 rgba(0, 0, 0, 0.05),
    0 1px 2px rgba(0, 0, 0, 0.06),
    0 2px 4px rgba(0, 0, 0, 0.06) !important;
  transition: all .15s ease !important;
}
[data-theme="paper"] .drill .drill-btn.add,
[data-theme="ivory"] .drill .drill-btn.add,
[data-theme="mint"] .drill .drill-btn.add,
[data-theme="rose"] .drill .drill-btn.add,
[data-theme="solo"] .drill .drill-btn.add {
  background:
    linear-gradient(180deg, #2a2a2e 0%, #0a0a0c 50%, #000000 100%) !important;
  color: #ffffff !important;
  border: 1px solid #000000 !important;
  border-top-color: #3a3a3e !important;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    inset 0 -1px 0 rgba(0, 0, 0, 0.4),
    0 1px 1px rgba(0, 0, 0, 0.06),
    0 3px 6px rgba(0, 0, 0, 0.12),
    0 6px 12px rgba(0, 0, 0, 0.14) !important;
}
[data-theme="paper"] .drill .drill-btn:active,
[data-theme="ivory"] .drill .drill-btn:active,
[data-theme="mint"] .drill .drill-btn:active,
[data-theme="rose"] .drill .drill-btn:active,
[data-theme="solo"] .drill .drill-btn:active,
[data-theme="paper"] .drill .drill-btn.add:active,
[data-theme="ivory"] .drill .drill-btn.add:active,
[data-theme="mint"] .drill .drill-btn.add:active,
[data-theme="rose"] .drill .drill-btn.add:active,
[data-theme="solo"] .drill .drill-btn.add:active {
  transform: translateY(1px);
  filter: brightness(0.92);
}

/* Auth tabs — segmented control look with 3D selected state */
[data-theme="paper"] .auth-tab,
[data-theme="ivory"] .auth-tab,
[data-theme="mint"] .auth-tab,
[data-theme="rose"] .auth-tab,
[data-theme="solo"] .auth-tab {
  background:
    linear-gradient(180deg, #ffffff 0%, #f4f4f5 100%) !important;
  color: var(--text-soft) !important;
  border: 1px solid #d8d8dc !important;
  border-top-color: #e8e8ec !important;
  border-bottom-color: #c0c0c4 !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 1px 2px rgba(0, 0, 0, 0.04) !important;
}
[data-theme="paper"] .auth-tab.active,
[data-theme="ivory"] .auth-tab.active,
[data-theme="mint"] .auth-tab.active,
[data-theme="rose"] .auth-tab.active,
[data-theme="solo"] .auth-tab.active {
  background:
    linear-gradient(180deg, #2a2a2e 0%, #0a0a0c 50%, #000000 100%) !important;
  color: #ffffff !important;
  border: 1px solid #000000 !important;
  border-top-color: #3a3a3e !important;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    inset 0 -1px 0 rgba(0, 0, 0, 0.4),
    0 2px 4px rgba(0, 0, 0, 0.1),
    0 6px 14px rgba(0, 0, 0, 0.16) !important;
}
[data-theme="paper"] .quick,
[data-theme="ivory"] .quick,
[data-theme="mint"] .quick,
[data-theme="rose"] .quick,
[data-theme="solo"] .quick { background: var(--bg-elevated) !important; border: 1px solid var(--border) !important; color: var(--text); }
[data-theme="paper"] .quick .lbl,
[data-theme="ivory"] .quick .lbl,
[data-theme="mint"] .quick .lbl,
[data-theme="rose"] .quick .lbl,
[data-theme="solo"] .quick .lbl { color: var(--text) !important; }
[data-theme="paper"] .quick .sub,
[data-theme="ivory"] .quick .sub,
[data-theme="mint"] .quick .sub,
[data-theme="rose"] .quick .sub,
[data-theme="solo"] .quick .sub { color: var(--text-muted) !important; }
[data-theme="paper"] .hunter-card,
[data-theme="ivory"] .hunter-card,
[data-theme="mint"] .hunter-card,
[data-theme="rose"] .hunter-card,
[data-theme="solo"] .hunter-card { background: var(--bg-elevated) !important; border: 1px solid var(--border) !important; color: var(--text) !important; }
[data-theme="paper"] .auth-screen,
[data-theme="ivory"] .auth-screen,
[data-theme="mint"] .auth-screen,
[data-theme="rose"] .auth-screen,
[data-theme="solo"] .auth-screen { background: var(--bg) !important; }
[data-theme="paper"] .auth-card,
[data-theme="ivory"] .auth-card,
[data-theme="mint"] .auth-card,
[data-theme="rose"] .auth-card,
[data-theme="solo"] .auth-card {
  background: var(--bg-elevated) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow-card) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
[data-theme="paper"] input,
[data-theme="ivory"] input,
[data-theme="mint"] input,
[data-theme="rose"] input,
[data-theme="solo"] input,
[data-theme="paper"] textarea,
[data-theme="ivory"] textarea,
[data-theme="mint"] textarea,
[data-theme="rose"] textarea,
[data-theme="solo"] textarea {
  background: var(--bg) !important;
  border-color: var(--border-strong) !important;
  color: var(--text) !important;
}

/* ═══════════════════════════════════════════════════════════════
   PAPER — SWEEPING OVERRIDES
   Force every component to white/black regardless of hardcoded colors.
   ═══════════════════════════════════════════════════════════════ */

/* Kill ALL backdrop-filters under paper (no frosted glass on white) */
[data-theme="paper"] *,
[data-theme="solo"] *,
[data-theme="ivory"] *,
[data-theme="mint"] *,
[data-theme="rose"] *,
[data-theme="paper"] *::before,
[data-theme="solo"] *::before,
[data-theme="ivory"] *::before,
[data-theme="mint"] *::before,
[data-theme="rose"] *::before,
[data-theme="paper"] *::after,
[data-theme="solo"] *::after ,
[data-theme="ivory"] *::after,
[data-theme="mint"] *::after,
[data-theme="rose"] *::after{
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Any element using the old dark-blue gradient patterns → white card */
[data-theme="paper"] [class*="card"],
[data-theme="solo"] [class*="card"],
[data-theme="ivory"] [class*="card"],
[data-theme="mint"] [class*="card"],
[data-theme="rose"] [class*="card"],
[data-theme="paper"] [class*="-card"],
[data-theme="solo"] [class*="-card"],
[data-theme="ivory"] [class*="-card"],
[data-theme="mint"] [class*="-card"],
[data-theme="rose"] [class*="-card"],
[data-theme="paper"] [class*="tile"],
[data-theme="solo"] [class*="tile"],
[data-theme="ivory"] [class*="tile"],
[data-theme="mint"] [class*="tile"],
[data-theme="rose"] [class*="tile"],
[data-theme="paper"] [class*="pill"],
[data-theme="solo"] [class*="pill"],
[data-theme="ivory"] [class*="pill"],
[data-theme="mint"] [class*="pill"],
[data-theme="rose"] [class*="pill"],
[data-theme="paper"] [class*="row"]:not(.toggle-row):not(.lb-row),
[data-theme="solo"] [class*="row"]:not(.toggle-row):not(.lb-row),
[data-theme="ivory"] [class*="row"]:not(.toggle-row):not(.lb-row),
[data-theme="mint"] [class*="row"]:not(.toggle-row):not(.lb-row),
[data-theme="rose"] [class*="row"]:not(.toggle-row):not(.lb-row),
[data-theme="paper"] [class*="badge"]:not(.badge-xp),
[data-theme="solo"] [class*="badge"]:not(.badge-xp),
[data-theme="ivory"] [class*="badge"]:not(.badge-xp),
[data-theme="mint"] [class*="badge"]:not(.badge-xp),
[data-theme="rose"] [class*="badge"]:not(.badge-xp),
[data-theme="paper"] .glass,
[data-theme="solo"] .glass,
[data-theme="ivory"] .glass,
[data-theme="mint"] .glass,
[data-theme="rose"] .glass,
[data-theme="paper"] .glass-strong,
[data-theme="solo"] .glass-strong,
[data-theme="ivory"] .glass-strong,
[data-theme="mint"] .glass-strong,
[data-theme="rose"] .glass-strong,
[data-theme="paper"] .modal,
[data-theme="solo"] .modal,
[data-theme="ivory"] .modal,
[data-theme="mint"] .modal,
[data-theme="rose"] .modal,
[data-theme="paper"] .modal-card,
[data-theme="solo"] .modal-card,
[data-theme="ivory"] .modal-card,
[data-theme="mint"] .modal-card,
[data-theme="rose"] .modal-card,
[data-theme="paper"] .day-detail,
[data-theme="solo"] .day-detail,
[data-theme="ivory"] .day-detail,
[data-theme="mint"] .day-detail,
[data-theme="rose"] .day-detail,
[data-theme="paper"] .day-detail-ex,
[data-theme="solo"] .day-detail-ex,
[data-theme="ivory"] .day-detail-ex,
[data-theme="mint"] .day-detail-ex,
[data-theme="rose"] .day-detail-ex,
[data-theme="paper"] .day-detail-list,
[data-theme="solo"] .day-detail-list,
[data-theme="ivory"] .day-detail-list,
[data-theme="mint"] .day-detail-list,
[data-theme="rose"] .day-detail-list,
[data-theme="paper"] .ex-card,
[data-theme="solo"] .ex-card,
[data-theme="ivory"] .ex-card,
[data-theme="mint"] .ex-card,
[data-theme="rose"] .ex-card,
[data-theme="paper"] .ex-tag,
[data-theme="solo"] .ex-tag,
[data-theme="ivory"] .ex-tag,
[data-theme="mint"] .ex-tag,
[data-theme="rose"] .ex-tag,
[data-theme="paper"] .meal-card,
[data-theme="solo"] .meal-card,
[data-theme="ivory"] .meal-card,
[data-theme="mint"] .meal-card,
[data-theme="rose"] .meal-card,
[data-theme="paper"] .macro,
[data-theme="solo"] .macro,
[data-theme="ivory"] .macro,
[data-theme="mint"] .macro,
[data-theme="rose"] .macro,
[data-theme="paper"] .task,
[data-theme="solo"] .task,
[data-theme="ivory"] .task,
[data-theme="mint"] .task,
[data-theme="rose"] .task,
[data-theme="paper"] .cal-cell,
[data-theme="solo"] .cal-cell,
[data-theme="ivory"] .cal-cell,
[data-theme="mint"] .cal-cell,
[data-theme="rose"] .cal-cell,
[data-theme="paper"] .cal-day,
[data-theme="solo"] .cal-day,
[data-theme="ivory"] .cal-day,
[data-theme="mint"] .cal-day,
[data-theme="rose"] .cal-day,
[data-theme="paper"] .plan-day,
[data-theme="solo"] .plan-day,
[data-theme="ivory"] .plan-day,
[data-theme="mint"] .plan-day,
[data-theme="rose"] .plan-day,
[data-theme="paper"] .plan-template-card,
[data-theme="solo"] .plan-template-card,
[data-theme="ivory"] .plan-template-card,
[data-theme="mint"] .plan-template-card,
[data-theme="rose"] .plan-template-card,
[data-theme="paper"] .hunter-card,
[data-theme="solo"] .hunter-card,
[data-theme="ivory"] .hunter-card,
[data-theme="mint"] .hunter-card,
[data-theme="rose"] .hunter-card,
[data-theme="paper"] .empty,
[data-theme="solo"] .empty,
[data-theme="ivory"] .empty,
[data-theme="mint"] .empty,
[data-theme="rose"] .empty,
[data-theme="paper"] .pin-card,
[data-theme="solo"] .pin-card,
[data-theme="ivory"] .pin-card,
[data-theme="mint"] .pin-card,
[data-theme="rose"] .pin-card,
[data-theme="paper"] .pin-input-row,
[data-theme="solo"] .pin-input-row,
[data-theme="ivory"] .pin-input-row,
[data-theme="mint"] .pin-input-row,
[data-theme="rose"] .pin-input-row,
[data-theme="paper"] .lb-tabs,
[data-theme="solo"] .lb-tabs,
[data-theme="ivory"] .lb-tabs,
[data-theme="mint"] .lb-tabs,
[data-theme="rose"] .lb-tabs,
[data-theme="paper"] .checkbox-card,
[data-theme="solo"] .checkbox-card,
[data-theme="ivory"] .checkbox-card,
[data-theme="mint"] .checkbox-card,
[data-theme="rose"] .checkbox-card,
[data-theme="paper"] .radio-card,
[data-theme="solo"] .radio-card,
[data-theme="ivory"] .radio-card,
[data-theme="mint"] .radio-card,
[data-theme="rose"] .radio-card,
[data-theme="paper"] .week-strip,
[data-theme="solo"] .week-strip,
[data-theme="ivory"] .week-strip,
[data-theme="mint"] .week-strip,
[data-theme="rose"] .week-strip,
[data-theme="paper"] .week-day,
[data-theme="solo"] .week-day,
[data-theme="ivory"] .week-day,
[data-theme="mint"] .week-day,
[data-theme="rose"] .week-day,
[data-theme="paper"] .xp-pill,
[data-theme="solo"] .xp-pill,
[data-theme="ivory"] .xp-pill,
[data-theme="mint"] .xp-pill,
[data-theme="rose"] .xp-pill,
[data-theme="paper"] .badge-xp,
[data-theme="solo"] .badge-xp,
[data-theme="ivory"] .badge-xp,
[data-theme="mint"] .badge-xp,
[data-theme="rose"] .badge-xp,
[data-theme="paper"] .rank-badge,
[data-theme="solo"] .rank-badge,
[data-theme="ivory"] .rank-badge,
[data-theme="mint"] .rank-badge,
[data-theme="rose"] .rank-badge,
[data-theme="paper"] .ranks-grid > div,
[data-theme="solo"] .ranks-grid > div,
[data-theme="ivory"] .ranks-grid > div,
[data-theme="mint"] .ranks-grid > div,
[data-theme="rose"] .ranks-grid > div,
[data-theme="paper"] .tutorial,
[data-theme="solo"] .tutorial,
[data-theme="ivory"] .tutorial,
[data-theme="mint"] .tutorial,
[data-theme="rose"] .tutorial,
[data-theme="paper"] .tutorial-card,
[data-theme="solo"] .tutorial-card,
[data-theme="ivory"] .tutorial-card,
[data-theme="mint"] .tutorial-card,
[data-theme="rose"] .tutorial-card,
[data-theme="paper"] .auth-tabs,
[data-theme="solo"] .auth-tabs,
[data-theme="ivory"] .auth-tabs,
[data-theme="mint"] .auth-tabs,
[data-theme="rose"] .auth-tabs,
[data-theme="paper"] [class*="exercise"]:not(button),
[data-theme="solo"] [class*="exercise"]:not(button) ,
[data-theme="ivory"] [class*="exercise"]:not(button),
[data-theme="mint"] [class*="exercise"]:not(button),
[data-theme="rose"] [class*="exercise"]:not(button){
  background-color: var(--bg-card) !important;
  background-image: none !important;
  color: var(--text);
  border-color: var(--border) !important;
}

/* Leaderboard rows specifically — alternating */
[data-theme="paper"] .lb-row,
[data-theme="solo"] .lb-row ,
[data-theme="ivory"] .lb-row,
[data-theme="mint"] .lb-row,
[data-theme="rose"] .lb-row{
  background: var(--bg-card) !important;
  background-image: none !important;
  border: 1px solid var(--border) !important;
  border-radius: 10px;
  margin-bottom: 0.4rem;
  padding: 0.7rem 0.85rem;
  color: var(--text);
}
[data-theme="paper"] .lb-row.you,
[data-theme="solo"] .lb-row.you ,
[data-theme="ivory"] .lb-row.you,
[data-theme="mint"] .lb-row.you,
[data-theme="rose"] .lb-row.you{
  background: var(--bg-elevated) !important;
  border-color: var(--accent) !important;
}
[data-theme="paper"] .lb-name .h,
[data-theme="solo"] .lb-name .h ,
[data-theme="ivory"] .lb-name .h,
[data-theme="mint"] .lb-name .h,
[data-theme="rose"] .lb-name .h{ color: var(--text) !important; }
[data-theme="paper"] .lb-name .u,
[data-theme="solo"] .lb-name .u ,
[data-theme="ivory"] .lb-name .u,
[data-theme="mint"] .lb-name .u,
[data-theme="rose"] .lb-name .u{ color: var(--text-muted) !important; }
[data-theme="paper"] .lb-stat,
[data-theme="solo"] .lb-stat ,
[data-theme="ivory"] .lb-stat,
[data-theme="mint"] .lb-stat,
[data-theme="rose"] .lb-stat{ color: var(--text) !important; font-family: var(--font-mono); }
[data-theme="paper"] .lb-rank,
[data-theme="solo"] .lb-rank ,
[data-theme="ivory"] .lb-rank,
[data-theme="mint"] .lb-rank,
[data-theme="rose"] .lb-rank{ color: var(--text); font-family: var(--font-mono); }
[data-theme="paper"] .lb-rank.gold,
[data-theme="solo"] .lb-rank.gold ,
[data-theme="ivory"] .lb-rank.gold,
[data-theme="mint"] .lb-rank.gold,
[data-theme="rose"] .lb-rank.gold{ color: #c9a14a; }
[data-theme="paper"] .lb-rank.silver,
[data-theme="solo"] .lb-rank.silver ,
[data-theme="ivory"] .lb-rank.silver,
[data-theme="mint"] .lb-rank.silver,
[data-theme="rose"] .lb-rank.silver{ color: #8a8a90; }
[data-theme="paper"] .lb-rank.bronze,
[data-theme="solo"] .lb-rank.bronze ,
[data-theme="ivory"] .lb-rank.bronze,
[data-theme="mint"] .lb-rank.bronze,
[data-theme="rose"] .lb-rank.bronze{ color: #a06a3a; }

/* Leaderboard tab pills (All-Time / Active / Streak) */
[data-theme="paper"] .lb-tab,
[data-theme="solo"] .lb-tab ,
[data-theme="ivory"] .lb-tab,
[data-theme="mint"] .lb-tab,
[data-theme="rose"] .lb-tab{
  background: var(--bg-elevated) !important;
  color: var(--text-soft) !important;
  border: 1px solid var(--border) !important;
}
[data-theme="paper"] .lb-tab.active,
[data-theme="solo"] .lb-tab.active ,
[data-theme="ivory"] .lb-tab.active,
[data-theme="mint"] .lb-tab.active,
[data-theme="rose"] .lb-tab.active{
  background: var(--accent) !important;
  color: #ffffff !important;
  border-color: var(--accent) !important;
  text-shadow: none !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.12) !important;
}

/* Calendar / plan grid cells */
[data-theme="paper"] .cal-cell,
[data-theme="solo"] .cal-cell,
[data-theme="ivory"] .cal-cell,
[data-theme="mint"] .cal-cell,
[data-theme="rose"] .cal-cell,
[data-theme="paper"] .plan-day,
[data-theme="solo"] .plan-day,
[data-theme="ivory"] .plan-day,
[data-theme="mint"] .plan-day,
[data-theme="rose"] .plan-day,
[data-theme="paper"] .week-day,
[data-theme="solo"] .week-day ,
[data-theme="ivory"] .week-day,
[data-theme="mint"] .week-day,
[data-theme="rose"] .week-day{
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  box-shadow:
    0 1px 2px rgba(0,0,0,0.04),
    0 2px 6px rgba(0,0,0,0.05),
    inset 0 1px 0 rgba(255,255,255,0.6) !important;
}
[data-theme="paper"] .cal-cell.today,
[data-theme="solo"] .cal-cell.today,
[data-theme="ivory"] .cal-cell.today,
[data-theme="mint"] .cal-cell.today,
[data-theme="rose"] .cal-cell.today,
[data-theme="paper"] .plan-day.today,
[data-theme="solo"] .plan-day.today,
[data-theme="ivory"] .plan-day.today,
[data-theme="mint"] .plan-day.today,
[data-theme="rose"] .plan-day.today,
[data-theme="paper"] .week-day.today,
[data-theme="solo"] .week-day.today ,
[data-theme="ivory"] .week-day.today,
[data-theme="mint"] .week-day.today,
[data-theme="rose"] .week-day.today{
  border-color: var(--accent) !important;
  border-width: 2px !important;
  background: var(--bg-elevated) !important;
}
[data-theme="paper"] .cal-cell.rest,
[data-theme="solo"] .cal-cell.rest,
[data-theme="ivory"] .cal-cell.rest,
[data-theme="mint"] .cal-cell.rest,
[data-theme="rose"] .cal-cell.rest,
[data-theme="paper"] .plan-day.rest,
[data-theme="solo"] .plan-day.rest ,
[data-theme="ivory"] .plan-day.rest,
[data-theme="mint"] .plan-day.rest,
[data-theme="rose"] .plan-day.rest{ background: var(--bg-elevated) !important; opacity: 0.7; }

/* Exercise cards in the Arsenal browser */
[data-theme="paper"] .ex-card,
[data-theme="solo"] .ex-card ,
[data-theme="ivory"] .ex-card,
[data-theme="mint"] .ex-card,
[data-theme="rose"] .ex-card{
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  box-shadow:
    0 1px 2px rgba(0,0,0,0.04),
    0 4px 10px rgba(0,0,0,0.05),
    inset 0 1px 0 rgba(255,255,255,0.7) !important;
}
[data-theme="paper"] .ex-card:hover,
[data-theme="solo"] .ex-card:hover ,
[data-theme="ivory"] .ex-card:hover,
[data-theme="mint"] .ex-card:hover,
[data-theme="rose"] .ex-card:hover{
  border-color: var(--border-strong) !important;
  transform: translateY(-2px);
  box-shadow:
    0 4px 8px rgba(0,0,0,0.06),
    0 12px 24px rgba(0,0,0,0.08) !important;
}
[data-theme="paper"] .ex-card .name,
[data-theme="solo"] .ex-card .name,
[data-theme="ivory"] .ex-card .name,
[data-theme="mint"] .ex-card .name,
[data-theme="rose"] .ex-card .name,
[data-theme="paper"] .ex-card .body,
[data-theme="solo"] .ex-card .body,
[data-theme="ivory"] .ex-card .body,
[data-theme="mint"] .ex-card .body,
[data-theme="rose"] .ex-card .body,
[data-theme="paper"] .ex-card .h,
[data-theme="solo"] .ex-card .h ,
[data-theme="ivory"] .ex-card .h,
[data-theme="mint"] .ex-card .h,
[data-theme="rose"] .ex-card .h{ color: var(--text) !important; }
[data-theme="paper"] .ex-tag,
[data-theme="solo"] .ex-tag ,
[data-theme="ivory"] .ex-tag,
[data-theme="mint"] .ex-tag,
[data-theme="rose"] .ex-tag{
  background: var(--bg-elevated) !important;
  color: var(--text-soft) !important;
  border: 1px solid var(--border) !important;
}

/* Category filter pills (ALL / Back / Chest / etc.) */
[data-theme="paper"] .cat-pill,
[data-theme="solo"] .cat-pill,
[data-theme="ivory"] .cat-pill,
[data-theme="mint"] .cat-pill,
[data-theme="rose"] .cat-pill,
[data-theme="paper"] [class*="filter-pill"],
[data-theme="solo"] [class*="filter-pill"] ,
[data-theme="ivory"] [class*="filter-pill"],
[data-theme="mint"] [class*="filter-pill"],
[data-theme="rose"] [class*="filter-pill"]{
  background: var(--bg-elevated) !important;
  color: var(--text-soft) !important;
  border: 1px solid var(--border) !important;
}
[data-theme="paper"] .cat-pill.active,
[data-theme="solo"] .cat-pill.active,
[data-theme="ivory"] .cat-pill.active,
[data-theme="mint"] .cat-pill.active,
[data-theme="rose"] .cat-pill.active,
[data-theme="paper"] [class*="filter-pill"].active,
[data-theme="solo"] [class*="filter-pill"].active ,
[data-theme="ivory"] [class*="filter-pill"].active,
[data-theme="mint"] [class*="filter-pill"].active,
[data-theme="rose"] [class*="filter-pill"].active{
  background: var(--accent) !important;
  color: #ffffff !important;
  border-color: var(--accent) !important;
}

/* Modal backdrop + card */
[data-theme="paper"] .modal,
[data-theme="solo"] .modal ,
[data-theme="ivory"] .modal,
[data-theme="mint"] .modal,
[data-theme="rose"] .modal{
  background: rgba(0, 0, 0, 0.45) !important;
}
[data-theme="paper"] .modal-card,
[data-theme="solo"] .modal-card ,
[data-theme="ivory"] .modal-card,
[data-theme="mint"] .modal-card,
[data-theme="rose"] .modal-card{
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.06),
    0 12px 24px rgba(0, 0, 0, 0.1),
    0 32px 60px rgba(0, 0, 0, 0.12),
    0 64px 120px rgba(0, 0, 0, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.9) !important;
}
[data-theme="paper"] .modal-card h1,
[data-theme="solo"] .modal-card h1,
[data-theme="ivory"] .modal-card h1,
[data-theme="mint"] .modal-card h1,
[data-theme="rose"] .modal-card h1,
[data-theme="paper"] .modal-card h2,
[data-theme="solo"] .modal-card h2,
[data-theme="ivory"] .modal-card h2,
[data-theme="mint"] .modal-card h2,
[data-theme="rose"] .modal-card h2,
[data-theme="paper"] .modal-card h3,
[data-theme="solo"] .modal-card h3,
[data-theme="ivory"] .modal-card h3,
[data-theme="mint"] .modal-card h3,
[data-theme="rose"] .modal-card h3,
[data-theme="paper"] .modal-card h4,
[data-theme="solo"] .modal-card h4,
[data-theme="ivory"] .modal-card h4,
[data-theme="mint"] .modal-card h4,
[data-theme="rose"] .modal-card h4,
[data-theme="paper"] .modal-card p,
[data-theme="solo"] .modal-card p,
[data-theme="ivory"] .modal-card p,
[data-theme="mint"] .modal-card p,
[data-theme="rose"] .modal-card p,
[data-theme="paper"] .modal-card label,
[data-theme="solo"] .modal-card label ,
[data-theme="ivory"] .modal-card label,
[data-theme="mint"] .modal-card label,
[data-theme="rose"] .modal-card label{ color: var(--text) !important; }

/* Tasks (Daily Tasks list) */
[data-theme="paper"] .task,
[data-theme="solo"] .task ,
[data-theme="ivory"] .task,
[data-theme="mint"] .task,
[data-theme="rose"] .task{
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
}
[data-theme="paper"] .task .h,
[data-theme="solo"] .task .h ,
[data-theme="ivory"] .task .h,
[data-theme="mint"] .task .h,
[data-theme="rose"] .task .h{ color: var(--text) !important; }
[data-theme="paper"] .task .body,
[data-theme="solo"] .task .body ,
[data-theme="ivory"] .task .body,
[data-theme="mint"] .task .body,
[data-theme="rose"] .task .body{ color: var(--text-soft) !important; }

/* Meal cards (Fuel tab) */
[data-theme="paper"] .meal-card,
[data-theme="solo"] .meal-card ,
[data-theme="ivory"] .meal-card,
[data-theme="mint"] .meal-card,
[data-theme="rose"] .meal-card{
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
}
[data-theme="paper"] .macro,
[data-theme="solo"] .macro ,
[data-theme="ivory"] .macro,
[data-theme="mint"] .macro,
[data-theme="rose"] .macro{
  background: var(--bg-elevated) !important;
  border: 1px solid var(--border) !important;
}
[data-theme="paper"] .macro .val,
[data-theme="solo"] .macro .val ,
[data-theme="ivory"] .macro .val,
[data-theme="mint"] .macro .val,
[data-theme="rose"] .macro .val{ color: var(--text) !important; }
[data-theme="paper"] .macro .key,
[data-theme="solo"] .macro .key ,
[data-theme="ivory"] .macro .key,
[data-theme="mint"] .macro .key,
[data-theme="rose"] .macro .key{ color: var(--text-muted) !important; }

/* XP / level / rank pills */
[data-theme="paper"] .xp-pill,
[data-theme="solo"] .xp-pill,
[data-theme="ivory"] .xp-pill,
[data-theme="mint"] .xp-pill,
[data-theme="rose"] .xp-pill,
[data-theme="paper"] .badge-xp,
[data-theme="solo"] .badge-xp,
[data-theme="ivory"] .badge-xp,
[data-theme="mint"] .badge-xp,
[data-theme="rose"] .badge-xp,
[data-theme="paper"] .rank-badge,
[data-theme="solo"] .rank-badge ,
[data-theme="ivory"] .rank-badge,
[data-theme="mint"] .rank-badge,
[data-theme="rose"] .rank-badge{
  background: var(--bg-elevated) !important;
  color: var(--text) !important;
  border: 1px solid var(--border-strong) !important;
}

/* Empty state messages */
[data-theme="paper"] .empty,
[data-theme="solo"] .empty ,
[data-theme="ivory"] .empty,
[data-theme="mint"] .empty,
[data-theme="rose"] .empty{
  background: var(--bg-elevated) !important;
  color: var(--text-muted) !important;
  border: 1px solid var(--border) !important;
}

/* Progress page heatmap cells — black + gray scale */
[data-theme="paper"] .hm-cell.hm-0,
[data-theme="solo"] .hm-cell.hm-0 ,
[data-theme="ivory"] .hm-cell.hm-0,
[data-theme="mint"] .hm-cell.hm-0,
[data-theme="rose"] .hm-cell.hm-0{ background: var(--bg-elevated) !important; }
[data-theme="paper"] .hm-cell.hm-1,
[data-theme="solo"] .hm-cell.hm-1 ,
[data-theme="ivory"] .hm-cell.hm-1,
[data-theme="mint"] .hm-cell.hm-1,
[data-theme="rose"] .hm-cell.hm-1{ background: #d4d4d8 !important; }
[data-theme="paper"] .hm-cell.hm-2,
[data-theme="solo"] .hm-cell.hm-2 ,
[data-theme="ivory"] .hm-cell.hm-2,
[data-theme="mint"] .hm-cell.hm-2,
[data-theme="rose"] .hm-cell.hm-2{ background: #71717a !important; }
[data-theme="paper"] .hm-cell.hm-3,
[data-theme="solo"] .hm-cell.hm-3 ,
[data-theme="ivory"] .hm-cell.hm-3,
[data-theme="mint"] .hm-cell.hm-3,
[data-theme="rose"] .hm-cell.hm-3{ background: #3f3f46 !important; }
[data-theme="paper"] .hm-cell.hm-4,
[data-theme="solo"] .hm-cell.hm-4 ,
[data-theme="ivory"] .hm-cell.hm-4,
[data-theme="mint"] .hm-cell.hm-4,
[data-theme="rose"] .hm-cell.hm-4{ background: var(--accent) !important; box-shadow: 0 0 6px rgba(0,0,0,0.15) !important; }

/* Quest streak grid cells */
[data-theme="paper"] .qcell,
[data-theme="solo"] .qcell ,
[data-theme="ivory"] .qcell,
[data-theme="mint"] .qcell,
[data-theme="rose"] .qcell{ background: var(--bg-elevated) !important; color: var(--text-muted) !important; }
[data-theme="paper"] .qcell.q-25,
[data-theme="solo"] .qcell.q-25 ,
[data-theme="ivory"] .qcell.q-25,
[data-theme="mint"] .qcell.q-25,
[data-theme="rose"] .qcell.q-25{ background: #e4e4e7 !important; color: var(--text-muted) !important; }
[data-theme="paper"] .qcell.q-50,
[data-theme="solo"] .qcell.q-50 ,
[data-theme="ivory"] .qcell.q-50,
[data-theme="mint"] .qcell.q-50,
[data-theme="rose"] .qcell.q-50{ background: #a1a1aa !important; color: #ffffff !important; }
[data-theme="paper"] .qcell.q-75,
[data-theme="solo"] .qcell.q-75 ,
[data-theme="ivory"] .qcell.q-75,
[data-theme="mint"] .qcell.q-75,
[data-theme="rose"] .qcell.q-75{ background: #52525b !important; color: #ffffff !important; }
[data-theme="paper"] .qcell.q-100,
[data-theme="solo"] .qcell.q-100 ,
[data-theme="ivory"] .qcell.q-100,
[data-theme="mint"] .qcell.q-100,
[data-theme="rose"] .qcell.q-100{ background: var(--accent) !important; color: #ffffff !important; box-shadow: 0 0 8px rgba(0,0,0,0.18) !important; }

/* Weekly volume bars */
[data-theme="paper"] .vol-bar-track,
[data-theme="solo"] .vol-bar-track ,
[data-theme="ivory"] .vol-bar-track,
[data-theme="mint"] .vol-bar-track,
[data-theme="rose"] .vol-bar-track{ background: var(--bg-elevated) !important; }
[data-theme="paper"] .vol-bar-fill,
[data-theme="solo"] .vol-bar-fill ,
[data-theme="ivory"] .vol-bar-fill,
[data-theme="mint"] .vol-bar-fill,
[data-theme="rose"] .vol-bar-fill{ background: var(--accent) !important; }
[data-theme="paper"] .vol-label,
[data-theme="solo"] .vol-label ,
[data-theme="ivory"] .vol-label,
[data-theme="mint"] .vol-label,
[data-theme="rose"] .vol-label{ color: var(--text-soft) !important; }
[data-theme="paper"] .vol-num,
[data-theme="solo"] .vol-num ,
[data-theme="ivory"] .vol-num,
[data-theme="mint"] .vol-num,
[data-theme="rose"] .vol-num{ color: var(--text) !important; }

/* PR list items */
[data-theme="paper"] .pr-item,
[data-theme="solo"] .pr-item ,
[data-theme="ivory"] .pr-item,
[data-theme="mint"] .pr-item,
[data-theme="rose"] .pr-item{
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  border-left: 3px solid var(--accent) !important;
  color: var(--text) !important;
}
[data-theme="paper"] .pr-name,
[data-theme="solo"] .pr-name ,
[data-theme="ivory"] .pr-name,
[data-theme="mint"] .pr-name,
[data-theme="rose"] .pr-name{ color: var(--text) !important; }
[data-theme="paper"] .pr-val,
[data-theme="solo"] .pr-val ,
[data-theme="ivory"] .pr-val,
[data-theme="mint"] .pr-val,
[data-theme="rose"] .pr-val{ color: var(--text) !important; }
[data-theme="paper"] .pr-date,
[data-theme="solo"] .pr-date ,
[data-theme="ivory"] .pr-date,
[data-theme="mint"] .pr-date,
[data-theme="rose"] .pr-date{ color: var(--text-muted) !important; }

/* Progress summary tiles */
[data-theme="paper"] .ptile,
[data-theme="solo"] .ptile ,
[data-theme="ivory"] .ptile,
[data-theme="mint"] .ptile,
[data-theme="rose"] .ptile{
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  box-shadow:
    0 1px 2px rgba(0,0,0,0.04),
    0 2px 6px rgba(0,0,0,0.05),
    inset 0 1px 0 rgba(255,255,255,0.6) !important;
}
[data-theme="paper"] .ptile-val,
[data-theme="solo"] .ptile-val ,
[data-theme="ivory"] .ptile-val,
[data-theme="mint"] .ptile-val,
[data-theme="rose"] .ptile-val{ color: var(--text) !important; text-shadow: none !important; }
[data-theme="paper"] .ptile-key,
[data-theme="solo"] .ptile-key,
[data-theme="ivory"] .ptile-key,
[data-theme="mint"] .ptile-key,
[data-theme="rose"] .ptile-key,
[data-theme="paper"] .ptile-sub,
[data-theme="solo"] .ptile-sub ,
[data-theme="ivory"] .ptile-sub,
[data-theme="mint"] .ptile-sub,
[data-theme="rose"] .ptile-sub{ color: var(--text-muted) !important; }

/* Chart cards */
[data-theme="paper"] .chart-card,
[data-theme="solo"] .chart-card ,
[data-theme="ivory"] .chart-card,
[data-theme="mint"] .chart-card,
[data-theme="rose"] .chart-card{
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  box-shadow:
    0 1px 2px rgba(0,0,0,0.04),
    0 4px 10px rgba(0,0,0,0.05),
    0 12px 24px rgba(0,0,0,0.05),
    inset 0 1px 0 rgba(255,255,255,0.7) !important;
}
[data-theme="paper"] .chart-head h3,
[data-theme="solo"] .chart-head h3 ,
[data-theme="ivory"] .chart-head h3,
[data-theme="mint"] .chart-head h3,
[data-theme="rose"] .chart-head h3{ color: var(--text) !important; text-shadow: none !important; }
[data-theme="paper"] .chart-meta,
[data-theme="solo"] .chart-meta ,
[data-theme="ivory"] .chart-meta,
[data-theme="mint"] .chart-meta,
[data-theme="rose"] .chart-meta{ color: var(--text-muted) !important; }
[data-theme="paper"] .line-chart .data-line,
[data-theme="solo"] .line-chart .data-line ,
[data-theme="ivory"] .line-chart .data-line,
[data-theme="mint"] .line-chart .data-line,
[data-theme="rose"] .line-chart .data-line{ stroke: var(--accent) !important; filter: none !important; }
[data-theme="paper"] .line-chart .data-pt,
[data-theme="solo"] .line-chart .data-pt ,
[data-theme="ivory"] .line-chart .data-pt,
[data-theme="mint"] .line-chart .data-pt,
[data-theme="rose"] .line-chart .data-pt{ fill: var(--accent) !important; stroke: var(--bg) !important; }

/* Referral card stat tiles */
[data-theme="paper"] .ref-stat,
[data-theme="solo"] .ref-stat ,
[data-theme="ivory"] .ref-stat,
[data-theme="mint"] .ref-stat,
[data-theme="rose"] .ref-stat{ background: var(--bg-elevated) !important; border: 1px solid var(--border) !important; }
[data-theme="paper"] .ref-stat-val,
[data-theme="solo"] .ref-stat-val ,
[data-theme="ivory"] .ref-stat-val,
[data-theme="mint"] .ref-stat-val,
[data-theme="rose"] .ref-stat-val{ color: var(--text) !important; }
[data-theme="paper"] .ref-stat-key,
[data-theme="solo"] .ref-stat-key ,
[data-theme="ivory"] .ref-stat-key,
[data-theme="mint"] .ref-stat-key,
[data-theme="rose"] .ref-stat-key{ color: var(--text-muted) !important; }
[data-theme="paper"] .ref-link-wrap input[type="text"],
[data-theme="solo"] .ref-link-wrap input[type="text"] ,
[data-theme="ivory"] .ref-link-wrap input[type="text"],
[data-theme="mint"] .ref-link-wrap input[type="text"],
[data-theme="rose"] .ref-link-wrap input[type="text"]{
  background: var(--bg) !important;
  border: 1px solid var(--border-strong) !important;
  color: var(--text) !important;
}

/* Top status bar (Sign Out icon etc.) */
[data-theme="paper"] .status-bar,
[data-theme="solo"] .status-bar ,
[data-theme="ivory"] .status-bar,
[data-theme="mint"] .status-bar,
[data-theme="rose"] .status-bar{
  background: rgba(255, 255, 255, 0.95) !important;
  border-bottom: 1px solid var(--border) !important;
  color: var(--text) !important;
}
[data-theme="paper"] .status-bar *,
[data-theme="solo"] .status-bar * ,
[data-theme="ivory"] .status-bar *,
[data-theme="mint"] .status-bar *,
[data-theme="rose"] .status-bar *{ color: var(--text); }

/* Bottom tab bar */
[data-theme="paper"] .tab-bar,
[data-theme="solo"] .tab-bar ,
[data-theme="ivory"] .tab-bar,
[data-theme="mint"] .tab-bar,
[data-theme="rose"] .tab-bar{
  background: rgba(255, 255, 255, 0.95) !important;
  border-top: 1px solid var(--border) !important;
}
[data-theme="paper"] .tab-btn,
[data-theme="solo"] .tab-btn ,
[data-theme="ivory"] .tab-btn,
[data-theme="mint"] .tab-btn,
[data-theme="rose"] .tab-btn{ color: var(--text-muted) !important; background: transparent !important; }
[data-theme="paper"] .tab-btn.active,
[data-theme="solo"] .tab-btn.active ,
[data-theme="ivory"] .tab-btn.active,
[data-theme="mint"] .tab-btn.active,
[data-theme="rose"] .tab-btn.active{ color: var(--accent) !important; }
[data-theme="paper"] .tab-btn.active .ico,
[data-theme="solo"] .tab-btn.active .ico ,
[data-theme="ivory"] .tab-btn.active .ico,
[data-theme="mint"] .tab-btn.active .ico,
[data-theme="rose"] .tab-btn.active .ico{ color: var(--accent) !important; }

/* Onboarding modal (force light + neutralize "hunter" language) */
[data-theme="paper"] #onboardingModal .modal-card,
[data-theme="solo"] #onboardingModal .modal-card ,
[data-theme="ivory"] #onboardingModal .modal-card,
[data-theme="mint"] #onboardingModal .modal-card,
[data-theme="rose"] #onboardingModal .modal-card{
  background: var(--bg-card) !important;
  color: var(--text) !important;
}

/* Toggle slider — light background, dark dot when on */
[data-theme="paper"] .toggle-slider,
[data-theme="solo"] .toggle-slider ,
[data-theme="ivory"] .toggle-slider,
[data-theme="mint"] .toggle-slider,
[data-theme="rose"] .toggle-slider{
  background: #d4d4d8 !important;
}
[data-theme="paper"] input[type="checkbox"]:checked + .toggle-slider,
[data-theme="solo"] input[type="checkbox"]:checked + .toggle-slider ,
[data-theme="ivory"] input[type="checkbox"]:checked + .toggle-slider,
[data-theme="mint"] input[type="checkbox"]:checked + .toggle-slider,
[data-theme="rose"] input[type="checkbox"]:checked + .toggle-slider{
  background: var(--accent) !important;
}
[data-theme="paper"] .toggle-row,
[data-theme="solo"] .toggle-row ,
[data-theme="ivory"] .toggle-row,
[data-theme="mint"] .toggle-row,
[data-theme="rose"] .toggle-row{ background: transparent !important; }
[data-theme="paper"] .toggle-hint,
[data-theme="solo"] .toggle-hint ,
[data-theme="ivory"] .toggle-hint,
[data-theme="mint"] .toggle-hint,
[data-theme="rose"] .toggle-hint{ color: var(--text-muted) !important; }

/* Toast */
[data-theme="paper"] .toast,
[data-theme="solo"] .toast ,
[data-theme="ivory"] .toast,
[data-theme="mint"] .toast,
[data-theme="rose"] .toast{
  background: var(--text) !important;
  color: var(--bg) !important;
  border: none !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.2), 0 12px 32px rgba(0,0,0,0.15) !important;
}

/* Color picker swatches retain their gradient (themes) but keep the container clean */
[data-theme="paper"] #colorGrid,
[data-theme="solo"] #colorGrid ,
[data-theme="ivory"] #colorGrid,
[data-theme="mint"] #colorGrid,
[data-theme="rose"] #colorGrid{ background: transparent !important; }

/* Tutorial overlay */
[data-theme="paper"] .tutorial,
[data-theme="solo"] .tutorial ,
[data-theme="ivory"] .tutorial,
[data-theme="mint"] .tutorial,
[data-theme="rose"] .tutorial{ background: rgba(0, 0, 0, 0.6) !important; }
[data-theme="paper"] .tutorial-card,
[data-theme="solo"] .tutorial-card ,
[data-theme="ivory"] .tutorial-card,
[data-theme="mint"] .tutorial-card,
[data-theme="rose"] .tutorial-card{ background: var(--bg-card) !important; color: var(--text) !important; }
[data-theme="paper"] .tutorial-step h2,
[data-theme="solo"] .tutorial-step h2,
[data-theme="ivory"] .tutorial-step h2,
[data-theme="mint"] .tutorial-step h2,
[data-theme="rose"] .tutorial-step h2,
[data-theme="paper"] .tutorial-step h3,
[data-theme="solo"] .tutorial-step h3,
[data-theme="ivory"] .tutorial-step h3,
[data-theme="mint"] .tutorial-step h3,
[data-theme="rose"] .tutorial-step h3,
[data-theme="paper"] .tutorial-step p,
[data-theme="solo"] .tutorial-step p ,
[data-theme="ivory"] .tutorial-step p,
[data-theme="mint"] .tutorial-step p,
[data-theme="rose"] .tutorial-step p{ color: var(--text) !important; }

/* Pin card (dev access) — should be off but in case */
[data-theme="paper"] .pin-card,
[data-theme="solo"] .pin-card ,
[data-theme="ivory"] .pin-card,
[data-theme="mint"] .pin-card,
[data-theme="rose"] .pin-card{
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
}

/* Section headings — paper-neutral, no glow */
[data-theme="paper"] h1,
[data-theme="solo"] h1,
[data-theme="ivory"] h1,
[data-theme="mint"] h1,
[data-theme="rose"] h1,
[data-theme="paper"] h2,
[data-theme="solo"] h2,
[data-theme="ivory"] h2,
[data-theme="mint"] h2,
[data-theme="rose"] h2,
[data-theme="paper"] h3,
[data-theme="solo"] h3,
[data-theme="ivory"] h3,
[data-theme="mint"] h3,
[data-theme="rose"] h3,
[data-theme="paper"] h4,
[data-theme="solo"] h4 ,
[data-theme="ivory"] h4,
[data-theme="mint"] h4,
[data-theme="rose"] h4{
  color: var(--text) !important;
  text-shadow: none !important;
}

/* ───── Hunter card (Profile/Status) — paper sweep ───── */
[data-theme="paper"] .hunter-card,
[data-theme="solo"] .hunter-card ,
[data-theme="ivory"] .hunter-card,
[data-theme="mint"] .hunter-card,
[data-theme="rose"] .hunter-card{
  background: var(--bg-card) !important;
  background-image: none !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  box-shadow:
    0 1px 2px rgba(0,0,0,0.04),
    0 6px 14px rgba(0,0,0,0.06),
    0 20px 40px rgba(0,0,0,0.08),
    inset 0 1px 0 rgba(255,255,255,0.85) !important;
}
[data-theme="paper"] .hunter-card .corners .hc,
[data-theme="solo"] .hunter-card .corners .hc ,
[data-theme="ivory"] .hunter-card .corners .hc,
[data-theme="mint"] .hunter-card .corners .hc,
[data-theme="rose"] .hunter-card .corners .hc{ background: var(--accent) !important; opacity: 0.5; }
[data-theme="paper"] .hc-avatar,
[data-theme="solo"] .hc-avatar ,
[data-theme="ivory"] .hc-avatar,
[data-theme="mint"] .hc-avatar,
[data-theme="rose"] .hc-avatar{
  background: var(--text) !important;
  color: var(--bg) !important;
  border: 2px solid var(--bg-card) !important;
  box-shadow:
    0 2px 4px rgba(0,0,0,0.08),
    0 8px 16px rgba(0,0,0,0.1),
    inset 0 1px 0 rgba(255,255,255,0.15) !important;
}
[data-theme="paper"] .hc-avatar-ring,
[data-theme="solo"] .hc-avatar-ring ,
[data-theme="ivory"] .hc-avatar-ring,
[data-theme="mint"] .hc-avatar-ring,
[data-theme="rose"] .hc-avatar-ring{
  border-color: var(--border-strong) !important;
  background: transparent !important;
  filter: none !important;
}
[data-theme="paper"] .hc-name,
[data-theme="solo"] .hc-name ,
[data-theme="ivory"] .hc-name,
[data-theme="mint"] .hc-name,
[data-theme="rose"] .hc-name{
  color: var(--text) !important;
  text-shadow: none !important;
  -webkit-text-fill-color: var(--text) !important;
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
}
[data-theme="paper"] .hc-handle,
[data-theme="solo"] .hc-handle ,
[data-theme="ivory"] .hc-handle,
[data-theme="mint"] .hc-handle,
[data-theme="rose"] .hc-handle{ color: var(--text-muted) !important; }
[data-theme="paper"] .hc-rank-badge,
[data-theme="solo"] .hc-rank-badge ,
[data-theme="ivory"] .hc-rank-badge,
[data-theme="mint"] .hc-rank-badge,
[data-theme="rose"] .hc-rank-badge{
  background: var(--bg-elevated) !important;
  border: 1px solid var(--border-strong) !important;
  color: var(--text) !important;
  text-shadow: none !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04), inset 0 1px 0 rgba(255,255,255,0.8) !important;
}
[data-theme="paper"] .hc-rank-badge svg,
[data-theme="solo"] .hc-rank-badge svg ,
[data-theme="ivory"] .hc-rank-badge svg,
[data-theme="mint"] .hc-rank-badge svg,
[data-theme="rose"] .hc-rank-badge svg{ color: var(--text) !important; }
[data-theme="paper"] .hc-row,
[data-theme="solo"] .hc-row ,
[data-theme="ivory"] .hc-row,
[data-theme="mint"] .hc-row,
[data-theme="rose"] .hc-row{ gap: 0.5rem; }
[data-theme="paper"] .hc-chip,
[data-theme="solo"] .hc-chip ,
[data-theme="ivory"] .hc-chip,
[data-theme="mint"] .hc-chip,
[data-theme="rose"] .hc-chip{
  background: var(--bg-elevated) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  text-shadow: none !important;
  box-shadow:
    0 1px 1px rgba(0,0,0,0.04),
    inset 0 1px 0 rgba(255,255,255,0.7) !important;
}
[data-theme="paper"] .hc-chip svg,
[data-theme="solo"] .hc-chip svg ,
[data-theme="ivory"] .hc-chip svg,
[data-theme="mint"] .hc-chip svg,
[data-theme="rose"] .hc-chip svg{ color: var(--text) !important; }
[data-theme="paper"] .hc-chip strong,
[data-theme="solo"] .hc-chip strong ,
[data-theme="ivory"] .hc-chip strong,
[data-theme="mint"] .hc-chip strong,
[data-theme="rose"] .hc-chip strong{ color: var(--text) !important; }
[data-theme="paper"] .hc-xp-bar,
[data-theme="solo"] .hc-xp-bar ,
[data-theme="ivory"] .hc-xp-bar,
[data-theme="mint"] .hc-xp-bar,
[data-theme="rose"] .hc-xp-bar{
  background: var(--bg-elevated) !important;
  border: 1px solid var(--border) !important;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.06) !important;
}
[data-theme="paper"] .hc-xp-bar-fill,
[data-theme="solo"] .hc-xp-bar-fill ,
[data-theme="ivory"] .hc-xp-bar-fill,
[data-theme="mint"] .hc-xp-bar-fill,
[data-theme="rose"] .hc-xp-bar-fill{
  background: var(--accent) !important;
  box-shadow: none !important;
}
[data-theme="paper"] .hc-xp-meta,
[data-theme="solo"] .hc-xp-meta ,
[data-theme="ivory"] .hc-xp-meta,
[data-theme="mint"] .hc-xp-meta,
[data-theme="rose"] .hc-xp-meta{ color: var(--text-muted) !important; }
[data-theme="paper"] .hc-monthly,
[data-theme="solo"] .hc-monthly ,
[data-theme="ivory"] .hc-monthly,
[data-theme="mint"] .hc-monthly,
[data-theme="rose"] .hc-monthly{
  background: transparent !important;
  color: var(--text-soft) !important;
}
[data-theme="paper"] .hc-monthly strong,
[data-theme="solo"] .hc-monthly strong ,
[data-theme="ivory"] .hc-monthly strong,
[data-theme="mint"] .hc-monthly strong,
[data-theme="rose"] .hc-monthly strong{ color: var(--text) !important; }
[data-theme="paper"] .hc-perk,
[data-theme="solo"] .hc-perk ,
[data-theme="ivory"] .hc-perk,
[data-theme="mint"] .hc-perk,
[data-theme="rose"] .hc-perk{
  background: var(--bg-elevated) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
}
[data-theme="paper"] .hc-perk strong,
[data-theme="solo"] .hc-perk strong ,
[data-theme="ivory"] .hc-perk strong,
[data-theme="mint"] .hc-perk strong,
[data-theme="rose"] .hc-perk strong{ color: var(--text) !important; }
[data-theme="paper"] .hc-perk span,
[data-theme="solo"] .hc-perk span ,
[data-theme="ivory"] .hc-perk span,
[data-theme="mint"] .hc-perk span,
[data-theme="rose"] .hc-perk span{ color: var(--text-muted) !important; }

/* Top status bar — avatar + name + rank pill */
[data-theme="paper"] .status-bar .avatar,
[data-theme="solo"] .status-bar .avatar ,
[data-theme="ivory"] .status-bar .avatar,
[data-theme="mint"] .status-bar .avatar,
[data-theme="rose"] .status-bar .avatar{
  background: var(--text) !important;
  color: var(--bg) !important;
  border: 1.5px solid var(--border) !important;
}
[data-theme="paper"] .status-bar .name,
[data-theme="solo"] .status-bar .name ,
[data-theme="ivory"] .status-bar .name,
[data-theme="mint"] .status-bar .name,
[data-theme="rose"] .status-bar .name{ color: var(--text) !important; }
[data-theme="paper"] .status-bar .meta,
[data-theme="solo"] .status-bar .meta,
[data-theme="ivory"] .status-bar .meta,
[data-theme="mint"] .status-bar .meta,
[data-theme="rose"] .status-bar .meta,
[data-theme="paper"] .status-bar .lvl-label,
[data-theme="solo"] .status-bar .lvl-label ,
[data-theme="ivory"] .status-bar .lvl-label,
[data-theme="mint"] .status-bar .lvl-label,
[data-theme="rose"] .status-bar .lvl-label{ color: var(--text-muted) !important; }
[data-theme="paper"] .status-bar [class*="rank"],
[data-theme="solo"] .status-bar [class*="rank"] ,
[data-theme="ivory"] .status-bar [class*="rank"],
[data-theme="mint"] .status-bar [class*="rank"],
[data-theme="rose"] .status-bar [class*="rank"]{
  background: var(--bg-elevated) !important;
  color: var(--text) !important;
  border: 1px solid var(--border-strong) !important;
}

/* XP progress bar at top */
[data-theme="paper"] .xp-bar,
[data-theme="solo"] .xp-bar,
[data-theme="ivory"] .xp-bar,
[data-theme="mint"] .xp-bar,
[data-theme="rose"] .xp-bar,
[data-theme="paper"] [class*="xp-track"],
[data-theme="solo"] [class*="xp-track"] ,
[data-theme="ivory"] [class*="xp-track"],
[data-theme="mint"] [class*="xp-track"],
[data-theme="rose"] [class*="xp-track"]{
  background: var(--bg-elevated) !important;
}
[data-theme="paper"] [class*="xp-fill"],
[data-theme="solo"] [class*="xp-fill"] ,
[data-theme="ivory"] [class*="xp-fill"],
[data-theme="mint"] [class*="xp-fill"],
[data-theme="rose"] [class*="xp-fill"]{ background: var(--accent) !important; }

/* Toggle row container */
[data-theme="paper"] .toggle-row,
[data-theme="solo"] .toggle-row ,
[data-theme="ivory"] .toggle-row,
[data-theme="mint"] .toggle-row,
[data-theme="rose"] .toggle-row{ color: var(--text) !important; }
[data-theme="paper"] .toggle-row strong,
[data-theme="solo"] .toggle-row strong ,
[data-theme="ivory"] .toggle-row strong,
[data-theme="mint"] .toggle-row strong,
[data-theme="rose"] .toggle-row strong{ color: var(--text) !important; }

/* ───── TOP STATUS BAR — XP bar wrap, badges, level pill ───── */
[data-theme="paper"] .xp-bar-wrap,
[data-theme="solo"] .xp-bar-wrap ,
[data-theme="ivory"] .xp-bar-wrap,
[data-theme="mint"] .xp-bar-wrap,
[data-theme="rose"] .xp-bar-wrap{
  background: var(--bg-elevated) !important;
  border-bottom: 1px solid var(--border) !important;
}
[data-theme="paper"] .xp-bar,
[data-theme="solo"] .xp-bar ,
[data-theme="ivory"] .xp-bar,
[data-theme="mint"] .xp-bar,
[data-theme="rose"] .xp-bar{
  background: #e4e4e7 !important;
  border: 1px solid var(--border) !important;
}
[data-theme="paper"] .xp-bar-fill,
[data-theme="solo"] .xp-bar-fill ,
[data-theme="ivory"] .xp-bar-fill,
[data-theme="mint"] .xp-bar-fill,
[data-theme="rose"] .xp-bar-fill{
  background: var(--accent) !important;
}
[data-theme="paper"] .xp-bar-text,
[data-theme="solo"] .xp-bar-text ,
[data-theme="ivory"] .xp-bar-text,
[data-theme="mint"] .xp-bar-text,
[data-theme="rose"] .xp-bar-text{ color: var(--text-muted) !important; }
[data-theme="paper"] .xp-bar-text span,
[data-theme="solo"] .xp-bar-text span ,
[data-theme="ivory"] .xp-bar-text span,
[data-theme="mint"] .xp-bar-text span,
[data-theme="rose"] .xp-bar-text span{ color: var(--text-muted) !important; }

/* Top status bar — player info */
[data-theme="paper"] .player-glyph,
[data-theme="solo"] .player-glyph ,
[data-theme="ivory"] .player-glyph,
[data-theme="mint"] .player-glyph,
[data-theme="rose"] .player-glyph{
  background: var(--text) !important;
  color: var(--bg) !important;
  border: 1.5px solid var(--bg-card) !important;
  box-shadow:
    0 1px 2px rgba(0,0,0,0.08),
    0 2px 6px rgba(0,0,0,0.08),
    inset 0 1px 0 rgba(255,255,255,0.15) !important;
}
[data-theme="paper"] .player-info .name,
[data-theme="solo"] .player-info .name ,
[data-theme="ivory"] .player-info .name,
[data-theme="mint"] .player-info .name,
[data-theme="rose"] .player-info .name{ color: var(--text) !important; }
[data-theme="paper"] .player-info .lvl,
[data-theme="solo"] .player-info .lvl ,
[data-theme="ivory"] .player-info .lvl,
[data-theme="mint"] .player-info .lvl,
[data-theme="rose"] .player-info .lvl{
  color: var(--text-muted) !important;
  text-shadow: none !important;
}
[data-theme="paper"] .player-info .lvl .num,
[data-theme="solo"] .player-info .lvl .num ,
[data-theme="ivory"] .player-info .lvl .num,
[data-theme="mint"] .player-info .lvl .num,
[data-theme="rose"] .player-info .lvl .num{ color: var(--text) !important; }
[data-theme="paper"] .global-rank-inline,
[data-theme="solo"] .global-rank-inline ,
[data-theme="ivory"] .global-rank-inline,
[data-theme="mint"] .global-rank-inline,
[data-theme="rose"] .global-rank-inline{
  background: var(--bg-elevated) !important;
  border: 1px solid var(--border-strong) !important;
  color: var(--text) !important;
  text-shadow: none !important;
}

/* Streak badge (top bar) — neutral */
[data-theme="paper"] .streak-badge,
[data-theme="solo"] .streak-badge ,
[data-theme="ivory"] .streak-badge,
[data-theme="mint"] .streak-badge,
[data-theme="rose"] .streak-badge{
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04), inset 0 1px 0 rgba(255,255,255,0.6) !important;
}
[data-theme="paper"] .streak-badge svg,
[data-theme="solo"] .streak-badge svg ,
[data-theme="ivory"] .streak-badge svg,
[data-theme="mint"] .streak-badge svg,
[data-theme="rose"] .streak-badge svg{ color: var(--text) !important; }

/* Rank badge top-right (E / D / C ... / Monarch) — solid black square */
[data-theme="paper"] .rank-badge,
[data-theme="solo"] .rank-badge ,
[data-theme="ivory"] .rank-badge,
[data-theme="mint"] .rank-badge,
[data-theme="rose"] .rank-badge{
  background: var(--text) !important;
  color: var(--bg) !important;
  border: 1px solid var(--text) !important;
  text-shadow: none !important;
  box-shadow:
    0 1px 2px rgba(0,0,0,0.1),
    inset 0 1px 0 rgba(255,255,255,0.15) !important;
}

/* Icon button (sign out etc) */
[data-theme="paper"] .icon-btn,
[data-theme="solo"] .icon-btn ,
[data-theme="ivory"] .icon-btn,
[data-theme="mint"] .icon-btn,
[data-theme="rose"] .icon-btn{
  background: var(--bg-card) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04), inset 0 1px 0 rgba(255,255,255,0.6) !important;
}
[data-theme="paper"] .icon-btn:hover,
[data-theme="solo"] .icon-btn:hover ,
[data-theme="ivory"] .icon-btn:hover,
[data-theme="mint"] .icon-btn:hover,
[data-theme="rose"] .icon-btn:hover{
  background: var(--bg-hover) !important;
}
[data-theme="paper"] .icon-btn svg,
[data-theme="solo"] .icon-btn svg ,
[data-theme="ivory"] .icon-btn svg,
[data-theme="mint"] .icon-btn svg,
[data-theme="rose"] .icon-btn svg{ color: var(--text) !important; }

/* Any leftover text using --accent-bright on dark backgrounds — make readable */
[data-theme="paper"] .accent-bright,
[data-theme="solo"] .accent-bright,
[data-theme="ivory"] .accent-bright,
[data-theme="mint"] .accent-bright,
[data-theme="rose"] .accent-bright,
[data-theme="paper"] [style*="--accent-bright"],
[data-theme="solo"] [style*="--accent-bright"] ,
[data-theme="ivory"] [style*="--accent-bright"],
[data-theme="mint"] [style*="--accent-bright"],
[data-theme="rose"] [style*="--accent-bright"]{ color: var(--text) !important; }

/* ═══════════════════════════════════════════════════════════════
   ICON COLOR INHERITANCE — fix invisible icons on highlighted buttons
   ═══════════════════════════════════════════════════════════════ */
/* When an element has accent/black background + white text,
   any nested SVG icon MUST inherit currentColor (white) — not be
   stuck on var(--accent). This forces inheritance in all those cases. */
.btn .ico, .btn .ico-stroke,
.btn.primary .ico, .btn.primary .ico-stroke,
.tab-btn.active .ico, .tab-btn.active .ico-stroke,
.auth-tab.active .ico, .auth-tab.active .ico-stroke,
.lb-tab.active .ico, .lb-tab.active .ico-stroke,
.cat-pill.active .ico, .cat-pill.active .ico-stroke,
.dash-cal-tab.active .ico, .dash-cal-tab.active .ico-stroke,
.dash-cal-cell.done .ico, .dash-cal-cell.done .ico-stroke,
.drill .drill-btn.add .ico, .drill .drill-btn.add .ico-stroke,
.hc-rank-badge .ico, .hc-rank-badge .ico-stroke,
.rank-badge .ico, .rank-badge .ico-stroke {
  color: inherit !important;
}
.btn .ico *, .btn.primary .ico *,
.tab-btn.active .ico *,
.auth-tab.active .ico *,
.lb-tab.active .ico *,
.dash-cal-tab.active .ico *,
.btn[style*="color"] .ico * {
  stroke: currentColor !important;
}
/* Buttons that use inline style="color: var(--accent)" on an icon should be
   overridden when the BUTTON is the primary/active state (because icon = bg). */
[class*="btn"][style*="background"][style*="accent"] .ico,
.btn:not(.ghost):not(.outline) svg.ico[style*="color: var(--accent)"],
.btn.primary svg.ico[style*="color: var(--accent)"],
.lb-tab.active svg.ico[style*="color: var(--accent)"],
.tab-btn.active svg.ico[style*="color: var(--accent)"] {
  color: inherit !important;
}

/* ═══════════════════════════════════════════════════════════════
   HOME — TODAY card · CONTINUE banner · AT-A-GLANCE row · FAB
   ═══════════════════════════════════════════════════════════════ */

/* Continue-workout banner */
.continue-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.85rem 1rem;
  margin-bottom: 1rem;
  background:
    linear-gradient(180deg, var(--accent) 0%, color-mix(in srgb, var(--accent), #000 8%) 100%);
  color: #ffffff;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--accent), #000 20%);
  box-shadow:
    0 1px 2px rgba(0,0,0,0.08),
    0 6px 14px rgba(0,0,0,0.12),
    0 14px 28px rgba(0,0,0,0.1),
    inset 0 1px 0 rgba(255,255,255,0.18);
  animation: card-rise 0.5s cubic-bezier(.2,.7,.2,1);
}
.continue-banner.hidden { display: none; }
.continue-banner-info { flex: 1; min-width: 0; }
.continue-banner-label {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.22em;
  color: rgba(255,255,255,0.7);
  margin-bottom: 0.2rem;
}
.continue-banner-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  color: #ffffff;
  margin-bottom: 0.1rem;
}
.continue-banner-meta {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: rgba(255,255,255,0.7);
}
.continue-banner .btn {
  background: rgba(255,255,255,0.15) !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,0.3) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.2) !important;
}

/* Today's workout card */
.today-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 1.25rem 1rem 1rem;
  margin-bottom: 1.25rem;
  text-align: center;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 6px 14px rgba(0, 0, 0, 0.06),
    0 18px 36px rgba(0, 0, 0, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
}
.today-card.hidden { display: none; }
.today-card-head {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 0.6rem;
}
.today-card-label {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 700;
}
.today-card-date {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  color: var(--text-muted);
}
.today-card-title {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--text) !important;
  margin: 0 0 0.45rem;
  text-align: center;
}
.today-card-meta {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: var(--text-soft);
  margin-bottom: 1rem;
  text-align: center;
}

/* At-a-glance row */
.glance-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.6rem;
  margin: 0 0 1.25rem;
}
.glance-tile {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0.85rem 0.5rem;
  text-align: center;
  position: relative;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 4px 10px rgba(0, 0, 0, 0.04),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);
}
.glance-val {
  font-family: var(--font-mono);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--text);
  line-height: 1;
  font-variant-numeric: tabular-nums;
  margin-bottom: 0.25rem;
}
.glance-label {
  font-family: var(--font-mono);
  font-size: 0.58rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 600;
}
.glance-sub {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.05em;
  color: var(--text-muted);
  margin-top: 0.2rem;
}
.streak-flame {
  position: absolute; top: 0.45rem; right: 0.5rem;
  width: 18px; height: 18px;
  color: var(--text-muted);
  opacity: 0.4;
  transition: all 0.3s ease;
}
.streak-tile[data-streak="0"] .streak-flame { color: var(--text-muted); opacity: 0.25; }
.streak-tile[data-streak="1"] .streak-flame,
.streak-tile[data-streak="2"] .streak-flame { color: #f59e0b; opacity: 0.6; }
.streak-tile[data-streak="3"] .streak-flame,
.streak-tile[data-streak="4"] .streak-flame,
.streak-tile[data-streak="5"] .streak-flame,
.streak-tile[data-streak="6"] .streak-flame { color: #ea580c; opacity: 0.85; }
.streak-tile[data-streak="7"] .streak-flame,
.streak-tile[data-streak="8"] .streak-flame,
.streak-tile[data-streak="9"] .streak-flame { color: #dc2626; opacity: 1; animation: flame-flicker 1.6s ease-in-out infinite; }
.streak-tile[data-streak="10"] .streak-flame,
.streak-tile[data-streak="big"] .streak-flame { color: #dc2626; opacity: 1; filter: drop-shadow(0 0 4px rgba(220, 38, 38, 0.6)); animation: flame-flicker 1.2s ease-in-out infinite; }
@keyframes flame-flicker {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.15); }
}

/* Quick-log FAB */
.fab-wrap {
  position: fixed;
  bottom: 86px; /* sit above the bottom tab bar */
  right: 18px;
  z-index: 90;
  display: flex; flex-direction: column; align-items: flex-end;
  gap: 0.55rem;
  pointer-events: none;
}
.fab-wrap.hidden { display: none; }
.fab-wrap > * { pointer-events: auto; }
.fab-btn {
  width: 56px; height: 56px;
  border-radius: 50%;
  background:
    linear-gradient(180deg, #2a2a2e 0%, #0a0a0c 50%, #000000 100%);
  color: #ffffff;
  border: 1px solid #000;
  border-top-color: #3a3a3e;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.22),
    inset 0 -1px 0 rgba(0,0,0,0.4),
    0 2px 4px rgba(0,0,0,0.1),
    0 8px 16px rgba(0,0,0,0.18),
    0 20px 36px rgba(0,0,0,0.18);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.fab-btn:hover {
  transform: translateY(-2px) scale(1.04);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.3),
    0 4px 8px rgba(0,0,0,0.12),
    0 12px 24px rgba(0,0,0,0.22),
    0 28px 48px rgba(0,0,0,0.22);
}
.fab-btn .ico { width: 1.5rem; height: 1.5rem; color: #ffffff; transition: transform 0.25s cubic-bezier(.2,.7,.2,1); }
.fab-wrap.open .fab-btn .ico { transform: rotate(45deg); }
.fab-menu {
  display: flex; flex-direction: column; gap: 0.45rem; align-items: flex-end;
  transform: translateY(8px) scale(0.95);
  opacity: 0;
  pointer-events: none;
  transition: all 0.2s cubic-bezier(.2,.7,.2,1);
}
.fab-wrap.open .fab-menu {
  transform: translateY(0) scale(1);
  opacity: 1;
  pointer-events: auto;
}
.fab-menu.hidden { display: flex; }
.fab-item {
  display: flex; align-items: center; gap: 0.6rem;
  padding: 0.62rem 1rem 0.62rem 0.75rem;
  background:
    linear-gradient(180deg, #2a2a2e 0%, #0a0a0c 100%);
  border: 1px solid #000;
  border-top-color: #3a3a3e;
  border-radius: 999px;
  color: #ffffff;
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  cursor: pointer;
  text-shadow: 0 1px 0 rgba(0,0,0,0.4);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.18),
    inset 0 -1px 0 rgba(0,0,0,0.4),
    0 1px 2px rgba(0,0,0,0.08),
    0 6px 14px rgba(0,0,0,0.15),
    0 14px 28px rgba(0,0,0,0.15);
  transition: transform 0.15s ease, filter 0.15s ease;
}
.fab-item:hover { transform: translateX(-3px); filter: brightness(1.1); }
.fab-item:active { transform: translateX(-1px) scale(0.98); }
.fab-item .ico { width: 1.05rem; height: 1.05rem; color: #ffffff !important; }

/* Inbox unread badge on tab-btn */
.tab-btn[data-unread]::after {
  content: attr(data-unread);
  position: absolute;
  top: 4px; right: 22%;
  min-width: 14px; height: 14px;
  padding: 0 4px;
  background: #dc2626;
  color: #fff;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  font-weight: 700;
  border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  border: 1.5px solid var(--bg);
  box-shadow: 0 1px 2px rgba(0,0,0,0.2);
}
.tab-btn { position: relative; }

/* XP-to-next caption */
.xp-bar-caption {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  color: var(--text-muted);
  text-align: center;
  margin-top: 0.2rem;
}

/* ═══════════════════════════════════════════════════════════════
   DASHBOARD CALENDAR — Week / Month toggle
   ═══════════════════════════════════════════════════════════════ */
.dash-cal-toggle {
  display: inline-flex;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 2px;
  box-shadow: inset 0 1px 0 rgba(0,0,0,0.04);
}
.dash-cal-tab {
  padding: 5px 14px;
  border: none;
  background: transparent;
  color: var(--text-soft);
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  border-radius: 999px;
  cursor: pointer;
  transition: all .2s ease;
}
.dash-cal-tab.active {
  background: var(--accent);
  color: #ffffff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.dash-cal-month {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1rem 0.85rem 0.85rem;
  margin-bottom: 1.5rem;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 4px 12px rgba(0, 0, 0, 0.05),
    0 12px 28px rgba(0, 0, 0, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);
}
.dash-cal-nav {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 0.85rem;
}
.dash-cal-arrow {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  color: var(--text);
  font-size: 1.25rem;
  font-weight: 600;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  line-height: 1;
}
.dash-cal-arrow:hover { background: var(--bg-hover); border-color: var(--border-strong); }
.dash-cal-label {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  color: var(--text);
}
.dash-cal-dow-row {
  display: grid; grid-template-columns: repeat(7, 1fr);
  gap: 2px; margin-bottom: 0.4rem;
}
.dash-cal-dow {
  text-align: center;
  font-family: var(--font-mono);
  font-size: 0.62rem; letter-spacing: 0.18em;
  color: var(--text-muted); text-transform: uppercase;
  padding: 0.3rem 0; font-weight: 600;
}
.dash-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.dash-cal-cell {
  aspect-ratio: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 2px;
  border-radius: 8px;
  background: transparent;
  border: 1px solid transparent;
  cursor: pointer;
  position: relative;
  min-height: 38px;
  transition: all .15s ease;
}
.dash-cal-cell .num {
  font-family: var(--font-mono);
  font-size: 0.78rem; font-weight: 500;
  color: var(--text);
}
.dash-cal-cell.faded .num { color: var(--text-muted); opacity: 0.4; }
.dash-cal-cell:hover { background: var(--bg-elevated); }
.dash-cal-cell.today {
  border: 2px solid var(--accent);
  background: var(--bg-elevated);
}
.dash-cal-cell.today .num { font-weight: 700; color: var(--accent); }
.dash-cal-cell.done { background: var(--accent); }
.dash-cal-cell.done .num { color: #ffffff; font-weight: 700; }
.dash-cal-cell.planned:not(.done) { background: var(--bg-hover); }
.dash-cal-dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: #ffffff;
  display: inline-block;
}
.dash-cal-dot.planned { background: var(--text-muted); }
.dash-cal-dot.inline { background: var(--accent); margin-right: 4px; }
.dash-cal-today-marker {
  display: inline-block;
  width: 12px; height: 12px;
  border: 2px solid var(--accent);
  border-radius: 3px;
  margin-right: 4px;
  vertical-align: middle;
}
.dash-cal-legend {
  display: flex; gap: 0.85rem;
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--border);
  font-family: var(--font-mono);
  font-size: 0.66rem; letter-spacing: 0.06em;
  color: var(--text-muted);
  flex-wrap: wrap;
  justify-content: center;
}
/* Dark themes: done cells stay solid accent, num text inverts */
[data-theme="hunter-dark"] .dash-cal-cell.done .num,
[data-theme="monarch"] .dash-cal-cell.done .num,
[data-theme="phoenix"] .dash-cal-cell.done .num,
[data-theme="crystal"] .dash-cal-cell.done .num,
[data-theme="solar"] .dash-cal-cell.done .num,
[data-theme="steel"] .dash-cal-cell.done .num { color: var(--bg-deepest); }


/* ═══════════════════════════════════════════════════════════════
   AMBIENT BACKGROUND — particles + grid (matches landing)
   ═══════════════════════════════════════════════════════════════ */
#particles-bg, #particles-fg, .bg-grid {
  position: fixed; inset: 0;
  pointer-events: none;
  width: 100%; height: 100%;
}
#particles-bg { z-index: 1; filter: blur(1.4px); opacity: 0.85; }
#particles-fg { z-index: 2; opacity: 0.9; }
.bg-grid {
  z-index: 0;
  background-image:
    linear-gradient(rgba(0, 0, 0, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 0, 0, 0.035) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse 70% 50% at 50% 35%, black 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 70% 50% at 50% 35%, black 30%, transparent 80%);
}
/* App chrome and content sit above ambient layers */
.app, .auth-screen, header.status-bar, .xp-bar-wrap, nav.tab-bar { position: relative; z-index: 3; }
main { position: relative; z-index: 3; }
/* Allow particles to peek through main behind sections — sections are transparent in paper */
[data-theme="paper"] main,
[data-theme="ivory"] main,
[data-theme="mint"] main,
[data-theme="rose"] main,
[data-theme="solo"] main { background: transparent !important; }
[data-theme="paper"] .section,
[data-theme="ivory"] .section,
[data-theme="mint"] .section,
[data-theme="rose"] .section,
[data-theme="solo"] .section { background: transparent !important; }

/* ═══════ CARD ENTRANCE ANIMATIONS ═══════ */
@keyframes card-rise {
  0% { opacity: 0; transform: translateY(14px); }
  100% { opacity: 1; transform: translateY(0); }
}
.section.active .card,
.section.active .drill,
.section.active .quick,
.section.active .stat-tile,
.section.active .ptile,
.section.active .chart-card,
.section.active .ex-card,
.section.active .meal-card {
  animation: card-rise 0.45s cubic-bezier(.2,.7,.2,1) backwards;
}
.section.active > *:nth-child(1) { animation-delay: 0.02s; }
.section.active > *:nth-child(2) { animation-delay: 0.06s; }
.section.active > *:nth-child(3) { animation-delay: 0.10s; }
.section.active > *:nth-child(4) { animation-delay: 0.14s; }
.section.active > *:nth-child(5) { animation-delay: 0.18s; }
.section.active > *:nth-child(6) { animation-delay: 0.22s; }
.section.active > *:nth-child(7) { animation-delay: 0.26s; }
.section.active > *:nth-child(8) { animation-delay: 0.30s; }
.daily-quest-card .drill:nth-child(1) { animation-delay: 0.18s; }
.daily-quest-card .drill:nth-child(2) { animation-delay: 0.24s; }
.daily-quest-card .drill:nth-child(3) { animation-delay: 0.30s; }
.daily-quest-card .drill:nth-child(4) { animation-delay: 0.36s; }

/* Reduced motion — kill animations + hide particles */
@media (prefers-reduced-motion: reduce) {
  .section.active * { animation: none !important; }
  #particles-bg, #particles-fg { display: none; }
}

/* ════════════════════════════════════════════════════════
   SHIP POLISH — phone, iPad, desktop margins and tap targets
   ═══════════════════════════════════════════════════════ */

/* Block any FOUC before the prepaint script runs.
   The prepaint script always sets data-prepaint within microseconds. */
html:not([data-prepaint]) body { visibility: hidden; }

/* Phone (≤480px) — tighter chrome, real safe-area padding, comfortable taps */
@media (max-width: 480px) {
  main { padding: 0.85rem 0.85rem 6rem; }
  .section-head h2 { font-size: 1.3rem; }
  .tab-btn { padding: 0.55rem 0.25rem; min-height: 56px; }
  .tab-btn .icon { font-size: 1.35rem; }
  .tab-btn .label { font-size: 0.66rem; letter-spacing: 0.06em; }  /* was 0.58rem = 9.3px, now 10.5px */
  button, .btn, .tab-btn, a.btn { min-height: 44px; }
  input, select, textarea { font-size: 16px !important; }          /* stop iOS zoom */
}

/* ════════════════════════════════════════════════════════
   MOBILE LEGIBILITY FLOOR (≤768px)
   Bump everything <12px up to ≥12.5px. Hits stat labels,
   eyebrows, mono captions across the entire app shell.
   ════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* Eyebrows / labels / mono captions */
  .eyebrow,
  .stat-tile .label,
  .stat-tile .l,
  .stat-tile .key,
  .glance-tile .glance-label,
  .glance-tile .glance-sub,
  .meta,
  .section-head .meta,
  .badge,
  .ribbon,
  .plan-cta-sub,
  .role-card .role-desc,
  .role-picker-label,
  .price-card .tier,
  .ptile-key,
  .lib-grid .l,
  .lib-grid .label {
    font-size: 0.78rem !important;     /* ≥ 12.5px */
    letter-spacing: 0.10em !important;
  }

  /* Even smaller utility text — at least 12px */
  .auth-screen .sub,
  .auth-tabs .auth-tab,
  .greet-sub,
  .plan-cta-title,
  .btn.xs,
  .tutorial-step .small,
  .tutorial-step .meta,
  .modal-card .small {
    font-size: max(0.82rem, 13px) !important;
  }

  /* Larger numerical displays — make them actually pop */
  .stat-tile .val,
  .glance-tile .glance-val {
    font-size: 1.45rem !important;
  }

  /* Inputs anti-zoom + larger comfortable height */
  input, select, textarea {
    font-size: 16px !important;
    min-height: 44px;
  }

  /* Tap-target floor for all interactive elements */
  button, .btn, a.btn, [role="button"], .auth-tab {
    min-height: 44px;
  }

  /* Tutorial overlay buttons + footer mono */
  .tutorial-actions .btn,
  .tutorial-step .small,
  .tutorial-step p {
    font-size: 0.85rem !important;
    min-height: 44px;
  }

  /* Header level pill + XP bar text */
  .lvl, .lvl .num,
  .xp-bar-text,
  .hc-xp-bar-wrap,
  .global-rank-inline {
    font-size: 0.82rem !important;
  }

  /* Signup-form helper text (was 11.2px) */
  .auth-form p {
    font-size: 0.84rem !important;
    line-height: 1.5;
  }

  /* Beta pill / continue-banner / today-card labels */
  #betaPill {
    font-size: 0.78rem !important;
    padding: 0.45rem 0.85rem !important;
    letter-spacing: 0.1em !important;
  }
  .continue-banner-label,
  .today-card-label,
  .today-card-date,
  .today-card-meta {
    font-size: 0.82rem !important;
    letter-spacing: 0.08em !important;
  }
  .continue-banner-meta,
  .continue-banner-name {
    font-size: 0.95rem !important;
  }

  /* Tutorial Skip button */
  .tut-skip {
    font-size: 0.84rem !important;
    min-height: 44px !important;
    padding: 8px 14px !important;
  }

  /* Auth tabs (Sign In / Create Account) */
  .auth-tabs .auth-tab {
    font-size: 0.95rem !important;
    min-height: 44px;
  }
}

/* iPad portrait + landscape (481-1023px) — more breathing room */
@media (min-width: 481px) and (max-width: 1023px) {
  main { padding: 1.5rem 1.75rem 6.5rem; max-width: 760px; }
  .section-head h2 { font-size: 1.65rem; }
  .tab-bar { padding-left: max(1rem, env(safe-area-inset-left)); padding-right: max(1rem, env(safe-area-inset-right)); }
  .tab-btn { max-width: 110px; padding: 0.55rem 0.4rem; }
}

/* Desktop (≥1024px) — comfortable reading width, centered layout */
@media (min-width: 1024px) {
  main { padding: 2rem 2rem 6rem; max-width: 1080px; }
  .section-head h2 { font-size: 1.75rem; }
}

/* Landscape iPhone (and Pro Max landscape) — respect notch safe areas */
@media (orientation: landscape) and (max-height: 500px) {
  main { padding-left: max(1rem, env(safe-area-inset-left)); padding-right: max(1rem, env(safe-area-inset-right)); }
  .tab-bar { padding-left: max(0.5rem, env(safe-area-inset-left)); padding-right: max(0.5rem, env(safe-area-inset-right)); }
}

/* Tap-target floor everywhere for touch devices */
@media (hover: none) and (pointer: coarse) {
  button, .btn, [role="button"] { min-height: 44px; }
  input, select, textarea { font-size: 16px; } /* Stop iOS Safari from zooming on focus */
}