/* moment酒吧 · Nighthouse UI refresh
   视觉方向：午夜现场 / 编辑风节目单 / 电蓝互动
   只改表现层，不改现有页面数据与业务逻辑。 */
:root{
  --bg:#F5F7FC;
  --panel:#FFFFFF;
  --panel2:#EEF3FF;
  --panel-line:rgba(35,57,106,.12);
  --line:rgba(35,57,106,.12);
  --line-strong:rgba(92,124,255,.42);
  --ink:#111B36;
  --ink2:#34456F;
  --ink3:#8190B0;
  --accent:#5C7CFF;
  --accent2:#8FE3FF;
  --deep:#243A85;
  --mid:#526BD4;
  --sky:#DCE6FF;
  --live:#FF5D6C;
  --ok:#52B788;
  --warn:#F3A94A;
  --danger:#E65F6B;
  --block:#111A31;
  --stage:#E8EDFA;
  --tabbar-bg:rgba(255,255,255,.84);
  --ring:rgba(255,255,255,.92);
  --shadow:0 22px 55px rgba(35,57,106,.16);
  --shadow-sm:0 8px 24px rgba(35,57,106,.10);
  --r:20px;
  --panel-r:16px;
  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-drawer:cubic-bezier(.32,.72,0,1);
  --dur-press:140ms;
  --dur-pop:190ms;
  --dur-panel:300ms;
}
html[data-theme="dark"]{
  --bg:#07101E;
  --panel:#101D31;
  --panel2:#162742;
  --panel-line:rgba(143,227,255,.16);
  --line:rgba(143,227,255,.13);
  --line-strong:rgba(143,227,255,.42);
  --ink:#F1F5FF;
  --ink2:#B7C6E4;
  --ink3:#7D8EAD;
  --accent:#7892FF;
  --accent2:#8FE3FF;
  --deep:#273D8D;
  --mid:#AFC1FF;
  --sky:#20355C;
  --live:#FF6877;
  --ok:#70C89A;
  --warn:#F3B966;
  --danger:#FF7A83;
  --block:#0B1223;
  --stage:#020812;
  --tabbar-bg:rgba(7,16,30,.82);
  --ring:rgba(7,16,30,.9);
  --shadow:0 24px 60px rgba(0,0,0,.42);
  --shadow-sm:0 12px 28px rgba(0,0,0,.24);
}

.phone-stage{background:radial-gradient(circle at 50% 0%,rgba(143,227,255,.10),transparent 34%),var(--stage)}
.phone{background:var(--bg);border:1px solid var(--panel-line);box-shadow:0 28px 90px rgba(14,23,54,.24);isolation:isolate}
.phone::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:linear-gradient(120deg,rgba(143,227,255,.045),transparent 34%,rgba(92,124,255,.04) 70%,transparent);mix-blend-mode:screen}
.phone-content{position:relative;z-index:1;background:radial-gradient(circle at 100% 0%,rgba(92,124,255,.07),transparent 28%),var(--bg)}
.phone-status{opacity:.72;letter-spacing:1px}

.page-head{position:sticky;top:0;z-index:12;margin:0 -4px 8px;padding:12px 8px 13px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(16px)}
.page-head h1{font-size:19px;letter-spacing:-.2px}
.page-head .back{width:36px;height:36px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);display:flex;align-items:center;justify-content:center}
.page-head .back a{width:100%;height:100%;display:flex!important;align-items:center;justify-content:center}
.page-head .right{font-size:11px;letter-spacing:.2px}
.section{margin-top:26px}
.stitle{position:relative;border-bottom:0;padding:0 0 12px;font-size:15px;letter-spacing:.1px}
.stitle::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--accent),rgba(92,124,255,.08) 72%,transparent)}
.stitle .bar{width:7px;height:7px;border-radius:50%;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent);background:var(--accent)}
.stitle .more{font-size:11px;color:var(--accent);letter-spacing:.2px}
.card,.stat-board,.flower-banner{border-radius:var(--panel-r);border:1px solid var(--panel-line);background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 95%,var(--accent2)),var(--panel));box-shadow:var(--shadow-sm)}
.card{padding:16px}
.chip{border-radius:9px;padding:5px 9px;background:var(--panel2);border:1px solid var(--panel-line);color:var(--ink2);letter-spacing:.2px}
.chip.gold,.chip.pink{background:linear-gradient(135deg,var(--accent),var(--deep));color:#fff;border-color:transparent;box-shadow:0 5px 14px color-mix(in srgb,var(--accent) 25%,transparent)}
.chip.green{background:color-mix(in srgb,var(--ok) 13%,transparent);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,transparent)}

