:root{color:#1f2933;background:#f5f6f8;--primary-red: #c9302c;--primary-red-dark: #93312d;--primary-red-soft: #fff0f0;--accent-green: #16a085;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,Helvetica,Arial,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.4;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:#eef1f4}button,select,input{font:inherit}button{border:0;color:inherit;cursor:pointer}.app-shell{position:relative;width:min(100%,430px);min-height:100vh;margin:0 auto;background:#f5f6f8;overflow-x:hidden}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;min-height:54px;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;color:#fff;background:var(--primary-red)}.topbar h1,.hero-title,.page-title{margin:0;letter-spacing:0}.topbar h1{font-size:17px;font-weight:800}.eyebrow{margin:0 0 2px;color:#ffffffd1;font-size:11px}.topbar-actions{display:flex;align-items:center;gap:7px}.discipline-badge{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:0 8px;background:#ffffff29;border-radius:8px;color:#fff;font-size:12px;font-weight:800;white-space:nowrap}.icon-button{display:inline-grid;place-items:center;width:32px;height:32px;color:#fff;background:#ffffff29;border-radius:8px}.icon-button.spinning svg,.loading-state svg{animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-body{min-height:calc(100vh - 54px);padding-bottom:calc(72px + env(safe-area-inset-bottom))}.page-body.calculator-padding{padding-bottom:calc(154px + env(safe-area-inset-bottom))}.page-body.mine-edit-padding{padding-bottom:calc(132px + env(safe-area-inset-bottom))}.page-body.detail-active{padding-bottom:0;background:#fff}.page{min-height:100%;padding:12px 12px 20px}.hero{color:#fff;background:linear-gradient(135deg,var(--primary-red),var(--primary-red-dark));border-radius:8px;padding:13px 14px}.hero-title{font-size:18px;font-weight:800}.hero-subtitle{margin-top:5px;color:#ffffffdb;font-size:13px;line-height:1.5}.section{margin-top:11px}.section-title{margin:0 0 7px;font-size:16px;font-weight:800}.card{background:#fff;border-radius:8px;padding:12px;box-shadow:0 4px 12px #1f29330f}.muted{color:#8b95a1}.danger{color:#d93025}.success{color:var(--accent-green)}.warning{color:#d9822b}.red{color:var(--primary-red);font-weight:800}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;color:#fff;background:var(--primary-red);border-radius:8px;font-size:14px;font-weight:800}.btn.secondary{color:#344054;background:#eef2f6}.empty{min-height:92px;display:grid;place-items:center;gap:6px;text-align:center;color:#8b95a1}.empty-sub{color:#a6adb7;font-size:12px;line-height:1.5}.toolbar{display:flex;align-items:center;gap:8px;margin-top:10px;width:100%;overflow:hidden}.date-picker{flex:1 1 auto;min-width:0;height:36px;display:flex;align-items:center;gap:9px;padding:0 8px;background:#f5f6f8;border-radius:8px}.date-label{flex:none;color:#8b95a1;font-size:12px;white-space:nowrap}.date-input{min-width:0;width:100%;border:0;background:transparent;color:#1f2933;font-size:14px;font-weight:800}.market-toolbar{margin-top:10px;width:100%;overflow:hidden;padding:8px}.mode-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;width:100%;min-width:0}.mode-chip{width:100%;min-width:0;min-height:34px;padding:4px 2px;color:#4b5563;background:#f3f4f6;border:1px solid #e2e7ec;border-radius:7px;font-size:12px;font-weight:800;line-height:1.15;overflow-wrap:anywhere;text-align:center}.mode-chip.active{color:#fff;background:var(--primary-red);border-color:var(--primary-red)}.refresh-btn{flex:0 0 48px;height:36px;color:#344054;background:#eef2f6;border-radius:8px;font-size:14px;font-weight:800}.data-status{margin-top:9px;font-size:12px;line-height:1.6}.results-status{margin:11px 11px 0}.status-line{display:flex;justify-content:space-between;gap:9px;color:#111827;font-weight:800}.error-details{margin-top:6px;color:#d9822b}.date-group{scroll-margin-top:72px}.date-group-title{display:flex;align-items:center;justify-content:space-between;margin:2px 0 7px;color:#1f2933;font-size:14px;font-weight:800}.date-group-title span:last-child{color:#8b95a1;font-size:12px;font-weight:400}.match-card{margin-bottom:9px;width:100%;overflow:hidden}.calculator-match-card{padding:12px;border:1px solid #e3e8ed}.calculator-match-card.locked{background:#fafafa}.match-head{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#737f8a;font-size:12px}.match-head>div:first-child{min-width:0;flex:1;display:flex;align-items:center;gap:6px}.match-head b{color:var(--primary-red)}.match-head time{flex:none;color:#737f8a;font-size:13px;white-space:nowrap}.match-kickoff{flex:none;display:inline-flex;align-items:center;gap:6px;color:#737f8a;white-space:nowrap}.sale-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;color:#8a5a12;background:#fff3d6;border-radius:11px;font-size:11px;font-style:normal;font-weight:800}.team-row{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:6px;align-items:center;margin:12px 0 10px;text-align:center}.team-row strong{min-width:0;overflow:hidden;color:#20242a;white-space:nowrap;text-overflow:ellipsis;font-size:18px;font-weight:900}.team-row span{color:#9aa3ad;font-size:13px}.all-markets-btn{display:grid;place-items:center;color:#111827;background:#fff;border:0;font-size:15px;font-weight:800}.all-markets-btn.side{width:52px;height:100%;min-height:76px;border-left:1px solid #d8dee7;border-radius:0}.league{color:#2563eb;font-size:13px}.teams{margin-top:4px;color:#1f2933;font-size:16px;font-weight:800;line-height:1.35;word-break:break-word}.time{flex:none;color:#8b95a1;text-align:right;line-height:1.35;font-size:12px;white-space:nowrap}.match-num{color:#697386;font-size:13px;font-weight:800}.kickoff{margin-top:4px;color:#8b95a1;font-size:12px}.market-row{display:grid;gap:7px;padding-top:11px;border-top:1px solid #eef1f4}.market-row+.market-row{margin-top:10px}.market{margin-top:11px}.market-title{display:flex;justify-content:space-between;align-items:center;gap:6px;color:#4b5563;margin-bottom:3px;font-size:13px;font-weight:800}.market-title em{font-style:normal}.markets-with-side-action{display:grid;grid-template-columns:minmax(0,1fr) 52px;align-items:stretch;margin-top:2px;overflow:hidden;background:#fff;border:1px solid #d8dee7;border-radius:10px}.markets-main{min-width:0}.markets-with-side-action .market-row{grid-template-columns:72px minmax(0,1fr);gap:0;align-items:stretch;padding:0;border-top:1px solid #d8dee7}.markets-with-side-action .market-row:first-child{border-top:0}.markets-with-side-action .market-title{flex-direction:column;justify-content:center;gap:2px;min-height:58px;margin:0;padding:6px 5px;color:#4b5563;background:#f7f8fa;border-right:1px solid #d8dee7;text-align:center;font-size:12px;line-height:1.25}.markets-with-side-action .market-title span,.markets-with-side-action .market-title em{display:block;max-width:100%;overflow:visible;overflow-wrap:anywhere;text-overflow:clip}.markets-with-side-action .market-title em{color:var(--primary-red);font-size:11px;font-weight:900}.markets-with-side-action .odds-grid{gap:5px;min-height:58px}.markets-with-side-action .score-option-group{gap:5px}.markets-with-side-action .odd-button{border:1px solid #d7dee7;border-radius:6px;background:#fff}.markets-with-side-action .odd-button.active{border-color:var(--primary-red)}.handicap{color:var(--primary-red)}.market-meta{display:flex;justify-content:space-between;gap:8px;color:#8b95a1;font-size:11px;margin-bottom:5px;line-height:1.4}.odds-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:100%;min-width:0}.odds-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.odds-grid.market-score,.odds-grid.market-goals{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.odds-grid.market-score{display:flex;flex-direction:column}.score-option-group{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-width:0}.odds-grid.market-half-full{grid-template-columns:repeat(3,minmax(0,1fr))}.odds-btn{width:100%;min-width:0;height:46px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:6px 3px;color:#1f2933;background:#f3f4f6;border-radius:8px;text-align:center;line-height:1.2;overflow:hidden}.odds-btn.selected{color:#fff;background:var(--primary-red)}.odds-btn.disabled{color:#c6cbd2;background:#fafafa;cursor:default}.odds-num{display:block;margin-top:3px;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:13px}.odd-button{display:grid;place-items:center;min-height:52px;gap:3px;min-width:0;padding:5px 2px;color:#303942;background:#f7f8fa;border:1px solid #e2e7ec;border-radius:8px;overflow:hidden}.odd-button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.odd-button b{max-width:100%;overflow:hidden;color:var(--primary-red);font-size:17px;font-weight:900;line-height:1.05;overflow-wrap:anywhere}.market-score .odd-button,.market-goals .odd-button{min-height:50px;padding:5px 2px}.market-score .odd-button span,.market-goals .odd-button span{font-size:clamp(13px,3.6vw,15px);font-weight:800}.market-score .odd-button b,.market-goals .odd-button b{font-size:clamp(12px,3.25vw,14px)}.odd-button.active{color:#fff;background:var(--primary-red);border-color:var(--primary-red)}.odd-button.active b{color:#fff}.odd-button.disabled{color:#a9b1b8;background:#f0f2f4;cursor:default}.odd-button.disabled b{color:#a9b1b8}.calculator-match-card.locked .team-row strong,.calculator-match-card.locked .market-title{color:#8b95a1}.detail-sale-status{display:inline-flex;margin-left:6px;padding:2px 7px;color:#8a5a12;background:#fff3d6;border-radius:999px;font-size:11px;font-weight:800}.market-empty{margin-top:10px;padding:10px;color:#8b95a1;background:#f7f8fa;border:1px dashed #dce3e9;border-radius:8px;text-align:center;font-size:12px;line-height:1.5}.plan-detail-page{min-height:100vh;background:#fff;color:#111827;padding-bottom:34px}.detail-topbar{position:sticky;top:0;z-index:40;display:grid;grid-template-columns:44px minmax(0,1fr) 68px;align-items:center;min-height:56px;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;color:#090909;background:#fffffffa;border-bottom:1px solid #f0f1f3}.detail-back{display:grid;place-items:center;width:40px;height:40px;color:#111827;background:transparent}.detail-top-title{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center;font-size:19px;font-weight:900}.detail-top-spacer{width:44px}.detail-shot-toggle{justify-self:end;min-width:64px;min-height:34px;padding:0 8px;color:var(--primary-red);background:#fff1f1;border-radius:8px;font-size:13px;font-weight:800}.plan-ad-card{display:grid;grid-template-columns:66px minmax(0,1fr) 76px;gap:10px;align-items:center;min-height:96px;margin:14px 14px 22px;padding:12px;background:#f6f7f9;border-radius:2px}.plan-ad-logo{display:grid;place-items:center;width:58px;aspect-ratio:1;color:#fff;background:linear-gradient(145deg,var(--primary-red),#e12d2d 62%,#7a1d8f);border-radius:2px;font-size:21px;font-weight:900;line-height:1.05;text-align:center;box-shadow:inset 0 -14px #5c1a947a}.plan-ad-copy{display:grid;gap:8px;min-width:0;color:#111827;line-height:1.25}.plan-ad-copy strong,.plan-ad-copy span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.plan-ad-copy strong{font-size:18px;font-weight:900}.plan-ad-copy span{color:#b5bac2;font-size:13px}.plan-ad-qr{width:72px;aspect-ratio:1;object-fit:contain;background:#fff;padding:4px}.plan-detail-money,.plan-detail-meta-row,.plan-detail-mix{display:flex;justify-content:space-between;gap:12px;padding:0 14px}.plan-detail-money{align-items:baseline;margin-top:0;color:#111827;font-size:15px;font-weight:800}.plan-detail-money>div{display:flex;align-items:baseline;min-width:0}.plan-detail-money span{margin-right:3px}.plan-detail-money div:first-child,.plan-detail-money strong{color:var(--primary-red)}.plan-detail-money div:last-child{justify-content:flex-end;text-align:right}.plan-detail-money div:last-child span{color:#111827}.plan-detail-money strong{min-width:0;overflow-wrap:anywhere;font-size:18px;font-weight:900}.plan-detail-meta-row{margin-top:14px;color:#111827;font-size:14px}.plan-detail-meta-row span:last-child{text-align:right}.plan-detail-mix{justify-content:flex-start;align-items:baseline;margin-top:26px;color:#111827;font-size:16px;font-weight:500}.plan-detail-mix span{flex:none}.plan-detail-mix strong{min-width:0;color:var(--primary-red);font-size:16px;font-weight:500}.plan-detail-notice{margin:10px 14px 0;padding:8px 10px;color:#5d7893;background:#f4f8fb;border-radius:2px;font-size:12px;text-align:center}.plan-ticket-shot{--shot-font: 14px;--shot-team-font: 16px;--shot-pick-font: 15px;--shot-pad: 9px;--shot-gap: 8px;margin:10px 8px 0;padding:8px;color:#111827;background:#fff;border:1px solid #dfe3e8}.ticket-shot-brand{display:grid;grid-template-columns:38px minmax(0,1fr) 48px;gap:8px;align-items:center;margin-bottom:8px;padding:6px;background:#f8f9fb;border:1px solid #eceff3}.ticket-shot-logo{display:grid;place-items:center;width:36px;aspect-ratio:1;color:#fff;background:linear-gradient(145deg,var(--primary-red),#e12d2d 62%,#7a1d8f);font-size:13px;font-weight:900;line-height:1.05;text-align:center}.ticket-shot-brand-copy{display:grid;gap:3px;min-width:0}.ticket-shot-brand-copy strong,.ticket-shot-brand-copy span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-shot-brand-copy strong{color:#111827;font-size:15px;font-weight:900}.ticket-shot-brand-copy span{color:#7b8490;font-size:11px}.ticket-shot-qr{width:46px;aspect-ratio:1;object-fit:contain;padding:2px;background:#fff}.ticket-shot-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.ticket-shot-head strong{min-width:0;overflow:hidden;color:#111827;font-size:17px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.ticket-shot-head span,.ticket-shot-footer{color:#9aa1ab;font-size:11px}.ticket-shot-summary{display:grid;grid-template-columns:minmax(56px,.9fr) minmax(112px,1.8fr) minmax(76px,1.2fr) minmax(58px,.9fr);overflow:hidden;border:1px solid #e2e5ea}.ticket-shot-summary div{display:grid;gap:2px;min-width:0;padding:7px 4px;border-right:1px solid #e2e5ea;text-align:center}.ticket-shot-summary div:last-child{border-right:0}.ticket-shot-summary span{color:#7b8490;font-size:11px}.ticket-shot-summary strong{color:var(--primary-red);font-size:clamp(11px,3.45vw,15px);font-weight:900;line-height:1.05;overflow-wrap:anywhere}.ticket-shot-summary .bonus strong{font-size:clamp(10px,3.35vw,15px);letter-spacing:0;white-space:normal}.ticket-shot-list{display:grid;gap:var(--shot-gap);margin-top:10px}.ticket-shot-match{display:grid;gap:4px;padding:var(--shot-pad);background:#fbfbfc;border:1px solid #e4e7ec}.ticket-shot-meta,.ticket-shot-teams{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;align-items:center}.ticket-shot-meta span{color:#4b5563;font-size:var(--shot-font)}.ticket-shot-meta time{color:var(--primary-red);font-size:var(--shot-font);font-weight:900;text-align:right}.ticket-shot-teams{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr)}.ticket-shot-teams strong{overflow:hidden;color:#111827;font-size:var(--shot-team-font);font-weight:900;text-overflow:ellipsis;white-space:nowrap}.ticket-shot-teams strong:last-child{text-align:right}.ticket-shot-teams em{color:#9aa1ab;font-style:normal;font-size:11px;text-align:center}.ticket-shot-markets{display:grid;gap:4px}.ticket-shot-market-row{display:grid;grid-template-columns:76px minmax(0,1fr);gap:5px;align-items:stretch}.ticket-shot-market-row>b{display:grid;place-items:center;min-width:0;padding:4px 3px;color:#8f1f1f;background:#fff0f0;border:1px solid #f2c7c7;font-size:calc(var(--shot-pick-font) - 1px);font-weight:900;text-align:center}.ticket-shot-picks{display:flex;flex-wrap:wrap;gap:4px;overflow:hidden}.ticket-shot-picks span{flex:1 1 calc(33.333% - 4px);min-width:0;overflow:hidden;padding:5px 6px;color:#fff;background:#e85050;border:1px solid #d83a3a;font-size:var(--shot-pick-font);font-weight:900;line-height:1.15;text-align:center;text-overflow:ellipsis;white-space:nowrap}.ticket-shot-footer{margin-top:8px;text-align:center}.ticket-shot-compact{--shot-font: 12px;--shot-team-font: 14px;--shot-pick-font: 12px;--shot-pad: 6px;--shot-gap: 5px}.ticket-shot-ultra{--shot-font: 11px;--shot-team-font: 12px;--shot-pick-font: 11px;--shot-pad: 4px;--shot-gap: 4px}.ticket-shot-compact .ticket-shot-head{margin-bottom:6px}.ticket-shot-compact .ticket-shot-brand{grid-template-columns:34px minmax(0,1fr) 42px;gap:6px;margin-bottom:6px;padding:5px}.ticket-shot-compact .ticket-shot-logo{width:32px;font-size:12px}.ticket-shot-compact .ticket-shot-brand-copy strong{font-size:14px}.ticket-shot-compact .ticket-shot-brand-copy span{font-size:10px}.ticket-shot-compact .ticket-shot-qr{width:40px}.ticket-shot-compact .ticket-shot-head strong{font-size:15px}.ticket-shot-compact .ticket-shot-summary div{padding:5px 2px}.ticket-shot-compact .ticket-shot-summary{grid-template-columns:minmax(48px,.85fr) minmax(104px,1.9fr) minmax(70px,1.15fr) minmax(52px,.85fr)}.ticket-shot-compact .ticket-shot-summary strong{font-size:clamp(10px,3.1vw,13px)}.ticket-shot-compact .ticket-shot-summary .bonus strong{font-size:clamp(9px,3vw,13px)}.ticket-shot-ultra .ticket-shot-summary div{padding:4px 2px}.ticket-shot-ultra .ticket-shot-summary{grid-template-columns:minmax(42px,.8fr) minmax(94px,2fr) minmax(62px,1.1fr) minmax(46px,.8fr)}.ticket-shot-ultra .ticket-shot-summary strong,.ticket-shot-ultra .ticket-shot-summary .bonus strong{font-size:clamp(8px,2.65vw,11px)}.ticket-shot-ultra .ticket-shot-head{margin-bottom:5px}.ticket-shot-ultra .ticket-shot-brand{grid-template-columns:28px minmax(0,1fr) 34px;gap:5px;margin-bottom:5px;padding:4px}.ticket-shot-ultra .ticket-shot-logo{width:28px;font-size:10px}.ticket-shot-ultra .ticket-shot-brand-copy{gap:1px}.ticket-shot-ultra .ticket-shot-brand-copy strong{font-size:12px}.ticket-shot-ultra .ticket-shot-brand-copy span{font-size:9px}.ticket-shot-ultra .ticket-shot-qr{width:32px}.ticket-shot-ultra .ticket-shot-head strong{font-size:14px}.ticket-shot-ultra .ticket-shot-head span{display:none}.ticket-shot-ultra .ticket-shot-list{margin-top:5px}.ticket-shot-ultra .ticket-shot-match{gap:3px}.ticket-shot-ultra .ticket-shot-meta,.ticket-shot-ultra .ticket-shot-teams{gap:5px}.ticket-shot-ultra .ticket-shot-markets{gap:3px}.ticket-shot-ultra .ticket-shot-market-row{grid-template-columns:58px minmax(0,1fr);gap:3px}.ticket-shot-ultra .ticket-shot-market-row>b{padding:3px 2px}.ticket-shot-ultra .ticket-shot-picks{gap:3px}.ticket-shot-ultra .ticket-shot-picks span{flex-basis:calc(33.333% - 3px);padding:3px 4px}.ticket-shot-ultra .ticket-shot-footer{margin-top:5px;font-size:10px}.plan-detail-match{margin:34px 14px 0}.plan-detail-match-head{display:grid;grid-template-columns:74px minmax(0,1fr) 64px minmax(0,1fr);align-items:center;gap:6px;min-height:42px}.plan-detail-match-head span{color:#4b5563;font-size:14px}.plan-detail-match-head strong,.plan-detail-match-head time{min-width:0;color:#111827;text-align:center}.plan-detail-match-head strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:900}.plan-detail-match-head time{display:grid;gap:2px;color:var(--primary-red);font-size:14px;font-weight:800;line-height:1.15}.plan-detail-match-head time b{font-weight:800}.plan-detail-odds-row{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;margin-top:13px}.plan-detail-odds-row:not(.handicap):before{content:""}.plan-handicap{justify-self:center;display:grid;place-items:center;min-width:34px;height:34px;color:#25844c;background:#f2f5f4;border-radius:50%;font-size:17px;font-weight:800}.plan-detail-odds-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #bebebe;border-right:0}.plan-odd-cell{display:grid;place-items:center;min-height:50px;padding:5px 2px;color:#a7aab0;background:#fff;border-right:1px solid #bebebe;line-height:1.2}.plan-odd-cell span,.plan-odd-cell b{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.plan-odd-cell span{font-size:15px}.plan-odd-cell b{font-size:13px;font-weight:500}.plan-odd-cell.active{color:#fff;background:#e85050}.plan-detail-extra{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:14px 0 0 74px;border:1px solid #bebebe;border-right:0;border-bottom:0}.plan-extra-cell{display:grid;place-items:center;min-height:54px;padding:6px 2px;color:#fff;background:#e85050;border-right:1px solid #bebebe;border-bottom:1px solid #bebebe;line-height:1.3;text-align:center}.plan-extra-cell span,.plan-extra-cell b{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.plan-extra-cell span{font-size:14px}.plan-extra-cell b{font-size:13px;font-weight:500}.plan-note-button{display:block;width:calc(100% - 28px);min-height:42px;margin:18px 14px 0;color:#347a9c;background:#fff;border-radius:2px;box-shadow:0 6px 18px #1f293312;font-size:15px;font-weight:500}.plan-disclaimer{margin:26px 14px 0;padding:13px 12px;color:#c1c5cc;background:#fbfbfb;border-radius:2px;text-align:center;font-size:13px;line-height:1.65}.plan-disclaimer p{margin:0}.bottom-bar{position:fixed;left:50%;bottom:calc(58px + env(safe-area-inset-bottom));z-index:30;display:grid;gap:8px;width:min(100%,430px);padding:10px 12px;transform:translate(-50%);background:#fffffffa;border-top:1px solid #e0e5e9;box-shadow:0 -8px 18px #141e2814;overflow:hidden}.bottom-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#5f6872;font-size:12px}.bottom-summary span,.bottom-summary strong,.bottom-summary em{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bottom-summary strong{color:var(--primary-red);font-size:18px}.bottom-summary em{color:#2b6d4c;font-style:normal}.bottom-controls{display:flex;align-items:center;gap:6px;width:100%;min-width:0}.pass-chip,.trash-btn,.save-mini{height:36px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center}.pass-chip{flex:0 0 86px;min-width:0;padding:0 8px;color:#1f2933;background:#fff;border:1px solid #dce3e9;font-size:13px;font-weight:800}.multiplier-control{flex:1 1 auto;min-width:116px;max-width:170px;height:36px;display:grid;grid-template-columns:30px minmax(38px,1fr) 30px;gap:4px}.step-btn{width:30px;height:36px;display:grid;place-items:center;padding:0;color:var(--primary-red);background:#fff;border:1px solid #dce3e9;border-radius:8px;font-weight:800}.multiplier-box{width:100%;min-width:0;height:36px;padding:0;border:1px solid #e5e7eb;border-radius:8px;color:#1f2933;background:#fff;text-align:center;font-size:15px;font-weight:800}.trash-btn{flex:0 0 48px;color:#697386;background:#f1f3f6;font-size:12px;font-weight:800}.save-mini{flex:0 0 60px;gap:3px;color:#fff;background:var(--primary-red);font-size:13px;font-weight:800}.bottom-note{display:flex;justify-content:space-between;gap:8px;color:#8b95a1;font-size:12px}.status-card{display:flex;align-items:center;justify-content:space-between;gap:10px}.status-title{margin-bottom:4px;font-size:17px;font-weight:800}.check-badge{flex:none;min-width:58px;height:28px;line-height:28px;border-radius:14px;text-align:center;color:#fff;font-weight:800}.check-badge.ok{background:var(--accent-green)}.check-badge.warn{background:#d9822b}.worldcup-card{line-height:1.6}.worldcup-summary{color:#1f2933;font-size:15px;font-weight:800}.worldcup-note{margin-top:3px;font-size:12px}.worldcup-list{margin-top:8px}.worldcup-day{padding-top:8px;border-top:1px solid #eef2f6}.worldcup-day:first-child{border-top:0}.worldcup-day-title{display:flex;align-items:center;justify-content:space-between;min-height:28px;color:#1f2933;font-size:16px;font-weight:900}.worldcup-day-title em{color:#8b95a1;font-style:normal;font-size:13px;font-weight:500}.worldcup-item{display:block;width:100%;padding:10px 0;color:inherit;text-align:left;background:transparent;border-top:1px solid #f1f3f6}.worldcup-item:active{background:#fff7f7}.worldcup-head{display:flex;align-items:flex-start;justify-content:space-between;gap:9px}.worldcup-head>div:first-child{min-width:0}.worldcup-match{color:#1f2933;font-size:15px;font-weight:800;line-height:1.35;word-break:break-word}.worldcup-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;color:#6b7280;font-size:12px;line-height:1.5}.match-state{display:inline-flex;align-items:center;min-height:20px;padding:2px 6px;border-radius:8px;color:#6b7280;background:#eef2f6;font-size:12px;font-weight:800}.match-state.state-scheduled{color:#2563eb;background:#eff6ff}.match-state.state-live{color:#b42318;background:#fff1f1}.match-state.state-finished,.match-state.state-finished-pending{color:#087443;background:#ecfdf3}.worldcup-result{display:flex;flex-wrap:wrap;gap:10px;margin-top:7px;color:#374151;font-size:12px;line-height:1.5}.worldcup-result b{color:var(--primary-red);font-size:13px}.handicap-badge{flex:none;color:#d93025;background:#fff3f2;border-radius:8px;padding:3px 5px;font-size:12px}.worldcup-odds{margin-top:5px;color:#4b5563;font-size:12px}.image-card{display:grid;gap:8px}.image-link{display:flex;align-items:center;gap:8px;min-height:40px;color:#2563eb;text-decoration:none;font-weight:800}.pick-item{padding:9px 0;border-bottom:1px solid #eef2f6}.pick-item:last-child{border-bottom:none}.pick-match{font-size:15px;font-weight:800}.pick-line{margin-top:4px}.note-card{line-height:1.7}.results-page,.mine-page{padding:0 0 20px}.top-band{color:#fff;text-align:center;background:var(--primary-red);padding:32px 12px 21px}.page-title{font-size:18px;font-weight:800}.refresh-copy{margin-top:21px;color:#fff;background:transparent;font-size:17px;font-weight:800}.tabs{display:grid;grid-template-columns:1fr 1fr;height:48px;background:#fff;border-bottom:1px solid #eef2f6}.tab{position:relative;background:transparent;text-align:center;line-height:48px;font-size:16px}.tab.active{color:var(--primary-red)}.tab.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--primary-red)}.score-list{margin:14px 11px 0;padding:0 11px;background:#fff;border-radius:8px}.score-row{display:grid;grid-template-columns:75px 1fr 85px;gap:8px;padding:11px 0;border-bottom:1px solid #eef2f6;align-items:center}.score-row:last-child{border-bottom:none}.score-left{line-height:1.6;font-size:13px}.score-main{min-width:0;text-align:center}.score-teams,.league-name{color:#111827;font-weight:800}.score-teams{font-size:14px;line-height:1.35;word-break:break-word}.score-line{margin-top:10px;font-size:13px}.score-red{color:red}.score-right{text-align:center;line-height:1.7;font-size:12px}.league-badge{display:inline-block;min-width:59px;padding:4px 5px;background:#4f6fc6;color:#fff;font-weight:800}.finished{color:var(--accent-green)}.odds-text{color:#111827;font-size:12px}.mine-toolbar{height:48px;display:grid;grid-template-columns:75px 1fr 95px 55px;align-items:center;text-align:center;background:#fff;border-bottom:1px solid #d7dbe0;font-size:15px}.sport-name{color:#697386;font-weight:800}.status-filter,.edit-btn,.save-help{background:transparent;font-weight:800}.status-filter,.edit-btn{color:#3478e5}.save-help{color:#d9822b}.status-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:7px 11px;padding:11px 18px 18px;background:#fff;border-bottom:1px solid #d7dbe0}.status-option{height:32px;color:#8b95a1;background:#fff;border:1px solid #d7dbe0;border-radius:8px;text-align:center}.status-option.active{color:#3478e5;border-color:#3478e5}.summary{display:grid;grid-template-columns:1fr 1fr;padding:21px 12px;background:#fff;text-align:center;border-bottom:1px solid #d7dbe0}.num{margin:4px 0 9px;font-size:15px;font-weight:800}.mine-empty{margin:14px 11px}.plan-list{background:#fff}.plan-row{min-height:59px;display:grid;grid-template-columns:52px 90px 1fr 17px;gap:7px;align-items:center;padding:10px 12px;border-bottom:1px solid #eef2f6}.plan-row.editing{grid-template-columns:24px 52px 90px 1fr 17px}.check-circle{display:inline-block;width:19px;height:19px;border:2px solid #c6ccd6;border-radius:50%}.check-circle.checked{border-color:#3478e5;background:#3478e5}.date-box{width:46px;border:1px solid #d7dbe0;border-radius:8px;text-align:center;overflow:hidden;line-height:1.7;font-size:12px}.date-box div:first-child{background:#e8f8fd}.time-small{color:#a6adb7}.plan-status{min-height:30px;display:grid;place-items:center;color:#fff;font-size:13px}.plan-status.waiting{background:#85aef0}.plan-status.success{background:var(--accent-green)}.plan-status.danger{background:#b8b8b8}.plan-info{min-width:0;text-align:right;line-height:1.6;font-size:13px}.plan-info div{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.arrow{color:#697386;font-size:26px}.info-row{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #eef2f6}.info-row:last-child{border-bottom:none}.todo{line-height:1.7;padding:5px 0}.contact-btn{width:100%;margin-top:10px}.edit-bar{position:fixed;left:50%;bottom:calc(58px + env(safe-area-inset-bottom));z-index:35;width:min(100%,430px);min-height:63px;display:flex;gap:8px;align-items:center;justify-content:space-between;transform:translate(-50%);background:#fff;border-top:1px solid #d7dbe0;padding:8px 9px 9px;overflow:hidden}.select-all{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;background:transparent}.edit-actions{flex:0 0 118px;max-width:48%;display:grid;grid-template-columns:1fr 1fr;gap:5px;min-width:0}.cancel-btn,.delete-btn{width:100%;height:32px;color:#fff;border-radius:8px;padding:0;font-size:14px}.cancel-btn{background:var(--primary-red)}.delete-btn{background:#3478e5}.modal-mask{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background:#1f293394}.save-dialog,.qr-panel,.detail-panel,.match-detail-panel{position:relative;width:100%;max-width:330px;background:#fff;border-radius:8px;overflow:hidden}.save-dialog-body{min-height:125px;display:grid;grid-template-columns:100px 1fr;gap:14px;align-items:center;padding:21px 18px}.save-qr,.qr-image{width:95px;height:95px;object-fit:contain;background:#f5f6f8}.save-dialog-copy{text-align:center;color:#1f2933;font-size:15px;line-height:1.6;font-weight:800}.save-dialog-main{margin-top:4px;color:#d93025;font-size:18px}.save-dialog-note{margin-top:6px;color:#8b95a1;font-size:11px;font-weight:400;line-height:1.45}.save-dialog-actions{display:grid;grid-template-columns:1fr 1fr;height:44px;text-align:center}.dialog-cancel,.dialog-confirm{color:#fff;font-size:15px}.dialog-cancel{background:var(--accent-green)}.dialog-confirm{background:var(--primary-red)}.dialog-confirm:disabled{background:#c6cbd2;cursor:default}.qr-panel,.detail-panel{padding:22px 14px 14px;text-align:center}.close-button{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:30px;height:30px;color:#697386;background:#f3f4f6;border-radius:8px}.qr-title{font-size:17px;font-weight:800}.qr-image{width:180px;height:180px;margin:12px auto}.qr-copy{color:#1f2933;font-weight:800;line-height:1.5;margin-bottom:5px}.qr-note{line-height:1.5;margin-bottom:9px}.detail-panel{text-align:left}.detail-panel .qr-title{text-align:center}.detail-summary{margin:12px 0;padding:10px;color:#1f2933;background:#f5f6f8;border-radius:8px;font-weight:800}.detail-row{display:grid;gap:4px;padding:10px 0;border-top:1px solid #eef2f6}.detail-row strong,.detail-row span{min-width:0;word-break:break-word}.detail-row span{color:#8b95a1;font-size:13px}.match-detail-panel{max-width:min(392px,calc(100vw - 28px));max-height:calc(100vh - 72px);display:flex;flex-direction:column;padding:18px 12px 0}.match-detail-title{padding:0 34px;color:#1f2933;text-align:center;font-size:18px;font-weight:800;line-height:1.35}.match-detail-meta{margin-top:5px;color:#8b95a1;text-align:center;font-size:13px;font-weight:700}.match-detail-note{margin:10px 0 8px;padding:8px 10px;color:#667085;background:#f5f6f8;border-radius:8px;font-size:12px;line-height:1.5}.match-market-list{overflow-y:auto;padding-bottom:12px}.match-market-block{margin-top:10px;border:1px solid #e6ebf0;border-radius:8px;overflow:hidden}.match-market-title{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;padding:0 9px;color:#1f2933;background:#f7f8fa;font-size:13px;font-weight:800}.match-market-title em{flex:none;color:#8b95a1;font-style:normal;font-size:11px;font-weight:400}.match-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.match-detail-grid.score{display:flex;flex-direction:column}.match-detail-group{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.match-detail-grid:not(.score) .match-detail-group{display:contents}.match-detail-option{min-height:48px;display:grid;place-items:center;gap:2px;padding:5px 3px;border-right:1px solid #e6ebf0;border-bottom:1px solid #e6ebf0;background:#fff}.match-detail-option span{max-width:100%;color:#3b4450;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.match-detail-option b{color:#8b95a1;font-size:12px}.match-detail-option.active{color:#fff;background:var(--primary-red)}.match-detail-option.active span,.match-detail-option.active b{color:#fff}.match-detail-option.disabled{color:#a9b1b8;background:#f4f6f8}.match-detail-option.disabled span,.match-detail-option.disabled b{color:#a9b1b8}.match-detail-option.other-wide{grid-column:span 3}.match-detail-empty{padding:22px 0;color:#8b95a1;text-align:center}.match-detail-actions{display:grid;grid-template-columns:1fr 1fr;height:44px;margin:0 -12px}.match-draft-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 -12px;padding:9px 12px;color:#1f2933;background:#fff8f7;border-top:1px solid #f0e2df;font-size:13px;font-weight:800}.match-draft-summary span{flex:none}.match-draft-summary em{min-width:0;color:#8b95a1;font-style:normal;font-size:12px;font-weight:500;line-height:1.35;text-align:right;word-break:break-word}.match-detail-go{min-height:42px;margin:0 -12px;color:#fff;background:#1f2933;font-size:14px;font-weight:800}.bottom-tabs{position:fixed;left:50%;bottom:0;z-index:25;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:min(100%,430px);transform:translate(-50%);padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e4e8ec}.tab-button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:46px;gap:3px;color:#3f3f46;background:transparent;border-radius:8px}.tab-button span{font-size:11px;font-weight:800}.tab-button.active{color:var(--primary-red);background:var(--primary-red-soft)}@media(max-width:350px){.discipline-badge span{display:none}.bottom-controls{gap:5px}.pass-chip{flex-basis:58px;font-size:12px}.trash-btn{flex-basis:38px}.save-mini{flex-basis:52px}.mode-chip{min-height:32px;font-size:11px}.markets-with-side-action{grid-template-columns:minmax(0,1fr) 44px}.all-markets-btn.side{width:44px;font-size:13px}.markets-with-side-action .market-row{grid-template-columns:64px minmax(0,1fr)}.markets-with-side-action .market-title{padding:5px 3px;font-size:11px}.mine-toolbar{grid-template-columns:60px 1fr 80px 48px;font-size:13px}.score-row{grid-template-columns:60px 1fr 72px}.odds-grid.market-score,.odds-grid.market-goals,.score-option-group{grid-template-columns:repeat(3,minmax(0,1fr))}}
