/* ==========================================================================
   LUXE - default 2026 theme. Black & champagne gold, glass panels,
   animated light-mesh backdrop, big modern type (Outfit).
   Loaded after app.css; everything is scoped to .theme-luxe.
   ========================================================================== */

.theme-luxe {
  --accent: #d6b36a;
  --gold-hi: #f6e3ae;
  --gold: #d6b36a;
  --gold-lo: #9c7631;
  --crimson: #e04452;
  --bg: #050506;
  --bg-2: #0b0b0d;
  --panel: rgba(19, 19, 23, .55);
  --panel-solid: #111114;
  --panel-2: #17171b;
  --line: rgba(255, 255, 255, .065);
  --line-2: rgba(255, 255, 255, .11);
  --text: #f5f2eb;
  --muted: #a8a399;
  --dim: #6f6b64;
  --good: #4ade9a;
  --bad: #ff5a67;
  --warn: #f5c451;
  --info: #8fb4ff;
  --hp: #ff4d63;
  --energy: #f0c665;
  --awake: #8fb4ff;
  --nerve: #bb8cff;
  --radius: 20px;
  --radius-sm: 12px;
  --display: "Outfit", "Inter", system-ui, sans-serif;
  --quote: "Outfit", "Inter", system-ui, sans-serif;
  --glass: blur(22px) saturate(1.3);
  --hair: linear-gradient(90deg, transparent 0%, rgba(214, 179, 106, .5) 50%, transparent 100%);
  --gold-grad: linear-gradient(120deg, #fff1c9 0%, #e9c77c 30%, #c49a47 60%, #f3dca0 100%);
  --shadow: 0 30px 60px -30px rgba(0, 0, 0, .9);
}

body.theme-luxe { background: var(--bg); background-image: none; }
body.theme-luxe::before { opacity: .045; }

/* ---------- animated light mesh ---------- */
.mesh { display: none; }
.theme-luxe .mesh, .theme-noir .mesh { display: block; position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.mesh i { position: absolute; display: block; border-radius: 50%; will-change: transform; }
.mesh i:nth-child(1) { width: 75vmax; height: 75vmax; left: -22vmax; top: -38vmax; background: radial-gradient(circle, rgba(214, 179, 106, .28) 0%, rgba(214, 179, 106, .08) 38%, transparent 66%); animation: mesh-a 34s ease-in-out infinite alternate; }
.mesh i:nth-child(2) { width: 65vmax; height: 65vmax; right: -28vmax; top: 10vh; background: radial-gradient(circle, rgba(170, 30, 48, .26) 0%, rgba(170, 30, 48, .07) 40%, transparent 66%); animation: mesh-b 42s ease-in-out infinite alternate; }
.mesh i:nth-child(3) { width: 55vmax; height: 55vmax; left: 20vw; bottom: -40vmax; background: radial-gradient(circle, rgba(236, 196, 120, .13) 0%, transparent 62%); animation: mesh-c 38s ease-in-out infinite alternate; }
.mesh i:nth-child(4) { inset: 0; border-radius: 0; background:
  radial-gradient(1px 1px at 12% 22%, rgba(255, 230, 170, .5), transparent),
  radial-gradient(1px 1px at 68% 14%, rgba(255, 230, 170, .35), transparent),
  radial-gradient(1.5px 1.5px at 84% 62%, rgba(255, 230, 170, .45), transparent),
  radial-gradient(1px 1px at 36% 78%, rgba(255, 230, 170, .35), transparent),
  radial-gradient(1px 1px at 52% 44%, rgba(255, 230, 170, .3), transparent);
  animation: mesh-twinkle 6s ease-in-out infinite alternate; }
@keyframes mesh-a { to { transform: translate(14vw, 10vh) scale(1.12); } }
@keyframes mesh-b { to { transform: translate(-12vw, -8vh) scale(1.18); } }
@keyframes mesh-c { to { transform: translate(-10vw, -14vh) scale(.92); } }
@keyframes mesh-twinkle { to { opacity: .35; } }
.theme-luxe .app, .theme-noir .app { position: relative; z-index: 1; }

/* ---------- type ---------- */
.theme-luxe h1, .theme-luxe h2, .theme-luxe h3, .theme-luxe .card__title { font-family: var(--display); letter-spacing: -.025em; }
.theme-luxe h1 { font-weight: 300; font-size: clamp(34px, 4.2vw, 52px); letter-spacing: -.04em; }
.theme-luxe h2 { font-weight: 400; }
.theme-luxe .card__title { font-size: 19px; font-weight: 500; }
.theme-luxe .eyebrow { font-size: 10.5px; letter-spacing: .28em; color: var(--gold); font-weight: 600; }
.gold-text, .theme-luxe .rank__name, .theme-luxe .dash-hero h1 > .gold-text {
  background: var(--gold-grad); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
}
.theme-luxe .stat__value, .theme-luxe .gymcard__val, .theme-luxe .pack__price, .theme-luxe .podium__val, .theme-luxe .nerve-meter b, .theme-luxe .pcount b, .theme-luxe .ring__txt b, .theme-luxe .landing__stats b {
  font-family: var(--display); font-weight: 500; letter-spacing: -.03em; font-variant-numeric: tabular-nums;
}
.theme-luxe .stat__value { font-size: 28px; }
.theme-luxe a { color: var(--gold-hi); }
.theme-luxe a:hover { color: #fff; }

/* ---------- glass surfaces with a gold hairline on top ---------- */
.theme-luxe .card, .theme-luxe .stat, .theme-luxe .hero, .theme-luxe .dash-hero, .theme-luxe .rail__card, .theme-luxe .district,
.theme-luxe .ach, .theme-luxe .podium__spot, .theme-luxe .theme-card, .theme-luxe .crime, .theme-luxe .crime-result, .theme-luxe .fight,
.theme-luxe td.contenthead, .theme-luxe td.contentcontent, .theme-luxe td.ma-alert, .theme-luxe td.lockout, .theme-luxe .medal--big, .theme-luxe .quick__btn {
  background-color: var(--panel);
  background-image: var(--hair);
  background-size: 100% 1px;
  background-repeat: no-repeat;
  background-position: top center;
  border: 1px solid var(--line);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03), var(--shadow);
  backdrop-filter: var(--glass);
  -webkit-backdrop-filter: var(--glass);
}
.theme-luxe .hero, .theme-luxe .dash-hero { border-radius: 26px; padding: 32px; }
.theme-luxe .dash-hero { background-image: var(--hair), radial-gradient(600px 260px at 0% 0%, rgba(214, 179, 106, .13), transparent 70%); background-size: 100% 1px, auto; }
.theme-luxe .hero { background-image: var(--hair), radial-gradient(700px 260px at 100% 0%, rgba(214, 179, 106, .10), transparent 70%); background-size: 100% 1px, auto; }
.theme-luxe .card:hover, .theme-luxe .district:hover { border-color: rgba(214, 179, 106, .18); }
.theme-luxe .stat { border-radius: 18px; padding: 18px 20px; }
.theme-luxe .stat__label .ico { color: var(--gold); }

/* legacy content -> glass cards */
.theme-luxe td.contenthead { font-family: var(--display); font-size: 19px; font-weight: 500; letter-spacing: -.02em; padding: 20px 24px 8px; border-bottom: 0; border-radius: var(--radius) var(--radius) 0 0; box-shadow: none; }
.theme-luxe td.contentcontent { padding: 14px 24px; border-top: 0; background-image: none; box-shadow: none; }
.theme-luxe tr:has(> td.contentcontent):not(:has(+ tr > td.contentcontent)) > td.contentcontent { box-shadow: var(--shadow); }
.theme-luxe td.contentcontent table td { border-bottom-color: var(--line); }
.theme-luxe td.ma-alert { border-radius: 16px; }

/* ---------- sidebar ---------- */
.theme-luxe .sidebar { background: rgba(8, 8, 10, .55); border-right: 1px solid var(--line); backdrop-filter: var(--glass); -webkit-backdrop-filter: var(--glass); padding: 22px 14px 28px; }
.theme-luxe .rail { background: rgba(8, 8, 10, .55); border-left: 1px solid var(--line); backdrop-filter: var(--glass); -webkit-backdrop-filter: var(--glass); padding: 22px 14px 28px; }
.theme-luxe .brand { padding: 2px 10px 26px; gap: 12px; }
.theme-luxe .brand__mark { width: 36px; height: 36px; border-radius: 11px; padding: 6px; color: #1b1407; background: var(--gold-grad); box-shadow: 0 8px 24px -8px rgba(214, 179, 106, .6); }
.theme-luxe .brand__mark svg circle { display: none; }
.theme-luxe .brand__mark svg path:last-child { stroke: var(--gold); }
.theme-luxe .brand__name { font-family: var(--display); font-size: 12.5px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; line-height: 1.35; }
.theme-luxe .nav__label { font-size: 9.5px; letter-spacing: .26em; color: var(--dim); padding: 14px 12px 6px; }
.theme-luxe .nav__group { margin-bottom: 4px; }
.theme-luxe .nav__item { border-radius: 12px; padding: 8px 12px; color: #b9b4aa; font-weight: 450; }
.theme-luxe .nav__item:hover { background: rgba(255, 255, 255, .04); color: var(--text); }
.theme-luxe .nav__item.is-active { color: var(--text); background: linear-gradient(90deg, rgba(214, 179, 106, .16), rgba(214, 179, 106, .02)); }
.theme-luxe .nav__item.is-active::before { left: -14px; width: 3px; background: var(--gold-grad); box-shadow: 0 0 14px rgba(214, 179, 106, .8); }
.theme-luxe .nav__item.is-active .ico { color: var(--gold-hi); }
.theme-luxe .badge { background: var(--crimson); color: #fff; box-shadow: 0 0 12px rgba(224, 68, 82, .45); }
.theme-luxe .badge--new { background: transparent; color: var(--gold); border-color: rgba(214, 179, 106, .35); box-shadow: none; }

/* ---------- top bar & HUD ---------- */
.theme-luxe .topbar { background: rgba(6, 6, 8, .5); border-bottom: 1px solid var(--line); backdrop-filter: var(--glass); -webkit-backdrop-filter: var(--glass); padding-top: 14px; padding-bottom: 14px; }
.theme-luxe .me__ring { background: conic-gradient(var(--gold) calc(var(--p) * 1%), rgba(255, 255, 255, .08) 0); }
.theme-luxe .me__name { font-family: var(--display); font-weight: 500; font-size: 15px; }
.theme-luxe .vital__track { height: 4px; background: rgba(255, 255, 255, .06); }
.theme-luxe .vital__fill { background: linear-gradient(90deg, color-mix(in oklab, var(--c) 55%, transparent), var(--c)); box-shadow: 0 0 14px 0 var(--c); }
.theme-luxe .vital__label { letter-spacing: .02em; }
.theme-luxe .chip { background: rgba(255, 255, 255, .035); border-color: var(--line); height: 36px; padding: 0 14px; }
.theme-luxe .chip--money { color: var(--gold-hi); border-color: rgba(214, 179, 106, .25); background: rgba(214, 179, 106, .07); }
.theme-luxe .chip--money .ico { color: var(--gold); }
.theme-luxe .iconbtn { background: rgba(255, 255, 255, .035); border-radius: 12px; }
.theme-luxe .ticker { background: transparent; color: var(--muted); border-bottom: 1px solid var(--line); letter-spacing: .04em; font-size: 12px; }
.theme-luxe .ticker__track span::before { content: "\25C6"; color: var(--gold); margin-right: 12px; font-size: 9px; vertical-align: 1px; }

/* ---------- rail ---------- */
.theme-luxe .rail__card { border-radius: 22px; padding: 20px 20px 12px; }
.theme-luxe .rail__card h4 { font-size: 10px; letter-spacing: .26em; color: var(--gold); }
.theme-luxe .rank__name { font-family: var(--display); font-weight: 300; font-size: 34px; letter-spacing: -.04em; }
.theme-luxe .rank__pct { color: var(--gold-hi); }
.theme-luxe .rail__row { border-top-color: var(--line); }
.theme-luxe .rail__row b { font-family: var(--display); font-weight: 500; font-size: 13px; letter-spacing: -.01em; }

/* ---------- controls ---------- */
.theme-luxe input[type=submit], .theme-luxe input[type=button], .theme-luxe button.btn, .theme-luxe .btn, .theme-luxe button[type=submit]:not(.iconbtn) {
  background: var(--gold-grad); background-size: 160% 100%; color: #1a1306; border: 0; border-radius: 12px; font-weight: 600; letter-spacing: .01em;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), 0 10px 26px -12px rgba(214, 179, 106, .75); transition: background-position .4s, transform .1s, filter .15s;
}
.theme-luxe .btn:hover, .theme-luxe input[type=submit]:hover, .theme-luxe button[type=submit]:not(.iconbtn):hover { background-position: 100% 0; color: #1a1306; filter: none; }
.theme-luxe .btn.btn--ghost, .theme-luxe button.btn.btn--ghost { background: rgba(255, 255, 255, .04); color: var(--text); border: 1px solid var(--line-2); box-shadow: none; }
.theme-luxe .btn.btn--ghost:hover { border-color: rgba(214, 179, 106, .4); background: rgba(214, 179, 106, .06); }
.theme-luxe input[type=text], .theme-luxe input[type=password], .theme-luxe input[type=email], .theme-luxe input[type=number], .theme-luxe input[type=url], .theme-luxe input:not([type]), .theme-luxe select, .theme-luxe textarea {
  background: rgba(0, 0, 0, .35); border-color: var(--line-2); border-radius: 12px;
}
.theme-luxe input:focus, .theme-luxe select:focus, .theme-luxe textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 4px rgba(214, 179, 106, .12); }
.theme-luxe .progress { background: rgba(255, 255, 255, .06); }
.theme-luxe .progress > span { background: var(--gold-grad); box-shadow: 0 0 12px rgba(214, 179, 106, .45); }
.theme-luxe .pill--accent { color: var(--gold-hi); border-color: rgba(214, 179, 106, .3); background: rgba(214, 179, 106, .08); }
.theme-luxe .tab { border-radius: 999px; padding: 0 14px; background: rgba(255, 255, 255, .03); }
.theme-luxe .tab.is-active { background: rgba(214, 179, 106, .12); border-color: rgba(214, 179, 106, .4); }
.theme-luxe .section-title { color: var(--gold); letter-spacing: .26em; font-size: 10.5px !important; }
.theme-luxe .section-title::after { content: ""; display: block; height: 1px; margin-top: 10px; background: linear-gradient(90deg, rgba(214, 179, 106, .4), transparent 60%); }

/* ---------- page specifics ---------- */
.theme-luxe .dash-hero h1 { font-size: clamp(44px, 5vw, 64px); margin: 8px 0 18px; }
.theme-luxe .dash-hero h1 .dim { font-family: var(--display); font-weight: 300; font-size: .38em; letter-spacing: 0; }
.theme-luxe .quick__btn { border-radius: 18px; padding: 16px 8px 14px; }
.theme-luxe .quick__btn .ico { color: var(--gold); }
.theme-luxe .quick__btn:hover { border-color: rgba(214, 179, 106, .35); transform: translateY(-3px); }
.theme-luxe .ring__fg { stroke: var(--gold); }
.theme-luxe .ring svg { overflow: visible; }
.theme-luxe .crime { border-radius: 16px; padding: 16px 20px; }
.theme-luxe .crime:hover { border-color: rgba(214, 179, 106, .3); transform: translateX(4px); }
.theme-luxe .crime__name { font-family: var(--display); font-weight: 500; font-size: 15.5px; }
.theme-luxe .district { border-radius: 20px; }
.theme-luxe .district__title { color: var(--gold); letter-spacing: .24em; font-size: 10.5px !important; }
.theme-luxe .place > .ico:first-child { color: var(--gold); }
.theme-luxe .nextach:hover { background: rgba(255, 255, 255, .035); }
.theme-luxe .pname { font-weight: 600; letter-spacing: -.045em; font-size: clamp(42px, 5.5vw, 72px); }
.theme-luxe .pmotto { font-style: normal; font-weight: 300; font-size: 19px; letter-spacing: -.01em; }
.theme-luxe .ptitle { color: var(--gold-hi); border-color: rgba(214, 179, 106, .4); }
.theme-luxe .pbanner { border-radius: 28px; }
.theme-luxe .fight__vs span { background: var(--gold-grad); color: #1a1306; box-shadow: 0 0 34px rgba(214, 179, 106, .5); }
.theme-luxe .podium__spot--1 { border-color: rgba(214, 179, 106, .45); }
.theme-luxe .foot { border-top-color: var(--line); }
.theme-luxe .tabbar { background: rgba(12, 12, 14, .72); backdrop-filter: var(--glass); border-radius: 22px; }
.theme-luxe .tabbar .is-active { color: var(--gold-hi); background: rgba(214, 179, 106, .12); }
.theme-luxe .lockout__icon { background: rgba(214, 179, 106, .1); color: var(--gold); }
.theme-luxe .toast { border-radius: 18px; background: rgba(16, 16, 19, .9); }

/* ---------- logged-out pages ---------- */
.theme-luxe.auth-body { background: var(--bg); }
.theme-luxe.auth-body > .pbg { opacity: .45; }
.theme-luxe.auth-body > .pbg::after { background: radial-gradient(900px 500px at 70% 10%, rgba(214, 179, 106, .10), transparent 70%), linear-gradient(180deg, rgba(5, 5, 6, .1), rgba(5, 5, 6, .85) 85%); }
.theme-luxe .landing h1 { font-weight: 300; font-size: clamp(48px, 7vw, 96px); letter-spacing: -.055em; line-height: .95; }
.theme-luxe .landing h1 em { font-style: normal; font-weight: 600; background: var(--gold-grad); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.theme-luxe .authcard { border-radius: 26px; background: rgba(16, 16, 19, .6); background-image: var(--hair); background-size: 100% 1px; background-repeat: no-repeat; border: 1px solid var(--line-2); box-shadow: 0 40px 80px -30px #000; backdrop-filter: var(--glass); }
.theme-luxe .authcard h2 { font-weight: 400; font-size: 32px; letter-spacing: -.03em; }
.theme-luxe .feature { border-radius: 20px; background: rgba(19, 19, 23, .5); border-color: var(--line); backdrop-filter: var(--glass); }
.theme-luxe .feature__icon { border-radius: 14px; background: rgba(214, 179, 106, .1); color: var(--gold); }
.theme-luxe .feature h3 { font-family: var(--display); font-weight: 500; font-size: 17px; }
.theme-luxe .toplist__n { color: var(--gold); background: rgba(214, 179, 106, .1); }
.theme-luxe .auth-top nav a.is-active { color: var(--gold-hi); }

@media (max-width: 720px) {
  .theme-luxe .hero, .theme-luxe .dash-hero { padding: 22px; border-radius: 22px; }
  .theme-luxe .dash-hero h1 { font-size: 44px; }
}
@media (prefers-reduced-motion: reduce) { .mesh i { animation: none !important; } }

/* numbers: Outfit with tabular figures instead of the mono face */
.theme-luxe .mono, .theme-luxe .num, .theme-luxe .kv dd, .theme-luxe .vital__num, .theme-luxe .chip, .theme-luxe .ev__time, .theme-luxe .foot__perf,
.theme-luxe .crime__meta, .theme-luxe .rail__row b, .theme-luxe .toplist__n, .theme-luxe .badge, .theme-luxe .lockout__timer {
  font-family: var(--display); font-variant-numeric: tabular-nums; letter-spacing: -.005em;
}
.theme-luxe .kv dd { font-weight: 500; }
.theme-luxe .vital__num b { font-weight: 600; }
.theme-luxe .chip { font-weight: 500; font-size: 13px; }
