/* ================================================================
   LMA Awards Manager — Public Entry Form & Tracker
   Version: 14.1 — Premium Award Entry redesign (V14.1)
   Theme: Grammy × BET × Apple Design Awards, LMAS luxury identity
   Gold: #C9973A  Surface: #050505–#0A0A0F  Card border: rgba(201,151,58,.18)  Input border: #66666663
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300;0,14..32,400;0,14..32,500;0,14..32,600;0,14..32,700;0,14..32,800;1,14..32,400&display=swap');

/* ── V15.7.9: Elementor container clipping fix ────────────────────
   The search card is short, but the result dashboard injected by JS
   after a successful lookup is much taller. Elementor frequently
   bakes a fixed height and/or overflow:hidden onto the section/
   column/widget wrapper around a Shortcode widget (set in the editor
   around the original, shorter content). That clips the taller result
   block after it's injected — it's fully present and un-hidden in the
   DOM (confirmed via devtools: no display:none, content populated),
   it's just cut off by an ancestor. This forces every Elementor
   ancestor of our widget to grow with its content instead of clipping
   it, without touching Elementor's styling anywhere else on the page. */
.elementor-widget-container:has(.lma-entry-tracker-wrap),
.elementor-widget-wrap:has(.lma-entry-tracker-wrap),
.elementor-widget-shortcode:has(.lma-entry-tracker-wrap),
.elementor-column:has(.lma-entry-tracker-wrap),
.elementor-container:has(.lma-entry-tracker-wrap),
.elementor-section:has(.lma-entry-tracker-wrap),
.elementor-row:has(.lma-entry-tracker-wrap),
.e-con:has(.lma-entry-tracker-wrap),
.e-con-inner:has(.lma-entry-tracker-wrap) {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}
.lma-entry-tracker-wrap { overflow: visible !important; height: auto !important; }

/* ── Design tokens ──────────────────────────────────────────────── */
/* V14.1 — Premium Award Entry redesign. Values remapped to the
   official LMAS brand system (see assets/css/lma-design-system.css
   for the plugin-wide equivalents these mirror); every --ef-* NAME
   below is unchanged from V8.2, so every selector in this file and in
   entry-public.js that depends on these class names/IDs is completely
   unaffected — only what each token resolves to has changed. */
.lma-ef,
.lma-entry-tracker-wrap {
  --ef-gold:        #C9973A;  /* official gold — was #D4AF37, hex-form now fully replaced plugin-wide */
  --ef-gold-lt:     #DDB876;  /* lighter tint of the official gold, mathematically derived — not a new hue */
  --ef-gold-dk:     #9C7629;  /* darker shade of the official gold, same rationale */
  --ef-purple:      #C9973A;  /* AI-assistant accent recolored to gold — brand guide explicitly forbids decorative purple */
  --ef-purple-lt:   #DDB876;

  --ef-bg-card:     #050505;  /* V14.2 — within brief's specified #050505–#0A0A0F elevated-surface range */
  --ef-bg-surface:  #0A0A0F;  /* top of that same range — used for non-glass solid contexts (dropzone, select options, etc.) */
  --ef-bg-input:    #050505;  /* deep, within the same range, keeps inputs visually recessed */
  --ef-bg-hover:    #0f0f14;

  --ef-glass:       rgba(255,255,255,.04); /* V14.2 — true glass surface for cards, matching the same value used plugin-wide in lma-design-system.css */
  --ef-glass-bd:    rgba(201,151,58,.18);  /* V14.2 — subtle transparent gold card border, per brief */

  --ef-border:      rgba(102,102,102,.39); /* #66666663 — reserved for INPUT/search borders specifically, per brief's explicit distinction from card borders above */
  --ef-border-md:   rgba(201,151,58,.35);  /* gold-tinted — reserved for hover/focus emphasis, kept distinct from the neutral default border */

  --ef-text:        #FFFFFF;
  --ef-muted:       #B8B8C2;
  --ef-faint:       rgba(184,184,194,.42);

  --ef-green:       #22C55E;
  --ef-green-bg:    rgba(34,197,94,.10);
  --ef-red:         #F87171;
  --ef-red-bg:      rgba(248,113,113,.10);
  --ef-blue:        #60A5FA;  /* genuine status-feedback color (tracker "Submitted" badge) — not decorative, left untouched */
  --ef-blue-bg:     rgba(96,165,250,.10);

  --ef-r:    14px;  /* inputs — brief spec, was 10px */
  --ef-rl:   20px;
  --ef-rxl:  24px;  /* cards — brief spec, was 20px */
  --ef-pill: 100px;

  --ef-shadow-md: 0 8px 32px rgba(0,0,0,.40); /* softened — brief asks for "soft shadows only" */
  --ef-shadow-lg: 0 16px 48px rgba(0,0,0,.50);

  --ef-t:  all .22s cubic-bezier(.4,0,.2,1);
  --ef-tf: all .16s cubic-bezier(.4,0,.2,1);

  --ef-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Spacing scale per brief (48/32/16) — additive tokens for the new
     hero/card/section markup below; existing hardcoded spacing values
     elsewhere in this file are untouched. */
  --ef-space-lg: 48px;
  --ef-space-md: 32px;
  --ef-space-sm: 16px;
}

/* ── Targeted reset — neutralise WordPress/theme pink bleed on buttons
      without touching display, font or box-sizing (those are safe) ── */
.lma-ef button:not([class]),
.lma-ef button[class=""],
.lma-entry-tracker-wrap button:not([class]),
.lma-entry-tracker-wrap button[class=""] {
  background: transparent;
  border: none;
  color: inherit;
  cursor: pointer;
  font-family: var(--ef-font);
}
/* Ensure every explicitly-classed LMA button starts from a clean slate */
.lma-ef .lma-ef-rt-btn,
.lma-ef .lma-ef-rt-link,
.lma-ef .lma-ef-submit-btn,
.lma-ef .lma-ef-photo-upload-btn,
.lma-ef .lma-ef-ai-bio-toggle,
.lma-ef .lma-ef-ai-bio-generate,
.lma-ef .lma-ef-genre-pill,
.lma-entry-tracker-wrap .lma-entry-submit-btn {
  -webkit-appearance: none;
  appearance: none;
}

/* ── Wrapper ────────────────────────────────────────────────────── */
.lma-ef {
  max-width: 820px;
  margin: 0 auto;
  font-family: var(--ef-font);
  color: var(--ef-text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* ════════════════════════════════════════════════════════════════════
   STATUS BANNERS
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-banner {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: var(--ef-space-md) var(--ef-space-lg);
  border-radius: var(--ef-rxl);
  margin-bottom: 28px;
  background: var(--ef-bg-card);
  border: 1px solid var(--ef-border);
}
.lma-ef-banner--info   { border-color: rgba(96,165,250,.25);  background: rgba(96,165,250,.06); }
.lma-ef-banner--closed { border-color: rgba(248,113,113,.25); background: rgba(248,113,113,.06); }
.lma-ef-banner-icon    { font-size: 2.4rem; flex-shrink: 0; line-height: 1; }
.lma-ef-banner-title   { font-size: 1.15rem; font-weight: 700; margin: 0 0 6px; color: var(--ef-text); }
.lma-ef-banner p       { margin: 0; font-size: .85rem; color: var(--ef-muted); }

.lma-ef-intro {
  background: rgba(201,151,58,.05);
  border-left: 2px solid var(--ef-gold);
  border-top: 1px solid var(--ef-border);
  border-right: 1px solid var(--ef-border);
  border-bottom: 1px solid var(--ef-border);
  border-radius: 0 var(--ef-r) var(--ef-r) 0;
  padding: 14px 20px;
  margin-bottom: 28px;
  font-size: .875rem;
  color: var(--ef-muted);
}

/* ── Flash messages ─────────────────────────────────────────────── */
.lma-ef-flash {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 20px;
  border-radius: var(--ef-r);
  margin-bottom: 24px;
  font-size: .9rem;
}
.lma-ef-flash--success {
  /* V15.9.1 — replaced the generic green success/error treatment with
     the site's own dark-glass/gold identity (see lma-design-system.css
     and the badge/header tokens used throughout this file) so the
     confirmation panel matches the rest of the brand instead of
     looking like a stock form-plugin alert. */
  background: var(--ef-bg-card);
  border: 1px solid var(--ef-glass-bd);
  color: var(--ef-muted);
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: var(--ef-space-lg) var(--ef-space-md);
  border-radius: var(--ef-rxl);
  gap: 6px;
  position: relative;
  overflow: hidden;
  box-shadow: var(--ef-shadow-lg);
}
/* Ambient gold glow behind the icon — same technique as .lma-ef-header::after. */
.lma-ef-flash--success::before {
  content: '';
  position: absolute;
  top: -90px; left: 50%;
  transform: translateX(-50%);
  width: 360px; height: 240px;
  background: radial-gradient(ellipse, rgba(201,151,58,.16) 0%, transparent 70%);
  pointer-events: none;
}
.lma-ef-flash--success .lma-ef-flash-icon {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  margin-bottom: 16px;
  border-radius: 50%;
  background: rgba(201,151,58,.10);
  border: 1px solid rgba(201,151,58,.35);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--ef-gold);
}
.lma-ef-flash--success strong {
  position: relative;
  z-index: 1;
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -.02em;
  color: var(--ef-text);
  margin-bottom: 4px;
}
.lma-ef-flash--success p {
  position: relative;
  z-index: 1;
  font-size: .92rem;
  line-height: 1.65;
  max-width: 42ch;
  color: var(--ef-muted);
}
.lma-ef-flash-success-ref {
  position: relative;
  z-index: 1;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  margin-top: 18px;
  padding: 12px 26px;
  border-radius: var(--ef-r);
  background: rgba(201,151,58,.08);
  border: 1px solid rgba(201,151,58,.30);
  /* V15.9.2 — clickable to copy the entry ID. */
  cursor: pointer;
  transition: var(--ef-t);
  outline: none;
}
.lma-ef-flash-success-ref:hover,
.lma-ef-flash-success-ref:focus-visible {
  background: rgba(201,151,58,.14);
  border-color: rgba(201,151,58,.48);
}
.lma-ef-flash-success-ref:active { transform: scale(.98); }
.lma-ef-flash-success-ref-label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ef-gold);
  opacity: .80;
}
.lma-ef-flash-success-ref-label svg { width: 11px; height: 11px; flex-shrink: 0; }
/* Swapped in briefly after a successful copy — see entry-public.js. */
.lma-ef-flash-success-ref.is-copied .lma-ef-flash-success-ref-label { opacity: 1; }
.lma-ef-flash-success-ref-id {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--ef-text);
}
.lma-ef-flash--error   { background: var(--ef-red-bg);   border: 1px solid rgba(248,113,113,.28); color: var(--ef-red); }
.lma-ef-flash-icon  { font-size: 1.3rem; flex-shrink: 0; line-height: 1.3; }
.lma-ef-flash strong { display: block; font-weight: 700; margin-bottom: 3px; }
.lma-ef-flash p { margin: 0; opacity: .85; }

