/* =====================================================================
   v5.0 体验层：主题、层次、结果卡、目标卡、剧情线索、剧本选择、动效
   只做覆盖，不改变原有布局骨架；移动端仍沿用 style.css 的 420/640 断点。
   ===================================================================== */
/* 层级：主菜单 200 < 弹窗 220 < 提示 240，保证从主菜单打开存档/剧本也能看见 */
.modal{z-index:220}
.toast{z-index:240}
:root{
  --bg:#080c14; --base:rgba(20,26,38,.88); --raised:rgba(31,41,58,.92);
  --line:rgba(122,152,196,.2); --text:#e8eef8; --muted:#8fa0b8;
  --accent:#6ea8fe; --accent2:#b98cff; --hot:#ff9f5a; --ok:#4ade80; --bad:#ff6b6b; --gold:#ffc857; --pink:#ff86c8;
  --glow:0 0 0 1px rgba(110,168,254,.08), 0 10px 34px rgba(0,0,0,.38);
}
html[data-theme="light"]{
  --bg:#eef3fa; --base:rgba(255,255,255,.94); --raised:#e9f0fb; --line:#cfdbec;
  --text:#162033; --muted:#475569; --accent:#2563eb; --accent2:#7c3aed;
  --hot:#ea580c; --ok:#16a34a; --bad:#dc2626; --gold:#b45309; --pink:#db2777;
  --glow:0 0 0 1px rgba(37,99,235,.06), 0 10px 30px rgba(30,58,100,.12);
}
html[data-theme="neon"]{
  --bg:#06040d; --base:rgba(18,12,32,.9); --raised:rgba(32,20,54,.92);
  --line:rgba(244,114,182,.24); --text:#f4eaff; --muted:#a995c4;
  --accent:#22d3ee; --accent2:#f472b6; --hot:#fb923c; --ok:#34d399; --bad:#fb7185; --gold:#fbbf24; --pink:#f472b6;
  --glow:0 0 0 1px rgba(34,211,238,.12), 0 10px 34px rgba(0,0,0,.5);
}
body{
  background:
    radial-gradient(1100px 680px at 12% -12%, rgba(110,168,254,.15), transparent 62%),
    radial-gradient(900px 620px at 108% 6%, rgba(185,140,255,.12), transparent 58%),
    radial-gradient(760px 520px at 48% 118%, rgba(74,222,128,.07), transparent 62%),
    var(--bg);
  background-attachment:fixed;
  font-family:"PingFang SC","Microsoft YaHei",-apple-system,"Segoe UI",sans-serif;
}
html[data-theme="light"] body{
  background:
    radial-gradient(1100px 680px at 12% -12%, rgba(37,99,235,.10), transparent 62%),
    radial-gradient(900px 620px at 108% 6%, rgba(124,58,237,.08), transparent 58%),
    var(--bg);
}
button{border-radius:0.74rem;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,0)),var(--raised);transition:transform .16s,border-color .16s,box-shadow .16s,filter .16s}
button:hover{transform:translateY(-0.074rem)}
button.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));border-color:transparent;color:#04101f;box-shadow:0 0.44rem 1.3rem rgba(110,168,254,.32)}
button.next{background:linear-gradient(135deg,#4ade80,#22c55e);border-color:transparent;color:#04120a;box-shadow:0 0.44rem 1.2rem rgba(74,222,128,.3)}
html[data-theme="neon"] button.primary{color:#04121a}
.card{background:linear-gradient(180deg,rgba(255,255,255,.028),transparent 42%),var(--base);border-color:var(--line);box-shadow:var(--glow);backdrop-filter:blur(0.6rem)}
.stat{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.035),transparent 55%),var(--base);border-color:var(--line);transition:transform .18s,border-color .18s,box-shadow .18s}
.stat:hover{transform:translateY(-0.148rem);border-color:rgba(110,168,254,.5);box-shadow:0 0.74rem 1.6rem rgba(0,0,0,.32)}
.stat::after{content:'';position:absolute;left:0;top:0;bottom:0;width:0.22rem;background:var(--accent);opacity:.85}
.stat:nth-child(1)::after{background:#ff6b6b}
.stat:nth-child(2)::after{background:#6ea8fe}
.stat:nth-child(3)::after{background:#ff86c8}
.stat:nth-child(4)::after{background:#ffc857}
.stat:nth-child(5)::after{background:#4ade80}
.stat:nth-child(6)::after{background:#b98cff}
.stat.s3 .k em{font-size:0.98rem;letter-spacing:.01em}
.tabbar button.on{background:linear-gradient(135deg,rgba(110,168,254,.9),rgba(185,140,255,.9));color:#06101f;border-color:transparent;font-weight:800}
.agebar{background:rgba(20,26,38,.5);border:0.0741rem solid var(--line);border-radius:1.2rem;padding:0.5rem 0.85rem;backdrop-filter:blur(0.5rem)}
html[data-theme="light"] .agebar{background:rgba(255,255,255,.6)}
/* 结果卡 */
.resultcard{margin:0 0 0.8rem;border-radius:1rem;padding:0.7rem 0.95rem;border:0.0741rem solid var(--line);background:var(--base);animation:rcPop .3s ease both;box-shadow:var(--glow)}
.resultcard.great{border-color:rgba(255,200,87,.55);background:linear-gradient(135deg,rgba(255,200,87,.14),transparent 60%),var(--base)}
.resultcard.good{border-color:rgba(74,222,128,.45);background:linear-gradient(135deg,rgba(74,222,128,.1),transparent 60%),var(--base)}
.resultcard.bad{border-color:rgba(255,107,107,.5);background:linear-gradient(135deg,rgba(255,107,107,.12),transparent 60%),var(--base)}
.resultcard .rh{display:flex;align-items:center;gap:0.5rem;font-size:0.92rem;min-width:0}
.resultcard .rh .ri{font-size:1.15rem}
.resultcard .rh em{font-style:normal;color:var(--muted);font-size:0.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.resultcard .rc{display:flex;flex-wrap:wrap;gap:0.35rem;margin-top:0.4rem}
.rchip{font-size:0.8rem;padding:0.1rem 0.5rem;border-radius:99rem;background:rgba(255,255,255,.05);border:0.0741rem solid var(--line);color:var(--muted)}
.rchip.up{color:#6ee7a0;border-color:rgba(74,222,128,.4);background:rgba(74,222,128,.1)}
.rchip.down{color:#ff9b9b;border-color:rgba(255,107,107,.4);background:rgba(255,107,107,.1)}
@keyframes rcPop{from{opacity:0;transform:translateY(-0.3rem) scale(.99)}to{opacity:1;transform:none}}
/* 每月小目标 */
.objcard{margin:0 0 0.8rem;padding:0.75rem 0.95rem;border-radius:1rem;border:0.0741rem solid rgba(255,200,87,.28);background:linear-gradient(135deg,rgba(255,200,87,.07),transparent 65%),var(--base);cursor:pointer;transition:border-color .16s}
.objcard:hover{border-color:rgba(255,200,87,.55)}
.objcard .oh{display:flex;align-items:center;justify-content:space-between;font-weight:800;font-size:0.92rem;margin-bottom:0.45rem}
.objcard .oh em{font-style:normal;font-weight:500;color:var(--muted);font-size:0.78rem}
.objrow{display:grid;grid-template-columns:1fr 5.6rem 3.2rem;gap:0.5rem;align-items:center;font-size:0.84rem;margin:0.28rem 0}
.objrow .on{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.objrow b{text-align:right;color:var(--muted);font-weight:500;font-size:0.76rem}
.objrow.done .on{color:#4ade80}
.objrow.done b{color:#4ade80}
.oprog{height:0.38rem;border-radius:99rem;background:rgba(255,255,255,.07);overflow:hidden;border:0.0741rem solid var(--line)}
.oprog i{display:block;height:100%;border-radius:99rem;background:linear-gradient(90deg,var(--accent),var(--ok));transition:width .3s}
/* 人生线索 */
.storycard{margin:0 0 0.8rem;padding:0.75rem 0.95rem;border-radius:1rem;border:0.0741rem solid rgba(185,140,255,.3);border-left:0.22rem solid var(--accent2);background:linear-gradient(135deg,rgba(185,140,255,.08),transparent 65%),var(--base);cursor:pointer;transition:border-color .16s}
.storycard:hover{border-color:rgba(185,140,255,.6)}
.storycard .sh{display:flex;align-items:center;justify-content:space-between;font-weight:800;font-size:0.92rem;margin-bottom:0.4rem}
.storycard .sh em{font-style:normal;font-weight:500;color:var(--muted);font-size:0.76rem}
.srow{display:flex;justify-content:space-between;gap:0.5rem;font-size:0.82rem;color:var(--text);margin:0.22rem 0;min-width:0}
.srow em{font-style:normal;color:var(--muted);white-space:nowrap;font-size:0.76rem}
.srow.hint{color:var(--muted)}
/* 事件头图 */
.evt-hero{display:flex;align-items:center;gap:0.6rem;padding:0.55rem 0.75rem;border-radius:0.85rem;margin-bottom:0.7rem;border:0.0741rem solid var(--line);background:linear-gradient(135deg,rgba(110,168,254,.12),transparent 70%)}
.evt-hero .eh-icon{font-size:1.6rem;line-height:1}
.evt-hero .eh-label{font-weight:800;letter-spacing:.14em;font-size:0.78rem;color:var(--accent)}
.evt-hero i{flex:1;height:0.0741rem;background:linear-gradient(90deg,var(--line),transparent)}
.evt-hero.story{border-color:rgba(185,140,255,.35);background:linear-gradient(135deg,rgba(185,140,255,.14),transparent 70%)}
.evt-hero.story .eh-label{color:var(--accent2)}
.evt-hero.money .eh-label{color:var(--gold)}
.evt-hero.health .eh-label{color:#ff8b8b}
.evt-hero.love .eh-label{color:var(--pink)}
.evt-hero.danger .eh-label{color:var(--bad)}
/* 剧本选择 */
.scriptgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11.5rem,1fr));gap:0.7rem;margin:0.7rem 0}
.scriptcard{--sc:var(--accent);position:relative;border:0.0741rem solid var(--line);border-radius:1.05rem;padding:0.85rem 0.9rem;background:linear-gradient(170deg,rgba(255,255,255,.04),transparent 60%),var(--base);cursor:pointer;transition:transform .16s,border-color .16s,box-shadow .16s}
.scriptcard:hover{transform:translateY(-0.15rem);border-color:var(--sc)}
.scriptcard.sel{border-color:var(--sc);box-shadow:0 0 0 0.0741rem var(--sc),0 0.7rem 1.6rem rgba(0,0,0,.32);background:linear-gradient(170deg,rgba(110,168,254,.14),transparent 62%),var(--base)}
.scriptcard .sc-emoji{font-size:1.9rem;line-height:1.1}
.scriptcard .sc-name{font-size:1.02rem;font-weight:800;margin-top:0.25rem}
.scriptcard .sc-tag{font-size:0.78rem;color:var(--sc);font-weight:700;margin-top:0.1rem}
.scriptcard .sc-desc{font-size:0.78rem;color:var(--muted);line-height:1.5;margin-top:0.35rem}
.scriptcard .sc-traits{display:flex;flex-wrap:wrap;gap:0.25rem;margin-top:0.45rem}
.scriptcard .sc-traits span{font-size:0.7rem;padding:0.05rem 0.4rem;border-radius:99rem;border:0.0741rem solid var(--line);color:var(--muted);background:rgba(255,255,255,.04)}
.scriptsum{font-size:0.82rem;color:var(--muted);line-height:1.6;margin:0.3rem 0 0.5rem}
/* 童年章节 */
.progdots{display:flex;gap:0.35rem;margin-bottom:0.8rem}
.pdot{width:1.7rem;height:0.35rem;border-radius:99rem;background:rgba(255,255,255,.12);transition:.2s}
.pdot.on{background:var(--ok)}
.pdot.cur{background:linear-gradient(90deg,var(--accent),var(--accent2));width:2.6rem}
.chapterhead{font-size:1.08rem;font-weight:800;margin-bottom:0.5rem;display:flex;align-items:center;gap:0.45rem}
.chapteropt{border-radius:0.9rem}
.chapteropt:hover{background:linear-gradient(135deg,rgba(110,168,254,.14),transparent 70%),var(--raised)}
.pstat{display:flex;flex-wrap:wrap;gap:0.4rem 0.9rem;font-size:0.86rem;margin:0.5rem 0;padding:0.55rem 0.7rem;border-radius:0.8rem;border:0.0741rem solid var(--line);background:rgba(255,255,255,.03)}
.ptraits{display:flex;flex-wrap:wrap;gap:0.3rem;margin:0.45rem 0}
.ptraits span{font-size:0.76rem;padding:0.1rem 0.5rem;border-radius:99rem;border:0.0741rem solid rgba(185,140,255,.4);color:var(--accent2);background:rgba(185,140,255,.1)}
.pchoice{font-size:0.8rem;color:var(--muted);line-height:1.6}
.pchoice em{font-style:normal;color:var(--accent2)}
/* 弹窗入场 */
.modal.show .mbox{animation:mboxIn .22s ease both}
@keyframes mboxIn{from{opacity:0;transform:translateY(0.6rem) scale(.99)}to{opacity:1;transform:none}}
/* 主题切换按钮 */
.uiset-opts button.on{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#06101f;border-color:transparent;font-weight:800}
/* 中等宽度：6 列属性卡会挤成竖排，改成 3 列 */
@media (max-width:1100px){
  .stats{grid-template-columns:repeat(3,1fr)}
  .stat.s3 .k{white-space:nowrap}
}
/* ===== 晨光主题对比度修复 =====
   原样式里弹窗/免责声明/悬停态是硬编码深色，切到浅色主题后会出现黑底黑字，
   这里统一覆盖，保证正文、标题、按钮、悬停都有足够对比度。 */
html[data-theme="light"] .mbox{background:linear-gradient(170deg,#ffffff 0%,#eef3fa 100%);border-color:#cfdbec;box-shadow:0 1.3rem 3.7rem rgba(30,58,100,.18)}
html[data-theme="light"] .mhead{background:linear-gradient(90deg,rgba(37,99,235,.08),transparent);border-bottom-color:#dbe5f3}
html[data-theme="light"] .mhead h3{color:#1d4ed8}
html[data-theme="light"] .mclose{background:#eef3fa;color:#475569;border-color:#cfdbec}
html[data-theme="light"] .mbody .toolbar{background:linear-gradient(0deg,rgba(255,255,255,.98),rgba(255,255,255,.9) 70%,transparent)}
html[data-theme="light"] .dbox{background:#fff;border-color:#cfdbec;box-shadow:0 1.3rem 3.7rem rgba(30,58,100,.18)}
html[data-theme="light"] .dtitle{color:#162033}
html[data-theme="light"] .dsub{color:#475569}
html[data-theme="light"] .dbody{color:#334155}
html[data-theme="light"] .dbody b{color:#0f172a}
html[data-theme="light"] button:hover{color:var(--text)}
html[data-theme="light"] button.primary:hover{color:#fff}
html[data-theme="light"] button.next:hover{color:#04120a}
html[data-theme="light"] .mini:hover{color:var(--accent)}
html[data-theme="light"] .act:hover,
html[data-theme="light"] .npc:hover,
html[data-theme="light"] .selfbtn:hover,
html[data-theme="light"] .ag-h:hover,
html[data-theme="light"] .loggrp summary:hover,
html[data-theme="light"] .logside-tab:hover{background:var(--raised)}
html[data-theme="light"] .npc.sel{background:#e0e7ff;border-color:#7c3aed}
html[data-theme="light"] .stat .bar{background:#dbe4f2}
html[data-theme="light"] .statuschip.mixed{color:#92400e;border-color:rgba(180,83,9,.45);background:rgba(251,191,36,.16)}
html[data-theme="light"] .statuschip.buff{color:#166534;border-color:rgba(22,101,52,.4);background:rgba(34,197,94,.12)}
html[data-theme="light"] .statuschip.debuff{color:#991b1b;border-color:rgba(153,27,27,.4);background:rgba(239,68,68,.12)}
html[data-theme="light"] .statuschip.neutral{color:#5b21b6;border-color:rgba(91,33,182,.35);background:rgba(139,92,246,.12)}
html[data-theme="light"] .statuschip.none{color:#475569}
html[data-theme="light"] .rchip.up{color:#166534;border-color:rgba(22,101,52,.35);background:rgba(34,197,94,.12)}
html[data-theme="light"] .rchip.down{color:#991b1b;border-color:rgba(153,27,27,.35);background:rgba(239,68,68,.12)}
html[data-theme="light"] .objrow.done .on,
html[data-theme="light"] .objrow.done b{color:#15803d}
html[data-theme="light"] .toast{background:#fff;box-shadow:0 .6rem 2.4rem rgba(30,58,100,.2)}
html[data-theme="light"] .logside-panel{box-shadow:.3rem 0 1.5rem rgba(30,58,100,.15)}
html[data-theme="light"] .logside-tab{background:linear-gradient(135deg,#e9f0fb,#ffffff)}
html[data-theme="light"] .tabbar button.on,
html[data-theme="light"] .htabs button.on,
html[data-theme="light"] .mtabs button.on,
html[data-theme="light"] .mkt-tabs button.on,
html[data-theme="light"] .uiset-opts button.on{color:#fff}
/* 主菜单适配主题 */
html[data-theme="light"] .mainmenu{background:radial-gradient(1200px 600px at 50% 30%,rgba(37,99,235,.12),transparent),rgba(238,243,250,.94)}
html[data-theme="light"] .mainmenu .mm-box{background:linear-gradient(170deg,#ffffff 0%,#eef3fa 100%);border-color:#cfdbec;box-shadow:0 1.3rem 3.7rem rgba(30,58,100,.18)}
html[data-theme="light"] .mainmenu .mm-btns button{background:#fff;color:#162033;border-color:#cfdbec}
html[data-theme="light"] .mainmenu .mm-btns button.primary{background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;border-color:transparent}
html[data-theme="neon"] .mainmenu{background:radial-gradient(1200px 600px at 50% 30%,rgba(34,211,238,.16),transparent),rgba(6,4,13,.94)}
html[data-theme="neon"] .mainmenu .mm-box{background:linear-gradient(170deg,#140c24 0%,#0a0614 100%);border-color:rgba(244,114,182,.3);box-shadow:0 1.3rem 3.7rem rgba(0,0,0,.7)}
/* 声音设置 */
.audioset{margin-bottom:0.7rem;padding:0.65rem 0.8rem;border:0.0741rem solid var(--line);border-radius:0.9rem;background:rgba(255,255,255,.025)}
.audioset-row{display:flex;gap:0.45rem;flex-wrap:wrap}
.audioset-row button{font-size:0.82rem;padding:0.35rem 0.65rem}
.audioset-row button.on{border-color:var(--accent);color:var(--accent);background:rgba(110,168,254,.1)}
.audiovol{display:flex;align-items:center;gap:0.5rem;margin-top:0.55rem;font-size:0.82rem;color:var(--muted)}
.audiovol input[type=range]{flex:1;accent-color:var(--accent)}
.audiovol b{color:var(--text);min-width:2rem;text-align:right}
/* 地下势力 / 帮派 */
.gangcard{margin:0 0 0.8rem;padding:0.75rem 0.95rem;border-radius:1rem;border:0.0741rem solid rgba(248,81,73,.28);border-left:0.22rem solid #b91c1c;background:linear-gradient(135deg,rgba(185,28,28,.10),transparent 65%),var(--base);cursor:pointer;transition:border-color .16s}
.gangcard:hover{border-color:rgba(248,81,73,.55)}
.gangcard.none{border-left-color:#6b7280;background:linear-gradient(135deg,rgba(107,114,128,.10),transparent 65%),var(--base)}
.gangcard .gh{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;font-weight:800;font-size:0.95rem;color:#ff9b94}
.gangcard .gh em{font-style:normal;font-weight:500;color:var(--muted);font-size:0.76rem}
.gangcard .gline{font-size:0.8rem;color:var(--muted);margin-top:0.25rem}
.ganghead{text-align:center;margin-bottom:0.7rem}
.ganghead .gname{font-size:1.35rem;font-weight:900;color:#ff9b94}
.ganghead .gsub{font-size:0.82rem;color:var(--muted);margin-top:0.15rem}
.gangstats{display:grid;grid-template-columns:repeat(3,1fr);gap:0.5rem;margin:0.5rem 0 0.8rem}
.gangstats>div{background:rgba(255,255,255,.035);border:0.0741rem solid var(--line);border-radius:0.7rem;padding:0.5rem;text-align:center}
.gangstats b{display:block;font-size:1.1rem;color:var(--text)}
.gangstats span{display:block;font-size:0.72rem;color:var(--muted);margin-top:0.15rem}
.gangbtns{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:0.5rem}
.ganggrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:0.6rem;margin:0.7rem 0}
.gangtype{border:0.0741rem solid var(--line);border-radius:0.9rem;padding:0.7rem;background:rgba(255,255,255,.025)}
.gangtype.dim{opacity:.62}
.gangtype .gt-name{font-weight:800;font-size:0.95rem}
.gangtype .gt-desc{font-size:0.78rem;color:var(--muted);margin:0.25rem 0;line-height:1.5}
.gangtype .gt-meta{font-size:0.72rem;color:var(--muted);margin-bottom:0.45rem}
.gangname{display:flex;align-items:center;gap:0.5rem;margin:0.6rem 0;font-size:0.85rem}
.gangname input,.gangname select{flex:1;min-width:0;background:var(--base);border:0.0741rem solid var(--line);color:var(--text);border-radius:0.55rem;padding:0.45rem 0.6rem;font-size:0.88rem}
.gangmeta{font-size:0.8rem;color:var(--muted);margin-bottom:0.4rem}
.gangmeta .bad{color:var(--bad)}
html[data-theme="light"] .gangcard .gh{color:#b91c1c}
html[data-theme="light"] .ganghead .gname{color:#b91c1c}
@media (max-width:420px){
  .gangstats{grid-template-columns:repeat(2,1fr)}
  .gangbtns{grid-template-columns:1fr}
}
/* 结局评分 / 人生大事 */
.scorebox{max-width:34rem;margin:0.6rem auto 0.9rem;text-align:left}
.scorepart{display:grid;grid-template-columns:5rem 1fr 2.6rem;gap:0.5rem;align-items:center;font-size:0.82rem;color:var(--muted);margin:0.28rem 0}
.scorepart b{text-align:right;color:var(--text)}
.spbar{height:0.45rem;border-radius:99rem;background:rgba(255,255,255,.08);overflow:hidden;border:0.0741rem solid var(--line)}
.spbar i{display:block;height:100%;border-radius:99rem;background:linear-gradient(90deg,var(--accent),var(--gold))}
.highlightbox{max-width:34rem;margin:0 auto 0.9rem;text-align:left;padding:0.7rem 0.9rem;border-radius:0.9rem;border:0.0741rem solid var(--line);background:rgba(255,255,255,.03)}
.highlightbox .hh{font-weight:800;color:var(--accent);margin-bottom:0.35rem;font-size:0.9rem}
/* 移动端：目标行与剧本卡更紧凑 */
@media (max-width:420px){
  .objrow{grid-template-columns:1fr 4.2rem 2.8rem;gap:0.35rem}
  .scriptgrid{grid-template-columns:1fr}
  .resultcard .rh em{display:none}
  .agebar{border-radius:0.9rem;padding:0.4rem 0.55rem}
}