.btn{position:relative;overflow:hidden;border-radius:13px;background:linear-gradient(135deg,var(--accent),var(--deep));box-shadow:0 10px 22px color-mix(in srgb,var(--accent) 22%,transparent);transition:transform var(--dur-press) var(--ease-out),box-shadow var(--dur-pop) ease,background-color var(--dur-pop) ease}
.btn::after{content:"";position:absolute;top:-80%;left:-35%;width:24%;height:260%;background:rgba(255,255,255,.28);transform:rotate(24deg) translateX(-180%);transition:transform 520ms var(--ease-out);pointer-events:none}
@media (hover:hover) and (pointer:fine){.btn:hover{box-shadow:0 14px 30px color-mix(in srgb,var(--accent) 32%,transparent)}.btn:hover::after{transform:rotate(24deg) translateX(720%)}}
.btn:active{transform:scale(.965);box-shadow:0 5px 12px color-mix(in srgb,var(--accent) 18%,transparent)}
.btn-ghost{background:transparent;box-shadow:none;color:var(--accent);border:1px solid var(--line-strong)}
.btn-ghost::after{display:none}
input,textarea,select{background:color-mix(in srgb,var(--panel2) 82%,transparent)!important;border-color:var(--line-strong)!important;border-radius:13px!important}
input:focus,textarea:focus,select:focus{border-color:var(--accent)!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent)}

.tabbar{height:76px;padding:8px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--tabbar-bg);backdrop-filter:blur(22px) saturate(140%);box-shadow:0 -12px 32px rgba(14,23,54,.08)}
.tabbar a{gap:5px;font-size:10px;border-radius:13px;transition:color var(--dur-pop) ease,background-color var(--dur-pop) ease,transform var(--dur-press) var(--ease-out)}
.tabbar a.active{background:color-mix(in srgb,var(--accent) 11%,transparent);color:var(--accent)}
.tabbar a.active::before{top:0;width:22px;height:3px;border-radius:0 0 4px 4px;background:var(--accent);box-shadow:0 0 12px var(--accent)}
.tabbar a:active{transform:scale(.94)}
.tabbar .ti{transition:transform var(--dur-press) var(--ease-out)}
.tabbar a.active .ti{transform:translateY(-1px)}
.float-ball{width:58px;height:58px;bottom:calc(30px + env(safe-area-inset-bottom));background:linear-gradient(145deg,var(--accent2),var(--accent));box-shadow:0 12px 28px rgba(32,73,182,.40),0 0 0 6px var(--ring),0 0 0 10px color-mix(in srgb,var(--accent) 18%,transparent);animation:refreshFloat 3.8s ease-in-out infinite}
.float-ball::before{content:"";position:absolute;inset:6px;border:1px solid rgba(255,255,255,.48);border-radius:50%;pointer-events:none}
.float-ball.on{background:linear-gradient(145deg,var(--live),var(--accent));box-shadow:0 12px 28px rgba(255,93,108,.32),0 0 0 6px var(--ring),0 0 0 10px color-mix(in srgb,var(--live) 20%,transparent)}
@keyframes refreshFloat{0%,100%{margin-bottom:0}50%{margin-bottom:4px}}