/* ════════════════════════════════════════════════════════════════════
   MAIN CARD
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-card {
  background: var(--ef-glass);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--ef-glass-bd);
  border-radius: var(--ef-rxl);
  overflow: hidden;
  box-shadow: var(--ef-shadow-lg);
}

/* ════════════════════════════════════════════════════════════════════
   HERO HEADER
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-header {
  position: relative;
  padding: 52px 52px 40px;
  overflow: hidden;
  background: linear-gradient(135deg, var(--ef-bg-surface) 0%, #1a1712 55%, var(--ef-bg-surface) 100%);
  border-bottom: 1px solid var(--ef-border);
}
.lma-ef-header::before {
  content: '';
  position: absolute;
  top: -80px; left: -60px;
  width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(201,151,58,.13) 0%, transparent 68%);
  pointer-events: none;
}
.lma-ef-header::after {
  content: '';
  position: absolute;
  bottom: -100px; right: -60px;
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(201,151,58,.11) 0%, transparent 68%);
  pointer-events: none;
}

.lma-ef-edition-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 16px;
  border-radius: var(--ef-pill);
  background: rgba(201,151,58,.10);
  border: 1px solid rgba(201,151,58,.30);
  font-size: .70rem;
  font-weight: 700;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: var(--ef-gold);
  margin-bottom: 20px;
  position: relative;
  z-index: 1;
}
.lma-ef-banner-badge { margin-bottom: 10px; }

.lma-ef-header h2 {
  font-size: 2.05rem;
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: 1.15;
  margin: 0 0 10px;
  color: var(--ef-text);
  position: relative;
  z-index: 1;
}
.lma-ef-header-sub {
  font-size: .88rem;
  color: var(--ef-muted);
  margin: 0 0 18px;
  position: relative;
  z-index: 1;
  max-width: 480px;
  line-height: 1.55;
}
.lma-ef-tagline {
  font-size: .67rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ef-gold);
  opacity: .60;
  margin: 0 0 28px;
  position: relative;
  z-index: 1;
}
.lma-ef-tagline span { margin: 0 10px; opacity: .30; font-weight: 400; }
.lma-ef-divider {
  border: none;
  border-top: 1px solid var(--ef-border);
  margin: 0 0 24px;
  position: relative;
  z-index: 1;
}

/* Step pills */
.lma-ef-step-pills {
  display: flex;
  gap: 8px;
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  position: relative;
  z-index: 1;
  padding-bottom: 2px; /* keeps focus rings from being clipped by overflow */
}
.lma-ef-step-pills::-webkit-scrollbar { display: none; }
.lma-ef-step-pills::before {
  content: '';
  position: absolute;
  left: 14px; right: 14px;
  top: 50%;
  height: 1px;
  z-index: 0;
  background: linear-gradient(90deg, rgba(201,151,58,.35), rgba(201,151,58,.08));
  background-size: 200% 100%;
  animation: lma-ef-progress-pulse 3.2s ease-in-out infinite;
}
.lma-ef-step-pill {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px 5px 5px;
  border-radius: var(--ef-pill);
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.07);
  font-size: .70rem;
  font-weight: 600;
  color: var(--ef-faint);
  transition: var(--ef-t);
  flex-shrink: 0;
  white-space: nowrap;
}
.lma-ef-step-pill-num {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  display: flex; align-items: center; justify-content: center;
  font-size: .60rem;
  font-weight: 800;
}

/* ════════════════════════════════════════════════════════════════════
   BODY
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-body { padding: 40px 52px 52px; }

/* ── Entrant type ───────────────────────────────────────────────── */
.lma-ef-entrant-type {
  background: var(--ef-bg-surface);
  border: 1px solid var(--ef-border);
  border-radius: var(--ef-rl);
  padding: 22px 26px;
  margin-bottom: 28px;
}
/* V14.2.2 — CSS-only fix: once the returning-nominee "Welcome Back"
   panel (#lma-rt-loaded-{editionId}) has been revealed by
   entry-public.js's existing $(...).show() call, the "Have you
   participated..." question above it is redundant (already answered)
   and was staying visible at the same time. entry-public.js was not
   modified — this detects the panel's own show/hide state (jQuery's
   .show() clears the inline "display:none" it starts with) via :has(),
   and hides the now-redundant question in response. Attribute-prefix
   selectors are used since both elements' IDs carry a per-edition
   suffix. Degrades gracefully (question stays visible, exactly as
   before) on the small remaining share of browsers without :has(). */
.lma-ef:has([id^="lma-rt-loaded-"]:not([style*="display:none"]):not([style*="display: none"])) [id^="lma-entrant-type-"] {
  display: none !important;
}
.lma-ef-entrant-question {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ef-muted);
  margin: 0 0 14px;
}
.lma-ef-entrant-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.lma-ef-entrant-radio {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  padding: 28px 20px 24px;
  border-radius: var(--ef-rl);
  border: 1px solid var(--ef-border);
  background: var(--ef-bg-input);
  cursor: pointer;
  transition: var(--ef-t);
  font-size: .88rem;
  color: var(--ef-muted);
  user-select: none;
}
.lma-ef-entrant-radio:hover {
  border-color: var(--ef-border-md);
  background: var(--ef-bg-hover);
  transform: translateY(-2px);
}
.lma-ef-entrant-radio input[type="radio"] {
  position: absolute;
  top: 14px; right: 14px;
  accent-color: var(--ef-gold);
  width: 16px; height: 16px;
}
.lma-ef-entrant-card-icon { font-size: 1.7rem; line-height: 1; margin-bottom: 4px; }
.lma-ef-entrant-card-title { font-size: 1rem; font-weight: 800; color: var(--ef-text); }
.lma-ef-entrant-card-desc { font-size: .8rem; color: var(--ef-muted); line-height: 1.5; }
.lma-ef-entrant-radio:has(input:checked) {
  border-color: var(--ef-gold);
  background: rgba(201,151,58,.08);
  box-shadow: 0 0 0 1px rgba(201,151,58,.25), 0 8px 24px rgba(201,151,58,.14);
  transform: scale(1.02);
}
.lma-ef-entrant-radio:has(input:checked) .lma-ef-entrant-card-desc { color: var(--ef-text); }
@media (max-width: 560px) {
  .lma-ef-entrant-cards { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════════════════
   RETURNING NOMINEE PANELS
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-rt-panel { margin-bottom: 20px; }

.lma-ef-rt-welcome { text-align: center; padding: 40px 32px; }
.lma-ef-rt-welcome-icon {
  width: 52px; height: 52px;
  border-radius: 50%;
  background: var(--ef-green-bg);
  border: 2px solid rgba(34,197,94,.28);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem;
  color: var(--ef-green);
  margin: 0 auto 16px;
  font-style: normal;
}
.lma-ef-rt-welcome-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--ef-text);
  margin: 0 0 16px;
}

/* RT buttons */
.lma-ef-rt-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 20px;
  flex-wrap: wrap;
}

/* ════════════════════════════════════════════════════════════════════
   PREMIUM GOLD BUTTON SYSTEM — v10.0
   All buttons: gold gradient, lift effect, glow, active click, focus, disabled
   ════════════════════════════════════════════════════════════════════ */

/* ── Shared gold button base — wrapped in .lma-ef for specificity over WP admin colors ── */
/* V14.1: .lma-ef-photo-upload-btn removed from this list — it's now a
   premium dropzone (see .lma-ef-dropzone below), not a solid-gold pill
   button, and the !important declarations here were completely
   defeating that redesign regardless of selector specificity. */
.lma-ef .lma-ef-rt-btn,
.lma-ef .lma-ef-submit-btn,
.lma-entry-tracker-wrap .lma-entry-submit-btn,
.lma-ef .lma-ef-ai-bio-generate {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 12px 28px;
  border-radius: 12px;
  border: none !important;
  background: linear-gradient(135deg, #9C7629 0%, #C9973A 45%, #DDB876 75%, #C9973A 100%) !important;
  background-size: 200% 200% !important;
  color: #111111 !important;
  font-size: .78rem !important;
  font-weight: 700 !important;
  cursor: pointer;
  letter-spacing: .045em;
  text-transform: uppercase;
  font-family: var(--ef-font);
  box-shadow:
    0 6px 24px rgba(201,151,58,.35),
    0 2px 8px rgba(0,0,0,.45),
    inset 0 1px 0 rgba(255,255,255,.25);
  transition: transform .20s cubic-bezier(.4,0,.2,1),
              box-shadow .20s cubic-bezier(.4,0,.2,1),
              background-position .30s ease;
  overflow: hidden;
  -webkit-appearance: none;
  appearance: none;
  min-width: 160px;
  outline: none;
  text-decoration: none;
}

/* Kill WP pink on every child element inside LMA buttons */
.lma-ef .lma-ef-rt-btn *,
.lma-ef .lma-ef-submit-btn *,
.lma-entry-tracker-wrap .lma-entry-submit-btn *,
.lma-ef .lma-ef-ai-bio-generate * {
  color: #111111 !important;
  font-size: inherit !important;
}

/* Shimmer overlay */
.lma-ef .lma-ef-rt-btn::before,
.lma-ef .lma-ef-submit-btn::before,
.lma-entry-tracker-wrap .lma-entry-submit-btn::before,
.lma-ef .lma-ef-ai-bio-generate::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.22) 0%, transparent 55%);
  opacity: 0;
  transition: opacity .20s ease;
  border-radius: inherit;
  pointer-events: none;
}

