@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap');
:root{font-family:'Be Vietnam Pro',sans-serif;color:#253c33;background:#f6f7f9;font-synthesis:none;font-size:13px}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button{border:0;background:none;color:inherit}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #9cc354;outline-offset:3px}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:white;border-right:1px solid #e6eae6;padding:36px 24px;display:flex;flex-direction:column}.brand{font-size:28px;font-weight:800;letter-spacing:-1.3px;display:flex;align-items:center;gap:8px}.brand-icon{display:grid;place-items:center;width:32px;height:36px;font-size:38px;color:#2e6a48}.brand-dot{color:#76a846}.brand .brand-dot{margin-left:-8px}.nav-label{font-size:9px;font-weight:600;letter-spacing:1.5px;color:#a0a7a2;margin:49px 12px 16px}.nav-item{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:14px 13px;border-radius:7px;margin-bottom:7px;font-size:12px;font-weight:500;color:#727b76}.nav-item>span:first-child{font-size:20px}.nav-item.active{background:#edf3e9;color:#315b36}.nav-arrow,.pill{margin-left:auto}.pill{border:1px solid #dfe5dc;border-radius:5px;padding:1px 6px;font-size:10px}.league-label{margin-top:30px}.league-nav{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:12px;border-radius:7px;font-size:12px}.league-nav.selected{background:#f2f5ef}.league-nav small{display:block;font-size:10px;color:#8d9690;margin-top:4px}.league-icon{width:32px;height:32px;display:inline-grid;place-items:center;border-radius:8px;font-size:10px;font-weight:800;flex-shrink:0}.purple{background:#f1e9f7;color:#743b8e}.blue{background:#e8effc;color:#3666b2}.orange{background:#fff0e5;color:#d17734}.red{background:#fdeaea;color:#b64d52}.sidebar-bottom{margin-top:auto;padding:35px 10px 0}.small-ball{display:block;font-size:26px;color:#89a379;margin-bottom:14px}.sidebar-bottom strong{font-size:12px}.sidebar-bottom p{font-size:10px;color:#949e97;line-height:1.9}.version{display:block;font-size:8px;letter-spacing:1px;color:#adb4ae;margin-top:29px}main{margin-left:248px}.topbar{height:78px;padding:0 44px;border-bottom:1px solid #e4e8e4;display:flex;align-items:center;justify-content:space-between;background:#fff;font-size:11px;color:#879089}.topbar strong{color:#46574b;font-weight:500}.crumb{margin:0 14px;color:#c5cac6}.timezone{display:flex;align-items:center;gap:9px}.timezone b{font-size:9px;font-weight:500;background:#f1f4f0;padding:5px 7px;border-radius:4px;color:#61765e}.content{max-width:1260px;padding:32px 44px;margin:auto}.hero{min-height:262px;border-radius:12px;background:#143b2f;overflow:hidden;color:white;padding:33px 36px;display:flex;justify-content:space-between;position:relative}.eyebrow{font-size:8px;letter-spacing:1.8px;font-weight:600;display:flex;align-items:center;gap:8px;color:#bfda99}.eyebrow>span{width:5px;height:5px;border-radius:50%;background:#b4d57e}h1{font-size:34px;line-height:1.3;letter-spacing:-1.1px;font-weight:600;margin:17px 0 12px}.hero p{font-size:11px;color:#adc3b6;margin:0}.hero-link{display:flex;align-items:center;justify-content:space-between;width:185px;font-size:10px;color:#d4e8b4;margin-top:26px}.hero-link span{font-size:18px}.pitch{width:40%;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(-10deg);opacity:.8}.pitch-inner{width:100%;height:172px;position:relative;border:1px solid #557960;border-radius:4px;background:repeating-linear-gradient(90deg,#ffffff02 0 36px,#ffffff05 36px 72px)}.midline{height:100%;width:1px;position:absolute;left:50%;background:#557960}.circle{position:absolute;border:1px solid #557960;border-radius:50%;height:65px;width:65px;top:50%;left:50%;transform:translate(-50%,-50%)}.box{width:40px;height:88px;border:1px solid #557960;position:absolute;top:40px}.box.left{left:-1px}.box.right{right:-1px}.pitch-ball{position:absolute;left:62%;top:45%;width:52px;height:52px;background:#d3eab0;color:#244734;border-radius:50%;display:grid;place-items:center;font-size:40px;box-shadow:0 14px 28px #061e1b66}.pitch>span{font-size:7px;letter-spacing:3px;margin-top:16px;color:#9db892}.notice{font-size:10px;color:#8e7643;background:#faf5e9;border:1px solid #eee5cf;border-radius:6px;margin:16px 0 30px;padding:12px 14px;line-height:1.7}.notice.connected{background:#eaf2e8;color:#446947;border-color:#dce9d7}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.muted{color:#8d988f;font-size:8px;letter-spacing:1.4px}h2{font-size:24px;letter-spacing:-.7px;font-weight:600;margin:8px 0 0}.refresh{display:inline-flex;align-items:center;gap:7px;background:white;border:1px solid #dfe5de;border-radius:6px;padding:9px 12px;font-size:11px}.controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.date-controls{display:flex;gap:6px;align-items:center}.date-controls>button{height:35px;border:1px solid #dfe5de;border-radius:5px;background:white;min-width:32px;font-size:18px}#today{font-size:10px;padding:0 12px;margin-left:5px}.date-picker{display:flex;align-items:center;gap:9px;border:1px solid #dfe5de;border-radius:5px;background:white;padding:8px 10px}.date-picker input{border:0;background:transparent;max-width:126px;font-size:11px;color:#415347}.search{display:flex;gap:10px;align-items:center;padding:8px 12px;background:white;border:1px solid #e3e7e2;border-radius:6px}.search span{font-size:20px;color:#88968a}.search input{width:154px;border:0;outline:0;font-size:11px;color:#304a38}.search:focus-within{outline:2px solid #9cc354}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:23px}.day{border:1px solid #e3e7e2;background:white;border-radius:8px;padding:13px 0 8px;display:flex;align-items:center;flex-direction:column;gap:7px}.day>span{font-size:10px;color:#8b958d}.day>strong{font-size:19px;font-weight:600}.day small{font-weight:400;font-size:11px;color:#939d96}.day i{width:4px;height:4px;border-radius:50%;margin-top:2px;background:transparent}.day.selected{background:#eaf1df;border-color:#acc08e}.day.selected>span,.day.selected small{color:#547039}.day.selected i{background:#547039}.filters{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid #e2e7e1;padding-bottom:20px}.filter{padding:9px 13px;border:1px solid #e0e5de;background:#fff;border-radius:6px;font-size:10px;color:#778276}.filter.selected{background:#294b35;border-color:#294b35;color:white}.results-meta{display:flex;justify-content:space-between;padding:21px 0 15px;font-size:10px;color:#939e94}.results-meta>span:first-child{color:#60715f;text-transform:capitalize}.league-group{background:white;border:1px solid #e3e8e1;border-radius:9px;margin-bottom:15px;overflow:hidden}.league-group>header{display:flex;align-items:center;gap:10px;padding:12px 19px;background:#fcfdfb;border-bottom:1px solid #edf0eb;font-size:11px}.league-group>header .league-icon{height:25px;width:25px;font-size:8px;border-radius:6px}.country{font-size:10px;color:#97a092;border-left:1px solid #dfe5db;padding-left:10px}.group-count{margin-left:auto;font-size:9px;color:#9aa391}.match{display:flex;align-items:center;padding:19px;gap:20px;border-bottom:1px solid #f0f2ef;min-height:88px}.match:last-child{border:0}.match-time{min-width:87px;border-right:1px solid #edf0ea;display:flex;flex-direction:column;gap:7px}.match-time strong{font-size:13px;font-weight:600}.match-time>span{font-size:8px;color:#94a08f}.match-time .live{color:#cf5d39}.teams{display:grid;grid-template-columns:1fr 44px 1fr;align-items:center;gap:14px;flex:1}.team{display:flex;align-items:center;gap:12px;font-size:11px;font-weight:500}.home{justify-content:flex-end;text-align:right}.team-badge{width:31px;height:35px;clip-path:polygon(0 0,100% 0,100% 70%,50% 100%,0 70%);display:inline-grid;place-items:center;flex-shrink:0;font-size:8px;font-weight:800}.score{text-align:center;font-size:9px;letter-spacing:1px;color:#a0aa9b;background:#f7f9f4;padding:8px 4px;border-radius:4px}.score.has-score{font-size:13px;color:#344e38;font-weight:600;white-space:nowrap}.save{font-size:23px;color:#b6c1b1;min-width:32px;min-height:36px}.save.is-saved{color:#b99c42}.empty{border:1px dashed #d6dfd0;border-radius:9px;text-align:center;padding:48px 18px;color:#7a8974;font-size:12px;background:#fff}.empty strong{display:block;color:#445c3c}.empty p{font-size:11px;line-height:1.8}.empty-icon{display:block;font-size:28px;margin-bottom:16px}footer{display:flex;justify-content:space-between;align-items:center;color:#9da79a;font-size:9px;border-top:1px solid #e1e6dc;margin-top:32px;padding:22px 0}footer>span:first-child{font-weight:700;color:#718269;font-size:15px}.footer-copy{font-size:9px;font-weight:400;margin-left:12px;color:#9da79a}button:hover{filter:brightness(.96)}
[hidden]{display:none!important}.table-scroll{overflow-x:auto}.standings-table{width:100%;border-collapse:collapse;min-width:740px;font-size:11px;font-variant-numeric:tabular-nums}.standings-table caption{text-align:left;padding:14px 18px;color:#84917d;font-size:10px}.standings-table th,.standings-table td{padding:14px 10px;text-align:center;border-bottom:1px solid #edf0ea;white-space:nowrap}.standings-table thead th{background:#f5f8f1;color:#7b8a73;font-size:9px;font-weight:500}.standings-table th:nth-child(2){text-align:left}.standings-table tbody th{font-weight:500;text-align:left;min-width:210px}.standings-table tbody tr:hover{background:#f7faf3}.standing-team{display:flex;align-items:center;gap:10px}.rank-cell{color:#85917d}.points-cell{font-weight:700;color:#315c33;background:#f2f7ec}.deduction{display:block;color:#a47939;margin-top:6px;font-weight:400}.standings-note{font-size:10px;line-height:1.8;color:#87927f}.standings-group .group-count{max-width:55%;text-align:right;line-height:1.6}
@media(max-width:520px){.sidebar{flex-wrap:wrap}.sidebar .brand{flex-basis:100%;margin-bottom:5px}.sidebar .nav-item{flex:1;justify-content:center}.standings-table{min-width:700px}.standings-table th,.standings-table td{padding:12px 8px}}
.odds-unavailable{padding:0 19px 14px;font-size:9px;color:#949f8e;border-bottom:1px solid #edf0ea}.match-odds{border-bottom:1px solid #e4eadf;padding:0 19px 15px}.match-odds summary{cursor:pointer;font-size:11px;color:#466740;padding-top:5px;min-height:30px}.match-odds summary>span{font-size:9px;color:#8d9b85;margin-left:10px}.odds-body{padding-top:14px}.odds-provider{font-size:11px;font-weight:600;margin-bottom:10px}.odds-provider>span{font-size:9px;font-weight:400;color:#899680;margin-left:8px}.odds-markets{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.odds-markets section{background:#f6f9f2;border:1px solid #e6edde;border-radius:7px;padding:12px}.odds-markets h3{font-size:10px;font-weight:600;margin:0 0 10px}.odds-cell{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:10px;padding:8px 0;border-top:1px solid #e5ebdf}.odds-cell>span{color:#79866e}.odds-cell strong{color:#345735;font-variant-numeric:tabular-nums}.odds-cell b{color:#485e3f;margin-left:4px}.odds-note{font-size:9px;line-height:1.8;color:#87927c;margin:10px 0 0}@media(max-width:520px){.odds-markets{grid-template-columns:1fr}.match-odds{padding:0 12px 12px}.match-odds summary>span{display:block;margin:6px 0}.odds-provider>span{display:block;margin:5px 0}}
.balance-panel{background:#edf4e6;border:1px solid #cdddbf;border-radius:8px;padding:16px;margin-bottom:18px}.balance-panel>strong{font-size:12px}.balance-panel p,.balance-panel small{font-size:10px;line-height:1.8;color:#758469}.balanced-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.balanced-pair>div{background:white;border-radius:6px;padding:12px;display:flex;justify-content:space-between;gap:10px;font-size:11px}.balanced-pair b{font-variant-numeric:tabular-nums;color:#315b36}.balance-panel .balance-warning{color:#977338}
.recommendation-reason{padding:16px 19px;background:#f0f5e9;border-bottom:1px solid #dfe9d3}.recommendation-reason strong{font-size:11px;color:#3c623a}.recommendation-reason p,.recommendation-reason small{font-size:10px;line-height:1.8;color:#75816e}.recommendation-reason p{margin:7px 0}.balance-panel details summary{cursor:pointer;font-size:11px}.balance-panel details{max-height:260px;overflow:auto}@media(max-width:800px){.sidebar{flex-wrap:wrap}.sidebar .brand{flex-basis:100%}.sidebar .nav-item{flex:1;justify-content:center;white-space:nowrap}}@media(max-width:520px){.sidebar .nav-item{flex-basis:40%}}
.sort-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:16px;font-size:11px;color:#718269}.sort-controls select{font:inherit;color:#34543b;background:white;border:1px solid #dfe5de;border-radius:6px;padding:10px;max-width:100%;cursor:pointer}.sort-controls select:focus-visible{outline:3px solid #9cc354;outline-offset:2px}.match-league-label{display:flex;align-items:center;gap:7px;font-size:9px;color:#88947f;padding:12px 19px 0}.match-league-label .league-icon{width:22px;height:22px;font-size:7px;border-radius:5px}.date-group-icon{background:#edf3e7;color:#6e8c52}@media(max-width:520px){.sort-controls{justify-content:space-between}.match-league-label{padding-left:10px}}
@media(min-width:1500px){.content{padding-top:40px}.hero{min-height:290px;padding:38px 42px}h1{font-size:40px}}
@media(max-width:1100px){.sidebar{width:210px;padding:30px 17px}main{margin-left:210px}.content{padding:26px}.topbar{padding:0 26px}.match{gap:12px;padding:16px 12px}.teams{gap:9px}.team{gap:7px;font-size:10px}.hero{padding:28px}.pitch{width:36%}h1{font-size:30px}.search input{width:120px}}
@media(max-width:800px){.sidebar{position:static;width:100%;padding:17px 20px;flex-direction:row;align-items:center;gap:10px;border-bottom:1px solid #e2e8df}.brand{font-size:24px;margin-right:auto}.brand-icon{font-size:30px;width:25px}.sidebar .nav-label,.sidebar #league-nav,.sidebar-bottom,.nav-arrow{display:none}.nav-item{width:auto;margin:0;padding:9px;font-size:10px;gap:6px}.pill{display:none}main{margin-left:0}.topbar{height:52px;padding:0 20px;font-size:10px}.content{padding:20px}.hero{min-height:235px}.hero p{max-width:235px;line-height:1.8}.pitch{width:32%;margin-left:10px}.pitch-inner{height:140px}.box{height:70px;top:35px;width:27px}.pitch>span{display:none}.pitch-ball{left:40%;width:42px;height:42px;font-size:32px}.circle{height:50px;width:50px}}
@media(max-width:520px){.sidebar{padding:12px}.brand{font-size:21px}.nav-item{font-size:9px;padding:8px 7px}.nav-item>span:first-child{font-size:17px}.topbar{padding:0 15px}.timezone>span{display:none}.content{padding:15px}.hero{padding:24px;min-height:225px}.hero>div:first-child{z-index:1}h1{font-size:29px}.hero p{font-size:10px;max-width:230px}.pitch{position:absolute;width:160px;right:-65px;top:70px;opacity:.35}.eyebrow{font-size:7px}.notice{margin-bottom:25px;font-size:9px}.controls{flex-wrap:wrap;gap:12px}.search{width:100%}.search input{width:100%}.date-controls{width:100%}.date-picker{flex:1;justify-content:center}.week{gap:4px}.day{padding:12px 0 7px}.day>span{font-size:8px}.day>strong{font-size:17px}.day small{font-size:8px}.filters{gap:6px}.filter{font-size:9px;padding:8px 10px}.results-meta{font-size:9px}.match{gap:8px;padding:16px 10px}.match-time{min-width:65px}.match-time strong{font-size:11px}.match-time>span{font-size:7px}.teams{gap:5px;grid-template-columns:1fr 28px 1fr}.team{flex-direction:column;font-size:9px;text-align:center;gap:7px}.home{flex-direction:column-reverse}.team-badge{width:27px;height:29px;font-size:7px}.score{font-size:8px}.score.has-score{font-size:10px;letter-spacing:0}.save{font-size:21px;min-width:23px;padding:0}.country{display:none}.league-group>header{padding:11px 12px}footer{font-size:8px}.footer-copy{display:none}}

.team-logo{width:31px;height:35px;position:relative;display:inline-grid;place-items:center;flex-shrink:0}.team-logo img{position:absolute;width:100%;height:100%;object-fit:contain;opacity:0}.team-logo.logo-loaded img{opacity:1}.team-logo.logo-loaded .team-badge{visibility:hidden}
@media(min-width:901px){.sidebar{overflow-y:auto}}
@media(max-width:520px){.team-logo{width:27px;height:29px}}

.league-logo{position:relative;overflow:hidden}.league-logo img{position:absolute;inset:0;width:100%;height:100%;padding:3px;object-fit:contain;opacity:0}.league-logo.logo-loaded{background:#fff}.league-logo.logo-loaded img{opacity:1}.league-logo.logo-loaded .league-fallback{visibility:hidden}.filter{display:inline-flex;align-items:center;justify-content:center;gap:6px}.filter .league-icon{width:22px;height:22px;font-size:7px;border-radius:4px}

.match-standings-body .table-scroll{margin-bottom:12px}.match-team-side{display:block;margin-top:5px;color:#778276;font-size:10px;font-weight:400}.match-standings-body>p{line-height:1.7}.match-standings summary:focus-visible{outline:3px solid #9cc354;outline-offset:-3px}

.history-section{margin:16px 0 22px}.history-section h3{font-size:13px}.history-table{min-width:560px}.history-table small{display:block;font-size:10px;color:#778276;margin-top:5px;white-space:normal}.history-table .history-score{white-space:nowrap;text-align:center}.history-table .standing-team{font-size:11px}.history-score strong{font-size:14px;color:#294b35}.match-history summary:focus-visible{outline:3px solid #9cc354;outline-offset:-3px}

#recommendation-controls{margin:0 0 16px;line-height:2}#recommendation-range{font:inherit;max-width:100%;padding:8px;border:1px solid #dfe5de;border-radius:6px;background:white;color:#294b35}#recommendation-range:focus-visible{outline:3px solid #9cc354;outline-offset:2px}

.handicap-prediction{display:flex;flex-direction:column;gap:7px;padding:14px 19px;background:#edf5e8;border-bottom:1px solid #dce7d6}.handicap-prediction>span{font-size:10px;color:#58714c}.handicap-prediction>strong{font-size:14px;color:#294b35}.handicap-prediction>small{font-size:10px;color:#60715f}

.prediction-results{background:#fff;border:1px solid #e1e7dc;border-radius:9px;padding:20px;margin:18px 0}.prediction-results-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.prediction-results-heading h3{margin:0 0 6px}.prediction-results-heading span,.result-formula{font-size:11px;color:#788672;line-height:1.7}.prediction-rate{display:flex;align-items:baseline;gap:14px;margin:18px 0}.prediction-rate strong{font-size:30px;color:#315b36}.prediction-rate span{font-size:12px}.prediction-counts{display:flex;flex-wrap:wrap;gap:8px}.result-count{padding:7px 10px;background:#f5f7f2;border-radius:5px;font-size:11px}.result-win,.result-half-win{color:#287443}.result-loss,.result-half-loss{color:#a24c37}.result-push{color:#856b24}.result-pending,.result-void{color:#778276}.prediction-result-history{margin-top:14px}.prediction-result-history summary{cursor:pointer;font-weight:600}.prediction-result-history td small{display:block;max-width:240px;white-space:normal;font-size:10px;color:#84907c;line-height:1.5;margin-top:5px}.result-pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:12px;font-size:11px}@media(max-width:520px){.prediction-results{padding:14px}.prediction-results-heading,.prediction-rate{align-items:flex-start;flex-direction:column;gap:8px}}

/* Premium recommendations: only placeholder content is blurred, never the real pick. */
.premium-match,.premium-locked{border:1px solid #e6d8ae;border-radius:14px;background:linear-gradient(125deg,#fffdf4,#fff7d9);margin:16px 0;padding:16px;box-shadow:0 3px 12px #a980220d;overflow:hidden}
.premium-badge{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#795311;margin-bottom:12px;font-size:13px}.premium-badge strong{font-size:17px}.premium-badge>span:not(.premium-star){font-size:12px}.premium-star{font-size:28px;color:#cc8b00;animation:premium-sparkle 2s ease-in-out infinite;text-shadow:0 0 12px #ffd55f}.premium-refunded{color:#286440;font-weight:600}
@keyframes premium-sparkle{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.16) rotate(8deg);filter:brightness(1.3)}}
.premium-blur{display:flex;flex-direction:column;gap:18px;align-items:center;padding:20px;filter:blur(7px);user-select:none;pointer-events:none;color:#537058;font-size:18px}.premium-lock-content{text-align:center;max-width:660px;margin:auto}.premium-lock-content>strong{font-size:17px;color:#5f471c}.premium-lock-content p{line-height:1.7;font-size:13px}.premium-policy{font-size:12px;line-height:1.8;color:#735d36;margin:14px 0}
.premium-button,.premium-mark{font:inherit;cursor:pointer;border:1px solid #b6861e;border-radius:8px;padding:11px 17px;background:#79560f;color:#fff;white-space:normal}.premium-mark{margin:12px 16px;background:#fff7dc;color:#76550d;font-size:12px}.premium-button:disabled{opacity:.55;cursor:not-allowed}.standings-table td.premium-result-locked{white-space:normal;line-height:1.7}.premium-result-locked strong{font-weight:600}.premium-match .handicap-prediction{margin-top:6px}#premium-notice{font-size:13px;line-height:1.7;color:#47623e}#premium-notice:empty{display:none}#premium-dialog{width:min(94vw,520px);max-width:520px}#premium-dialog-message{color:#77501b;min-height:20px}#premium-dialog .dialog-actions{flex-wrap:wrap}
@media(prefers-reduced-motion:reduce){.premium-star{animation:none}}
@media(max-width:650px){.premium-match,.premium-locked{padding:12px;margin:12px 0}.premium-match .match{padding-left:4px;padding-right:4px}#premium-dialog .dialog-actions{flex-direction:column}}

.visibility-status{display:inline-block;margin:8px 0;font-size:11px;color:#547039}

/* Keep each recommendation and its details inside one distinct card. */
.recommendation-match,.schedule-match{margin:12px;border:1px solid #dce4d8;border-radius:10px;background:#fff;overflow:hidden}.recommendation-match>.match-history:last-child,.schedule-match>.match-history:last-child{border-bottom:0}
@media(max-width:520px){.recommendation-match,.schedule-match{margin:12px 8px}}

#unlock-success-dialog{width:min(94vw,560px);max-width:560px;max-height:85vh;overflow-y:auto}#unlock-success-title{color:#286440}#unlock-success-balance{font-weight:600}.unlocked-pick{padding:18px;border:2px solid #52764e;border-radius:10px;background:#edf5e8}.unlocked-pick h3{margin:0;font-size:16px;overflow-wrap:anywhere}.unlocked-pick>span{font-size:11px;color:#58714c}.unlocked-pick>strong{display:block;margin-top:10px;font-size:20px;color:#294b35;overflow-wrap:anywhere}

.connection-screen{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:#f6f7f9;overflow-y:auto}.connection-card{max-width:460px;width:100%;background:#fff;border:1px solid #dfe6d8;border-radius:16px;padding:32px;text-align:center;box-shadow:0 15px 70px #153b2f0c}.connection-card .brand{justify-content:center;color:#253c33}.connection-card h1{font-size:24px;color:#294b35;margin:18px 0 12px}.connection-card p{font-size:13px;color:#60715f;line-height:1.8}.connection-spinner{display:block;width:36px;height:36px;margin:28px auto 0;border:3px solid #e2eadc;border-top-color:#52764e;border-radius:50%;animation:connection-spin 1s linear infinite}.connection-failed .connection-spinner{display:none}.connection-screen:not([hidden])~*{visibility:hidden}@keyframes connection-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.connection-spinner{animation:none}}

#manual-pick-dialog{width:min(94vw,520px);max-width:520px}#manual-pick-dialog label{display:flex;flex-direction:column;gap:6px;margin:12px 0}#manual-pick-dialog input,#manual-pick-dialog select,#manual-pick-dialog textarea{font:inherit;padding:10px;border:1px solid #dfe5de;border-radius:6px;width:100%;box-sizing:border-box}#manual-pick-dialog p{font-size:13px;line-height:1.7}#manual-pick-dialog .dialog-actions{flex-wrap:wrap}

#manual-quotes{border:1px solid #dfe5de;border-radius:8px;padding:12px}#manual-quotes legend{font-size:13px}#manual-pick-dialog .manual-quote-option{flex-direction:row;align-items:center;gap:12px;padding:12px;border:1px solid #dfe5de;border-radius:8px;cursor:pointer}#manual-pick-dialog .manual-quote-option input{width:auto}#manual-pick-dialog .manual-quote-option:has(input:checked){border-color:#52764e;background:#edf5e8}.manual-quote-option span{display:flex;flex-direction:column;gap:6px}.manual-quote-option small{color:#60715f}

/* Installed PWA: accommodate phone notches and keep controls comfortable to tap. */
@media(display-mode:standalone){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.connection-screen{padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom))}}
@media(max-width:650px){input,select,textarea{font-size:16px!important}.refresh,.primary,.premium-button,.date-controls>button,.nav-item{min-height:44px}.content{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.account-menu{flex-wrap:wrap}.team{overflow-wrap:anywhere}.search input{max-width:100%}dialog{max-height:85vh;max-height:85dvh;overflow:auto}}

.review-actions { padding: 12px 16px; color: #294b35; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
#push-status:empty { display: none; }

/* Compact navigation and a focused recommendation queue. */
.filters { align-items: center; padding-bottom: 14px; }
.filters .filter { min-height: 40px; }
.league-picker-trigger { color: #294b35; border-color: #a8bba0; font-weight: 600; }
#league-picker { width: min(94vw, 620px); max-width: 620px; }
.league-picker-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.league-picker-heading h2 { margin-top: 0; }
.league-picker-heading p { margin-bottom: 0; color: #60715f; }
.league-picker-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.league-picker-options .filter { display: flex; align-items: center; gap: 8px; text-align: left; min-height: 48px; font-size: 12px; }
#recommendation-controls { margin-bottom: 18px; }
.recommendation-tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 5px; background: #eaf0e6; border: 1px solid #dce5d6; border-radius: 10px; margin-bottom: 14px; }
.recommendation-tabs [role=tab] { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 16px; border-radius: 7px; color: #52654c; font-size: 13px; font-weight: 500; }
.recommendation-tabs [aria-selected=true] { background: #294b35; color: #fff; box-shadow: 0 2px 5px #153b2f18; }
.tab-count { display: inline-grid; place-items: center; min-width: 22px; min-height: 22px; padding: 2px 6px; border-radius: 12px; background: #ffffffb3; color: #294b35; font-size: 12px; font-variant-numeric: tabular-nums; }
.recommendation-toolbar { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; }
.recommendation-toolbar label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: #60715f; }
.recommendation-toolbar select { font: inherit; padding: 10px; border: 1px solid #dfe5de; border-radius: 6px; color: #294b35; background: white; max-width: 100%; min-height: 40px; }
.recommendation-tab-hint { color: #60715f; font-size: 12px; line-height: 1.7; margin: 10px 0 0; }
.recommendation-tab-hint:empty { display: none; }
@media(max-width:650px) {
  body[data-entry=app] .sidebar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; padding: 12px 12px 8px; }
  body[data-entry=app] .sidebar .brand { grid-column: 1 / -1; font-size: 23px; margin-bottom: 2px; }
  body[data-entry=app] .sidebar .nav-item { width: 100%; min-width: 0; min-height: 54px; margin: 0; padding: 6px 2px; flex-direction: column; gap: 4px; font-size: 10px; white-space: normal; position: relative; }
  body[data-entry=app] .sidebar .nav-arrow { display: none; }
  body[data-entry=app] .sidebar .pill { position: absolute; top: 2px; right: 4px; margin: 0; font-size: 9px; }
  body[data-entry=app] .topbar { min-height: 0; padding: 8px 12px; row-gap: 6px; }
  body[data-entry=app] .account-menu { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; max-width: 100%; padding-bottom: 3px; gap: 8px; }
  body[data-entry=app] .account-menu > * { flex-shrink: 0; }
  body[data-entry=app] .account-menu .refresh { white-space: nowrap; min-height: 40px; }
  body[data-entry=app] .content { padding-top: 14px; }
  body.signed-in .hero { min-height: 0; padding: 14px 16px; margin-bottom: 16px; border-radius: 9px; }
  body.signed-in .hero h1 { margin: 0; font-size: 18px; letter-spacing: -.4px; }
  body.signed-in .hero h1 br { display: none; }
  body.signed-in .hero .eyebrow, body.signed-in .hero p, body.signed-in .hero-link, body.signed-in .hero .pitch { display: none; }
  body.signed-in[data-view=recommendations] .hero, body.signed-in[data-view=standings] .hero { display: none; }
  .section-heading { margin-bottom: 14px; }
  .recommendation-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .recommendation-tabs [role=tab] { padding: 10px 6px; min-width: 0; font-size: 12px; }
  .recommendation-toolbar { align-items: stretch; gap: 8px; }
  .recommendation-toolbar label { flex: 1 1 190px; min-width: 0; }
  .recommendation-toolbar .refresh { justify-content: center; }
  .filters { gap: 6px; }
  .filters .filter { min-height: 44px; padding: 8px 10px; }
  .league-picker-options .filter { padding: 10px; font-size: 11px; overflow-wrap: anywhere; }
}
@media(max-width:360px) { .league-picker-options { grid-template-columns: 1fr; } }

#recommendation-details { margin-top: 10px; color: #60715f; font-size: 12px; line-height: 1.7; }
#recommendation-details summary { cursor: pointer; padding: 6px 0; }
#recommendation-details p { margin-bottom: 0; }

@media(max-width:650px) {
  body.signed-in #source-notice { margin: 12px 0 16px; }
  .recommendation-tabs:has([role=tab]:nth-child(3)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .recommendation-tabs [role=tab] { padding: 10px 4px; gap: 4px; font-size: 11px; }
  .recommendation-tabs .tab-count { min-width: 18px; min-height: 18px; padding: 2px 4px; font-size: 10px; }
  .recommendation-toolbar .refresh { align-self: end; }
}

.filters .league-picker-trigger { display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; max-width: 320px; }
.league-picker-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.filters .league-picker-trigger > span:last-child { flex-shrink: 0; }
.filters .league-picker-trigger.selected { color: #fff; border-color: #294b35; }
@media(max-width:650px) {
  .filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filters .filter { width: 100%; min-width: 0; }
  .filters .league-picker-trigger { max-width: none; }
  .filters .league-picker-trigger:only-child { grid-column: 1 / -1; }
}

/* The selected team and its saved handicap are the focus of recommendation cards. */
:is(.recommendation-match, .premium-match) .handicap-prediction { margin: 14px; padding: 16px; gap: 10px; border: 1px solid #c9dcc0; border-left: 4px solid #52764e; border-radius: 8px; background: #edf5e8; }
.handicap-prediction .pick-eyebrow { font-size: 11px; font-weight: 700; color: #476740; }
.pick-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-width: 0; }
.pick-team { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.pick-team strong { font-size: 20px; line-height: 1.4; color: #21472e; overflow-wrap: anywhere; }
.pick-team > span { font-size: 11px; color: #60715f; }
.pick-values { display: grid; grid-template-columns: repeat(2, minmax(70px, 1fr)); gap: 10px; flex-shrink: 0; }
.pick-value { display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 10px 14px; border: 1px solid #d4e2cc; border-radius: 7px; background: #fff; }
.pick-value > span { font-size: 11px; color: #60715f; }
.pick-value strong { font-size: 22px; line-height: 1.3; color: #21472e; font-variant-numeric: tabular-nums; }
.handicap-prediction .pick-description { font-size: 12px; color: #476740; }
.handicap-prediction .pick-meta { font-size: 10px; line-height: 1.7; color: #60715f; overflow-wrap: anywhere; }
.recommendation-match > .match { padding-top: 14px; padding-bottom: 14px; }
@media (max-width: 650px) {
  :is(.recommendation-match, .premium-match) .handicap-prediction { margin: 10px 10px 12px; padding: 14px; }
  .pick-summary { flex-direction: column; align-items: stretch; gap: 12px; }
  .pick-team strong { font-size: 18px; }
  .pick-values { width: 100%; }
  .pick-value { padding: 9px 12px; }
}

/* Keep recommendation filters together instead of stacking full-width rows. */
body[data-view=recommendations] .controls { display: none; }
.recommendation-toolbar { align-items: end; gap: 12px; }
.recommendation-toolbar > label[for=recommendation-range] { flex: 0 1 216px; min-width: 0; }
.recommendation-toolbar > .search { display: flex; flex-direction: row; align-items: center; gap: 8px; flex: 1 1 180px; min-width: 0; height: 40px; }
.recommendation-toolbar .search input { width: 100%; min-width: 0; }
.recommendation-toolbar > .filters { border: 0; padding: 0; flex: 0 1 auto; min-width: 0; }
.recommendation-toolbar > .sort-controls { margin: 0; gap: 8px; flex: 1 1 240px; }
.recommendation-toolbar .sort-controls label { white-space: nowrap; }
.recommendation-toolbar .sort-controls select { min-width: 0; }
body[data-view=recommendations] .results-meta { border-top: 1px solid #e2e7e1; padding-top: 12px; }
@media(max-width:650px) {
  .recommendation-toolbar > label[for=recommendation-range], .recommendation-toolbar > .search, .recommendation-toolbar > .filters, .recommendation-toolbar > .sort-controls { flex: 1 1 100%; width: 100%; }
  .recommendation-toolbar > .search { height: 44px; }
  .recommendation-toolbar > .sort-controls { justify-content: space-between; }
  .recommendation-toolbar > .filters { display: grid; }
}

/* Status labels always include text, so meaning does not depend on color. */
.status-badge { display: inline-flex; align-items: center; justify-content: center; width: fit-content; max-width: 100%; padding: 5px 9px; border: 1px solid transparent; border-radius: 6px; font-size: 11px; font-weight: 600; line-height: 1.4; letter-spacing: normal; }
.publication-status { padding: 12px 14px 0; }
.status-review { color: #79520d; background: #fff4d7; border-color: #ead39a; }
.status-published, .status-badge.result-win, .status-badge.result-half-win { color: #25603b; background: #e8f3e9; border-color: #c4dec9; }
.status-draft, .status-finished, .status-badge.result-void { color: #54625d; background: #edf0ee; border-color: #d6ded9; }
.status-upcoming { color: #365c83; background: #edf3fa; border-color: #d1dfee; }
.status-live { color: #a1392b; background: #fff0e9; border-color: #efc5b7; }
.status-interrupted, .status-badge.result-push, .status-badge.result-pending { color: #79520d; background: #fff4d7; border-color: #ead39a; }
.status-badge.result-loss, .status-badge.result-half-loss { color: #a1392b; background: #fbece8; border-color: #efc5b7; }
.match-time > .status-badge { font-size: 10px; }
.prediction-counts .result-win { background: #e8f3e9; color: #25603b; }
.prediction-counts .result-loss { background: #fbece8; color: #a1392b; }
.prediction-counts .result-push, .prediction-counts .result-pending { background: #fff4d7; color: #79520d; }
.prediction-counts .result-void { background: #edf0ee; color: #54625d; }
@media(max-width:650px) {
  .publication-status { padding: 10px 10px 0; }
  .match-time > .status-badge { font-size: 9px; padding: 4px 5px; }
}

/* Owner actions: one approval button, with secondary actions disclosed on demand. */
.owner-recommendation-actions { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 10px; padding: 12px 14px 0; }
.review-primary-group { display: flex; flex-direction: column; gap: 5px; }
.review-primary { min-height: 44px; padding: 11px 18px; background: #294b35; border: 1px solid #294b35; border-radius: 7px; color: #fff; font-weight: 700; font-size: 13px; }
.review-primary-hint { color: #60715f; font-size: 10px; line-height: 1.5; }
.owner-action-menu { min-width: 0; max-width: 100%; }
.owner-action-menu > summary { cursor: pointer; min-height: 44px; padding: 11px 14px; border: 1px solid #d5ded2; border-radius: 7px; background: #fff; color: #46623e; font-size: 12px; }
.owner-action-menu > summary:focus-visible { outline: 3px solid #9cc354; outline-offset: 3px; }
.owner-action-menu, .owner-action-menu[open] { flex: 0 0 44px; width: 44px; }
.owner-action-items { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 0 0; }
.owner-action-items .premium-mark, .owner-action-items .visibility-status { margin: 0; }
.owner-action-items button { min-height: 44px; text-align: left; font-size: 12px; }
.review-dismiss { padding: 11px 14px; border: 1px solid #e5c8bf; border-radius: 7px; color: #a1392b; background: #fff5f0; }
@media(max-width:650px) {
  .owner-recommendation-actions { padding: 10px 10px 0; }
  .review-primary-group { flex: 1 1 150px; }
  .owner-action-items { flex-direction: column; align-items: stretch; }
  .owner-action-items button { width: 100%; }
}

.publication-status { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.publication-source { font-size: 11px; color: #60715f; }
@media(max-width:650px) {
  .recommendation-tabs:has([role=tab]:nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Keep the publication label and owner controls on one compact header row. */
.recommendation-card-header { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 12px 14px 0; }
.recommendation-card-header:empty { display: none; }
.recommendation-card-header .publication-status { padding: 0; gap: 6px; }
.recommendation-card-header .owner-recommendation-actions { display: contents; }
.recommendation-card-header .review-primary-group { flex: 0 1 auto; }
.recommendation-card-header .owner-action-menu > summary { padding: 11px 10px; }
@media(max-width:650px) {
  .recommendation-card-header { padding: 10px 10px 0; gap: 8px; }
  .recommendation-card-header .publication-source { font-size: 10px; }
}

/* Compact account buttons retain accessible names and native hover hints. */
.account-menu .account-icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; min-height: 40px; padding: 9px; font-size: 0; gap: 0; flex-shrink: 0; }
.account-menu .account-icon[aria-pressed=true] { color: #25603b; background: #e8f3e9; border-color: #c4dec9; }
@media(max-width:650px) { body[data-entry=app] .account-menu { gap: 6px; } .account-menu .account-icon { width: 44px; height: 44px; min-height: 44px; } }

.account-menu .account-icon svg { display: block; width: 20px; height: 20px; flex-shrink: 0; }

/* One collapsed entry point for supporting match information. */
.match-details > summary { cursor: pointer; padding: 12px 18px; min-height: 44px; color: #466740; font-size: 12px; font-weight: 600; line-height: 1.6; }
.match-details > summary:focus-visible { outline: 3px solid #9cc354; outline-offset: -3px; }
.match-details[open] > summary { background: #f5f8f1; border-bottom: 1px solid #e4eadf; }
.match-details-content > .match-odds { margin: 0; padding: 0 18px 8px; }
.match-details-content > .match-odds > summary { padding-top: 12px; min-height: 44px; line-height: 1.6; }
.match-details-content > :last-child { border-bottom: 0; }
@media(max-width:650px) {
  .match-details > summary { padding: 12px; }
  .match-details-content > .match-odds { padding-left: 12px; padding-right: 12px; }
}

/* Result history becomes readable cards on phones, with one shared data view. */
@media(max-width:650px) {
  .prediction-result-history .table-scroll { overflow: visible; margin-top: 12px; }
  .result-history-table { display: block; min-width: 0; width: 100%; }
  .result-history-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .result-history-table tbody { display: grid; gap: 10px; width: 100%; }
  .result-history-table tbody tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border: 1px solid #dfe7da; border-radius: 8px; background: #fff; padding: 12px; gap: 10px; min-width: 0; }
  .result-history-table tbody td { display: block; min-width: 0; padding: 0; border: 0; text-align: left; white-space: normal; overflow-wrap: anywhere; font-size: 12px; line-height: 1.6; }
  .result-history-table td::before { content: attr(data-label); display: block; color: #60715f; font-size: 10px; font-weight: 400; margin-bottom: 3px; }
  .result-history-table .result-date, .result-history-table .result-fixture, .result-history-table .result-pick, .result-history-table .result-outcome, .result-history-table .premium-result-locked { grid-column: 1 / -1; }
  .result-history-table .result-fixture { font-weight: 600; font-size: 13px; }
  .result-history-table .result-pick { padding: 8px 10px; background: #edf5e8; border-radius: 5px; color: #294b35; font-weight: 600; }
  .result-history-table .result-outcome { padding-top: 10px; border-top: 1px solid #edf0ea; }
  .result-history-table .premium-result-locked::before { display: none; }
  .prediction-result-history .result-history-table td small { max-width: none; }
  .result-pagination { gap: 8px; flex-wrap: wrap; }
}

/* Compact phone result cards: clear content, fewer repeated labels. */
@media(max-width:650px) {
  .result-history-table tbody tr { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr) minmax(0,1.3fr); gap: 8px; }
  .result-history-table .result-date::before, .result-history-table .result-fixture::before, .result-history-table .result-outcome::before { display: none; }
  .result-history-table .result-fixture small { display: none; }
  .result-history-table .result-date { font-size: 10px; color: #60715f; }
  .result-history-table .result-odds { grid-column: 1; align-self: center; }
  .result-history-table .result-score { grid-column: 2; align-self: center; text-align: center; }
  .result-history-table .result-outcome { grid-column: 3; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; padding: 0; border: 0; }
  .result-history-table .result-outcome .status-badge { text-align: center; padding: 5px 7px; font-size: 10px; }
  .result-history-table .result-outcome small { text-align: right; font-size: 9px; }
}

.result-mobile-league { display: none; }
@media(max-width:650px) {
  .result-history-table .result-date { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 10px; }
  .result-history-table .result-mobile-league { display: inline-block; margin-left: auto; font-size: 10px; font-weight: 600; color: #60715f; }
}

.recommendation-explanation { margin: 0 14px 12px; border: 1px solid #dfe7d9; border-radius: 7px; overflow: hidden; }
.recommendation-explanation > summary { cursor: pointer; min-height: 44px; padding: 12px; color: #466740; font-size: 12px; font-weight: 600; }
.recommendation-explanation > summary:focus-visible { outline: 3px solid #9cc354; outline-offset: -3px; }
.recommendation-explanation .recommendation-reason { border: 0; border-top: 1px solid #dfe7d9; }
.action-feedback { position: fixed; z-index: 1000; bottom: max(20px,env(safe-area-inset-bottom)); right: max(20px,env(safe-area-inset-right)); display: flex; align-items: center; gap: 12px; width: max-content; max-width: min(480px,calc(100vw - 32px)); padding: 12px 14px; border: 1px solid #c4dec9; border-radius: 9px; background: #edf7ef; color: #21472e; box-shadow: 0 5px 22px #153b2f25; font-size: 12px; line-height: 1.6; }
.action-feedback > span { min-width: 0; overflow-wrap: anywhere; }
.action-feedback > button { flex-shrink: 0; min-width: 44px; min-height: 44px; font-size: 24px; border-radius: 5px; }
.action-feedback-error { background: #fff1ed; color: #922f24; border-color: #efc5b7; }
@media(max-width:650px) { .recommendation-explanation { margin: 0 10px 12px; } .action-feedback { right: 12px; bottom: max(12px,env(safe-area-inset-bottom)); max-width: calc(100vw - 24px); } }

.recommendation-source { padding: 10px 12px; color: #60715f; line-height: 1.7; overflow-wrap: anywhere; }

/* Phone layout tuned around iPhone X's 375px viewport. Desktop remains unchanged. */
@media(max-width:650px) {
  body[data-entry=app] .sidebar { padding-top: max(10px,env(safe-area-inset-top)); }
  body[data-entry=app] .content { padding-left: max(10px,env(safe-area-inset-left)); padding-right: max(10px,env(safe-area-inset-right)); padding-bottom: max(20px,env(safe-area-inset-bottom)); }
  body[data-entry=app] .topbar { display: flex; align-items: center; gap: 6px; }
  body[data-entry=app] .topbar > .timezone { display: none; }
  body[data-entry=app] .topbar > .account-menu { flex-basis: auto; width: auto; margin-left: auto; overflow: visible; padding: 0; gap: 6px; }
  .mobile-account-menu { position: relative; min-width: 0; }
  .mobile-account-menu > summary { display: flex; align-items: center; gap: 6px; min-height: 44px; max-width: 165px; padding: 8px; border: 1px solid #dfe5de; border-radius: 7px; background: #fff; cursor: pointer; list-style: none; }
  .mobile-account-menu > summary::-webkit-details-marker { display: none; }
  .mobile-account-menu #account-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-account-items { position: absolute; right: 0; top: calc(100% + 6px); width: 240px; max-width: calc(100vw - 24px); padding: 8px; border: 1px solid #dfe5de; border-radius: 9px; box-shadow: 0 8px 25px #153b2f25; background: #fff; z-index: 50; }
  .topbar .mobile-account-items .account-icon { width: 100%; min-height: 44px; height: auto; padding: 10px; gap: 10px; justify-content: flex-start; border: 0; }
  .mobile-account-items .account-icon::after { content: attr(aria-label); font-size: 12px; line-height: 1.5; text-align: left; }
  .mobile-account-menu > summary:focus-visible, .mobile-filter-menu > summary:focus-visible { outline: 3px solid #9cc354; outline-offset: 2px; }
  .recommendation-toolbar > .search { flex: 1 1 170px; width: auto; }
  .mobile-filter-menu { flex: 0 0 auto; }
  .mobile-filter-menu[open] { flex-basis: 100%; }
  .mobile-filter-menu > summary { cursor: pointer; min-height: 44px; padding: 11px 12px; font-size: 12px; border: 1px solid #dfe5de; border-radius: 6px; background: #fff; }
  .mobile-filter-panel { display: flex; flex-direction: column; gap: 12px; margin-top: 8px; padding: 12px; border: 1px solid #dfe5de; border-radius: 8px; background: #fff; }
  .mobile-filter-panel > label { width: 100%; margin: 0; }
  .mobile-filter-panel #filters { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 0; border: 0; width: 100%; }
  .mobile-filter-panel .sort-controls { margin: 0; justify-content: space-between; flex-wrap: wrap; }
  .mobile-filter-panel .sort-controls select { min-width: 0; max-width: 100%; }
  .recommendation-match, .schedule-match { margin: 10px 6px; border-width: 1px; border-color: #dce4d8; }
  :is(.recommendation-match,.premium-match) .handicap-prediction { margin: 8px; padding: 12px; gap: 8px; }
  .pick-team strong { font-size: 18px; }
  .pick-values { gap: 8px; }
  .pick-value { padding: 8px 10px; }
  .pick-value strong { font-size: 21px; }
  .recommendation-card-header { padding: 8px 8px 0; }
  .recommendation-explanation { margin: 0 8px 10px; }
  .match, .recommendation-match > .match { padding: 12px 8px; gap: 6px; }
  .match-time { min-width: 62px; width: 62px; flex-shrink: 0; }
  .match-time strong { font-size: 14px; }
  .teams { min-width: 0; gap: 5px; grid-template-columns: minmax(0,1fr) 32px minmax(0,1fr); }
  .team { min-width: 0; font-size: 11px; line-height: 1.4; }
  .team-name { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; max-width: 100%; }
  .match-league-label { padding: 10px 8px 0; font-size: 10px; }
  .match .save { min-width: 28px; min-height: 44px; }
  .result-history-table .result-outcome .status-badge { font-size: 11px; line-height: 1.4; }
  .action-feedback { bottom: calc(12px + env(safe-area-inset-bottom)); }
  dialog { padding-bottom: max(20px,env(safe-area-inset-bottom)); }
}

@media(max-width:650px) {
  .recommendation-toolbar > .search { order: 0; }
  .recommendation-toolbar > .mobile-filter-menu { order: 1; }
  .recommendation-toolbar > #update-recommendations { order: 2; flex: 1 1 100%; }
}

/* A stable date label above the native picker avoids platform-specific formatting. */
.date-picker { position: relative; min-width: 144px; min-height: 44px; cursor: pointer; }
#date-display { color: #415347; font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; pointer-events: none; }
.date-picker #date { position: absolute; inset: 0; width: 100%; max-width: none; height: 100%; opacity: 0; cursor: pointer; margin: 0; padding: 0; }
.date-picker #date::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; cursor: pointer; }
.date-picker:focus-within { outline: 3px solid #9cc354; outline-offset: 2px; }

.recommendation-diagnostics { margin-top: 12px; color: #60715f; font-size: 12px; line-height: 1.7; }
.recommendation-diagnostics > summary { cursor: pointer; min-height: 44px; padding: 12px 0; }

/* Subtle outlines distinguish inactive recommendation tabs. */
.recommendation-tabs [role=tab] { border: 1px solid #cddbc8; background: #ffffffd9; }
.recommendation-tabs [role=tab][aria-selected=true] { border-color: #294b35; background: #294b35; color: #fff; }

/* A compact illustrated banner on phones, with space before the schedule heading. */
.hero { margin-bottom: 24px; }
@media(max-width:650px) {
  body[data-entry=app] .hero { min-height: 148px; padding: 18px; margin-bottom: 18px; border-radius: 10px; align-items: center; }
  body.signed-in[data-entry=app] .hero { min-height: 132px; padding: 18px; margin-bottom: 18px; }
  body[data-entry=app] .hero > div:first-child { position: relative; z-index: 1; max-width: 100%; }
  body[data-entry=app] .hero .eyebrow { display: flex; font-size: 7px; letter-spacing: 1.2px; margin-bottom: 9px; }
  body[data-entry=app] .hero h1 { margin: 0; font-size: 24px; line-height: 1.3; letter-spacing: -.5px; }
  body[data-entry=app] .hero h1 br { display: block; }
  body[data-entry=app] .hero p { display: none; }
  body[data-entry=app] .hero-link { margin-top: 10px; font-size: 10px; width: 175px; }
  body.signed-in[data-entry=app] .hero-link { display: none; }
  body[data-entry=app] .hero .pitch { display: flex; position: absolute; width: 155px; right: -36px; top: 20px; margin: 0; opacity: .25; transform: rotate(-12deg); pointer-events: none; }
  body[data-entry=app] .hero .pitch-inner { height: 100px; }
  body[data-entry=app] .hero .pitch .box { top: 25px; height: 50px; width: 24px; }
  body[data-entry=app] .hero .pitch .circle { height: 38px; width: 38px; }
  body[data-entry=app] .hero .pitch-ball { width: 32px; height: 32px; font-size: 25px; }
  body[data-entry=app] .hero .pitch > span { display: none; }
}

.result-period-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: 10px 16px; margin-top: 14px; }
.result-period-toolbar label { display: flex; flex-direction: column; gap: 5px; font-size: 11px; color: #60715f; }
.result-period-toolbar select, #reset-results-scope { font: inherit; padding: 10px; border: 1px solid #dfe5de; border-radius: 6px; color: #294b35; background: #fff; max-width: 100%; min-height: 44px; }
.result-period-dates { color: #60715f; font-size: 11px; padding-bottom: 10px; }
#reset-results-form { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
#reset-results-form label { margin: 0; }
#reset-results-error { color: #922f24; }
@media(max-width:650px) { .result-period-toolbar label { width: 100%; } .result-period-dates { padding-bottom: 0; } #reset-results-form label, #reset-results-form button { width: 100%; } }

/* Keep the quote reload separate from approval and secondary actions. */
.recommendation-card-header:has(.review-reload-icon) { position: relative; padding-right: 70px; min-height: 56px; }
.review-reload-icon { position: absolute; top: 12px; right: 14px; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 10px; margin: 0; border: 1px solid #d5ded2; border-radius: 8px; background: #fff; color: #46623e; cursor: pointer; }
.review-reload-icon svg { display: block; width: 22px; height: 22px; }
.review-reload-icon:hover { background: #f0f5eb; border-color: #aabea4; }
.review-reload-icon:focus-visible { outline: 3px solid #9cc354; outline-offset: 2px; }
.review-reload-icon:disabled { opacity: .55; cursor: wait; }
.review-reload-icon[aria-busy=true] svg { animation: review-reload-spin 1s linear infinite; }
@keyframes review-reload-spin { to { transform: rotate(360deg); } }
@media(max-width:650px) {
  .recommendation-card-header:has(.review-reload-icon) { padding-right: 60px; min-height: 52px; }
  .review-reload-icon { top: 8px; right: 8px; }
}
@media(prefers-reduced-motion:reduce) { .review-reload-icon[aria-busy=true] svg { animation: none; } }

/* Compact utility controls keep a full touch target and accessible names. */
#refresh, .result-pagination button, #premium-cancel, #manual-cancel,
.recommendation-card-header .owner-action-menu > summary { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; min-height: 44px; padding: 10px; box-sizing: border-box; flex-shrink: 0; }
#refresh svg, .result-pagination svg, .owner-action-menu > summary svg, .today-button svg { display: block; flex-shrink: 0; }
.owner-action-menu > summary { list-style: none; }
.owner-action-menu > summary::-webkit-details-marker { display: none; }
.owner-action-menu[open] > summary { background: #edf5e8; border-color: #aabea4; }
.today-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 44px; min-height: 44px; }
dialog { position: fixed; }
#premium-cancel, #manual-cancel { position: absolute; top: 10px; right: 10px; border-radius: 7px; }
#premium-dialog h2, #manual-pick-dialog h2 { padding-right: 42px; }
.search > span { display: inline-flex; align-items: center; }
#refresh:focus-visible, .today-button:focus-visible, .result-pagination button:focus-visible,
#premium-cancel:focus-visible, #manual-cancel:focus-visible { outline: 3px solid #9cc354; outline-offset: 2px; }
@media(max-width:650px) { .today-button { width: 44px; padding: 10px; } .today-label { display: none; } }

.date-controls > #previous, .date-controls > #next { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 10px; }

/* Align the same four columns across recent-form and head-to-head tables. */
.history-table { table-layout: fixed; width: 100%; }
.history-table th:nth-child(1) { width: 24%; }
.history-table th:nth-child(2), .history-table th:nth-child(4) { width: 32%; text-align: left; }
.history-table th:nth-child(3) { width: 12%; }
.history-table td:nth-child(2), .history-table td:nth-child(4) { text-align: left; white-space: normal; }
.history-table .standing-team { gap: 8px; min-width: 0; overflow-wrap: anywhere; line-height: 1.5; }
.history-table .standing-team img, .history-table .standing-team .team-badge { flex-shrink: 0; width: 28px; height: 28px; object-fit: contain; }

/* Mirror the two teams around the score, keeping logos nearest the result. */
.history-table th:nth-child(2), .history-table td:nth-child(2) { text-align: right; }
.history-table .history-home-team { justify-content: flex-end; text-align: right; }
.history-table .history-away-team { justify-content: flex-start; text-align: left; }
.history-table .history-team-name { min-width: 0; overflow-wrap: anywhere; }

/* Expanded actions occupy a separate row; the trigger stays in its original slot. */
.recommendation-card-header > .owner-recommendation-actions > .owner-action-items { flex: 1 0 100%; width: 100%; order: 1; padding-top: 2px; }

#published-odds-dialog { width: min(94vw, 560px); }
#published-odds-title { padding-right: 42px; }
#published-odds-close { position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; min-height: 44px; padding: 0; margin: 0; border-radius: 8px; line-height: 1; }
#published-odds-close svg { display: block; flex-shrink: 0; width: 20px; height: 20px; }
.published-odds-comparison { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 16px 0; }
.published-odds-comparison section { padding: 12px; border: 1px solid #dce5d7; border-radius: 8px; }
.published-odds-comparison section:last-child { background: #edf5e8; }
.published-odds-comparison h3 { margin: 0 0 8px; font-size: 12px; }
.published-odds-comparison p { margin: 0; line-height: 1.7; }
#published-odds-message { line-height: 1.6; }
@media(max-width:650px) { .published-odds-comparison { grid-template-columns: 1fr; } #published-odds-dialog .dialog-actions { flex-wrap: wrap; } }

/* Icon-only close controls must not depend on text baseline metrics. */
#manual-cancel, #premium-cancel, .action-feedback > button { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; min-height: 44px; padding: 0; margin: 0; line-height: 1; }
#manual-cancel svg, #premium-cancel svg, .action-feedback > button svg { display: block; flex-shrink: 0; width: 20px; height: 20px; }

.saved-live-match { border-top: 1px solid #edf0ea; }
.saved-live-match > summary { cursor: pointer; min-height: 44px; padding: 12px 18px; color: #294b35; font-size: 12px; font-weight: 600; }
.saved-live-match > summary:focus-visible { outline: 3px solid #9cc354; outline-offset: -3px; }
.live-match-content { padding: 0 18px 14px; }
.live-match-message { color: #60715f; font-size: 11px; line-height: 1.6; }
.live-match-error { color: #a1392b; }
.live-match-score { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: 14px; align-items: center; text-align: center; padding: 14px 0; }
.live-match-score span { overflow-wrap: anywhere; font-size: 13px; font-weight: 600; }
.live-match-score strong { white-space: nowrap; color: #294b35; font-size: 24px; }
.live-match-status { text-align: center; font-size: 12px; color: #46623e; }
.live-statistics { width: 100%; border-collapse: collapse; font-size: 12px; font-variant-numeric: tabular-nums; }
.live-statistics caption { padding: 10px; color: #60715f; font-size: 11px; }
.live-statistics td, .live-statistics th { padding: 10px 6px; border-bottom: 1px solid #edf0ea; text-align: center; }
.live-statistics th { font-weight: 400; color: #60715f; width: 50%; }
.live-statistics td { width: 25%; font-weight: 600; }
.live-events { list-style: none; margin: 0; padding: 0; }
.live-events li { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px solid #edf0ea; font-size: 12px; }
.live-events li > span { min-width: 40px; color: #60715f; }
.live-events small { display: block; margin-top: 5px; color: #60715f; overflow-wrap: anywhere; }
@media(max-width:650px) { .saved-live-match > summary { padding: 12px 10px; } .live-match-content { padding: 0 10px 12px; } .live-match-score { gap: 8px; } .live-match-score span { font-size: 12px; } .live-match-score strong { font-size: 22px; } }

.saved-live-match.is-live > summary { color: #b42318; }

.schedule-status { display: flex; gap: 8px; margin: 0 0 14px; }
.schedule-status .filter { min-height: 44px; padding: 10px 16px; font-size: 12px; }
.schedule-status #schedule-live { color: #b42318; border-color: #e8cac5; }
.schedule-status #schedule-live.selected { background: #fff0ed; color: #a51d14; border-color: #c87064; font-weight: 600; }
.live-filter-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }

/* Match detail routes reuse the app shell while preserving the list underneath. */
.match { position: relative; }
.match-open-link { position: absolute; inset: 0; z-index: 1; border-radius: 6px; }
.match-open-link:hover { background: #294b3505; }
.match-open-link:focus-visible { outline: 3px solid #9cc354; outline-offset: -3px; }
.match > .save { position: relative; z-index: 2; }
.match-detail-active .hero, .match-detail-active #source-notice { display: none; }
.match-detail-toolbar { display: flex; justify-content: space-between; gap: 12px; margin: 0 0 16px; }
.match-detail-toolbar button { min-height: 44px; }
.match-detail-card { background: #fff; border: 1px solid #dfe7da; border-radius: 12px; overflow: hidden; }
.match-detail-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 20px; }
.match-detail-heading > div > span { font-size: 12px; color: #60715f; }
.match-detail-heading p { font-size: 12px; line-height: 1.6; margin: 8px 0; }
.match-detail-heading > .save { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
.match-detail-title { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: 20px; align-items: center; padding: 8px 24px 26px; margin: 0; font-size: 20px; }
.match-detail-title > span { display: flex; flex-direction: column; gap: 12px; align-items: center; text-align: center; overflow-wrap: anywhere; min-width: 0; }
.match-detail-title .team-logo { width: 52px; height: 52px; }
.match-detail-title .team-badge { width: 48px; height: 48px; }
.match-detail-title > strong { white-space: nowrap; color: #294b35; font-size: 28px; }
.detail-published-pick { margin: 16px; padding: 14px; border: 1px solid #d6e4cc; border-radius: 8px; background: #edf5e8; }
.detail-published-pick h3 { margin: 0 0 10px; font-size: 12px; }
.detail-published-pick > span { display: block; margin-top: 8px; font-size: 12px; }
.detail-sections > details { margin: 0; border-top: 1px solid #edf0ea; }
.detail-login { padding: 0 18px 14px; font-size: 12px; line-height: 1.7; }
.detail-owner-actions { padding: 0 4px; }
@media(max-width:650px) { .match-detail-heading { padding: 14px; } .match-detail-title { padding: 8px 12px 20px; gap: 10px; font-size: 15px; } .match-detail-title > strong { font-size: 24px; } .match-detail-title .team-logo { width: 44px; height: 44px; } }

.team-caption { display:flex; flex-direction:column; gap:3px; min-width:0; }
.team-rank { display:block; color:#60715f; font-size:11px; font-weight:400; line-height:1.3; }
.team-rank[hidden] { display:none; }
.match .home .team-caption { text-align:right; }
.match .away .team-caption { text-align:left; }
.match-detail-title .team-caption { gap:5px; }
.match-detail-title .team-rank { font-size:13px; }
@media(max-width:650px) { .match .team .team-caption { text-align:center; max-width:100%; } .match .team-rank { font-size:10px; } }
