/* Soft glow theme. Loaded after the inline styles in index.html.
   --tint / --main / --ink are set from the active series pack by js/app.js.
   --main is decorative only (fills, dots, borders); text never sits on it. */
:root{--tint:#fff1ea;--main:#ff9a85;--ink:#8f3a2b;--paper:#fffaf5;--line:#f1dfd3;--radius:22px;--glow:color-mix(in srgb,var(--main) 22%,transparent)}
body{background:linear-gradient(170deg,var(--tint),var(--paper) 55%) fixed;font-family:ui-rounded,"SF Pro Rounded",system-ui,-apple-system,"Segoe UI",sans-serif}
html[lang="zh"] body{font-family:ui-rounded,system-ui,-apple-system,"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif}

.hero{background:linear-gradient(160deg,var(--tint),#fff);color:var(--ink);border-radius:0 0 28px 28px;box-shadow:0 10px 28px var(--glow)}
.hero:after{color:var(--glow)}
.hero h1,.hero p,.kicker{color:var(--ink)}
.langsel,.gearbtn{border:1px solid var(--ink);background:#ffffffaa;color:var(--ink)}

.panel{border-radius:var(--radius);border-color:var(--line);box-shadow:0 6px 18px var(--glow)}
.session{border-radius:18px;border-color:var(--line)}
.btn{border-radius:99px}
.primary{background:var(--ink);color:#fff}
.secondary{background:var(--tint);color:var(--ink)}
.plain{background:#fff;color:var(--ink);border:1px solid var(--line)}
.chip{background:var(--tint);color:var(--ink)}
.notice{background:color-mix(in srgb,var(--tint) 60%,#fff);color:var(--ink)}
.stat,.tile,.rate-col{background:color-mix(in srgb,var(--tint) 55%,#fff)}
.bar span{background:var(--main)}
.symbol{color:var(--ink)}
.banner p{color:#fff}
.stat span,.tile span{color:var(--ink)}
.topic input,.switch input{accent-color:var(--ink)}

.card{border-radius:var(--radius);border-color:var(--line)}
.cardhead{background:var(--tint);color:var(--ink);border-left:8px solid var(--accent,var(--main))}
.cardhead span:last-child{opacity:1}
.banner{background:linear-gradient(135deg,var(--ink),color-mix(in srgb,var(--ink) 85%,var(--main)));border-radius:var(--radius)}
.answers h4{background:var(--tint);color:var(--ink)}

/* Hub: one card per series, coloured from its own pack */
.hubcard{display:flex;align-items:center;gap:14px;border-radius:24px;padding:16px;margin-top:12px;background:var(--c-tint);color:var(--c-ink);border:2px solid color-mix(in srgb,var(--c-main) 35%,transparent)}
.hubcard.soon{opacity:.8}
.hubmotif{font-size:34px;line-height:1}
.hubtext{flex:1;min-width:0}
.hubtext h3{margin:0 0 2px;font-size:17px;color:var(--c-ink)}
.hubcard .small{color:var(--c-ink)}
.hubaction{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.hubcard .chip{background:#fff;color:var(--c-ink)}
.hubcard .primary{background:var(--c-ink);color:#fff}

/* Unlock sheet */
.sheet-backdrop{position:fixed;inset:0;background:#2a1a1766;z-index:20}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:21;max-width:560px;margin:0 auto;background:#fff;border-radius:28px 28px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -12px 36px #2a1a1740}
.sheet h2{font:600 22px/1.25 Georgia,"Songti SC",serif;margin:0 0 8px;color:var(--ink)}

/* Friends form (group rooms) */
.friendrow{display:flex;gap:8px;margin-top:8px}
.friendrow .input{flex:1;min-width:0}

/* Group card */
.modebadge{display:inline-block;align-self:flex-start;background:var(--tint);color:var(--ink);border-radius:99px;padding:5px 12px;font-size:12px;font-weight:800;margin-bottom:8px}
.howto{font-size:13px;line-height:1.5;color:var(--ink);margin:0 0 14px}
.timerline{display:flex;align-items:center;gap:12px;margin-top:16px}
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.timerout{font:700 28px ui-rounded,system-ui,sans-serif;color:var(--ink);min-width:3ch}

/* Group report awards */
.awards{display:grid;gap:8px;margin-top:10px}
.award{display:flex;justify-content:space-between;align-items:center;gap:10px;background:color-mix(in srgb,var(--tint) 55%,#fff);border-radius:14px;padding:10px 12px;font-size:13px;color:var(--ink)}