/* Hover — lift + glow + shimmer */
.lma-ef .lma-ef-rt-btn:hover,
.lma-ef .lma-ef-submit-btn:hover,
.lma-entry-tracker-wrap .lma-entry-submit-btn:hover,
.lma-ef .lma-ef-ai-bio-generate:hover {
  transform: translateY(-3px);
  box-shadow:
    0 14px 44px rgba(201,151,58,.48),
    0 4px 16px rgba(0,0,0,.50),
    inset 0 1px 0 rgba(255,255,255,.30);
  background-position: 100% 100% !important;
  color: #111111 !important;
}
.lma-ef .lma-ef-rt-btn:hover *,
.lma-ef .lma-ef-submit-btn:hover *,
.lma-entry-tracker-wrap .lma-entry-submit-btn:hover *,
.lma-ef .lma-ef-ai-bio-generate:hover * { color: #111111 !important; }

.lma-ef .lma-ef-rt-btn:hover::before,
.lma-ef .lma-ef-submit-btn:hover::before,
.lma-entry-tracker-wrap .lma-entry-submit-btn:hover::before,
.lma-ef .lma-ef-ai-bio-generate:hover::before { opacity: 1; }

/* Active — press-down click effect */
.lma-ef .lma-ef-rt-btn:active,
.lma-ef .lma-ef-submit-btn:active,
.lma-entry-tracker-wrap .lma-entry-submit-btn:active,
.lma-ef .lma-ef-ai-bio-generate:active {
  transform: translateY(0px);
  box-shadow:
    0 4px 14px rgba(201,151,58,.28),
    0 1px 4px rgba(0,0,0,.50),
    inset 0 2px 4px rgba(0,0,0,.15);
}

/* Focus state — gold ring */
.lma-ef .lma-ef-rt-btn:focus-visible,
.lma-ef .lma-ef-submit-btn:focus-visible,
.lma-entry-tracker-wrap .lma-entry-submit-btn:focus-visible,
.lma-ef .lma-ef-ai-bio-generate:focus-visible {
  outline: 3px solid rgba(201,151,58,.70) !important;
  outline-offset: 3px;
}

/* Disabled state */
.lma-ef .lma-ef-rt-btn:disabled,
.lma-ef .lma-ef-submit-btn:disabled,
.lma-entry-tracker-wrap .lma-entry-submit-btn:disabled,
.lma-ef .lma-ef-ai-bio-generate:disabled {
  opacity: .45;
  cursor: not-allowed;
  transform: none !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.30) !important;
}

/* Size variants — V10.3: reduced font sizes */
.lma-ef .lma-ef-submit-btn       { padding: 14px 48px; font-size: .78rem !important; border-radius: 14px; min-width: 240px; }
.lma-entry-tracker-wrap .lma-entry-submit-btn { padding: 12px 40px; font-size: .75rem !important; border-radius: 12px; min-width: 180px; }
.lma-ef .lma-ef-ai-bio-generate  { padding: 9px 20px; font-size: .72rem !important; min-width: auto; text-transform: none; letter-spacing: .02em; }

/* ── Ghost / text link ──────────────────────────────────────────── */
.lma-ef-rt-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  color: var(--ef-muted) !important;
  font-size: .82rem;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: rgba(184,184,194,.35);
  text-underline-offset: 3px;
  transition: var(--ef-tf);
}
.lma-ef-rt-link:hover { color: var(--ef-gold) !important; text-decoration-color: rgba(201,151,58,.40); }

.lma-ef-rt-found-info { font-size: .88rem; color: var(--ef-muted); margin: 0 0 14px; overflow-wrap: break-word; word-break: break-word; }
.lma-ef-section-loaded-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .78rem;
  font-weight: 600;
  color: var(--ef-green);
  background: var(--ef-green-bg);
  border: 1px solid rgba(34,197,94,.22);
  border-radius: var(--ef-pill);
  padding: 5px 14px;
  margin: 0;
}

/* ════════════════════════════════════════════════════════════════════
   SECTIONS
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-section {
  background: var(--ef-glass);
  border: 1px solid var(--ef-glass-bd);
  border-radius: var(--ef-rxl);
  padding: 40px;
  margin-bottom: 18px;
  transition: var(--ef-t);
  animation: lma-ef-fade-in .4s ease both;
}
.lma-ef-section:hover {
  transform: translateY(-2px);
  border-color: rgba(201,151,58,.30);
  box-shadow: 0 12px 32px rgba(0,0,0,.35);
}
@keyframes lma-ef-fade-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.lma-ef-section:hover { border-color: var(--ef-border-md); }
.lma-ef-section-header {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 22px;
}
.lma-ef-section-num {
  width: 40px; height: 40px;
  border-radius: 10px;
  background: rgba(201,151,58,.10);
  border: 1px solid rgba(201,151,58,.20);
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}
.lma-ef-section-title { font-size: .97rem; font-weight: 700; color: var(--ef-text); letter-spacing: -.01em; }
.lma-ef-section-collapsed { padding: 0; }

/* ════════════════════════════════════════════════════════════════════
   GRID
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.lma-ef-col-left  { grid-column: 1; }
.lma-ef-col-right { grid-column: 2; }
.lma-ef-col-full  { grid-column: 1 / -1; }

/* ════════════════════════════════════════════════════════════════════
   FIELDS & INPUTS
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-field { display: flex; flex-direction: column; gap: 7px; }
.lma-ef-label {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--ef-muted);
  display: flex;
  align-items: center;
  gap: 5px;
  line-height: 1;
}
.lma-ef-req {
  color: var(--ef-gold);
  font-size: 0; /* visually hides the literal "*" — screen readers still read it */
}
.lma-ef-req::before {
  content: '★';
  font-size: .68rem;
}

.lma-ef-input,
.lma-ef-select {
  width: 100%;
  height: 58px; /* brief spec */
  background: var(--ef-bg-input);
  border: 1px solid var(--ef-border);
  border-radius: var(--ef-r);
  padding: 0 15px;
  font-size: .88rem;
  font-family: var(--ef-font);
  color: var(--ef-text);
  outline: none;
  transition: var(--ef-t);
  box-sizing: border-box;
  -webkit-appearance: none;
}
.lma-ef-textarea {
  width: 100%;
  min-height: 120px;
  background: var(--ef-bg-input);
  border: 1px solid var(--ef-border);
  border-radius: var(--ef-r);
  padding: 14px 15px;
  font-size: .88rem;
  font-family: var(--ef-font);
  color: var(--ef-text);
  outline: none;
  transition: var(--ef-t);
  box-sizing: border-box;
  resize: vertical;
}
.lma-ef-input::placeholder,
.lma-ef-textarea::placeholder { color: var(--ef-faint); font-style: italic; }

.lma-ef-input:hover,
.lma-ef-select:hover,
.lma-ef-textarea:hover { border-color: rgba(201,151,58,.22); background: var(--ef-bg-hover); }

.lma-ef-input:focus,
.lma-ef-select:focus,
.lma-ef-textarea:focus {
  border-color: rgba(201,151,58,.52);
  box-shadow: 0 0 0 3px rgba(201,151,58,.11), 0 2px 10px rgba(0,0,0,.25);
  background: var(--ef-bg-hover);
}

.lma-ef-input.is-valid  { border-color: rgba(34,197,94,.38); }
.lma-ef-input.is-error,
.lma-ef-select.is-error,
.lma-ef-textarea.is-error { border-color: rgba(248,113,113,.44); background: rgba(248,113,113,.04); }

.lma-ef-select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23B8B8C2' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 38px;
  cursor: pointer;
}
.lma-ef-select option { background: var(--ef-bg-surface); }
.lma-ef-textarea { resize: vertical; min-height: 108px; line-height: 1.6; }

/* Date field — V15.9.1: on this dark background, the browser's default
   calendar-picker icon renders near-black and is effectively invisible
   (see Release Date). color-scheme tells the browser to draw its own
   native date-input chrome — the picker icon AND the calendar popup it
   opens — using a light-on-dark theme instead, matching every other
   input here without needing a filter/invert hack on the icon alone. */
.lma-ef-input[type="date"] {
  color-scheme: dark;
  cursor: pointer;
}

/* URL field */
.lma-ef-url-wrap { position: relative; display: flex; align-items: center; }
.lma-ef-url-icon { position: absolute; left: 13px; font-size: .85rem; color: var(--ef-faint); pointer-events: none; z-index: 1; }
.lma-ef-url-wrap .lma-ef-input { padding-left: 36px; }

/* OTP input */
.lma-ef-otp-input { letter-spacing: .35em; font-size: 1.35rem; font-weight: 700; text-align: center; max-width: 210px; }

