/* Arena — Lovers (lovers_v1). No page scroll at any size: fixed bars, paged gallery, text auto-fits (lovers.js fit()). */
@font-face { font-family: "IM Fell French Canon"; src: url("assets/fonts/IMFellFrenchCanon-Regular.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Crimson Text"; src: url("assets/fonts/CrimsonText-Regular.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Crimson Text"; font-weight: 700; src: url("assets/fonts/CrimsonText-Bold.ttf") format("truetype"); font-display: swap; }
:root { --plum: #2a1222; --plum2: #3d1a31; --rose: #e06a9a; --rose2: #b8406f; --gold: #d9b26a; --parch: #f6e6c8; --ink: #2a1a0c; --muted: #c9a9b8; }
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; overflow: hidden; }
body.lv-page { height: 100dvh; display: flex; flex-direction: column; color: var(--parch); font-family: "Crimson Text", Georgia, serif;
  background: radial-gradient(120% 90% at 50% 0%, #5a2443 0%, var(--plum) 55%, #160a12 100%); -webkit-tap-highlight-color: transparent; }
button { font-family: inherit; cursor: pointer; }
button:disabled { cursor: default; }

/* top bar */
.lv-bar { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; padding: max(6px, env(safe-area-inset-top)) 10px 6px; background: rgba(20, 8, 16, .6); border-bottom: 2px solid rgba(217, 178, 106, .35); }
.lv-back { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font: 700 1.8rem Georgia, serif; color: var(--parch); text-decoration: none; background: rgba(255, 255, 255, .08); border: 2px solid rgba(217, 178, 106, .45); }
.lv-title { flex: 1; margin: 0; font: 400 1.45rem "IM Fell French Canon", Georgia, serif; color: var(--gold); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv-pill { height: 36px; padding: 0 10px; border-radius: 18px; display: inline-flex; align-items: center; gap: 4px; font-size: 1rem; color: var(--parch); background: rgba(0, 0, 0, .35); border: 2px solid rgba(217, 178, 106, .45); }
.lv-pill.hearts { color: #ffd0e0; border-color: var(--rose); }

.lv-main { flex: 1 1 auto; min-height: 0; position: relative; }
.lv-view { position: absolute; inset: 0; display: flex; flex-direction: column; padding: 8px 10px max(8px, env(safe-area-inset-bottom)); gap: 8px; }
.lv-view[hidden] { display: none; }

/* gallery */
.lv-filters { flex: 0 0 auto; display: flex; gap: 6px; }
.lv-chip { flex: 1; min-height: 42px; border-radius: 12px; border: 2px solid rgba(217, 178, 106, .45); background: rgba(255, 255, 255, .07); color: var(--parch); font-size: 1rem; font-weight: 700; }
.lv-chip.on { background: linear-gradient(180deg, #f0e0c0, #d4b888); color: var(--ink); border-color: var(--gold); }
.lv-chip.keep { flex: 0 0 auto; padding: 0 10px; border-color: var(--rose); }
.lv-grid { flex: 1 1 auto; min-height: 0; display: grid; gap: 10px; justify-content: center; align-content: center; }
.lv-card-l { position: relative; padding: 0; border-radius: 14px; overflow: hidden; border: 3px solid var(--gold); background: #1b0c15; color: var(--parch); display: flex; flex-direction: column; text-align: left; box-shadow: 0 6px 18px rgba(0, 0, 0, .45); }
.lv-card-l.locked { border-color: rgba(201, 169, 184, .35); border-style: dashed; }
.lv-ph { flex: 1 1 auto; min-height: 0; position: relative; overflow: hidden; background: radial-gradient(90% 80% at 50% 25%, #6a2c52, #22101b); }
.lv-ph img, .lv-portrait img, .sh-por img, .sh-sil img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; display: block; }
.lv-ph img { transform: scale(1.25); transform-origin: 50% 10%; }
.lv-ph.sil img, .sh-sil img { filter: brightness(0) saturate(0); opacity: .55; }
.lv-ph.sil::after { content: "?"; position: absolute; inset: 0; display: grid; place-items: center; font: 700 3rem Georgia, serif; color: rgba(246, 230, 200, .5); }
.lv-cap { flex: 0 0 auto; padding: 5px 8px 6px; background: linear-gradient(180deg, #3d1a31, #250f1e); }
.lv-cap b { display: block; font-size: 1.02rem; line-height: 1.1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv-cap small { display: block; font-size: .8rem; color: var(--muted); line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv-hearts { position: absolute; left: 6px; right: 6px; bottom: 50px; display: flex; gap: 3px; justify-content: center; }
.lv-hearts i { width: 9px; height: 9px; border-radius: 50%; background: rgba(0, 0, 0, .45); border: 1px solid rgba(255, 208, 224, .6); }
.lv-hearts i.on { background: var(--rose); }
.lv-pager { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; }
.lv-pg { width: 64px; height: 50px; border-radius: 14px; border: 2px solid var(--gold); background: linear-gradient(180deg, #6b4226, #3a2410); color: var(--parch); font: 700 1.8rem Georgia, serif; }
.lv-pg:disabled { opacity: .35; }
.lv-pgtxt { flex: 1; text-align: center; font-size: 1rem; color: var(--muted); }

/* placeholder tint per tier (until painted art lands): the race art warms with each tier */
.tint img { filter: saturate(.9) sepia(.12); }
.tint.t2 img { filter: saturate(1) sepia(.08) hue-rotate(-6deg); } .tint.t3 img { filter: saturate(1.05) hue-rotate(-10deg); }
.tint.t4 img { filter: saturate(1.1) hue-rotate(-14deg) contrast(1.04); } .tint.t5 img { filter: saturate(1.15) hue-rotate(-18deg) contrast(1.06); }
.tint.t6 img { filter: saturate(1.15) hue-rotate(-22deg) brightness(1.03); } .tint.t7 img { filter: saturate(1.2) hue-rotate(-4deg) brightness(1.06); }
.tint.t8 img { filter: saturate(1.25) hue-rotate(-26deg) contrast(1.08); }

/* detail */
.lv-det { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 8px; }
.lv-portrait { flex: 0 0 34%; min-height: 0; position: relative; border-radius: 16px; overflow: hidden; border: 3px solid var(--gold); background: radial-gradient(90% 80% at 50% 25%, #6a2c52, #22101b); }
.lv-tierbadge { position: absolute; left: 8px; bottom: 8px; padding: 3px 10px; border-radius: 12px; background: rgba(20, 8, 16, .75); border: 1px solid var(--rose); font-size: .92rem; }
.lv-artnote { position: absolute; right: 8px; top: 8px; padding: 2px 8px; border-radius: 10px; background: rgba(20, 8, 16, .65); font-size: .78rem; color: var(--muted); }
.lv-side { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 6px; }
.lv-head h2 { margin: 0; font: 400 1.35rem "IM Fell French Canon", Georgia, serif; color: var(--gold); line-height: 1.1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv-head p { margin: 1px 0 0; font-size: .9rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv-tabs { flex: 0 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.lv-tab { min-height: 42px; border-radius: 12px; border: 2px solid rgba(217, 178, 106, .45); background: rgba(255, 255, 255, .07); color: var(--parch); font-size: 1.02rem; font-weight: 700; }
.lv-tab.on { background: linear-gradient(180deg, #f0e0c0, #d4b888); color: var(--ink); border-color: var(--gold); }
.lv-pane { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 6px; }
.lv-pane[hidden] { display: none; }
.lv-ladder { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(2, 1fr); gap: 6px; }
.lv-rung { position: relative; min-height: 0; border-radius: 12px; border: 2px solid rgba(201, 169, 184, .35); background: rgba(0, 0, 0, .3); color: var(--muted); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2px; line-height: 1.05; }
.lv-rung b { font: 700 1.25rem Georgia, serif; }
.lv-rung span { font-size: .78rem; text-align: center; }
.lv-rung i { position: absolute; top: 2px; right: 4px; font-style: normal; font-size: .72rem; }
.lv-rung.have { color: var(--parch); border-color: var(--rose); background: linear-gradient(180deg, #6a2447, #3d1a31); }
.lv-rung.next { border-color: var(--gold); border-style: dashed; color: var(--gold); }
.lv-rung.cur { box-shadow: 0 0 0 3px var(--gold); }
.lv-unlock { flex: 0 0 auto; }
.lv-quote { display: none; }
.lv-next, .lv-max { margin: 0 0 4px; font-size: 1rem; text-align: center; }
.lv-ubtns { display: flex; gap: 6px; }
.lv-btn { min-height: 46px; border-radius: 14px; border: 2px solid var(--gold); background: linear-gradient(180deg, #f0e0c0, #d4b888); color: var(--ink); font-size: 1.08rem; font-weight: 700; padding: 0 12px; }
.lv-btn.big { flex: 1; min-height: 52px; font-size: 1.15rem; }
.lv-btn.heart { background: linear-gradient(180deg, #f48ab4, #b8406f); color: #fff; border-color: #ffd0e0; }
.lv-btn.gem { background: linear-gradient(180deg, #7fc4ff, #2f6bb0); color: #fff; border-color: #cfe8ff; }
.lv-btn.keep { background: linear-gradient(180deg, #ffe7a8, #c9932f); }
.lv-btn.ghost { background: rgba(255, 255, 255, .08); color: var(--parch); border-color: rgba(217, 178, 106, .45); }
.lv-btn:disabled { opacity: .45; }
#detBack { flex: 0 0 auto; }
.lv-bubble { flex: 1 1 auto; min-height: 0; overflow: hidden; border-radius: 16px; padding: 12px 14px; background: var(--parch); color: var(--ink); font-size: 1.2rem; line-height: 1.3; border: 3px solid var(--gold); display: flex; align-items: center; }
.lv-bubble p { margin: 0; }
.lv-talkrow { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; }
.lv-talkrow span { flex: 1; color: var(--muted); font-size: .92rem; }
.lv-story { flex: 1 1 auto; min-height: 0; overflow: hidden; font-size: 1.08rem; line-height: 1.32; padding: 10px 12px; border-radius: 14px; background: rgba(0, 0, 0, .28); border: 2px solid rgba(217, 178, 106, .3); }
.lv-story p { margin: 0 0 6px; }
.lv-arch { color: var(--gold); }
.lv-met { color: var(--muted); font-size: .92em; }

/* desktop / landscape: portrait left, panel right */
@media (min-width: 760px) and (min-aspect-ratio: 1/1) {
  .lv-det { flex-direction: row; }
  .lv-portrait { flex: 0 0 auto; width: min(42vw, calc((100dvh - 90px) * .75)); height: 100%; }
  .lv-view { padding: 14px 24px; max-width: 1280px; margin: 0 auto; }
  .lv-filters { max-width: 720px; width: 100%; margin: 0 auto; }
  .lv-pager { max-width: 520px; width: 100%; margin: 0 auto; }
  .lv-rung span { font-size: .95rem; }
  .lv-bubble { font-size: 1.45rem; }
  .lv-story { font-size: 1.25rem; }
  .lv-head h2 { font-size: 1.9rem; }
  .lv-ladder { flex: 0 1 auto; height: min(240px, 34dvh); }
  .lv-quote { display: flex; align-items: center; flex: 1 1 auto; min-height: 0; overflow: hidden; border-radius: 16px; padding: 14px 18px; background: var(--parch); color: var(--ink); font-size: 1.45rem; line-height: 1.3; border: 3px solid var(--gold); }
}
@media (max-height: 700px) { .lv-portrait { flex-basis: 30%; } .lv-tab, .lv-chip { min-height: 40px; } .lv-btn.big { min-height: 48px; } }

/* sheets */
.lv-sheet { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 12px; background: rgba(10, 4, 8, .72); }
.lv-sheet[hidden] { display: none; }
.lv-card { width: min(94vw, 460px); max-height: calc(100dvh - 24px); display: flex; flex-direction: column; overflow: hidden; border-radius: 18px; padding: 14px; background: linear-gradient(180deg, #4a1f3b, #2a1222); border: 3px solid var(--gold); box-shadow: 0 12px 40px rgba(0, 0, 0, .6); }
#sheetBody { display: flex; flex-direction: column; gap: 8px; min-height: 0; flex: 1 1 auto; }
.sh-kick { margin: 0; text-align: center; color: var(--rose); font-size: .95rem; letter-spacing: .06em; text-transform: uppercase; }
.sh-h { margin: 0; text-align: center; font: 400 1.5rem "IM Fell French Canon", Georgia, serif; color: var(--gold); }
.sh-p { margin: 0; text-align: center; font-size: 1.1rem; line-height: 1.3; max-height: 30dvh; overflow: hidden; }
.sh-p.small { font-size: .95rem; color: var(--muted); }
.sh-p p { margin: 0 0 6px; }
.sh-row { display: flex; gap: 8px; }
.sh-por, .sh-sil { height: min(40dvh, 340px); border-radius: 14px; overflow: hidden; border: 3px solid var(--rose); background: radial-gradient(90% 80% at 50% 25%, #6a2c52, #22101b); flex: 0 1 auto; min-height: 120px; }
.sh-sil { height: min(30dvh, 240px); border-color: rgba(201, 169, 184, .35); }
.sh-b { flex: 0 1 auto; max-height: 22dvh; min-height: 60px; font-size: 1.15rem; }
.sh-rew { margin: 0; text-align: center; color: #ffd0e0; font-size: 1rem; }
.sh-icon { text-align: center; font-size: 3rem; }
.sh-keeps { max-height: 46dvh; overflow: hidden; }
.sh-krow { margin: 0 0 8px; padding: 8px 10px; border-radius: 12px; border: 2px solid var(--rose); background: rgba(92, 26, 58, .35); font-size: 1.05rem; }
.sh-krow small { color: var(--muted); }

/* lovers2: the toast sits low, above the bottom nav (it used to cover the race chips), and never takes taps */
.lv-toast { position: fixed; left: 50%; bottom: calc(76px + env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 60; max-width: 92vw; margin: 0; padding: 10px 16px; border-radius: 14px; background: rgba(20, 8, 16, .94); border: 2px solid var(--rose); font-size: 1rem; text-align: center; pointer-events: none; }
.lv-toast[hidden] { display: none; }

/* dev drawer (hidden in the friend preview by build_preview's dev CSS) */
.lv-dev { position: fixed; right: 6px; bottom: 130px; z-index: 40; font-size: .8rem; color: var(--muted); }
.lv-dev summary { cursor: pointer; opacity: .5; text-align: right; list-style: none; }
.lv-devrow { display: flex; flex-direction: column; gap: 4px; padding: 6px; border-radius: 10px; background: rgba(0, 0, 0, .8); }
.lv-devrow button { min-height: 32px; border-radius: 8px; border: 1px solid var(--gold); background: #3d1a31; color: var(--parch); }

/* ===== lovers2 ===== */
.lv-pill { flex: 0 0 auto; }
.lv-pill.power { color: #ffe7a8; border-color: var(--gold); }
.lv-bar { gap: 6px; }
.lv-title { min-width: 0; }
.lv-goal { flex: 0 0 auto; position: relative; display: flex; align-items: center; gap: 8px; margin: 6px 10px 0; min-height: 40px; padding: 4px 12px 8px; border-radius: 12px; border: 2px solid var(--gold);
  background: linear-gradient(180deg, rgba(92, 26, 58, .9), rgba(42, 18, 34, .9)); color: var(--parch); text-align: left; overflow: hidden; }
.lv-goal-k { flex: 0 0 auto; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--rose); font-weight: 700; }
.lv-goal-t { flex: 1 1 auto; min-width: 0; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv-goal-bar { position: absolute; left: 10px; right: 10px; bottom: 3px; height: 4px; border-radius: 3px; background: rgba(0, 0, 0, .4); }
.lv-goal-bar i { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, var(--rose), var(--gold)); }
.lv-nav { flex: 0 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; padding: 6px 10px max(6px, env(safe-area-inset-bottom)); background: rgba(20, 8, 16, .7); border-top: 2px solid rgba(217, 178, 106, .35); }
.lv-navb { position: relative; min-height: 54px; border-radius: 12px; border: 2px solid rgba(217, 178, 106, .45); background: rgba(255, 255, 255, .06); color: var(--parch); font-size: .95rem; font-weight: 700;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-decoration: none; line-height: 1.1; font-family: inherit; }
.lv-navb span { font-size: 1.2rem; }
.lv-navb.on { background: linear-gradient(180deg, #f0e0c0, #d4b888); color: var(--ink); border-color: var(--gold); }
.lv-navbadge { position: absolute; top: 2px; right: 6px; min-width: 20px; height: 20px; border-radius: 10px; background: var(--rose); color: #fff; font-size: .8rem; display: grid; place-items: center; padding: 0 5px; }
.lv-navbadge[hidden] { display: none; }
.lv-ltd { position: absolute; top: 6px; left: 6px; padding: 2px 8px; border-radius: 10px; background: linear-gradient(180deg, #ffd36b, #c98a1e); color: #2a1a0c; font-size: .78rem; font-weight: 700; z-index: 2; }
.lv-ltd2 { font-style: normal; color: #ffd36b; font-weight: 700; }
.lv-ring { position: absolute; top: 6px; right: 6px; font-size: 1.2rem; z-index: 2; }
.lv-card-l.frame { border-color: #ffd36b; box-shadow: 0 0 0 2px #8a5a12, 0 0 16px rgba(255, 211, 107, .55); }
.lv-card-l.spouse { border-color: #ffe7a8; }
.lv-card-l.ltd.locked { border-color: #ffd36b; }
.lv-spouse { position: absolute; right: 8px; bottom: 8px; padding: 3px 10px; border-radius: 12px; background: rgba(20, 8, 16, .75); border: 1px solid var(--gold); font-size: .92rem; }
.lv-spouse[hidden] { display: none; }
.lv-head { display: flex; align-items: center; gap: 8px; }
.lv-headtxt { flex: 1 1 auto; min-width: 0; }
.lv-btn.sm { min-height: 40px; font-size: .98rem; padding: 0 10px; flex: 0 0 auto; }
.lv-btn small { display: block; font-size: .78rem; font-weight: 400; line-height: 1.1; }
.lv-btn b { display: block; line-height: 1.1; }
a.lv-btn { display: flex; align-items: center; justify-content: center; text-decoration: none; }
.lv-aff { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; }
.lv-aff-lv { flex: 0 0 auto; font-weight: 700; color: #ffd0e0; min-width: 38px; }
.lv-aff-bar { flex: 1 1 auto; height: 12px; border-radius: 7px; background: rgba(0, 0, 0, .4); border: 1px solid rgba(255, 208, 224, .5); overflow: hidden; }
.lv-aff-bar i { display: block; height: 100%; background: linear-gradient(90deg, #f48ab4, #e06a9a); }
.lv-aff-n { flex: 0 0 auto; font-size: .85rem; color: var(--muted); }
.lv-gifts { flex: 0 0 auto; display: flex; gap: 6px; }
.lv-gifts .lv-btn { padding: 2px 6px; font-size: .95rem; }
.lv-wedrow { flex: 1 1 auto; min-height: 0; display: flex; gap: 6px; align-items: stretch; flex-wrap: wrap; align-content: flex-start; }
.lv-wedrow .lv-btn { flex: 1 1 40%; }
.lv-wedtxt { flex: 1 1 100%; margin: 0; text-align: center; font-size: 1rem; }
/* dates */
.lv-datehead { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; }
.lv-datecount { flex: 1; margin: 0; font-size: 1.1rem; }
.lv-datehead .lv-btn[hidden] { display: none; }
.lv-event { flex: 0 0 auto; display: flex; flex-direction: column; gap: 6px; }
.lv-event[hidden] { display: none; }
.lv-evcard { display: flex; gap: 10px; align-items: center; padding: 8px; border-radius: 14px; border: 2px solid #ffd36b; background: linear-gradient(180deg, rgba(120, 80, 20, .35), rgba(42, 18, 34, .8)); flex-wrap: wrap; }
.lv-evcard.soon { border-style: dashed; }
.lv-evph { position: relative; flex: 0 0 auto; width: 64px; height: 84px; border-radius: 10px; overflow: hidden; background: #22101b; }
.lv-evph img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 10%; }
.lv-evph.sil img { filter: brightness(0); opacity: .6; }
.lv-evph .lv-ltd { top: auto; bottom: 3px; left: 3px; font-size: .68rem; padding: 1px 5px; }
.lv-evtxt { flex: 1 1 60%; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.lv-evtxt b { font-size: 1.05rem; color: #ffe7a8; }
.lv-evtxt small { font-size: .85rem; color: var(--parch); line-height: 1.15; max-height: 2.4em; overflow: hidden; }
.lv-evbar { height: 10px; border-radius: 6px; background: rgba(0, 0, 0, .4); overflow: hidden; margin: 2px 0; }
.lv-evbar i { display: block; height: 100%; background: linear-gradient(90deg, #ffd36b, #e06a9a); }
.lv-evcard #btnRescue { flex: 1 1 100%; }
.lv-pickhint { flex: 0 0 auto; margin: 0; color: var(--muted); }
.lv-picklist { flex: 1 1 auto; min-height: 0; overflow-y: auto; display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 8px; align-content: start; overscroll-behavior: contain; }
.lv-pick { display: flex; flex-direction: column; padding: 0; border-radius: 12px; overflow: hidden; border: 2px solid var(--rose); background: #1b0c15; color: var(--parch); height: 150px; }
.lv-pick .lv-ph { flex: 1 1 auto; }
.lv-pick b { padding: 2px 6px 0; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv-pick small { padding: 0 6px 4px; color: #ffd0e0; font-size: .85rem; }
.lv-pick:disabled { opacity: .5; }
.sh-por.small { height: min(24dvh, 200px); }
.sh-choices { display: flex; flex-direction: column; gap: 6px; }
.sh-choices .lv-btn { min-height: 48px; font-size: 1.02rem; }
.sh-drop { margin: 0; padding: 6px 10px; border-radius: 10px; text-align: center; font-size: .98rem; background: rgba(255, 211, 107, .15); border: 1px solid #ffd36b; }
/* collection */
.lv-colhead { flex: 0 0 auto; text-align: center; }
.lv-colhead p { margin: 0; font-size: 1.05rem; }
.lv-colhead .lv-title2 { font-size: .92rem; color: var(--muted); }
.lv-sets { flex: 0 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.lv-set { padding: 6px 8px; border-radius: 12px; border: 2px solid rgba(217, 178, 106, .45); background: rgba(0, 0, 0, .25); display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lv-set.gold { border-color: #ffd36b; box-shadow: 0 0 10px rgba(255, 211, 107, .4); }
.lv-set b { font-size: 1rem; }
.lv-set small { font-size: .74rem; color: var(--muted); line-height: 1.15; }
.lv-setbar { height: 8px; border-radius: 5px; background: rgba(0, 0, 0, .4); overflow: hidden; }
.lv-setbar i { display: block; height: 100%; background: linear-gradient(90deg, var(--rose), var(--gold)); }
.lv-colist { flex: 1 1 auto; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 6px; overscroll-behavior: contain; }
.lv-crow { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; min-height: 52px; padding: 4px 8px; border-radius: 12px; border: 2px solid var(--rose); background: rgba(92, 26, 58, .35); color: var(--parch); text-align: left; }
.lv-crow.locked { border-color: rgba(201, 169, 184, .3); background: rgba(0, 0, 0, .25); }
.lv-cph { flex: 0 0 auto; width: 40px; height: 44px; border-radius: 8px; overflow: hidden; background: #22101b; }
.lv-cph.sil, .lv-evph.sil { background: radial-gradient(80% 70% at 50% 30%, #8a5a78, #3a1a2e); }
.lv-cph img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 8%; }
.lv-cph.sil img { filter: brightness(0); opacity: .55; }
.lv-cname { flex: 1 1 auto; min-width: 0; }
.lv-cname b { display: block; font-size: .98rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv-cname small { display: block; font-size: .78rem; color: var(--muted); }
.lv-cells { flex: 0 0 auto; display: grid; grid-template-columns: repeat(4, 12px); gap: 3px; }
.lv-cells i { width: 12px; height: 12px; border-radius: 3px; background: rgba(0, 0, 0, .55); border: 1px solid rgba(201, 169, 184, .35); }
.lv-cells i.on { background: var(--rose); border-color: #ffd0e0; }
@media (max-height: 700px) { .lv-navb { min-height: 48px; font-size: .88rem; } .lv-navb span { font-size: 1.05rem; } .lv-goal { min-height: 36px; } .lv-portrait { flex-basis: 26%; } }
@media (min-width: 760px) and (min-aspect-ratio: 1/1) {
  .lv-goal { max-width: 900px; width: calc(100% - 48px); margin: 8px auto 0; }
  .lv-nav { max-width: 760px; width: 100%; margin: 0 auto; border-top: 0; background: transparent; }
  .lv-picklist { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
  .lv-pick { height: 190px; }
  .lv-sets small { font-size: .85rem; }
  .lv-colist { max-width: 900px; width: 100%; margin: 0 auto; }
  .lv-datehead, .lv-event, .lv-pickhint { max-width: 900px; width: 100%; margin-left: auto; margin-right: auto; }
}
.lv-sheet:not([hidden]) ~ .lv-toast { top: max(8px, env(safe-area-inset-top)); bottom: auto; }
