:root{--b365-green:#016a41;--b365-dark:#004d2e;--b365-yellow:#ffd204;--b365-yellow-hover:#e6bd00;--b365-yellow-light:#fff3b0;--white:#fff;--bg-page:#f2f2f2;--bg-card:#fff;--border:#ddd;--border-light:#e8e8e8;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--red:#d32f2f;--red-bg:#ffebee;--green-text:#2e7d32;--green-bg:#e8f5e9;--orange-text:#e65100;--orange-bg:#fff3e0;--blue:#1565c0;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 2px 6px #00000014;--radius:6px;--radius-sm:4px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-page);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;max-width:100vw;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.4;overflow-x:hidden}.app-shell{min-height:100vh;padding-bottom:56px}.app-header{z-index:100;background:linear-gradient(180deg, #017a4e 0%, var(--b365-green) 100%);color:var(--white);justify-content:space-between;align-items:center;height:44px;padding:0 14px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0003}.header-left{align-items:center;gap:8px;display:flex}.logo{letter-spacing:-.3px;text-shadow:0 1px 1px #00000026;font-size:17px;font-weight:900}.logo-highlight{color:var(--b365-yellow)}.header-right{align-items:center;gap:10px;display:flex}.coin-badge{color:var(--b365-yellow);background:#0003;border-radius:10px;padding:3px 10px;font-size:12px;font-weight:700}.nickname{opacity:.85;font-size:12px;font-weight:500}.app-main{padding-bottom:6px}.bottom-nav{z-index:100;background:#1a1a1a;border-top:1px solid #333;justify-content:space-around;height:50px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav .nav-item{color:#888;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:10px;font-weight:500;text-decoration:none;transition:color .15s;display:flex}.bottom-nav .nav-item.active{color:var(--b365-yellow)}.bottom-nav .nav-icon{font-size:18px;line-height:1}.toast{z-index:200;color:#fff;border-radius:16px;padding:8px 20px;font-size:13px;font-weight:600;animation:.25s toastIn;position:fixed;top:54px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0003}.toast.success{background:#2e7d32}.toast.error{background:#d32f2f}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);margin:6px 10px;overflow:hidden}.status-tabs{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);gap:0;margin:6px 10px;display:flex;overflow:hidden}.status-tab{text-align:center;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:9px 0;font-size:12px;font-weight:600;transition:all .15s}.status-tab.active{color:var(--b365-green);border-bottom-color:var(--b365-green)}.match-card-link{color:inherit;text-decoration:none;display:block}.match-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);margin:4px 10px;overflow:hidden}.match-card-live{border-left:3px solid var(--red)}.match-card-settled{opacity:.7}.match-card-top{color:var(--text-muted);border-bottom:1px solid var(--border-light);background:#fafafa;justify-content:space-between;align-items:center;padding:6px 10px;font-size:10px;display:flex}.match-card-body{padding:10px}.match-teams-row{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.match-team-col{text-align:center;flex:1}.match-team-name{color:var(--text-primary);font-size:15px;font-weight:700;line-height:1.2}.match-vs-area{flex-direction:column;align-items:center;min-width:50px;display:flex}.match-score-display{color:var(--b365-green);letter-spacing:-.5px;font-size:22px;font-weight:900}.match-time-text{color:var(--text-secondary);white-space:nowrap;font-size:11px}.match-status-badge{text-transform:uppercase;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.msb-live{background:var(--red-bg);color:var(--red)}.msb-pending{background:var(--orange-bg);color:var(--orange-text)}.msb-settled{background:var(--green-bg);color:var(--green-text)}.odds-btns-row{gap:6px;display:flex}.odds-btn-b365{background:var(--b365-yellow);border-radius:var(--radius-sm);text-align:center;cursor:pointer;color:inherit;border:1px solid #e6bd00;flex:1;padding:9px 4px;text-decoration:none;transition:all .1s;display:block}.odds-btn-b365:active{background:var(--b365-yellow-hover);transform:scale(.97)}.odds-btn-label{color:var(--text-secondary);margin-bottom:2px;font-size:11px;font-weight:500;display:block}.odds-btn-value{color:var(--text-primary);font-size:15px;font-weight:800;display:block}.market-tabs{border-radius:var(--radius-sm);background:#f5f5f5;gap:0;margin-bottom:12px;padding:3px;display:flex}.market-tab{text-align:center;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex:1;padding:8px 0;font-size:12px;font-weight:700;transition:all .15s}.market-tab.active{background:var(--white);color:var(--b365-green);box-shadow:var(--shadow-sm)}.bet-grid{grid-template-columns:repeat(2,1fr);gap:6px;margin-bottom:10px;display:grid}.bet-grid-3{grid-template-columns:repeat(3,1fr)}.bet-option{background:var(--bg-page);border:1.5px solid var(--border);border-radius:var(--radius-sm);text-align:center;cursor:pointer;padding:12px 6px;transition:all .12s;position:relative}.bet-option.selected{border-color:var(--b365-yellow);background:var(--b365-yellow-light)}.bet-option:active{transform:scale(.97)}.bet-option-label{color:var(--text-primary);margin-bottom:2px;font-size:13px;font-weight:700;display:block}.bet-option-odds{color:var(--text-muted);font-size:11px;font-weight:500;display:block}.bet-option-hdp{color:var(--text-muted);margin-bottom:2px;font-size:10px;font-weight:500;display:block}.bet-input-row{align-items:stretch;gap:8px;display:flex}.bet-input-row .input{border:1.5px solid var(--border);border-radius:var(--radius-sm);text-align:center;outline:none;flex:1;padding:10px 12px;font-size:15px;font-weight:600;transition:border-color .15s}.bet-input-row .input:focus{border-color:var(--b365-green)}.bet-summary{text-align:center;background:var(--b365-yellow-light);border-radius:var(--radius-sm);margin-top:8px;padding:8px}.bet-summary-text{color:var(--text-secondary);font-size:12px}.bet-summary-amount{color:var(--b365-green);font-size:20px;font-weight:800}.bet-summary-odds{color:var(--text-muted);font-size:11px}.btn{border-radius:var(--radius-sm);cursor:pointer;letter-spacing:.2px;border:none;justify-content:center;align-items:center;padding:10px 20px;font-size:14px;font-weight:700;transition:all .1s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--b365-green);color:var(--white)}.btn-primary:active{background:var(--b365-dark)}.btn-accent{background:var(--b365-yellow);color:var(--text-primary)}.btn-accent:active{background:var(--b365-yellow-hover)}.btn-outline{background:var(--white);color:var(--b365-green);border:1.5px solid var(--b365-green)}.btn-block{width:100%}.btn-sm{padding:7px 14px;font-size:12px}.btn-xs{border-radius:3px;padding:4px 10px;font-size:11px}.btn-danger{background:var(--red);color:var(--white)}.btn-wide{min-width:120px;padding:12px 24px}.input{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--white);outline:none;width:100%;padding:10px 12px;font-size:14px;transition:border-color .15s}.input:focus{border-color:var(--b365-green);box-shadow:0 0 0 2px #016a411a}select.input{appearance:none;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' fill='none' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 10px center;padding-right:30px}.tag{border-radius:3px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.tag-green{background:var(--green-bg);color:var(--green-text)}.tag-red{background:var(--red-bg);color:var(--red)}.tag-orange{background:var(--orange-bg);color:var(--orange-text)}.tag-gray{color:var(--text-muted);background:#f0f0f0}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13px}.table th,.table td{text-align:left;border-bottom:1px solid var(--border-light);white-space:nowrap;padding:10px 8px}.table th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;background:#fafafa;font-size:11px;font-weight:700}.bet-item{border-bottom:1px solid var(--border-light);padding:12px 14px}.bet-item:last-child{border-bottom:none}.bet-match-title{margin-bottom:4px;font-size:15px;font-weight:700}.bet-detail-line{color:var(--text-secondary);gap:8px;margin-bottom:6px;font-size:12px;display:flex}.bet-bottom-row{justify-content:space-between;align-items:center;display:flex}.bet-amount-text{color:var(--text-secondary);font-size:12px}.bet-result-won{color:var(--green-text);font-size:16px;font-weight:800}.bet-result-lost{color:var(--red);font-size:16px;font-weight:800}.bet-result-pending{color:var(--orange-text);font-size:13px;font-weight:700}.tx-item{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.tx-item:last-child{border-bottom:none}.tx-left{flex:1;min-width:0}.tx-note{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.tx-time{color:var(--text-muted);margin-top:2px;font-size:11px}.tx-positive{color:var(--green-text);font-size:16px;font-weight:800}.tx-negative{color:var(--red);font-size:16px;font-weight:800}.settlement-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);margin:6px 10px;overflow:hidden}.settlement-hd{border-bottom:1px solid var(--border-light);background:#fafafa;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.settlement-match-name{font-size:15px;font-weight:700}.settlement-score-big{color:var(--b365-green);font-size:20px;font-weight:900}.settlement-stats{color:var(--text-secondary);gap:16px;padding:10px 14px;font-size:12px;display:flex}.settlement-stats strong{color:var(--text-primary);font-size:14px;display:block}.settlement-actions{border-top:1px solid var(--border-light);gap:8px;padding:10px 14px;display:flex}.settlement-actions .btn{flex:1}.summary-grid{grid-template-columns:repeat(2,1fr);gap:6px;padding:6px 10px;display:grid}.summary-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);text-align:center;padding:14px 10px}.summary-value{color:var(--b365-green);font-size:22px;font-weight:900;line-height:1}.summary-label{color:var(--text-muted);margin-top:4px;font-size:11px;font-weight:500}.admin-page{padding-bottom:20px}.admin-nav{flex-wrap:wrap;gap:6px;padding:8px 10px;display:flex}.admin-nav-item{color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-light);border-radius:15px;padding:7px 14px;font-size:12px;font-weight:600;text-decoration:none;transition:all .15s}.admin-nav-item.router-link-active,.admin-nav-item.active{background:var(--b365-green);color:var(--white);border-color:var(--b365-green)}.page-title{color:var(--text-primary);padding:12px 14px 6px;font-size:15px;font-weight:800}.section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;padding:12px 14px 6px;font-size:13px;font-weight:700}.back-link{color:var(--b365-green);align-items:center;gap:4px;padding:10px 14px 0;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.login-page{flex-direction:column;justify-content:center;align-items:center;min-height:80vh;padding:20px;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:10px;width:100%;max-width:320px;padding:28px 22px}.login-logo{text-align:center;color:var(--b365-green);margin-bottom:20px;font-size:22px;font-weight:900}.login-logo span{color:var(--b365-yellow)}.login-form .input{margin-bottom:10px}.login-form .btn{margin-top:6px}.empty-state{text-align:center;color:var(--text-muted);padding:40px 20px}.empty-state-icon{opacity:.5;margin-bottom:8px;font-size:48px}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.5}}.live-indicator{background:var(--red);border-radius:50%;width:6px;height:6px;margin-right:4px;animation:1.2s infinite livePulse;display:inline-block}::-webkit-scrollbar{width:0;height:0}.profile-avatar{background:var(--b365-green);width:56px;height:56px;color:var(--white);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 8px;font-size:24px;font-weight:800;display:flex}