/* ════════════════════════════════════════════════════════════════════
   iOS SAFARI 16PX ZOOM-PREVENTION FIX (V14.3.6)
   ════════════════════════════════════════════════════════════════════
   iOS Safari — and Chrome/Edge on iOS, which are required to use the
   same WebKit engine — auto-zooms the whole page when a form control's
   *computed* font-size is under 16px at the moment it receives focus.
   `.lma-ef-input`, `.lma-ef-select`, and `.lma-ef-textarea` were set to
   .88rem (14.08px against a 16px root) above, which triggered that
   zoom on every tap in this form.
   This section raises every real text-entry control in the Entry
   Submission form (and its returning-nominee/OTP panel) to exactly
   16px — nothing else changes. Box height (58px), padding (15px),
   border, background, and border-radius are all set on the same rules
   above and are untouched, so the input BOXES are pixel-identical; only
   the text inside them is ~2px larger, which reads as a normal input
   font-size, not a redesign. All non-input typography (labels, hints,
   errors, buttons, section titles, stat/tracker text, etc.) is
   completely unaffected — this section touches font-size on text-entry
   controls and their placeholders only.
   Scoped entirely under `.lma-ef` — this module's own form wrapper
   (see the root `<div class="lma-ef">` in entry-form.php) — and further
   qualified by this module's own `.lma-ef-*` component classes, so it
   cannot reach wp-admin, Elementor's own form widgets, or any other
   form on the site; none of those carry this wrapper class.
   The type-selector fallbacks (`.lma-ef input[type="text"]` etc.) exist
   for "dynamically generated fields" — any future field injected by
   JS that doesn't happen to carry `.lma-ef-input`/`.lma-ef-select` is
   still caught by type, as long as it's inside `.lma-ef`.
   No viewport-meta changes, no maximum-scale/user-scalable, no JS: pure
   CSS, and pinch-to-zoom remains fully available to the visitor at all
   times — this only prevents the *automatic*, focus-triggered zoom. */
.lma-ef .lma-ef-input,
.lma-ef .lma-ef-select,
.lma-ef .lma-ef-textarea,
.lma-ef select,
.lma-ef textarea,
.lma-ef input[type="text"],
.lma-ef input[type="email"],
.lma-ef input[type="tel"],
.lma-ef input[type="url"],
.lma-ef input[type="date"],
.lma-ef input[type="number"],
.lma-ef input[type="search"],
.lma-ef input[type="file"] {
  font-size: 16px !important;
}

/* Placeholders: iOS reads a placeholder's own computed font-size
   independently of the input's in some engine versions, so it's set
   explicitly here rather than relying on inheritance alone. Color and
   italic styling (set further above) are untouched. */
.lma-ef .lma-ef-input::placeholder,
.lma-ef .lma-ef-textarea::placeholder,
.lma-ef input::placeholder,
.lma-ef textarea::placeholder {
  font-size: 16px !important;
}

/* The OTP code input intentionally uses a LARGER font (1.35rem/21.6px,
   already well clear of the zoom threshold) for legibility of the
   6-digit code — the 16px !important rule above would otherwise pull
   it back down to 16px, so its original size is restored here. This is
   the only control in the form whose font-size was already >= 16px,
   and its size is unchanged from before this fix.
   Selector note: `.lma-ef-input.lma-ef-otp-input` (both classes on the
   element itself) is used rather than a plain `.lma-ef-otp-input`
   because the fallback rules above include `input[type="text"]`
   selectors — the bare `input` type selector in those adds a
   specificity point that a 2-class selector doesn't have, so this
   restore needs 3 class-level selectors to reliably outrank them
   regardless of source order. */
.lma-ef .lma-ef-input.lma-ef-otp-input {
  font-size: 1.35rem !important;
}

.lma-ef-hint { font-size: .74rem; color: var(--ef-muted); line-height: 1.5; margin: 0; }
.lma-ef-hint--inline { font-weight: 400; text-transform: none; font-size: .72rem; }
.lma-ef-field-error {
  font-size: .74rem;
  color: var(--ef-red);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 5px;
  line-height: 1.5;
}
.lma-ef-field-error::before { content: '⚠'; font-size: .68rem; }

/* ════════════════════════════════════════════════════════════════════
   PHOTO UPLOAD
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-photo-wrap { display: flex; gap: 20px; align-items: flex-start; }
.lma-ef-photo-avatar {
  width: 88px; height: 88px;
  border-radius: 14px;
  border: 2px dashed rgba(201,151,58,.22);
  background: var(--ef-bg-input);
  overflow: hidden;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: var(--ef-t);
}
.lma-ef-photo-avatar:hover { border-color: rgba(201,151,58,.48); }
.lma-ef-photo-avatar-icon { font-size: 2rem; color: var(--ef-faint); }
.lma-ef-photo-avatar img { width: 100%; height: 100%; object-fit: cover; display: none; }
.lma-ef-photo-avatar.has-image .lma-ef-photo-avatar-icon { display: none; }
.lma-ef-photo-avatar.has-image img { display: block; }

.lma-ef-photo-right { flex: 1; display: flex; flex-direction: column; gap: 9px; justify-content: center; }
.lma-ef-photo-upload-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 18px;
  border-radius: var(--ef-r);
  background: rgba(201,151,58,.10);
  border: 1px solid rgba(201,151,58,.28);
  color: var(--ef-gold);
  font-size: .80rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--ef-t);
  width: fit-content;
}
.lma-ef-photo-upload-btn:hover { background: rgba(201,151,58,.18); transform: translateY(-1px); }
.lma-ef-photo-file { display: none !important; }

/* Premium dropzone presentation (V14.1) — same clickable <label for="...">
   mechanism as the pill button above (a real native drag-and-drop
   listener isn't added here; adding one would be new interaction
   logic, out of scope for a visual-only redesign), just styled as a
   large dashed-border zone instead of a small pill. Compound selector
   ensures this wins over both existing .lma-ef-photo-upload-btn blocks
   regardless of their position in the file. */
.lma-ef-photo-upload-btn.lma-ef-dropzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 4px;
  width: 100%;
  min-width: 0;
  padding: 16px 18px;
  border-radius: var(--ef-r);
  border: 1.5px dashed rgba(201,151,58,.32);
  background: rgba(201,151,58,.03);
  color: var(--ef-muted);
  font-size: .82rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: normal;
}
.lma-ef-photo-upload-btn.lma-ef-dropzone:hover {
  border-color: var(--ef-gold);
  background: rgba(201,151,58,.07);
  transform: none;
}
.lma-ef-dropzone-icon { color: var(--ef-gold); width: 18px; height: 18px; margin-bottom: 0; }
.lma-ef-dropzone-icon svg { width: 100%; height: 100%; }
.lma-ef-dropzone-title { color: var(--ef-text); font-size: .80rem; font-weight: 700; }
.lma-ef-dropzone-sub { color: var(--ef-faint); font-size: .68rem; font-weight: 500; }

.lma-ef-hint--success { color: var(--ef-green); margin-top: 2px; }

/* ════════════════════════════════════════════════════════════════════
   RELEASE TYPE
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-release-type-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.lma-ef-release-type-option { cursor: pointer; }
.lma-ef-release-type-option input { display: none; }
.lma-ef-release-type-option span {
  display: inline-flex;
  align-items: center;
  padding: 7px 16px;
  border-radius: var(--ef-pill);
  border: 1px solid rgba(255,255,255,.09);
  background: var(--ef-bg-input);
  font-size: .80rem;
  font-weight: 600;
  color: var(--ef-muted);
  transition: var(--ef-t);
  cursor: pointer;
}
.lma-ef-release-type-option span:hover { border-color: rgba(201,151,58,.28); color: var(--ef-text); background: var(--ef-bg-hover); }
.lma-ef-release-type-option input:checked + span {
  border-color: var(--ef-gold);
  background: rgba(201,151,58,.11);
  color: var(--ef-gold);
  box-shadow: 0 0 10px rgba(201,151,58,.14);
}

/* ════════════════════════════════════════════════════════════════════
   GENRE PILLS
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-genre-section { display: flex; flex-direction: column; gap: 12px; }
.lma-ef-genre-label {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--ef-muted);
  display: flex;
  align-items: center;
  gap: 10px;
}
.lma-ef-genre-hint-badge {
  background: rgba(201,151,58,.12);
  border: 1px solid rgba(201,151,58,.24);
  color: var(--ef-purple-lt);
  font-size: .63rem;
  padding: 2px 9px;
  border-radius: var(--ef-pill);
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.lma-ef-genre-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.lma-ef-genre-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 18px;
  border-radius: 50px;
  border: 1px solid rgba(201,151,58,.25) !important;
  background: rgba(255,255,255,.04) !important;
  color: rgba(201,151,58,.75) !important;
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all .22s cubic-bezier(.4,0,.2,1);
  font-family: var(--ef-font);
  letter-spacing: .02em;
  -webkit-appearance: none;
  appearance: none;
}
.lma-ef-genre-pill:hover {
  background: rgba(201,151,58,.15) !important;
  border-color: #C9973A !important;
  color: var(--ef-text) !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(201,151,58,.18);
}
.lma-ef-genre-pill[aria-pressed="true"],
.lma-ef-genre-pill.selected {
  background: linear-gradient(135deg, #C9973A, #DDB876) !important;
  border-color: #DDB876 !important;
  color: #111111 !important;
  font-weight: 700;
  box-shadow: 0 4px 20px rgba(201,151,58,.35), inset 0 1px 0 rgba(255,255,255,.22);
  transform: translateY(-1px);
}
.lma-ef-genre-pill.maxed {
  opacity: .38;
  cursor: not-allowed;
  transform: none !important;
}
.lma-ef-genre-check-icon {
  opacity: 0;
  transform: scale(.5) rotate(-10deg);
  transition: all .18s cubic-bezier(.4,0,.2,1);
  font-size: .75rem;
  font-weight: 800;
}
.lma-ef-genre-pill[aria-pressed="true"] .lma-ef-genre-check-icon,
.lma-ef-genre-pill.selected .lma-ef-genre-check-icon {
  opacity: 1;
  transform: scale(1) rotate(0deg);
}

/* Selected genre chip summary */
.lma-ef-genre-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
.lma-ef-genre-chip,
.lma-ef-genre-selected-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 50px;
  border: 1px solid rgba(201,151,58,.35);
  background: rgba(201,151,58,.10);
  color: var(--ef-gold);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .02em;
}
.lma-ef-genre-section-counter {
  font-size: .72rem;
  font-weight: 700;
  color: var(--ef-gold);
  background: rgba(201,151,58,.10);
  border: 1px solid rgba(201,151,58,.25);
  border-radius: 50px;
  padding: 3px 10px;
  letter-spacing: .04em;
}

