/* 零钱俱乐部 SAVR CLUB · 像素版网页骨架
   换色：只改下面 10 个颜色，其余自动计算 */
:root{
  --ink:#33282E; --panel:#FFF9F0; --bg:#F2E7D8; --lo:#E5D3BB; --dark:#2C4F50;
  --mut:#86705F; --accent:#F0A55A; --good:#7FA88B; --warn:#E26A5E; --blue:#7FA3BF;
  --sky1:color-mix(in srgb,var(--blue) 48%,var(--bg));
  --sky2:color-mix(in srgb,var(--blue) 32%,var(--bg));
  --sky3:color-mix(in srgb,var(--good) 20%,var(--bg));
  --sky4:color-mix(in srgb,var(--accent) 18%,var(--bg));
  --hill:color-mix(in srgb,var(--good) 60%,#fff);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0}
body{font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;color:var(--ink);
  background:var(--bg);background-image:radial-gradient(color-mix(in srgb,var(--lo) 80%,transparent) 1.5px,transparent 1.5px);background-size:24px 24px}
#app{max-width:430px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative;padding-bottom:118px;
  box-shadow:0 0 0 3px var(--ink)}
svg.spr{display:block;shape-rendering:crispEdges}
.topbar{background:var(--dark);border-bottom:3px solid var(--accent);height:56px;display:flex;align-items:center;gap:10px;padding:0 14px;position:sticky;top:0;z-index:20}
.topbar .t{flex:1;line-height:1.1}.topbar b{color:var(--panel);font-size:16px;font-weight:800}.topbar small{display:block;color:var(--accent);font-size:9.5px;letter-spacing:.22em;font-weight:800;margin-top:3px}
.btn{font:inherit;font-weight:800;font-size:14px;color:var(--ink);background:var(--accent);border:3px solid var(--ink);padding:9px 14px;cursor:pointer;
  box-shadow:0 4px 0 var(--ink);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.1}
.btn:active{transform:translateY(4px);box-shadow:none}.btn.sec{background:var(--lo)}.btn.sm{padding:5px 10px;font-size:12px;box-shadow:0 3px 0 var(--ink)}
.btn.block{display:flex;width:100%}.btn.lg{padding:14px;font-size:16px}
.hero{height:132px;position:relative;overflow:hidden;background:linear-gradient(var(--sky1) 0 25%,var(--sky2) 25% 50%,var(--sky3) 50% 75%,var(--sky4) 75%)}
.hero .ground{position:absolute;left:0;right:0;bottom:0;height:28px;background:var(--good);border-top:6px solid var(--hill)}
.hero .sun{position:absolute;right:30px;top:12px}.hero .cast{position:absolute;left:0;right:0;bottom:22px;display:flex;align-items:flex-end;justify-content:flex-end;gap:2px;padding-right:12px}
.sign{position:absolute;left:16px;bottom:16px}.sign .b{background:#9A6A4C;border:3px solid var(--ink);color:#FFF9F0;font-weight:800;font-size:14px;padding:8px 12px;box-shadow:inset 0 3px 0 rgba(255,255,255,.2)}
.sign .p{width:8px;height:26px;background:#69442F;margin:0 auto}
.pad{padding:22px 16px 0}
.pw{position:relative;margin:0 0 30px;filter:drop-shadow(3px 4px 0 rgba(0,0,0,.22))}
.pw>.o{background:var(--ink);clip-path:polygon(0 3px,3px 3px,3px 0,calc(100% - 3px) 0,calc(100% - 3px) 3px,100% 3px,100% calc(100% - 3px),calc(100% - 3px) calc(100% - 3px),calc(100% - 3px) 100%,3px 100%,3px calc(100% - 3px),0 calc(100% - 3px))}
.pw .i{margin:3px;background:var(--panel);padding:18px 14px 14px;box-shadow:inset 0 3px 0 #fff,inset 3px 0 0 #fff,inset 0 -3px 0 var(--lo),inset -3px 0 0 var(--lo);
  clip-path:polygon(0 3px,3px 3px,3px 0,calc(100% - 3px) 0,calc(100% - 3px) 3px,100% 3px,100% calc(100% - 3px),calc(100% - 3px) calc(100% - 3px),calc(100% - 3px) 100%,3px 100%,3px calc(100% - 3px),0 calc(100% - 3px))}
.pw.dash{filter:none}.pw.dash .o{display:none}.pw.dash .i{margin:0;background:var(--bg);border:3px dashed var(--mut);clip-path:none;box-shadow:none}
.pw .ttl{position:absolute;left:14px;top:-14px;background:var(--dark);border:3px solid var(--ink);color:var(--accent);font-weight:800;font-size:13px;padding:3px 12px 3px 26px;z-index:2}
.pw .ttl:before{content:"";position:absolute;left:8px;top:8px;width:7px;height:7px;background:var(--accent)}
.pw .rt{position:absolute;right:14px;top:-12px;background:var(--panel);border:3px solid var(--ink);font-size:11px;font-weight:700;padding:2px 8px;z-index:2}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;padding:3px 9px 3px 7px;border:2px solid var(--ink);white-space:nowrap}
.chip.real{background:var(--accent);color:var(--ink)}.chip.infer{border:2px dashed var(--mut);color:var(--mut);background:transparent}
.row{display:flex;align-items:center;gap:10px}.sp{flex:1}.mut{color:var(--mut)}.b{font-weight:800}
.big{font-size:21px;font-weight:800}.sm{font-size:12px}.xs{font-size:11px}
.bar{display:flex;gap:2px;border:3px solid var(--ink);background:var(--ink);padding:0}.bar i{flex:1;height:14px;background:var(--lo)}.bar i.on{background:var(--c,var(--accent));box-shadow:inset 0 4px 0 rgba(255,255,255,.35)}
.vault{display:grid;grid-template-columns:repeat(15,1fr);gap:2px;margin-top:12px}.vault i{aspect-ratio:1;border:2px solid var(--ink);background:var(--lo);display:flex;align-items:center;justify-content:center;overflow:hidden}
.vault i.u{background:var(--good);box-shadow:inset 0 4px 0 rgba(255,255,255,.25)}.vault i svg{width:100%;height:100%}
.li{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:3px dotted var(--lo)}.li:last-child{border:0}
.ic{width:42px;height:42px;border:3px solid var(--ink);background:var(--lo);display:flex;align-items:center;justify-content:center;flex:none}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:30px}
.card{background:var(--panel);border:3px solid var(--ink);box-shadow:3px 4px 0 rgba(0,0,0,.22),inset 0 3px 0 #fff;padding:12px 6px;text-align:center;cursor:pointer;position:relative}
.card .n{font-weight:800;font-size:13px;margin-top:8px}.card .s{font-size:10.5px;color:var(--mut);font-weight:700;margin-top:3px}.card .dot{position:absolute;right:6px;top:6px;width:12px;height:12px;background:var(--warn);border:2px solid var(--ink)}
.hotbar{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:430px;background:var(--dark);border-top:3px solid var(--accent);display:flex;gap:10px;padding:14px 14px 12px;z-index:30}
.hotbar a{flex:1;text-decoration:none;color:var(--ink);background:var(--panel);border:3px solid var(--ink);box-shadow:0 4px 0 rgba(0,0,0,.5);padding:8px 0 6px;text-align:center;font-size:11px;font-weight:700;margin-top:6px}
.hotbar a svg{margin:0 auto 4px}.hotbar a.on{border-color:var(--accent);margin-top:0;padding-bottom:12px;font-weight:800;box-shadow:0 4px 0 rgba(0,0,0,.5),inset 0 0 0 2px var(--ink)}
.vote{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:6px}
.vbox{cursor:pointer;text-align:center}.vbox .fl{border:3px solid var(--ink);color:#fff;font-weight:800;font-size:13px;padding:6px 2px;background:var(--c)}
.vbox .bx{margin-top:8px;height:128px;border:3px solid var(--ink);background:#9A6A4C;position:relative;overflow:hidden;box-shadow:inset 0 4px 0 rgba(255,255,255,.2)}
.vbox .bx:before{content:"";position:absolute;left:24%;right:24%;top:10px;height:8px;background:var(--ink)}
.vbox .bx .coins{position:absolute;left:0;right:0;bottom:6px;display:flex;flex-direction:column-reverse;align-items:center;gap:-6px}
.vbox .bx .coins svg{margin-top:-6px}
.vbox.me .fl{outline:4px solid var(--accent);outline-offset:2px}.vbox .v{font-size:20px;font-weight:800;margin-top:6px}.vbox .pc{font-size:11px;color:var(--mut);font-weight:700}
.ccell{display:grid;grid-template-columns:repeat(24,1fr);gap:2px}.ccell i{height:30px;border:2px solid var(--ink);background:var(--lo)}.ccell i.on{background:var(--accent);box-shadow:inset 0 4px 0 rgba(255,255,255,.35)}
.bubble{background:var(--lo);border:3px solid var(--ink);padding:8px 10px;flex:1;position:relative}.bubble:before{content:"";position:absolute;left:-9px;top:14px;border:6px solid transparent;border-right:6px solid var(--ink);border-left:0}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:50;display:flex;align-items:flex-end;justify-content:center}
.modal .sheet{width:100%;max-width:430px;background:var(--panel);border:3px solid var(--ink);border-bottom:0;padding:20px 16px 26px}
label{display:block;font-size:11.5px;font-weight:700;color:var(--mut);margin:12px 0 5px}
input,select,textarea{width:100%;font:inherit;font-size:15px;font-weight:700;color:var(--ink);background:#fff;border:3px solid var(--ink);padding:9px 10px;border-radius:0;outline:none}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px var(--accent)}
.toast{position:fixed;left:50%;bottom:130px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;font-weight:700;font-size:13px;z-index:60;border:3px solid var(--accent);max-width:360px;text-align:center}
.seg{display:flex;gap:8px;flex-wrap:wrap}.seg button{font:inherit;font-weight:800;font-size:13px;padding:6px 12px;border:3px solid var(--ink);background:var(--lo);cursor:pointer;color:var(--ink)}.seg button.on{background:var(--accent)}
.map{position:relative;height:330px}.node{position:absolute;width:44px;height:44px;margin:-22px 0 0 -22px;border:3px solid var(--ink);display:flex;align-items:center;justify-content:center;background:var(--lo);box-shadow:3px 4px 0 rgba(0,0,0,.22)}
.node.done{background:var(--good)}.node.today{background:var(--accent)}.node.goal{background:#9A6A4C}.nl{position:absolute;margin:28px 0 0 -20px;width:40px;text-align:center;font-size:12px;font-weight:700;background:var(--panel)}
.podium{display:flex;align-items:flex-end;justify-content:center;gap:6px;height:220px}.podium .pc{text-align:center;width:30%}.podium .blk{border:3px solid var(--ink);display:flex;justify-content:center;padding-top:8px;box-shadow:inset 0 4px 0 rgba(255,255,255,.35)}
.note{font-size:11px;color:var(--mut);font-weight:700;line-height:1.6}
.empty{text-align:center;padding:16px 0}