/* 首页：一张能呼吸的现场海报 + 一组像节目单的功能入口 */
.phone .stage{border-radius:0 0 24px 24px;overflow:hidden;background:var(--block);box-shadow:0 20px 45px rgba(7,16,30,.20)}
.phone .stage-media{filter:saturate(1.08) contrast(1.03)}
.phone .stage-copy h1{letter-spacing:-.5px}
.phone .stage-copy h1 em{color:var(--accent2);text-shadow:0 0 22px rgba(143,227,255,.30)}
.live-pill{border-color:rgba(143,227,255,.35);background:rgba(11,18,35,.62);box-shadow:0 4px 18px rgba(0,0,0,.14)}
.live-pill i,.live-dot{background:var(--live)}
.ec-tabs{gap:7px;padding-bottom:14px}
.ec-tab{border-radius:11px;padding:8px 13px;background:var(--panel2);border-color:var(--panel-line);color:var(--ink2)}
.ec-tab[aria-selected="true"]{background:var(--block);border-color:var(--block);box-shadow:0 8px 18px rgba(7,16,30,.18)}
.ec-card{border-radius:20px;box-shadow:var(--shadow-sm);border:1px solid var(--panel-line);overflow:hidden}
.ec-card .ec-img{filter:saturate(1.08)}
.ec-card .ec-info{background:color-mix(in srgb,var(--panel) 93%,transparent);backdrop-filter:blur(12px)}
.star-rail{border-bottom:0;gap:10px;padding-bottom:14px}
.star-card{min-width:236px;border:1px solid var(--panel-line);border-radius:18px;background:var(--panel);padding:13px;box-shadow:var(--shadow-sm)}
.star-card:active{background:var(--panel2)}
.star-go{background:var(--panel2);border-color:transparent}
.tip-stage{padding:10px 12px;border-radius:16px;background:linear-gradient(135deg,var(--block),#1B2D55);color:#fff}
.gift-rail .gift,.gift-grid .gift{border-radius:15px;background:var(--panel2);border-color:transparent}
.gift-rail .gift.sel,.gift-grid .gift.sel{background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 20%,var(--panel2)),var(--panel2));border-color:var(--accent);box-shadow:0 7px 18px color-mix(in srgb,var(--accent) 18%,transparent)}

