:root {
	--kb-max: 1080px;
	--kb-font: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--kb-bg: #f4f6f9;
	--kb-card: #fff;
	--kb-soft: #f8fafc;
	--kb-soft-2: #eef2f7;
	--kb-hover: #fbfdff;
	--kb-hover-strong: #fff1f1;
	--kb-text: #334155;
	--kb-title: #111827;
	--kb-muted: #64748b;
	--kb-faint: #94a3b8;
	--kb-border: #dfe5ee;
	--kb-primary: #2563eb;
	--kb-primary-soft: #eff6ff;
	--kb-success: #10b981;
	--kb-success-dark: #047857;
	--kb-success-soft: rgba(16, 185, 129, .12);
	--kb-danger: #ef4444;
	--kb-danger-dark: #dc2626;
	--kb-danger-soft: rgba(239, 68, 68, .1);
	--kb-warning: #facc15;
	--kb-warning-dark: #b45309;
	--kb-accent: #f97316;
	--kb-radius: 8px;
	--kb-radius-sm: 6px;
	--kb-radius-lg: 10px;
	--kb-pill: 999px;
	--kb-h: 42px;
	--kb-gap: 12px;
	--kb-shadow: 0 10px 24px rgba(15, 23, 42, .06);
	--kb-shadow-2: 0 14px 32px rgba(15, 23, 42, .07);
	--kb-shadow-pop: 0 10px 22px rgba(15, 23, 42, .22);
	--kb-cols: 58px minmax(180px, 240px) repeat(6, minmax(74px, 1fr)) 48px;
	--team-logo: 24px;
	--team-card-h: 12px;
	--team-card-fs: 8px;
}

*, *::before, *::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--kb-bg);
	color: var(--kb-text);
	font-family: var(--kb-font);
}

a {
	color: inherit;
}

img {
	max-width: 100%;
}

button, input, select {
	font: inherit;
}

button {
	color: inherit;
}

.kb-container {
	width: min(var(--kb-max), calc(100% - 24px));
	margin: 0 auto;
}

.kb-page {
	padding: 24px 0;
}

.kb-page-head {
	display: grid;
	justify-content: space-between;
	align-items: end;
	gap: 16px;
	margin-bottom: 16px;
}

.kb-page-title {
	margin: 0;
	color: var(--kb-title);
	font-size: 28px;
	line-height: 1.1;
	font-weight: 950;
}

.kb-page-desc {
	margin: 6px 0 0;
	color: var(--kb-muted);
	font-size: 13px;
	font-weight: 600;
}

.kb-card, .fm-state, .odds-card {
	background: var(--kb-card);
	border: 1px solid var(--kb-border);
	border-radius: var(--kb-radius);
	box-shadow: var(--kb-shadow);
}

.kb-card, .odds-card {
	overflow: hidden;
}

.kb-empty-card {
	padding: 24px;
}

.kb-field, .fm-widget, .fm-titlebox, .fm-search, .fm-bookmaker, .fm-toolbar>*, .odds-widget, .odds-board, .odds-grid-body, .odds-control {
	min-width: 0;
}

.kb-field label, .odds-control>span {
	display: block;
	margin-bottom: 5px;
	color: var(--kb-muted);
	font-size: 10px;
	line-height: 1;
	font-weight: 950;
	text-transform: uppercase;
}

.kb-select, .fm-search input, .fm-bookmaker select, .odds-control input, .odds-control select {
	width: 100%;
	height: var(--kb-h);
	min-width: 0;
	padding: 0 12px;
	border: 1px solid var(--kb-border);
	border-radius: var(--kb-radius);
	background: var(--kb-card);
	color: var(--kb-title);
	font-size: 13px;
	font-weight: 800;
	outline: 0;
}

.kb-select:focus, .fm-search input:focus, .fm-bookmaker select:focus, .odds-control input:focus, .odds-control select:focus {
	border-color: var(--kb-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--kb-primary) 14%, transparent);
}

.site-nav a:focus-visible, .kb-datepicker-day:focus-visible, .kb-datepicker-open:focus-visible, .fm-loadmore:focus-visible, .kb-select:focus-visible, .fm-search input:focus-visible, .fm-bookmaker select:focus-visible, .odds-control input:focus-visible, .odds-control select:focus-visible, .odds-detail-btn:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--kb-primary) 22%, transparent);
	outline-offset: 2px;
}

.site-header {
	background: var(--kb-card);
	border-bottom: 1px solid var(--kb-border);
}

