*{box-sizing:border-box}body{margin:0;background:#f5f1ea;color:#2c241d;font-family:"Microsoft YaHei","PingFang SC",sans-serif}.app{min-height:100dvh;padding:14px 14px 84px}button,.linkBtn{min-height:42px;border:0;border-radius:8px;background:#bd3f2d;color:#fff;font-weight:800;padding:0 14px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}button:active{transform:translateY(1px)}button.danger{background:#6f2720}button.plain{background:#eee3d6;color:#473a30}.hero{display:grid;grid-template-columns:1fr 70px;gap:14px;align-items:center;margin-bottom:14px;padding:22px 18px;border-radius:10px;background:linear-gradient(135deg,#3a2a21,#7d2f25 58%,#bd3f2d);color:#fff7ed;box-shadow:0 12px 28px rgba(96,54,35,.18)}.hero h1{margin:6px 0;font-size:30px;letter-spacing:0}.hero p{margin:0;color:#f3d8c7;line-height:1.6}.eyebrow{font-size:12px;color:#ffd98f;font-weight:900}.heroMark{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#fff7ed;color:#bd3f2d;font-size:30px;font-weight:900}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:9;display:grid;grid-template-columns:repeat(5,1fr);padding:8px 6px max(8px,env(safe-area-inset-bottom));background:#fffaf4;border-top:1px solid #eadfd2}.tab{min-height:46px;background:transparent;color:#7f6d5b}.tab.active{background:#f1dfd3;color:#bd3f2d}.section{margin:20px 0 0}.section h2,.result h2{margin:0 0 10px;font-size:19px}.card,.panel{margin-top:10px;padding:15px;border:1px solid #eadfd2;border-radius:8px;background:#fffaf4;box-shadow:0 8px 20px rgba(95,63,38,.07)}.item b{font-size:16px}.item p,.merchantCard p,.tool p,.hint{color:#766858;line-height:1.55}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.row.small{font-size:12px;color:#8c7b68}.price{color:#bd3f2d;font-weight:900}.toolbar,.actions{display:flex;flex-wrap:wrap;gap:8px}.toolbar{margin:12px 0}.toolbar button{flex:1 1 42%;background:#fffaf4;color:#473a30;border:1px solid #eadfd2}.merchantGrid,.toolGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.merchantCard{text-align:left}.avatar,.fakeQr{width:46px;height:46px;border-radius:9px;display:grid;place-items:center;background:#f1dfd3;color:#bd3f2d;font-weight:900}.fakeQr{width:116px;height:116px;margin:auto;font-size:28px}.filters,.form{display:grid;gap:10px}.filters{grid-template-columns:1fr 1fr auto}.form label{display:grid;gap:6px;color:#665747;font-size:13px}.check{display:flex!important;grid-template-columns:none!important;gap:8px;align-items:center}input,select,textarea{width:100%;border:1px solid #dcccbc;border-radius:8px;background:#fff;padding:11px;color:#2c241d;font-size:15px}textarea{min-height:88px;resize:vertical}.hiddenBox{margin:12px 0;padding:14px;border-radius:8px;background:#f3eadf;color:#3b3027;line-height:1.65}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stats div{padding:13px;border:1px solid #eadfd2;border-radius:8px;background:#fffaf4}.stats b{display:block;font-size:22px;color:#bd3f2d}.stats span{color:#766858;font-size:12px}.notice{position:sticky;top:8px;z-index:8;margin-bottom:10px;padding:12px;border-radius:8px;font-weight:800}.notice.good{background:#e9f4df;color:#3c6c28}.notice.bad{background:#fae0dc;color:#8d2f24}.ticker{display:grid;gap:8px}.ticker span{padding:10px;border-radius:8px;background:#fffaf4;border:1px solid #eadfd2}.empty{padding:24px 10px;text-align:center;color:#8c7b68}.account strong{font-size:26px;color:#bd3f2d}.result pre{white-space:pre-wrap;line-height:1.7;background:#f3eadf;border-radius:8px;padding:12px}.upload canvas{display:block;margin:12px auto;border-radius:8px;background:#eee3d6}.hidden{display:none}.skeleton{animation:pulse 1.2s ease-in-out infinite alternate;background:#eadfd2}.skeleton.hero{height:130px}.skeleton.line{height:18px;border-radius:9px;margin:12px}.skeleton.short{width:60%}@keyframes pulse{to{opacity:.45}}@media(max-width:520px){.filters{grid-template-columns:1fr}.merchantGrid,.toolGrid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr}.heroMark{display:none}}
