:root{--blue: #0b7db3;--blue-600: #0968a0;--blue-ink: #053b5d;--teal: #52cbbe;--gold: #f3b21d;--gold-ink: #7a5a00;--green: #52b662;--red: #c1272d;--ink: #0a1424;--ink-soft: #334054;--muted: #6b7890;--faint: #9aa4b8;--bg: #f4f6fb;--surface: #ffffff;--hairline: rgba(10, 20, 36, .08);--shadow-sm: 0 2px 8px rgba(10,20,36,.06), 0 1px 2px rgba(10,20,36,.04);--shadow-md: 0 8px 24px rgba(10,20,36,.08), 0 2px 6px rgba(10,20,36,.05);--r-md: 14px;--r-lg: 18px;--r-pill: 999px}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}button{font-family:inherit;border:none;cursor:pointer;background:none}input,select,textarea{font-family:inherit;font-size:16px}.app{max-width:680px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:40;background:#ffffffe6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--hairline);padding:calc(env(safe-area-inset-top) + 12px) 18px 12px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:baseline;gap:8px}.brand .logo{font-weight:800;font-size:19px;letter-spacing:-.2px;color:var(--blue)}.brand .sub{font-size:11.5px;color:var(--faint);font-weight:600;letter-spacing:.4px;text-transform:uppercase}.main{flex:1;padding:16px 16px 96px}.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:16px;margin-bottom:14px}.card.tap:active{transform:scale(.985)}.section-title{font-size:12px;font-weight:700;letter-spacing:.8px;color:var(--faint);text-transform:uppercase;margin:18px 4px 8px}.stat-row{display:flex;gap:10px}.stat{flex:1;background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:12px 12px 10px}.stat .k{font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--faint);text-transform:uppercase}.stat .v{font-size:21px;font-weight:800;margin-top:2px;color:var(--ink);font-variant-numeric:tabular-nums}.stat .v.blue{color:var(--blue)}.stat .v.gold{color:var(--gold-ink)}.stat .v.green{color:var(--green)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:var(--r-md);padding:12px 18px;font-weight:700;font-size:15px;transition:transform .08s ease,opacity .15s}.btn:active{transform:scale(.97)}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 6px 16px #0b7db347}.btn-gold{background:var(--gold);color:#3a2900;box-shadow:0 6px 16px #f3b21d4d}.btn-ghost{background:#eef4fa;color:var(--blue-ink)}.btn-danger{background:#fdeeee;color:var(--red)}.btn-sm{padding:8px 13px;font-size:13.5px;border-radius:11px}.btn-block{width:100%}.btn[disabled]{opacity:.5;pointer-events:none}.chiprow{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:none}.chiprow::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;padding:7px 14px;border-radius:var(--r-pill);font-size:13.5px;font-weight:600;background:#e9eef6;color:var(--ink-soft);border:1px solid transparent}.chip.on{background:var(--blue);color:#fff;box-shadow:0 4px 10px #0b7db340}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.list-item{padding:11px 2px;border-bottom:1px solid var(--hairline);display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.list-item:last-child{border-bottom:none}.li-main{min-width:0}.li-title{font-weight:600;font-size:14.5px;color:var(--ink)}.li-sub{font-size:12.5px;color:var(--muted);margin-top:1px}.li-amt{font-weight:800;font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.li-amt.zero{color:var(--faint)}.flagged{background:#fff8e6;border-radius:10px;padding:11px 10px;margin:4px -8px}.tag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.4px;padding:2px 8px;border-radius:var(--r-pill);text-transform:uppercase}.tag-gold{background:#fdf3d7;color:var(--gold-ink)}.tag-teal{background:#e3f7f4;color:#1a7d72}.tag-blue{background:#e3f1f8;color:var(--blue-ink)}.tag-red{background:#fdeeee;color:var(--red)}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:40;background:#fffffff0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--hairline);display:flex;justify-content:space-around;padding:8px 6px calc(env(safe-area-inset-bottom) + 8px)}.tabbar button{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--faint);font-size:10.5px;font-weight:700;padding:4px 12px;border-radius:12px}.tabbar button.on{color:var(--blue)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a142473;z-index:60;display:flex;align-items:flex-end;justify-content:center}.modal{background:var(--surface);width:100%;max-width:680px;border-radius:22px 22px 0 0;padding:20px 18px calc(env(safe-area-inset-bottom) + 20px);max-height:88dvh;overflow-y:auto}.modal h3{font-size:18px;font-weight:800;margin-bottom:14px}.field{margin-bottom:13px}.field label{display:block;font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.3px;text-transform:uppercase;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:12px 13px;border:1.5px solid #dde4ee;border-radius:12px;background:#fbfcfe;color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);background:#fff}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:300px;margin:22px auto 0}.pinpad button{background:var(--surface);box-shadow:var(--shadow-sm);border-radius:16px;font-size:24px;font-weight:700;padding:17px 0;color:var(--ink)}.pinpad button:active{background:#eef4fa}.pindots{display:flex;gap:14px;justify-content:center;margin-top:26px}.pindot{width:14px;height:14px;border-radius:50%;background:#dde4ee}.pindot.on{background:var(--blue)}.shake{animation:shake .4s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.hero{background:linear-gradient(125deg,var(--blue),var(--teal));color:#fff;border-radius:20px;padding:20px 18px;margin-bottom:16px;box-shadow:0 12px 28px #0b7db34d}.hero .hi{font-size:13px;opacity:.92;font-weight:600}.hero .big{font-size:34px;font-weight:800;margin-top:2px;font-variant-numeric:tabular-nums}.hero .small{font-size:13px;opacity:.92;margin-top:6px}.medal{font-size:22px;width:34px;text-align:center}.lb-row{display:flex;align-items:center;gap:10px;padding:11px 2px;border-bottom:1px solid var(--hairline)}.lb-row:last-child{border-bottom:none}.lb-name{font-weight:700;font-size:15px}.lb-sub{font-size:12px;color:var(--muted)}.lb-count{margin-left:auto;font-weight:800;font-size:17px;color:var(--blue)}.lb-count span{font-size:11px;color:var(--faint);font-weight:700}.toast{position:fixed;top:calc(env(safe-area-inset-top) + 64px);left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:10px 18px;border-radius:var(--r-pill);font-size:14px;font-weight:600;z-index:90;box-shadow:var(--shadow-md)}.stub{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.stub-head{background:linear-gradient(120deg,var(--blue),var(--teal));color:#fff;padding:20px}.stub-body{padding:18px}.stub table{width:100%;border-collapse:collapse;font-size:13px}.stub th{text-align:left;color:var(--faint);font-size:10.5px;letter-spacing:.5px;padding:7px 6px;border-bottom:1.5px solid var(--hairline)}.stub td{padding:7px 6px;border-bottom:1px solid var(--hairline);vertical-align:top}.stub .tr{text-align:right}.stub tfoot td{font-weight:800;border-bottom:none;padding-top:12px}.spin{width:26px;height:26px;border:3px solid #dde4ee;border-top-color:var(--blue);border-radius:50%;animation:sp 1s linear infinite;margin:40px auto}@keyframes sp{to{transform:rotate(360deg)}}.center{text-align:center}.mt8{margin-top:8px}.mt14{margin-top:14px}.mt20{margin-top:20px}.muted{color:var(--muted);font-size:13.5px}.err{color:var(--red);font-size:14px;font-weight:600}@media print{body{background:#fff}.topbar,.tabbar,.no-print{display:none!important}.main{padding:0}.stub{box-shadow:none;border:1px solid #ddd}}.stub-sec{background:#eef4fa;color:var(--blue-ink);font-weight:800;font-size:11.5px;letter-spacing:.8px;padding:7px 12px;border-radius:8px;margin:16px 0 10px}.stub-sec:first-child{margin-top:2px}.stub .subrow td{color:var(--muted);font-size:12.5px;border-bottom:1px solid #f2f5fa}.avatar{border-radius:50%;object-fit:cover;background:#e3f1f8;color:var(--blue-ink);display:inline-flex;align-items:center;justify-content:center;font-weight:800;flex:0 0 auto}.brand{flex-direction:column;align-items:flex-start;gap:0}.brand .sub{margin-left:3px;font-size:9.5px;letter-spacing:.8px}.login-wrap{position:fixed;left:0;right:0;bottom:0;top:calc(env(safe-area-inset-top) + 54px);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:var(--bg);z-index:30;padding-bottom:env(safe-area-inset-bottom)}.login-wrap .pinpad{max-width:280px;gap:10px}.login-wrap .pinpad button{padding:14px 0;font-size:22px}.login-wrap{overscroll-behavior:contain}.login-wrap .pinpad{width:min(264px,74vw);gap:12px}.pinpad button,.login-wrap .pinpad button{aspect-ratio:1 / 1;border-radius:50%;padding:0;font-size:24px;display:flex;align-items:center;justify-content:center}.avatar-wrap{position:relative;display:inline-block}.avatar-badge{position:absolute;right:-2px;bottom:-2px;width:30px;height:30px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;border:2.5px solid #fff;box-shadow:var(--shadow-sm);cursor:pointer}.avatar-badge:active{transform:scale(.92)}.login-wrap .pinpad{width:min(232px,64vw);gap:10px}.login-wrap .pinpad button{font-size:22px}.spin-icon{animation:sp 1s linear infinite}.pinpad button.pin-del{background:transparent;box-shadow:none;color:var(--ink-soft)}.pinpad button.pin-del:active{background:transparent;transform:scale(.9)}.brand{gap:0}.brand .logo{line-height:1.05}.brand .sub{margin-top:-1px;margin-left:2px}
