:root{color-scheme:dark;--tg-bg: #0f1216;--tg-secondary-bg: #171b21;--tg-section-bg: #1c2129;--tg-text: #eef1f5;--tg-hint: #8b95a3;--tg-link: #4aa3ff;--tg-accent: #4aa3ff;--tg-button: #3390ec;--tg-button-text: #ffffff;--tg-destructive: #ff5a5a;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--live: #ff4d4f;--win: #4cd471;--radius: 14px;--radius-sm: 10px;--tab-h: 60px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--tg-bg);color:var(--tg-text);overscroll-behavior-y:none}a{color:var(--tg-link);text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}.app{display:flex;flex-direction:column;min-height:100%}.app__header{position:sticky;top:0;z-index:10;padding:calc(var(--safe-top) + 12px) 16px 12px;background:color-mix(in srgb,var(--tg-bg) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.app__title{margin:0;font-size:18px;font-weight:700;letter-spacing:.2px;display:flex;align-items:center;gap:8px}.app__title small{font-size:12px;font-weight:500;color:var(--tg-hint)}.app__main{flex:1;padding:12px 16px calc(var(--tab-h) + var(--safe-bottom) + 16px)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:6px 8px calc(6px + var(--safe-bottom));background:color-mix(in srgb,var(--tg-secondary-bg) 92%,transparent);backdrop-filter:blur(16px);border-top:1px solid var(--border)}.tabbar__btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;border:none;background:none;border-radius:var(--radius-sm);color:var(--tg-hint);font-size:11px;font-weight:600;transition:color .15s ease}.tabbar__btn[aria-selected=true]{color:var(--tg-accent)}.tabbar__ic{font-size:20px;line-height:1}.segmented{display:flex;gap:4px;padding:4px;margin-bottom:14px;background:var(--tg-secondary-bg);border-radius:var(--radius)}.segmented__btn{flex:1;padding:8px 10px;border:none;border-radius:var(--radius-sm);background:none;color:var(--tg-hint);font-size:13px;font-weight:600;transition:background .15s ease,color .15s ease}.segmented__btn[aria-selected=true]{background:var(--tg-section-bg);color:var(--tg-text);box-shadow:0 1px 2px #00000040}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:20px 2px 10px}.section-head:first-child{margin-top:4px}.section-head h2{margin:0;font-size:14px;font-weight:700}.section-head span{font-size:12px;color:var(--tg-hint)}.card{background:var(--tg-section-bg);border:1px solid var(--border);border-radius:var(--radius)}.match{width:100%;text-align:left;padding:12px 14px;margin-bottom:10px;display:block;transition:transform .08s ease,border-color .15s ease}.match:active{transform:scale(.99);border-color:var(--border-strong)}.match__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:11px;color:var(--tg-hint)}.match__round{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.3px;background:var(--tg-secondary-bg);color:var(--tg-hint);flex-shrink:0}.badge--live{background:color-mix(in srgb,var(--live) 22%,transparent);color:var(--live)}.badge--live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--live);animation:pulse 1.4s infinite}.badge--odds{background:color-mix(in srgb,var(--tg-accent) 18%,transparent);color:var(--tg-accent)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.team-row{display:flex;align-items:center;gap:10px;padding:4px 0}.team-row+.team-row{border-top:1px solid var(--border);padding-top:8px;margin-top:4px}.team-row__name{flex:1;min-width:0;font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-row--loser .team-row__name{color:var(--tg-hint);font-weight:500}.team-row--tbd .team-row__name{color:var(--tg-hint);font-style:italic;font-weight:500}.team-row__score{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;min-width:20px;text-align:right}.team-row--winner .team-row__score{color:var(--win)}.logo{width:26px;height:26px;border-radius:6px;object-fit:contain;background:var(--tg-secondary-bg);flex-shrink:0}.logo--placeholder{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--tg-hint)}.round-group{margin-bottom:18px}.round-group__title{font-size:12px;font-weight:700;color:var(--tg-hint);text-transform:uppercase;letter-spacing:.5px;margin:0 2px 8px}.team-tile{width:100%;text-align:left;display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:8px}.team-tile__meta{min-width:0}.team-tile__name{font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-tile__roster{font-size:12px;color:var(--tg-hint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-backdrop{position:fixed;inset:0;z-index:40;background:#0000008c;display:flex;align-items:flex-end;animation:fade .18s ease}.sheet{width:100%;max-height:88vh;overflow-y:auto;background:var(--tg-bg);border-radius:18px 18px 0 0;padding:8px 16px calc(24px + var(--safe-bottom));animation:slide-up .22s cubic-bezier(.2,.8,.2,1)}.sheet__grip{width:38px;height:4px;border-radius:2px;background:var(--border-strong);margin:8px auto 14px}@keyframes fade{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(100%)}}.detail__score{display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 0 4px}.detail__team{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.detail__team .logo{width:48px;height:48px;border-radius:10px}.detail__team-name{font-size:14px;font-weight:600}.detail__vs{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.detail__meta{text-align:center;color:var(--tg-hint);font-size:13px;margin:10px 0 4px}.market{margin-top:14px}.market__name{font-size:13px;font-weight:700;margin:0 2px 8px}.odds-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.odds{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:var(--tg-section-bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.odds__label{font-size:13px;color:var(--tg-hint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.odds__price{font-size:15px;font-weight:700;color:var(--tg-accent);font-variant-numeric:tabular-nums}.odds-source{font-size:11px;color:var(--tg-hint);text-align:center;margin-top:12px}.state{text-align:center;padding:48px 24px;color:var(--tg-hint)}.state__emoji{font-size:34px;margin-bottom:10px}.state__title{font-size:15px;font-weight:600;color:var(--tg-text);margin-bottom:4px}.state__msg{font-size:13px}.state__btn{margin-top:16px;padding:10px 20px;border:none;border-radius:var(--radius-sm);background:var(--tg-button);color:var(--tg-button-text);font-weight:600}.skeleton{height:78px;margin-bottom:10px;border-radius:var(--radius);background:linear-gradient(90deg,var(--tg-section-bg) 25%,var(--tg-secondary-bg) 50%,var(--tg-section-bg) 75%);background-size:200% 100%;animation:shimmer 1.3s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.attribution{padding:20px 4px 4px;font-size:11px;line-height:1.5;color:var(--tg-hint);text-align:center}.attribution a{color:var(--tg-hint);text-decoration:underline}