/* ════════════════════════════════════════════════════════════════════
   PREVIOUS WORKS LIST
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-prev-works-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 7px;
}
.lma-ef-prev-works-list li {
  padding: 10px 14px;
  background: var(--ef-bg-input);
  border: 1px solid var(--ef-border);
  border-radius: var(--ef-r);
  font-size: .85rem;
  color: var(--ef-muted);
  cursor: pointer;
  transition: var(--ef-tf);
}
.lma-ef-prev-works-list li:hover { border-color: rgba(201,151,58,.28); color: var(--ef-text); background: var(--ef-bg-hover); }
.lma-ef-work-section { display: flex; flex-direction: column; }

/* ════════════════════════════════════════════════════════════════════
   SUBMIT ROW
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-submit-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin-top: 32px;
  padding-top: 32px;
  border-top: 1px solid var(--ef-border);
}

/* ── Gold CTA — override sizing for main submit ─────────────────── */
.lma-ef-submit-btn {
  /* sizing and border-radius already set in shared button variant above */
  /* this block intentionally minimal to avoid duplication */
  background: linear-gradient(135deg, #9C7629 0%, #C9973A 45%, #DDB876 75%, #C9973A 100%);
  /* V14.2 — brief-specific dimensions for the main CTA only (not the
     shared rt-btn/ai-bio-generate buttons, which stay their existing
     smaller size). !important needed to beat the shared button base's
     own !important-protected padding/border-radius. */
  height: 64px !important;
  padding: 0 40px !important;
  border-radius: 18px !important;
  width: 320px;
  max-width: 100%;
}
@media (max-width: 640px) {
  .lma-ef-submit-btn { width: 100%; }
}
.lma-ef-submit-btn::before { background: linear-gradient(135deg, rgba(255,255,255,.22) 0%, transparent 55%); }

.lma-ef-submit-disclaimer {
  font-size: .72rem;
  color: var(--ef-faint);
  text-align: center;
  max-width: 460px;
  line-height: 1.6;
  margin: 0;
}

/* ════════════════════════════════════════════════════════════════════
   SPINNERS
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-spinner {
  width: 17px; height: 17px;
  border: 2px solid rgba(9,9,12,.25);
  border-top-color: #000000;
  border-radius: 50%;
  animation: lma-spin .7s linear infinite;
  flex-shrink: 0;
}
.lma-ef-ai-spinner {
  width: 15px; height: 15px;
  border: 2px solid rgba(201,151,58,.18);
  border-top-color: var(--ef-gold);
  border-radius: 50%;
  animation: lma-spin .7s linear infinite;
}
@keyframes lma-spin { to { transform: rotate(360deg); } }
@keyframes lma-ef-progress-pulse {
  0%, 100% { background-position: 0% 0; }
  50%      { background-position: 100% 0; }
}

/* ════════════════════════════════════════════════════════════════════
   AI BIOGRAPHY ASSISTANT
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-ai-bio-wrap { margin-top: 12px; }
.lma-ef-ai-bio-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 16px;
  border-radius: var(--ef-pill);
  border: 1px solid rgba(201,151,58,.28) !important;
  background: rgba(201,151,58,.08) !important;
  color: var(--ef-gold-lt) !important;
  font-size: .76rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--ef-t);
}
.lma-ef-ai-bio-toggle:hover { background: rgba(201,151,58,.14); border-color: rgba(201,151,58,.48); }
.lma-ef-ai-icon { font-style: normal; }
.lma-ef-ai-chevron { font-size: .62rem; transition: transform .2s; }
.lma-ef-ai-bio-panel {
  margin-top: 12px;
  background: rgba(201,151,58,.05);
  border: 1px solid rgba(201,151,58,.14);
  border-radius: var(--ef-rl);
  padding: 20px 22px;
}
.lma-ef-ai-bio-hint { font-size: .78rem; color: var(--ef-muted); margin: 0 0 14px; line-height: 1.5; }
.lma-ef-ai-bio-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.lma-ef-ai-bio-field { display: flex; flex-direction: column; gap: 7px; }
.lma-ef-ai-bio-field--full { grid-column: 1 / -1; }
.lma-ef-ai-bio-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

.lma-ef-ai-bio-generate {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 20px;
  border-radius: var(--ef-r);
  border: none;
  background: linear-gradient(135deg, var(--ef-purple), var(--ef-purple-lt));
  color: #fff;
  font-size: .80rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--ef-t);
  box-shadow: 0 4px 16px rgba(201,151,58,.24);
}
.lma-ef-ai-bio-generate:hover { transform: translateY(-1px); box-shadow: 0 6px 22px rgba(201,151,58,.34); }

.lma-ef-ai-bio-disclaimer { font-size: .70rem; color: var(--ef-faint); margin: 0; font-style: italic; }
.lma-ef-ai-bio-error {
  margin-top: 10px;
  padding: 10px 14px;
  background: var(--ef-red-bg);
  border: 1px solid rgba(248,113,113,.22);
  border-radius: var(--ef-r);
  font-size: .78rem;
  color: var(--ef-red);
}

/* Sources used to research the biography — Google Search grounding (V15.11.0) */
.lma-ef-ai-bio-sources {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(201,151,58,.14);
}
.lma-ef-ai-bio-sources-label {
  font-size: .70rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--ef-faint);
  margin: 0 0 8px;
}
.lma-ef-ai-bio-sources-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.lma-ef-ai-bio-sources-list li a {
  font-size: .76rem;
  color: var(--ef-gold-lt);
  text-decoration: none;
  word-break: break-word;
}
.lma-ef-ai-bio-sources-list li a:hover { text-decoration: underline; }

/* ════════════════════════════════════════════════════════════════════
   ENTRY TRACKER — PREMIUM DASHBOARD
   ════════════════════════════════════════════════════════════════════ */
.lma-entry-tracker-wrap {
  max-width: 860px;
  margin: 0 auto;
  font-family: var(--ef-font);
  color: var(--ef-text);
  -webkit-font-smoothing: antialiased;
}

/* Search card */
.lma-entry-tracker-form {
  background: var(--ef-bg-card);
  border: 1px solid var(--ef-border);
  border-radius: var(--ef-rxl);
  padding: 52px;
  text-align: center;
  margin-bottom: 28px;
  position: relative;
  overflow: hidden;
  box-shadow: var(--ef-shadow-lg);
}
.lma-entry-tracker-form::before {
  content: '';
  position: absolute;
  top: -80px; left: 50%;
  transform: translateX(-50%);
  width: 400px; height: 300px;
  background: radial-gradient(circle, rgba(201,151,58,.11) 0%, transparent 65%);
  pointer-events: none;
}

/* ── Tracker hero heading — matches entry-tracker heading colour ── */
.lma-tracker-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 16px;
  border-radius: var(--ef-pill);
  background: rgba(201,151,58,.10);
  border: 1px solid rgba(201,151,58,.25);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: var(--ef-gold);
  margin-bottom: 20px;
  position: relative;
  z-index: 1;
}

.lma-entry-tracker-title {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: -.025em;
  /* Gold gradient — same prestige feel as tracker heading */
  background: linear-gradient(135deg, var(--ef-gold-dk) 0%, var(--ef-gold-lt) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0 0 10px;
  position: relative;
  z-index: 1;
}

.lma-entry-tracker-sub {
  font-size: .88rem;
  color: var(--ef-muted);
  margin: 0 0 34px;
  position: relative;
  z-index: 1;
}

.lma-entry-tracker-inputs {
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: 420px;
  margin: 0 auto 26px;
  text-align: left;
  position: relative;
  z-index: 1;
}

.lma-entry-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 12px;
}
.lma-entry-field:last-child { margin-bottom: 0; }
.lma-entry-field label {
  font-size: .70rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--ef-muted);
}
.lma-entry-field input {
  background: var(--ef-bg-input);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: var(--ef-r);
  padding: 12px 15px;
  font-size: .88rem;
  font-family: var(--ef-font);
  color: var(--ef-text);
  outline: none;
  transition: var(--ef-t);
  box-sizing: border-box;
  width: 100%;
}
.lma-entry-field input::placeholder { color: var(--ef-faint); font-style: italic; }
.lma-entry-field input:hover { border-color: rgba(201,151,58,.20); background: var(--ef-bg-hover); }
.lma-entry-field input:focus {
  border-color: rgba(201,151,58,.50);
  box-shadow: 0 0 0 3px rgba(201,151,58,.11);
  background: var(--ef-bg-hover);
}

.lma-tracker-or {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ef-faint);
  margin-bottom: 12px;
}
.lma-tracker-or::before, .lma-tracker-or::after { content: ''; flex: 1; height: 1px; background: var(--ef-border); }

/* ── Tracker submit button — inherits shared gold system ─────────── */
.lma-entry-submit-btn {
  /* sizing override handled in shared system */
  margin-top: 8px;
  width: 100%;
  max-width: 320px;
}

.lma-entry-notice { padding: 14px 20px; border-radius: var(--ef-r); font-size: .86rem; }
.lma-entry-notice--error { background: var(--ef-red-bg); border: 1px solid rgba(248,113,113,.22); color: var(--ef-red); }

