:root,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f7fb;--surface:#fff;--surface-2:#f7f9fc;--surface-hover:#f3f6fa;--border:#e0e6f0;--border-strong:#d3dce9;--divider:#e7ebf2;--text:#15223a;--text-2:#526077;--text-3:#738198;--text-4:#a7b0bf;--brand:#124427;--brand-hover:#1b5f38;--brand-soft:#ecf4e0;--on-brand:#fff;--success:#249b72;--success-soft:#e6f7f1;--warning:#c77a10;--warning-soft:#fff4df;--danger:#d94750;--danger-soft:#fff0f1;--info-bg:#e0f5f2;--info-fg:#0e9c8c;--purple:#765cf4;--shadow:0 12px 36px #2a3c601f;--radius-sm:10px;--radius-md:14px;--radius-lg:18px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#080b12;--surface:#0e131d;--surface-2:#111722;--surface-hover:#151c28;--border:#222b3d;--border-strong:#2b354b;--divider:#1d2535;--text:#e8edf7;--text-2:#aeb9ca;--text-3:#7f8ca2;--text-4:#566277;--brand:#6fd296;--brand-hover:#8ce0ae;--brand-soft:#6fd29626;--on-brand:#06170e;--success:#52d1a6;--success-soft:#23b8841f;--warning:#ffc05d;--warning-soft:#e79b2d1f;--danger:#ff7078;--danger-soft:#e645501f;--info-bg:#47d4c224;--info-fg:#6fe0d2;--purple:#765cf4;--shadow:0 20px 50px #0006}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif;font-size:15px;line-height:1.6}button{font:inherit}svg.ic{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15em;flex:none;width:1em;height:1em}.ic-sprite{width:0;height:0;position:absolute;overflow:hidden}.app{background:var(--surface);max-width:430px;height:100dvh;box-shadow:var(--shadow);flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden}.topbar{height:calc(56px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 16px 0;background:var(--surface);border-bottom:1px solid var(--divider);z-index:10;flex:none;align-items:center;gap:10px;display:flex;position:relative}.topbar .logo{height:18px;display:block}.topbar .t{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:8px;min-width:0;font-size:16px;font-weight:700;display:flex;overflow:hidden}.topbar .t .sub{color:var(--text-3);flex:none;font-size:12px;font-weight:500}.icon-btn{width:36px;height:36px;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;font-size:18px;display:inline-flex;position:relative}.icon-btn:after{content:"";position:absolute;inset:-4px}.icon-btn:hover{background:var(--surface-hover)}.back{width:36px;height:36px;margin-left:-8px}.avatar{background:var(--brand-soft);width:30px;height:30px;color:var(--brand);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.avatar.fin{background:var(--info-bg);color:var(--info-fg)}.avatar.adm{background:var(--text);color:var(--surface)}.role-btn{border:1px solid var(--border);background:var(--surface);height:36px;color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 10px 0 4px;font-size:13px;font-weight:650;display:inline-flex;position:relative}.role-btn.plain{padding:0 12px}.role-btn:after{content:"";border-radius:999px;position:absolute;inset:-4px}.role-btn svg.ic{color:var(--text-3);font-size:12px}.content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;padding:16px;overflow-y:auto}.content.nopad{padding:0}.tabbar{height:calc(62px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--divider);flex:none;display:flex}.tab-group{flex:1;display:flex}.tabbar button{cursor:pointer;color:var(--text-3);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex}.tabbar button svg.ic{font-size:21px}.tabbar button.on{color:var(--brand)}.scrim{z-index:90;opacity:0;pointer-events:none;background:#0006;transition:opacity .2s;position:fixed;inset:0}.scrim.show{opacity:1;pointer-events:auto}.sheet{z-index:95;background:var(--surface);width:100%;max-width:430px;padding:8px 16px calc(20px + env(safe-area-inset-bottom,0));border-radius:20px 20px 0 0;transition:transform .25s;position:fixed;bottom:0;left:50%;transform:translate(-50%,100%)}.sheet.show{transform:translate(-50%)}.sheet .grab{background:var(--border);border-radius:999px;width:40px;height:4px;margin:6px auto 14px}.sheet h3{text-align:center;margin:0 0 12px;font-size:16px;font-weight:700}.role-opt{border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;width:100%;font:inherit;border-radius:14px;align-items:center;gap:12px;margin-bottom:10px;padding:14px;display:flex}.role-opt.on{border-color:var(--brand);background:var(--brand-soft)}.role-opt .m{flex:1;min-width:0}.role-opt .m b{color:var(--text);font-size:15px;font-weight:700;display:block}.role-opt .m span{color:var(--text-3);font-size:12px}.role-opt .ck{border:1.5px solid var(--border-strong);color:#0000;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;display:flex}.role-opt.on .ck{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.sheet .cancel{background:var(--surface-2);width:100%;height:46px;color:var(--text-2);cursor:pointer;border:0;border-radius:12px;margin-top:4px;font-size:14px;font-weight:650}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px}.ledger{background:linear-gradient(150deg, var(--brand) 0%, #0c331d 100%);color:#fff;border-radius:16px;padding:18px}:root[data-theme=dark] .ledger{background:linear-gradient(150deg,#12351f 0%,#0a1b12 100%);border:1px solid #1c3d29}.ledger .lb{color:#ffffffb8;align-items:center;gap:6px;font-size:13px;display:flex}.ledger .lv{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:6px 0 2px;font-size:34px;font-weight:800;line-height:1.2}.ledger .lm{color:#ffffff9e;font-size:12px}.ledger .lf{border-top:1px solid #ffffff29;gap:28px;margin-top:14px;padding-top:12px;display:flex}.ledger .lf div{flex-direction:column;display:flex}.ledger .lf span{color:#ffffff9e;font-size:11px}.ledger .lf strong{color:#fff;font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.cta{background:linear-gradient(135deg, var(--brand) 0%, var(--brand-hover) 100%);width:100%;color:var(--on-brand);cursor:pointer;letter-spacing:.5px;border:0;border-radius:16px;justify-content:center;align-items:center;gap:10px;height:60px;margin-top:14px;font-size:17px;font-weight:700;display:flex}.cta svg.ic{font-size:22px}.cta:active{transform:scale(.99)}.btn{cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;height:48px;padding:0 18px;font-size:15px;font-weight:650;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:linear-gradient(135deg, var(--brand) 0%, var(--brand-hover) 100%);color:var(--on-brand)}.btn-ghost{background:var(--surface-2);color:var(--text-2)}.btn-block{width:100%}.notice{border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;line-height:1.55;display:flex}.notice svg.ic{flex:none;margin-top:1px;font-size:16px}.notice b{font-weight:700}.notice-warning{background:var(--warning-soft);color:var(--warning)}.notice-info{background:var(--info-bg);color:var(--info-fg)}.notice-brand{background:var(--brand-soft);color:var(--brand)}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;height:22px;padding:0 9px;font-size:11px;font-weight:650;display:inline-flex}.badge svg.ic{stroke-width:2.6px;font-size:10px}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-info{background:var(--info-bg);color:var(--info-fg)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-gray{background:var(--surface-2);color:var(--text-3);border:1px solid var(--border)}.row{border-bottom:1px solid var(--divider);cursor:pointer;align-items:center;gap:12px;padding:13px 0;display:flex}.row:last-child{border-bottom:0}.row:active{background:var(--surface-hover)}.row .m{flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;display:flex}.row .t{color:var(--text);align-items:center;gap:7px;font-size:14.5px;font-weight:650;display:flex}.row .s{color:var(--text-3);flex-wrap:wrap;gap:6px;font-size:12px;display:flex}.row .amt{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;font-size:15px;font-weight:750}.row .side{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.section-t{color:var(--text);margin:20px 0 8px;font-size:14px;font-weight:700}.upload{border:1.5px dashed var(--border-strong);color:var(--text-3);text-align:center;cursor:pointer;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:26px 16px;display:flex}.upload:active{background:var(--brand-soft)}.upload .ic-big{color:var(--brand);font-size:30px}.upload b{color:var(--text-2);font-size:15px;font-weight:650}.upload span{font-size:12px}.shots{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.shot{border:1px solid var(--border-strong);background:#fff;border-radius:10px;flex-direction:column;align-items:center;gap:4px;width:78px;height:96px;padding:8px 6px;display:flex;position:relative;overflow:hidden}.shot .tt{color:var(--success);font-size:7.5px;font-weight:700}.shot .aa{color:#15223a;font-variant-numeric:tabular-nums;font-size:11px;font-weight:750}.shot .ll{background:#e7ebf2;border-radius:2px;width:100%;height:2.5px}.shot .ll.w60{width:60%}.shot .ll.w80{width:80%}.shot .ok{color:#249b72;background:#e6f7f1;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;margin-top:auto;font-size:10px;display:flex}.shot .rm{color:#fff;cursor:pointer;background:#0006;border:0;border-radius:6px;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;display:flex;position:absolute;top:3px;right:3px}.label{color:var(--text-2);align-items:center;gap:4px;margin:0 0 8px;font-size:13px;font-weight:650;display:flex}.label .req{color:var(--danger)}.label .hint{color:var(--text-4);margin-left:auto;font-size:12px;font-weight:500}.input{border:1px solid var(--border-strong);background:var(--surface);width:100%;height:48px;color:var(--text);font:inherit;border-radius:12px;padding:0 14px;font-size:16px}.input:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #12442726}.input.mono{letter-spacing:.3px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.input.big{text-align:right;font-variant-numeric:tabular-nums;height:56px;font-size:20px;font-weight:700}.mt{margin-top:18px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);cursor:pointer;border-radius:999px;align-items:center;gap:5px;min-height:44px;padding:9px 15px;font-size:14px;font-weight:600;display:inline-flex}.chip:active{background:var(--surface-hover)}.chip svg.ic{font-size:15px}.chip.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand);font-weight:700}.order-add{gap:8px;display:flex}.order-add .input{flex:1}.order-list{border:1px solid var(--divider);border-radius:12px;margin-top:10px;overflow:hidden}.order-item{border-bottom:1px solid var(--divider);background:var(--surface-2);align-items:center;gap:10px;padding:11px 13px;display:flex}.order-item:last-child{border-bottom:0}.order-item .code{letter-spacing:.2px;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;font-weight:650}.venue{background:var(--brand-soft);color:var(--brand);border-radius:5px;padding:2px 8px;font-size:11px;font-weight:700}.venue.unk{background:var(--danger-soft);color:var(--danger)}.order-item .del{color:var(--text-4);cursor:pointer;background:0 0;border:0;padding:6px;font-size:16px;position:relative}.order-item .del:after{content:"";position:absolute;inset:-8px}.empty{text-align:center;color:var(--text-4);padding:14px;font-size:12.5px}.alloc-row{border-bottom:1px solid var(--divider);align-items:center;gap:10px;padding:9px 0;display:flex}.alloc-row:last-child{border-bottom:0}.alloc-row .code{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:650}.alloc-input{text-align:right;border:1px solid var(--border-strong);background:var(--surface);width:96px;height:44px;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;border-radius:10px;padding:0 10px;font-size:15px;font-weight:650}.alloc-input:focus{border-color:var(--brand);outline:none}.alloc-check{border-radius:12px;justify-content:space-between;align-items:center;margin-top:12px;padding:12px 14px;font-size:13.5px;font-weight:700;display:flex}.alloc-check.ok{background:var(--success-soft);color:var(--success)}.alloc-check.bad{background:var(--danger-soft);color:var(--danger)}.alloc-check .n{font-variant-numeric:tabular-nums}.foot{padding:10px 16px calc(10px + env(safe-area-inset-bottom,0));background:var(--surface);border-top:1px solid var(--divider);flex:none;gap:10px;display:flex}.foot .btn{flex:1}.success{text-align:center;flex-direction:column;align-items:center;padding:48px 24px;display:flex}.success .ring{background:var(--success-soft);width:84px;height:84px;color:var(--success);border-radius:50%;justify-content:center;align-items:center;margin-bottom:18px;font-size:40px;display:flex}.success .ring svg.ic{stroke-width:2.4px}.success h2{margin:0 0 8px;font-size:19px;font-weight:750}.success p{color:var(--text-2);max-width:280px;margin:0;font-size:14px;line-height:1.7}.success .card{text-align:left;width:100%;margin-top:22px}.kv{border-bottom:1px solid var(--divider);gap:10px;padding:7px 0;font-size:13.5px;display:flex}.kv:last-child{border-bottom:0}.kv dt{width:62px;color:var(--text-3);flex:none;margin:0}.kv dd{color:var(--text);text-align:right;flex:1;margin:0}.toast{z-index:100;background:var(--text);color:var(--surface);box-shadow:var(--shadow);pointer-events:none;text-align:center;border-radius:12px;max-width:82vw;padding:11px 18px;font-size:13.5px;font-weight:600;transition:transform .25s;position:fixed;top:16px;left:50%;transform:translate(-50%,-70px)}.toast.show{transform:translate(-50%)}@media (width<=430px){.app{max-width:none;box-shadow:none}}