.site-header__inner {
	min-height: 58px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.site-logo {
	color: var(--kb-title);
	font-size: 20px;
	font-weight: 950;
	text-decoration: none;
}

.site-nav {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.site-nav a {
	padding: 8px 12px;
	border-radius: var(--kb-radius);
	color: var(--kb-muted);
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
	white-space: nowrap;
}

.site-nav a:hover, .site-nav a.is-active {
	background: var(--kb-title);
	color: var(--kb-card);
}

.fm-head {
	display: grid;
	gap: 14px;
	padding-bottom: 8px;
}

.fm-toolbar {
	width: 100%;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
	align-items: center;
	gap: var(--kb-gap);
}

.fm-search {
	width: 100%;
	margin: 0;
}

.fm-list {
	display: grid;
	gap: 10px;
}

.kb-datepicker {
	position: relative;
	width: 100%;
	min-width: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 78px;
	align-items: center;
	gap: 6px;
}

.kb-datepicker-days {
	min-width: 0;
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 6px;
}

.kb-datepicker-day, .kb-datepicker-open {
	height: var(--kb-h);
	border: 1px solid var(--kb-border);
	border-radius: var(--kb-radius);
	background: var(--kb-card);
	color: var(--kb-title);
	cursor: pointer;
}

.kb-datepicker-day {
	min-width: 0;
	padding: 0 3px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.kb-datepicker-open {
	width: 78px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.kb-datepicker-day span, .kb-datepicker-open span {
	color: var(--kb-muted);
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
}

.kb-datepicker-day small, .kb-datepicker-open strong {
	margin-top: 3px;
	color: var(--kb-title);
	font-size: 12px;
	font-weight: 900;
	line-height: 1;
}

.kb-datepicker-day:hover, .kb-datepicker-open:hover {
	border-color: var(--kb-primary);
	background: var(--kb-primary-soft);
}

.kb-datepicker-day.is-active {
	border-color: var(--kb-primary);
	background: var(--kb-primary);
}

.kb-datepicker-day.is-active span, .kb-datepicker-day.is-active small {
	color: var(--kb-card);
}

.kb-datepicker-input, .kb-datepicker input[data-kb-datepicker-input] {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.kb-datepicker-panel.flatpickr-calendar {
	z-index: 9999;
}

.kb-datepicker-panel .flatpickr-day {
	padding: 0;
}

.fm-league {
	padding: 9px 12px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--kb-gap);
	background: var(--kb-soft);
	border-bottom: 1px solid var(--kb-border);
	color: var(--kb-title);
}

.fm-league-main, .fm-league-title, .fm-league-name, .fm-line-meta, .fm-line-tail, .fm-line-team, .fm-live-chip, .fm-time-chip, .fm-date-chip, .fm-line-pill, .fm-card-badge, .fm-line-score, .fm-team-cards, .odds-team-inline, .odds-detail-btn {
	display: inline-flex;
	align-items: center;
}

.fm-league-main {
	width: 100%;
	min-width: 0;
	gap: 7px;
}

.fm-league-main img, .fm-team-logo, .fs-team img, .fs-tooltip img, .odds-team-inline img, .odds-team-inline i {
	aspect-ratio: 1;
	object-fit: contain;
	flex: 0 0 auto;
}

.fm-league-main img {
	width: 18px;
	height: 18px;
}

.fm-league-title {
	min-width: 0;
	gap: 4px;
	color: var(--kb-title);
	font-size: 13px;
	font-weight: 800;
}

.fm-league-country {
	color: var(--kb-muted);
	font-weight: 700;
}

.fm-league-name, .fm-league-main>span, .fm-league-country, .fm-league-title, .fm-line-team>span:not(.fm-team-cards), .fs-team span, .odds-team-inline span, .odds-exact-grid small, .odds-exact-grid b {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fm-league-meta {
	margin-left: auto;
	flex: 0 0 auto;
	color: var(--kb-muted);
	font-size: 12px;
	font-weight: 500;
	white-space: nowrap;
}

.fm-card.is-hot, .fm-match.is-hot {
	border-color: color-mix(in srgb, var(--kb-danger) 25%, transparent);
}

.fm-match {
	display: block;
	background: var(--kb-card);
	border-bottom: 1px solid var(--kb-border);
	color: inherit;
	text-decoration: none;
}

.fm-match:last-child {
	border-bottom: 0;
}

.fm-match:hover {
	background: var(--kb-hover);
}

.fm-match--line {
	padding: 8px 12px;
}

.fm-line-row {
	width: 100%;
	min-width: 0;
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr) 54px minmax(0, 1fr) minmax(110px, auto);
	align-items: center;
	column-gap: 8px;
	white-space: nowrap;
}

.fm-line-meta {
	min-width: 52px;
	flex-direction: column;
	justify-content: center;
	gap: 2px;
	line-height: 1;
}

.fm-line-tail {
	min-width: 0;
	justify-self: end;
	justify-content: flex-end;
	gap: 4px;
}

.fm-line-team {
	width: max-content;
	max-width: 100%;
	min-width: 0;
	gap: 3px;
	color: var(--kb-title);
	font-size: 13px;
	font-weight: 650;
}

.fm-line-team--home {
	justify-self: end;
	justify-content: flex-end;
	text-align: right;
}

.fm-line-team--away {
	justify-self: start;
	justify-content: flex-start;
	text-align: left;
}

.fm-line-team>span:not(.fm-team-cards) {
	flex: 1 1 auto;
	min-width: 0;
	max-width: 100%;
}

.fm-line-team--home>span:not(.fm-team-cards) {
	flex: 0 1 auto;
}

.fm-line-team--away>span:not(.fm-team-cards) {
	flex: 0 1 auto;
}

.fm-match.is-hot .fm-line-team, .fm-match.is-hot .fm-line-team>span:not(.fm-team-cards), .odds-main-row.is-hot .odds-team-inline {
	color: var(--kb-danger-dark);
}

.fm-team-logo {
	width: var(--team-logo);
	height: var(--team-logo);
	padding: 1px;
	border: 1px solid var(--kb-border);
	border-radius: 50%;
	background: var(--kb-card);
	box-shadow: 0 1px 3px rgba(15, 23, 42, .05);
}

.fm-team-cards {
	flex: 0 0 auto;
	gap: 1px;
}

.fm-live-chip, .fm-line-pill {
	height: 20px;
	padding: 0 7px;
	border-radius: var(--kb-pill);
	font-size: 10px;
	line-height: 1;
	white-space: nowrap;
}

.fm-live-chip {
	gap: 5px;
	background: var(--kb-danger-soft);
	color: var(--kb-danger-dark);
	font-weight: 800;
	letter-spacing: .02em;
}

.fm-live-chip strong {
	font-size: 10px;
	font-weight: 900;
}

.fm-live-dot {
	width: 6px;
	height: 6px;
	border-radius: var(--kb-pill);
	background: var(--kb-danger);
	box-shadow: 0 0 0 0 color-mix(in srgb, var(--kb-danger) 50%, transparent);
	animation: fmLivePulse 1.2s infinite;
}

.fm-hot-chip {
	color: var(--kb-accent);
	font-size: 9px;
	font-weight: 900;
	line-height: 1;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.fm-time-chip, .fm-date-chip {
	min-width: 54px;
	justify-content: center;
}

.fm-line-meta .fm-time-chip, .fm-line-meta .fm-date-chip {
	min-width: 0;
	height: auto;
	padding: 0;
	margin: 0;
	display: block;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	line-height: 1;
	white-space: nowrap;
}

.fm-line-meta .fm-time-chip {
	color: var(--kb-title);
	font-size: 12px;
	font-weight: 800;
}

.fm-line-meta .fm-date-chip {
	margin-top: 2px;
	color: var(--kb-faint);
	font-size: 10px;
	font-weight: 500;
	opacity: .75;
}

.fm-line-score {
	width: 38px;
	height: 24px;
	justify-self: center;
	justify-content: center;
	padding: 0 6px;
	border: 1px solid var(--kb-border);
	border-radius: 9px;
	background: var(--kb-soft);
	color: var(--kb-title);
	font-size: 12px;
	font-weight: 750;
	line-height: 1;
	text-align: center;
}

.fm-line-score.is-played {
	background: var(--kb-soft-2);
}

.fm-line-score.is-scheduled {
	color: var(--kb-muted);
}

.fm-line-pill {
	background: var(--kb-soft);
	color: var(--kb-title);
	font-weight: 650;
}

.fm-card-badge {
	min-width: var(--team-card-h);
	height: var(--team-card-h);
	justify-content: center;
	padding: 0 3px;
	border-radius: 3px;
	color: var(--kb-title);
	font-size: var(--team-card-fs);
	font-weight: 800;
	line-height: 1;
}

.fm-card-badge--yellow {
	background: var(--kb-warning);
}

.fm-card-badge--red {
	background: var(--kb-danger);
	color: var(--kb-card);
}

.fm-card-badge--blue {
	background: var(--kb-primary);
	color: var(--kb-card);
}

.fm-live-note {
	margin: 8px 0 0;
	color: var(--kb-muted);
	font-size: 13px;
	font-weight: 700;
}

.fm-widget.is-live-mode .fm-live-note {
	color: var(--kb-danger);
}

.fm-widget.is-hot-fallback .fm-live-note {
	color: var(--kb-accent);
}

.fm-state {
	min-height: 110px;
	padding: 22px 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: var(--kb-muted);
	font-size: 13px;
	font-weight: 850;
}

.fm-state.is-error {
	color: var(--kb-danger);
}

.fm-empty, .fs-message {
	padding: 32px 16px;
	color: var(--kb-muted);
	font-weight: 850;
	text-align: center;
}

.fm-spinner {
	width: 16px;
	height: 16px;
	border: 2px solid var(--kb-soft-2);
	border-top-color: var(--kb-primary);
	border-radius: var(--kb-pill);
	animation: fmSpin .75s linear infinite;
}

.fm-loadmore-wrap {
	display: flex;
	justify-content: center;
	padding: 18px 0 28px;
}

.fm-loadmore {
	padding: 10px 18px;
	border: 0;
	border-radius: var(--kb-radius);
	background: var(--kb-primary);
	color: var(--kb-card);
	font-weight: 800;
	cursor: pointer;
}

.fm-loadmore:disabled {
	opacity: .55;
	cursor: not-allowed;
}

.match-page {
	background: linear-gradient(180deg, var(--kb-soft) 0, var(--kb-bg) 260px);
}

.match-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-bottom: 12px;
	color: var(--kb-muted);
	font-size: 12px;
	font-weight: 750;
}

.match-breadcrumb a {
	color: var(--kb-primary);
	text-decoration: none;
}

.match-breadcrumb a::after {
	content: "/";
	margin-left: 7px;
	color: var(--kb-faint);
}

.match-detail {
	display: grid;
	gap: 14px;
}

.match-hero, .match-panel {
	border: 1px solid var(--kb-border);
	border-radius: var(--kb-radius-lg);
	background: var(--kb-card);
	box-shadow: var(--kb-shadow-2);
}

.match-hero {
	padding: 18px;
	overflow: hidden;
}

.match-hero__meta, .match-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.match-hero__meta {
	justify-content: center;
	margin-bottom: 16px;
	color: var(--kb-muted);
	font-size: 11px;
	font-weight: 900;
	text-transform: uppercase;
}

.match-hero__meta span, .match-hero__meta time {
	padding: 5px 9px;
	border-radius: var(--kb-pill);
	background: var(--kb-soft);
}

.match-scoreboard {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 86px minmax(0, 1fr);
	align-items: center;
	gap: 12px;
}

.match-team {
	min-width: 0;
	display: grid;
	justify-items: center;
	gap: 8px;
	text-align: center;
}

.match-team i {
	width: 46px;
	aspect-ratio: 1;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--kb-title);
	color: #fff;
	font-style: normal;
	font-size: 20px;
	font-weight: 950;
}

.match-logo {
	width: 46px;
	aspect-ratio: 1;
	display: grid;
	place-items: center;
}

.match-logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 50%;
	background: var(--kb-soft);
}

.match-team strong {
	max-width: 100%;
	overflow: hidden;
	color: var(--kb-title);
	font-size: 18px;
	font-weight: 950;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.match-team-meta {
	max-width: 100%;
	overflow: hidden;
	color: var(--kb-muted);
	font-size: 11px;
	font-weight: 800;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.match-versus {
	display: grid;
	justify-items: center;
	gap: 5px;
	color: var(--kb-muted);
}

.match-versus span {
	width: 56px;
	height: 34px;
	display: grid;
	place-items: center;
	border-radius: var(--kb-radius);
	background: var(--kb-primary);
	color: #fff;
	font-size: 13px;
	font-weight: 950;
}

.match-versus small {
	font-size: 11px;
	font-weight: 800;
	white-space: nowrap;
}

.match-hero h1 {
	margin: 18px 0 0;
	color: var(--kb-title);
	font-size: 28px;
	line-height: 1.1;
	text-align: center;
}

.match-hero p {
	margin: 8px auto 0;
	max-width: 560px;
	color: var(--kb-muted);
	font-size: 13px;
	font-weight: 650;
	text-align: center;
}

.match-panels {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 14px;
}

.match-panel {
	padding: 14px;
}

.match-panel h2 {
	margin: 0 0 10px;
	color: var(--kb-title);
	font-size: 15px;
}

.match-panel dl {
	display: grid;
	gap: 8px;
	margin: 0;
}

.match-panel dl div {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--kb-soft-2);
}

.match-panel dt {
	color: var(--kb-muted);
	font-size: 12px;
	font-weight: 750;
}

.match-panel dd {
	margin: 0;
	color: var(--kb-title);
	font-size: 12px;
	font-weight: 900;
	text-align: right;
}

.match-actions a {
	padding: 7px 10px;
	border-radius: var(--kb-radius);
	background: var(--kb-title);
	color: #fff;
	font-size: 12px;
	font-weight: 850;
	text-decoration: none;
}

.match-panel p {
	margin: 10px 0 0;
	color: var(--kb-muted);
	font-size: 12px;
	font-weight: 650;
}

.match-status-chip {
	color: var(--kb-primary);
}

.match-panels--top {
	align-items: stretch;
}

.match-wide-panel {
	display: grid;
	gap: 12px;
}

.match-panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.match-panel-head h2 {
	margin: 0;
}

.match-panel-head small {
	color: var(--kb-muted);
	font-size: 11px;
	font-weight: 800;
}

.match-odds-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}

.match-snapshot-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 76px minmax(0, 1fr);
	align-items: center;
	gap: 8px;
}

.match-snapshot-side, .match-snapshot-mid {
	min-width: 0;
	padding: 10px;
	border-radius: var(--kb-radius);
	background: var(--kb-soft);
}

.match-snapshot-side {
	display: grid;
	gap: 4px;
}

.match-snapshot-side strong, .match-snapshot-mid span {
	overflow: hidden;
	color: var(--kb-title);
	font-size: 13px;
	font-weight: 950;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.match-snapshot-side span {
	color: var(--kb-muted);
	font-size: 11px;
	font-weight: 800;
}

.match-snapshot-mid {
	text-align: center;
}

.match-odd-box {
	display: grid;
	gap: 7px;
	padding: 10px;
	border: 1px solid var(--kb-border);
	border-radius: var(--kb-radius);
	background: var(--kb-soft);
}

.match-odd-box strong {
	color: var(--kb-title);
	font-size: 12px;
	font-weight: 950;
}

.match-odd-box div {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
}

.match-odd-box span {
	min-width: 54px;
	display: grid;
	gap: 2px;
	padding: 5px 6px;
	border-radius: 7px;
	background: var(--kb-card);
	text-align: center;
}

.match-odd-box small {
	color: var(--kb-muted);
	font-size: 10px;
	font-weight: 800;
}

.match-odd-box b {
	color: var(--kb-title);
	font-size: 12px;
	font-weight: 950;
}

.match-score-odds {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
}

.match-score-odds>span {
	width: 62px;
	min-height: 38px;
	display: grid;
	place-items: center;
	gap: 1px;
	padding: 5px;
	border: 1px solid var(--kb-border);
	border-radius: 7px;
	background: var(--kb-soft);
}

.match-score-odds small {
	color: var(--kb-muted);
	font-size: 10px;
	font-weight: 850;
}

.match-score-odds b {
	color: var(--kb-title);
	font-size: 11px;
	font-weight: 950;
}

.match-summary-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}

.match-summary-grid div {
	min-width: 0;
	padding: 10px;
	border-radius: var(--kb-radius);
	background: var(--kb-soft);
}

.match-summary-grid span {
	display: block;
	margin-bottom: 4px;
	color: var(--kb-muted);
	font-size: 11px;
	font-weight: 800;
}

.match-summary-grid strong {
	display: block;
	overflow: hidden;
	color: var(--kb-title);
	font-size: 13px;
	font-weight: 950;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.match-empty {
	color: var(--kb-muted);
	font-size: 12px;
	font-weight: 800;
}

.club-detail {
	display: grid;
	gap: 14px;
	padding: 18px;
}

.club-hero {
	display: grid;
	gap: 8px;
}

.club-badge {
	width: max-content;
	padding: 5px 9px;
	border-radius: var(--kb-pill);
	background: var(--kb-soft);
	color: var(--kb-primary);
	font-size: 11px;
	font-weight: 950;
	text-transform: uppercase;
}

.club-hero h1 {
	margin: 0;
	color: var(--kb-title);
	font-size: 28px;
	line-height: 1.1;
}

.club-hero p {
	max-width: 620px;
	margin: 0;
	color: var(--kb-muted);
	font-size: 13px;
	font-weight: 650;
}

.club-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.club-actions a {
	padding: 7px 10px;
	border-radius: var(--kb-radius);
	background: var(--kb-title);
	color: #fff;
	font-size: 12px;
	font-weight: 850;
	text-decoration: none;
}

.club-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}

.club-grid div {
	min-width: 0;
	padding: 10px;
	border-radius: var(--kb-radius);
	background: var(--kb-soft);
}

.club-grid span {
	display: block;
	margin-bottom: 4px;
	color: var(--kb-muted);
	font-size: 11px;
	font-weight: 800;
}

.club-grid strong {
	display: block;
	overflow: hidden;
	color: var(--kb-title);
	font-size: 13px;
	font-weight: 950;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.kb-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
}

.kb-table th, .kb-table td {
	border-bottom: 1px solid var(--kb-border);
	white-space: nowrap;
}

.kb-table tbody tr:hover {
	background: var(--kb-soft);
}

.kb-table tbody tr:last-child td {
	border-bottom: 0;
}

.fs-widget {
	display: contents;
}

.fs-widget .kb-page-head {
	margin-bottom: 20px;
}

.fs-filters {
	display: grid;
	grid-template-columns: minmax(128px, 176px) minmax(192px, 352px) minmax(104px, 128px);
	align-items: end;
	gap: 8px;
}

.fs-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.fs-table {
	width: 100%;
	min-width: 980px;
}

.fs-table th, .fs-table td {
	height: 44px;
	padding: 0 9px;
	text-align: center;
	font-size: 13px;
	white-space: nowrap;
}

.fs-table th {
	height: 42px;
	background: var(--kb-soft);
	color: var(--kb-muted);
	font-size: 11px;
	font-weight: 900;
	text-transform: uppercase;
}

.fs-table th:first-child, .fs-table td:first-child {
	width: 44px;
}

.fs-table th:nth-child(2), .fs-table td:nth-child(2) {
	text-align: left;
}

.fs-table th:nth-child(n+3):nth-child(-n+10), .fs-table td:nth-child(n+3):nth-child(-n+10) {
	width: 62px;
}

.fs-table th:nth-child(11), .fs-table td:nth-child(11), .fs-table th:nth-child(12), .fs-table td:nth-child(12) {
	width: 118px;
}

.fs-table th:last-child, .fs-table td:last-child {
	width: 146px;
}

.fs-rank {
	width: 26px;
	aspect-ratio: 1;
	margin: 0 auto;
	display: grid;
	place-items: center;
	border-radius: var(--kb-pill);
	background: var(--kb-soft-2);
	color: var(--kb-title);
	font-size: 12px;
	font-weight: 900;
}

.fs-rank.ucl {
	background: var(--kb-success-soft);
	color: var(--kb-success-dark);
}

.fs-rank.europa {
	background: color-mix(in srgb, var(--kb-accent) 16%, transparent);
	color: var(--kb-warning-dark);
}

.fs-rank.drop {
	background: var(--kb-danger-soft);
	color: var(--kb-danger-dark);
}

.fs-team-cell {
	position: relative;
	min-width: 220px;
}

.fs-team {
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 9px;
	color: var(--kb-title);
	font-weight: 850;
	text-decoration: none;
}

.fs-team img {
	width: 24px;
}

.fs-team span {
	max-width: 180px;
}

.fs-points {
	color: var(--kb-title);
	font-weight: 950;
}

.fs-ha {
	color: var(--kb-muted);
	font-size: 12px;
	font-weight: 600;
}

.fs-form {
	display: flex;
	justify-content: center;
	gap: 4px;
}

.fs-form span {
	width: 22px;
	aspect-ratio: 1;
	display: grid;
	place-items: center;
	border-radius: var(--kb-radius-sm);
	color: var(--kb-card);
	font-size: 11px;
	font-weight: 900;
}

.fs-form .w {
	background: var(--kb-success);
}

.fs-form .d {
	background: var(--kb-faint);
}

.fs-form .l {
	background: var(--kb-danger);
}

.fs-tooltip {
	display: none;
	position: absolute;
	top: 50%;
	left: calc(10% + 10px);
	z-index: 20;
	transform: translateY(-50%);
	align-items: center;
	gap: 7px;
	padding: 7px 10px;
	border-radius: var(--kb-radius);
	background: color-mix(in srgb, var(--kb-title) 80%, transparent);
	color: var(--kb-card);
	font-size: 12px;
	font-weight: 800;
	white-space: nowrap;
	pointer-events: none;
	box-shadow: var(--kb-shadow-pop);
}

.fs-tooltip img {
	width: 18px;
}

.fs-table tbody tr:hover .fs-tooltip {
	display: flex;
}

.odds-page {
	background: var(--kb-bg);
}

.odds-widget, .odds-board, .odds-grid-body {
	display: grid;
}

.odds-hero {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 14px;
	padding: 2px 0 4px;
}

.odds-controls {
	position: sticky;
	top: 0;
	z-index: 30;
	display: grid;
	grid-template-columns: minmax(520px, 1.7fr) minmax(220px, .75fr) minmax(180px, .55fr);
	align-items: end;
	gap: 10px;
	padding: 10px;
	margin-bottom: 12px;
	border: 1px solid var(--kb-border);
	border-radius: var(--kb-radius);
	background: color-mix(in srgb, var(--kb-card) 94%, transparent);
	box-shadow: var(--kb-shadow-2);
	backdrop-filter: blur(10px);
}

.odds-control {
	min-width: 0;
	display: grid;
	gap: 5px;
}

.odds-control>span {
	display: block;
	margin: 0;
	color: var(--kb-muted);
	font-size: 10px;
	line-height: 1;
	font-weight: 950;
	text-transform: uppercase;
}

.odds-control--days {
	min-width: 0;
}

.odds-control--days .kb-datepicker {
	width: 100%;
	min-width: 0;
	display: block;
}

.odds-control--days .kb-datepicker-days {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 5px;
	width: 100%;
	min-width: 0;
	overflow: visible;
}

.odds-control--days .kb-datepicker-day {
	width: 100%;
	min-width: 0;
	height: var(--kb-h);
	padding: 0 3px;
	border-radius: var(--kb-radius);
	text-align: center;
	white-space: nowrap;
}

.odds-control--days .kb-datepicker-day span {
	font-size: 9px;
}

.odds-control--days .kb-datepicker-day small {
	font-size: 11px;
}

.odds-control--days .kb-datepicker-open {
	display: none !important;
}

.odds-control--search input, .odds-control--bookmaker select {
	width: 100%;
	min-width: 0;
	height: var(--kb-h);
}

.odds-card {
	border-radius: var(--kb-radius-lg);
	box-shadow: var(--kb-shadow-2);
}

.odds-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.odds-grid {
	min-width: 980px;
	background: var(--kb-card);
}

.odds-grid-head, .odds-league-row, .odds-main-row {
	display: grid;
	grid-template-columns: var(--kb-cols);
}

.odds-grid-head {
	position: sticky;
	top: 0;
	z-index: 10;
	grid-template-rows: 28px 28px;
	background: var(--kb-soft-2);
	border-bottom: 1px solid var(--kb-border);
}

.odds-head-cell {
	display: grid;
	place-items: center;
	min-width: 0;
	padding: 0 6px;
	border-right: 1px solid var(--kb-border);
	border-bottom: 1px solid var(--kb-border);
	color: var(--kb-title);
	font-size: 10px;
	font-weight: 950;
	line-height: 1;
	text-align: center;
	text-transform: uppercase;
	white-space: nowrap;
}

.odds-head-time {
	grid-column: 1;
	grid-row: 1 / 3;
}

.odds-head-match {
	grid-column: 2;
	grid-row: 1 / 3;
	justify-content: start;
	padding-left: 10px;
}

.odds-head-full {
	grid-column: 3 / 6;
	grid-row: 1;
}

.odds-head-half {
	grid-column: 6 / 9;
	grid-row: 1;
}

.odds-sub-handicap {
	grid-column: 3;
	grid-row: 2;
}

.odds-sub-ou {
	grid-column: 4;
	grid-row: 2;
}

.odds-sub-1x2 {
	grid-column: 5;
	grid-row: 2;
}

.odds-sub-h1-handicap {
	grid-column: 6;
	grid-row: 2;
}

.odds-sub-h1-ou {
	grid-column: 7;
	grid-row: 2;
}

.odds-sub-h1-1x2 {
	grid-column: 8;
	grid-row: 2;
}

.odds-head-detail {
	grid-column: 9;
	grid-row: 1 / 3;
	border-right: 0;
}

.odds-league-row {
	border-bottom: 1px solid var(--kb-border);
	background: var(--kb-soft);
}

.odds-league-row .fm-league-main {
	grid-column: 1 / -1;
	min-width: 0;
	min-height: 32px;
	padding: 7px 10px;
}

.odds-main-row {
	position: relative;
	align-items: stretch;
	min-width: 0;
	border-bottom: 1px solid var(--kb-border);
	background: var(--kb-card);
}

.odds-main-row:hover {
	background: var(--kb-hover-strong);
}

.odds-main-row:last-child {
	border-bottom: 0;
}

.odds-time, .odds-match-cell, .odds-market-cell, .odds-detail-cell {
	min-width: 0;
	padding: 5px;
	border-right: 1px solid var(--kb-soft-2);
	font-size: 11px;
}

.odds-time, .odds-market-cell, .odds-detail-cell {
	display: grid;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	text-align: center;
}

.odds-detail-cell {
	border-right: 0;
}

.odds-time strong, .odds-time small {
	display: block;
	line-height: 1.15;
	white-space: nowrap;
}

.odds-time strong {
	color: var(--kb-title);
	font-size: 11px;
	font-weight: 750;
}

.odds-time small {
	margin-top: 3px;
	color: var(--kb-danger-dark);
	font-size: 10px;
	font-weight: 900;
}

.odds-match-cell {
	display: grid;
	align-content: center;
	gap: 5px;
	overflow: hidden;
	text-align: left;
}

.odds-teams {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 34px;
	grid-template-areas: "home score" "away score";
	align-items: center;
	gap: 4px 8px;
	min-width: 0;
	color: var(--kb-title);
	text-decoration: none;
}

.odds-teams>.odds-team-inline:first-of-type {
	grid-area: home;
}

.odds-teams>.odds-team-inline:last-of-type {
	grid-area: away;
}

.odds-team-inline {
	gap: 6px;
	min-width: 0;
	overflow: hidden;
	color: var(--kb-title);
	font-size: 11px;
	font-weight: 850;
	line-height: 1.15;
}

.odds-team-inline img, .odds-team-inline i {
	width: 18px;
	height: 18px;
	flex-basis: 18px;
	border-radius: 50%;
	background: var(--kb-soft);
}

.odds-teams>b {
	grid-area: score;
	justify-self: center;
	align-self: stretch;
	display: grid;
	place-items: center;
	color: var(--kb-muted);
	font-size: 10px;
	font-weight: 950;
	line-height: 1;
	text-transform: uppercase;
}

.odds-empty {
	color: var(--kb-faint);
	font-size: 11px;
	font-weight: 850;
}

.odds-detail-btn {
	position: relative;
	justify-content: center;
	gap: 4px;
	width: 24px;
	height: 24px;
	border: 1px solid color-mix(in srgb, var(--kb-success) 25%, transparent);
	border-radius: var(--kb-pill);
	background: var(--kb-success-soft);
	color: var(--kb-success);
	cursor: pointer;
	font-size: 9px;
	font-weight: 950;
	line-height: 1;
	transition: .18s ease;
}

.odds-detail-btn:hover {
	background: color-mix(in srgb, var(--kb-success) 16%, transparent);
	border-color: color-mix(in srgb, var(--kb-success) 45%, transparent);
	transform: translateY(-1px);
}

.odds-detail-btn[aria-expanded="true"] {
	background: var(--kb-success);
	border-color: var(--kb-success);
	color: var(--kb-card);
}

.odds-detail-dot {
	position: relative;
	width: 7px;
	height: 7px;
	flex: 0 0 7px;
	border-radius: 50%;
	background: currentColor;
	box-shadow: 0 0 0 3px var(--kb-success-soft);
}

.odds-detail-dot::after {
	content: "";
	position: absolute;
	inset: -4px;
	border-radius: 50%;
	background: currentColor;
	opacity: .18;
	animation: oddsPulse 1.35s ease-out infinite;
}

.odds-detail-text {
	position: relative;
	z-index: 1;
}

.odds-extra-row {
	padding: 9px 10px;
	border-bottom: 1px solid var(--kb-border);
	background: var(--kb-hover-strong);
}

.odds-extra-row[hidden] {
	display: none !important;
}

.odds-exact-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 5px;
	width: 100%;
	min-width: 0;
}