/* Status header */
#lma-tracker-result { margin-top: 0; }
.lma-tracker-status-header {
  background: var(--ef-bg-card);
  border: 1px solid var(--ef-border);
  border-radius: var(--ef-rxl);
  padding: 32px 40px;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  box-shadow: var(--ef-shadow-md);
}
.lma-tracker-status-left { display: flex; flex-direction: column; gap: 6px; }
.lma-tracker-status-label { font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ef-faint); }
.lma-tracker-entry-id { font-size: 1.45rem; font-weight: 800; color: var(--ef-text); letter-spacing: -.015em; }
.lma-tracker-applicant { font-size: .88rem; font-weight: 600; color: var(--ef-muted); text-transform: uppercase; letter-spacing: .05em; }

/* Status badge */
.lma-entry-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border-radius: var(--ef-pill);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.lma-entry-status::before {
  content: '';
  width: 7px; height: 7px;
  border-radius: 50%;
  background: currentColor;
  animation: lma-pulse 2s ease-in-out infinite;
}
.lma-entry-status--submitted { background: rgba(96,165,250,.11); color: var(--ef-blue); border: 1px solid rgba(96,165,250,.24); }
.lma-entry-status--review    { background: rgba(201,151,58,.11); color: var(--ef-purple-lt); border: 1px solid rgba(201,151,58,.26); }
.lma-entry-status--approved  { background: var(--ef-green-bg); color: var(--ef-green); border: 1px solid rgba(34,197,94,.24); }
.lma-entry-status--nominee   { background: rgba(201,151,58,.11); color: var(--ef-gold); border: 1px solid rgba(201,151,58,.28); }
.lma-entry-status--rejected  { background: var(--ef-red-bg); color: var(--ef-red); border: 1px solid rgba(248,113,113,.24); }

@keyframes lma-pulse { 0%,100%{opacity:1} 50%{opacity:.30} }

/* Dashboard grid */
.lma-tracker-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
.lma-tracker-grid--full { grid-column: 1 / -1; }

.lma-tracker-card {
  background: var(--ef-bg-card);
  border: 1px solid var(--ef-border);
  border-radius: var(--ef-rl);
  overflow: hidden;
  transition: var(--ef-t);
  box-shadow: 0 2px 8px rgba(0,0,0,.38);
}
.lma-tracker-card:hover { border-color: var(--ef-border-md); }
.lma-tracker-card-header {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--ef-border);
  background: rgba(201,151,58,.03);
}
.lma-tracker-card-icon {
  width: 32px; height: 32px;
  border-radius: 8px;
  background: rgba(201,151,58,.10);
  border: 1px solid rgba(201,151,58,.17);
  display: flex; align-items: center; justify-content: center;
  font-size: .88rem;
}
.lma-tracker-card-title { font-size: .70rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--ef-muted); }
.lma-tracker-card-body { padding: 20px; }

/* Detail table */
.lma-entry-tracker-table { width: 100%; border-collapse: collapse; }
.lma-entry-tracker-table td { padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.04); vertical-align: top; }
.lma-entry-tracker-table td:first-child { font-size: .69rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ef-faint); width: 115px; padding-right: 14px; }
.lma-entry-tracker-table td:last-child { font-size: .86rem; color: var(--ef-text); font-weight: 500; }
.lma-entry-tracker-table tr:last-child td { border-bottom: none; }

/* Status timeline */
.lma-tracker-timeline { display: flex; flex-direction: column; }
.lma-tracker-timeline-step {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 11px 0;
  position: relative;
}
.lma-tracker-timeline-step:not(:last-child)::after {
  content: '';
  position: absolute;
  left: 15px; top: 44px;
  width: 2px; height: calc(100% - 18px);
  background: rgba(255,255,255,.05);
  transition: background .3s ease;
}
.lma-tracker-timeline-step.done::after { background: linear-gradient(to bottom, rgba(201,151,58,.40), rgba(201,151,58,.15)); }

.lma-tracker-tl-dot {
  width: 32px; height: 32px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: .72rem;
  font-weight: 700;
  border: 2px solid rgba(255,255,255,.07);
  background: rgba(255,255,255,.04);
  color: var(--ef-faint);
  position: relative;
  z-index: 1;
  transition: all .25s ease;
}
.lma-tracker-timeline-step.done .lma-tracker-tl-dot {
  background: linear-gradient(135deg, #9C7629, #C9973A);
  border-color: rgba(201,151,58,.50);
  color: #111;
  box-shadow: 0 2px 10px rgba(201,151,58,.30);
}
/* v10.0: active class (our JS uses .active, not .current) */
.lma-tracker-timeline-step.active .lma-tracker-tl-dot,
.lma-tracker-timeline-step.current .lma-tracker-tl-dot {
  background: rgba(201,151,58,.14);
  border-color: var(--ef-gold);
  color: var(--ef-gold);
  box-shadow: 0 0 16px rgba(201,151,58,.30);
  animation: lmaPulse 2s infinite;
}

@keyframes lmaPulse {
  0%, 100% { box-shadow: 0 0 8px rgba(201,151,58,.25); }
  50%       { box-shadow: 0 0 20px rgba(201,151,58,.50); }
}

.lma-tracker-tl-content { padding-top: 4px; }
.lma-tracker-tl-title { font-size: .85rem; font-weight: 600; color: var(--ef-faint); }
.lma-tracker-timeline-step.done .lma-tracker-tl-title   { color: var(--ef-text); }
.lma-tracker-timeline-step.active .lma-tracker-tl-title,
.lma-tracker-timeline-step.current .lma-tracker-tl-title { color: var(--ef-gold); font-weight: 700; }
.lma-tracker-tl-sub { font-size: .72rem; color: var(--ef-faint); margin-top: 2px; }
.lma-tracker-timeline-step.active .lma-tracker-tl-sub,
.lma-tracker-timeline-step.current .lma-tracker-tl-sub  { color: var(--ef-gold); }

/* Dates */
.lma-tracker-dates { display: flex; flex-direction: column; gap: 10px; }
.lma-tracker-date-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  background: var(--ef-bg-surface);
  border-radius: var(--ef-r);
  border: 1px solid var(--ef-border);
}
.lma-tracker-date-label { font-size: .76rem; font-weight: 600; color: var(--ef-muted); }
.lma-tracker-date-val   { font-size: .78rem; font-weight: 700; color: var(--ef-gold); }

/* Category chips */
.lma-tracker-cats { display: flex; flex-wrap: wrap; gap: 7px; }
.lma-tracker-cat-chip {
  padding: 5px 13px;
  border-radius: var(--ef-pill);
  background: rgba(201,151,58,.08);
  border: 1px solid rgba(201,151,58,.20);
  color: var(--ef-gold);
  font-size: .76rem;
  font-weight: 600;
}

/* Work link */
.lma-tracker-work-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 16px;
  border-radius: var(--ef-r);
  background: rgba(96,165,250,.07);
  border: 1px solid rgba(96,165,250,.18);
  color: var(--ef-blue);
  font-size: .80rem;
  font-weight: 600;
  text-decoration: none;
  transition: var(--ef-t);
  margin-top: 10px;
  cursor: pointer;
}
.lma-tracker-work-link:hover { background: rgba(96,165,250,.13); border-color: rgba(96,165,250,.32); }

/* Empty state */
.lma-tracker-empty { text-align: center; padding: 60px 40px; display: none; }
.lma-tracker-empty-icon { font-size: 3.2rem; margin-bottom: 18px; opacity: .32; display: block; }
.lma-tracker-empty-title { font-size: 1.15rem; font-weight: 700; color: var(--ef-text); margin: 0 0 10px; }
.lma-tracker-empty-sub { font-size: .86rem; color: var(--ef-muted); margin: 0 auto; max-width: 300px; line-height: 1.6; }

/* Legacy compat stubs */
.lma-entry-tracker-card {}
.lma-entry-tracker-status-wrap {}

/* ════════════════════════════════════════════════════════════════════
   STEP PANEL FADE-IN
   ════════════════════════════════════════════════════════════════════ */
@keyframes lma-fade-in {
  from { opacity: 0; transform: translateY(7px); }
  to   { opacity: 1; transform: translateY(0); }
}
.lma-ef-step-panel { animation: lma-fade-in .26s cubic-bezier(.4,0,.2,1) both; }

/* ════════════════════════════════════════════════════════════════════
   MOBILE
   ════════════════════════════════════════════════════════════════════ */