/* 点单 / 礼物：图片是主角，信息是节拍 */
.bar-hero{height:236px;border-radius:0 0 28px 28px}
.bar-hero::after{background:linear-gradient(180deg,rgba(7,16,30,.34),rgba(7,16,30,.06) 34%,rgba(7,16,30,.94))}
.bar-hero h2{font-size:29px;letter-spacing:-.6px}
.bh-table{background:rgba(92,124,255,.25);border-color:rgba(143,227,255,.46)}
.mk-search{margin-top:-28px;border-radius:17px;background:color-mix(in srgb,var(--panel) 92%,transparent);box-shadow:0 12px 28px rgba(14,23,54,.13);backdrop-filter:blur(16px)}
.mk-seg{border-radius:15px;background:var(--panel2);border-color:var(--panel-line)}
.mk-seg button.on{background:var(--block);color:#fff;box-shadow:0 7px 16px rgba(7,16,30,.18)}
.mk-cat .ic{border-radius:16px;background:var(--panel2);border-color:var(--panel-line)}
.mk-cat.on .ic{background:linear-gradient(145deg,var(--accent),var(--deep));box-shadow:0 9px 20px color-mix(in srgb,var(--accent) 26%,transparent)}
.mk-head{margin-top:24px}
.mk-card{border-radius:18px;padding:0 0 2px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow-sm);border:1px solid var(--panel-line)}
.mk-card .ph{border-radius:17px 17px 10px 10px}
.mk-card .bd{padding:10px 11px 13px;border-bottom:0}
.mk-card .mk-hit{border-radius:18px}
.mk-card .mk-add{width:34px;height:34px;background:linear-gradient(145deg,var(--accent),var(--deep));box-shadow:0 6px 14px color-mix(in srgb,var(--accent) 24%,transparent)}
.mk-card .tag{background:rgba(7,16,30,.72);border:1px solid rgba(143,227,255,.30)}
.mk-mini .ph{border-radius:16px}
.mk-cart{background:linear-gradient(135deg,var(--block),#1C2C55)!important;box-shadow:0 18px 36px rgba(7,16,30,.30)!important}
.mk-cart .btn{background:linear-gradient(135deg,var(--accent2),var(--accent));color:#07101E}
.cart-drawer,.gsheet{background:var(--bg)}
.cart-drawer{border:1px solid var(--panel-line);box-shadow:0 -18px 50px rgba(7,16,30,.30)}
.pd-sheet{background:linear-gradient(180deg,var(--panel),var(--bg));border:1px solid var(--panel-line);box-shadow:0 -10px 28px rgba(14,23,54,.08)}
.pd-title{letter-spacing:-.4px;font-size:26px}
.pd-cta{background:linear-gradient(135deg,var(--block),#1C2C55);box-shadow:0 -12px 30px rgba(7,16,30,.20)}
.pd-cta .buy{background:linear-gradient(135deg,var(--accent2),var(--accent));color:#07101E}

/* 现场页与状态页：让实时状态像舞台灯而不是普通标签 */
.rc.playing{border:1px solid rgba(143,227,255,.34);box-shadow:0 18px 40px rgba(7,16,30,.25)}
.stt.going,.stbar.doing{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 13%,transparent)}
.stbar.doing,.st.going{background:var(--accent);color:#fff}
.bar2 i{background:linear-gradient(90deg,var(--accent2),var(--accent),var(--live));box-shadow:0 0 12px rgba(92,124,255,.35)}
.singer-card{transition:transform var(--dur-press) var(--ease-out),background-color var(--dur-pop) ease}
.singer-card:active{transform:scale(.985);background:var(--panel2)}
.singer-card .go{background:linear-gradient(135deg,var(--accent),var(--deep));box-shadow:0 6px 15px color-mix(in srgb,var(--accent) 24%,transparent)}
.singer-card .go.ghost{background:transparent;box-shadow:none}

/* 订台 / 结算 / 我的 */
.seat{background:var(--panel);border-color:var(--panel-line);box-shadow:var(--shadow-sm)}
.seat.free{background:linear-gradient(145deg,color-mix(in srgb,var(--ok) 8%,var(--panel)),var(--panel))}
.seat.sel{border-color:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 18%,transparent),var(--shadow-sm)}
.sum-total,.seat-sel{background:linear-gradient(145deg,var(--panel2),var(--panel));border-color:var(--line-strong)}
.mine-hero{background:radial-gradient(circle at 85% 0%,rgba(143,227,255,.25),transparent 32%),linear-gradient(145deg,#0B1428,#172B55)!important}
.mh-av{box-shadow:0 0 0 3px rgba(143,227,255,.24),0 0 0 7px rgba(92,124,255,.18)}
.mh-s,.mh-a{background:rgba(255,255,255,.07);border-color:rgba(143,227,255,.18)}
.stat-board{background:linear-gradient(145deg,var(--panel2),var(--panel))}
.prog{background:color-mix(in srgb,var(--accent) 10%,var(--panel2))}
.prog i{background:linear-gradient(90deg,var(--accent2),var(--accent));box-shadow:0 0 14px color-mix(in srgb,var(--accent) 35%,transparent)}

/* 卡牌 / 抽卡：稀有牌用更强的光圈，普通牌保持克制 */
.pcard .pf.back,.draw-card .face.back{background:linear-gradient(145deg,#182E64,#0D162C);border-color:rgba(143,227,255,.42);box-shadow:inset 0 0 0 5px rgba(143,227,255,.05),0 12px 24px rgba(7,16,30,.20)}
.pcard .pf.front,.draw-card .face.front{background:linear-gradient(145deg,var(--panel),var(--panel2));border-color:var(--line-strong)}
.pcard.up .pin,.draw-card.flip .inner{filter:drop-shadow(0 12px 18px color-mix(in srgb,var(--accent) 24%,transparent))}

/* 统一微交互：由 refresh.js 添加 refresh-tilt / is-pressed */
.refresh-tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(0);transition:transform 180ms var(--ease-out),box-shadow 180ms ease}
.refresh-tilt.is-pressed{transform:perspective(900px) rotateX(0deg) rotateY(0deg) scale(.985)}
.refresh-pop{animation:refreshPop 360ms var(--ease-out)}
@keyframes refreshPop{0%{transform:scale(.96)}55%{transform:scale(1.025)}100%{transform:scale(1)}}

/* 桌面卡片框：上下各留 30px 呼吸位 —— phone 必须同步缩高 calc(vh-60)，
   否则 phone 底边超出视口 30px，body overflow:hidden 又滚不动，底部导航被切掉（踩过）。 */
@media (min-width:520px){.phone{border-radius:30px;height:calc(100vh - 60px);height:calc(100dvh - 60px)}.phone-stage{padding:30px 0}}
@media (max-width:359px){.phone-content{padding-left:14px;padding-right:14px}.mk-body{padding:0 14px}.star-card{min-width:220px}}
@media (prefers-reduced-motion:reduce){
  .float-ball{animation:none}.btn::after{display:none}.refresh-tilt{transform:none!important;transition:none}.refresh-pop{animation:none}
}
@media (prefers-reduced-transparency:reduce){.tabbar,.page-head,.mk-search{backdrop-filter:none;background:var(--panel)} }

/* ===== 右上角主题切换：暗色默认，日间作为主动选择 ===== */
.theme-toggle{position:relative;z-index:20;flex:0 0 auto;width:36px;height:36px;margin-left:8px;border:1px solid var(--line-strong);border-radius:12px;background:color-mix(in srgb,var(--panel) 88%,transparent);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 7px 16px color-mix(in srgb,var(--accent) 13%,transparent);backdrop-filter:blur(12px);transition:transform var(--dur-press) var(--ease-out),background-color var(--dur-pop) ease,border-color var(--dur-pop) ease,color var(--dur-pop) ease}
.theme-toggle:active{transform:scale(.9)}
.theme-toggle .theme-icon{width:18px;height:18px;display:none}
html[data-theme="dark"] .theme-toggle .theme-sun{display:block}
html[data-theme="light"] .theme-toggle .theme-moon{display:block}
.page-head>.theme-toggle{margin-left:8px}
.pd-nav>.theme-toggle{margin-left:0;background:var(--mk-veil);color:var(--ink)}
.phone>.theme-toggle{position:absolute;top:12px;right:14px;z-index:90}
@media (hover:hover) and (pointer:fine){.theme-toggle:hover{background:var(--panel2);border-color:var(--accent);color:var(--accent2)}}
@media (prefers-reduced-motion:reduce){.theme-toggle{transition:none}.theme-toggle:active{transform:none}}


/* ===== Night Playground：把页面变成一组可玩的现场装置 ===== */
.play-panel{position:relative;margin:18px 0 4px;padding:16px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--panel-line));border-radius:20px;background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--accent2) 15%,transparent),transparent 38%),linear-gradient(145deg,color-mix(in srgb,var(--panel) 92%,var(--accent)),var(--panel2));box-shadow:var(--shadow-sm);overflow:hidden}
.play-panel::after{content:"";position:absolute;right:-36px;bottom:-46px;width:150px;height:150px;border:1px solid color-mix(in srgb,var(--accent2) 22%,transparent);border-radius:50%;transform:rotate(18deg);pointer-events:none}
.play-kicker{font-size:9px;font-weight:900;letter-spacing:2px;color:var(--accent);text-transform:uppercase}.play-kicker span{margin-left:8px;color:var(--ink3);font-size:10px;letter-spacing:.5px;text-transform:none}.play-title{font-size:17px;font-weight:900;color:var(--ink);letter-spacing:-.2px;margin-top:7px}.play-desc{font-size:11.5px;line-height:1.65;color:var(--ink3);margin-top:5px;max-width:285px}
.quest-track{height:7px;margin-top:14px;border-radius:9px;background:color-mix(in srgb,var(--accent) 10%,var(--panel));overflow:hidden}.quest-track i{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--accent2),var(--accent),var(--live));border-radius:inherit;transition:transform 300ms var(--ease-out);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 42%,transparent)}.quest-count{display:flex;align-items:center;gap:9px;margin-top:8px}.quest-count b{font-size:12px;color:var(--accent)}.quest-count span,.badge-note,.beat-status,.view-result{font-size:11px;color:var(--ink3)}.quest-actions,.mood-row,.light-row,.view-options,.badge-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px;position:relative;z-index:1}.quest-actions button,.mood-row button,.light-row button,.view-options button,.badge-row button,.meter-btn{border:1px solid var(--panel-line);border-radius:11px;background:var(--panel);color:var(--ink2);font:inherit;font-size:11px;font-weight:800;padding:8px 10px;cursor:pointer;transition:transform var(--dur-press) var(--ease-out),background-color var(--dur-pop) ease,border-color var(--dur-pop) ease,color var(--dur-pop) ease;box-shadow:0 4px 10px rgba(20,37,80,.06)}.quest-actions button:active,.mood-row button:active,.light-row button:active,.view-options button:active,.badge-row button:active,.meter-btn:active{transform:scale(.94)}.quest-actions button.done,.mood-row button.on,.light-row button.on,.view-options button.on,.badge-row button.on{background:linear-gradient(135deg,var(--accent),var(--deep));border-color:transparent;color:#fff;box-shadow:0 6px 15px color-mix(in srgb,var(--accent) 25%,transparent)}.quest-panel.complete{border-color:color-mix(in srgb,var(--live) 48%,var(--panel-line));background:radial-gradient(circle at 100% 0%,rgba(255,93,108,.18),transparent 38%),linear-gradient(145deg,var(--panel),var(--panel2))}.quest-panel.complete .play-kicker{color:var(--live)}
.mix-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.dice-btn{flex:0 0 auto;width:58px;height:58px;border-radius:18px;border:1px solid color-mix(in srgb,var(--accent2) 40%,var(--panel-line));background:linear-gradient(145deg,var(--accent2),var(--accent));color:#081329;font:inherit;font-size:11px;font-weight:900;box-shadow:0 9px 22px color-mix(in srgb,var(--accent) 22%,transparent);cursor:pointer;transform:rotate(5deg);transition:transform 180ms var(--ease-out)}.dice-btn:active{transform:rotate(-8deg) scale(.92)}.mix-result{position:relative;z-index:1;display:flex;align-items:center;gap:10px;margin-top:13px;padding:11px;border-radius:15px;background:var(--panel);border:1px solid var(--line-strong);box-shadow:0 7px 16px rgba(20,37,80,.07)}.mix-result>div:nth-child(2){flex:1;min-width:0}.mix-result b,.mix-result span,.mix-result strong{display:block}.mix-result b{font-size:13px;color:var(--ink)}.mix-result span{font-size:10.5px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.mix-result strong{font-size:12px;color:var(--accent);margin-top:5px}.mix-result a{font-size:11px;font-weight:800;color:var(--accent);white-space:nowrap}.mix-orbit{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#07101E;background:linear-gradient(145deg,var(--accent2),var(--accent));animation:orbitSpin 1.5s var(--ease-out)}@keyframes orbitSpin{from{transform:rotate(-180deg) scale(.6);opacity:.2}to{transform:none;opacity:1}}
.stage-meter .meter-title{display:flex;align-items:center;justify-content:space-between;margin-top:9px}.meter-title b{font-size:13px;color:var(--ink)}.meter-title span{font-size:11px;color:var(--accent);font-weight:900}.meter-dots{margin-top:10px;letter-spacing:5px;color:var(--accent2);font-size:15px;line-height:1}.meter-btn{margin-top:12px;color:#07101E;border-color:transparent;background:linear-gradient(135deg,var(--accent2),var(--accent));box-shadow:0 7px 16px color-mix(in srgb,var(--accent) 25%,transparent)}.stage-picked{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 13%,transparent),transparent)!important;border-bottom-color:var(--accent)!important}.stage-picked .av{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent2) 30%,transparent),0 0 24px color-mix(in srgb,var(--accent) 32%,transparent)}.stage-meter.complete{border-color:color-mix(in srgb,var(--live) 50%,var(--panel-line))}
.cheer-game{text-align:center}.cheer-game .play-desc{margin-left:auto;margin-right:auto}.beat-orb{position:relative;width:86px;height:86px;margin:14px auto 5px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 25%,var(--accent2),var(--accent) 46%,var(--deep));color:#07101E;box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 12%,transparent),0 13px 25px color-mix(in srgb,var(--accent) 28%,transparent);cursor:pointer;user-select:none;touch-action:manipulation}.beat-orb span{font-size:10px;font-weight:900}.beat-orb b{font-size:22px;line-height:1}.beat-orb.beat{animation:beatPulse 220ms var(--ease-out)}@keyframes beatPulse{50%{transform:scale(1.15);box-shadow:0 0 0 15px color-mix(in srgb,var(--accent) 15%,transparent),0 15px 28px color-mix(in srgb,var(--accent) 34%,transparent)}}.cheer-game .quest-track{margin-top:12px;text-align:left}.cheer-game.complete{background:radial-gradient(circle at 50% 0%,rgba(255,93,108,.22),transparent 50%),var(--panel2)}
.light-console .light-combo{margin-top:10px;font-size:11px;color:var(--accent);font-weight:800}.light-blue{background:radial-gradient(circle at 50% 45%,rgba(143,227,255,.44),transparent 65%),var(--panel2)!important}.light-rose{background:radial-gradient(circle at 50% 45%,rgba(255,93,108,.42),transparent 65%),var(--panel2)!important}.light-laser{background:repeating-linear-gradient(118deg,rgba(143,227,255,.25) 0 2px,transparent 2px 18px),var(--panel2)!important}
.view-row{display:flex;gap:13px;align-items:center;margin-top:10px}.radar{position:relative;flex:0 0 auto;width:82px;height:82px;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);background:radial-gradient(circle,var(--live) 0 4px,transparent 5px),repeating-radial-gradient(circle,transparent 0 16px,color-mix(in srgb,var(--accent) 30%,transparent) 17px 18px);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:9px;letter-spacing:1px}.radar::before,.radar::after{content:"";position:absolute;background:color-mix(in srgb,var(--accent) 35%,transparent)}.radar::before{width:1px;inset:8px auto 8px 50%}.radar::after{height:1px;inset:50% 8px auto 8px}.radar i{position:absolute;inset:10px;border-radius:50%;border:1px dashed color-mix(in srgb,var(--accent2) 55%,transparent);animation:radarPulse 2.6s ease-in-out infinite}@keyframes radarPulse{50%{transform:scale(.82);opacity:.5}}.view-options{margin-top:9px}.view-result{margin-top:8px;line-height:1.45}.view-pick{animation:viewGlow 1.1s var(--ease-out) infinite alternate!important;border-color:var(--accent)!important}@keyframes viewGlow{to{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent),0 7px 20px color-mix(in srgb,var(--accent) 20%,transparent)}}
.badge-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}.badge-row::-webkit-scrollbar{display:none}.badge-row button{flex:0 0 118px;text-align:left;padding:12px 10px;background:linear-gradient(145deg,var(--panel),var(--panel2))}.badge-row button small{display:block;margin-top:6px;color:var(--ink3);font-size:9px;font-weight:600}.badge-row button.on{transform:translateY(-4px) rotate(-2deg);box-shadow:0 10px 20px color-mix(in srgb,var(--accent) 22%,transparent)}.badge-note{margin-top:8px;min-height:16px}.order-mood{margin-top:16px}
.play-toast{position:absolute;left:50%;bottom:166px;z-index:90;transform:translate(-50%,12px);opacity:0;pointer-events:none;white-space:nowrap;padding:10px 14px;border-radius:13px;background:rgba(7,16,30,.92);color:#fff;font-size:12px;font-weight:700;box-shadow:0 12px 26px rgba(0,0,0,.25);transition:opacity 180ms ease,transform 240ms var(--ease-out)}.play-toast.show{opacity:1;transform:translate(-50%,0)}
.play-burst{position:absolute;z-index:95;width:4px;height:4px;pointer-events:none}.play-burst i{position:absolute;left:0;top:0;width:5px;height:18px;border-radius:6px;background:var(--burst-color);transform-origin:50% 32px;transform:rotate(var(--angle)) translateY(-4px);animation:burstRay 560ms var(--ease-out) forwards}@keyframes burstRay{to{opacity:0;transform:rotate(var(--angle)) translateY(-30px) scale(.45)}}
@media (prefers-reduced-motion:reduce){.quest-track i,.mix-orbit,.beat-orb.beat,.view-pick,.radar i{animation:none}.play-toast{transition:none}.play-burst{display:none}}

