:root{--primary:#4a6bff;--primary-dark:#3a5bef;--secondary:#ff7e5f;--success:#4caf50;--danger:#f44336;--light:#f8f9fa;--dark:#212529;--border-radius:12px;--box-shadow:0 4px 6px rgba(0,0,0,0.1);--transition:all 0.3s ease;--dark-red:#c41e3a;--gold:#ffd700;--gradient-primary:linear-gradient(135deg, var(--primary), var(--primary-dark));--gradient-secondary:linear-gradient(135deg, var(--secondary), #ff6b35);--gradient-success:linear-gradient(135deg, #28a745, #218838);--spacing-unit:8px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:"Segoe UI",Roboto,"Helvetica Neue",sans-serif;line-height:1.5}.freebet-container{max-width:1200px;margin:0 auto;padding:20px;width:100%}.freebet-card{background:#fff;border-radius:var(--border-radius);box-shadow:var(--box-shadow);overflow:hidden;margin-bottom:calc(2 * var(--spacing-unit));transition:var(--transition);border:1px solid #eee;position:relative;overflow:hidden;display:flex;flex-direction:column}.freebet-card::before{content:"";position:absolute;top:0;left:0;width:100%;height:5px;background:var(--gradient-primary)}.freebet-card:hover{transform:translateY(-5px);box-shadow:0 14px 28px rgb(0 0 0 / .1),0 10px 10px rgb(0 0 0 / .08)}.freebet-card.bet-placed{opacity:.7;border:2px solid var(--primary)}.freebet-card.bet-placed::before{content:"✓ Pari placé";position:absolute;top:0;right:0;background:var(--primary);color:#fff;padding:5px 10px;font-size:.8rem;border-bottom-left-radius:var(--border-radius);z-index:10}.fb-card-header{background:var(--gradient-primary);color:#fff;padding:calc(1.5 * var(--spacing-unit)) calc(2 * var(--spacing-unit));display:flex;justify-content:space-between;align-items:center;position:relative}.fb-card-header::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:rgb(255 255 255 / .1)}.fb-card-body{padding:calc(2.5 * var(--spacing-unit));background:linear-gradient(to bottom,#fefefe 0%,#f8f9fa 100%);flex:1}.match-teams-container{display:flex;flex-direction:column;margin:calc(1.5 * var(--spacing-unit)) 0;position:relative}.fb-teams{display:flex;justify-content:space-between;align-items:center;position:relative;width:100%}.fb-team{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:45%;position:relative;z-index:2}.fb-team img{max-width:80px;height:80px;margin-bottom:calc(0.5 * var(--spacing-unit));border-radius:50%;border:2px solid #f0f0f0;transition:var(--transition);box-shadow:0 2px 5px rgb(0 0 0 / .1);object-fit:contain;max-height:80px}.fb-team img:hover{transform:scale(1.05);box-shadow:0 4px 8px rgb(0 0 0 / .15)}.team-name{font-weight:600;font-size:1rem;margin-top:calc(0.5 * var(--spacing-unit));word-break:break-word;hyphens:auto}.fb-vs{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;padding:calc(0.75 * var(--spacing-unit)) calc(2 * var(--spacing-unit));border-radius:50px;font-size:1.25rem;font-weight:700;color:var(--dark);box-shadow:0 2px 8px rgb(0 0 0 / .1);z-index:3;min-width:50px;text-align:center}.vs-connector{position:absolute;top:50%;left:0;right:0;height:2px;background:#eee;z-index:1}.vs-connector::before,.vs-connector::after{content:"";position:absolute;top:-4px;width:8px;height:8px;border-radius:50%;background:#eee}.vs-connector::before{left:0}.vs-connector::after{right:0}.fb-meta{display:flex;justify-content:space-between;margin-bottom:calc(1.5 * var(--spacing-unit));font-size:.875rem;color:#666;padding:calc(var(--spacing-unit)) calc(1.5 * var(--spacing-unit));background:rgb(74 107 255 / .05);border-radius:8px;margin-top:calc(1.5 * var(--spacing-unit))}.fb-odds{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(var(--spacing-unit));margin:calc(1.5 * var(--spacing-unit)) 0}.fb-odd-btn{background:#fff;border:1px solid #eee;padding:calc(1.25 * var(--spacing-unit)) calc(0.75 * var(--spacing-unit));border-radius:var(--border-radius);cursor:pointer;transition:var(--transition);text-align:center;box-shadow:0 2px 4px rgb(0 0 0 / .05);position:relative;overflow:hidden;z-index:1;min-height:80px;display:flex;flex-direction:column;justify-content:center}.fb-odd-btn::before{content:"";position:absolute;top:0;left:0;width:100%;height:0;background:var(--gradient-primary);transition:height 0.3s ease;z-index:-1}.fb-odd-btn:hover{color:#fff;box-shadow:0 4px 8px rgb(74 107 255 / .2)}.fb-odd-btn:hover::before{height:100%}.fb-odd-btn.active{background:var(--gradient-primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 8px rgb(74 107 255 / .3)}.fb-odd-btn.active::before{height:100%}.fb-odd-btn.disabled{background:#f8f9fa;color:#adb5bd;cursor:not-allowed;border-color:#dee2e6}.fb-odd-value{font-weight:700;font-size:1.25rem;color:var(--dark-red);margin-bottom:calc(0.25 * var(--spacing-unit))}.fb-odd-label{font-size:.75rem;color:#666;line-height:1.2}.fb-odd-btn.active .fb-odd-value,.fb-odd-btn.active .fb-odd-label{color:#fff}.fb-odd-btn.disabled .fb-odd-value,.fb-odd-btn.disabled .fb-odd-label{color:#adb5bd}.fb-actions{display:flex;justify-content:center;margin-top:calc(2 * var(--spacing-unit))}.fb-place-btn{background:var(--gradient-primary);color:#fff;border:none;padding:calc(1 * var(--spacing-unit)) calc(3 * var(--spacing-unit));border-radius:50px;cursor:pointer;transition:var(--transition);font-weight:600;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 4px 8px rgb(74 107 255 / .3);position:relative;overflow:hidden;width:100%;max-width:300px}.fb-place-btn:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 6px 12px rgb(74 107 255 / .3)}.fb-place-btn::after{content:"→";margin-left:calc(0.75 * var(--spacing-unit));transition:margin-left 0.3s ease}.fb-place-btn:hover::after{margin-left:calc(1.25 * var(--spacing-unit))}.fb-place-btn.disabled{background:#adb5bd;cursor:not-allowed;box-shadow:none;transform:none}.fb-status{padding:calc(0.5 * var(--spacing-unit)) calc(1 * var(--spacing-unit));border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.fb-status-upcoming{background:#fff3cd;color:#856404}.fb-status-live{background:#d1ecf1;color:#0c5460;animation:pulse 2s infinite}.fb-status-finished{background:#e2e3e5;color:#383d41}.fb-status-cancelled{background:#f8d7da;color:#721c24}@keyframes pulse{0%{box-shadow:0 0 0 0 rgb(220 53 69 / .4)}70%{box-shadow:0 0 0 10px #fff0}100%{box-shadow:0 0 0 0 #fff0}}.fb-signature{text-align:center;margin-top:calc(1.5 * var(--spacing-unit));font-size:.75rem;color:#666;padding:calc(var(--spacing-unit)) calc(1.5 * var(--spacing-unit));background:rgb(0 0 0 / .02);border-top:1px solid #eee;font-style:italic}.freebet-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgb(0 0 0 / .8);z-index:9999;justify-content:center;align-items:center;overflow:auto;backdrop-filter:blur(5px)}.freebet-modal::before{content:"";display:inline-block;height:100%;vertical-align:middle}.fb-modal-content{background:#fff;padding:0;border-radius:var(--border-radius);width:90%;max-width:500px;box-shadow:0 20px 40px rgb(0 0 0 / .3);overflow:hidden;position:relative;display:inline-block;vertical-align:middle;margin:20px auto;max-height:90vh;overflow-y:auto;animation:modalFadeIn 0.3s ease}@keyframes modalFadeIn{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.fb-modal-header{background:var(--gradient-primary);color:#fff;padding:calc(2 * var(--spacing-unit)) calc(2.5 * var(--spacing-unit));display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgb(255 255 255 / .1);position:sticky;top:0;z-index:10}.fb-modal-body{padding:calc(3 * var(--spacing-unit));background:linear-gradient(to bottom,#fefefe 0%,#f8f9fa 100%)}.fb-modal-actions{display:flex;justify-content:flex-end;gap:calc(1.5 * var(--spacing-unit));padding:calc(2 * var(--spacing-unit));border-top:1px solid #eee;background:#f8f9fa}.fb-history-container{margin-top:calc(3 * var(--spacing-unit))}.fb-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:calc(2 * var(--spacing-unit))}.fb-history-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--box-shadow)}.fb-history-table th,.fb-history-table td{padding:calc(1.5 * var(--spacing-unit)) calc(2 * var(--spacing-unit));text-align:left;border-bottom:1px solid #eee}.fb-history-table th{background:var(--gradient-primary);color:#fff;text-transform:uppercase;font-size:.875rem;letter-spacing:.5px}.fb-history-table tr:nth-child(even){background:#f8f9fa}.fb-history-table tr:hover{background:#e9ecef;transition:background 0.2s ease}.fb-badge{padding:calc(0.6 * var(--spacing-unit)) calc(1.2 * var(--spacing-unit));border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.fb-badge-won{background:#d4edda;color:#155724}.fb-badge-lost{background:#f8d7da;color:#721c24}.fb-badge-pending{background:#fff3cd;color:#856404}.fb-badge-cancelled{background:#f8d7da;color:#721c24}.fb-badge-blocked{background:#d6d8db;color:#383d41}.bet-summary{background:rgb(74 107 255 / .05);padding:calc(1.5 * var(--spacing-unit)) calc(2 * var(--spacing-unit));border-radius:var(--border-radius);margin-bottom:calc(1.5 * var(--spacing-unit));border-left:4px solid var(--primary);display:flex;justify-content:space-between;align-items:center;box-shadow:inset 0 1px 3px rgb(0 0 0 / .05)}.bet-summary .potential-win{font-weight:700;color:var(--dark-red);font-size:1.125rem}.modal-bet-info{text-align:center;margin:calc(2 * var(--spacing-unit)) 0;padding:calc(2 * var(--spacing-unit));background:rgb(74 107 255 / .1);border-radius:var(--border-radius);border:1px dashed var(--primary);position:relative}.modal-bet-info::before{content:"🎯";position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--primary);color:#fff;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem}.modal-bet-info h4{margin:calc(1.5 * var(--spacing-unit)) 0 calc(var(--spacing-unit)) 0;color:var(--primary);position:relative}.modal-bet-info h4::after{content:"";position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);width:50px;height:2px;background:var(--gradient-primary)}.modal-bet-info .potential-win{font-size:1.5rem;font-weight:700;color:var(--dark-red);display:block;margin:calc(var(--spacing-unit)) 0}.bet-price-display{text-align:center;margin-top:calc(1 * var(--spacing-unit));font-weight:700;color:var(--dark-red);font-size:1.1rem;padding:calc(0.75 * var(--spacing-unit)) 0;background:rgb(74 107 255 / .05);border-radius:calc(0.5 * var(--spacing-unit))}.fb-ux-message{text-align:center;padding:calc(2 * var(--spacing-unit));margin:calc(2 * var(--spacing-unit)) 0;border-radius:var(--border-radius);font-weight:600}.fb-ux-error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.fb-ux-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.fb-ux-warning{background:#fff3cd;color:#856404;border:1px solid #ffeeba}.fb-confirm-bet-btn{background:var(--gradient-primary);color:#fff;border:none;padding:calc(1.5 * var(--spacing-unit)) calc(3 * var(--spacing-unit));border-radius:50px;cursor:pointer;transition:var(--transition);font-weight:600;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 4px 8px rgb(74 107 255 / .3);width:100%;font-size:1rem;margin-top:calc(var(--spacing-unit))}.fb-confirm-bet-btn:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 6px 12px rgb(74 107 255 / .3)}.fb-confirm-bet-btn::after{content:"→";margin-left:calc(0.75 * var(--spacing-unit));transition:margin-left 0.3s ease}.fb-confirm-bet-btn:hover::after{margin-left:calc(1.25 * var(--spacing-unit))}@media (max-width:992px){.fb-odds{grid-template-columns:1fr}}@media (max-width:768px){:root{--spacing-unit:6px}.freebet-container{padding:calc(1.5 * var(--spacing-unit))}.fb-card-header{flex-direction:column;text-align:center;gap:calc(var(--spacing-unit));padding:calc(1.25 * var(--spacing-unit)) calc(1.5 * var(--spacing-unit))}.fb-card-header h3{font-size:1rem}.fb-card-body{padding:calc(2 * var(--spacing-unit))}.match-teams-container{margin:calc(var(--spacing-unit)) 0}.fb-teams{flex-direction:row;justify-content:space-between;align-items:center;position:relative;min-height:100px}.fb-team{max-width:40%;min-width:100px}.fb-team img{max-width:60px;max-height:60px;margin-bottom:calc(0.5 * var(--spacing-unit))}.team-name{font-size:.875rem;margin-top:calc(0.25 * var(--spacing-unit))}.fb-vs{font-size:1.1rem;padding:calc(0.6 * var(--spacing-unit)) calc(1.5 * var(--spacing-unit));min-width:40px}.fb-meta{flex-direction:column;gap:calc(0.75 * var(--spacing-unit));text-align:center;padding:calc(0.75 * var(--spacing-unit)) calc(1 * var(--spacing-unit));margin-bottom:calc(var(--spacing-unit))}.fb-odd-btn{min-height:60px;padding:calc(var(--spacing-unit)) calc(0.5 * var(--spacing-unit))}.fb-modal-content{width:98%;margin:calc(var(--spacing-unit)) auto;padding:0}.fb-modal-body{padding:calc(2 * var(--spacing-unit))}.fb-modal-actions{flex-direction:column;gap:calc(var(--spacing-unit))}.fb-modal-actions button{width:100%}.freebet-modal{align-items:flex-start;padding-top:50px}.fb-place-btn{padding:calc(1.2 * var(--spacing-unit)) calc(2.5 * var(--spacing-unit));font-size:.95rem}.fb-history-table th,.fb-history-table td{padding:calc(var(--spacing-unit)) calc(1 * var(--spacing-unit));font-size:.8rem}.modal-bet-info{padding:calc(1.5 * var(--spacing-unit))}.modal-bet-info h4{font-size:1rem}.modal-bet-info .potential-win{font-size:1.2rem}.fb-confirm-bet-btn{padding:calc(2 * var(--spacing-unit)) calc(3.5 * var(--spacing-unit))!important;font-size:1.1rem!important;height:55px;display:flex;align-items:center;justify-content:center}}@media (max-width:576px){:root{--spacing-unit:5px}.fb-teams{min-height:80px}.fb-team{max-width:35%;min-width:80px}.fb-team img{max-width:50px;max-height:50px}.fb-vs{font-size:1rem;padding:calc(0.5 * var(--spacing-unit)) calc(1 * var(--spacing-unit))}.team-name{font-size:.8rem}.fb-odd-value{font-size:1rem}.fb-odd-label{font-size:.7rem}.fb-odd-btn{padding:calc(0.8 * var(--spacing-unit)) calc(0.4 * var(--spacing-unit))}.fb-card-header{padding:calc(var(--spacing-unit)) calc(1.25 * var(--spacing-unit))}.fb-card-body{padding:calc(1.5 * var(--spacing-unit))}.fb-status{padding:calc(0.4 * var(--spacing-unit)) calc(0.8 * var(--spacing-unit));font-size:.7rem}.fb-signature{padding:calc(0.8 * var(--spacing-unit)) calc(1.25 * var(--spacing-unit));font-size:.7rem}.fb-confirm-bet-btn{padding:calc(2.5 * var(--spacing-unit)) calc(4 * var(--spacing-unit))!important;font-size:1.2rem!important;height:60px}}@media (max-width:400px){.fb-teams{min-height:70px}.fb-team{max-width:30%;min-width:70px}.fb-team img{max-width:40px;max-height:40px}.fb-vs{font-size:.9rem;padding:calc(0.4 * var(--spacing-unit)) calc(0.8 * var(--spacing-unit));min-width:35px}.team-name{font-size:.75rem}.fb-odd-btn{min-height:50px}.fb-place-btn{padding:calc(0.8 * var(--spacing-unit)) calc(1.5 * var(--spacing-unit));font-size:.85rem}}@media (max-height:600px){.freebet-modal{align-items:flex-start;padding-top:30px}.fb-modal-content{max-height:85vh}}@keyframes oddPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1)}}.fb-odd-btn:hover .fb-odd-value{animation:oddPulse 0.5s ease}.button-primary{background:var(--gradient-primary)!important;border:none!important;color:white!important;border-radius:50px!important;padding:calc(0.8 * var(--spacing-unit)) calc(2 * var(--spacing-unit))!important;font-weight:600!important;transition:all 0.3s ease!important}.button-primary:hover{transform:translateY(-2px)!important;box-shadow:0 6px 12px rgb(74 107 255 / .3)!important}.fb-status-upcoming{background:linear-gradient(135deg,#ffecb3,#ffe082)}.fb-status-live{background:linear-gradient(135deg,#b3e5fc,#81d4fa);animation:livePulse 1.5s infinite}@keyframes livePulse{0%{box-shadow:0 0 0 0 rgb(11 170 237 / .4)}70%{box-shadow:0 0 0 10px #fff0}100%{box-shadow:0 0 0 0 #fff0}}.fb-status-finished{background:linear-gradient(135deg,#e0e0e0,#f5f5f5)}