.odds-exact-grid>span {
	flex: 0 0 58px;
	display: grid;
	place-items: center;
	min-width: 0;
	height: 32px;
	padding: 3px 2px;
	border-radius: var(--kb-radius-sm);
	background: var(--kb-card);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--kb-border) 85%, transparent);
	overflow: hidden;
}

.odds-exact-grid small, .odds-exact-grid b {
	display: block;
	width: 100%;
	text-align: center;
	line-height: 1;
}

.odds-exact-grid small {
	color: var(--kb-muted);
	font-size: 8px;
}

.odds-exact-grid b {
	margin-top: 3px;
	color: var(--kb-title);
	font-size: 10px;
	font-weight: 550;
}

.odds-cell-values {
	display: grid;
	align-content: center;
	width: 100%;
	min-width: 0;
	gap: 2px;
}

.odds-cell-values>span {
	display: grid;
	grid-template-columns: minmax(28px, 1fr) max-content;
	align-items: center;
	width: 100%;
	min-width: 62px;
	min-height: 22px;
	gap: 5px;
	padding: 2px 5px;
	border-radius: 4px;
	background: var(--kb-soft);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--kb-border) 75%, transparent);
	overflow: hidden;
}

.odds-cell-values small {
	min-width: 0;
	overflow: hidden;
	color: var(--kb-muted);
	font-size: 8px;
	font-weight: 400;
	line-height: 1;
	text-align: left;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.odds-cell-values b {
	min-width: max-content;
	color: var(--kb-title);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	text-align: right;
	white-space: nowrap;
}

.odds-cell-values b.is-up, .odds-cell-values .is-up {
	color: var(--kb-success);
}

.odds-cell-values b.is-down, .odds-cell-values .is-down {
	color: var(--kb-danger);
}

@keyframes fmSpin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes fmLivePulse {
	70% {
		box-shadow: 0 0 0 8px color-mix(in srgb, var(--kb-danger) 0%, transparent);
	}

	100% {
		box-shadow: 0 0 0 0 color-mix(in srgb, var(--kb-danger) 0%, transparent);
	}
}

@keyframes oddsPulse {
	0% {
		transform: scale(.65);
		opacity: .35;
	}

	70%, 100% {
		transform: scale(1.45);
		opacity: 0;
	}
}
.h2h-page {padding: 24px 0;}.h2h-detail {display: grid;gap: 18px;}.h2h-breadcrumb, .h2h-hero__meta, .h2h-links {display: flex;flex-wrap: wrap;align-items: center;gap: 8px;}.h2h-breadcrumb {margin-bottom: 14px;color: var(--kb-muted);font-size: 12px;font-weight: 750;}.h2h-breadcrumb a, .h2h-links a {color: var(--kb-primary);text-decoration: none;}.h2h-breadcrumb a:hover {text-decoration: underline;}.h2h-hero, .h2h-controls, .h2h-panel {background: var(--kb-card);border: 1px solid var(--kb-border);border-radius: var(--kb-radius-lg);box-shadow: var(--kb-shadow-2);}.h2h-hero {padding: 22px;}.h2h-hero__meta {margin-bottom: 18px;color: var(--kb-muted);font-size: 11px;font-weight: 900;text-transform: uppercase;}.h2h-header {display: grid;grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);align-items: center;gap: 18px;padding-bottom: 18px;margin-bottom: 18px;border-bottom: 1px solid var(--kb-soft-2);}.h2h-team {min-width: 0;text-align: center;}.h2h-logo {width: 58px;height: 58px;margin: 0 auto 10px;display: inline-flex;align-items: center;justify-content: center;border-radius: var(--kb-radius-lg);background: var(--kb-soft);color: var(--kb-title);font-size: 22px;font-weight: 950;}.h2h-separator {color: var(--kb-muted);font-size: 13px;font-weight: 900;text-transform: uppercase;}.h2h-hero h1 {margin: 0;color: var(--kb-title);font-size: 26px;line-height: 1.1;font-weight: 950;letter-spacing: -.03em;}.h2h-hero p {margin: 10px 0 0;color: var(--kb-muted);font-size: 13px;font-weight: 650;}.h2h-controls, .h2h-panel {padding: 18px;}.h2h-controls {display: grid;gap: 16px;}.h2h-filters {display: grid;grid-template-columns: minmax(0, 1fr) 120px;gap: 10px;}.h2h-stats-summary, .h2h-overall-stats, .h2h-form-grid {display: grid;gap: 10px;}.h2h-stats-summary {grid-template-columns: repeat(4, minmax(0, 1fr));}.h2h-overall-stats {grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));}.h2h-form-grid {grid-template-columns: repeat(2, minmax(0, 1fr));gap: 18px;}.h2h-stat {padding: 14px;border-radius: var(--kb-radius);background: var(--kb-soft);text-align: center;}.h2h-stat strong {display: block;margin-bottom: 4px;color: var(--kb-title);font-size: 22px;font-weight: 950;}.h2h-stat small {display: block;color: var(--kb-muted);font-size: 11px;font-weight: 850;}.h2h-panel--wide {grid-column: 1 / -1;}.h2h-panel__head {display: flex;align-items: center;justify-content: space-between;gap: 10px;margin-bottom: 14px;padding-bottom: 10px;border-bottom: 1px solid var(--kb-soft-2);}.h2h-panel h2 {margin: 0;color: var(--kb-title);font-size: 16px;font-weight: 950;}.h2h-panel small {color: var(--kb-faint);font-size: 11px;font-weight: 800;}.h2h-stat-row {display: flex;align-items: center;justify-content: space-between;gap: 12px;padding: 10px 0;border-bottom: 1px solid var(--kb-soft-2);}.h2h-stat-row:last-child {border-bottom: 0;}.h2h-stat-row span {color: var(--kb-muted);font-size: 13px;font-weight: 700;}.h2h-stat-row strong, .h2h-form-side strong {color: var(--kb-title);font-weight: 900;}.h2h-stat-row strong {font-size: 16px;}.h2h-matches-list {display: grid;gap: 1px;border: 1px solid var(--kb-border);border-radius: var(--kb-radius);overflow: hidden;}.h2h-matches-list > div {border-top: 1px solid var(--kb-border);}.h2h-matches-list > div:first-child {border-top: 0;}.h2h-form-side {display: grid;gap: 10px;}.h2h-form-side strong {font-size: 15px;}.h2h-form-items {display: flex;flex-wrap: wrap;gap: 6px;}.h2h-links a {padding: 8px 12px;border-radius: var(--kb-pill);background: var(--kb-primary);color: var(--kb-card);font-size: 12px;font-weight: 850;}.h2h-links a:hover {background: color-mix(in srgb, var(--kb-primary) 86%, var(--kb-title));text-decoration: none;}@media (max-width: 768px) {.h2h-page {padding: 18px 0;}.h2h-detail {gap: 14px;}.h2h-hero, .h2h-controls, .h2h-panel {padding: 14px;border-radius: var(--kb-radius);}.h2h-header, .h2h-filters, .h2h-form-grid, .h2h-overall-stats {grid-template-columns: 1fr;}.h2h-header {gap: 14px;}.h2h-stats-summary {grid-template-columns: repeat(2, minmax(0, 1fr));}.h2h-logo {width: 48px;height: 48px;font-size: 18px;}.h2h-hero h1 {font-size: 21px;}.h2h-hero p {font-size: 12px;}.h2h-stat strong {font-size: 19px;}}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		scroll-behavior: auto !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

