.tv-body{
	margin:0;
	background:#d9d9d9;
	font-family:Arial, Helvetica, sans-serif;
	color:#1f2937;
	overflow:hidden;
}

.tv-page{
	width:100vw;
	height:100vh;
	display:flex;
	flex-direction:column;
}

.tv-header{
	height:58px;
	display:grid;
	grid-template-columns: 1fr auto 180px;
	align-items:center;
	gap:16px;
	padding:0 18px;
	background:#f7f7f7;
	box-shadow:0 1px 4px rgba(0,0,0,.08);
	flex-shrink:0;
}

.tv-header-title{
	font-size:24px;
	font-weight:800;
}

.tv-header-subtitle{
	font-size:14px;
	opacity:.7;
	margin-top:2px;
}

.tv-header-center{
	text-align:center;
}

.tv-header-chrono-label{
	font-size:13px;
	font-weight:700;
}

.tv-header-chrono{
	font-size:34px;
	font-weight:900;
	line-height:1;
	margin-top:2px;
}

.tv-header-right{
	display:flex;
	justify-content:flex-end;
	align-items:center;
}

.tv-qr{
	width:58px;
	height:58px;
}

.tv-main{
	flex:1;
	min-height:0;
	display:flex;
	flex-direction:column;
	padding:10px;
	box-sizing:border-box;
	gap:8px;
}

/* si ton ancien layout gêne encore */
.tv-layout,
.tv-left,
.tv-right{
	all: unset;
}



.tv-groups{
	display:grid;
	gap:12px;
	height:100%;
}

.tv-groups-1{ grid-template-columns: 1fr; }
.tv-groups-2{ grid-template-columns: repeat(2, 1fr); }
.tv-groups-3{ grid-template-columns: repeat(3, 1fr); }
.tv-groups-4{ grid-template-columns: repeat(4, 1fr); }

.tv-group-col{
	display:flex;
	flex-direction:column;
	gap:8px;
	min-width:0;
}

.tv-match-list{
	display:flex;
	flex-direction:column;
	gap:4px;
	min-width:0;
}

.tv-match-row{
	display:grid;
	grid-template-columns: 35px 1fr;
	gap:6px;
	align-items:center;
	background:#f7f7f7;
	border-radius:6px;
	padding:4px 6px;
	font-size:12px;
	min-width:0;
}

.tv-time{
	font-weight:700;
	color:#4b5563;
}
.tv-pitch{
	text-align:left;
	font-size:11px;
	color:#374151;
}
.tv-match-main{
	min-width:0;
}

.tv-team-line{
	display:flex;
	justify-content:space-between;
	gap:8px;
	line-height:1.25;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}

.tv-team-line span:first-child{
	overflow:hidden;
	text-overflow:ellipsis;
}

.tv-team-line.is-winner{
	font-weight:700;
	color:#b45309;
}

.tv-score{
	min-width:14px;
	text-align:right;
	font-weight:700;
}



.tv-side-box{
	padding:16px;
	text-align:center;
}

.tv-side-title{
	font-size:20px;
	letter-spacing:1px;
	margin-bottom:14px;
}



.tv-matches-wrap {
    /*margin-top: 10px;*/
}

.tv-match-row.is-live{
	background:#fff3cd;
	border-left:4px solid #f59e0b;
}

.tv-match-row.is-live .tv-time{
	color:#92400e;
	font-weight:800;
}


/*.tv-ranking-box{
	background:#ffffff;
	border-radius:14px;
	padding:8px;
	box-shadow:0 2px 10px rgba(15, 23, 42, 0.08);
	border:1px solid #dbe3ec;
	overflow:hidden;
}*/

.tv-ranking-table{
	width:100%;
	border-collapse:separate;
	border-spacing:0;
	table-layout:fixed;
    
}

.tv-ranking-table .col-team{
	width:auto;
}

.tv-ranking-table .col-pos,
.tv-ranking-table .col-j,
.tv-ranking-table .col-plus,
.tv-ranking-table .col-minus,
.tv-ranking-table .col-ga,
.tv-ranking-table .col-pt{
	width:24px;
}

.tv-ranking-table thead th{
	background:#f3f6fa;
	color:#475569;
	font-size:11px;
	font-weight:800;
	text-transform:uppercase;
	letter-spacing:.04em;
	padding:6px 4px;
	text-align:center;
	border-bottom:1px solid #dbe3ec;
    
}
.tv-ranking-table thead th:first-child {
    border-radius: 6px 0 0 0;
}
.tv-ranking-table thead th:last-child {
    border-radius: 0 6px 0 0;
}


.tv-ranking-table thead th.team{
	text-align:left;
	padding-left:0;
}

.tv-ranking-table tbody td{
	font-size:12px;
	padding:5px 4px;
	text-align:center;
	border-bottom:1px solid #edf2f7;
	background:#fff;
}

.tv-ranking-table tbody tr:last-child td{
	border-bottom:none;
}

.tv-ranking-table .team{
	text-align:left;
	padding-left:8px;
}

.tv-ranking-table .team .team-label{
	display:block;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	font-weight:700;
	color:#1e293b;
}

.tv-ranking-table .pos-label{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:18px;
	height:18px;
	border-radius:999px;
	background:#e2e8f0;
	color:#334155;
	font-size:11px;
	font-weight:800;
}

.tv-ranking-table tbody tr:hover td{
	background:#f8fafc;
}

.tv-ranking-table tbody tr.is-qualified td{
	background:#fff7db;
}

.tv-ranking-table tbody tr.is-qualified .team .team-label{
	color:#92400e;
	font-weight:800;
}

.tv-ranking-table tbody tr.is-qualified .pos-label{
	background:#fbbf24;
	color:#111827;
}

.tv-ranking-table tbody tr.is-empty td{
	color:transparent;
	background:#fafafa;
	border-bottom:1px solid #edf2f7;
}

.tv-group-title{
	background:linear-gradient(180deg,#475569 0%, #334155 100%);
	color:#fff;
	text-align:left !important;
	font-size:14px;
	font-weight:800;
	padding:8px 10px !important;
	border-radius:10px 10px 0 0;
	border-bottom:none !important;
}

