*,:before,:after{box-sizing:border-box}:root{--c-white:#fff;--c-ash:#eaeef6;--c-void:#141b22;--c-coffee:#754d42;--c-del-rio:#917072;--c-indigo:#6558d3;--ready:#e1ffe1;--waiting:#dcdcdc;--active-bg:#e1ffe1;--active-chip:#90ee90;--changed-bg:#ffe1e1;--changed-chip:#ffb6c1;--limited-bg:#ffffe1;--limited-chip:#ffffb4;--done-bg:#e1e1ff;--done-chip:#b4b4ff;--pending-bg:#dcdcdc;--pending-chip:#c7c7c7;--go:#1e8e3e;--go-dark:#146c2e;--changed:#ff4500;--limited:#d4a017;--finish:#4169e1;--danger:#c62828;--radius:16px;--tap:56px;color:var(--c-del-rio);background:var(--c-ash);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:Spline Sans,system-ui,sans-serif;font-size:17px;line-height:1.4}body{min-height:100dvh;margin:0}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.55}input,select{font:inherit;font-size:17px}strong{color:var(--c-coffee);font-weight:600}.topbar{z-index:20;background:color-mix(in srgb, var(--c-ash) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding-top:env(safe-area-inset-top);border-bottom:1px solid #4133b714;position:sticky;top:0}.topbar-row{align-items:center;gap:8px;padding:8px 12px 0;display:flex}.topbar-row .spacer{flex:1}.scope-picker{background:var(--c-white);color:var(--c-coffee);border:1px solid #cfd4e2;border-radius:999px;padding:4px 10px}.link-button{color:var(--c-indigo);background:0 0;border:0;padding:6px 4px;font-weight:500}.offline{color:#7a5b00;background:#fff3cd;border-radius:8px;margin:6px 12px 0;padding:6px 10px;font-size:14px}.tabs{scrollbar-width:none;gap:6px;padding:8px 12px 10px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{background:var(--c-white);color:var(--c-coffee);white-space:nowrap;border:0;border-radius:999px;flex:none;padding:8px 14px;font-weight:500;box-shadow:0 1px 2px #4133b714}.tab[aria-selected=true]{background:var(--c-coffee);color:var(--c-white)}.tab .count{opacity:.8;margin-left:4px}main{padding:12px 12px calc(96px + env(safe-area-inset-bottom));max-width:720px;margin:0 auto}.empty{text-align:center;color:var(--c-del-rio);padding:48px 16px}.toolbar{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:12px;display:flex}.bet{background:var(--c-white);border-radius:var(--radius);margin-bottom:16px;padding:8px;box-shadow:0 30px 30px -25px #4133b740}.bet .inner{text-align:center;border-radius:12px;padding:52px 14px 14px;position:relative;overflow:hidden}.bet.active .inner{background:linear-gradient(90deg, var(--ready) calc(var(--fill,100) * 1%), var(--waiting) calc(var(--fill,100) * 1% + 5%))}.bet.changed .inner{background:var(--changed-bg)}.bet.limited .inner{background:var(--limited-bg)}.bet.done .inner{background:var(--done-bg)}.bet.pending .inner{background:var(--pending-bg)}.bet .matchtime,.bet .betstatus{color:var(--c-coffee);padding:8px 12px;font-size:14px;font-weight:600;line-height:1.2;position:absolute;top:0}.bet .matchtime{text-align:left;border-radius:0 0 14px;left:0}.bet .betstatus{border-radius:0 0 0 14px;right:0}.bet.active .matchtime,.bet.active .betstatus{background:var(--active-chip)}.bet.changed .matchtime,.bet.changed .betstatus{background:var(--changed-chip)}.bet.limited .matchtime,.bet.limited .betstatus{background:var(--limited-chip)}.bet.done .matchtime,.bet.done .betstatus{background:var(--done-chip)}.bet.pending .matchtime,.bet.pending .betstatus{background:var(--pending-chip)}.agent-badge{background:var(--c-coffee);color:var(--c-white);border-radius:999px;margin-bottom:6px;padding:2px 10px;font-size:13px;font-weight:600;display:inline-block}.bet .info{margin:0;line-height:1.25}.bet .info+.info{margin-top:4px}.bet .info.fixture{color:var(--c-coffee);font-size:1.1em;font-weight:600}.bet .info.marketsubname{margin-top:0;font-size:.8em}.bet .info.prop{color:var(--c-void);margin-top:8px;font-size:1.25em;font-weight:700}.bet .info.prop .propno{color:var(--c-del-rio);font-size:.8em;font-weight:400}.bet .info.odds{color:var(--c-void);margin-top:0;font-size:1.5em;font-weight:700}.bet hr{border:0;border-top:1px solid #754d4226;margin:12px 0}.bet .info.betsize{color:var(--go);font-size:2.6em;font-weight:700;line-height:1.1}.bet.limited .info.betsize,.bet.changed .info.betsize{color:var(--danger)}.betprogress{gap:6px;margin-top:10px;display:flex}.progress-bet{min-width:48px;min-height:44px;color:var(--c-coffee);border:0;border-radius:12px;flex-direction:column;flex-basis:0;justify-content:center;align-items:center;padding:6px 4px;font-size:14px;font-weight:600;line-height:1.2;display:flex}.progress-bet.placed{background:repeating-linear-gradient(45deg,#90ee90,#90ee90 10px,#b4eeb4 10px 20px)}.progress-bet.scanned{background:#90ee90}.progress-bet.planned{color:#6f6f6f;background:#d3d3d3}.progress-bet .odd-price{font-size:12px;font-weight:400}.bet.result-win .progress-bet,.bet.result-refund .progress-bet,.bet.result-dead_heat .progress-bet{background:var(--done-chip)}.bet.result-loss .progress-bet{background:var(--changed-chip)}.bet.result-pending .progress-bet{background:var(--pending-chip)}.betactions{align-items:stretch;gap:10px;display:flex}.btn{color:var(--c-white);min-height:var(--tap);background:var(--go);border:0;border-radius:10px;padding:10px 12px;font-weight:600;transition:transform 80ms,filter .12s}.btn:active:not(:disabled){filter:brightness(.92);transform:scale(.98)}.btn.secondary{background:var(--c-white);color:var(--c-coffee);border:1px solid #d7d0cc}.btn.danger{background:var(--danger)}.btn.block{width:100%}.btn.placebet{letter-spacing:.02em;font-variant-numeric:tabular-nums;flex:50%;font-size:1.6em}.btn.placebet.waiting{background:#8a8a8a}.bet.limited .btn.placebet,.bet.changed .btn.placebet{background:var(--danger)}.minoractions{flex:50%;grid-template-columns:1fr 1fr;gap:8px;display:grid}.minoractions .wide{grid-column:1/-1}.btn.betchanged{background:var(--changed)}.btn.betlimited{background:var(--limited)}.btn.betfinished{background:var(--finish)}.grade-actions{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.grade-actions .w{background:var(--go)}.grade-actions .x{background:var(--limited)}.grade-actions .l{background:var(--changed)}.grade-actions .dh{background:var(--finish)}.clear-results{justify-content:center;margin-top:8px;display:flex}.sheet-backdrop{z-index:40;background:#141b2273;justify-content:center;align-items:flex-end;animation:.12s ease-out fade;display:flex;position:fixed;inset:0}.sheet{background:var(--c-white);width:100%;max-width:560px;max-height:90dvh;padding:10px 16px calc(16px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;animation:.16s ease-out rise;overflow-y:auto}.sheet .grip{background:#d9d9d9;border-radius:3px;width:40px;height:5px;margin:0 auto 10px}.sheet h2{color:var(--c-coffee);margin:0 0 4px;font-size:19px}.sheet .lede{margin:0 0 14px}.sheet .actions{gap:10px;display:grid}.sheet .actions.row{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.field{text-align:left;gap:4px;min-width:0;margin-bottom:12px;display:grid}.field label{color:var(--c-coffee);font-size:14px;font-weight:500}.field input,.field select{background:var(--c-white);min-height:48px;color:var(--c-void);border:1px solid #cfd4e2;border-radius:10px;width:100%;min-width:0;padding:8px 12px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px;display:grid}.form-grid .wide{grid-column:1/-1}.error-text{color:var(--danger);margin:0 0 12px;font-weight:500}.photo-view{background:#eee;border-radius:12px;width:100%;display:block}@keyframes rise{0%{opacity:.4;transform:translateY(24px)}}@keyframes fade{0%{opacity:0}}.toasts{left:0;right:0;bottom:calc(16px + env(safe-area-inset-bottom));z-index:60;pointer-events:none;justify-items:center;gap:8px;padding:0 12px;display:grid;position:fixed}.toast{pointer-events:auto;background:var(--c-void);width:100%;max-width:520px;color:var(--c-white);border-radius:12px;align-items:center;gap:12px;padding:12px 14px;animation:.16s ease-out rise;display:flex;box-shadow:0 8px 24px #0003}.toast.bad{background:var(--danger)}.toast .text{flex:1}.toast button{color:var(--c-white);background:#ffffff2e;border:0;border-radius:8px;padding:8px 12px;font-weight:600}.balance{background:var(--c-white);border-radius:var(--radius);text-align:center;margin-bottom:16px;padding:16px;box-shadow:0 30px 30px -25px #4133b740}.balance h3{color:var(--c-coffee);margin:0 0 10px}.balance dl{text-align:left;grid-template-columns:1fr auto;gap:8px 12px;margin:0;display:grid}.balance dt{color:var(--c-del-rio)}.balance dd{text-align:right;color:var(--c-coffee);font-variant-numeric:tabular-nums;margin:0;font-weight:600}.balance .total dt,.balance .total dd{color:var(--c-void);font-size:1.1em;font-weight:700}.balance .vouchers{background:var(--done-bg);border-radius:12px;margin-top:14px;padding:12px}.balance .vouchers .amount{color:var(--c-void);font-size:1.8em;font-weight:700;display:block}.balance .uncleared{margin-top:8px;font-size:14px;font-style:italic}.positive{color:var(--go)!important}.negative{color:var(--danger)!important}.transfers{border-collapse:collapse;width:100%;font-size:15px}.transfers td{border-bottom:1px solid #eee;padding:6px 4px}.transfers td:last-child{text-align:right;font-variant-numeric:tabular-nums}.login{place-items:center;min-height:100dvh;padding:24px;display:grid}.login form{background:var(--c-white);border-radius:var(--radius);width:100%;max-width:360px;padding:24px;box-shadow:0 30px 30px -25px #4133b740}.login h1{color:var(--c-coffee);text-align:center;margin:0 0 16px}.camera{z-index:50;color:var(--c-white);background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.camera video,.camera .still{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.camera .overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.camera .guide{border:3px solid #ffffffd9;border-radius:14px;width:min(86vw,520px);height:min(30vw,180px);transition:border-color .12s;box-shadow:0 0 0 100vmax #00000073}.camera .guide.locked{border-color:#90ee90}.camera .guide.ticket{width:min(76vw,420px);height:min(110vw,56dvh);margin-bottom:18dvh}.camera .scanline{background:#ff5050d9;height:2px;animation:1.6s ease-in-out infinite alternate sweep;position:absolute;left:8%;right:8%}@keyframes sweep{0%{transform:translateY(-40px)}to{transform:translateY(40px)}}.camera .top,.camera .bottom{z-index:2;padding:12px 16px;position:relative}.camera .top{padding-top:calc(12px + env(safe-area-inset-top));background:linear-gradient(#0009,#0000);align-items:center;gap:12px;display:flex}.camera .top .title{flex:1;font-weight:600}.camera .bottom{padding-bottom:calc(16px + env(safe-area-inset-bottom));text-align:center;background:linear-gradient(#0000,#000000b3);gap:10px;margin-top:auto;display:grid}.camera .hint{margin:0;font-size:15px}.camera .code{letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.camera .round{color:var(--c-white);background:#ffffff2e;border:0;border-radius:999px;padding:10px 16px;font-weight:600}.camera .round.on{color:#000;background:#ffd54f}.shutter{border:5px solid var(--c-white);background:#ffffff59;border-radius:50%;justify-self:center;width:76px;height:76px}.shutter:active{background:var(--c-white)}.camera .row{justify-content:center;gap:10px;display:flex}.camera .row .btn{flex:1;max-width:220px}.camera progress{width:100%;height:8px}.ticket-screen{z-index:55;color:#000;padding:calc(8px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));background:#fff;flex-direction:column;font-family:ui-monospace,SF Mono,Menlo,monospace;display:flex;position:fixed;inset:0}.ticket-screen .close{align-self:flex-end;font-family:Spline Sans,system-ui,sans-serif}.ticket-screen .body{gap:10px;margin-top:auto;font-size:18px;display:grid}.ticket-screen .center{text-align:center}.ticket-screen table{border-collapse:collapse;width:100%;font-size:18px}.ticket-screen th{text-align:left;font-size:15px;font-weight:400}.ticket-screen .right{text-align:right}.ticket-screen .number{text-align:center;letter-spacing:.05em;font-size:22px}.ticket-screen svg{width:100%;height:auto;max-height:180px}