/* Tablet */
@media (max-width: 1080px) {
	.kb-container {
		width: min(var(--kb-max), calc(100% - 20px));
	}

	.fm-toolbar {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.fs-filters {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	/* Odds: 7 ngày full, dưới là search + bookmaker */
	.odds-controls {
		position: static;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 8px;
		padding: 8px;
		border-radius: var(--kb-radius);
		box-shadow: var(--kb-shadow);
	}

	.odds-control--days {
		grid-column: 1 / -1;
	}

	.odds-control--search,
	.odds-control--bookmaker {
		grid-column: auto;
	}

	.odds-control--days .kb-datepicker-days {
		gap: 4px;
	}

	.odds-grid {
		min-width: 900px;
	}
}

/* Mobile */
@media (max-width: 760px) {
	:root {
		--kb-h: 40px;
		--kb-gap: 8px;
		--kb-cols: 54px minmax(170px, 210px) repeat(6, minmax(76px, 1fr)) 48px;
		--team-logo: 13px;
		--team-card-h: 10px;
		--team-card-fs: 7px;
	}

	.kb-page {
		padding: 18px 0;
	}

	.kb-page-title {
		font-size: 23px;
		line-height: 1.15;
	}

	.kb-page-desc,
	.fm-live-note {
		font-size: 12px;
	}

	.site-header__inner {
		min-height: auto;
		padding: 12px 0;
		align-items: flex-start;
		flex-direction: column;
		gap: 10px;
	}

	.site-nav {
		width: 100%;
		gap: 5px;
		padding-bottom: 2px;
	}

	.site-nav a {
		padding: 7px 10px;
		font-size: 12px;
	}

	.kb-select,
	.fm-search input,
	.fm-bookmaker select,
	.odds-control input,
	.odds-control select {
		height: 40px;
		font-size: 12px;
		border-radius: 7px;
	}

	.fm-head {
		gap: 10px;
	}

	.fm-list {
		gap: 8px;
	}

	/* LTD/KQ: giữ 7 ngày + nút chọn ngày */
	.kb-datepicker {
		display: block;
	}

	.kb-datepicker-days {
		gap: 4px;
	}

	.kb-datepicker-day {
		height: 40px;
		padding: 0 2px;
		border-radius: var(--kb-radius-sm);
	}

	.kb-datepicker-day span {
		font-size: 9px;
	}

	.kb-datepicker-day small {
		font-size: 11px;
	}

	.kb-datepicker-open,
	.kb-datepicker-panel.flatpickr-calendar {
		display: none !important;
	}
	.fm-league {
		padding: 8px 10px;
	}

	.fm-league-title,
	.fm-league-main > span {
		font-size: 12px;
	}

	.fm-league-main img {
		width: 16px;
		height: 16px;
	}

	.fm-league-meta {
		font-size: 11px;
	}

	.fm-match--line {
		padding: 8px 9px;
		overflow: hidden;
	}

	.fm-line-row {
		grid-template-columns: 42px minmax(0, 1fr) 38px minmax(0, 1fr);
		column-gap: 5px;
	}

	.fm-line-tail,
	.fm-line-meta .fm-date-chip {
		display: none;
	}

	.fm-line-meta {
		min-width: 0;
		align-items: flex-start;
		gap: 2px;
	}

	.fm-line-meta .fm-time-chip {
		font-size: 11px;
		font-weight: 850;
	}

	.fm-line-team {
		gap: 3px;
		font-size: 11px;
		font-weight: 700;
	}

	.fm-line-score {
		width: 36px;
		height: 22px;
		padding: 0 4px;
		border-radius: 7px;
		font-size: 11px;
		font-weight: 850;
	}

	.fm-line-pill {
		height: 18px;
		padding: 0 5px;
		font-size: 9px;
	}

	.fm-line-pill + .fm-line-pill {
		display: none;
	}

	.fm-live-chip {
		width: 36px;
		height: auto;
		padding: 0;
		display: grid;
		gap: 2px;
		justify-items: center;
		background: transparent;
	}

	.fm-live-chip span {
		display: none;
	}

	.fm-live-chip strong {
		color: var(--kb-danger-dark);
		font-size: 10px;
		font-weight: 950;
	}

	.fm-live-dot {
		width: 5px;
		height: 5px;
	}

	.fm-card-badge {
		padding: 0 2px;
	}

	.fm-hot-chip {
		font-size: 8px;
	}

	.fs-table-wrap,
	.odds-table-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.fs-table {
		min-width: 860px;
	}

	.fs-table th,
	.fs-table td {
		height: 40px;
		padding: 0 7px;
		font-size: 12px;
	}

	.fs-table th {
		font-size: 10px;
	}

	.fs-team-cell {
		min-width: 190px;
	}

	.fs-team {
		gap: 7px;
		font-size: 12px;
	}

	.fs-team img {
		width: 21px;
	}

	.fs-team span {
		max-width: 150px;
	}

	.fs-form span {
		width: 20px;
		font-size: 10px;
	}

	.fs-tooltip {
		display: none !important;
	}

	.odds-hero {
		display: grid;
		gap: 8px;
		align-items: start;
	}

	.odds-controls {
		padding: 8px;
		border-radius: 9px;
		box-shadow: var(--kb-shadow);
	}

	.odds-card {
		border-radius: var(--kb-radius);
	}

	.odds-grid {
		min-width: 780px;
	}

	.odds-grid-head {
		grid-template-rows: 26px 26px;
	}

	.odds-head-cell {
		padding: 0 4px;
		font-size: 9px;
	}

	.odds-time,
	.odds-match-cell,
	.odds-market-cell,
	.odds-detail-cell {
		padding: 4px;
	}

	.odds-time strong,
	.odds-team-inline {
		font-size: 10px;
	}

	.odds-time small {
		font-size: 9px;
	}

	.odds-teams {
		grid-template-columns: minmax(0, 1fr) 30px;
		column-gap: 6px;
	}

	.odds-team-inline {
		gap: 5px;
	}

	.odds-team-inline img,
	.odds-team-inline i {
		width: 16px;
		height: 16px;
		flex-basis: 16px;
	}

	.odds-teams > b {
		min-width: 30px;
		font-size: 9px;
	}

	.odds-cell-values {
		gap: 2px;
	}

	.odds-cell-values > span {
		min-width: 60px;
		min-height: 21px;
		gap: 4px;
		padding: 2px 4px;
	}

	.odds-cell-values small {
		font-size: 9px;
	}

	.odds-cell-values b {
		font-size: 10px;
	}

	.odds-detail-btn {
		width: 32px;
		height: 22px;
		padding: 0 5px;
		font-size: 8px;
	}

	.odds-detail-dot {
		width: 6px;
		height: 6px;
		flex-basis: 6px;
	}

	.odds-extra-row {
		padding: 8px;
	}

	.odds-exact-grid {
		gap: 4px;
	}

	.odds-exact-grid > span {
		flex-basis: 54px;
		height: 30px;
	}

	.odds-exact-grid small {
		font-size: 8px;
	}

	.odds-exact-grid b {
		font-size: 9px;
	}

	.match-scoreboard {
		grid-template-columns: minmax(0, 1fr) 54px minmax(0, 1fr);
		gap: 8px;
	}

	.match-team i,
	.match-logo {
		width: 34px;
	}

	.match-team i {
		font-size: 15px;
	}

	.match-team strong {
		font-size: 13px;
	}

	.match-versus span {
		width: 44px;
		height: 28px;
		font-size: 11px;
	}

	.match-versus small {
		display: none;
	}

	.match-hero h1 {
		font-size: 22px;
	}

	.match-panels,
	.match-odds-grid,
	.match-snapshot-grid,
	.club-grid,
	.match-summary-grid {
		grid-template-columns: 1fr;
	}

	.match-score-odds > span {
		width: 56px;
	}
}

/* Small mobile */
@media (max-width: 520px) {
	.kb-container {
		width: calc(100% - 16px);
	}

	.kb-page-title {
		font-size: 22px;
	}

	.fm-match--line {
		padding: 7px 8px;
	}

	.fm-line-row {
		grid-template-columns: 40px minmax(0, 1fr) 36px minmax(0, 1fr) 0;
		column-gap: 4px;
	}

	.fm-line-tail {
		display: none;
	}

	.fm-line-team {
		gap: 3px;
		font-size: 10.5px;
	}

	.fm-line-score {
		width: 34px;
		height: 21px;
		font-size: 10.5px;
	}

	.fm-card-badge {
		padding: 0 2px;
	}

	.fs-filters {
		grid-template-columns: 1fr 1fr;
		gap: 8px;
	}

	.fs-filters .kb-field:first-child {
		grid-column: 1 / -1;
	}

	.odds-grid {
		min-width: 740px;
	}

	.odds-controls {
		gap: 8px;
	}

	.odds-control > span {
		font-size: 9px;
	}

	.odds-control--days .kb-datepicker-day {
		height: 38px;
		padding: 0 2px;
		border-radius: var(--kb-radius-sm);
	}

	.odds-control--days .kb-datepicker-day span {
		font-size: 8.5px;
	}

	.odds-control--days .kb-datepicker-day small {
		font-size: 10px;
	}

	:root {
		--kb-cols: 50px minmax(160px, 190px) repeat(6, minmax(72px, 1fr)) 44px;
		--team-logo: 12px;
	}
}

/* Extra small */
@media (max-width: 420px) {
	.kb-page {
		padding: 16px 0;
	}

	.kb-page-title {
		font-size: 21px;
	}

	.kb-page-desc {
		font-size: 11px;
	}

	.fm-line-row {
		grid-template-columns: 36px minmax(0, 1fr) 34px minmax(0, 1fr) 0;
		column-gap: 3px;
	}

	.fm-line-meta .fm-time-chip {
		font-size: 10px;
	}

	.fm-line-meta .fm-date-chip {
		display: none;
	}

	.fm-line-team {
		gap: 2px;
		font-size: 10px;
		font-weight: 700;
	}

	.fm-line-score {
		width: 32px;
		height: 20px;
		border-radius: 6px;
		font-size: 10px;
	}

	.odds-grid {
		min-width: 700px;
	}

	.odds-cell-values > span {
		min-width: 56px;
		min-height: 20px;
		padding: 2px 3px;
	}

	.odds-cell-values small {
		font-size: 8.5px;
	}

	.odds-cell-values b {
		font-size: 9.5px;
	}

	:root {
		--kb-cols: 48px minmax(150px, 180px) repeat(6, minmax(68px, 1fr)) 42px;
		--team-logo: 11px;
		--team-card-h: 9px;
		--team-card-fs: 6.5px;
	}
}