:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#15221d;background:#f5f3ed;font-synthesis:none;--green:#153e32;--mint:#d9eadf;--orange:#e9733a;--cream:#f5f3ed;--line:#dedbd1;--muted:#788079}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--cream)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{max-width:620px;min-height:100vh;margin:auto;padding-bottom:110px;background:var(--cream)}.topbar{position:sticky;z-index:20;top:0;display:flex;align-items:center;justify-content:space-between;padding:max(18px,env(safe-area-inset-top)) 20px 15px;background:#f5f3edf0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid rgba(222,219,209,.65)}.topbar p,.page-heading p,.section-heading p,.sub-header p{margin:0 0 3px;color:#8b928c;font-size:9px;font-weight:800;letter-spacing:.16em}.topbar h1{margin:0;font-size:20px;letter-spacing:-.04em}.refresh-button{border:1px solid #cbd2cc;border-radius:999px;padding:9px 13px;color:var(--green);background:#fff;font-size:12px;font-weight:700}.content{padding:18px 16px}.balance-hero{overflow:hidden;position:relative;padding:24px 21px 20px;border-radius:24px;color:#fff;background:linear-gradient(140deg,#194b3b,#102f27);box-shadow:0 18px 40px #13382d2e}.balance-hero:after{content:"";position:absolute;width:150px;height:150px;border:32px solid rgba(255,255,255,.035);border-radius:50%;right:-55px;top:-60px}.balance-hero>p{margin:0 0 5px;color:#a9c6b9;font-size:12px}.balance-hero>strong{display:block;margin-bottom:20px;font-size:38px;line-height:1.2;letter-spacing:-.05em}.balance-hero>div{display:flex;gap:30px;padding-top:15px;border-top:1px solid rgba(255,255,255,.13)}.balance-hero span{display:flex;flex-direction:column;color:#a9c6b9;font-size:10px}.balance-hero b{color:#fff;font-size:14px;margin-top:2px}.positive{color:#2b9a67!important}.negative{color:#ef9a72!important}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0 18px}.stats-grid article{min-width:0;padding:12px 8px;border:1px solid var(--line);border-radius:14px;background:#fffefa;text-align:center}.stats-grid span{display:block;color:var(--muted);font-size:9px}.stats-grid b{display:block;overflow:hidden;margin-top:5px;font-size:12px;text-overflow:ellipsis}.upload-panel{display:flex;align-items:center;gap:13px;padding:16px;border:1px dashed #aabdb2;border-radius:18px;background:#edf4ef;cursor:pointer}.upload-panel input,.camera-fab input{display:none}.upload-panel .upload-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:#fff;background:var(--green);font-size:22px}.upload-panel div{flex:1}.upload-panel strong{font-size:14px}.upload-panel p{margin:3px 0 0;color:var(--muted);font-size:10px}.upload-panel>b{font-size:24px;color:#799082}.section-heading,.page-heading,.section-title{display:flex;align-items:flex-end;justify-content:space-between}.section-heading{margin:25px 2px 11px}.page-heading{margin:4px 2px 17px}.section-heading h2,.page-heading h2,.section-title h3{margin:0;font-size:20px;letter-spacing:-.04em}.section-heading button,.section-title button{border:0;color:var(--green);background:none;font-size:11px;font-weight:700}.ticket-list{display:grid;gap:10px}.ticket-card{padding:15px;border:1px solid var(--line);border-radius:18px;background:#fffefa}.ticket-card-top{display:flex;justify-content:space-between;align-items:flex-start}.ticket-card-top>div{display:flex;align-items:center;gap:8px}.ticket-card-top strong{font-size:13px}.ticket-card-top>b{font-size:18px}.status{padding:4px 7px;border-radius:999px;color:#715a11;background:#f8e9a9;font-size:9px;font-weight:800}.status-won{color:#17603f;background:#ceeddc}.status-lost{color:#727772;background:#e8e8e2}.status-won_needs_confirmation{color:#8b491e;background:#f8d8c5}.ticket-card>p{margin:9px 0 10px;color:var(--muted);font-size:10px}.match-chips{display:flex;overflow:hidden;gap:5px}.match-chips span{flex-shrink:0;padding:5px 7px;border-radius:7px;color:#526159;background:#f0f0ea;font-size:8px}.win-line{display:flex;justify-content:space-between;margin:12px -15px -15px;padding:10px 15px;border-radius:0 0 17px 17px;color:#17603f;background:#e4f3e9;font-size:11px}.win-line.warning{color:#8b491e;background:#fce9de}.card-actions{display:flex;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid #ebe8df}.card-actions button{border:0;padding:6px 4px;color:#56635b;background:none;font-size:10px;font-weight:700}.danger-text{color:#a34d3c!important}.accent-button{margin-left:auto;color:#fff!important;border-radius:8px!important;padding:7px 10px!important;background:var(--orange)!important}.bottom-nav{position:fixed;z-index:30;right:0;bottom:0;left:0;display:flex;max-width:620px;margin:auto;padding:8px 10px max(8px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffefaf7;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.bottom-nav button{flex:1;border:0;color:#879089;background:none;font-size:9px}.bottom-nav i{display:block;margin-bottom:2px;font-style:normal;font-size:18px}.bottom-nav .active{color:var(--green);font-weight:800}.camera-fab{position:fixed;z-index:40;right:calc(50% - min(310px,50%) + 18px);bottom:72px;display:flex;align-items:center;gap:5px;padding:9px 13px 9px 10px;border-radius:999px;color:#fff;background:var(--orange);box-shadow:0 8px 25px #c14b1c59;font-weight:800}.camera-fab span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#ffffff2e}.camera-fab small{font-size:10px}.toast{position:fixed;z-index:100;right:18px;bottom:132px;left:18px;max-width:480px;margin:auto;padding:12px 15px;border-radius:12px;color:#fff;background:#15221deb;box-shadow:0 8px 30px #0003;text-align:center;font-size:11px}.filter-tabs{display:flex;gap:7px;margin-bottom:12px}.filter-tabs button{border:1px solid var(--line);border-radius:999px;padding:7px 12px;color:#788079;background:#fffefa;font-size:10px}.filter-tabs .active{color:#fff;border-color:var(--green);background:var(--green)}.ledger-balance{display:flex;align-items:end;justify-content:space-between;padding:20px;border-radius:18px;color:#fff;background:var(--green)}.ledger-balance span{color:#a9c6b9;font-size:11px}.ledger-balance strong{font-size:27px}.quick-fund{margin:11px 0 18px;padding:13px;border:1px solid var(--line);border-radius:15px;background:#fffefa}.quick-fund>div{display:grid;grid-template-columns:1fr 1.4fr;gap:8px}.quick-fund button{width:100%;margin-top:10px;border:0;border-radius:10px;padding:10px;color:#fff;background:var(--orange);font-size:11px;font-weight:800}label{display:block;color:#69736d;font-size:10px;font-weight:600}input,select{width:100%;margin-top:5px;border:1px solid #d8d8cf;border-radius:10px;padding:10px 11px;color:#18231e;background:#fff;outline:none;font-size:13px}input:focus,select:focus{border-color:#6d9b84;box-shadow:0 0 0 3px #2a6e4e14}.ledger-list{display:grid;gap:7px}.ledger-list article{display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid #e4e1d8}.ledger-list i{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;font-style:normal;font-weight:800}.ledger-list .plus{color:#26744f;background:#dceee4}.ledger-list .minus{color:#9a553b;background:#f7e2d8}.ledger-list article>div{flex:1;display:flex;flex-direction:column}.ledger-list strong{font-size:11px}.ledger-list span{margin-top:2px;color:var(--muted);font-size:8px}.ledger-list b{font-size:12px}.settings-card{margin-bottom:12px;padding:16px;border:1px solid var(--line);border-radius:17px;background:#fffefa}.settings-card h3{margin:0 0 12px;font-size:14px}.settings-card label+label{margin-top:10px}.settings-card p,.safety-note p{color:var(--muted);font-size:10px;line-height:1.65}.export-row{display:flex;gap:9px}.export-row a{flex:1;padding:10px;border-radius:10px;color:var(--green);background:#e7f1ea;text-align:center;text-decoration:none;font-size:10px;font-weight:800}.safety-note{margin:20px 2px;padding-left:12px;border-left:3px solid var(--orange)}.safety-note strong{font-size:12px}.logout-button{width:100%;margin-top:10px;border:1px solid #d6bcb3;border-radius:11px;padding:11px;color:#9c4e3a;background:transparent}.primary{width:100%;border:0;border-radius:11px;padding:12px;color:#fff;background:var(--green);font-weight:800}.primary:disabled,button:disabled{opacity:.5;cursor:default}.onboarding{margin:14px 0;padding:24px 20px;border:1px solid var(--line);border-radius:22px;background:#fffefa}.step-pill{padding:4px 8px;border-radius:999px;color:#89511f;background:#f4debc;font-size:9px;font-weight:800}.onboarding h2{margin:15px 0 6px;font-size:25px}.onboarding>p{margin:0 0 22px;color:var(--muted);font-size:11px;line-height:1.6}.money-input{display:flex;align-items:center;margin:6px 0 12px;border:1px solid #d8d8cf;border-radius:12px;background:#fff}.money-input span{padding-left:12px;font-size:22px}.money-input input{margin:0;border:0;font-size:24px}.login-shell,.splash{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:30px;background:radial-gradient(circle at 50% 10%,#e3eee6,transparent 42%),var(--cream)}.brand-mark{display:grid;place-items:center;width:60px;height:60px;border-radius:20px;color:#ffe6c9;background:var(--green);box-shadow:0 13px 30px #153e3233;font-size:28px;font-weight:800}.eyebrow{margin:22px 0 4px;color:#8e968f;font-size:9px;font-weight:800;letter-spacing:.2em}.login-shell h1{margin:0;font-size:28px;letter-spacing:-.05em}.login-copy{margin:12px 0 25px;color:var(--muted);text-align:center;font-size:11px;line-height:1.7}.login-card{width:100%;max-width:360px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fffefa;box-shadow:0 14px 40px #3f423b14}.login-card .primary{margin-top:13px}.form-error{color:#b24632!important;font-size:10px!important}.splash p,.loading,.empty-small{color:var(--muted);font-size:11px;text-align:center}.splash .brand-mark{margin-bottom:18px}.review-page{max-width:620px;min-height:100vh;margin:auto;padding:0 15px 100px;background:var(--cream)}.sub-header{display:flex;align-items:center;gap:12px;padding:max(16px,env(safe-area-inset-top)) 2px 13px}.sub-header>button{border:0;color:var(--green);background:none;font-size:34px;line-height:1}.sub-header h2{margin:0;font-size:20px}.ticket-photo{display:block;width:100%;max-height:310px;object-fit:contain;border-radius:17px;background:#d9d6ce}.warning-box{margin-top:10px;padding:12px 14px;border:1px solid #ebc3aa;border-radius:13px;color:#865027;background:#fff0e5}.warning-box strong{font-size:11px}.warning-box p{margin:4px 0 0;font-size:9px}.form-section{margin-top:12px;padding:15px;border:1px solid var(--line);border-radius:17px;background:#fffefa}.form-section h3{margin:0 0 13px;font-size:15px}.form-section>label+label{margin-top:10px}.field-grid{display:grid;gap:8px;margin-top:10px}.field-grid.two{grid-template-columns:1fr 1fr}.field-grid.three{grid-template-columns:1.2fr 1fr 1fr}.check-ok,.check-bad{margin:10px 0 0;padding:7px 9px;border-radius:8px;font-size:9px}.check-ok{color:#276f4d;background:#e2f1e7}.check-bad{color:#a44c35;background:#fbe6de}.selections-section{padding:12px}.selection-editor{margin-top:10px;padding:12px;border:1px solid #dddcd4;border-radius:13px;background:#f8f7f2}.selection-editor header{display:flex;justify-content:space-between;align-items:center}.selection-editor header span{font-size:10px;font-weight:800}.selection-editor header button,.options-title button,.option-row button{border:0;color:#9e543e;background:none;font-size:9px}.options-title{display:flex;justify-content:space-between;margin-top:11px;color:#69736d;font-size:9px;font-weight:700}.option-row{display:grid;grid-template-columns:1.5fr 1fr 28px;gap:6px;align-items:center}.option-row input{padding:8px;margin-top:5px;font-size:11px}.option-row button{margin-top:5px;font-size:16px}.ocr-raw{margin:12px 2px;color:#6e766f;font-size:10px}.ocr-raw pre{overflow:auto;max-height:200px;padding:10px;border-radius:10px;background:#e9e7e0;white-space:pre-wrap;font-size:9px}.review-footer{position:fixed;z-index:20;right:0;bottom:0;left:0;max-width:620px;margin:auto;padding:10px 15px max(10px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#f5f3edf5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sticky-error{position:fixed;z-index:25;right:20px;bottom:78px;left:20px;max-width:560px;margin:auto;padding:10px;border-radius:10px;background:#fff0eb;box-shadow:0 5px 20px #0000001f;text-align:center}@media(min-width:700px){body{background:#e7e6df}.app-shell,.review-page{box-shadow:0 0 60px #00000014}}
