{"product_id":"one-day-subscription","title":"VIP Max Whale Play Day Pass","description":"\u003c!--\n==========================================================\n  JOLEE PICKS — DAY PASS PRODUCT PAGE ($30)\n  v2 — Paste this into Shopify Product Description (HTML mode)\n\n  CHANGES FROM v1:\n  - Dashboard data fetch: same bug as the other pages.\n    Apps Script returns the pick text as `bet` (not `matchup`)\n    and dates as ISO timestamps. Fixed both in loadData() +\n    added normalizeDate() helper.\n  - Year-package upsell link updated from $715 → $400 to\n    match the year-package page.\n==========================================================\n--\u003e\n\n\u003c!-- Google Fonts --\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin\u003e\n\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;500;600;700;800;900\u0026amp;family=Open+Sans:wght@400;500;600;700\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\n\u003cstyle\u003e\n  \/* ===== PRODUCT DESCRIPTION ===== *\/\n  .jp-product {\n    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, sans-serif;\n    color: #1a1a1a;\n    line-height: 1.7;\n    max-width: 800px;\n    margin: 0 auto;\n  }\n  .jp-product-hero {\n    background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);\n    color: white;\n    border-radius: 12px;\n    padding: 30px;\n    text-align: center;\n    margin-bottom: 25px;\n    border: 2px solid #D4A574;\n  }\n  .jp-product-hero-badge {\n    display: inline-block;\n    background: #D4A574;\n    color: #1a1a1a;\n    font-family: 'Montserrat', sans-serif;\n    font-size: 0.7rem;\n    font-weight: 800;\n    padding: 5px 14px;\n    border-radius: 20px;\n    letter-spacing: 1.5px;\n    text-transform: uppercase;\n    margin-bottom: 15px;\n  }\n  .jp-product-hero h2 {\n    font-family: 'Montserrat', sans-serif;\n    font-size: clamp(1.4rem, 4vw, 1.8rem);\n    font-weight: 900;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    margin: 0 0 10px 0;\n    color: white;\n  }\n  .jp-product-hero p {\n    font-size: 1rem;\n    color: #b0b0b0;\n    margin: 0 auto;\n    max-width: 520px;\n  }\n  .jp-product-hero .jp-highlight {\n    color: #E8C9A0;\n    font-weight: 700;\n  }\n  .jp-product-hero .jp-whale-emoji {\n    font-size: 2.5rem;\n    display: block;\n    margin-bottom: 10px;\n  }\n  .jp-product-includes {\n    display: grid;\n    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n    gap: 15px;\n    margin-bottom: 25px;\n  }\n  .jp-include-item {\n    background: #f8f7f5;\n    border: 1px solid #e5e5e5;\n    border-radius: 10px;\n    padding: 18px;\n    text-align: center;\n    transition: all 0.2s ease;\n  }\n  .jp-include-item:hover {\n    border-color: #D4A574;\n    box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n  }\n  .jp-include-item.jp-whale-item {\n    border: 2px solid #D4A574;\n    background: #fdf9f5;\n  }\n  .jp-include-icon {\n    font-size: 1.5rem;\n    margin-bottom: 8px;\n  }\n  .jp-include-title {\n    font-family: 'Montserrat', sans-serif;\n    font-size: 0.8rem;\n    font-weight: 700;\n    color: #1a1a1a;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n  }\n  .jp-include-desc {\n    font-size: 0.85rem;\n    color: #777;\n    margin-top: 4px;\n  }\n  .jp-product-note {\n    background: #fff9f0;\n    border-left: 4px solid #D4A574;\n    padding: 15px 20px;\n    border-radius: 0 8px 8px 0;\n    margin-bottom: 25px;\n    font-size: 0.9rem;\n    color: #555;\n  }\n  .jp-product-note strong {\n    color: #1a1a1a;\n  }\n  .jp-upsell {\n    background: linear-gradient(135deg, #f8f7f5 0%, #f0ede8 100%);\n    border: 1px solid #e5e5e5;\n    border-radius: 10px;\n    padding: 18px 20px;\n    margin-bottom: 25px;\n    text-align: center;\n    font-size: 0.9rem;\n    color: #555;\n  }\n  .jp-upsell strong { color: #1a1a1a; }\n  .jp-upsell a {\n    color: #D4A574;\n    font-weight: 700;\n    text-decoration: underline;\n  }\n  .jp-email-note {\n    background: #f0f0f0;\n    border-radius: 8px;\n    padding: 15px 20px;\n    margin-top: 25px;\n    font-size: 0.8rem;\n    color: #666;\n    line-height: 1.8;\n  }\n  .jp-email-note strong {\n    color: #1a1a1a;\n    display: block;\n    margin-bottom: 5px;\n    font-family: 'Montserrat', sans-serif;\n    font-size: 0.75rem;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n  }\n\n  \/* ===== HOW IT WORKS ===== *\/\n  .jp-how-it-works {\n    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, sans-serif;\n    background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);\n    padding: 50px 20px;\n    color: white;\n    border-radius: 12px;\n    margin: 30px 0;\n  }\n  .jp-how-it-works-container { max-width: 800px; margin: 0 auto; }\n  .jp-how-it-works-title {\n    text-align: center;\n    font-family: 'Montserrat', sans-serif;\n    font-size: clamp(1.5rem, 4vw, 2rem);\n    font-weight: 900;\n    text-transform: uppercase;\n    letter-spacing: 2px;\n    margin: 0 0 10px 0;\n    color: white;\n  }\n  .jp-how-it-works-subtitle {\n    text-align: center;\n    font-size: 1rem;\n    color: #D4A574;\n    margin: 0 0 40px 0;\n    font-weight: 500;\n  }\n  .jp-steps-container {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 25px;\n    position: relative;\n  }\n  .jp-steps-container::before {\n    content: '';\n    position: absolute;\n    top: 45px;\n    left: 15%;\n    right: 15%;\n    height: 3px;\n    background: linear-gradient(90deg, #D4A574 0%, #E8C9A0 50%, #D4A574 100%);\n    z-index: 0;\n  }\n  .jp-step { text-align: center; position: relative; z-index: 1; }\n  .jp-step-number {\n    width: 90px;\n    height: 90px;\n    margin: 0 auto 20px;\n    background: linear-gradient(135deg, #D4A574 0%, #E8C9A0 100%);\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-family: 'Montserrat', sans-serif;\n    font-size: 2.2rem;\n    font-weight: 900;\n    color: #1a1a1a;\n    box-shadow: 0 8px 25px rgba(212, 165, 116, 0.3);\n    position: relative;\n  }\n  .jp-step-icon {\n    position: absolute;\n    bottom: -5px;\n    right: -5px;\n    width: 35px;\n    height: 35px;\n    background: #1a1a1a;\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 1.1rem;\n    border: 3px solid #D4A574;\n  }\n  .jp-step-title {\n    font-family: 'Montserrat', sans-serif;\n    font-size: 1.1rem;\n    font-weight: 800;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    margin-bottom: 10px;\n    color: white;\n  }\n  .jp-step-description {\n    font-size: 0.9rem;\n    line-height: 1.6;\n    color: #b0b0b0;\n    max-width: 250px;\n    margin: 0 auto;\n  }\n  .jp-step-highlight { color: #D4A574; font-weight: 600; }\n  .jp-hiw-guarantee {\n    text-align: center;\n    margin-top: 35px;\n    font-size: 0.85rem;\n    color: #888;\n  }\n\n  \/* ===== DASHBOARD — MAX BET FOCUS ===== *\/\n  .jp-dash {\n    font-family: 'Open Sans', sans-serif;\n    color: #1a1a1a;\n    line-height: 1.6;\n    margin-top: 30px;\n  }\n  .jp-dash * { box-sizing: border-box; }\n  .jp-dash-header { text-align: center; margin-bottom: 25px; }\n  .jp-dash-header h2 {\n    font-family: 'Montserrat', sans-serif;\n    font-size: clamp(1.3rem, 4vw, 1.8rem);\n    font-weight: 900;\n    color: #1a1a1a;\n    letter-spacing: 1px;\n    text-transform: uppercase;\n    margin: 0 0 8px 0;\n  }\n  .jp-dash-header p { font-size: 0.9rem; color: #777; margin: 0; }\n  .jp-dash-verified {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    background: #f8f7f5;\n    border: 2px solid #D4A574;\n    padding: 8px 20px;\n    border-radius: 50px;\n    margin-top: 15px;\n    font-size: 0.8rem;\n    color: #B8956A;\n    font-weight: 700;\n    letter-spacing: 1px;\n    text-transform: uppercase;\n  }\n  .jp-dash-verified svg { width: 16px; height: 16px; color: #28a745; }\n\n  \/* Max Bet Hero Card *\/\n  .jp-maxbet-hero {\n    background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);\n    color: white;\n    border: 2px solid #D4A574;\n    border-radius: 12px;\n    padding: 30px;\n    text-align: center;\n    margin-bottom: 25px;\n  }\n  .jp-maxbet-hero-badge {\n    display: inline-block;\n    background: #D4A574;\n    color: #1a1a1a;\n    font-family: 'Montserrat', sans-serif;\n    font-size: 0.65rem;\n    font-weight: 800;\n    padding: 4px 12px;\n    border-radius: 20px;\n    letter-spacing: 1.5px;\n    text-transform: uppercase;\n    margin-bottom: 15px;\n  }\n  .jp-maxbet-hero-title {\n    font-family: 'Montserrat', sans-serif;\n    font-size: clamp(1.3rem, 3.5vw, 1.6rem);\n    font-weight: 900;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    margin-bottom: 5px;\n    color: white;\n  }\n  .jp-maxbet-hero .jp-hl { color: #E8C9A0; }\n  .jp-maxbet-hero-sub { font-size: 0.9rem; color: #b0b0b0; }\n\n  \/* Max Bet Stats Grid *\/\n  .jp-maxbet-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n    gap: 12px;\n    margin-bottom: 25px;\n  }\n  .jp-maxbet-card {\n    background: #fff;\n    border: 1px solid #e5e5e5;\n    border-radius: 10px;\n    padding: 18px;\n    text-align: center;\n    box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n    transition: all 0.3s ease;\n  }\n  .jp-maxbet-card:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n    border-color: #D4A574;\n  }\n  .jp-maxbet-card.jp-featured {\n    background: linear-gradient(135deg, #E8C9A0 0%, #D4A574 100%);\n    border: none;\n    color: #1a1a1a;\n  }\n  .jp-maxbet-card .jp-label {\n    font-family: 'Montserrat', sans-serif;\n    font-size: 0.65rem;\n    color: #777;\n    text-transform: uppercase;\n    letter-spacing: 2px;\n    font-weight: 700;\n    margin-bottom: 6px;\n  }\n  .jp-maxbet-card.jp-featured .jp-label { color: #1a1a1a; opacity: 0.7; }\n  .jp-maxbet-card .jp-val {\n    font-family: 'Montserrat', sans-serif;\n    font-size: 1.6rem;\n    font-weight: 800;\n    color: #1a1a1a;\n    line-height: 1;\n  }\n  .jp-maxbet-card .jp-val.jp-positive { color: #28a745; }\n  .jp-maxbet-card .jp-val.jp-negative { color: #dc3545; }\n  .jp-maxbet-card .jp-sub { font-size: 0.7rem; color: #999; margin-top: 5px; }\n  .jp-maxbet-card.jp-featured .jp-sub { color: #1a1a1a; opacity: 0.7; }\n\n  \/* Last 10 W\/L Streak *\/\n  .jp-maxbet-streak {\n    background: #f8f7f5;\n    border-radius: 10px;\n    padding: 20px;\n    margin-bottom: 25px;\n    text-align: center;\n  }\n  .jp-maxbet-streak-label {\n    font-family: 'Montserrat', sans-serif;\n    font-size: 0.7rem;\n    color: #777;\n    text-transform: uppercase;\n    letter-spacing: 2px;\n    font-weight: 700;\n    margin-bottom: 12px;\n  }\n  .jp-maxbet-streak-display {\n    display: flex;\n    justify-content: center;\n    gap: 6px;\n    flex-wrap: wrap;\n  }\n  .jp-maxbet-streak-item {\n    width: 40px;\n    height: 40px;\n    border-radius: 6px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-family: 'Montserrat', sans-serif;\n    font-weight: 800;\n    font-size: 0.8rem;\n  }\n  .jp-maxbet-streak-item.jp-win { background: #28a745; color: white; }\n  .jp-maxbet-streak-item.jp-loss { background: #dc3545; color: white; }\n  .jp-maxbet-streak-item.jp-push { background: #ffc107; color: #1a1a1a; }\n  .jp-maxbet-streak-profit {\n    font-family: 'Montserrat', sans-serif;\n    font-size: 0.85rem;\n    font-weight: 700;\n    margin-top: 10px;\n    color: #555;\n  }\n  .jp-maxbet-streak-profit .jp-positive { color: #28a745; }\n  .jp-maxbet-streak-profit .jp-negative { color: #dc3545; }\n\n  \/* Last 10 Max Bets Table *\/\n  .jp-maxbet-table-section {\n    background: #fff;\n    border: 1px solid #e5e5e5;\n    border-radius: 12px;\n    overflow: hidden;\n    margin-bottom: 25px;\n    box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n  }\n  .jp-maxbet-table-header {\n    padding: 18px 22px;\n    border-bottom: 1px solid #e5e5e5;\n    font-family: 'Montserrat', sans-serif;\n    font-size: 0.9rem;\n    font-weight: 800;\n    color: #1a1a1a;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n  }\n  .jp-maxbet-table-wrapper { overflow-x: auto; }\n  .jp-maxbet-table {\n    width: 100%;\n    border-collapse: collapse;\n    min-width: 500px;\n  }\n  .jp-maxbet-table th {\n    font-family: 'Montserrat', sans-serif;\n    font-size: 0.65rem;\n    color: #777;\n    text-transform: uppercase;\n    letter-spacing: 1.5px;\n    font-weight: 700;\n    padding: 12px 16px;\n    text-align: left;\n    background: #f8f7f5;\n    border-bottom: 1px solid #e5e5e5;\n  }\n  .jp-maxbet-table td {\n    padding: 14px 16px;\n    border-bottom: 1px solid #f0f0f0;\n    font-size: 0.9rem;\n    vertical-align: middle;\n  }\n  .jp-maxbet-table tbody tr:hover { background: #fdf9f5; }\n  .jp-maxbet-table tbody tr:last-child td { border-bottom: none; }\n  .jp-maxbet-table .jp-pick-name { font-weight: 700; color: #1a1a1a; }\n  .jp-maxbet-table .jp-pick-sport { font-size: 0.75rem; color: #999; margin-top: 2px; }\n  .jp-maxbet-table .jp-pick-odds { font-family: 'Montserrat', sans-serif; font-weight: 700; }\n  .jp-maxbet-table .jp-pick-odds.jp-pos { color: #28a745; }\n  .jp-maxbet-table .jp-pick-odds.jp-neg { color: #4a4a4a; }\n  .jp-maxbet-table .jp-pick-units {\n    font-weight: 700;\n    color: #D4A574;\n    font-family: 'Montserrat', sans-serif;\n  }\n  .jp-maxbet-table .jp-result-badge {\n    display: inline-block;\n    padding: 4px 10px;\n    border-radius: 4px;\n    font-family: 'Montserrat', sans-serif;\n    font-weight: 700;\n    font-size: 0.65rem;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n  }\n  .jp-maxbet-table .jp-result-badge.jp-win { background: #d4edda; color: #28a745; }\n  .jp-maxbet-table .jp-result-badge.jp-loss { background: #f8d7da; color: #dc3545; }\n  .jp-maxbet-table .jp-result-badge.jp-push { background: #fff3cd; color: #856404; }\n  .jp-maxbet-table .jp-profit { font-family: 'Montserrat', sans-serif; font-weight: 700; }\n  .jp-maxbet-table .jp-profit.jp-positive { color: #28a745; }\n  .jp-maxbet-table .jp-profit.jp-negative { color: #dc3545; }\n\n  \/* Footer *\/\n  .jp-dash-footer {\n    text-align: center;\n    padding: 20px;\n    color: #999;\n    font-size: 0.8rem;\n    border-top: 1px solid #e5e5e5;\n    margin-top: 10px;\n  }\n  .jp-dash-footer a { color: #B8956A; text-decoration: none; font-weight: 600; }\n  .jp-dash-footer a:hover { text-decoration: underline; }\n  .jp-dash-last-updated { font-size: 0.7rem; color: #bbb; margin-top: 5px; }\n\n  \/* ===== RESPONSIVE ===== *\/\n  @media (max-width: 768px) {\n    .jp-steps-container { grid-template-columns: 1fr; gap: 30px; }\n    .jp-steps-container::before { display: none; }\n    .jp-step-number { width: 70px; height: 70px; font-size: 1.8rem; }\n    .jp-step-icon { width: 30px; height: 30px; font-size: 0.9rem; }\n    .jp-product-includes { grid-template-columns: 1fr 1fr; }\n    .jp-maxbet-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }\n    .jp-maxbet-card .jp-val { font-size: 1.3rem; }\n    .jp-maxbet-streak-item { width: 34px; height: 34px; font-size: 0.7rem; }\n    .jp-maxbet-table { min-width: 420px; }\n  }\n\u003c\/style\u003e\n\n\n\u003c!-- ===== SECTION 1: PRODUCT DESCRIPTION ===== --\u003e\n\n\u003cdiv class=\"jp-product\"\u003e\n\n  \u003cdiv class=\"jp-product-hero\"\u003e\n    \u003cspan class=\"jp-whale-emoji\"\u003e🐋\u003c\/span\u003e\n    \u003cdiv class=\"jp-product-hero-badge\"\u003eToday Only\u003c\/div\u003e\n    \u003ch2\u003eMax Bet Day Pass\u003c\/h2\u003e\n    \u003cp\u003eGet \u003cspan class=\"jp-highlight\"\u003etoday's full card\u003c\/span\u003e including our whale play — our highest-conviction max bet of the day, backed by 100,000 AI game simulations.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jp-product-includes\"\u003e\n    \u003cdiv class=\"jp-include-item jp-whale-item\"\u003e\n      \u003cdiv class=\"jp-include-icon\"\u003e🐋\u003c\/div\u003e\n      \u003cdiv class=\"jp-include-title\"\u003eWhale Play\u003c\/div\u003e\n      \u003cdiv class=\"jp-include-desc\"\u003eToday's max bet — our best pick\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"jp-include-item\"\u003e\n      \u003cdiv class=\"jp-include-icon\"\u003e📋\u003c\/div\u003e\n      \u003cdiv class=\"jp-include-title\"\u003eFull Card\u003c\/div\u003e\n      \u003cdiv class=\"jp-include-desc\"\u003eEvery pick we make today\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"jp-include-item\"\u003e\n      \u003cdiv class=\"jp-include-icon\"\u003e🤖\u003c\/div\u003e\n      \u003cdiv class=\"jp-include-title\"\u003eAI-Powered\u003c\/div\u003e\n      \u003cdiv class=\"jp-include-desc\"\u003e100,000 simulations per game\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"jp-include-item\"\u003e\n      \u003cdiv class=\"jp-include-icon\"\u003e✅\u003c\/div\u003e\n      \u003cdiv class=\"jp-include-title\"\u003eVerified\u003c\/div\u003e\n      \u003cdiv class=\"jp-include-desc\"\u003eTracked on Action Network\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jp-product-note\"\u003e\n    \u003cstrong\u003e🐋 Why the whale play matters:\u003c\/strong\u003e Our max bets hit at a 59% rate all-time with +316 units of profit. When we go big, we mean it — these are the plays our AI model is most confident in.\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jp-upsell\"\u003e\n    \u003cstrong\u003e💡 Want more than one day?\u003c\/strong\u003e Save with our \u003ca href=\"\/collections\/month\/products\/1-week-package-7-days\"\u003eweekly ($50)\u003c\/a\u003e, \u003ca href=\"\/collections\/month\"\u003emonthly ($125)\u003c\/a\u003e, or \u003ca href=\"\/collections\/month\"\u003e2026 package ($400)\u003c\/a\u003e.\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"jp-email-note\"\u003e\n    \u003cstrong\u003e📬 Important — Read Before Purchasing\u003c\/strong\u003e\n    Make sure the email you sign up with is the email you want picks sent to. Picks are emailed daily at least 1 hour before the first game. Check spam\/junk if you don't see them. Follow us on Instagram \u003ca href=\"https:\/\/www.instagram.com\/jolee.picks\/\" style=\"color:#D4A574;\"\u003e@jolee.picks\u003c\/a\u003e for release notifications.\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\n\u003c!-- ===== SECTION 2: HOW IT WORKS ===== --\u003e\n\n\u003cdiv class=\"jp-how-it-works\"\u003e\n  \u003cdiv class=\"jp-how-it-works-container\"\u003e\n    \u003ch2 class=\"jp-how-it-works-title\"\u003eHow It Works\u003c\/h2\u003e\n    \u003cp class=\"jp-how-it-works-subtitle\"\u003eStart winning in 3 simple steps\u003c\/p\u003e\n    \n    \u003cdiv class=\"jp-steps-container\"\u003e\n      \u003cdiv class=\"jp-step\"\u003e\n        \u003cdiv class=\"jp-step-number\"\u003e\n          1\n          \u003cdiv class=\"jp-step-icon\"\u003e📱\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003ch3 class=\"jp-step-title\"\u003eSubscribe\u003c\/h3\u003e\n        \u003cp class=\"jp-step-description\"\u003e\n          Grab today's day pass for \u003cspan class=\"jp-step-highlight\"\u003e$30\u003c\/span\u003e and get instant access to the full card including the whale play.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n      \n      \u003cdiv class=\"jp-step\"\u003e\n        \u003cdiv class=\"jp-step-number\"\u003e\n          2\n          \u003cdiv class=\"jp-step-icon\"\u003e🔔\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003ch3 class=\"jp-step-title\"\u003eGet Picks\u003c\/h3\u003e\n        \u003cp class=\"jp-step-description\"\u003e\n          Receive today's picks \u003cspan class=\"jp-step-highlight\"\u003estraight to your inbox\u003c\/span\u003e with our whale play and full analysis before game time.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n      \n      \u003cdiv class=\"jp-step\"\u003e\n        \u003cdiv class=\"jp-step-number\"\u003e\n          3\n          \u003cdiv class=\"jp-step-icon\"\u003e💰\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003ch3 class=\"jp-step-title\"\u003eWin\u003c\/h3\u003e\n        \u003cp class=\"jp-step-description\"\u003e\n          Place your bets on \u003cspan class=\"jp-step-highlight\"\u003eDraftKings, FanDuel, BetMGM\u003c\/span\u003e or your favorite sportsbook.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \n    \u003cp class=\"jp-hiw-guarantee\"\u003e\n      ✅ 59% max bet win rate • 4,900+ winning picks • Verified on Action Network\n    \u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- ===== SECTION 3: LIVE DASHBOARD — MAX BET FOCUS ===== --\u003e\n\n\u003cdiv class=\"jp-dash\" id=\"jp-daypass-dashboard\"\u003e\n\n  \u003cdiv class=\"jp-dash-header\"\u003e\n    \u003ch2\u003e🐋 Max Bet Track Record\u003c\/h2\u003e\n    \u003cp\u003eSee why our whale plays are worth every penny\u003c\/p\u003e\n    \u003cdiv class=\"jp-dash-verified\"\u003e\n      \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\"\u003e\n        \u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\n        \u003cpath d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z\"\u003e\u003c\/path\u003e\n      \u003c\/svg\u003e\n      Tracked on Action Network\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- Max Bet Headline --\u003e\n  \u003cdiv class=\"jp-maxbet-hero\"\u003e\n    \u003cdiv class=\"jp-maxbet-hero-badge\"\u003e⭐ Top Performer\u003c\/div\u003e\n    \u003cdiv class=\"jp-maxbet-hero-title\"\u003eMax Bet Record: \u003cspan class=\"jp-hl\" id=\"jpDayMaxRecord\"\u003eLoading...\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"jp-maxbet-hero-sub\" id=\"jpDayMaxProfit\"\u003eLoading profit data...\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- Max Bet Stats Grid --\u003e\n  \u003cdiv class=\"jp-maxbet-grid\" id=\"jpDayMaxGrid\"\u003e\u003c\/div\u003e\n\n  \u003c!-- Last 10 Max Bets W\/L Streak --\u003e\n  \u003cdiv class=\"jp-maxbet-streak\"\u003e\n    \u003cdiv class=\"jp-maxbet-streak-label\"\u003eLast 10 Max Bets\u003c\/div\u003e\n    \u003cdiv class=\"jp-maxbet-streak-display\" id=\"jpDayMaxStreak\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"jp-maxbet-streak-profit\" id=\"jpDayMaxStreakProfit\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- Last 10 Max Bets Table --\u003e\n  \u003cdiv class=\"jp-maxbet-table-section\"\u003e\n    \u003cdiv class=\"jp-maxbet-table-header\"\u003e🎯 Last 10 Whale Plays\u003c\/div\u003e\n    \u003cdiv class=\"jp-maxbet-table-wrapper\"\u003e\n      \u003ctable class=\"jp-maxbet-table\"\u003e\n        \u003cthead\u003e\n          \u003ctr\u003e\n            \u003cth\u003eDate\u003c\/th\u003e\n            \u003cth\u003ePick\u003c\/th\u003e\n            \u003cth\u003eOdds\u003c\/th\u003e\n            \u003cth\u003eUnits\u003c\/th\u003e\n            \u003cth\u003eResult\u003c\/th\u003e\n            \u003cth\u003eProfit\u003c\/th\u003e\n          \u003c\/tr\u003e\n        \u003c\/thead\u003e\n        \u003ctbody id=\"jpDayMaxTable\"\u003e\n          \u003ctr\u003e\u003ctd colspan=\"6\" style=\"text-align:center;padding:30px;\"\u003eLoading max bets...\u003c\/td\u003e\u003c\/tr\u003e\n        \u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- Footer --\u003e\n  \u003cdiv class=\"jp-dash-footer\"\u003e\n    \u003cp\u003eAll picks independently tracked on \u003ca href=\"https:\/\/myaction.app\/qwerty123456\" target=\"_blank\"\u003eAction Network\u003c\/a\u003e\u003c\/p\u003e\n    \u003cp class=\"jp-dash-last-updated\"\u003eLast updated: \u003cspan id=\"jpDayUpdated\"\u003eLoading...\u003c\/span\u003e\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\n\u003cscript\u003e\n(function() {\n  const GOOGLE_APPS_SCRIPT_URL = 'https:\/\/script.google.com\/macros\/s\/AKfycbwKPPdmwX_FkGiUFz-70D7k_dcV-_T99w1vC62jnnNicli4FM85vfmYya9PYXX05GCp\/exec';\n\n  function formatNumber(num) {\n    return num.toString().replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, \",\");\n  }\n\n  \/\/ PATCH: Apps Script returns dates as ISO timestamps like \"2026-05-09T00:00:00.000Z\".\n  \/\/ Strip down to YYYY-MM-DD so downstream split('-') logic stays correct.\n  function normalizeDate(d) {\n    if (d == null) return '';\n    const s = String(d).trim();\n    if (!s) return '';\n    if (\/^\\d{4}-\\d{2}-\\d{2}\/.test(s)) return s.slice(0, 10);\n    const dt = new Date(s);\n    if (isNaN(dt)) return s;\n    const y = dt.getUTCFullYear();\n    const m = String(dt.getUTCMonth() + 1).padStart(2, '0');\n    const day = String(dt.getUTCDate()).padStart(2, '0');\n    return `${y}-${m}-${day}`;\n  }\n\n  function parseDate(dateStr) {\n    const parts = dateStr.split('-');\n    if (parts.length === 3) {\n      return new Date(parseInt(parts[0]), parseInt(parts[1]) - 1, parseInt(parts[2]));\n    }\n    return new Date(dateStr);\n  }\n\n  function formatDate(dateStr) {\n    try {\n      const parts = dateStr.split('-');\n      if (parts.length === 3) {\n        const date = new Date(parseInt(parts[0]), parseInt(parts[1]) - 1, parseInt(parts[2]));\n        return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });\n      }\n      return new Date(dateStr).toLocaleDateString('en-US', { month: 'short', day: 'numeric' });\n    } catch { return dateStr; }\n  }\n\n  async function loadData() {\n    let allData = [];\n    try {\n      const response = await fetch(GOOGLE_APPS_SCRIPT_URL);\n      if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\n      const jsonData = await response.json();\n      \/\/ PATCH: read row.bet (current schema) with fallback to row.matchup (old schema).\n      \/\/ Normalize the date so ISO timestamps work with split('-') downstream.\n      allData = jsonData.map(row =\u003e ({\n        date: normalizeDate(row.date),\n        sport: (row.sport || '').toUpperCase(),\n        matchup: row.bet || row.matchup || '',\n        type: row.type || '',\n        odds: parseFloat(row.odds) || 0,\n        units: parseFloat(row.units) || 1,\n        result: (row.result || 'pending').toString().toLowerCase(),\n        profit: parseFloat(row.profit) || 0\n      })).filter(row =\u003e row.date \u0026\u0026 row.matchup);\n      console.log(`Loaded ${allData.length} picks from Google Sheets`);\n    } catch (error) {\n      console.error('Error loading data:', error);\n      document.getElementById('jpDayMaxTable').innerHTML = '\u003ctr\u003e\u003ctd colspan=\"6\" style=\"text-align:center;padding:30px;color:#dc3545;\"\u003eError loading data. Please refresh.\u003c\/td\u003e\u003c\/tr\u003e';\n      return;\n    }\n\n    \/\/ Sort newest first\n    allData.sort((a, b) =\u003e parseDate(b.date) - parseDate(a.date));\n\n    \/\/ Filter max bets (3+ units)\n    const settled = allData.filter(p =\u003e ['win', 'loss', 'push'].includes(p.result));\n    const maxBets = settled.filter(p =\u003e p.units \u003e= 3);\n\n    const wins = maxBets.filter(p =\u003e p.result === 'win').length;\n    const losses = maxBets.filter(p =\u003e p.result === 'loss').length;\n    const pushes = maxBets.filter(p =\u003e p.result === 'push').length;\n    const totalProfit = maxBets.reduce((sum, p) =\u003e sum + p.profit, 0);\n    const totalWagered = maxBets.reduce((sum, p) =\u003e sum + Math.abs(p.units), 0);\n    const winPct = (wins + losses) \u003e 0 ? ((wins \/ (wins + losses)) * 100) : 0;\n    const roi = totalWagered \u003e 0 ? ((totalProfit \/ totalWagered) * 100) : 0;\n    const record = `${formatNumber(wins)}-${formatNumber(losses)}${pushes \u003e 0 ? `-${pushes}` : ''}`;\n\n    \/\/ Max Bet Headline\n    document.getElementById('jpDayMaxRecord').textContent = `${record} (${winPct.toFixed(1)}%)`;\n    const profitSign = totalProfit \u003e= 0 ? '+' : '';\n    const roiSign = roi \u003e= 0 ? '+' : '';\n    document.getElementById('jpDayMaxProfit').textContent = `${profitSign}${formatNumber(totalProfit.toFixed(2))} units | ${roiSign}${roi.toFixed(1)}% ROI`;\n\n    \/\/ Last 10 max bets\n    const last10 = maxBets.slice(0, 10);\n    const l10wins = last10.filter(p =\u003e p.result === 'win').length;\n    const l10losses = last10.filter(p =\u003e p.result === 'loss').length;\n    const l10profit = last10.reduce((sum, p) =\u003e sum + p.profit, 0);\n\n    \/\/ Stats grid\n    const l10profitClass = l10profit \u003e= 0 ? 'jp-positive' : 'jp-negative';\n    const l10profitSign = l10profit \u003e= 0 ? '+' : '';\n    const profitClass = totalProfit \u003e= 0 ? 'jp-positive' : 'jp-negative';\n\n    document.getElementById('jpDayMaxGrid').innerHTML = `\n      \u003cdiv class=\"jp-maxbet-card jp-featured\"\u003e\n        \u003cdiv class=\"jp-label\"\u003eAll-Time Record\u003c\/div\u003e\n        \u003cdiv class=\"jp-val\"\u003e${record}\u003c\/div\u003e\n        \u003cdiv class=\"jp-sub\"\u003e${formatNumber(maxBets.length)} max bets\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"jp-maxbet-card\"\u003e\n        \u003cdiv class=\"jp-label\"\u003eWin Rate\u003c\/div\u003e\n        \u003cdiv class=\"jp-val\"\u003e${winPct.toFixed(1)}%\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"jp-maxbet-card\"\u003e\n        \u003cdiv class=\"jp-label\"\u003eTotal Profit\u003c\/div\u003e\n        \u003cdiv class=\"jp-val ${profitClass}\"\u003e${profitSign}${formatNumber(Math.round(totalProfit))}u\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"jp-maxbet-card\"\u003e\n        \u003cdiv class=\"jp-label\"\u003eLast 10\u003c\/div\u003e\n        \u003cdiv class=\"jp-val ${l10profitClass}\"\u003e${l10wins}-${l10losses}\u003c\/div\u003e\n        \u003cdiv class=\"jp-sub\"\u003e${l10profitSign}${l10profit.toFixed(2)}u\u003c\/div\u003e\n      \u003c\/div\u003e\n    `;\n\n    \/\/ Last 10 streak visual\n    document.getElementById('jpDayMaxStreak').innerHTML = last10.map(pick =\u003e `\n      \u003cdiv class=\"jp-maxbet-streak-item jp-${pick.result}\" title=\"${pick.matchup} — ${pick.result.toUpperCase()} (${pick.profit \u003e= 0 ? '+' : ''}${pick.profit.toFixed(2)}u)\"\u003e\n        ${pick.result === 'win' ? 'W' : pick.result === 'loss' ? 'L' : 'P'}\n      \u003c\/div\u003e\n    `).join('');\n\n    const streakProfitClass = l10profit \u003e= 0 ? 'jp-positive' : 'jp-negative';\n    document.getElementById('jpDayMaxStreakProfit').innerHTML = `${l10wins}-${l10losses} record | \u003cspan class=\"${streakProfitClass}\"\u003e${l10profitSign}${l10profit.toFixed(2)} units\u003c\/span\u003e`;\n\n    \/\/ Last 10 table\n    const sportIcons = { 'NFL': '🏈', 'NBA': '🏀', 'MLB': '⚾', 'NHL': '🏒', 'NCAAF': '🏈', 'NCAAB': '🏀', 'UFC': '🥊', 'SOCCER': '⚽' };\n\n    document.getElementById('jpDayMaxTable').innerHTML = last10.map(pick =\u003e {\n      const icon = sportIcons[pick.sport] || '🎯';\n      const oddsDisplay = pick.odds \u003e= 0 ? `+${pick.odds}` : pick.odds;\n      const oddsClass = pick.odds \u003e= 0 ? 'jp-pos' : 'jp-neg';\n      const profitDisplay = pick.profit \u003e= 0 ? `+${pick.profit.toFixed(2)}u` : `${pick.profit.toFixed(2)}u`;\n      const profitColorClass = pick.profit \u003e= 0 ? 'jp-positive' : 'jp-negative';\n      return `\n        \u003ctr\u003e\n          \u003ctd\u003e${formatDate(pick.date)}\u003c\/td\u003e\n          \u003ctd\u003e\n            \u003cdiv class=\"jp-pick-name\"\u003e${pick.matchup}\u003c\/div\u003e\n            \u003cdiv class=\"jp-pick-sport\"\u003e${icon} ${pick.sport} • ${pick.type}\u003c\/div\u003e\n          \u003c\/td\u003e\n          \u003ctd\u003e\u003cspan class=\"jp-pick-odds ${oddsClass}\"\u003e${oddsDisplay}\u003c\/span\u003e\u003c\/td\u003e\n          \u003ctd\u003e\u003cspan class=\"jp-pick-units\"\u003e${pick.units}u\u003c\/span\u003e\u003c\/td\u003e\n          \u003ctd\u003e\u003cspan class=\"jp-result-badge jp-${pick.result}\"\u003e${pick.result}\u003c\/span\u003e\u003c\/td\u003e\n          \u003ctd\u003e\u003cspan class=\"jp-profit ${profitColorClass}\"\u003e${profitDisplay}\u003c\/span\u003e\u003c\/td\u003e\n        \u003c\/tr\u003e\n      `;\n    }).join('');\n\n    \/\/ Updated timestamp\n    document.getElementById('jpDayUpdated').textContent = new Date().toLocaleDateString('en-US', {\n      month: 'short', day: 'numeric', year: 'numeric', hour: 'numeric', minute: '2-digit'\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', loadData);\n  } else {\n    loadData();\n  }\n})();\n\u003c\/script\u003e","brand":"Jolee Picks","offers":[{"title":"Default Title","offer_id":14007767826477,"sku":"","price":30.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0013\/1946\/9101\/files\/IMG-6130.png?v=1735583670","url":"https:\/\/www.joleepicks.com\/products\/one-day-subscription","provider":"Jolee Picks","version":"1.0","type":"link"}