:root{--ink:#1d2433;--muted:#667085;--line:#e4e7ec;--surface:#fff;--page:#f4f5f7;--accent:#2554c7;--ok:#067647;--ok-bg:#ecfdf3;--warn:#b54708;--warn-bg:#fffaeb;--bad:#b42318;--bad-bg:#fef3f2;--wxpay:#07a15c;--alipay:#1677ff}*{box-sizing:border-box}body{background:var(--page);color:var(--ink);margin:0;font:14px/1.6 system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif}h1{margin:0 0 16px;font-size:20px}h2{margin:24px 0 10px;font-size:15px}a{color:var(--accent);text-decoration:none}.cashier{max-width:400px;margin:0 auto;padding:24px 16px 40px}.cashier-card{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:12px;overflow:hidden}.cashier-head{color:#fff;padding:12px;font-weight:600}.cashier-head.wxpay{background:var(--wxpay)}.cashier-head.alipay{background:var(--alipay)}.cashier-head.neutral{background:var(--ink)}.cashier-body{padding:20px}.amount-label{color:var(--muted)}.amount{font-variant-numeric:tabular-nums;font-size:40px;font-weight:700;line-height:1.2}.amount-note{color:var(--warn);margin:4px 0 16px;font-weight:600}.qr{border:1px solid var(--line);border-radius:8px;width:100%;max-width:260px;margin:0 auto 12px;display:block}.countdown{font-variant-numeric:tabular-nums;font-size:16px}.countdown.low{color:var(--bad);font-weight:600}.hint{color:var(--muted);margin:8px 0 0;font-size:13px}.result-title{margin:8px 0;font-size:20px;font-weight:600}.reference{color:var(--muted);margin-top:16px;font-size:12px}.notice{text-align:left;border-radius:8px;margin-bottom:14px;padding:10px 12px}.notice.warn{background:var(--warn-bg);color:var(--warn)}.notice.bad{background:var(--bad-bg);color:var(--bad)}.notice.ok{background:var(--ok-bg);color:var(--ok)}.admin-shell{min-height:100vh;display:flex}.admin-nav{background:var(--ink);flex-direction:column;flex:none;gap:2px;width:160px;padding:16px 8px;display:flex}.admin-brand{color:#fff;padding:0 10px 12px;font-weight:700}.admin-nav a,.admin-nav button{color:#cbd2e0;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 10px;display:block}.admin-nav a:hover,.admin-nav button:hover{color:#fff}.admin-nav a.router-link-exact-active{color:#fff;background:#ffffff24}.admin-nav button{margin-top:auto}.admin-main{flex:1;min-width:0;padding:24px}.stats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px 14px}.stat-label{color:var(--muted);font-size:12px}.stat-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.stat-value.bad{color:var(--bad)}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow-x:auto}table{border-collapse:collapse;white-space:nowrap;width:100%}td,th{text-align:left;border-bottom:1px solid var(--line);padding:8px 12px}th{color:var(--muted);font-size:12px;font-weight:500}tr:last-child td{border-bottom:0}td.num{font-variant-numeric:tabular-nums}td.wrap{white-space:normal;min-width:200px}.empty{text-align:center;color:var(--muted);padding:24px}.mono{font-family:ui-monospace,Consolas,monospace}.badge,.mono{font-size:12px}.badge{background:var(--page);color:var(--muted);border-radius:999px;padding:1px 8px;display:inline-block}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.actions{gap:6px;display:flex}input,select{padding:6px 10px}.btn,input,select{border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;border-radius:6px}.btn{cursor:pointer;padding:6px 12px}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn:disabled{opacity:.5;cursor:default}.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:16px;padding:14px}.error{color:var(--bad)}.login{background:var(--surface);border:1px solid var(--line);border-radius:12px;max-width:320px;margin:15vh auto 0;padding:24px}.login input{width:100%;margin-bottom:12px}.login .btn{width:100%}.bind-panel{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.bind-panel p{margin:0 0 8px}.bind-qr{flex:none;width:200px}.bind-qr svg{width:100%;height:auto;display:block}.code-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.code-card{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:8px;padding:10px}.code-card img{aspect-ratio:1;-o-object-fit:contain;object-fit:contain;width:100%}@media (width<=640px){.admin-shell{flex-direction:column}.admin-nav{flex-flow:wrap;width:auto}.admin-nav a,.admin-nav button{width:auto;margin:0}.admin-brand{width:100%;padding-bottom:4px}.admin-main{padding:16px}}