@media (max-width: 680px) {
  .lma-ef-header { padding: 32px 20px 26px; }
  .lma-ef-body   { padding: 20px 16px 32px; }
  .lma-ef-section { padding: 18px 16px; }
  .lma-ef-header h2 { font-size: 1.52rem; }
  .lma-ef-step-pills { gap: 5px; }
  .lma-ef-step-pill  { font-size: .60rem; padding: 4px 10px 4px 4px; }
  .lma-ef-grid { grid-template-columns: 1fr; }
  .lma-ef-col-left, .lma-ef-col-right, .lma-ef-col-full { grid-column: 1; }
  .lma-ef-photo-wrap { flex-direction: column; }
  .lma-ef-photo-avatar { width: 80px; height: 80px; }
  .lma-ef-submit-btn { width: 100%; padding: 16px 24px; min-width: unset; }
  .lma-ef-ai-bio-grid { grid-template-columns: 1fr; }
  .lma-ef-ai-bio-field--full { grid-column: 1; }
  .lma-ef-ai-bio-actions { flex-direction: column; align-items: flex-start; }
  .lma-ef-entrant-type { padding: 16px 14px; }
  .lma-ef-rt-actions { flex-direction: column; align-items: flex-start; }

  .lma-entry-tracker-form { padding: 28px 16px; }
  .lma-entry-tracker-title { font-size: 1.52rem; }
  .lma-tracker-grid { grid-template-columns: 1fr; }
  .lma-tracker-status-header { padding: 20px 16px; flex-direction: column; align-items: flex-start; }
}
@media (max-width: 400px) {
  .lma-ef-header h2 { font-size: 1.28rem; }
  .lma-entry-tracker-title { font-size: 1.28rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ════════════════════════════════════════════════════════════════════
   v10.0 — RETURNING NOMINEE PROFILE CARD (Premium Redesign)
   ════════════════════════════════════════════════════════════════════ */

/* Profile loaded panel — premium card */
#lma-rt-loaded- .lma-ef-section,
.lma-ef-rt-welcome {
  background: linear-gradient(135deg, rgba(201,151,58,.05) 0%, rgba(201,151,58,.02) 100%);
  border: 1px solid rgba(201,151,58,.20);
  border-radius: 16px;
  padding: 32px;
  text-align: center;
}

.lma-ef-rt-welcome-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px; height: 60px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: linear-gradient(135deg, #9C7629, #C9973A);
  color: #111;
  font-size: 1.5rem;
  font-weight: 900;
  box-shadow: 0 6px 24px rgba(201,151,58,.35);
}

.lma-ef-rt-welcome-title {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--ef-text);
  margin: 0 0 20px;
  letter-spacing: -.01em;
}

/* Profile summary card inside welcome panel */
#lma-rt-profile-summary- > *,
[id^="lma-rt-profile-summary-"] > * { text-align: left; }

[id^="lma-rt-profile-summary-"] {
  background: rgba(255,255,255,.03);
  border: 1px solid var(--ef-border);
  border-radius: 12px;
  padding: 20px 24px;
  margin: 0 0 20px;
  text-align: left;
}

[id^="lma-rt-profile-summary-"] p {
  margin: 0 0 10px;
  font-size: .88rem;
  color: var(--ef-muted);
}
[id^="lma-rt-profile-summary-"] p:last-child { margin-bottom: 0; }
[id^="lma-rt-profile-summary-"] strong {
  display: block;
  font-size: 1.18rem;
  font-weight: 800;
  color: var(--ef-text);
  letter-spacing: -.01em;
  margin-bottom: 6px;
}

/* Profile photo inside summary */
.lma-ef-rt-preview-photo {
  width: 72px; height: 72px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid rgba(201,151,58,.35);
  box-shadow: 0 4px 16px rgba(0,0,0,.40);
  display: block;
  margin: 0 0 14px;
}

/* Profile info rows */
.lma-ef-rt-profile-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.lma-ef-rt-profile-row:last-child { border-bottom: none; }
.lma-ef-rt-profile-label {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ef-faint);
  width: 90px;
  flex-shrink: 0;
}
.lma-ef-rt-profile-val {
  font-size: .88rem;
  color: var(--ef-text);
  font-weight: 500;
  /* V14.3.2 — Issue 6: long values (esp. email addresses) were
     overflowing this flex row's wrapper on mobile instead of
     wrapping. min-width:0 lets this flex item shrink below its
     content size, and the wrap/break rules let it wrap onto a
     second line within the card instead of spilling out. */
  flex: 1;
  min-width: 0;
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Genre chips in profile summary */
.lma-ef-rt-genre-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 50px;
  border: 1px solid rgba(201,151,58,.28);
  background: rgba(201,151,58,.08);
  color: var(--ef-gold);
  font-size: .72rem;
  font-weight: 600;
  margin: 2px 3px 2px 0;
}

/* Stats row inside profile card */
.lma-ef-rt-stats {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--ef-border);
}
.lma-ef-rt-stat {
  flex: 1;
  min-width: 70px;
  background: rgba(201,151,58,.05);
  border: 1px solid var(--ef-border);
  border-radius: 10px;
  padding: 10px 14px;
  text-align: center;
}
.lma-ef-rt-stat-num {
  display: block;
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--ef-gold);
  line-height: 1;
}
.lma-ef-rt-stat-label {
  display: block;
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ef-faint);
  margin-top: 4px;
}

/* ════════════════════════════════════════════════════════════════════
   v10.0 — TRACKER OR NOTE & WORK LINK
   ════════════════════════════════════════════════════════════════════ */
.lma-tracker-or-note {
  font-size: .72rem;
  color: var(--ef-faint);
  text-align: center;
  margin: -6px 0 14px;
}

.lma-tracker-work-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 20px;
  border-radius: 8px;
  border: 1px solid rgba(201,151,58,.28);
  background: rgba(201,151,58,.07);
  color: var(--ef-gold);
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none;
  transition: var(--ef-t);
}
.lma-tracker-work-link:hover {
  background: rgba(201,151,58,.14);
  border-color: rgba(201,151,58,.50);
  transform: translateY(-1px);
  color: var(--ef-gold);
}

/* ════════════════════════════════════════════════════════════════════
   v10.0 — PHOTO UPLOAD BUTTON OVERRIDE (not a standard button)
   ════════════════════════════════════════════════════════════════════ */
.lma-ef-photo-upload-btn {
  display: inline-flex;
  min-width: auto;
  padding: 10px 22px;
  font-size: .82rem;
  cursor: pointer;
  text-transform: none;
  letter-spacing: .02em;
}

/* ════════════════════════════════════════════════════════════════════
   v10.0 — RELEASE DATE ERROR
   ════════════════════════════════════════════════════════════════════ */
[id^="ef-release-date-error-"] {
  margin-top: 6px;
}

/* ════════════════════════════════════════════════════════════════════
   V10.1 — ALL FIXES
   ════════════════════════════════════════════════════════════════════ */

/* ── Issue 3: Remove ALL pink — ensure no pink bleeds through ─────── */
/* Belt-and-suspenders: override any possible pink from theme/core */
.lma-ef *,
.lma-entry-tracker-wrap * {
  --wp-admin-theme-color: #C9973A !important;
}
.lma-ef a:focus,
.lma-ef input:focus,
.lma-ef select:focus,
.lma-ef textarea:focus,
.lma-ef button:focus { outline-color: rgba(201,151,58,.60) !important; }

/* ── Issue 4: Bold button text — apply globally to all LMA buttons ── */
.lma-ef .lma-ef-rt-btn,
.lma-ef .lma-ef-submit-btn,
.lma-ef .lma-ef-review-back-btn,
.lma-ef .lma-ef-photo-upload-btn,
.lma-ef .lma-ef-ai-bio-generate,
.lma-entry-tracker-wrap .lma-entry-submit-btn {
  font-weight: 700 !important;
}

/* ── Issue 5: Form tips — visually secondary ──────────────────────── */
.lma-ef-tip {
  font-size: .70rem;          /* smaller than label */
  color: rgba(184,184,194,.55); /* softer, lower contrast */
  line-height: 1.5;
  margin: 2px 0 0;
  font-style: italic;
  opacity: .85;
}

/* ── Issue 1: Locked role display ─────────────────────────────────── */
.lma-ef-role-locked {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  background: rgba(201,151,58,.05);
  border: 1px solid rgba(201,151,58,.20);
  border-radius: var(--ef-r);
  font-size: .88rem;
}
.lma-ef-role-locked-value {
  font-weight: 700;
  color: var(--ef-text);
  flex: 1;
}
.lma-ef-role-locked-badge {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--ef-gold);
  background: rgba(201,151,58,.10);
  border: 1px solid rgba(201,151,58,.22);
  border-radius: var(--ef-pill);
  padding: 4px 12px;
  white-space: nowrap;
}

/* ── Issue 6: Submission details timeline spacing ─────────────────── */
.lma-tracker-timeline-step {
  padding: 14px 0 14px 8px;  /* more vertical + left breathing room */
  gap: 20px;                  /* wider gap between dot and content */
}
.lma-tracker-card-body {
  padding: 24px 26px;         /* more padding inside timeline cards */
}
.lma-entry-tracker-table td {
  padding: 11px 0;            /* more row breathing room */
}
.lma-entry-tracker-table td:first-child {
  padding-right: 22px;
  width: 130px;
}
.lma-tracker-timeline-step:not(:last-child)::after {
  left: 23px;                 /* re-align connector after gap increase */
  top: 48px;
}
.lma-tracker-date-row {
  padding: 12px 18px;         /* more padding inside date rows */
  margin-bottom: 6px;
}

/* ── Issue 8: Step indicator state classes ──────────────────────────  */
/* JS adds lma-ef-step--active / --done / --pending to step pills */
.lma-ef-step-pill.lma-ef-step--active {
  background: rgba(201,151,58,.14);
  border-color: rgba(201,151,58,.40);
  color: var(--ef-gold);
}
.lma-ef-step-pill.lma-ef-step--active .lma-ef-step-pill-num {
  background: var(--ef-gold);
  color: #000000;
}
.lma-ef-step-pill.lma-ef-step--done {
  background: rgba(201,151,58,.06);
  border-color: rgba(201,151,58,.18);
  color: var(--ef-muted);
}
.lma-ef-step-pill.lma-ef-step--done .lma-ef-step-pill-num {
  background: rgba(201,151,58,.18);
  color: var(--ef-gold);
}
.lma-ef-step-pill.lma-ef-step--pending {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.06);
  color: var(--ef-faint);
}
.lma-ef-step-pill.lma-ef-step--pending .lma-ef-step-pill-num {
  background: rgba(255,255,255,.06);
  color: var(--ef-faint);
}

