
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{background:#14110e;color:#e8e0d0;font-family:-apple-system,"PingFang SC","Helvetica Neue",sans-serif;font-size:15px;line-height:1.5;min-height:100vh;overflow-x:hidden}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;touch-action:manipulation}
input,select,textarea{font-family:inherit;outline:none}
#st{position:fixed;top:calc(6px + env(safe-area-inset-top));right:6px;background:#a8483a;color:#fff;font-size:11px;padding:3px 9px;border-radius:10px;z-index:9999;transition:opacity .4s}
#st.ok{background:#5f9e6a}
.page{display:none}.page.on{display:block}
.step{display:none}.step.on{display:block}
.hd{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(28,24,19,.98);border-bottom:1px solid #3a3128;padding:calc(12px + env(safe-area-inset-top)) 16px 10px}
.hd-t{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.lg{width:32px;height:32px;border-radius:50%;border:1.5px solid #c9a227;color:#e8c95a;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ti{font-size:15px;font-weight:600;color:#c9a227;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb{border:1px solid #3a3128;color:#9a8f7d;border-radius:8px;padding:5px 11px;font-size:12px;flex-shrink:0}
.pb{flex:1;height:6px;background:#100d0a;border-radius:3px;overflow:hidden;border:1px solid #3a3128}
.pb>i{display:block;height:100%;background:linear-gradient(90deg,#c9a227,#e8c95a);transition:width .3s}
.pt{font-size:12px;color:#9a8f7d;white-space:nowrap}
.pr{display:flex;align-items:center;gap:10px}
.ft{position:fixed;bottom:0;left:0;right:0;z-index:100;background:rgba(28,24,19,.98);border-top:1px solid #3a3128;padding:12px 16px calc(12px + env(safe-area-inset-bottom));display:flex;gap:10px}
.nb{flex:1;min-height:50px;border-radius:12px;border:1.5px solid #3a3128;background:#262019;color:#e8e0d0;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center}
.nb:disabled{opacity:.3}
.nb.p{background:linear-gradient(180deg,#4a3c23,#2b2314);border-color:#c9a227;color:#e8c95a}
main{padding:calc(104px + env(safe-area-inset-top)) 16px calc(100px + env(safe-area-inset-bottom));max-width:620px;margin:0 auto}
main.nf{padding-bottom:calc(20px + env(safe-area-inset-bottom))}
.st{font-size:22px;font-weight:700;color:#e8c95a;margin:0 0 6px}
.sd{font-size:13.5px;color:#9a8f7d;margin:0 0 20px;line-height:1.6}
.f{margin-bottom:16px}
.f>label{display:block;font-size:13px;color:#9a8f7d;margin-bottom:6px}
.f input,.f select{width:100%;min-height:52px;padding:12px 14px;background:#100d0a;border:1.5px solid #3a3128;border-radius:12px;color:#e8e0d0;font-size:16px}
.f input:focus,.f select:focus{border-color:#c9a227}
.stp{display:flex;align-items:center;gap:12px;background:#1c1813;border:1.5px solid #3a3128;border-radius:12px;padding:10px}
.sb{width:52px;height:52px;border-radius:12px;border:1.5px solid #c9a227;background:linear-gradient(180deg,#3a2f1c,#2b2314);color:#e8c95a;font-size:26px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}
.sb:disabled{opacity:.25}
.stp .val{flex:1;text-align:center;font-size:26px;font-weight:700;font-family:Georgia,serif}
.ol{display:flex;flex-direction:column;gap:10px}
.oc{display:flex;align-items:center;gap:14px;width:100%;padding:16px;background:#1c1813;border:1.5px solid #3a3128;border-radius:14px;min-height:68px;text-align:left;font-size:15px}
.oc.sel{border-color:#c9a227;background:linear-gradient(180deg,rgba(201,162,39,.12),rgba(201,162,39,.04))}
.oc .ck{width:26px;height:26px;border-radius:50%;border:2px solid #3a3128;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.oc.sel .ck{border-color:#c9a227;background:#c9a227}
.oc.sel .ck::after{content:"✓";color:#14110e;font-size:15px;font-weight:700}
.ob{flex:1;min-width:0}
.on2{font-size:16px;font-weight:600}
.om{font-size:12.5px;color:#9a8f7d;margin-top:4px;line-height:1.6}
.tg{display:inline-block;padding:1px 8px;border-radius:10px;background:rgba(201,162,39,.12);color:#e8c95a;font-size:11px;margin-right:4px;border:1px solid rgba(201,162,39,.25)}
.tg.b{background:rgba(90,143,191,.12);color:#7fb0e0;border-color:rgba(90,143,191,.3)}
.tg.g{background:rgba(95,158,106,.15);color:#7fc98a;border-color:rgba(95,158,106,.35)}
.tg.p{background:rgba(163,122,201,.15);color:#c9a6e0;border-color:rgba(163,122,201,.35)}
.tg.d{background:rgba(224,82,82,.15);color:#e05252;border-color:rgba(224,82,82,.35)}
.mb{display:flex;gap:6px;margin-bottom:16px;overflow-x:auto;padding-bottom:6px}
.mb button{flex-shrink:0;padding:12px 16px;min-height:46px;border-radius:23px;border:1.5px solid #3a3128;background:#1c1813;color:#9a8f7d;font-size:13.5px}
.mb button.on{background:linear-gradient(180deg,#4a3c23,#2b2314);border-color:#c9a227;color:#e8c95a;font-weight:600}
.mi{padding:12px 14px;background:#100d0a;border:1px solid #3a3128;border-radius:12px;font-size:13px;color:#9a8f7d;margin-bottom:16px;line-height:1.7}
.mi b{color:#e8c95a}
.pc{padding:3px 10px;border-radius:12px;background:rgba(201,162,39,.15);color:#e8c95a;font-size:13px;font-weight:700;border:1px solid rgba(201,162,39,.35);margin:2px;display:inline-block}
.pc.u{background:transparent;color:#4a4035;border-color:#2a251d;text-decoration:line-through}
.ac{background:#1c1813;border:1.5px solid #3a3128;border-radius:14px;padding:14px;margin-bottom:10px}
.at{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.al{font-size:16px;font-weight:600}
.al em{font-style:normal;font-size:11px;color:#6d6252;margin-left:4px}
.ar{display:flex;align-items:baseline;gap:8px}
.ato{font-size:26px;font-weight:700;color:#e8c95a;font-family:Georgia,serif;line-height:1}
.am{font-size:14px;color:#7fb0e0;font-weight:600}
.vb{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.vb button{min-height:50px;border-radius:10px;border:1.5px solid #3a3128;background:#100d0a;color:#9a8f7d;font-size:15px;font-weight:700;padding:0}
.vb button.sel{background:linear-gradient(180deg,#4a3c23,#2b2314);border-color:#c9a227;color:#e8c95a}
.vb button.tk{opacity:.35}
.ni{width:100%;height:52px;text-align:center;font-size:22px;font-weight:700;color:#e8c95a;background:#100d0a;border:1.5px solid #3a3128;border-radius:12px;font-family:Georgia,serif}
.ni:focus{border-color:#c9a227}
.sh{background:#100d0a;border:1px solid #3a3128;border-radius:12px;padding:14px;margin-bottom:14px}
.shr{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.shr:last-child{margin-bottom:0}
.shl{font-size:12.5px;color:#9a8f7d}
.shv{font-size:14px;font-weight:700;color:#e8c95a;font-family:Georgia,serif}
.shv.ok{color:#7fc98a}
.skb{height:6px;background:#1c1813;border-radius:3px;overflow:hidden;border:1px solid #3a3128;margin-top:6px}
.skb>i{display:block;height:100%;background:linear-gradient(90deg,#c9a227,#e8c95a)}
.sl{display:flex;flex-direction:column;gap:6px}
.si{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#1c1813;border:1.5px solid #3a3128;border-radius:12px;min-height:56px;position:relative}
.si.on{background:linear-gradient(180deg,rgba(201,162,39,.12),rgba(201,162,39,.04));border-color:rgba(201,162,39,.5)}
.si.lk{background:linear-gradient(180deg,rgba(90,143,191,.12),rgba(90,143,191,.04));border-color:rgba(90,143,191,.4)}
.si.ds{opacity:.38}
.si .ck{width:24px;height:24px;border-radius:7px;border:2px solid #3a3128;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.si.on .ck{background:#c9a227;border-color:#c9a227}
.si.on .ck::after{content:"✓";color:#14110e;font-size:15px;font-weight:700}
.si.lk .ck{background:#7fb0e0;border-color:#7fb0e0}
.si.lk .ck::after{content:"锁";color:#14110e;font-size:10px;font-weight:700}
.snm{flex:1;font-size:15px}
.si.on .snm{color:#e8c95a;font-weight:600}
.si.lk .snm{color:#7fb0e0;font-weight:600}
.sab{font-size:11px;color:#6d6252;padding:2px 8px;border-radius:8px;background:#100d0a;border:1px solid #3a3128}
.sbo{font-size:13px;font-weight:700;color:#9a8f7d;font-family:Georgia,serif;min-width:32px;text-align:right}
.si.on .sbo,.si.lk .sbo{color:#e8c95a}
.stg{position:absolute;top:-6px;right:8px;font-size:9.5px;padding:1px 6px;border-radius:6px;font-weight:700}
.stg.bg{background:#7fb0e0;color:#14110e}
.stg.cl{background:#c9a227;color:#14110e}
.shh{font-size:12px;color:#6d6252;margin:10px 4px 0;line-height:1.5}
.shh b{color:#e8c95a}
.wb{background:linear-gradient(180deg,#221c14,#191510);border:1.5px solid #4a3d29;border-radius:14px;padding:16px;margin-bottom:20px}
.wr{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.wl{font-size:12px;color:#9a8f7d}
.wv{font-size:20px;font-weight:700;color:#e8c95a;font-family:Georgia,serif}
.wv.r{color:#7fb0e0;font-size:24px}
.wv.n{color:#e05252}
.wba{height:8px;background:#100d0a;border-radius:4px;overflow:hidden;border:1px solid #3a3128;margin:10px 0 6px}
.wba>i{display:block;height:100%;background:linear-gradient(90deg,#c9a227,#e8c95a)}
.wba>i.ov{background:linear-gradient(90deg,#a8483a,#e05252)}
.eb{background:#1c1813;border:1.5px solid #3a3128;border-radius:14px;padding:14px;margin-bottom:14px}
.ebt{font-size:13px;color:#c9a227;font-weight:600;letter-spacing:2px;margin:0 0 10px}
.es{width:100%;min-height:52px;padding:12px 14px;background:#100d0a;border:1.5px solid #3a3128;border-radius:12px;color:#e8e0d0;font-size:15px}
.ep{font-size:12px;color:#9a8f7d;margin-top:8px;text-align:right}
.ep b{color:#e8c95a;font-family:Georgia,serif}
.gl{display:flex;flex-direction:column;gap:6px}
.gr{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#100d0a;border:1.5px solid #3a3128;border-radius:10px;min-height:52px}
.gr.on{border-color:rgba(201,162,39,.4);background:rgba(201,162,39,.04)}
.gi{flex:1;min-width:0}
.gn{font-size:13.5px}
.gr.on .gn{color:#e8c95a;font-weight:600}
.gp{font-size:11px;color:#6d6252;margin-top:2px}
.gq{display:flex;align-items:center;gap:6px;flex-shrink:0}
.gqb{width:36px;height:36px;border-radius:9px;border:1.5px solid #3a3128;background:#1c1813;color:#c9a227;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0}
.gqb:disabled{opacity:.25}
.gqn{min-width:28px;text-align:center;font-size:15px;font-weight:700;color:#e8c95a;font-family:Georgia,serif}
.gqn.z{color:#4a4035}
.bgab{padding:16px;background:rgba(90,143,191,.06);border:1.5px dashed rgba(90,143,191,.4);border-radius:14px}
.bgat{font-size:13.5px;color:#7fb0e0;font-weight:600;margin-bottom:14px}
.amr{display:flex;gap:8px;margin-bottom:14px}
.amb{flex:1;padding:12px 8px;min-height:56px;border-radius:12px;border:1.5px solid #3a3128;background:#100d0a;color:#9a8f7d;font-size:13px;display:flex;align-items:center;justify-content:center;text-align:center}
.amb.on{background:linear-gradient(180deg,rgba(90,143,191,.15),rgba(90,143,191,.05));border-color:#7fb0e0;color:#7fb0e0;font-weight:600}
.asl{display:flex;flex-direction:column;gap:10px}
.ar2{display:flex;align-items:center;gap:10px}
.abn{flex-shrink:0;width:56px;font-size:16px;font-weight:700;color:#7fb0e0;font-family:Georgia,serif;text-align:center}
.ar2 select{flex:1;min-height:52px;padding:10px 12px;background:#100d0a;border:1.5px solid #3a3128;border-radius:12px;color:#e8e0d0;font-size:16px}
.fl{display:flex;flex-direction:column;gap:8px}
.fi{display:flex;align-items:flex-start;gap:10px;padding:12px;background:#100d0a;border:1.5px solid #3a3128;border-radius:12px}
.fi.on{background:linear-gradient(180deg,rgba(201,162,39,.15),rgba(201,162,39,.05));border-color:#c9a227}
.fi .ck{width:20px;height:20px;border-radius:50%;border:2px solid #3a3128;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}
.fi.on .ck{background:#c9a227;border-color:#c9a227}
.fi.on .ck::after{content:"✓";color:#14110e;font-size:13px;font-weight:700}
.fb{flex:1;min-width:0}
.fnm{font-size:14px;font-weight:600}
.fi.on .fnm{color:#e8c95a}
.fd{font-size:12px;color:#9a8f7d;margin-top:4px;line-height:1.5}
.frec{display:inline-block;padding:1px 6px;border-radius:8px;background:rgba(90,143,191,.15);color:#7fb0e0;font-size:10px;font-weight:600;margin-left:6px;border:1px solid rgba(90,143,191,.3)}
.sh2{background:linear-gradient(180deg,#221c14,#191510);border:1px solid #4a3d29;border-radius:16px;padding:20px 16px}
.shn{font-size:22px;color:#e8c95a;font-family:Georgia,serif;line-height:1.3}
.shs{font-size:13px;color:#9a8f7d;margin-top:4px}
.hr{height:1px;background:linear-gradient(90deg,#3a3128,transparent);margin:16px 0}
.sg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.sc{text-align:center;background:#120f0b;border:1px solid #3a3128;border-radius:10px;padding:10px 2px 8px}
.sc .l{font-size:11px;color:#9a8f7d}
.sc .v{font-size:22px;font-weight:700;font-family:Georgia,serif;line-height:1.15;margin-top:2px}
.sc .m{display:inline-block;margin-top:4px;font-size:12px;color:#e8c95a;background:rgba(201,162,39,.1);border-radius:10px;padding:0 8px}
.stg2{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.stt{display:flex;justify-content:space-between;align-items:center;background:#120f0b;border:1px solid #3a3128;border-radius:9px;padding:8px 12px;font-size:13px}
.stt span{color:#9a8f7d}
.stt b{color:#e8c95a;font-size:15px;font-family:Georgia,serif}
.shl2{list-style:none;font-size:13.5px}
.shl2 li{display:flex;justify-content:space-between;padding:5px 2px;border-bottom:1px dashed rgba(58,49,40,.6);gap:10px}
.shl2 li:last-child{border-bottom:none}
.shl2 b{color:#e8c95a;font-family:Georgia,serif;text-align:right;flex-shrink:0}
.sec{font-size:11px;letter-spacing:2px;color:#c9a227;margin:0 0 8px;font-weight:600}
.ae{font-size:13px;color:#5b5245;font-style:italic}
.he{text-align:center;padding:24px 16px 16px}
.he h2{font-size:26px;color:#e8c95a;font-family:Georgia,serif;margin:0 0 6px;letter-spacing:2px}
.he p{font-size:13px;color:#9a8f7d;letter-spacing:1px}
.ha{display:flex;flex-direction:column;gap:10px;margin:18px 0}
.hbt{min-height:60px;border-radius:14px;border:1.5px solid #3a3128;background:#1c1813;color:#e8e0d0;font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px}
.hbt.p{background:linear-gradient(180deg,#4a3c23,#2b2314);border-color:#c9a227;color:#e8c95a}
.hbt.dm{background:linear-gradient(180deg,#3a1f1f,#2a1616);border-color:#a8483a;color:#ff9a8a}
.clt{font-size:12px;color:#9a8f7d;letter-spacing:2px;margin:24px 0 12px;font-family:Georgia,serif;display:flex;align-items:center;gap:10px}
.clt::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#3a3128,transparent)}
.cl{display:flex;flex-direction:column;gap:10px}
.cc{background:linear-gradient(180deg,#1c1813,#16120e);border:1.5px solid #3a3128;border-radius:14px;padding:14px;display:flex;align-items:center;gap:12px}
.ca{width:52px;height:52px;flex-shrink:0;border-radius:50%;border:1.5px solid #c9a227;background:linear-gradient(180deg,#2a2218,#171310);display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:20px;font-weight:700;color:#e8c95a}
.ci{flex:1;min-width:0}
.cn{font-size:16px;color:#e8c95a;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm{font-size:12.5px;color:#9a8f7d;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chr{display:flex;align-items:center;gap:6px;margin-top:6px}
.chb{flex:1;height:5px;background:#100d0a;border-radius:3px;overflow:hidden;border:1px solid #3a3128}
.chb>i{display:block;height:100%;background:#5f9e6a}
.chb>i.w{background:#c9a227}
.chb>i.c{background:#e05252}
.cht{font-size:11px;color:#9a8f7d;font-family:Georgia,serif}
.cac{display:flex;flex-direction:column;gap:6px;flex-shrink:0}
.cab{width:40px;height:40px;border-radius:10px;border:1.5px solid #3a3128;background:#100d0a;color:#9a8f7d;font-size:16px;display:flex;align-items:center;justify-content:center;padding:0}
.cab.e{color:#7fb0e0;border-color:rgba(90,143,191,.4)}
.cab.d{color:#a8483a;border-color:rgba(168,72,58,.4)}
.eh{text-align:center;padding:32px 16px;color:#5b5245;font-size:13.5px;line-height:1.7}
.tb{background:#1c1813;border:1.5px solid #3a3128;border-radius:14px;padding:14px;margin-bottom:14px}
.tt{font-size:13px;color:#c9a227;font-weight:600;letter-spacing:2px;margin:0 0 12px;display:flex;align-items:center;gap:8px}
.tt::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#3a3128,transparent)}
.th{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.ta{width:60px;height:60px;border-radius:50%;border:2px solid #c9a227;background:linear-gradient(180deg,#2a2218,#171310);display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:24px;font-weight:700;color:#e8c95a;flex-shrink:0}
.thi{flex:1;min-width:0}
.thn{font-size:18px;color:#e8c95a;font-weight:600;line-height:1.3}
.thm{font-size:12.5px;color:#9a8f7d;margin-top:2px}
.hpd{display:flex;align-items:baseline;justify-content:center;gap:8px;margin-bottom:12px}
.hpc{font-size:42px;font-weight:700;color:#7fc98a;font-family:Georgia,serif;line-height:1}
.hpc.w{color:#e0a33c}
.hpc.c{color:#e05252}
.hps{font-size:24px;color:#6d6252}
.hpm{font-size:24px;font-weight:600;color:#9a8f7d;font-family:Georgia,serif}
.hpt{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:12px;background:rgba(90,143,191,.15);color:#7fb0e0;font-size:12px;font-weight:600;border:1px solid rgba(90,143,191,.35)}
.hpb{height:14px;background:#100d0a;border-radius:7px;overflow:hidden;border:1px solid #3a3128;margin-bottom:10px;position:relative}
.hpb>i{display:block;height:100%;background:linear-gradient(90deg,#5f9e6a,#7fc98a);transition:width .3s}
.hpb>i.w{background:linear-gradient(90deg,#c9a227,#e0a33c)}
.hpb>i.c{background:linear-gradient(90deg,#a8483a,#e05252)}
.hpb>i.t{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,#5a8fbf,#7fb0e0);opacity:.85;z-index:1}
.hir{display:flex;gap:8px;margin-bottom:8px}
.hi{flex:1;min-height:48px;padding:10px 12px;background:#100d0a;border:1.5px solid #3a3128;border-radius:10px;color:#e8e0d0;font-size:15px;text-align:center}
.hi:focus{border-color:#c9a227}
.hab{flex:0 0 80px;min-height:48px;border-radius:10px;border:1.5px solid #3a3128;background:linear-gradient(180deg,#2a241c,#1c1813);color:#e8e0d0;font-size:13px;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px;gap:2px}
.hab.d{border-color:rgba(168,72,58,.5);color:#e05252}
.hab.h{border-color:rgba(95,158,106,.5);color:#7fc98a}
.hab.t{border-color:rgba(90,143,191,.5);color:#7fb0e0}
.hab small{font-size:10.5px;color:#6d6252;font-weight:400}
.hqr{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.hqb{flex:1;min-width:52px;min-height:38px;border-radius:9px;border:1.5px solid #3a3128;background:#100d0a;color:#9a8f7d;font-size:13px;font-weight:600;font-family:Georgia,serif;padding:0}
.hqb.d{color:#e05252;border-color:rgba(168,72,58,.4)}
.hqb.h{color:#7fc98a;border-color:rgba(95,158,106,.4)}
.ed{text-align:center;margin-bottom:10px}
.ec{font-size:32px;font-weight:700;color:#e8c95a;font-family:Georgia,serif;line-height:1}
.el{font-size:12px;color:#9a8f7d;margin-top:4px;letter-spacing:1px}
.eb2{height:12px;background:#100d0a;border-radius:6px;overflow:hidden;border:1px solid #3a3128;margin:12px 0 6px}
.eb2>i{display:block;height:100%;background:linear-gradient(90deg,#7fb0e0,#a3d0f0);transition:width .4s}
.eb2>i.r{background:linear-gradient(90deg,#c9a227,#e8c95a)}
.em{font-size:12px;color:#9a8f7d;display:flex;justify-content:space-between}
.em b{color:#e8c95a;font-family:Georgia,serif}
.eir{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}
.eab{flex:1;min-width:64px;min-height:44px;border-radius:10px;border:1.5px solid rgba(90,143,191,.4);background:#100d0a;color:#7fb0e0;font-size:13px;font-weight:600;padding:0;font-family:Georgia,serif}
.ecr{display:flex;gap:8px;margin-top:8px}
.eci{flex:1;min-height:44px;padding:10px 12px;background:#100d0a;border:1.5px solid #3a3128;border-radius:10px;color:#e8e0d0;font-size:15px;text-align:center}
.ecb{flex:0 0 80px;min-height:44px;border-radius:10px;border:1.5px solid #3a3128;background:#100d0a;color:#9a8f7d;font-size:13px;font-weight:600}
.ecb.a{color:#7fc98a;border-color:rgba(95,158,106,.4)}
.ecb.s{color:#e05252;border-color:rgba(168,72,58,.4)}
.lur{margin-top:12px;padding:14px;border-radius:12px;background:linear-gradient(135deg,rgba(201,162,39,.25),rgba(201,162,39,.08));border:1.5px solid #c9a227;text-align:center}
.lut{font-size:15px;color:#e8c95a;font-weight:700;letter-spacing:1px;margin-bottom:6px}
.lub{min-height:48px;padding:0 20px;border-radius:12px;border:1.5px solid #c9a227;background:linear-gradient(180deg,#4a3c23,#2b2314);color:#e8c95a;font-size:15px;font-weight:700;letter-spacing:1px;margin-top:8px}
.slg{display:flex;flex-direction:column;gap:8px}
.slr{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#100d0a;border:1px solid #3a3128;border-radius:10px}
.sll{flex-shrink:0;width:56px;font-size:13px;color:#c9a6e0;font-weight:600;font-family:Georgia,serif}
.slp{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.pp{width:24px;height:24px;border-radius:50%;border:2px solid #a37ac9;background:transparent;transition:.15s;display:flex;align-items:center;justify-content:center;cursor:pointer}
.pp.u{background:#a37ac9}
.pp.u::after{content:"−";color:#14110e;font-weight:700;font-size:14px}
.sbr{display:flex;gap:6px;flex-shrink:0}
.tb2{width:34px;height:34px;border-radius:9px;border:1.5px solid #3a3128;background:#1c1813;color:#c9a6e0;font-size:15px;font-weight:700;padding:0}
.cg{display:flex;flex-wrap:wrap;gap:6px}
.cck{padding:7px 14px;border-radius:20px;border:1.5px solid #3a3128;background:#100d0a;color:#9a8f7d;font-size:12.5px;transition:.12s;user-select:none}
.cck.on{background:linear-gradient(180deg,rgba(168,72,58,.3),rgba(168,72,58,.1));border-color:#e05252;color:#ff8a7a;font-weight:600}
.cck.on::before{content:"● ";font-size:10px}
.dsv{display:flex;gap:20px;justify-content:center;align-items:center;flex-wrap:wrap}
.dgp{display:flex;flex-direction:column;align-items:center;gap:6px}
.dlb{font-size:12px;color:#9a8f7d;letter-spacing:1px}
.dlb.s{color:#7fc98a}
.dlb.f{color:#e05252}
.dps{display:flex;gap:6px}
.dp{width:30px;height:30px;border-radius:50%;border:2px solid #3a3128;background:transparent;transition:.15s;position:relative;cursor:pointer}
.dp.on.s{background:#7fc98a;border-color:#7fc98a}
.dp.on.s::after{content:"✓";color:#14110e;font-weight:700;font-size:16px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}
.dp.on.f{background:#e05252;border-color:#e05252}
.dp.on.f::after{content:"✕";color:#14110e;font-weight:700;font-size:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}
.gdd{padding:12px 16px;background:#100d0a;border:1.5px solid #3a3128;border-radius:12px;text-align:center;flex:1}
.gdc{font-size:22px;font-weight:700;color:#e8c95a;font-family:Georgia,serif;line-height:1}
.gdc.n{color:#e05252}
.gdl{font-size:10.5px;color:#6d6252;margin-top:4px;letter-spacing:1px}
.gtr{display:flex;align-items:center;gap:8px}
.rst{display:flex;gap:8px;margin-top:14px}
.rsb{flex:1;min-height:52px;border-radius:12px;border:1.5px solid #3a3128;background:linear-gradient(180deg,#2a241c,#1c1813);color:#e8e0d0;font-size:13.5px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px}
.rsb.l{border-color:rgba(95,158,106,.5);color:#7fc98a}
.rsb.s{border-color:rgba(90,143,191,.5);color:#7fb0e0}
.rsb.r{border-color:rgba(168,72,58,.5);color:#e05252}
.insp{display:flex;align-items:center;gap:8px;padding:10px 12px;background:linear-gradient(135deg,rgba(201,162,39,.15),rgba(201,162,39,.05));border:1.5px solid rgba(201,162,39,.5);border-radius:12px;margin-bottom:10px}
.insp-star{font-size:24px;color:#e8c95a}
.insp-label{flex:1;font-size:14px;color:#e8c95a;font-weight:600}
.insp-count{font-size:20px;font-weight:700;color:#e8c95a;font-family:Georgia,serif}
.insp-btn{width:36px;height:36px;border-radius:9px;border:1.5px solid rgba(201,162,39,.5);background:#100d0a;color:#e8c95a;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0}
.exh-row{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#100d0a;border:1px solid #3a3128;border-radius:10px;margin-bottom:6px}
.exh-label{flex:1;font-size:13px}
.exh-lv{font-size:16px;font-weight:700;font-family:Georgia,serif;min-width:24px;text-align:center}
.exh-lv.warn{color:#e0a33c}
.exh-lv.danger{color:#e05252}
.exh-desc{font-size:11px;color:#6d6252;margin-top:2px;line-height:1.4}
.comp-row{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#100d0a;border:1px solid #3a3128;border-radius:10px;margin-bottom:6px}
.comp-name{flex:1;font-size:13.5px}
.comp-hp{font-size:12px;color:#9a8f7d;font-family:Georgia,serif}
.comp-status{font-size:11px;padding:2px 8px;border-radius:8px;background:rgba(95,158,106,.15);color:#7fc98a}
.comp-status.down{background:rgba(224,82,82,.15);color:#e05252}
.ammo-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#100d0a;border:1px solid #3a3128;border-radius:10px;margin-bottom:6px}
.ammo-name{flex:1;font-size:13px}
.ammo-ctrl{display:flex;align-items:center;gap:6px}
.ammo-btn{width:32px;height:32px;border-radius:8px;border:1.5px solid #3a3128;background:#1c1813;color:#c9a227;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0}
.ammo-num{min-width:28px;text-align:center;font-size:14px;font-weight:700;color:#e8c95a;font-family:Georgia,serif}
.empty-tip{padding:14px;text-align:center;font-size:13px;color:#5b5245;font-style:italic}
.spell-cat{margin-bottom:20px}
.spell-cat-t{font-size:13px;color:#c9a227;font-weight:600;letter-spacing:2px;margin:0 0 10px;display:flex;align-items:center;gap:8px}
.spell-cat-t::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#3a3128,transparent)}
.spell-cat-c{font-size:12px;color:#9a8f7d;font-weight:400;letter-spacing:0}
.spell-cat-c.ok{color:#7fc98a;font-weight:600}
.spell-list{display:flex;flex-direction:column;gap:6px}
.spell-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:#1c1813;border:1.5px solid #3a3128;border-radius:12px}
.spell-item.on{background:linear-gradient(180deg,rgba(163,122,201,.12),rgba(163,122,201,.04));border-color:rgba(163,122,201,.5)}
.spell-item.ds{opacity:.4}
.spell-item .ck{width:22px;height:22px;border-radius:50%;border:2px solid #3a3128;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.spell-item.on .ck{background:#a37ac9;border-color:#a37ac9}
.spell-item.on .ck::after{content:"✓";color:#14110e;font-size:13px;font-weight:700}
.spell-body{flex:1;min-width:0}
.spell-nm{font-size:14.5px;font-weight:600;line-height:1.3}
.spell-item.on .spell-nm{color:#c9a6e0}
.spell-dc{font-size:12px;color:#9a8f7d;margin-top:4px;line-height:1.5}
.sp-cast{display:flex;flex-direction:column;gap:8px}
.sp-cast-item{background:#100d0a;border:1.5px solid #3a3128;border-radius:12px;padding:12px;transition:.12s}
.sp-cast-item.on{border-color:rgba(163,122,201,.5);background:linear-gradient(180deg,rgba(163,122,201,.08),rgba(163,122,201,.02))}
.sp-cast-hd{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.sp-cast-nm{font-size:14.5px;font-weight:600;line-height:1.3;flex:1;min-width:0;color:#c9a6e0}
.sp-cast-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.sp-tag{font-size:10.5px;padding:2px 7px;border-radius:8px;background:rgba(201,162,39,.1);color:#c9a227;border:1px solid rgba(201,162,39,.25)}
.sp-tag.r{background:rgba(90,143,191,.12);color:#7fb0e0;border-color:rgba(90,143,191,.3)}
.sp-tag.c{background:rgba(224,82,82,.12);color:#e05252;border-color:rgba(224,82,82,.3)}
.sp-cast-dc{font-size:12px;color:#9a8f7d;line-height:1.5;margin-bottom:8px}
.sp-cast-btn{width:100%;min-height:42px;border-radius:10px;border:1.5px solid rgba(163,122,201,.5);background:linear-gradient(180deg,rgba(163,122,201,.15),rgba(163,122,201,.05));color:#c9a6e0;font-size:13.5px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px}
.sp-cast-btn:disabled{opacity:.35;border-color:#3a3128;color:#6d6252}
.focus-box{display:flex;align-items:center;gap:10px;padding:12px;background:linear-gradient(135deg,rgba(224,82,82,.15),rgba(224,82,82,.05));border:1.5px solid rgba(224,82,82,.4);border-radius:12px;margin-bottom:10px}
.focus-name{flex:1;font-size:14px;color:#ff8a7a;font-weight:600}
.focus-btn{width:32px;height:32px;border-radius:8px;border:1.5px solid rgba(224,82,82,.4);background:#100d0a;color:#e05252;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0}
.dbd{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:9998;display:none;align-items:center;justify-content:center;padding:20px}
.dbd.on{display:flex}
.dg{background:#1c1813;border:1.5px solid #c9a227;border-radius:16px;padding:20px;max-width:360px;width:100%;text-align:center;max-height:85vh;overflow-y:auto}
.dgt{font-size:17px;color:#e8c95a;font-weight:600;margin-bottom:8px}
.dgx{font-size:13.5px;color:#9a8f7d;margin-bottom:16px;line-height:1.6;text-align:left}
.dga{display:flex;gap:10px}
.dgb{flex:1;min-height:46px;border-radius:10px;border:1.5px solid #3a3128;background:#100d0a;color:#9a8f7d;font-size:14px;font-weight:600}
.dgb.d{background:linear-gradient(180deg,rgba(168,72,58,.3),rgba(168,72,58,.1));border-color:#e05252;color:#e05252}
.dgb.p{background:linear-gradient(180deg,#4a3c23,#2b2314);border-color:#c9a227;color:#e8c95a}
.levelup-hero{text-align:center;padding:20px 16px;background:linear-gradient(180deg,rgba(201,162,39,.15),rgba(201,162,39,.03));border-radius:12px;border:1.5px solid rgba(201,162,39,.4);margin-bottom:14px}
.levelup-lv{font-size:42px;color:#e8c95a;font-family:Georgia,serif;font-weight:700;line-height:1}
.levelup-lb{font-size:12.5px;color:#9a8f7d;margin-top:4px;letter-spacing:2px}
.levelup-list{list-style:none;font-size:13.5px;margin:0;padding:0}
.levelup-list li{display:flex;justify-content:space-between;padding:8px 4px;border-bottom:1px dashed rgba(58,49,40,.6)}
.levelup-list li:last-child{border-bottom:none}
.levelup-list span{color:#9a8f7d}
.levelup-list b{color:#e8c95a;font-family:Georgia,serif}
.levelup-tip{margin-top:12px;padding:12px;background:rgba(90,143,191,.08);border:1.5px dashed rgba(90,143,191,.4);border-radius:10px;font-size:12.5px;color:#7fb0e0;line-height:1.6}
.dice-result{display:none;padding:12px;background:#100d0a;border:1.5px solid rgba(201,162,39,.4);border-radius:12px;margin-bottom:12px;text-align:center;font-family:Georgia,serif;font-size:14px;font-weight:600;color:#e8c95a;line-height:1.6}
.adv-btn{flex:1;padding:12px 8px;min-height:44px;border-radius:12px;border:1.5px solid #3a3128;background:#100d0a;color:#9a8f7d;font-size:13px;display:flex;align-items:center;justify-content:center}
.adv-btn.on{background:linear-gradient(180deg,rgba(90,143,191,.15),rgba(90,143,191,.05));border-color:#7fb0e0;color:#7fb0e0;font-weight:600}
.adv-btn.adv.on{background:linear-gradient(180deg,rgba(95,158,106,.15),rgba(95,158,106,.05));border-color:#7fc98a;color:#7fc98a}
.adv-btn.dis.on{background:linear-gradient(180deg,rgba(224,82,82,.15),rgba(224,82,82,.05));border-color:#e05252;color:#e05252}
.dice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}
.dice-btn{min-height:44px;border-radius:10px;border:1.5px solid rgba(90,143,191,.4);background:#100d0a;color:#7fb0e0;font-size:13px;font-weight:600;padding:0;font-family:Georgia,serif}
.dice-btn.sv{border-color:rgba(201,162,39,.5);color:#e8c95a}
.dice-label{font-size:11px;color:#6d6252;margin-bottom:6px;letter-spacing:1px}
.atk-card{padding:12px;background:#100d0a;border:1px solid #3a3128;border-radius:10px;margin-bottom:8px}
.atk-hd{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.atk-lb{font-size:10.5px;color:#6d6252;background:#1c1813;padding:2px 8px;border-radius:8px;border:1px solid #3a3128;flex-shrink:0}
.atk-nm{font-size:14px;font-weight:600;color:#e8c95a;flex:1;min-width:0}
.atk-stat{font-size:12px;color:#9a8f7d;font-family:Georgia,serif;flex-shrink:0}
.atk-btns{display:flex;gap:6px}
.atk-btn{flex:1;min-height:42px;border-radius:10px;border:1.5px solid #3a3128;background:#1c1813;font-size:13px;font-weight:600;padding:0;font-family:Georgia,serif}
.atk-btn.hit{color:#7fb0e0;border-color:rgba(90,143,191,.4)}
.atk-btn.dmg{color:#e0a33c;border-color:rgba(224,163,60,.4)}
.atk-btn.crit{color:#e05252;border-color:rgba(224,82,82,.4);flex:0 0 auto;padding:0 12px}
.cur-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:10px}
.cur-cell{background:#100d0a;border:1px solid #3a3128;border-radius:9px;padding:8px 4px;text-align:center}
.cur-e{font-size:10px;color:#6d6252;letter-spacing:1px;font-family:Georgia,serif}
.cur-v{font-size:16px;font-weight:700;color:#e8c95a;font-family:Georgia,serif;margin-top:2px;line-height:1.1}
.cur-c{font-size:10px;color:#9a8f7d;margin-top:3px}
.cur-row{display:flex;gap:6px;margin-bottom:6px;align-items:center}
.cur-row-label{flex:0 0 48px;font-size:12px;color:#9a8f7d;font-family:Georgia,serif}
.cur-btn{flex:1;min-height:36px;border-radius:8px;border:1.5px solid #3a3128;background:#100d0a;color:#9a8f7d;font-size:12px;font-weight:600;padding:0}
.cur-btn.plus{color:#7fc98a;border-color:rgba(95,158,106,.4)}
.cur-btn.minus{color:#e05252;border-color:rgba(168,72,58,.4)}
.cur-conv{display:flex;gap:6px;align-items:center;padding:8px 10px;background:#100d0a;border:1px solid #3a3128;border-radius:9px;margin-top:6px}
.cur-conv select{flex:1;min-height:36px;padding:6px 8px;background:#1c1813;border:1.5px solid #3a3128;border-radius:8px;color:#e8e0d0;font-size:13px}
.cur-conv input{flex:0 0 70px;min-height:36px;padding:6px 8px;background:#1c1813;border:1.5px solid #3a3128;border-radius:8px;color:#e8e0d0;font-size:13px;text-align:center}
.cur-conv button{flex:0 0 56px;min-height:36px;border-radius:8px;border:1.5px solid rgba(201,162,39,.4);background:linear-gradient(180deg,#2a241c,#1c1813);color:#e8c95a;font-size:12px;font-weight:600}
.ammo-row2{display:flex;align-items:center;gap:8px;padding:9px 11px;background:#100d0a;border:1px solid #3a3128;border-radius:10px;margin-bottom:6px}
.ammo-nm2{flex:1;font-size:13.5px;font-weight:600}
.ammo-ctrl2{display:flex;align-items:center;gap:4px}
.ammo-btn2{width:30px;height:30px;border-radius:7px;border:1.5px solid #3a3128;background:#1c1813;color:#c9a227;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0}
.ammo-btn2.rec{color:#7fc98a;border-color:rgba(95,158,106,.4);width:auto;padding:0 8px;font-size:11px}
.ammo-cnt2{min-width:36px;text-align:center;font-size:15px;font-weight:700;color:#e8c95a;font-family:Georgia,serif}
.ammo-cnt2.z{color:#4a4035}
.ammo-cnt2.low{color:#e0a33c}
.res-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#100d0a;border:1px solid #3a3128;border-radius:10px;margin-bottom:6px;flex-wrap:wrap}
.res-info{flex:1;min-width:120px}
.res-nm{font-size:13.5px;font-weight:600;color:#e8c95a}
.res-d{font-size:10.5px;color:#6d6252;margin-top:2px;line-height:1.4}
.res-cnt{font-size:14px;font-weight:700;color:#e8c95a;font-family:Georgia,serif;flex-shrink:0;min-width:44px;text-align:right}
.res-pips{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0}
.res-pip{width:20px;height:20px;border-radius:50%;border:2px solid #a37ac9;background:transparent;cursor:pointer}
.res-pip.u{background:#a37ac9}
.res-pip.u::after{content:"−";color:#14110e;font-weight:700;font-size:11px;display:flex;align-items:center;justify-content:center;height:100%}
.res-pool{display:flex;gap:6px;align-items:center}
.res-pool input{width:70px;min-height:34px;padding:4px 8px;background:#1c1813;border:1.5px solid #3a3128;border-radius:8px;color:#e8e0d0;font-size:13px;text-align:center}
.res-pool button{min-height:34px;padding:0 10px;border-radius:8px;border:1.5px solid #3a3128;background:#1c1813;color:#c9a227;font-size:12px;font-weight:600}
.insp2{display:flex;align-items:center;gap:10px;padding:10px 12px;background:linear-gradient(135deg,rgba(201,162,39,.15),rgba(201,162,39,.05));border:1.5px solid rgba(201,162,39,.5);border-radius:12px;margin-bottom:10px}
.insp2-star{font-size:22px;color:#e8c95a}
.insp2-label{flex:1;font-size:14px;color:#e8c95a;font-weight:600}
.insp2-state{font-size:12px;color:#9a8f7d;margin-right:6px}
.insp2-btn{min-height:38px;padding:0 16px;border-radius:9px;border:1.5px solid rgba(201,162,39,.5);background:#100d0a;color:#e8c95a;font-size:13px;font-weight:700}
.insp2-btn.on{background:linear-gradient(180deg,#c9a227,#a38620);color:#14110e;border-color:#c9a227}
.note-area{width:100%;min-height:110px;padding:10px 12px;background:#100d0a;border:1.5px solid #3a3128;border-radius:10px;color:#e8e0d0;font-size:13px;line-height:1.6;font-family:inherit;resize:vertical}
.note-area:focus{border-color:#c9a227}
.note-meta{font-size:10.5px;color:#6d6252;margin-top:6px;text-align:right}
.shop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.shop-btn{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#100d0a;border:1.5px solid #3a3128;border-radius:10px;color:#e8e0d0;text-align:left;min-height:58px}
.shop-btn:active{background:linear-gradient(180deg,rgba(201,162,39,.1),rgba(201,162,39,.02));border-color:rgba(201,162,39,.4)}
.shop-ic{font-size:22px;flex-shrink:0;line-height:1}
.shop-nm{font-size:13.5px;font-weight:600;color:#c9a227;line-height:1.2}
.shop-sub{font-size:10.5px;color:#6d6252;margin-top:2px;line-height:1.3;display:block}
.shop-hd{display:flex;align-items:center;gap:12px;padding:14px;background:linear-gradient(180deg,#221c14,#191510);border:1.5px solid #4a3d29;border-radius:14px;margin-bottom:14px}
.shop-hd-ic{font-size:32px;flex-shrink:0;line-height:1}
.shop-hd-info{flex:1;min-width:0}
.shop-hd-nm{font-size:16px;color:#e8c95a;font-weight:600}
.shop-hd-d{font-size:12px;color:#9a8f7d;margin-top:3px}
.shop-hd-gold{font-size:14px;color:#e8c95a;font-family:Georgia,serif;font-weight:600;flex-shrink:0}
.shop-item{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#100d0a;border:1px solid #3a3128;border-radius:10px;margin-bottom:6px}
.shop-item-info{flex:1;min-width:0}
.shop-item-nm{font-size:13.5px;font-weight:600;color:#e8c95a}
.shop-item-d{font-size:11px;color:#9a8f7d;margin-top:2px;line-height:1.4}
.shop-item-pr{font-size:12px;color:#7fb0e0;font-family:Georgia,serif;margin-top:3px}
.shop-buy{flex:0 0 auto;min-height:40px;padding:0 14px;border-radius:9px;border:1.5px solid rgba(201,162,39,.4);background:linear-gradient(180deg,#2a241c,#1c1813);color:#e8c95a;font-size:13px;font-weight:600}
.shop-buy:disabled{opacity:.35}
.inv-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#100d0a;border:1px solid #3a3128;border-radius:10px;margin-bottom:6px}
.inv-info{flex:1;min-width:0}
.inv-nm{font-size:13.5px;font-weight:600;color:#e8c95a}
.inv-d{font-size:11px;color:#9a8f7d;margin-top:2px;line-height:1.4}
.inv-q{color:#7fb0e0;font-family:Georgia,serif;font-size:12px}
.inv-eq{flex:0 0 auto;min-height:34px;padding:0 12px;border-radius:8px;border:1.5px solid rgba(90,143,191,.4);background:#100d0a;color:#7fb0e0;font-size:12px;font-weight:600}
.dm-status{display:flex;align-items:center;gap:10px;padding:12px 14px;background:linear-gradient(135deg,rgba(168,72,58,.18),rgba(168,72,58,.04));border:1.5px solid rgba(168,72,58,.5);border-radius:12px;margin-bottom:12px}
.dm-dot{width:10px;height:10px;border-radius:50%;background:#e05252;flex-shrink:0}
.dm-dot.ok{background:#7fc98a;box-shadow:0 0 8px rgba(127,201,138,.6)}
.dm-dot.wait{background:#e0a33c;animation:dmPulse 1.2s infinite}
@keyframes dmPulse{0%,100%{opacity:1}50%{opacity:.4}}
.dm-status-text{flex:1;font-size:13px;color:#e8e0d0;font-weight:600}
.dm-status-sub{font-size:11px;color:#9a8f7d;margin-top:2px;font-weight:400}
.room-code{font-size:22px;color:#e8c95a;font-family:Georgia,serif;font-weight:700;letter-spacing:3px;padding:14px;background:#100d0a;border:1.5px dashed #c9a227;border-radius:12px;text-align:center;margin-bottom:12px;user-select:all}
.dm-player-card{padding:12px 14px;background:#100d0a;border:1.5px solid #3a3128;border-radius:12px;margin-bottom:10px}
.dm-player-hd{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.dm-player-av{width:40px;height:40px;border-radius:50%;border:1.5px solid #c9a227;background:linear-gradient(180deg,#2a2218,#171310);display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:16px;font-weight:700;color:#e8c95a;flex-shrink:0}
.dm-player-info{flex:1;min-width:0}
.dm-player-nm{font-size:15px;color:#e8c95a;font-weight:600}
.dm-player-mt{font-size:11.5px;color:#9a8f7d;margin-top:2px}
.dm-player-hp{font-size:13px;color:#9a8f7d;font-family:Georgia,serif;flex-shrink:0;text-align:right}
.dm-hp-bar{height:8px;background:#100d0a;border-radius:4px;overflow:hidden;border:1px solid #3a3128;margin-bottom:10px}
.dm-hp-bar>i{display:block;height:100%;background:linear-gradient(90deg,#5f9e6a,#7fc98a);transition:width .3s}
.dm-hp-bar>i.w{background:linear-gradient(90deg,#c9a227,#e0a33c)}
.dm-hp-bar>i.c{background:linear-gradient(90deg,#a8483a,#e05252)}
.dm-ctrl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:6px}
.dm-ctrl-grid button{min-height:40px;border-radius:8px;border:1.5px solid #3a3128;background:#1c1813;color:#e8e0d0;font-size:12.5px;font-weight:600;padding:0}
.dm-ctrl-grid button.d{color:#e05252;border-color:rgba(168,72,58,.4)}
.dm-ctrl-grid button.h{color:#7fc98a;border-color:rgba(95,158,106,.4)}
.dm-ctrl-grid button.g{color:#e8c95a;border-color:rgba(201,162,39,.4)}
.dm-ctrl-grid button.c{color:#7fb0e0;border-color:rgba(90,143,191,.4)}
.dm-ctrl-2{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:6px}
.dm-ctrl-2 button{min-height:36px;border-radius:8px;border:1.5px solid #3a3128;background:#1c1813;color:#9a8f7d;font-size:11.5px;font-weight:600;padding:0}
.dm-log{max-height:280px;overflow-y:auto;padding:10px 12px;background:#100d0a;border:1px solid #3a3128;border-radius:10px;font-size:12.5px;line-height:1.6}
.dm-log-entry{padding:5px 0;border-bottom:1px dashed rgba(58,49,40,.5);display:flex;gap:8px}
.dm-log-entry:last-child{border-bottom:none}
.dm-log-t{color:#6d6252;font-family:Georgia,serif;font-size:11px;flex-shrink:0}
.dm-log-m{color:#e8e0d0;flex:1;min-width:0;word-break:break-word}
.dm-log-m.dmg{color:#ff8a7a}
.dm-log-m.heal{color:#7fc98a}
.dm-log-m.dice{color:#e8c95a;font-weight:600}
.dm-log-m.info{color:#7fb0e0}
.dm-log-m.sys{color:#6d6252;font-style:italic}
.peer-input{width:100%;min-height:52px;padding:12px 14px;background:#100d0a;border:1.5px solid #3a3128;border-radius:12px;color:#e8c95a;font-size:18px;text-align:center;font-family:Georgia,serif;letter-spacing:3px;text-transform:uppercase}
.peer-input:focus{border-color:#c9a227}
.peer-input::placeholder{text-transform:none;letter-spacing:1px;font-size:14px;color:#6d6252}

/* ============ 战斗系统 ============ */
.combat-toolbar{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.combat-toolbar button{flex:1;min-width:80px;min-height:42px;border-radius:10px;border:1.5px solid #3a3128;background:#100d0a;color:#e8e0d0;font-size:12.5px;font-weight:600;padding:0 12px}
.combat-toolbar button.pri{background:linear-gradient(180deg,#4a3c23,#2b2314);border-color:#c9a227;color:#e8c95a}
.combat-toolbar button.dan{border-color:rgba(168,72,58,.5);color:#e05252}
.combat-toolbar button.suc{border-color:rgba(95,158,106,.5);color:#7fc98a}
.init-list{display:flex;flex-direction:column;gap:6px}
.init-row{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#100d0a;border:1.5px solid #3a3128;border-radius:10px;position:relative}
.init-row.cur{background:linear-gradient(90deg,rgba(201,162,39,.15),rgba(201,162,39,.02));border-color:#c9a227}
.init-row.dead{opacity:.4}
.init-row.hidden{background:rgba(90,143,191,.05);border-style:dashed}
.init-ic{width:38px;height:38px;border-radius:50%;border:1.5px solid #c9a227;background:linear-gradient(180deg,#2a2218,#171310);display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:15px;font-weight:700;color:#e8c95a;flex-shrink:0}
.init-info{flex:1;min-width:0}
.init-nm{font-size:13.5px;font-weight:600;color:#e8e0d0}
.init-row.cur .init-nm{color:#e8c95a}
.init-meta{font-size:11px;color:#9a8f7d;margin-top:2px;font-family:Georgia,serif}
.init-hp-bar{height:5px;background:#1c1813;border-radius:3px;overflow:hidden;border:1px solid #3a3128;margin-top:5px}
.init-hp-bar>i{display:block;height:100%;background:linear-gradient(90deg,#5f9e6a,#7fc98a)}
.init-hp-bar>i.w{background:linear-gradient(90deg,#c9a227,#e0a33c)}
.init-hp-bar>i.c{background:linear-gradient(90deg,#a8483a,#e05252)}
.init-init{font-size:14px;font-weight:700;color:#e8c95a;font-family:Georgia,serif;flex-shrink:0;width:32px;text-align:center}
.init-ctrl{display:flex;gap:4px;flex-shrink:0}
.init-btn{width:30px;height:30px;border-radius:7px;border:1px solid #3a3128;background:#1c1813;color:#9a8f7d;font-size:13px;padding:0}
.init-cond-tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}
.init-cond-tag{font-size:9.5px;padding:1px 6px;border-radius:6px;background:rgba(224,82,82,.15);color:#ff8a7a;border:1px solid rgba(224,82,82,.3)}
.map-wrap{position:relative;width:100%;background:#0a0805;border:1.5px solid #3a3128;border-radius:12px;overflow:hidden;margin-bottom:12px;touch-action:none}
.map-canvas{display:block;width:100%;height:auto;cursor:crosshair}
.map-overlay{position:absolute;top:8px;right:8px;display:flex;gap:4px}
.map-btn{width:34px;height:34px;border-radius:8px;border:1.5px solid #3a3128;background:rgba(28,24,19,.9);color:#9a8f7d;font-size:14px;font-weight:600;padding:0}
.map-btn.on{color:#e8c95a;border-color:rgba(201,162,39,.5);background:linear-gradient(180deg,#3a2f1c,#2b2314)}
.map-info{position:absolute;bottom:8px;left:8px;right:8px;background:rgba(28,24,19,.92);border:1.5px solid #3a3128;border-radius:10px;padding:8px 12px;font-size:12px;color:#e8e0d0;display:none;pointer-events:none}
.map-info.on{display:block}
.map-info-nm{font-weight:600;color:#e8c95a}
.map-info-d{color:#9a8f7d;margin-top:2px;font-family:Georgia,serif}
.unit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:10px}
.unit-input{width:100%;min-height:44px;padding:8px 10px;background:#100d0a;border:1.5px solid #3a3128;border-radius:9px;color:#e8e0d0;font-size:13px}
.unit-input:focus{border-color:#c9a227}
.unit-label{font-size:11px;color:#9a8f7d;margin-bottom:4px}
.party-grid{display:flex;flex-direction:column;gap:6px}
.party-card{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#100d0a;border:1.5px solid #3a3128;border-radius:10px}
.party-card.me{border-color:rgba(201,162,39,.5)}
.party-av{width:36px;height:36px;border-radius:50%;border:1.5px solid #c9a227;background:linear-gradient(180deg,#2a2218,#171310);display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:14px;font-weight:700;color:#e8c95a;flex-shrink:0}
.party-info{flex:1;min-width:0}
.party-nm{font-size:13.5px;font-weight:600;color:#e8c95a}
.party-meta{font-size:11px;color:#9a8f7d;margin-top:2px}
.party-hp{font-size:12px;color:#9a8f7d;font-family:Georgia,serif;flex-shrink:0;text-align:right}
.party-hp-bar{height:5px;background:#1c1813;border-radius:3px;overflow:hidden;border:1px solid #3a3128;margin-top:4px}
.party-hp-bar>i{display:block;height:100%;background:linear-gradient(90deg,#5f9e6a,#7fc98a)}
.party-hp-bar>i.w{background:linear-gradient(90deg,#c9a227,#e0a33c)}
.party-hp-bar>i.c{background:linear-gradient(90deg,#a8483a,#e05252)}
.req-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:8px}
.req-grid button{min-height:44px;border-radius:10px;border:1.5px solid #3a3128;background:#100d0a;color:#e8e0d0;font-size:12.5px;font-weight:600;padding:0}
.req-grid button.heal{color:#7fc98a;border-color:rgba(95,158,106,.4)}
.req-grid button.gold{color:#e8c95a;border-color:rgba(201,162,39,.4)}
.req-grid button.rest{color:#7fb0e0;border-color:rgba(90,143,191,.4)}
.req-grid button.msg{color:#c9a6e0;border-color:rgba(163,122,201,.4)}
.conn-panel{padding:10px 12px;background:#100d0a;border:1px solid #3a3128;border-radius:10px;font-size:12px;color:#9a8f7d}
.conn-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0}
.conn-row b{color:#e8c95a;font-family:Georgia,serif}
.turn-banner{padding:10px 14px;background:linear-gradient(90deg,rgba(201,162,39,.2),rgba(201,162,39,.02));border:1.5px solid #c9a227;border-radius:12px;margin-bottom:10px;text-align:center}
.turn-banner-nm{font-size:16px;color:#e8c95a;font-weight:600;font-family:Georgia,serif}
.turn-banner-sub{font-size:11px;color:#9a8f7d;margin-top:2px}
.aoe-pick{padding:10px 12px;background:rgba(163,122,201,.06);border:1.5px dashed rgba(163,122,201,.4);border-radius:10px;margin-bottom:8px}
.aoe-title{font-size:12.5px;color:#c9a6e0;font-weight:600;margin-bottom:6px}
.aoe-shapes{display:flex;gap:6px}
.aoe-shapes button{flex:1;min-height:36px;border-radius:8px;border:1.5px solid #3a3128;background:#100d0a;color:#9a8f7d;font-size:11.5px;font-weight:600;padding:0}
.aoe-shapes button.on{background:linear-gradient(180deg,rgba(163,122,201,.15),rgba(163,122,201,.05));border-color:rgba(163,122,201,.5);color:#c9a6e0}

/* ============ 语音系统 ============ */
.voice-bar{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom));left:16px;right:16px;z-index:99;display:flex;gap:8px;align-items:center;background:rgba(28,24,19,.98);border:1.5px solid #3a3128;border-radius:14px;padding:8px 12px;box-shadow:0 4px 20px rgba(0,0,0,.5)}
.voice-bar.on{border-color:rgba(95,158,106,.5)}
.voice-bar.err{border-color:rgba(224,82,82,.5)}
.voice-mic{width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(95,158,106,.5);background:linear-gradient(180deg,#2a3a2a,#1c231c);color:#7fc98a;font-size:18px;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}
.voice-mic.muted{background:linear-gradient(180deg,#3a2a2a,#231c1c);border-color:rgba(224,82,82,.5);color:#e05252}
.voice-mic:disabled{opacity:.4}
.voice-info{flex:1;min-width:0}
.voice-nm{font-size:12.5px;color:#e8c95a;font-weight:600}
.voice-sub{font-size:10.5px;color:#9a8f7d;margin-top:2px}
.voice-participants{display:flex;gap:4px;flex-shrink:0}
.voice-pt{width:26px;height:26px;border-radius:50%;border:1.5px solid #3a3128;background:#100d0a;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:11px;font-weight:700;color:#9a8f7d;position:relative}
.voice-pt.speaking{border-color:#7fc98a;color:#7fc98a;box-shadow:0 0 8px rgba(127,201,138,.5)}
.voice-pt::after{content:'';position:absolute;inset:-2px;border-radius:50%;border:2px solid transparent;pointer-events:none}
.voice-pt.speaking::after{border-color:rgba(127,201,138,.4);animation:voicePulse 1s infinite}
@keyframes voicePulse{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.15);opacity:0}}
.voice-ctrl{width:36px;height:36px;border-radius:8px;border:1.5px solid #3a3128;background:#100d0a;color:#9a8f7d;font-size:14px;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}
.voice-ctrl.on{color:#e8c95a;border-color:rgba(201,162,39,.5)}
.voice-join{padding:10px 16px;min-height:48px;border-radius:12px;border:1.5px solid rgba(95,158,106,.5);background:linear-gradient(180deg,#2a3a2a,#1c231c);color:#7fc98a;font-size:13px;font-weight:600}
.voice-join:disabled{opacity:.4}
.voice-join.on{background:linear-gradient(180deg,#3a2a2a,#231c1c);border-color:rgba(224,82,82,.5);color:#e05252}
.voice-test{padding:8px 12px;min-height:40px;border-radius:10px;border:1.5px solid #3a3128;background:#100d0a;color:#9a8f7d;font-size:12px;font-weight:600}
.voice-vol{width:60px;height:6px;background:#100d0a;border-radius:3px;overflow:hidden;border:1px solid #3a3128;flex-shrink:0}
.voice-vol>i{display:block;height:100%;background:linear-gradient(90deg,#5f9e6a,#7fc98a);transition:width .08s}

@media (max-width:380px){
  .voice-bar{padding:6px 8px;gap:6px}
  .voice-mic{width:38px;height:38px;font-size:16px}
  .voice-pt{width:22px;height:22px;font-size:10px}
}


/* ===== Mobile/tabletop UX pass v2 ===== */
:root{--header-gap:14px}
html{background:#14110e;scroll-padding-top:16px}
body{padding-top:env(safe-area-inset-top);overscroll-behavior-y:none}
/* Header participates in layout, so it can never cover page titles/content. */
.hd{position:sticky;top:0;padding:10px 16px 9px;background:rgba(24,20,16,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
main,main.nf{padding-top:var(--header-gap)}
#pgWiz main{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
.he{padding:8px 8px 12px}
.he h2{font-size:28px;line-height:1.2;margin-bottom:8px}
.he p{font-size:12px;letter-spacing:1.4px}
.session-hint{margin:0 0 14px;padding:11px 13px;border:1px solid #3a3128;border-radius:12px;background:#18140f;color:#9a8f7d;font-size:12.5px;line-height:1.55}
.home-actions{gap:9px;margin:0 0 20px}
.home-actions .hbt{justify-content:flex-start;text-align:left;padding:12px 16px;min-height:68px}
.home-actions .hbt>span:last-child{display:flex;flex-direction:column;gap:2px}
.home-actions .hbt b{font-size:15.5px;font-weight:700}
.home-actions .hbt small{font-size:11.5px;font-weight:400;color:#9a8f7d}
.home-actions .hbt.p small{color:#b9a86e}
.home-actions .hbt.dm small{color:#bd817b}
.act-ic{width:30px;text-align:center;font-size:20px;flex-shrink:0}
.clt{margin-top:14px}
.cc,.tb,.ac,.sh,.eb,.spell-item,.sp-cast-item{box-shadow:0 1px 0 rgba(255,255,255,.015)}
.cc{min-height:78px;padding:13px 14px}
button{transition:transform .08s ease,filter .08s ease,border-color .12s ease}
button:active{transform:scale(.985);filter:brightness(1.08)}
.ft{padding-bottom:calc(10px + env(safe-area-inset-bottom));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
/* Give dense play screens a calmer rhythm and larger tap targets. */
.tb{padding:15px;margin-bottom:12px}
.tt{font-size:12px;margin-bottom:11px}
.rsb,.hab,.eab,.ecb,.shop-buy,.inv-eq{min-height:44px}
@media (max-width:380px){
  .hd{padding-left:12px;padding-right:12px}
  main,main.nf{padding-left:12px;padding-right:12px}
  .he h2{font-size:25px}
}


/* ===== V3 · tabletop-first UX ===== */
:root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
body{background:radial-gradient(circle at 50% -10%,#282015 0,#14110e 38%,#0e0c0a 100%)}
.hd{position:sticky!important;top:0!important;padding-top:calc(10px + var(--safe-top))!important;box-shadow:0 8px 24px rgba(0,0,0,.18);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
main,main.nf{padding-top:22px!important;padding-bottom:calc(32px + var(--safe-bottom))!important}
.he{padding:12px 8px 10px}.he h2{font-size:30px;letter-spacing:1px}.he p{letter-spacing:2.2px}
.session-hint{border-style:solid;background:linear-gradient(135deg,rgba(201,162,39,.10),rgba(90,143,191,.05));font-size:13px}
.home-actions{gap:12px}.home-actions .hbt{min-height:78px;justify-content:flex-start;padding:14px 18px}.home-actions .act-ic{width:38px;font-size:24px;text-align:center}.home-actions b{font-size:16px}.home-actions small{display:block;font-size:11.5px;color:#8f8473;margin-top:4px;font-weight:400}
.tabletop-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:14px 0 22px}.flow-step{padding:10px 5px;text-align:center;border:1px solid #342c23;border-radius:11px;background:#15110e}.flow-step b{display:block;color:#c9a227;font-size:12px}.flow-step span{display:block;color:#6f6659;font-size:10px;margin-top:2px}
.quickdock{position:sticky;top:calc(64px + var(--safe-top));z-index:60;display:flex;gap:6px;overflow-x:auto;padding:8px 0 10px;margin:0 0 12px;background:linear-gradient(180deg,#14110e 72%,rgba(20,17,14,0));scrollbar-width:none}.quickdock::-webkit-scrollbar{display:none}.quickdock button{flex:0 0 auto;min-height:38px;padding:0 13px;border:1px solid #443929;border-radius:19px;background:#211b15;color:#c7baa5;font-size:12px}.quickdock button.primary{border-color:#c9a227;color:#e8c95a;background:#2c2415}
.play-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:12px}.play-stat{padding:10px 6px;border:1px solid #3a3128;border-radius:11px;background:#100d0a;text-align:center}.play-stat b{display:block;color:#e8c95a;font-family:Georgia,serif;font-size:19px}.play-stat span{display:block;color:#776d60;font-size:10px;margin-top:2px}
.tb{scroll-margin-top:128px}.turn-banner{box-shadow:0 0 0 1px rgba(201,162,39,.12),0 10px 30px rgba(0,0,0,.2)}
@media(max-width:420px){.he h2{font-size:27px}.quickdock{top:calc(61px + var(--safe-top))}.tabletop-flow{gap:5px}.flow-step{padding:9px 3px}}


/* ===== V4 · guaranteed no-overlap mobile layout =====
   Header and quick actions stay in normal document flow. This deliberately
   avoids fixed/sticky overlays because iOS Safari can report viewport/safe-area
   heights differently when its address/tool bars expand and collapse. */
html{scroll-padding-top:12px!important}
body{padding-top:0!important}
.hd{
  position:relative!important;
  top:auto!important;left:auto!important;right:auto!important;
  z-index:20!important;
  padding:calc(12px + env(safe-area-inset-top,0px)) 16px 11px!important;
  margin:0!important;
}
main,main.nf{
  padding-top:18px!important;
}
.quickdock{
  position:relative!important;
  top:auto!important;
  z-index:10!important;
}
.tb{scroll-margin-top:12px!important}
/* Home title gets an explicit breathing gap below the header. */
#pgHome main.nf{padding-top:26px!important}
#pgHome .he{padding-top:0!important;margin-top:0!important}
/* Wizard footer remains fixed; reserve enough room so it cannot cover fields. */
#pgWiz main{padding-bottom:calc(118px + env(safe-area-inset-bottom,0px))!important}


/* V6: exploration/combat session modes */
.session-mode{border:1.5px solid #3a3128;border-radius:14px;padding:13px 14px;margin-bottom:12px;background:#17130f;display:flex;align-items:center;gap:12px}
.session-mode .mode-icon{font-size:24px;line-height:1}.session-mode .mode-copy{flex:1;min-width:0}.session-mode .mode-title{font-size:15px;font-weight:700;color:#e8c95a}.session-mode .mode-sub{font-size:11.5px;color:#9a8f7d;margin-top:2px;line-height:1.45}
.session-mode.combat{border-color:rgba(224,82,82,.5);background:linear-gradient(135deg,rgba(224,82,82,.13),rgba(28,24,19,.9))}.session-mode.combat .mode-title{color:#ff8a7a}
.combat-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0 14px}.combat-actions button{min-height:48px;border-radius:11px;border:1.5px solid #3a3128;background:#100d0a;color:#e8e0d0;font-size:12.5px;font-weight:650}.combat-actions button.hot{border-color:#c9a227;color:#e8c95a;background:linear-gradient(180deg,#342b1b,#211b12)}
.turn-banner{position:relative;overflow:hidden}.turn-banner.myturn{border-color:#c9a227;box-shadow:0 0 0 1px rgba(201,162,39,.18) inset}.turn-order-mini{display:flex;gap:6px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}.turn-order-mini::-webkit-scrollbar{display:none}.turn-chip{flex:0 0 auto;padding:6px 9px;border:1px solid #3a3128;border-radius:999px;background:#100d0a;color:#9a8f7d;font-size:11px}.turn-chip.cur{border-color:#c9a227;color:#e8c95a}.turn-chip.me{border-color:rgba(90,143,191,.5);color:#7fb0e0}


/* V7: tabletop turn economy */
.turn-economy{border:1.5px solid rgba(201,162,39,.35);border-radius:14px;background:linear-gradient(180deg,#1b1711,#14110e);padding:12px;margin:10px 0 14px}
.turn-economy.offturn{opacity:.68;border-color:#3a3128}.turn-economy-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px}.turn-economy-title b{color:#e8c95a;font-size:14px}.turn-economy-title span{font-size:11px;color:#9a8f7d}
.turn-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.turn-slot{min-height:48px;border:1.5px solid rgba(95,158,106,.38);border-radius:10px;background:rgba(95,158,106,.06);color:#7fc98a;font-size:11.5px;font-weight:650;padding:5px}.turn-slot.used{border-color:#3a3128;background:#100d0a;color:#5b5245;text-decoration:line-through}.turn-move{display:flex;align-items:center;gap:6px;margin-top:7px}.turn-move b{flex:1;font-size:12px;color:#7fb0e0}.turn-move button,.end-turn-btn{min-height:38px;border-radius:9px;border:1.5px solid #3a3128;background:#100d0a;color:#e8e0d0;font-size:12px;padding:0 10px}.end-turn-btn{width:100%;margin-top:8px;border-color:#c9a227;color:#e8c95a;background:linear-gradient(180deg,#342b1b,#211b12);font-weight:700}.end-turn-btn:disabled,.turn-move button:disabled{opacity:.35}
@media(max-width:380px){.turn-slots{grid-template-columns:1fr}.turn-slot{min-height:40px}}


/* V11 DIRECT TABLE */
.v11-shell{max-width:760px;margin:0 auto}.v11-top{display:flex;gap:8px;margin-bottom:10px}.v11-top button{flex:1;min-height:52px;border:1.5px solid #3a3128;border-radius:14px;background:#15110d;color:#8f8474;font-size:15px;font-weight:800}.v11-top .on.explore{border-color:#7fb0e0;color:#a9d3f5;background:rgba(90,143,191,.12)}.v11-top .on.combat{border-color:#e05252;color:#ff9a8a;background:rgba(224,82,82,.11)}
.v11-head{display:flex;align-items:center;gap:10px;margin-bottom:9px}.v11-scene{flex:1;min-width:0}.v11-scene b{display:block;color:#e8c95a;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v11-scene small{display:block;color:#807566;font-size:11px;margin-top:2px}.v11-round{flex:0 0 auto;border:1px solid #4a3d29;border-radius:10px;padding:7px 10px;text-align:center;color:#e8c95a;font-family:Georgia,serif}.v11-round small{display:block;font-family:inherit;color:#807566;font-size:9px}
.v11-map{border:1px solid #3a3128;border-radius:16px;overflow:hidden;background:#0a0805;box-shadow:0 8px 28px rgba(0,0,0,.22)}.v11-map .map-wrap{border:0;border-radius:0;margin:0}.v11-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px;background:#15110d;border-top:1px solid #302820}.v11-tools button{min-height:42px;border-radius:10px;border:1px solid #3a3128;background:#100d0a;color:#aaa090;font-size:12px;font-weight:700}.v11-tools button.on{border-color:#c9a227;color:#e8c95a;background:rgba(201,162,39,.1)}
.v11-mainact{display:grid;grid-template-columns:1fr 1.25fr;gap:8px;margin:10px 0}.v11-mainact button{min-height:54px;border-radius:13px;border:1.5px solid #4a3d29;background:#1c1813;color:#e8e0d0;font-size:14px;font-weight:800}.v11-mainact .go{border-color:#c9a227;color:#e8c95a;background:linear-gradient(180deg,#4a3c23,#2b2314)}.v11-mainact .red{border-color:#a8483a;color:#ff8a7a;background:rgba(168,72,58,.12)}
.v11-turn{padding:11px 12px;border-radius:13px;background:rgba(201,162,39,.08);border:1px solid rgba(201,162,39,.35);margin:10px 0;display:flex;align-items:center;gap:9px}.v11-turn .who{flex:1}.v11-turn .who small{display:block;color:#8f8474;font-size:10px}.v11-turn .who b{display:block;color:#e8c95a;font-size:15px}.v11-turn button{min-height:38px;padding:0 12px;border-radius:9px;border:1px solid #4a3d29;background:#100d0a;color:#e8e0d0;font-weight:700}.v11-turn .next{border-color:#c9a227;color:#e8c95a}
.v11-drawer{margin-top:10px}.v11-drawer details{background:#17130f;border:1px solid #332b23;border-radius:12px;margin-bottom:7px;overflow:hidden}.v11-drawer summary{list-style:none;padding:12px 14px;color:#c9a227;font-size:13px;font-weight:700;cursor:pointer}.v11-drawer summary::-webkit-details-marker{display:none}.v11-drawer .inside{padding:0 10px 10px}.v11-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.v11-quick button{min-height:42px;border-radius:9px;border:1px solid #3a3128;background:#100d0a;color:#aaa090;font-size:12px}.v11-terrain{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.v11-terrain button{min-height:40px;border-radius:9px;border:1px solid #3a3128;background:#100d0a;color:#aaa090;font-size:12px}.v11-selected{margin:9px 0;padding:10px;border:1px solid rgba(127,176,224,.35);border-radius:12px;background:rgba(90,143,191,.07)}.v11-selected .row{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.v11-selected button{min-height:36px;padding:0 10px;border-radius:8px;border:1px solid #3a3128;background:#100d0a;color:#aaa090;font-size:11px}.v11-selected button.d{color:#e05252;border-color:rgba(224,82,82,.35)}
@media(max-width:430px){.v11-tools{grid-template-columns:repeat(4,1fr)}.v11-tools button{font-size:11px;padding:0 3px}.v11-quick{grid-template-columns:repeat(2,1fr)}}


/* ==================== V12 · clearer mobile top + player route planning ==================== */
/* Extra breathing room for iPhone browser chrome. Important content never begins flush to the top. */
#pgDM main.nf,#pgMap main.nf,#pgTrk main.nf{padding-top:34px!important}
#pgHome main.nf{padding-top:34px!important}
.hd{min-height:62px!important;padding-top:calc(16px + env(safe-area-inset-top,0px))!important;padding-bottom:13px!important}
@media(max-width:430px){#pgDM main.nf,#pgMap main.nf,#pgTrk main.nf,#pgHome main.nf{padding-top:40px!important}.hd{min-height:66px!important}}
.v12-playerbar{display:grid;grid-template-columns:1.25fr .8fr .8fr;gap:7px;padding:8px;background:#15110d;border-top:1px solid #302820}
.v12-playerbar button{min-height:44px;border:1px solid #3a3128;border-radius:10px;background:#100d0a;color:#aaa090;font-weight:750;font-size:12px}
.v12-playerbar button.on{border-color:#7fb0e0;color:#b8dcfa;background:rgba(90,143,191,.13)}
.v12-playerbar button.go{border-color:#c9a227;color:#e8c95a;background:rgba(201,162,39,.1)}
.v12-routebox{margin:10px 0;padding:11px 12px;border:1px solid rgba(127,176,224,.35);border-radius:12px;background:rgba(90,143,191,.07);font-size:12px;color:#9fb4c8;line-height:1.55}
.v12-routebox b{color:#b8dcfa}.v12-routebox.bad{border-color:rgba(224,82,82,.4);color:#d7a19a}.v12-routebox.bad b{color:#ff9a8a}
.v12-map-hint{font-size:10.5px;color:#776d60;text-align:center;padding:7px 10px 0}


/* V17 · 2024 tracker */
.rules24-dash{margin:12px 0 14px;padding:12px;border:1px solid #4a3d2c;border-radius:14px;background:linear-gradient(180deg,#17110c,#100d0a)}
.rules24-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px;font-size:12px;color:#9a8f7d}.rules24-head b{font:700 14px Georgia,serif;color:#e8c95a}.rules24-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.rules24-grid button,.rest24-grid button{border:1px solid #3a3128;background:#1a1510;color:#e7dfd3;border-radius:10px;padding:10px;text-align:left;min-height:58px}.rules24-grid b,.rest24-grid b{display:block;font-size:13px;color:#f0e6d5;margin-bottom:4px}.rules24-grid span,.rest24-grid span{font-size:10.5px;color:#8f8373;line-height:1.3}.rule-note{font-size:11.5px;color:#9a8f7d;line-height:1.55;padding:8px 10px;margin:0 0 10px;background:#100d0a;border:1px solid #302820;border-radius:8px}.rest24-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}

/* ===== V18 2024 升级向导 ===== */
.lu18-back{position:fixed;inset:0;z-index:950;background:rgba(8,7,6,.86);backdrop-filter:blur(8px);display:none;overflow:auto;padding:max(22px,env(safe-area-inset-top)) 12px max(30px,env(safe-area-inset-bottom))}
.lu18-back.on{display:block}.lu18{max-width:620px;margin:0 auto;background:#171411;border:1px solid #4b4033;border-radius:18px;box-shadow:0 24px 80px #000;overflow:hidden}
.lu18-head{position:sticky;top:0;z-index:3;background:rgba(23,20,17,.97);border-bottom:1px solid #3a3128;padding:15px 16px}.lu18-title{font:700 20px Georgia,serif;color:#ead071}.lu18-sub{font-size:12px;color:#9a8f7d;margin-top:3px}
.lu18-body{padding:14px}.lu18-card{background:#201b17;border:1px solid #3a3128;border-radius:13px;padding:13px;margin-bottom:10px}.lu18-card h3{font-size:14px;color:#e7c85b;margin:0 0 8px}.lu18-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.lu18-kv{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:5px 0;border-bottom:1px dashed #342d26}.lu18-kv:last-child{border:0}.lu18-kv span{color:#9a8f7d}.lu18-kv b{color:#eee3cf;text-align:right}
.lu18-btn{border:1px solid #574a3a;background:#29231d;color:#d8cdb9;border-radius:9px;padding:9px 11px;font-size:12px}.lu18-btn.on,.lu18-btn.pri{background:#80681e;border-color:#c9a227;color:#fff4c7}.lu18-btn.dan{border-color:#7c3d3d;color:#efaaaa}.lu18-input,.lu18-select{background:#100e0c;color:#eee3cf;border:1px solid #4a4034;border-radius:9px;padding:9px 10px;font-size:13px;min-width:0}.lu18-input{flex:1}.lu18-note{font-size:11.5px;line-height:1.55;color:#9a8f7d;margin-top:7px}.lu18-warn{color:#e3a45c}.lu18-good{color:#82c99a}.lu18-foot{position:sticky;bottom:0;background:rgba(23,20,17,.97);border-top:1px solid #3a3128;padding:12px 14px;display:flex;gap:9px}.lu18-foot button{flex:1}.lu18-check{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:#d8cdb9;padding:5px 0}.lu18-check input{margin-top:2px}.lu18-pill{font-size:11px;border:1px solid #514531;border-radius:999px;padding:3px 7px;color:#cdbd9f}.lu18-summary{background:rgba(201,162,39,.08);border-color:rgba(201,162,39,.42)}

