:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--surface:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff14;--accent-border:#aa3bff66;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--surface:#1f2028;--accent:#c084fc;--accent-bg:#c084fc1a;--accent-border:#c084fc66}}*,:before,:after{box-sizing:border-box}body{margin:0;padding:0;overflow:hidden}#root{width:100%;height:100svh;overflow:hidden}button{cursor:pointer;-webkit-tap-highlight-color:transparent}input{-webkit-tap-highlight-color:transparent}.app{background:var(--bg);flex-direction:column;height:100svh;display:flex;overflow:hidden}.app-header{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;flex-shrink:0;align-items:center;gap:10px;min-height:48px;padding:10px 16px;display:flex}.app-title{color:var(--text-h);letter-spacing:-.2px;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:16px;font-weight:600;overflow:hidden}.conn-status{flex-shrink:0;align-items:center;gap:5px;display:flex}.conn-label{color:var(--text);font-size:12px}.conn-dot{background:#6b7280;border-radius:50%;flex-shrink:0;width:7px;height:7px;transition:background .3s}.conn-dot--online{background:#22c55e;animation:2.4s ease-in-out infinite dot-pulse}@keyframes dot-pulse{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 5px #22c55e00}}.app-layout{flex:1;grid-template-columns:220px 280px 1fr;min-height:0;display:grid;overflow:hidden}@media (width<=1023px){.app-layout{grid-template-columns:200px 1fr;position:relative}.app-layout .match-detail{z-index:20;position:absolute;inset:0}.app-layout .match-detail--empty{display:none}.app-layout .match-detail .back-btn{display:inline-flex}}.tg-banner{color:#92400e;background:#fffbeb;border-bottom:1px solid #f59e0b66;flex-shrink:0;align-items:flex-start;gap:10px;padding:10px 14px;display:flex}.tg-banner__icon{flex-shrink:0;font-size:18px;line-height:1.3}.tg-banner__text{flex-direction:column;flex:1;gap:2px;font-size:12px;line-height:1.35;display:flex}.tg-banner__text strong{font-size:13px}.tg-banner__close{color:inherit;opacity:.7;background:0 0;border:none;flex-shrink:0;padding:2px 6px;font-size:15px;line-height:1}.tg-banner__close:hover{opacity:1}.app--mobile .app-header{padding-top:max(10px, env(safe-area-inset-top))}.mobile-body{flex:1;min-height:0;display:flex;position:relative}.mobile-pane{flex-direction:column;flex:1;width:100%;min-height:0;display:none;overflow:hidden}.mobile-pane--active{display:flex}.mobile-tabbar{border-top:1px solid var(--border);background:var(--bg);padding-bottom:env(safe-area-inset-bottom);flex-shrink:0;display:flex}.mobile-tab-btn{color:var(--text);font-family:var(--sans);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:9px 0 11px;transition:color .12s;display:flex}.mobile-tab-btn--active{color:var(--accent)}.mobile-tab-btn__icon{font-size:20px;line-height:1}.mobile-tab-btn__label{font-size:11px;font-weight:600}.sports-panel{border-right:1px solid var(--border);background:var(--bg);flex-direction:column;display:flex;overflow:hidden}.sports-panel__header{flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 14px 8px;display:flex}.sports-panel__title{text-transform:uppercase;letter-spacing:.8px;color:var(--text);font-size:11px;font-weight:700}.sports-panel__count{background:var(--accent-bg);color:var(--accent);border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.sports-panel__list{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;overflow-y:auto}.sports-panel__list::-webkit-scrollbar{width:3px}.sports-panel__list::-webkit-scrollbar-thumb{background:var(--border)}.sports-panel__empty{color:var(--text);opacity:.5;text-align:center;padding:24px 16px;font-size:13px}.sport-group{border-bottom:1px solid var(--border)}.sport-row{cursor:pointer;text-align:left;width:100%;font-family:var(--sans);background:0 0;border:none;align-items:center;gap:6px;padding:9px 12px 9px 14px;transition:background .1s;display:flex}.sport-row:hover,.sport-row--active{background:var(--surface)}.sport-row--active .sport-row__name{color:var(--accent,var(--text-h))}.sport-row__emoji{flex-shrink:0;font-size:14px;line-height:1}.sport-row__name{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:600;overflow:hidden}.sport-row__count{color:var(--text);opacity:.6;font-variant-numeric:tabular-nums;font-size:11px}.sport-row__arrow{color:var(--text);opacity:.5;text-align:center;cursor:pointer;border-radius:4px;flex-shrink:0;width:18px;font-size:10px}.sport-row__arrow:hover{opacity:1;background:var(--border)}.champ-list{background:var(--surface);border-top:1px solid var(--border)}.champ-row{border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;width:100%;font-family:var(--sans);background:0 0;border-left:3px solid #0000;align-items:center;padding:7px 12px 7px 32px;transition:background .1s,border-left-color .1s;display:flex}.champ-row:last-child{border-bottom:none}.champ-row:hover{background:var(--accent-bg)}.champ-row--active{border-left-color:var(--accent);background:var(--accent-bg)}.champ-row__name{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;line-height:1.3;overflow:hidden}.champ-row__count{color:var(--text);opacity:.5;font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:4px;font-size:11px}.match-list-panel{border-right:1px solid var(--border);background:var(--bg);flex-direction:column;display:flex;overflow:hidden}.match-list-panel__header{flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 14px 8px;display:flex}.match-list-panel__title{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.match-list-panel__count{background:var(--accent-bg);color:var(--accent);border-radius:10px;flex-shrink:0;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:600}.match-list-panel__search{flex-shrink:0;padding:0 12px 8px}.search-input{background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text-h);font-size:13px;font-family:var(--sans);border-radius:8px;outline:none;padding:7px 12px;transition:border-color .15s}.search-input:focus{border-color:var(--accent-border)}.search-input::placeholder{color:var(--text);opacity:.5}.match-list-panel__list{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;overflow-y:auto}.match-list-panel__list::-webkit-scrollbar{width:3px}.match-list-panel__list::-webkit-scrollbar-thumb{background:var(--border)}.match-list-panel__empty{text-align:center;color:var(--text);opacity:.5;padding:32px 16px;font-size:13px}.match-card{border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;width:100%;font-family:var(--sans);background:0 0;border-left:3px solid #0000;flex-direction:column;gap:6px;padding:12px 14px;transition:background .1s,border-left-color .1s;display:flex}.match-card:hover{background:var(--accent-bg)}.match-card--selected{background:var(--accent-bg);border-left-color:var(--accent)}.match-card__teams{align-items:center;gap:6px;display:flex}.match-card__team{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:600;line-height:1.2;overflow:hidden}.match-card__team--right{text-align:right}.match-card__vs{color:var(--text);opacity:.4;flex-shrink:0;font-size:10px}.match-card__bottom{align-items:center;gap:8px;display:flex}.match-card__score{color:var(--text-h);letter-spacing:-1px;font-variant-numeric:tabular-nums;font-size:18px;font-weight:800;line-height:1}.match-card__score--empty{color:var(--text);opacity:.35;font-size:14px;font-weight:400}.match-card__set-scores{color:var(--text);opacity:.6;font-variant-numeric:tabular-nums;flex:1;font-size:11px}.match-card__time{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-border);white-space:nowrap;border-radius:4px;flex-shrink:0;margin-left:auto;padding:1px 6px;font-size:11px;font-weight:700}.match-detail{background:var(--bg);flex-direction:column;display:flex;overflow:hidden}.match-detail--empty{justify-content:center;align-items:center}.detail-placeholder{text-align:center;color:var(--text);opacity:.35;padding:24px}.detail-placeholder__icon{filter:grayscale();margin-bottom:12px;font-size:56px;display:block}.detail-placeholder p{margin:0;font-size:14px}.match-detail__bar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;min-height:52px;padding:10px 16px;display:flex}.back-btn{border:1px solid var(--border);color:var(--accent);font-size:14px;font-family:var(--sans);white-space:nowrap;background:0 0;border-radius:8px;flex-shrink:0;padding:5px 12px;transition:background .12s;display:none}.back-btn:hover{background:var(--accent-bg)}@media (width<=639px){.back-btn{display:inline-flex}}.match-detail__sport{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex;overflow:hidden}.subscribe-btn{border:1px solid var(--border);color:var(--text);font-size:12px;font-family:var(--sans);white-space:nowrap;background:0 0;border-radius:8px;flex-shrink:0;padding:5px 12px;transition:background .12s,border-color .12s,color .12s}.subscribe-btn:hover{background:var(--accent-bg);border-color:var(--accent-border)}.subscribe-btn--active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.match-detail__meta{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:12px 20px 0;display:flex}.meta-champ{color:var(--text);opacity:.75;font-size:13px}.meta-time{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-border);border-radius:5px;padding:2px 8px;font-size:12px;font-weight:700}.meta-interrupted{color:#ef4444;background:#ef44441a;border:1px solid #ef44444d;border-radius:5px;padding:2px 8px;font-size:12px;font-weight:700}.scoreboard{flex-shrink:0;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:24px 20px;display:grid}.scoreboard__team{flex-direction:column;gap:6px;display:flex}.scoreboard__team--left{align-items:flex-start}.scoreboard__team--right{text-align:right;align-items:flex-end}.scoreboard__name{color:var(--text-h);word-break:break-word;font-size:clamp(14px,2.5vw,18px);font-weight:700;line-height:1.25}.scoreboard__center{flex-direction:column;align-items:center;gap:4px;display:flex}.scoreboard__score{color:var(--text-h);letter-spacing:-3px;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:clamp(36px,8vw,64px);font-weight:900;line-height:1}.scoreboard__set-scores{color:var(--text);opacity:.6;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.team-cards{gap:4px;display:flex}.team-cards--left{justify-content:flex-start}.team-cards--right{justify-content:flex-end}.card-badge{color:#fff;border-radius:3px;justify-content:center;align-items:center;min-width:20px;height:24px;padding:0 4px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.card-badge--yellow{background:#f59e0b}.card-badge--red{background:#ef4444}.match-detail__addinfo{flex-shrink:0;align-items:center;gap:8px;padding:0 20px 16px;display:flex}.addinfo-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text);opacity:.5;white-space:nowrap;font-size:11px}.addinfo-value{color:var(--text);font-size:13px}.odds-loading{color:var(--text);opacity:.5;margin:0;padding:12px 20px;font-size:13px}.odds-panel{flex-direction:column;gap:6px;padding:4px 16px 12px;display:flex;overflow-y:auto}.odds-line{background:var(--card-bg,var(--bg));border:1px solid var(--border);border-radius:8px;padding:8px 12px}.odds-line__header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.odds-line__market{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:600;overflow:hidden}.odds-line__param{color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:12px;font-weight:700}.odds-line__buttons{flex-wrap:wrap;gap:6px;display:flex}.odds-btn{background:var(--accent-bg);border:1px solid var(--accent-border);cursor:default;opacity:1;border-radius:6px;flex-direction:column;flex:1;align-items:center;gap:2px;min-width:60px;padding:6px 8px;display:flex}.odds-btn__label{color:var(--text);opacity:.6;font-size:10px;line-height:1}.odds-btn__value{color:var(--accent);font-size:15px;font-weight:700;line-height:1.2}.match-detail__updated{color:var(--text);opacity:.4;border-top:1px solid var(--border);text-align:center;margin-top:auto;padding:14px 20px;font-size:11px}.ai-fab{background:var(--accent);color:#fff;z-index:1000;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:22px;transition:transform .15s;display:flex;position:fixed;bottom:16px;right:16px;box-shadow:0 6px 20px #00000040}.ai-fab:hover{transform:scale(1.05)}.ai-fab--open{background:var(--text-h)}.ai-chat{background:var(--bg);flex-direction:column;display:flex;overflow:hidden}.ai-chat--floating{border:1px solid var(--border);z-index:1000;border-radius:16px;width:360px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100svh - 110px);position:fixed;bottom:80px;right:16px;box-shadow:0 12px 40px #0000004d}.ai-chat--full{flex:1;width:100%;min-height:0}.ai-chat__header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.ai-chat__title{color:var(--text-h);font-size:14px;font-weight:600}.ai-chat__reset{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:9px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:600;line-height:1;transition:filter .15s,transform 50ms;display:inline-flex;box-shadow:0 1px 4px #0000002e}.ai-chat__reset:hover{filter:brightness(1.08)}.ai-chat__reset:active{transform:scale(.97)}.ai-chat__reset-icon{font-size:16px;line-height:1}.ai-chat__messages{flex-direction:column;flex:1;gap:8px;padding:14px;display:flex;overflow-y:auto}.ai-msg{white-space:pre-wrap;word-break:break-word;border-radius:14px;max-width:85%;padding:9px 12px;font-size:14px;line-height:1.4}.ai-msg--user{background:var(--accent);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.ai-msg--assistant{background:var(--surface);color:var(--text-h);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.ai-msg--ready{border-color:#22c55e;box-shadow:inset 0 0 0 1px #22c55e}.ai-msg--no_match,.ai-msg--error{color:#ef4444;border-color:#ef4444}.ai-msg--rejected{color:#b45309;background:#fffbeb;border-color:#f59e0b}.ai-options{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.ai-option{border:1px solid var(--accent-border);background:var(--bg);max-width:100%;color:var(--text-h);font-size:13px;font-family:var(--sans);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:6px 10px;line-height:1.2;transition:background .15s,border-color .15s;display:inline-flex}.ai-option:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.ai-option:disabled{opacity:.5;cursor:default}.ai-option__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ai-option__koef{color:var(--accent);flex-shrink:0;font-weight:600}.ai-option:hover:not(:disabled) .ai-option__koef{color:#fff}.ai-msg--typing{align-items:center;gap:4px;display:flex}.ai-msg--typing span{background:var(--text);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite ai-typing}.ai-msg--typing span:nth-child(2){animation-delay:.2s}.ai-msg--typing span:nth-child(3){animation-delay:.4s}@keyframes ai-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.ai-chat__input{border-top:1px solid var(--border);flex-shrink:0;gap:8px;padding:10px;display:flex}.ai-chat__input input{border:1px solid var(--border);min-width:0;font-size:14px;font-family:var(--sans);background:var(--bg);color:var(--text-h);border-radius:10px;flex:1;padding:9px 12px}.ai-chat__input input:focus{border-color:var(--accent-border);outline:none}.ai-chat__input button{background:var(--accent);color:#fff;border:none;border-radius:10px;flex-shrink:0;width:42px;font-size:16px}.ai-chat__input button:disabled{opacity:.5}.bets-btn{cursor:pointer;background:0 0;border:none;border-radius:8px;padding:4px 8px;font-size:18px}.bets-btn:hover{background:var(--bg-hover,#ffffff14)}.bets-dashboard{z-index:200;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.bets-dashboard--embedded{z-index:auto;flex:1;min-height:0;position:relative;inset:auto}.bets-dashboard__header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.bets-dashboard__header h2{margin:0;font-size:18px}.bets-balance{background:var(--accent-bg,#22c55e1f);border:1px solid var(--accent-border,#22c55e66);border-radius:20px;align-items:baseline;gap:6px;margin-left:auto;margin-right:8px;padding:6px 12px;display:inline-flex}.bets-balance__lbl{color:var(--text-muted);font-size:11px}.bets-balance__val{color:#16a34a;font-size:15px;font-weight:700}.bets-dashboard__close{cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:20px}.bets-stats{flex-shrink:0;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 16px;display:grid}.bets-stat{background:var(--panel-bg,var(--bg-elevated,#1a1d24));border:1px solid var(--border);text-align:center;border-radius:10px;padding:10px}.bets-stat__val{font-size:18px;font-weight:600;display:block}.bets-stat__val--pos{color:#4ade80}.bets-stat__val--neg{color:#f87171}.bets-stat__lbl{color:var(--text-muted);font-size:11px}.bets-filters{flex-shrink:0;align-items:center;gap:6px;padding:0 16px 12px;display:flex}.bets-filter{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:20px;padding:6px 12px;font-size:13px}.bets-filter--active{background:var(--accent);border-color:var(--accent);color:#fff}.bets-refresh{cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:18px}.bets-list{flex:1;padding:0 16px 24px;overflow-y:auto}.bets-loading,.bets-error,.bets-empty{text-align:center;color:var(--text-muted);padding:16px}.bets-error{color:#f87171}.bet-card{border:1px solid var(--border);border-radius:12px;margin-bottom:10px;overflow:hidden}.bet-card__head{text-align:left;background:var(--panel-bg,var(--bg-elevated,#1a1d24));cursor:pointer;width:100%;color:inherit;font:inherit;border:none;padding:12px 14px}.bet-card__main{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.bet-card__kind{color:var(--text-muted);font-size:12px}.bet-card__stake{font-weight:600}.bet-card__koef{color:var(--text-muted);font-size:13px}.bet-card__meta{color:var(--text-muted);justify-content:space-between;font-size:12px;display:flex}.bet-card__payout{color:#4ade80;font-weight:600}.bet-card__legs{border-top:1px solid var(--border);margin:0;padding:8px 14px 12px;list-style:none}.bet-leg{border-bottom:1px solid var(--border);padding:8px 0;font-size:13px}.bet-leg:last-child{border-bottom:none}.bet-leg__teams{font-weight:500}.bet-leg__pick{color:var(--text-muted);margin-top:2px}.bet-leg__score,.bet-leg__note{margin-top:4px;font-size:12px}.bet-status{text-transform:uppercase;letter-spacing:.03em;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.bet-status--pending{color:#92400e;background:#fef3c7}.bet-status--won{color:#166534;background:#dcfce7}.bet-status--lost{color:#991b1b;background:#fee2e2}.bet-status--void{color:#3730a3;background:#e0e7ff}.auth-screen{background:var(--bg);justify-content:center;align-items:center;height:100svh;padding:24px;display:flex}.auth-card{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:360px;padding:28px 24px;display:flex}.auth-card h2{color:var(--text-h);margin:0;font-size:18px;font-weight:600}.auth-card p{color:var(--text);margin:0;font-size:14px;line-height:1.45}.auth-emoji{font-size:40px;line-height:1}.auth-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;margin-top:4px;padding:11px 22px;font-size:15px;font-weight:600;transition:opacity .15s}.auth-btn:hover:not(:disabled){opacity:.9}.auth-btn:disabled{opacity:.6;cursor:default}.auth-error{color:#dc2626;font-size:13px}.auth-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}