/* ── Issue 9: Review & Submit panel ──────────────────────────────── */
.lma-ef-review-panel {
  animation: lma-fade-in .28s cubic-bezier(.4,0,.2,1) both;
}
.lma-ef-review-section {
  border-color: rgba(201,151,58,.22);
  background: linear-gradient(135deg, rgba(201,151,58,.04) 0%, rgba(201,151,58,.01) 100%);
}
.lma-ef-review-group {
  margin-bottom: 22px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--ef-border);
}
.lma-ef-review-group:last-of-type { border-bottom: none; margin-bottom: 0; }
.lma-ef-review-group-title {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: var(--ef-gold);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.lma-ef-review-group-title::before {
  content: '✓';
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--ef-green-bg);
  color: var(--ef-green);
  font-size: .58rem;
  font-weight: 800;
  flex-shrink: 0;
}
.lma-ef-review-rows { display: flex; flex-direction: column; gap: 0; }
.lma-ef-rv-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(255,255,255,.035);
}
.lma-ef-rv-row:last-child { border-bottom: none; }
.lma-ef-rv-label {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ef-faint);
  width: 160px;
  flex-shrink: 0;
}
.lma-ef-rv-value {
  font-size: .87rem;
  color: var(--ef-text);
  font-weight: 500;
  word-break: break-word;
}

/* Review actions row */
.lma-ef-review-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--ef-border);
}
.lma-ef-review-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 11px 22px;
  border-radius: var(--ef-r);
  border: 1px solid rgba(255,255,255,.10) !important;
  background: rgba(255,255,255,.05) !important;
  color: var(--ef-muted) !important;
  font-size: .75rem !important;
  font-weight: 700 !important;
  cursor: pointer;
  transition: var(--ef-t);
  font-family: var(--ef-font);
  letter-spacing: .03em;
  text-transform: uppercase;
}
.lma-ef-review-back-btn *  { color: inherit !important; font-size: inherit !important; }
.lma-ef-review-back-btn:hover {
  background: rgba(255,255,255,.09) !important;
  border-color: rgba(255,255,255,.18) !important;
  color: var(--ef-text) !important;
}

/* Mobile review */
@media (max-width: 680px) {
  .lma-ef-review-actions { flex-direction: column; align-items: stretch; }
  .lma-ef-review-back-btn { text-align: center; justify-content: center; }
  .lma-ef-rv-label { width: 110px; }
}

/* ════════════════════════════════════════════════════════════════════
   V10.5 FIXES
   ════════════════════════════════════════════════════════════════════ */

/* ── Button text: 12px, force black on button AND all children ────── */
.lma-ef .lma-ef-rt-btn,
.lma-ef .lma-ef-submit-btn,
.lma-entry-tracker-wrap .lma-entry-submit-btn {
  font-size: 12px !important;
  color: #111111 !important;
}
.lma-ef .lma-ef-rt-btn *,
.lma-ef .lma-ef-submit-btn *,
.lma-entry-tracker-wrap .lma-entry-submit-btn * {
  color: #111111 !important;
  fill: #111111 !important;
  font-size: 12px !important;
}
/* Target the span directly with maximum specificity */
.lma-ef .lma-ef-rt-btn > span,
.lma-ef .lma-ef-submit-btn > span,
.lma-entry-tracker-wrap .lma-entry-submit-btn > span {
  color: #111111 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

/* ── Tracker form: mobile padding so it never bleeds to screen edge ─ */
.lma-entry-tracker-wrap {
  padding: 0 16px;
  box-sizing: border-box;
}
.lma-entry-tracker-form {
  padding: 40px 32px;
  box-sizing: border-box;
}
@media (max-width: 680px) {
  .lma-entry-tracker-wrap {
    padding: 0 12px;
  }
  .lma-entry-tracker-form {
    padding: 28px 20px;
    border-radius: 16px;
  }
  .lma-entry-tracker-inputs {
    max-width: 100%;
  }
  .lma-entry-submit-btn {
    width: 100% !important;
    min-width: unset !important;
    padding: 13px 20px !important;
    font-size: 12px !important;
  }
  .lma-ef .lma-ef-submit-btn {
    width: 100% !important;
    min-width: unset !important;
    font-size: 12px !important;
  }
}

/* ── Tracker table: proper column alignment ───────────────────────── */
.lma-entry-tracker-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.lma-entry-tracker-table td {
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
  vertical-align: top;
  word-break: break-word;
}
.lma-entry-tracker-table td:first-child {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--ef-faint);
  width: 120px;
  min-width: 120px;
  padding-right: 16px;
  white-space: nowrap;
}
.lma-entry-tracker-table td:last-child {
  font-size: .86rem;
  color: var(--ef-text);
  font-weight: 500;
}
.lma-entry-tracker-table tr:last-child td {
  border-bottom: none;
}
@media (max-width: 480px) {
  .lma-entry-tracker-table td:first-child {
    width: 95px;
    min-width: 95px;
    font-size: .62rem;
  }
}

/* ════════════════════════════════════════════════════════════════════
   V10.5b — TABLE OVERFLOW + CARD CONTAINMENT
   ════════════════════════════════════════════════════════════════════ */

/* Prevent tracker cards from exceeding screen width */
.lma-tracker-card,
.lma-tracker-card-body,
.lma-entry-tracker-result {
  overflow: hidden;
  max-width: 100%;
  box-sizing: border-box;
}

/* Table must never exceed its card */
.lma-entry-tracker-table {
  width: 100%;
  max-width: 100%;
  table-layout: fixed;
  box-sizing: border-box;
  overflow: hidden;
}
.lma-entry-tracker-table td {
  overflow-wrap: break-word;
  word-break: break-word;
  max-width: 0; /* forces table-layout:fixed to honour column widths */
}
.lma-entry-tracker-table td:first-child {
  width: 120px;
  min-width: 80px;
  max-width: 120px;
}
.lma-entry-tracker-table td:last-child {
  width: auto;
}

@media (max-width: 680px) {
  /* Tracker wrapper must have side padding so cards don't touch screen edge */
  .lma-entry-tracker-wrap {
    padding-left: 14px  !important;
    padding-right: 14px !important;
  }
  .lma-tracker-card {
    border-radius: 14px;
  }
  .lma-tracker-card-body {
    padding: 16px 14px;
  }
  .lma-entry-tracker-table td:first-child {
    width: 90px;
    min-width: 70px;
    max-width: 90px;
    font-size: .60rem;
    padding-right: 10px;
  }
  .lma-entry-tracker-table td:last-child {
    font-size: .82rem;
  }
}

/* ════════════════════════════════════════════════════════════════════
   V15.7.7 — TRACKER RESULT: ROOT-CAUSE HORIZONTAL OVERFLOW FIX
   ════════════════════════════════════════════════════════════════════
   Every fix above this point targets individual table cells, which
   already had word-break/nowrap handling — but none of them addressed
   the actual root cause: .lma-tracker-card is a CSS Grid item inside
   .lma-tracker-grid, and Grid items default to min-width:auto, meaning
   a track sizes itself to fit its content's min-content width even
   when the track itself is "1fr". overflow:hidden/max-width:100% on
   the card (V10.5b above) only clips content that's already bigger
   than the card's OWN box — it does nothing to stop the grid track
   itself from being sized too wide in the first place if anything
   inside it (a long email/entry ID/genre list, whatever data a given
   entry happens to have) can't shrink below its natural width. That
   oversized track is what pushed the whole page wider than the
   viewport — which is exactly what produces sideways drift and
   Safari's zoom/rescale hiccups when scrolling on an oversized layout.
   min-width:0 is the actual fix (lets the grid item shrink below its
   content's natural size so wrapping/break-word rules can then do
   their job); overflow-x:hidden on the outer wrapper is a hard
   backstop so nothing in this component can ever force the page to
   scroll sideways again, regardless of which field's data is long. */
.lma-entry-tracker-wrap {
  overflow-x: hidden;
  max-width: 100%;
}
.lma-tracker-card {
  min-width: 0;
}
.lma-tracker-status-header {
  min-width: 0;
  max-width: 100%;
}
.lma-tracker-status-left,
.lma-tracker-entry-id,
.lma-tracker-applicant {
  min-width: 0;
  overflow-wrap: break-word;
  word-break: break-word;
}
.lma-tracker-grid {
  min-width: 0;
}

/* "Track a Different Entry" — same ghost/secondary look as the entry
   form's Review "Back" button (.lma-ef-review-back-btn) for visual
   consistency between the two flows. */
.lma-tracker-search-again-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 11px 22px;
  margin-bottom: 18px;
  border-radius: var(--ef-r);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
  color: var(--ef-muted);
  font-size: .75rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--ef-t);
  font-family: var(--ef-font);
  letter-spacing: .03em;
  text-transform: uppercase;
}
.lma-tracker-search-again-btn:hover {
  border-color: rgba(201,151,58,.30);
  background: rgba(201,151,58,.08);
  color: var(--ef-gold);
}
@media (max-width: 680px) {
  .lma-tracker-search-again-btn { width: 100%; justify-content: center; }
}

/* ── V10.7: Duplicate / existing-nominee warning boxes ─────────────── */
.lma-ef-duplicate-error,
.lma-ef-existing-warn {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 20px;
  border-radius: var(--ef-rl);
  margin-bottom: 16px;
  animation: lma-fade-in .25s ease both;
}
.lma-ef-duplicate-error {
  background: rgba(220,40,40,.10);
  border: 1px solid rgba(220,40,40,.30);
}
.lma-ef-existing-warn {
  background: rgba(201,151,58,.08);
  border: 1px solid rgba(201,151,58,.28);
}
.lma-ef-dup-icon {
  font-size: 1.5rem;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 2px;
}
.lma-ef-dup-body { flex: 1; }
.lma-ef-dup-body strong {
  display: block;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.lma-ef-duplicate-error .lma-ef-dup-body strong { color: #f87171; }
.lma-ef-existing-warn   .lma-ef-dup-body strong { color: var(--ef-gold); }
.lma-ef-dup-body p {
  font-size: .82rem;
  color: var(--ef-muted);
  margin: 0;
  line-height: 1.55;
}
.lma-ef-dup-switch-btn {
  margin-top: 12px !important;
  font-size: 12px !important;
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  min-width: auto !important;
  padding: 10px 20px !important;
}
